summaryrefslogtreecommitdiff
path: root/packaging/u_cirrus-virt-16bpp.patch
diff options
context:
space:
mode:
Diffstat (limited to 'packaging/u_cirrus-virt-16bpp.patch')
-rw-r--r--packaging/u_cirrus-virt-16bpp.patch31
1 files changed, 31 insertions, 0 deletions
diff --git a/packaging/u_cirrus-virt-16bpp.patch b/packaging/u_cirrus-virt-16bpp.patch
new file mode 100644
index 0000000..11ea3e5
--- /dev/null
+++ b/packaging/u_cirrus-virt-16bpp.patch
@@ -0,0 +1,31 @@
+diff -up xf86-video-cirrus-1.3.2/src/alp_driver.c.jx xf86-video-cirrus-1.3.2/src/alp_driver.c
+--- xf86-video-cirrus-1.3.2/src/alp_driver.c.jx 2012-04-02 16:30:29.000000000 -0400
++++ xf86-video-cirrus-1.3.2/src/alp_driver.c 2012-04-02 16:33:11.668580522 -0400
+@@ -476,6 +476,7 @@ AlpPreInit(ScrnInfoPtr pScrn, int flags)
+ vgaHWPtr hwp;
+ MessageType from, from1;
+ int i;
++ int defaultdepth;
+ int depth_flags;
+ ClockRangePtr clockRanges;
+ char *s;
+@@ -557,11 +558,18 @@ AlpPreInit(ScrnInfoPtr pScrn, int flags)
+ depth_flags |= Support32bppFb |
+ SupportConvert32to24 |
+ PreferConvert32to24;
++
++ /* use 16bpp in virt */
++ if ((pCir->PciInfo->subvendor_id & 0xffff) == 0x1af4)
++ defaultdepth = 16;
++ else
++ defaultdepth = 24;
++
+ /*
+ * The first thing we should figure out is the depth, bpp, etc.
+ * We support both 24bpp and 32bpp layouts, so indicate that.
+ */
+- if (!xf86SetDepthBpp(pScrn, 0, 0, 24, depth_flags)) {
++ if (!xf86SetDepthBpp(pScrn, 0, 0, defaultdepth, depth_flags)) {
+ return FALSE;
+ } else {
+ /* Check that the returned depth is one we support */