Hello.
There is some cursor problems with dual view. The cursor apears only
on the first display.

I solve this, and it works perfectly:
https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-openchrome/+bug/369333
Please see attached patch.

Could you please test and apply this patch to openchrome trunk?

Best Regards
Bartosz Kosiorek
Index: via_cursor.c
===================================================================
--- via_cursor.c	(wersja 750)
+++ via_cursor.c	(kopia robocza)
@@ -290,8 +290,8 @@
     CARD32 temp;
     CARD32 control = pVia->CursorRegControl;
 
+    /* temp = 0x36000005 */
     temp =
-	(1 << 30) |
 	(1 << 29) |
 	(1 << 28) |
 	(1 << 26) |
@@ -302,7 +302,25 @@
     if (pVia->CursorPipe)
 	temp |= (1 << 31);
 
-    VIASETREG(control, temp);
+    switch(pVia->Chipset )
+    {
+        case VIA_CX700:
+        case VIA_P4M890:
+        case VIA_P4M900:
+        case VIA_VX800:
+             /* SAMM or DuoView case */
+             if (pVia->HasSecondary) {
+                 VIASETREG(VIA_REG_HI_CONTROL0, 0x36000005);
+                 VIASETREG(VIA_REG_HI_CONTROL1, 0xb6000005);
+             } else {
+                 VIASETREG(control, temp);
+             }
+             break;
+        
+        default:
+            temp |= (1 << 30);
+            VIASETREG(control, temp);
+    }
 }
 
 void
@@ -313,7 +331,26 @@
     CARD32 control = pVia->CursorRegControl;
 
     temp = VIAGETREG(control);
-    VIASETREG(control, temp & 0xFFFFFFFE);
+    switch(pVia->Chipset )
+    {
+        case VIA_CX700:
+        case VIA_P4M890:
+        case VIA_P4M900:
+        case VIA_VX800:
+             /* SAMM or DuoView case */
+             if (pVia->HasSecondary) {
+                 temp = VIAGETREG(VIA_REG_HI_CONTROL0);
+                 VIASETREG(VIA_REG_HI_CONTROL0, temp & 0xFFFFFFFA);
+                 temp = VIAGETREG(VIA_REG_HI_CONTROL1);
+                 VIASETREG(VIA_REG_HI_CONTROL1, temp & 0xFFFFFFFA);
+             } else {
+                 VIASETREG(control, temp & 0xFFFFFFFA);
+             }
+             break;
+        
+        default:
+             VIASETREG(control, temp & 0xFFFFFFFA);
+    }
 }
 
 static void
_______________________________________________
Openchrome-devel mailing list
[email protected]
http://wiki.openchrome.org/mailman/listinfo/openchrome-devel

Reply via email to