summaryrefslogtreecommitdiff
path: root/src/smi501_crtc.c
diff options
context:
space:
mode:
authorPaulo Cesar Pereira de Andrade <pcpa@mandriva.com.br>2008-10-29 19:17:54 -0200
committerPaulo Cesar Pereira de Andrade <pcpa@mandriva.com.br>2008-10-29 19:17:54 -0200
commitc756ed67cbcf5bdd40c300627802d8bcd3d95123 (patch)
treef225b7de7bfff2ac5292a0adde9492de2b7dee22 /src/smi501_crtc.c
parent2671776999a5add36e1aeaad4080bfccedc2b1a5 (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.c6
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();
}