]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915: Restore interrupt enabling after a reset
authorChris Wilson <chris@chris-wilson.co.uk>
Mon, 18 Feb 2019 15:31:06 +0000 (15:31 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Mon, 18 Feb 2019 16:19:35 +0000 (16:19 +0000)
commitd448362e3bce610e0bd05da2761388c42f7665e4
treea87e5fdb3c6c8df37649f35aabd126727d7c0053
parent3313fcd9bc9d5e8f9a217fe12a5037f1bfc0e825
drm/i915: Restore interrupt enabling after a reset

At least on i965g and i965gm, performing a device reset clobbers the IER
resulting in loss of interrupts thereafter. So, run the irq_postinstall
hook to restore them.

v2: Ville pointed out that he already attempted to solve this problem by
reinstalling the interrupts in intel_reset_finish() (part of the display
handling around reset). However, reinstalling the irq clobbers the
i915->irq_mask which we need for handling MI_USER_INTERRUPTS, and does
so too late to handle any interrupts generated from resuming the rings.
The simple solution to both is to pull the interrupt reenabling from
afterwards to around the device reset.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190218153106.16768-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/i915_reset.c
drivers/gpu/drm/i915/intel_display.c