]> www.infradead.org Git - users/jedix/linux-maple.git/commit
drm/i915/crt: Use intel_hpd_block/unblock() instead of intel_hpd_disable/enable()
authorImre Deak <imre.deak@intel.com>
Tue, 4 Mar 2025 15:29:17 +0000 (17:29 +0200)
committerImre Deak <imre.deak@intel.com>
Tue, 11 Mar 2025 09:15:27 +0000 (11:15 +0200)
commit6ace085c453ccdcad34e64eead21eb120270c383
treec7c5e40f348843775fbcde2972e3837091c8f9a9
parent29c09cf200f736138707857696d1f6db2db0299b
drm/i915/crt: Use intel_hpd_block/unblock() instead of intel_hpd_disable/enable()

intel_hpd_disable/enable() have the same purpose as
intel_hpd_block/unblock(), except that disable/enable will drop any HPD
IRQs which were triggered while the HPD was disabled, while
block/unblock will handle such IRQs after the IRQ handling is unblocked.
Use intel_hpd_block/unblock() for crt as well, by adding a helper to
explicitly clear any pending IRQs before unblocking.

v2:
- Handle encoders without a port assigned to them.
- Rebase on change in intel_hpd_suspend() documentation.
v3:
- Rebase on the suspend/resume -> block/unblock rename change.
- Clear the pending events only after all encoders have unblocked the
  HPD handling.
- Clear the short/long port events for all encoders using the given HPD
  pin.
v4:
- Rebase on port->hpd_pin tracking. (Ville)

Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20250304152917.3407080-7-imre.deak@intel.com
drivers/gpu/drm/i915/display/intel_crt.c
drivers/gpu/drm/i915/display/intel_hotplug.c
drivers/gpu/drm/i915/display/intel_hotplug.h