aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2014-06-02 22:56:18 -0400
committerBen Skeggs <bskeggs@redhat.com>2014-06-11 02:11:19 -0400
commit3e1eb5cf7c25dee269b9873588a8beecc7a7265a (patch)
tree2af6c8611e7da98de9360504063d061565e1cdf5
parent7a14bc783edbc7fecdb7031e3a2b816a339d24ee (diff)
drm/g94-/disp/dp: take max pullup value across all lanes
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/disp/sornv94.c4
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/disp/sornvd0.c4
2 files changed, 6 insertions, 2 deletions
diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/sornv94.c b/drivers/gpu/drm/nouveau/core/engine/disp/sornv94.c
index d4dfcde0a95d..05487cda84a8 100644
--- a/drivers/gpu/drm/nouveau/core/engine/disp/sornv94.c
+++ b/drivers/gpu/drm/nouveau/core/engine/disp/sornv94.c
@@ -127,7 +127,9 @@ nv94_sor_dp_drv_ctl(struct nvkm_output_dp *outp, int ln, int vs, int pe, int pc)
127 127
128 data[0] = nv_rd32(priv, 0x61c118 + loff) & ~(0x000000ff << shift); 128 data[0] = nv_rd32(priv, 0x61c118 + loff) & ~(0x000000ff << shift);
129 data[1] = nv_rd32(priv, 0x61c120 + loff) & ~(0x000000ff << shift); 129 data[1] = nv_rd32(priv, 0x61c120 + loff) & ~(0x000000ff << shift);
130 data[2] = nv_rd32(priv, 0x61c130 + loff) & ~(0x0000ff00); 130 data[2] = nv_rd32(priv, 0x61c130 + loff);
131 if ((data[2] & 0x0000ff00) < (ocfg.tx_pu << 8) || ln == 0)
132 data[2] = (data[2] & ~0x0000ff00) | (ocfg.tx_pu << 8);
131 nv_wr32(priv, 0x61c118 + loff, data[0] | (ocfg.dc << shift)); 133 nv_wr32(priv, 0x61c118 + loff, data[0] | (ocfg.dc << shift));
132 nv_wr32(priv, 0x61c120 + loff, data[1] | (ocfg.pe << shift)); 134 nv_wr32(priv, 0x61c120 + loff, data[1] | (ocfg.pe << shift));
133 nv_wr32(priv, 0x61c130 + loff, data[2] | (ocfg.tx_pu << 8)); 135 nv_wr32(priv, 0x61c130 + loff, data[2] | (ocfg.tx_pu << 8));
diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/sornvd0.c b/drivers/gpu/drm/nouveau/core/engine/disp/sornvd0.c
index 0055f869c507..97f0e9cd3d40 100644
--- a/drivers/gpu/drm/nouveau/core/engine/disp/sornvd0.c
+++ b/drivers/gpu/drm/nouveau/core/engine/disp/sornvd0.c
@@ -105,7 +105,9 @@ nvd0_sor_dp_drv_ctl(struct nvkm_output_dp *outp, int ln, int vs, int pe, int pc)
105 105
106 data[0] = nv_rd32(priv, 0x61c118 + loff) & ~(0x000000ff << shift); 106 data[0] = nv_rd32(priv, 0x61c118 + loff) & ~(0x000000ff << shift);
107 data[1] = nv_rd32(priv, 0x61c120 + loff) & ~(0x000000ff << shift); 107 data[1] = nv_rd32(priv, 0x61c120 + loff) & ~(0x000000ff << shift);
108 data[2] = nv_rd32(priv, 0x61c130 + loff) & ~(0x0000ff00); 108 data[2] = nv_rd32(priv, 0x61c130 + loff);
109 if ((data[2] & 0x0000ff00) < (ocfg.tx_pu << 8) || ln == 0)
110 data[2] = (data[2] & ~0x0000ff00) | (ocfg.tx_pu << 8);
109 nv_wr32(priv, 0x61c118 + loff, data[0] | (ocfg.dc << shift)); 111 nv_wr32(priv, 0x61c118 + loff, data[0] | (ocfg.dc << shift));
110 nv_wr32(priv, 0x61c120 + loff, data[1] | (ocfg.pe << shift)); 112 nv_wr32(priv, 0x61c120 + loff, data[1] | (ocfg.pe << shift));
111 nv_wr32(priv, 0x61c130 + loff, data[2] | (ocfg.tx_pu << 8)); 113 nv_wr32(priv, 0x61c130 + loff, data[2] | (ocfg.tx_pu << 8));