forked from pool/xorg-x11-server
32 lines
1.1 KiB
Diff
32 lines
1.1 KiB
Diff
|
From: Takashi Iwai <tiwai@suse.de>
|
||
|
Subject: modesetting: Fix cirrus 24bpp breakage
|
||
|
References: bsc#1101699
|
||
|
|
||
|
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@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);
|
||
|
}
|