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:
@@ -1,6 +1,6 @@
|
|||||||
/* second CTRC functionality for GeForce cards */
|
/* second CTRC functionality for GeForce cards */
|
||||||
/* Author:
|
/* Author:
|
||||||
Rudolf Cornelissen 11/2002-1/2005
|
Rudolf Cornelissen 11/2002-2/2005
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define MODULE_BIT 0x00020000
|
#define MODULE_BIT 0x00020000
|
||||||
@@ -682,6 +682,11 @@ status_t nv_crtc2_cursor_show()
|
|||||||
/* b0 = 1 enables cursor */
|
/* b0 = 1 enables cursor */
|
||||||
CRTC2W(CURCTL0, (CRTC2R(CURCTL0) | 0x01));
|
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;
|
return B_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -695,6 +700,11 @@ status_t nv_crtc2_cursor_hide()
|
|||||||
/* b0 = 0 disables cursor */
|
/* b0 = 0 disables cursor */
|
||||||
CRTC2W(CURCTL0, (CRTC2R(CURCTL0) & 0xfe));
|
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;
|
return B_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user