drm/nv17-nv40: Avoid using active CRTCs for load detection.
authorFrancisco Jerez <currojerez@riseup.net>
Sat, 3 Jul 2010 10:47:14 +0000 (12:47 +0200)
committerBen Skeggs <bskeggs@redhat.com>
Tue, 13 Jul 2010 00:13:18 +0000 (10:13 +1000)
Signed-off-by: Francisco Jerez <currojerez@riseup.net>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/nv04_dac.c

index 8066c56..bcc8090 100644 (file)
@@ -261,12 +261,11 @@ uint32_t nv17_dac_sample_load(struct drm_encoder *encoder)
 
        saved_routput = NVReadRAMDAC(dev, 0, NV_PRAMDAC_DACCLK + regoffset);
        head = (saved_routput & 0x100) >> 8;
-#if 0
-       /* if there's a spare crtc, using it will minimise flicker for the case
-        * where the in-use crtc is in use by an off-chip tmds encoder */
-       if (xf86_config->crtc[head]->enabled && !xf86_config->crtc[head ^ 1]->enabled)
+
+       /* if there's a spare crtc, using it will minimise flicker */
+       if (!(NVReadVgaCrtc(dev, head, NV_CIO_CRE_RPC1_INDEX) & 0xC0))
                head ^= 1;
-#endif
+
        /* nv driver and nv31 use 0xfffffeee, nv34 and 6600 use 0xfffffece */
        routput = (saved_routput & 0xfffffece) | head << 8;