aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/nvidia/nv_local.h
diff options
context:
space:
mode:
authorDave Jones <davej@redhat.com>2007-05-08 03:39:35 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-05-08 14:15:32 -0400
commite15de77e74d429f14641ebe7a29ccd8aa6656f3c (patch)
tree8cfca1fbea8c7357c1575e34243ac7425bb8d6e4 /drivers/video/nvidia/nv_local.h
parentd4a96b53125c3d31266c05f2a8432d956dd26141 (diff)
nvidiafb: prevent triggering of softlockup
If the chip locks up, we get into a long polling loop, where the softlockup detector kicks in. See https://bugzilla.redhat.com/bugzilla/attachment.cgi?id=151878 for an example. [adaplas] Chip lockup can occur at 3 points (flush, sync, and wait). Consolidate and allow the driver to go to safe mode cleanly. Signed-off-by: Dave Jones <davej@redhat.com> Signed-off-by: Antonino Daplas <adaplas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/video/nvidia/nv_local.h')
-rw-r--r--drivers/video/nvidia/nv_local.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/video/nvidia/nv_local.h b/drivers/video/nvidia/nv_local.h
index e009d242ea10..68e508daa417 100644
--- a/drivers/video/nvidia/nv_local.h
+++ b/drivers/video/nvidia/nv_local.h
@@ -73,9 +73,9 @@
73#define NVDmaNext(par, data) \ 73#define NVDmaNext(par, data) \
74 NV_WR32(&(par)->dmaBase[(par)->dmaCurrent++], 0, (data)) 74 NV_WR32(&(par)->dmaBase[(par)->dmaCurrent++], 0, (data))
75 75
76#define NVDmaStart(par, tag, size) { \ 76#define NVDmaStart(info, par, tag, size) { \
77 if((par)->dmaFree <= (size)) \ 77 if((par)->dmaFree <= (size)) \
78 NVDmaWait(par, size); \ 78 NVDmaWait(info, size); \
79 NVDmaNext(par, ((size) << 18) | (tag)); \ 79 NVDmaNext(par, ((size) << 18) | (tag)); \
80 (par)->dmaFree -= ((size) + 1); \ 80 (par)->dmaFree -= ((size) + 1); \
81} 81}