diff options
author | Imre Deak <imre.deak@intel.com> | 2021-05-26 17:37:27 +0300 |
---|---|---|
committer | Imre Deak <imre.deak@intel.com> | 2021-06-03 19:22:48 +0300 |
commit | 4a300e65b59b6625a9c258902e6e976054333642 (patch) | |
tree | 4ac32a909b78874f01ef9c59f6537314c57e9e75 | |
parent | 3ed131e5a43b469afcb1dd6d24399e05ce1f0eb0 (diff) |
drm/i915/ddi: Flush encoder power domain ref puts during driver unload
An async-put on an encoder specific power domain (for instance the AUX
PW domain) may be pending when removing the encoder. Make sure any such
async-puts are complete while the corresponding encoder is still in place
since at least AUX power wells require this to do a power well->PHY
lookup.
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Anshuman Gupta <anshuman.gupta@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210526143729.2563672-1-imre.deak@intel.com
-rw-r--r-- | drivers/gpu/drm/i915/display/intel_ddi.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c index 4d6f1a206f56..0b7fef527e20 100644 --- a/drivers/gpu/drm/i915/display/intel_ddi.c +++ b/drivers/gpu/drm/i915/display/intel_ddi.c @@ -4063,9 +4063,11 @@ static int intel_ddi_compute_config_late(struct intel_encoder *encoder, static void intel_ddi_encoder_destroy(struct drm_encoder *encoder) { + struct drm_i915_private *i915 = to_i915(encoder->dev); struct intel_digital_port *dig_port = enc_to_dig_port(to_intel_encoder(encoder)); intel_dp_encoder_flush_work(encoder); + intel_display_power_flush_work(i915); drm_encoder_cleanup(encoder); if (dig_port) |