Timo Aaltonen pushed to branch upstream-unstable at X Strike Force / driver / xserver-xorg-video-vesa
Commits:
-
36662233
by Adam Jackson at 2018-08-28T15:26:46-04:00
-
2645e0aa
by Adam Jackson at 2018-08-29T14:45:35-04:00
-
50366592
by Alan Coopersmith at 2018-11-18T16:43:51-08:00
-
637c968d
by Alan Coopersmith at 2018-12-07T19:19:22-08:00
-
634dae74
by Adam Jackson at 2019-03-06T12:45:11-05:00
-
53c7796e
by Benjamin Tissoires at 2019-05-10T10:43:53+02:00
-
51a73f2f
by Adam Jackson at 2019-07-10T14:53:51+00:00
-
68f2589c
by Adam Jackson at 2020-09-10T18:01:44-04:00
4 changed files:
Changes:
| ... | ... | @@ -29,3 +29,5 @@ ChangeLog: |
| 29 | 29 |
$(CHANGELOG_CMD)
|
| 30 | 30 |
|
| 31 | 31 |
dist-hook: ChangeLog INSTALL
|
| 32 |
+ |
|
| 33 |
+EXTRA_DIST = README.md
|
| 1 | 1 |
xf86-video-vesa - Generic VESA video driver for the Xorg X server
|
| 2 |
- |
|
| 3 |
-Please submit bugs & patches to the Xorg bugzilla:
|
|
| 4 |
- |
|
| 5 |
- https://bugs.freedesktop.org/enter_bug.cgi?product=xorg
|
|
| 2 |
+-----------------------------------------------------------------
|
|
| 6 | 3 |
|
| 7 | 4 |
All questions regarding this software should be directed at the
|
| 8 | 5 |
Xorg mailing list:
|
| 9 | 6 |
|
| 10 |
- http://lists.freedesktop.org/mailman/listinfo/xorg
|
|
| 7 |
+ https://lists.x.org/mailman/listinfo/xorg
|
|
| 11 | 8 |
|
| 12 | 9 |
The master development code repository can be found at:
|
| 13 | 10 |
|
| 14 |
- git://anongit.freedesktop.org/git/xorg/driver/xf86-video-vesa
|
|
| 11 |
+ https://gitlab.freedesktop.org/xorg/driver/xf86-video-vesa
|
|
| 15 | 12 |
|
| 16 |
- http://cgit.freedesktop.org/xorg/driver/xf86-video-vesa
|
|
| 13 |
+Please submit bug reports and requests to merge patches there.
|
|
| 17 | 14 |
|
| 18 |
-For more information on the git code manager, see:
|
|
| 15 |
+For patch submission instructions, see:
|
|
| 19 | 16 |
|
| 20 |
- http://wiki.x.org/wiki/GitPage
|
|
| 17 |
+ https://www.x.org/wiki/Development/Documentation/SubmittingPatches
|
| ... | ... | @@ -23,8 +23,8 @@ |
| 23 | 23 |
# Initialize Autoconf
|
| 24 | 24 |
AC_PREREQ([2.60])
|
| 25 | 25 |
AC_INIT([xf86-video-vesa],
|
| 26 |
- [2.4.0],
|
|
| 27 |
- [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
|
|
| 26 |
+ [2.5.0],
|
|
| 27 |
+ [https://gitlab.freedesktop.org/xorg/driver/xf86-video-vesa/issues],
|
|
| 28 | 28 |
[xf86-video-vesa])
|
| 29 | 29 |
AC_CONFIG_SRCDIR([Makefile.am])
|
| 30 | 30 |
AC_CONFIG_HEADERS([config.h])
|
| ... | ... | @@ -43,7 +43,7 @@ |
| 43 | 43 |
#endif
|
| 44 | 44 |
|
| 45 | 45 |
#include <string.h>
|
| 46 |
- |
|
| 46 |
+#include <unistd.h>
|
|
| 47 | 47 |
#include "vesa.h"
|
| 48 | 48 |
|
| 49 | 49 |
/* All drivers initialising the SW cursor need this */
|
| ... | ... | @@ -450,7 +450,15 @@ VESAPciProbe(DriverPtr drv, int entity_num, struct pci_device *dev, |
| 450 | 450 |
intptr_t match_data)
|
| 451 | 451 |
{
|
| 452 | 452 |
ScrnInfoPtr pScrn;
|
| 453 |
-
|
|
| 453 |
+ |
|
| 454 |
+#ifdef __linux__
|
|
| 455 |
+ if (access("/sys/devices/platform/efi-framebuffer.0", F_OK) == 0 ||
|
|
| 456 |
+ access("/sys/devices/platform/efifb.0", F_OK) == 0) {
|
|
| 457 |
+ ErrorF("vesa: Refusing to run on UEFI\n");
|
|
| 458 |
+ return FALSE;
|
|
| 459 |
+ }
|
|
| 460 |
+#endif
|
|
| 461 |
+ |
|
| 454 | 462 |
pScrn = xf86ConfigPciEntity(NULL, 0, entity_num, NULL,
|
| 455 | 463 |
NULL, NULL, NULL, NULL, NULL);
|
| 456 | 464 |
if (pScrn != NULL) {
|
| ... | ... | @@ -683,12 +691,14 @@ VESAPreInit(ScrnInfoPtr pScrn, int flags) |
| 683 | 691 |
V_MODETYPE_VBE);
|
| 684 | 692 |
|
| 685 | 693 |
/* Preferred order for default depth selection. */
|
| 686 |
- if (depths & V_DEPTH_24)
|
|
| 694 |
+ if (depths & V_DEPTH_24 && (flags24 & Support32bppFb))
|
|
| 687 | 695 |
defaultDepth = 24;
|
| 688 | 696 |
else if (depths & V_DEPTH_16)
|
| 689 | 697 |
defaultDepth = 16;
|
| 690 | 698 |
else if (depths & V_DEPTH_15)
|
| 691 | 699 |
defaultDepth = 15;
|
| 700 |
+ else if (depths & V_DEPTH_24)
|
|
| 701 |
+ defaultDepth = 24; /* ew though */
|
|
| 692 | 702 |
else if (depths & V_DEPTH_8)
|
| 693 | 703 |
defaultDepth = 8;
|
| 694 | 704 |
else if (depths & V_DEPTH_4)
|
| ... | ... | @@ -844,9 +854,38 @@ VESAPreInit(ScrnInfoPtr pScrn, int flags) |
| 844 | 854 |
memcpy(pVesa->Options, VESAOptions, sizeof(VESAOptions));
|
| 845 | 855 |
xf86ProcessOptions(pScrn->scrnIndex, pScrn->options, pVesa->Options);
|
| 846 | 856 |
|
| 847 |
- /* Use shadow by default */
|
|
| 848 |
- pVesa->shadowFB = xf86ReturnOptValBool(pVesa->Options, OPTION_SHADOW_FB,
|
|
| 849 |
- TRUE);
|
|
| 857 |
+ /* Use shadow by default, for non-virt hardware */
|
|
| 858 |
+ if (!xf86GetOptValBool(pVesa->Options, OPTION_SHADOW_FB, &pVesa->shadowFB))
|
|
| 859 |
+ {
|
|
| 860 |
+ switch (pVesa->pciInfo->vendor_id) {
|
|
| 861 |
+ case 0x1234: /* bochs vga (not in pci.ids) */
|
|
| 862 |
+ case 0x15ad: /* vmware */
|
|
| 863 |
+ case 0x1b36: /* qemu qxl */
|
|
| 864 |
+ case 0x80ee: /* virtualbox */
|
|
| 865 |
+ case 0xaaaa: /* parallels (not in pci.ids) */
|
|
| 866 |
+ pVesa->shadowFB = FALSE;
|
|
| 867 |
+ break;
|
|
| 868 |
+ |
|
| 869 |
+ case 0x1013: /* qemu's cirrus emulation */
|
|
| 870 |
+ if (pVesa->pciInfo->subvendor_id == 0x1af4)
|
|
| 871 |
+ pVesa->shadowFB = FALSE;
|
|
| 872 |
+ else
|
|
| 873 |
+ pVesa->shadowFB = TRUE;
|
|
| 874 |
+ break;
|
|
| 875 |
+ |
|
| 876 |
+ case 0x1414: /* microsoft hyper-v */
|
|
| 877 |
+ if (pVesa->pciInfo->device_id == 0x5353)
|
|
| 878 |
+ pVesa->shadowFB = FALSE;
|
|
| 879 |
+ else
|
|
| 880 |
+ pVesa->shadowFB = TRUE;
|
|
| 881 |
+ break;
|
|
| 882 |
+ |
|
| 883 |
+ default:
|
|
| 884 |
+ pVesa->shadowFB = TRUE;
|
|
| 885 |
+ break;
|
|
| 886 |
+ }
|
|
| 887 |
+ }
|
|
| 888 |
+ |
|
| 850 | 889 |
/* Use default refresh by default. Too many VBE 3.0
|
| 851 | 890 |
* BIOSes are incorrectly implemented.
|
| 852 | 891 |
*/
|
| ... | ... | @@ -874,14 +913,14 @@ VESAPreInit(ScrnInfoPtr pScrn, int flags) |
| 874 | 913 |
break;
|
| 875 | 914 |
default:
|
| 876 | 915 |
xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
|
| 877 |
- "Unsupported bpp: %d", pScrn->bitsPerPixel);
|
|
| 916 |
+ "Unsupported bpp: %d\n", pScrn->bitsPerPixel);
|
|
| 878 | 917 |
vbeFree(pVesa->pVbe);
|
| 879 | 918 |
return FALSE;
|
| 880 | 919 |
}
|
| 881 | 920 |
break;
|
| 882 | 921 |
default:
|
| 883 | 922 |
xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
|
| 884 |
- "Unsupported Memory Model: %d", mode->MemoryModel);
|
|
| 923 |
+ "Unsupported Memory Model: %d\n", mode->MemoryModel);
|
|
| 885 | 924 |
return FALSE;
|
| 886 | 925 |
}
|
| 887 | 926 |
|