The translation from the X driver to the KMS one typo'ed a couple
of array indices, causing the HW cursor to look weird (blocky with
leaking edge colors). This fixes it.

Signed-off-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>
---

diff --git a/drivers/gpu/drm/ast/ast_mode.c b/drivers/gpu/drm/ast/ast_mode.c
index 19ada0b..9dc0fd5 100644
--- a/drivers/gpu/drm/ast/ast_mode.c
+++ b/drivers/gpu/drm/ast/ast_mode.c
@@ -1104,8 +1104,8 @@ static u32 copy_cursor_image(u8 *src, u8 *dst, int width, 
int height)
                        srcdata32[1].ul = *((u32 *)(srcxor + 4)) & 0xf0f0f0f0;
                        data32.b[0] = srcdata32[0].b[1] | (srcdata32[0].b[0] >> 
4);
                        data32.b[1] = srcdata32[0].b[3] | (srcdata32[0].b[2] >> 
4);
-                       data32.b[2] = srcdata32[0].b[1] | (srcdata32[1].b[0] >> 
4);
-                       data32.b[3] = srcdata32[0].b[3] | (srcdata32[1].b[2] >> 
4);
+                       data32.b[2] = srcdata32[1].b[1] | (srcdata32[1].b[0] >> 
4);
+                       data32.b[3] = srcdata32[1].b[3] | (srcdata32[1].b[2] >> 
4);

                        writel(data32.ul, dstxor);
                        csum += data32.ul;


Reply via email to