modesetting: Fix cirrus 24bpp breakage

Stefan Dirsch sndirsch at suse.de
Thu Jul 19 12:38:19 UTC 2018


From: Takashi Iwai <tiwai at suse.de>

The recent rewrite of modesetting driver broke the 24bpp support.
As typically found on cirrus KMS, it leads to a blank screen, spewing
the error like:
  failed to add fb -22
  (EE) modeset(0): failed to set mode: Invalid argument

The culript is that the wrong bpp value of the front buffer is passed
to drmModeAddFB().  Fix it by replacing with the back buffer bpp,
drmmode->kbpp.

Signed-off-by: Takashi Iwai <tiwai at suse.de>
Tested-by: Stefan Dirsch <sndirsch at suse.de>

---
 hw/xfree86/drivers/modesetting/drmmode_display.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/hw/xfree86/drivers/modesetting/drmmode_display.c
+++ b/hw/xfree86/drivers/modesetting/drmmode_display.c
@@ -990,7 +990,7 @@ drmmode_bo_import(drmmode_ptr drmmode, d
     }
 #endif
     return drmModeAddFB(drmmode->fd, bo->width, bo->height,
-                        drmmode->scrn->depth, drmmode->scrn->bitsPerPixel,
+                        drmmode->scrn->depth, drmmode->kbpp,
                         drmmode_bo_get_pitch(bo),
                         drmmode_bo_get_handle(bo), fb_id);
 }


More information about the xorg-devel mailing list