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 |
|