summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau/nouveau_dp.c
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2011-08-05 10:28:52 +1000
committerBen Skeggs <bskeggs@redhat.com>2011-09-20 16:10:56 +1000
commit856ed888754e98b5933878f56b9c540b68dab1d6 (patch)
tree1fbbced254a37cc9c40fe0a4ef2170d4ec7d65f0 /drivers/gpu/drm/nouveau/nouveau_dp.c
parent1262a206da7d28340dfce954e31bd5fe5ae9e2dd (diff)
drm/nouveau/dp: link rate scripts are selected with a comparison table
Not hardcoded as originally thought. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/nouveau_dp.c')
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_dp.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_dp.c b/drivers/gpu/drm/nouveau/nouveau_dp.c
index 89d5c161c8b..55782bd7df0 100644
--- a/drivers/gpu/drm/nouveau/nouveau_dp.c
+++ b/drivers/gpu/drm/nouveau/nouveau_dp.c
@@ -314,11 +314,10 @@ dp_set_link_config(struct drm_device *dev, struct dp_state *dp)
*/
bios = nouveau_bios_dp_table(dev, dp->dcb, &headerlen);
if (bios && (bios = ROMPTR(&dev_priv->vbios, bios[10]))) {
- u16 script = ROM16(bios[2]);
- if (dp->link_bw != 270000)
- script = ROM16(bios[6]);
+ while (dp->link_bw < (ROM16(bios[0]) * 10))
+ bios += 4;
- nouveau_bios_run_init_table(dev, script, dp->dcb, dp->crtc);
+ nouveau_bios_run_init_table(dev, ROM16(bios[2]), dp->dcb, dp->crtc);
}
/* configure lane count on the source */