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