summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2012-03-16 15:32:16 +1000
committerBen Skeggs <bskeggs@redhat.com>2012-03-22 17:18:00 +1000
commitdd62608bcc8a629c4c583fb50b90003fd5213516 (patch)
tree81a52947d3f7a0522353828340eb6e8d4fa04eed
parent27100ac95a8eee0b083e46bfa67b229ac641d28c (diff)
downloadlinux-3.10-dd62608bcc8a629c4c583fb50b90003fd5213516.tar.gz
linux-3.10-dd62608bcc8a629c4c583fb50b90003fd5213516.tar.bz2
linux-3.10-dd62608bcc8a629c4c583fb50b90003fd5213516.zip
drm/nvd0/disp: ignore clock set if no pclk
This happens somehow during init on a machine I have, and leads to a divide-by-zero. Lets avoid that... Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
-rw-r--r--drivers/gpu/drm/nouveau/nvd0_display.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/gpu/drm/nouveau/nvd0_display.c b/drivers/gpu/drm/nouveau/nvd0_display.c
index 5e2b79bdcae..421d301b379 100644
--- a/drivers/gpu/drm/nouveau/nvd0_display.c
+++ b/drivers/gpu/drm/nouveau/nvd0_display.c
@@ -1661,7 +1661,9 @@ nvd0_display_unk2_handler(struct drm_device *dev, u32 crtc, u32 mask)
}
pclk = nv_rd32(dev, 0x660450 + (crtc * 0x300)) / 1000;
- if (mask & 0x00010000) {
+ NV_DEBUG_KMS(dev, "PDISP: crtc %d pclk %d mask 0x%08x\n",
+ crtc, pclk, mask);
+ if (pclk && (mask & 0x00010000)) {
nv50_crtc_set_clock(dev, crtc, pclk);
}