summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmil Velikov <eeydev@nottingham.ac.uk>2010-09-26 20:26:02 +0100
committerBen Skeggs <bskeggs@redhat.com>2010-10-05 09:59:34 +1000
commiteadc69cc9054594ff7860d407f855536af13af99 (patch)
tree1076b2a26039a15a0ee29ec6f9c686bda6c51631
parent8af29ccd7917ab448ea7b5cf581fa7b2b4ea3cba (diff)
drm/nouveau: don't use the default pll limits in table v2.1 on nv50+ cards
This fixes issues bug 30370 and prevents another possible divide by zero on the original nv50 cards, by returning -ENOENT Signed-off-by: Emil Velikov <eeydev@nottingham.ac.uk> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_bios.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_bios.c b/drivers/gpu/drm/nouveau/nouveau_bios.c
index c66d4567a2ed..53f4eba65cb9 100644
--- a/drivers/gpu/drm/nouveau/nouveau_bios.c
+++ b/drivers/gpu/drm/nouveau/nouveau_bios.c
@@ -4890,6 +4890,12 @@ int get_pll_limits(struct drm_device *dev, uint32_t limit_match, struct pll_lims
break;
}
+ if ((dev_priv->card_type >= NV_50) && (pllindex == 0)) {
+ NV_ERROR(dev, "Register 0x%08x not found in PLL "
+ "limits table", pll_lim->reg);
+ return -ENOENT;
+ }
+
pll_rec = &bios->data[plloffs + recordlen * pllindex];
BIOSLOG(bios, "Loading PLL limits for reg 0x%08x\n",