[SRU] [PULL] [OEM-6.1] [PATCH 00/65] Fix BIOS IPCS issue
Kai-Heng Feng
kai.heng.feng at canonical.com
Tue May 30 23:59:51 UTC 2023
[Impact]
When a dGPU on a laptop is in PCIe D3cold and TBT port is connected to a
monitor via a cable, unplugging the cable will make the dGPU unable to
resume to D0.
[Fix]
There's a part of system firmware, IOM, need the driver to disconnect
all TBT/Type-C phy to let dGPU function normally.
[Test]
With the fix applied, the dGPU continues to work after replugging video
cable many times.
[Where problems could occur]
The fix is composed of several overhaul, so regression is not unlikely
to happen to i915 GFX driver. To limit the scope of impact, the fix only
targets OEM kernel for now.
---
The following changes since commit edcf03e539941620a169ffdd45d61bbc8c9647e5:
UBUNTU: Ubuntu-oem-6.1-6.1.0-1014.14 (2023-05-19 07:55:39 +0300)
are available in the Git repository at:
git+ssh://kaihengfeng@git.launchpad.net/~kaihengfeng/+git/linux ipcs-6.1
for you to fetch changes up to f5ff2f45aee01a79fb59064553408ba2806ed934:
drm/i915/tc: Reset TypeC PHYs left enabled in DP-alt mode after the sink disconnects (2023-05-30 23:26:28 +0800)
----------------------------------------------------------------
Andrzej Hajda (4):
drm/i915/display: Use intel_uncore alias if defined
drm/i915: make intel_uncore_rmw() write unconditionally
drm/i915: use proper helper for register updates
drm/i915: fix clear mask in GEN7_MISCCPCTL update
Imre Deak (56):
drm/i915: Fix TypeC mode initialization during system resume
drm/i915: Enable a PIPEDMC whenever its corresponding pipe is enabled
drm/i915/tc: Fix TC port link ref init for DP MST during HW readout
drm/i915/tc: Fix system resume MST mode restore for DP-alt sinks
drm/i915/tc: Wait for IOM/FW PHY initialization of legacy TC ports
drm/i915/tc: Factor out helpers converting HPD mask to TC mode
drm/i915/tc: Fix target TC mode for a disconnected legacy port
drm/i915/tc: Fix TC mode for a legacy port if the PHY is not ready
drm/i915/tc: Fix initial TC mode on disabled legacy ports
drm/i915/tc: Make the TC mode readout consistent in all PHY states
drm/i915: Add encoder hook to get the PLL type used by TC ports
drm/i915/tc: Assume a TC port is legacy if VBT says the port has HDMI
drm/i915/tc: Factor out a function querying active links on a TC port
drm/i915/tc: Check the PLL type used by an enabled TC port
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
drm/i915/dp_mst: Fix active port PLL selection for secondary MST streams
drm/i915: Fix PIPEDMC disabling for a bigjoiner configuration
drm/i915: Add helpers to reference/unreference a DPLL for a CRTC
drm/i915: Make the CRTC state consistent during sanitize-disabling
drm/i915: Update connector atomic state before crtc sanitize-disabling
drm/i915: Separate intel_crtc_disable_noatomic_begin/complete()
drm/i915: Factor out set_encoder_for_connector()
drm/i915: Add support for disabling any CRTCs during HW readout/sanitization
drm/i915/dp: Prevent link training fallback on disconnected port
drm/i915/dp: Factor out intel_dp_get_active_pipes()
drm/i915: Factor out a helper for handling atomic modeset locks/state
drm/i915/tc: Call TypeC port flush_work/cleanup without modeset locks held
drm/i915/tc: Reset TypeC PHYs left enabled in DP-alt mode after the sink disconnects
Jani Nikula (1):
drm/i915/tc: switch to intel_de_* register accessors in display code
Ville Syrjälä (4):
drm/i915: Always initialize dpll.lock
drm/i915: Nuke intel_get_shared_dpll_id()
drm/i915: Pimp DPLL ref/unref debugs
drm/i915: WARN if PLL ref/unref got messed up
drivers/gpu/drm/i915/Makefile | 1 +
drivers/gpu/drm/i915/display/intel_ddi.c | 192 ++-
drivers/gpu/drm/i915/display/intel_ddi.h | 6 +
drivers/gpu/drm/i915/display/intel_display.c | 100 +-
drivers/gpu/drm/i915/display/intel_display.h | 8 +-
drivers/gpu/drm/i915/display/intel_display_types.h | 35 +-
drivers/gpu/drm/i915/display/intel_dmc.c | 24 +
drivers/gpu/drm/i915/display/intel_dmc.h | 4 +
drivers/gpu/drm/i915/display/intel_dmc_regs.h | 10 +
drivers/gpu/drm/i915/display/intel_dp.c | 20 +-
drivers/gpu/drm/i915/display/intel_dp.h | 3 +
.../gpu/drm/i915/display/intel_dp_link_training.c | 10 +
drivers/gpu/drm/i915/display/intel_dp_mst.c | 22 +
drivers/gpu/drm/i915/display/intel_dpll_mgr.c | 81 +-
drivers/gpu/drm/i915/display/intel_dpll_mgr.h | 6 +-
drivers/gpu/drm/i915/display/intel_modeset_lock.c | 50 +
drivers/gpu/drm/i915/display/intel_modeset_lock.h | 33 +
drivers/gpu/drm/i915/display/intel_modeset_setup.c | 325 +++-
drivers/gpu/drm/i915/display/intel_tc.c | 1634 ++++++++++++++------
drivers/gpu/drm/i915/display/intel_tc.h | 14 +-
drivers/gpu/drm/i915/i915_driver.c | 16 +
drivers/gpu/drm/i915/i915_irq.c | 237 ++-
drivers/gpu/drm/i915/i915_pci.c | 3 -
drivers/gpu/drm/i915/intel_device_info.h | 1 -
drivers/gpu/drm/i915/intel_pm.c | 60 +-
drivers/gpu/drm/i915/intel_uncore.h | 8 +-
drivers/gpu/drm/i915/vlv_suspend.c | 28 +-
27 files changed, 1979 insertions(+), 952 deletions(-)
create mode 100644 drivers/gpu/drm/i915/display/intel_modeset_lock.c
create mode 100644 drivers/gpu/drm/i915/display/intel_modeset_lock.h
More information about the kernel-team
mailing list