From 21fcb42d97e90eb76283b69ab876729f4cee7ad7 Mon Sep 17 00:00:00 2001 From: Andreas Müller Date: Thu, 26 Jan 2017 16:33:56 +0100 Subject: xserver-xorg: fix 16bit modes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Discovered on beaglebone black Signed-off-by: Andreas Müller Signed-off-by: Ross Burton --- ...003-modesetting-Fix-16-bit-depth-bpp-mode.patch | 46 ++++++++++++++++++++++ .../xorg-xserver/xserver-xorg_1.19.1.bb | 1 + 2 files changed, 47 insertions(+) create mode 100644 meta/recipes-graphics/xorg-xserver/xserver-xorg/0003-modesetting-Fix-16-bit-depth-bpp-mode.patch diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xorg/0003-modesetting-Fix-16-bit-depth-bpp-mode.patch b/meta/recipes-graphics/xorg-xserver/xserver-xorg/0003-modesetting-Fix-16-bit-depth-bpp-mode.patch new file mode 100644 index 0000000000..5243761f1e --- /dev/null +++ b/meta/recipes-graphics/xorg-xserver/xserver-xorg/0003-modesetting-Fix-16-bit-depth-bpp-mode.patch @@ -0,0 +1,46 @@ +From 5028ef46ff4ab0930224b71024a7349b05610d42 Mon Sep 17 00:00:00 2001 +From: Stefan Agner +Date: Thu, 22 Dec 2016 15:41:06 +0100 +Subject: [PATCH] modesetting: Fix 16 bit depth/bpp mode + +When setting DefaultDepth to 16 in the Screen section, the current +code requests a 32 bpp framebuffer, however the X-Server seems to +assumes 16 bpp. + +Fixes commit 21217d02168d ("modesetting: Implement 32->24 bpp +conversion in shadow update") + +Signed-off-by: Stefan Agner + +Upstream-Status: Submitted [1] + +[1] https://lists.x.org/archives/xorg-devel/2016-December/052113.html +--- + hw/xfree86/drivers/modesetting/driver.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/hw/xfree86/drivers/modesetting/driver.c b/hw/xfree86/drivers/modesetting/driver.c +index d7030e5..647ad83 100644 +--- a/hw/xfree86/drivers/modesetting/driver.c ++++ b/hw/xfree86/drivers/modesetting/driver.c +@@ -930,7 +930,7 @@ PreInit(ScrnInfoPtr pScrn, int flags) + "Using 24bpp hw front buffer with 32bpp shadow\n"); + defaultbpp = 32; + } else { +- ms->drmmode.kbpp = defaultbpp; ++ ms->drmmode.kbpp = 0; + } + bppflags = PreferConvert24to32 | SupportConvert24to32 | Support32bppFb; + +@@ -950,6 +950,8 @@ PreInit(ScrnInfoPtr pScrn, int flags) + return FALSE; + } + xf86PrintDepthBpp(pScrn); ++ if (!ms->drmmode.kbpp) ++ ms->drmmode.kbpp = pScrn->bitsPerPixel; + + /* Process the options */ + xf86CollectOptions(pScrn, NULL); +-- +2.7.4 + diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.19.1.bb b/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.19.1.bb index 987a2beb78..98ffc8676b 100644 --- a/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.19.1.bb +++ b/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.19.1.bb @@ -3,6 +3,7 @@ require xserver-xorg.inc SRC_URI += "file://musl-arm-inb-outb.patch \ file://0001-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch \ file://0002-configure.ac-Fix-wayland-scanner-and-protocols-locat.patch \ + file://0003-modesetting-Fix-16-bit-depth-bpp-mode.patch \ " SRC_URI[md5sum] = "caa8ee7b2950abbf734347d137529fb6" SRC_URI[sha256sum] = "79ae2cf39d3f6c4a91201d8dad549d1d774b3420073c5a70d390040aa965a7fb" -- cgit 1.2.3-korg