summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2011-03-24 12:37:03 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2011-03-31 10:31:12 +0200
commit9f01b25048ad12b5d71f4f7d3b62ef737639a08d (patch)
tree8c718b415d6af80ab838490f8b09e8710b5e109f
parentdrm/i915/lvds: Always return connected in the absence of better information (diff)
downloadlinux-9f01b25048ad12b5d71f4f7d3b62ef737639a08d.tar.xz
linux-9f01b25048ad12b5d71f4f7d3b62ef737639a08d.zip
drm/i915: Busy-spin wait_for condition in atomic contexts
During modesetting, we need to wait for the hardware to report readiness by polling the registers. Normally, we call msleep() between reads, because some state changes may take a whole vblank or more to complete. However during a panic, we are in an atomic context and cannot sleep. Instead, busy spin polling the termination condition. References: https://bugzilla.kernel.org/show_bug.cgi?id=31772 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Keith Packard <keithp@keithp.com> Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
-rw-r--r--drivers/gpu/drm/i915/intel_drv.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index 5daa991cb287..f5b0d8306d83 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -39,7 +39,7 @@
ret__ = -ETIMEDOUT; \
break; \
} \
- if (W && !in_dbg_master()) msleep(W); \
+ if (W && !(in_atomic() || in_dbg_master())) msleep(W); \
} \
ret__; \
})