drm/g94-/disp: bash and wait for something after changing lane power regs
authorBen Skeggs <bskeggs@redhat.com>
Mon, 26 May 2014 02:00:07 +0000 (12:00 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Wed, 11 Jun 2014 06:10:47 +0000 (16:10 +1000)
Some kind of update?  Needed to make the power-down take effect at least.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/core/engine/disp/sornv94.c

index 95d8c53d347d2b4b4dddde7d10f69491dbf7dadb..834ee0e185cab6e447b785eb34276995d3f25fe8 100644 (file)
@@ -69,6 +69,7 @@ int
 nv94_sor_dp_lnk_pwr(struct nvkm_output_dp *outp, int nr)
 {
        struct nv50_disp_priv *priv = (void *)nouveau_disp(outp);
+       const u32 soff = nv94_sor_soff(outp);
        const u32 loff = nv94_sor_loff(outp);
        u32 mask = 0, i;
 
@@ -76,6 +77,8 @@ nv94_sor_dp_lnk_pwr(struct nvkm_output_dp *outp, int nr)
                mask |= 1 << (nv94_sor_dp_lane_map(priv, i) >> 3);
 
        nv_mask(priv, 0x61c130 + loff, 0x0000000f, mask);
+       nv_mask(priv, 0x61c034 + soff, 0x80000000, 0x80000000);
+       nv_wait(priv, 0x61c034 + soff, 0x80000000, 0x00000000);
        return 0;
 }