From: Daniel Vetter <[email protected]> Only do it in the hope of resurrecting the gpu. Disable when reset is disabled because it seems to tremendously increases our changes to actually capture an error_state before the system goes all belly-up.
Signed-off-by: Daniel Vetter <[email protected]> Signed-off-by: Ben Widawsky <[email protected]> --- drivers/gpu/drm/i915/i915_drv.c | 2 +- drivers/gpu/drm/i915/i915_drv.h | 1 + drivers/gpu/drm/i915/i915_irq.c | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c index b79c6f1..ad85c13 100644 --- a/drivers/gpu/drm/i915/i915_drv.c +++ b/drivers/gpu/drm/i915/i915_drv.c @@ -91,7 +91,7 @@ MODULE_PARM_DESC(vbt_sdvo_panel_type, "Override selection of SDVO panel mode in the VBT " "(default: auto)"); -static bool i915_try_reset __read_mostly = true; +bool i915_try_reset __read_mostly = true; module_param_named(reset, i915_try_reset, bool, 0600); MODULE_PARM_DESC(reset, "Attempt GPU resets (default: true)"); diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index d4e8d42..1b14a62 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h @@ -1001,6 +1001,7 @@ extern unsigned int i915_semaphores __read_mostly; extern unsigned int i915_lvds_downclock __read_mostly; extern unsigned int i915_panel_use_ssc __read_mostly; extern int i915_vbt_sdvo_panel_type __read_mostly; +extern bool i915_try_reset __read_mostly; extern unsigned int i915_enable_rc6 __read_mostly; extern unsigned int i915_enable_fbc __read_mostly; extern bool i915_enable_hangcheck __read_mostly; diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c index 7f228ec..b15fc4a 100644 --- a/drivers/gpu/drm/i915/i915_irq.c +++ b/drivers/gpu/drm/i915/i915_irq.c @@ -1764,7 +1764,7 @@ void i915_hangcheck_elapsed(unsigned long data) if (gpu_stuck(dev)) { DRM_ERROR("Hangcheck timer elapsed... GPU hung\n"); - if (!IS_GEN2(dev)) { + if (!IS_GEN2(dev) && i915_try_reset) { /* Is the chip hanging on a WAIT_FOR_EVENT? * If so we can simply poke the RB_WAIT bit * and break the hang. This should work on -- 1.7.6.4 _______________________________________________ Intel-gfx mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/intel-gfx
