forked from pool/xorg-x11-server
36 lines
1.3 KiB
Diff
36 lines
1.3 KiB
Diff
|
From: Egbert Eich <eich@suse.de>
|
||
|
Date: Mon May 16 21:22:31 2016 +0200
|
||
|
Subject: [PATCH]Disable HW Cursor for cirrus and mgag200 kernel modules.
|
||
|
Patch-mainline: N/A
|
||
|
Git-commit: 265e92915c8182369a50c89f9ca0d36b9baab8b6
|
||
|
References: boo#980124
|
||
|
Signed-off-by: Egbert Eich <eich@suse.com>
|
||
|
|
||
|
Signed-off-by: Egbert Eich <eich@suse.de>
|
||
|
---
|
||
|
hw/xfree86/drivers/modesetting/driver.c | 11 +++++++++++
|
||
|
1 file changed, 11 insertions(+)
|
||
|
|
||
|
diff --git a/hw/xfree86/drivers/modesetting/driver.c b/hw/xfree86/drivers/modesetting/driver.c
|
||
|
index 8f60eae..a81efaf 100644
|
||
|
--- a/hw/xfree86/drivers/modesetting/driver.c
|
||
|
+++ b/hw/xfree86/drivers/modesetting/driver.c
|
||
|
@@ -858,6 +858,17 @@ PreInit(ScrnInfoPtr pScrn, int flags)
|
||
|
|
||
|
if (xf86ReturnOptValBool(ms->drmmode.Options, OPTION_SW_CURSOR, FALSE)) {
|
||
|
ms->drmmode.sw_cursor = TRUE;
|
||
|
+ } else {
|
||
|
+ /* hw cursor still considered broken on cirrus */
|
||
|
+ drmVersionPtr drm_version = drmGetVersion(ms->fd);
|
||
|
+ if (drm_version) {
|
||
|
+ if (strncmp("cirrus", drm_version->name,
|
||
|
+ min(7,drm_version->name_len)) == 0 ||
|
||
|
+ strncmp("mgag200", drm_version->name,
|
||
|
+ min(8,drm_version->name_len)) == 0)
|
||
|
+ ms->drmmode.sw_cursor = TRUE;
|
||
|
+ drmFreeVersion(drm_version);
|
||
|
+ }
|
||
|
}
|
||
|
|
||
|
ms->cursor_width = 64;
|