summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Plattner <aplattner@nvidia.com>2008-08-24 00:23:54 -0700
committerAaron Plattner <aplattner@nvidia.com>2008-08-24 00:23:54 -0700
commit7884f5918715a8df35cd0d7601cb50c7c5b56e70 (patch)
tree2cea7b18dc9bacacdb9a7afa9df887a07b613cea
parentff32eb25f8edde7343da3d4782f0f59896515ebd (diff)
Bug #15309: Set the pixel clock even if the hardware doesn't think it needs it.
Fixes a problem where switching from DVI to VGA hangs.
-rw-r--r--src/g80_display.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/g80_display.c b/src/g80_display.c
index 8b97b8a..cf4631d 100644
--- a/src/g80_display.c
+++ b/src/g80_display.c
@@ -191,15 +191,14 @@ G80DispCommand(ScrnInfoPtr pScrn, CARD32 addr, CARD32 data)
if(super) {
if(super == 2) {
xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(pScrn);
- const CARD32 r = pNv->reg[0x00610030/4];
int i;
for(i = 0; i < xf86_config->num_crtc; i++)
{
xf86CrtcPtr crtc = xf86_config->crtc[i];
- G80CrtcPrivPtr pPriv = crtc->driver_private;
+ const int headOff = 0x800 * G80CrtcGetHead(crtc);
- if(r & (0x200 << pPriv->head))
+ if((pNv->reg[(0x00614200+headOff)/4] & 0xc0) == 0x80)
G80CrtcSetPClk(crtc);
}
}