mirror_ubuntu-kernels/drivers/gpu/drm/i915
Imre Deak ed0ccf349f drm/i915: Disconnect PHYs left connected by BIOS on disabled ports
BIOS may leave a TypeC PHY in a connected state even though the
corresponding port is disabled. This will prevent any hotplug events
from being signalled (after the monitor deasserts and then reasserts its
HPD) until the PHY is disconnected and so the driver will not detect a
connected sink. Rebooting with the PHY in the connected state also
results in a system hang.

Fix the above by disconnecting TypeC PHYs on disabled ports.

Before commit 64851a32c4 the PHY connected state was read out even
for disabled ports and later the PHY got disconnected as a side effect
of a tc_port_lock/unlock() sequence (during connector probing), hence
recovering the port's hotplug functionality.

Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/5014
Fixes: 64851a32c4 ("drm/i915/tc: Add a mode for the TypeC PHY's disconnected state")
Cc: <stable@vger.kernel.org> # v5.16+
Cc: José Roberto de Souza <jose.souza@intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220217152237.670220-1-imre.deak@intel.com
2022-02-18 12:39:20 +02:00
..
display drm/i915: Disconnect PHYs left connected by BIOS on disabled ports 2022-02-18 12:39:20 +02:00
gem drm/i915: Move MCHBAR registers to their own header 2022-02-16 12:29:47 -08:00
gt drm/i915/lrc: replace include with forward declarations 2022-02-17 15:42:22 +02:00
gvt drm/i915/gvt: #include drm_edid.h for drm_edid_block_valid() 2022-02-17 08:55:25 +02:00
pxp drm/i915: Move GT registers to their own header file 2022-02-02 07:59:14 -08:00
selftests drm/i915/selftests: Disable runtime pm wakeref tracking for the mock device 2022-02-11 13:22:10 +02:00
.gitignore
i915_active_types.h drm/i915/active: remove useless i915_utils.h include 2021-12-13 12:04:44 +02:00
i915_active.c drm/i915: Remove unused bits of i915_vma/active api 2021-12-20 16:26:09 +01:00
i915_active.h drm/i915: Remove unused bits of i915_vma/active api 2021-12-20 16:26:09 +01:00
i915_buddy.c
i915_buddy.h
i915_cmd_parser.c drm/i915: don't include drm_cache.h in i915_drv.h 2022-02-14 13:19:37 +02:00
i915_cmd_parser.h drm/i915: split out i915_cmd_parser.h from i915_drv.h 2022-01-10 15:43:09 +02:00
i915_config.c drm/i915: remove IS_ACTIVE 2021-10-07 11:04:05 -07:00
i915_debugfs_params.c drm/i915: Use to_gt() helper 2021-12-17 21:51:59 -08:00
i915_debugfs_params.h
i915_debugfs.c drm/i915: Move MCHBAR registers to their own header 2022-02-16 12:29:47 -08:00
i915_debugfs.h
i915_deps.c drm/i915: Break out the i915_deps utility 2021-12-22 08:52:57 +01:00
i915_deps.h drm/i915: Break out the i915_deps utility 2021-12-22 08:52:57 +01:00
i915_driver.c drm/i915: split out i915_file_private.h from i915_drv.h 2022-02-14 13:16:28 +02:00
i915_driver.h drm/i915: move the DRIVER_* macros to i915_driver.[ch] 2022-02-10 11:44:25 +02:00
i915_drv.h drm/i915: fix drm_i915.h include grouping and sorting 2022-02-14 14:16:55 +02:00
i915_file_private.h drm/i915: split out i915_file_private.h from i915_drv.h 2022-02-14 13:16:28 +02:00
i915_fixed.h
i915_gem_evict.c drm/i915: split out i915_gem_evict.h from i915_drv.h 2022-01-10 15:43:12 +02:00
i915_gem_evict.h drm/i915: split out i915_gem_evict.h from i915_drv.h 2022-01-10 15:43:12 +02:00
i915_gem_gtt.c drm/i915: split out i915_gem_evict.h from i915_drv.h 2022-01-10 15:43:12 +02:00
i915_gem_gtt.h
i915_gem_ww.c
i915_gem_ww.h
i915_gem.c drm/i915: don't include drm_cache.h in i915_drv.h 2022-02-14 13:19:37 +02:00
i915_gem.h
i915_getparam.c Merge drm/drm-next into drm-intel-next 2022-01-31 13:19:33 -05:00
i915_getparam.h drm/i915: split out i915_getparam.h from i915_drv.h 2022-01-10 15:43:05 +02:00
i915_gpu_error.c drm/i915: don't include drm_cache.h in i915_drv.h 2022-02-14 13:19:37 +02:00
i915_gpu_error.h drm/i915: move i915_reset_count()/i915_reset_engine_count() out of i915_drv.h 2022-02-14 13:07:11 +02:00
i915_ioc32.c drm/i915: split out i915_getparam.h from i915_drv.h 2022-01-10 15:43:05 +02:00
i915_ioc32.h
i915_ioctl.c drm/i915: split out i915_reg_read_ioctl() to i915_ioctl.[ch] 2022-01-21 09:59:22 +02:00
i915_ioctl.h drm/i915: split out i915_reg_read_ioctl() to i915_ioctl.[ch] 2022-01-21 09:59:22 +02:00
i915_iosf_mbi.h drm/i915: abstraction for iosf to compile on all archs 2021-10-27 00:32:01 -07:00
i915_irq.c drm/i915: move the DRIVER_* macros to i915_driver.[ch] 2022-02-10 11:44:25 +02:00
i915_irq.h drm/i915/hpd: hide struct intel_hotplug_funcs 2022-02-09 13:39:35 +02:00
i915_memcpy.c
i915_memcpy.h
i915_mitigations.c drm/i915: move the DRIVER_* macros to i915_driver.[ch] 2022-02-10 11:44:25 +02:00
i915_mitigations.h
i915_mm.c drm/i915: Skip remap_io_mapping() for non-x86 platforms 2021-12-08 13:26:14 -08:00
i915_mm.h drm/i915: Fix header test for !CONFIG_X86 2022-02-03 01:06:56 -08:00
i915_module.c drm/i915: move the DRIVER_* macros to i915_driver.[ch] 2022-02-10 11:44:25 +02:00
i915_params.c drm/i915: Test all device memory on probing 2021-12-14 15:08:20 +05:30
i915_params.h drm/i915: Test all device memory on probing 2021-12-14 15:08:20 +05:30
i915_pci.c drm/i915: include some drm headers only where needed 2022-02-14 13:39:54 +02:00
i915_pci.h
i915_perf_oa_regs.h drm/i915/perf: Express OA register ranges with i915_range 2022-02-02 07:52:23 -08:00
i915_perf_types.h drm/i915: Only include i915_reg.h from .c files 2022-02-02 07:59:54 -08:00
i915_perf.c drm/i915/lrc: move lrc_get_runtime() to intel_lrc.c 2022-02-17 15:42:09 +02:00
i915_perf.h
i915_pmu.c drm/i915: Move GT registers to their own header file 2022-02-02 07:59:14 -08:00
i915_pmu.h
i915_priolist_types.h
i915_pvinfo.h
i915_query.c drm/i915: Use to_gt() helper 2021-12-17 21:51:59 -08:00
i915_query.h
i915_reg_defs.h drm/i915: Add REG_GENMASK64() and REG_FIELD_GET64() 2022-02-16 15:00:57 +02:00
i915_reg.h drm/i915: Polish ilk+ wm register bits 2022-02-18 08:43:51 +02:00
i915_request.c drm/i915: move the DRIVER_* macros to i915_driver.[ch] 2022-02-10 11:44:25 +02:00
i915_request.h drm/i915: Avoid using the i915_fence_array when collecting dependencies 2021-12-22 08:14:30 +01:00
i915_scatterlist.c drm/i915: Introduce refcounted sg-tables 2021-11-01 18:10:49 +01:00
i915_scatterlist.h drm/i915: Introduce refcounted sg-tables 2021-11-01 18:10:49 +01:00
i915_scheduler_types.h
i915_scheduler.c
i915_scheduler.h
i915_selftest.h
i915_suspend.c drm/i915: split out PCI config space registers from i915_reg.h 2022-01-10 16:17:46 +02:00
i915_suspend.h
i915_sw_fence_work.c drm/i915: Drop stealing of bits from i915_sw_fence function pointer 2021-11-30 17:52:15 -08:00
i915_sw_fence_work.h
i915_sw_fence.c drm/i915: Drop stealing of bits from i915_sw_fence function pointer 2021-11-30 17:52:15 -08:00
i915_sw_fence.h drm/i915: Drop stealing of bits from i915_sw_fence function pointer 2021-11-30 17:52:15 -08:00
i915_switcheroo.c drm/i915/driver: add i915_driver_ prefix to functions 2021-11-17 11:47:55 +02:00
i915_switcheroo.h
i915_syncmap.c
i915_syncmap.h
i915_sysfs.c drm/i915: Move GT registers to their own header file 2022-02-02 07:59:14 -08:00
i915_sysfs.h
i915_trace_points.c
i915_trace.h drm/i915/trace: split out display trace to a separate file 2021-12-09 11:21:46 +02:00
i915_ttm_buddy_manager.c
i915_ttm_buddy_manager.h
i915_user_extensions.c
i915_user_extensions.h
i915_utils.c
i915_utils.h drm/i915: nuke local versions of WARN_ON/WARN_ON_ONCE 2022-01-24 14:02:16 +02:00
i915_vgpu.c
i915_vgpu.h
i915_vma_snapshot.c drm/i915: Update error capture code to avoid using the current vma state 2021-12-01 16:53:22 +01:00
i915_vma_snapshot.h drm/i915: Update error capture code to avoid using the current vma state 2021-12-01 16:53:22 +01:00
i915_vma_types.h Merge tag 'drm-intel-gt-next-2021-12-23' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2021-12-24 06:14:51 +10:00
i915_vma.c Merge drm/drm-next into drm-intel-next 2022-01-31 13:19:33 -05:00
i915_vma.h drm/i915: Remove pages_mutex and intel_gtt->vma_ops.set/clear_pages members, v3. 2021-12-20 16:31:02 +01:00
intel_device_info.c drm/i915: Fix trailing semicolon 2022-02-07 12:55:30 -08:00
intel_device_info.h Merge drm/drm-next into drm-intel-next 2022-01-31 13:19:33 -05:00
intel_dram.c drm/i915: Move MCHBAR registers to their own header 2022-02-16 12:29:47 -08:00
intel_dram.h
intel_gvt.c drm/i915: Use to_gt() helper 2021-12-17 21:51:59 -08:00
intel_gvt.h
intel_mchbar_regs.h drm/i915: Clean up SSKPD/MLTR defines 2022-02-18 08:42:17 +02:00
intel_memory_region.c drm/i915: Test all device memory on probing 2021-12-14 15:08:20 +05:30
intel_memory_region.h drm/i915/ttm: Drop region reference counting 2021-11-25 09:36:16 +01:00
intel_pch.c drm/i915/rpl-s: Add PCH Support for Raptor Lake S 2021-12-08 13:03:04 -08:00
intel_pch.h drm/i915/rpl-s: Add PCH Support for Raptor Lake S 2021-12-08 13:03:04 -08:00
intel_pci_config.h drm/i915: split out PCI config space registers from i915_reg.h 2022-01-10 16:17:46 +02:00
intel_pcode.c drm/i915: Only include i915_reg.h from .c files 2022-02-02 07:59:54 -08:00
intel_pcode.h drm/i915/pcode: rename sandybridge_pcode_* to snb_pcode_* 2022-01-13 15:20:57 +02:00
intel_pm_types.h drm/i915: split out intel_pm_types.h 2021-12-03 11:28:12 +02:00
intel_pm.c drm/i915: Polish ilk+ wm register bits 2022-02-18 08:43:51 +02:00
intel_pm.h drm/i915: Workaround broken BIOS DBUF configuration on TGL/RKL 2022-02-07 11:10:32 +02:00
intel_region_ttm.c drm/i915/ttm: Drop region reference counting 2021-11-25 09:36:16 +01:00
intel_region_ttm.h drm/i915/ttm: Drop region reference counting 2021-11-25 09:36:16 +01:00
intel_runtime_pm.c drm/i915/selftests: Disable runtime pm wakeref tracking for the mock device 2022-02-11 13:22:10 +02:00
intel_runtime_pm.h drm/i915/selftests: Disable runtime pm wakeref tracking for the mock device 2022-02-11 13:22:10 +02:00
intel_sbi.c drm/i915: Only include i915_reg.h from .c files 2022-02-02 07:59:54 -08:00
intel_sbi.h drm/i915: rename intel_sideband.[ch] to intel_sbi.[ch] 2021-10-14 18:05:04 +03:00
intel_step.c drm/i915: Rename GT_STEP to GRAPHICS_STEP 2021-11-02 13:05:40 -07:00
intel_step.h drm/i915: Rename GT_STEP to GRAPHICS_STEP 2021-11-02 13:05:40 -07:00
intel_uncore.c drm/i915/gt: Use parameterized RING_MI_MODE 2022-02-16 12:29:46 -08:00
intel_uncore.h drm/i915: Only include i915_reg.h from .c files 2022-02-02 07:59:54 -08:00
intel_wakeref.c
intel_wakeref.h drm/i915/guc: Take engine PM when a context is pinned with GuC submission 2021-10-15 10:37:26 -07:00
intel_wopcm.c drm/i915: Use to_gt() helper 2021-12-17 21:51:59 -08:00
intel_wopcm.h
Kconfig Merge drm/drm-next into drm-intel-next 2021-11-22 17:35:32 +02:00
Kconfig.debug
Kconfig.profile
Kconfig.unstable
Makefile drm/i915: fix build issue when using clang 2022-02-17 09:41:28 +02:00
TODO.txt
vlv_sideband_reg.h drm/i915: split out vlv sideband registers from i915_reg.h 2022-01-10 16:17:50 +02:00
vlv_sideband.c drm/i915: Only include i915_reg.h from .c files 2022-02-02 07:59:54 -08:00
vlv_sideband.h drm/i915: split out vlv sideband registers from i915_reg.h 2022-01-10 16:17:50 +02:00
vlv_suspend.c drm/i915: Move GT registers to their own header file 2022-02-02 07:59:14 -08:00
vlv_suspend.h