Based on my ideas at [1], pass the encoder around more instead of i915, port pair. Look up phy and TC port based on encoder. This could be later extended to e.g. cache the info to encoder and/or look up data from encoder->devdata. I know relying solely on encoder has its drawbacks, namely not being able to do stuff unless you have that encoder for that specific port/phy. And have a reference to it. Thoughts? BR, Jani. [1] https://lore.kernel.org/r/87y1dnswgo.fsf@xxxxxxxxx Jani Nikula (7): drm/hdmi: convert *_port_to_ddc_pin() to *_encoder_to_ddc_pin() drm/i915/ddi: pass encoder to intel_wait_ddi_buf_active() drm/i915/snps: pass encoder to intel_snps_phy_update_psr_power_state() drm/i915/display: add intel_encoder_is_*() and _to_*() functions drm/i915/display: use intel_encoder_is/to_* functions drm/i915/cx0: remove intel_is_c10phy() drm/i915/cx0: pass encoder instead of i915 and port around drivers/gpu/drm/i915/display/intel_cx0_phy.c | 299 +++++++++--------- drivers/gpu/drm/i915/display/intel_cx0_phy.h | 3 +- drivers/gpu/drm/i915/display/intel_ddi.c | 127 ++++---- .../drm/i915/display/intel_ddi_buf_trans.c | 14 +- drivers/gpu/drm/i915/display/intel_display.c | 40 +++ drivers/gpu/drm/i915/display/intel_display.h | 7 + .../i915/display/intel_display_power_well.c | 2 +- drivers/gpu/drm/i915/display/intel_dp.c | 15 +- drivers/gpu/drm/i915/display/intel_dpll_mgr.c | 22 +- drivers/gpu/drm/i915/display/intel_hdmi.c | 80 ++--- drivers/gpu/drm/i915/display/intel_pmdemand.c | 14 +- drivers/gpu/drm/i915/display/intel_psr.c | 7 +- drivers/gpu/drm/i915/display/intel_snps_phy.c | 16 +- drivers/gpu/drm/i915/display/intel_snps_phy.h | 4 +- drivers/gpu/drm/i915/display/intel_tc.c | 33 +- 15 files changed, 339 insertions(+), 344 deletions(-) -- 2.39.2