diff options
author | Paulo Cesar Pereira de Andrade <pcpa@mandriva.com.br> | 2008-10-29 19:17:54 -0200 |
---|---|---|
committer | Paulo Cesar Pereira de Andrade <pcpa@mandriva.com.br> | 2008-10-29 19:17:54 -0200 |
commit | c756ed67cbcf5bdd40c300627802d8bcd3d95123 (patch) | |
tree | f225b7de7bfff2ac5292a0adde9492de2b7dee22 /src/smi501_crtc.c | |
parent | 2671776999a5add36e1aeaad4080bfccedc2b1a5 (diff) |
SMI501/502 cursor fixes.
Use separate buffers for crt and panel hw cursors.
Describe, and workaround a problem with Dualhead and hw cursor enabled.
It still has the inconvenient of having a blinking X when exiting the server
or switching to a VT; maybe should also save the image currently configured
also (and restore on exit), or just disable hw cursor on dual head mode.
Also revert change to not initialize video on dualhead. Better to have
fully functional video only on panel, that can be resized, then non
resizable video..
Diffstat (limited to 'src/smi501_crtc.c')
-rw-r--r-- | src/smi501_crtc.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/smi501_crtc.c b/src/smi501_crtc.c index 606a169..9cf6817 100644 --- a/src/smi501_crtc.c +++ b/src/smi501_crtc.c @@ -440,9 +440,11 @@ SMI501_CrtcLoadCursorImage(xf86CrtcPtr crtc, CARD8 *image) ENTER(); port = crtc == crtcConf->crtc[0] ? 0x00f0 : 0x0230; - value = pSmi->FBCursorOffset + (port == 0x00f0 ? 0 : 1024); + value = pSmi->FBCursorOffset + (port == 0x00f0 ? 0 : SMI501_MAX_CURSOR); WRITE_DCR(pSmi, port, value); - memcpy(pSmi->FBBase + value, image, 1024); + memcpy(pSmi->FBBase + value, image, + /* FIXME 1024, but then, should not be using 64x64 cursors */ + (SMI501_MAX_CURSOR >> 2) * SMI501_MAX_CURSOR); LEAVE(); } |