APPLIED Re: [SRU] [PULL] [OEM-6.1] [PATCH 00/65] Fix BIOS IPCS issue

Timo Aaltonen tjaalton at ubuntu.com
Tue Jun 13 13:42:51 UTC 2023


Kai-Heng Feng kirjoitti 31.5.2023 klo 2.59:
> [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
> 

this got merged via gitea

-- 
t




More information about the kernel-team mailing list