fixed cursor visibility update on show/hide_cursor commands for secondary head on NV40 architecture (hardware bug workaround). Confirmed Dualhead up and working correctly with two analog connected screens on PCIe 6600 GT.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11368 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Rudolf Cornelissen
2005-02-14 14:16:50 +00:00
parent 0d0f1600ef
commit 11058c2f96
@@ -1,6 +1,6 @@
/* second CTRC functionality for GeForce cards */
/* Author:
Rudolf Cornelissen 11/2002-1/2005
Rudolf Cornelissen 11/2002-2/2005
*/
#define MODULE_BIT 0x00020000
@@ -682,6 +682,11 @@ status_t nv_crtc2_cursor_show()
/* b0 = 1 enables cursor */
CRTC2W(CURCTL0, (CRTC2R(CURCTL0) | 0x01));
/* workaround for hardware bug confirmed existing on NV43:
* Cursor visibility is not updated without a position update if its hardware
* retrace sync is enabled. */
if (si->ps.card_arch == NV40A) DAC2W(CURPOS, (DAC2R(CURPOS)));
return B_OK;
}
@@ -695,6 +700,11 @@ status_t nv_crtc2_cursor_hide()
/* b0 = 0 disables cursor */
CRTC2W(CURCTL0, (CRTC2R(CURCTL0) & 0xfe));
/* workaround for hardware bug confirmed existing on NV43:
* Cursor visibility is not updated without a position update if its hardware
* retrace sync is enabled. */
if (si->ps.card_arch == NV40A) DAC2W(CURPOS, (DAC2R(CURPOS)));
return B_OK;
}