]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915: Fix hotplug irq ack on i965/g4x
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Thu, 14 Jun 2018 17:56:25 +0000 (20:56 +0300)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Wed, 4 Jul 2018 20:03:30 +0000 (23:03 +0300)
commit86f3c6313700e131d2d1bc878fe43ff26741729e
treebbfb70ba78517fd281c43a40916306150bb7942f
parentb3c6c333807f1926b4971ba28fe3001c301b16dd
drm/i915: Fix hotplug irq ack on i965/g4x

Just like with PIPESTAT, the edge triggered IIR on i965/g4x
also causes problems for hotplug interrupts. To make sure
we don't get the IIR port interrupt bit stuck low with the
ISR bit high we must force an edge in ISR. Unfortunately
we can't borrow the PIPESTAT trick and toggle the enable
bits in PORT_HOTPLUG_EN as that act itself generates hotplug
interrupts. Instead we just have to loop until we've cleared
PORT_HOTPLUG_STAT, or we just give up and WARN.

v2: Don't frob with PORT_HOTPLUG_EN

Cc: stable@vger.kernel.org
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180614175625.1615-1-ville.syrjala@linux.intel.com
Reviewed-by: Imre Deak <imre.deak@intel.com>
drivers/gpu/drm/i915/i915_irq.c