Perhaps this was the wrong thing to do. Anyway, I suspect you overlooked this, since you refer to my (original) reference to a sourceforge project, rather than my attached patch. So I am having another go. The patch is attached to this email.
Sorry if you didn't in fact overlook my patch. I'm not sure what I can do better than attach the output of debian/rules make_patch on the latest source version in Debian unstable. (Is it too late to attach a patch later, like this?)
cheers, Simon (trying hard to be helpful ...)
diff -Nru3 ./xc/programs/Xserver/hw/xfree86/drivers/i810/i830_cursor.c ../build-tree.new/xc/programs/Xserver/hw/xfree86/drivers/i810/i830_cursor.c --- ./xc/programs/Xserver/hw/xfree86/drivers/i810/i830_cursor.c 2005-01-04 12:32:09.000000000 +0000 +++ ../build-tree.new/xc/programs/Xserver/hw/xfree86/drivers/i810/i830_cursor.c 2004-12-30 23:04:16.000000000 +0000 @@ -2,7 +2,7 @@ /************************************************************************** Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. -Copyright © 2002 David Dawes +Copyright 2002 David Dawes All Rights Reserved. Permission is hereby granted, free of charge, to any person obtaining a @@ -57,6 +57,9 @@ #include "i830.h" + +#define CURSOR_B_POSITION 0x700c8 + static void I830LoadCursorImage(ScrnInfoPtr pScrn, unsigned char *src); static void I830ShowCursor(ScrnInfoPtr pScrn); static void I830HideCursor(ScrnInfoPtr pScrn); @@ -207,7 +210,7 @@ temp |= ((y & CURSOR_POS_MASK) << CURSOR_Y_SHIFT); OUTREG(CURSOR_A_POSITION, temp); - + OUTREG(CURSOR_B_POSITION, temp); if (pI830->cursorOn) { if (hide) pI830->CursorInfoRec->HideCursor(pScrn);