This patchset updates the ADLP TypeC PHY connect/disconnect sequences that changed in Bspec. The change in the power domains used and order of enabling these wrt. taking the PHY ownership domains requires moving these sequences to platform specific hooks; the first part of the patchset adds these along with other hooks to setup/query the PHY HW state, replacing the corresponding if ladders. The second part of the patchset adds the ADLP specific hooks, updating the connect/disconnect sequences and hotplug detection for it according to bspec. The last part makes sure that the port DPLL is disabled before disconnecting the TC PHY, as required by bspec. Tested on ICL, TGL, ADLP. Imre Deak (29): drm/i915/tc: Group the TC PHY setup/query functions per platform drm/i915/tc: Use the adlp prefix for ADLP TC PHY functions drm/i915/tc: Rename tc_phy_status_complete() to tc_phy_is_ready() drm/i915/tc: Use the tc_phy prefix for all TC PHY functions drm/i915/tc: Move TC port fields to a new intel_tc_port struct drm/i915/tc: Check for TC PHY explicitly in intel_tc_port_fia_max_lane_count() drm/i915/tc: Move the intel_tc_port struct declaration to intel_tc.c drm/i915/tc: Add TC PHY hook to get the PHY HPD live status drm/i915/tc: Add TC PHY hooks to get the PHY ready/owned state drm/i915/tc: Add TC PHY hook to read out the PHY HW state drm/i915/tc: Add generic TC PHY connect/disconnect handlers drm/i915/tc: Factor out tc_phy_verify_legacy_or_dp_alt_mode() drm/i915/tc: Add TC PHY hooks to connect/disconnect the PHY drm/i915/tc: Fix up the legacy VBT flag only in disconnected mode drm/i915/tc: Check TC mode instead of the VBT legacy flag drm/i915/tc: Block/unblock TC-cold in the PHY connect/disconnect hooks drm/i915/tc: Remove redundant wakeref=0 check from unblock_tc_cold() drm/i915/tc: Drop tc_cold_block()/unblock()'s power domain parameter drm/i915/tc: Add TC PHY hook to get the TC-cold blocking power domain drm/i915/tc: Add asserts in TC PHY hooks that the required power is on drm/i915/tc: Add TC PHY hook to init the PHY drm/i915/adlp/tc: Use the DE HPD ISR register for hotplug detection drm/i915/tc: Get power ref for reading the HPD live status register drm/i915/tc: Don't connect the PHY in intel_tc_port_connected() drm/i915/adlp/tc: Align the connect/disconnect PHY sequence with bspec drm/i915: Move shared DPLL disabling into CRTC disable hook drm/i915: Disable DPLLs before disconnecting the TC PHY drm/i915: Remove TC PHY disconnect workaround drm/i915: Remove the encoder update_prepare()/complete() hooks drivers/gpu/drm/i915/display/intel_ddi.c | 71 +- drivers/gpu/drm/i915/display/intel_display.c | 85 +- drivers/gpu/drm/i915/display/intel_display.h | 7 - .../drm/i915/display/intel_display_types.h | 19 +- drivers/gpu/drm/i915/display/intel_dp_mst.c | 15 + drivers/gpu/drm/i915/display/intel_tc.c | 1248 +++++++++++------ drivers/gpu/drm/i915/display/intel_tc.h | 4 +- drivers/gpu/drm/i915/i915_pci.c | 3 - drivers/gpu/drm/i915/intel_device_info.h | 1 - 9 files changed, 850 insertions(+), 603 deletions(-) -- 2.37.1