mirror-linux/drivers/gpu/drm/i915
Imre Deak 16fef33fdb
drm/i915/dp_mst: Fix encoder HW state readout for UHBR MST
The encoder HW/SW state verification should use a SW state which stays
unchanged while the encoder/output is active. The intel_dp::is_mst flag
used during state computation to choose between the DP SST/MST modes can
change while the output is active, if the sink gets disconnected or the
MST topology is removed for another reason. A subsequent state
verification using intel_dp::is_mst leads then to a mismatch if the
output is disabled/re-enabled without recomputing its state.

Use the encoder's active MST link count instead, which will be always
non-zero for an active MST output and will be zero for SST.

Fixes: 35d2e4b756 ("drm/i915/ddi: start distinguishing 128b/132b SST and MST at state readout")
Fixes: 40d489fac0 ("drm/i915/ddi: handle 128b/132b SST in intel_ddi_read_func_ctl()")
Cc: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20250224093242.1859583-1-imre.deak@intel.com
(cherry picked from commit 0159e31177)
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
2025-02-26 08:16:23 -05:00
..
display drm/i915/dp_mst: Fix encoder HW state readout for UHBR MST 2025-02-26 08:16:23 -05:00
gem drm/i915: Fix page cleanup on DMA remap failure 2025-02-03 09:26:49 -05:00
gt drm/i915/gt: Use spin_lock_irqsave() in interruptible context 2025-02-17 09:22:29 -05:00
gvt drm/i915/gvt: always pass struct intel_display * to register macros 2024-12-16 18:09:18 +02:00
pxp Merge tag 'drm-intel-gt-next-2024-10-23' of https://gitlab.freedesktop.org/drm/i915/kernel into drm-next 2024-10-25 05:57:38 +10:00
selftests drm/i915/selftests: avoid using uninitialized context 2025-02-10 11:39:17 -05:00
soc drm/i915/soc: stop using IS_GEN9_LP() and IS_GEN9_BC() 2024-10-02 12:06:20 +03:00
.gitignore
Kconfig Backmerge v6.12-rc6 of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux into drm-next 2024-11-04 14:25:33 +10:00
Kconfig.debug
Kconfig.profile
Makefile drm/i915/display: add intel_display_conversion.c to hide stuff better 2024-12-16 18:09:35 +02:00
TODO.txt
i915_active.c Merge tag 'drm-intel-gt-next-2025-01-10' of https://gitlab.freedesktop.org/drm/i915/kernel into drm-next 2025-01-13 08:05:00 +10:00
i915_active.h drm/i915: Remove deadcode 2024-12-30 01:31:31 +01:00
i915_active_types.h
i915_cmd_parser.c
i915_cmd_parser.h
i915_config.c
i915_config.h
i915_debugfs.c drm/i915/debugfs: add dedicated intel_display_caps debugfs for display 2024-09-19 12:43:13 +03:00
i915_debugfs.h
i915_debugfs_params.c
i915_debugfs_params.h
i915_deps.c
i915_deps.h
i915_driver.c Merge drm/drm-next into drm-intel-next 2025-01-07 18:07:54 +02:00
i915_driver.h drm: remove driver date from struct drm_driver and all drivers 2024-12-05 12:35:42 +02:00
i915_drm_client.c drm: make drm-active- stats optional 2024-12-19 16:56:17 +01:00
i915_drm_client.h
i915_drv.h drm/i915/dg2: Introduce DG2_D subplatform 2024-12-11 23:45:08 +01:00
i915_file_private.h
i915_gem.c
i915_gem.h
i915_gem_evict.c
i915_gem_evict.h
i915_gem_gtt.c drm/i915: Fixed an typo in i915_gem_gtt.c 2024-11-25 10:59:00 -05:00
i915_gem_gtt.h
i915_gem_ww.c
i915_gem_ww.h
i915_getparam.c drm/i915/overlay: add intel_overlay_available() and use it 2024-11-22 13:56:35 +02:00
i915_getparam.h
i915_gpu_error.c Linux 6.13-rc3 2024-12-19 12:00:02 +10:00
i915_gpu_error.h drm/i915/display: move device info and params handling to snapshot 2024-09-13 10:44:15 +03:00
i915_hwmon.c drm/i915/hwmon: expose package temperature 2024-09-13 11:21:16 +02:00
i915_hwmon.h
i915_ioc32.c
i915_ioc32.h
i915_ioctl.c
i915_ioctl.h
i915_iosf_mbi.h
i915_irq.c drm/i915/irq: hide display_irqs_enabled access 2024-11-22 13:56:35 +02:00
i915_irq.h drm/i915/irq: s/gen3/gen2/ 2024-10-15 17:29:30 +03:00
i915_memcpy.c
i915_memcpy.h
i915_mitigations.c
i915_mitigations.h
i915_mm.c drm/i915: ensure segment offset never exceeds allowed max 2024-12-05 14:29:48 +01:00
i915_mm.h
i915_module.c
i915_params.c
i915_params.h
i915_pci.c drm/intel/pciids: rename i915_pciids.h to just pciids.h 2024-10-29 16:14:04 +02:00
i915_pci.h
i915_perf.c treewide: const qualify ctl_tables where applicable 2025-01-28 13:48:37 +01:00
i915_perf.h
i915_perf_oa_regs.h
i915_perf_types.h
i915_pmu.c drm/i915/pmu: Remove pointless synchronize_rcu() call 2024-11-05 11:24:33 -08:00
i915_pmu.h drm/i915/pmu: Replace closed with registered 2024-11-05 11:24:33 -08:00
i915_priolist_types.h
i915_pvinfo.h
i915_query.c
i915_query.h
i915_reg.h drm/i915/ddi: Fix HDMI port width programming in DDI_BUF_CTL 2025-02-17 09:22:52 -05:00
i915_reg_defs.h drm/i915/irq: add struct i915_irq_regs triplet 2024-10-03 15:42:41 +03:00
i915_request.c drm/i915/request: Remove unnecessary modification of hrtimer:: Function 2024-11-07 02:47:04 +01:00
i915_request.h
i915_scatterlist.c
i915_scatterlist.h
i915_scheduler.c drm/i915: Fix memory leak by correcting cache object name in error handler 2024-12-09 10:29:06 +00:00
i915_scheduler.h
i915_scheduler_types.h
i915_selftest.h
i915_sw_fence.c
i915_sw_fence.h
i915_sw_fence_work.c
i915_sw_fence_work.h
i915_switcheroo.c
i915_switcheroo.h
i915_syncmap.c
i915_syncmap.h
i915_sysfs.c
i915_sysfs.h
i915_tasklet.h
i915_trace.h drm/i915: extract intel_uncore_trace.[ch] 2024-12-16 18:09:31 +02:00
i915_trace_points.c
i915_ttm_buddy_manager.c
i915_ttm_buddy_manager.h
i915_user_extensions.c
i915_user_extensions.h
i915_utils.c drm next for 6.12-rc1 2024-09-19 10:18:15 +02:00
i915_utils.h
i915_vgpu.c
i915_vgpu.h
i915_vma.c drm/i915: use NULL for zero wakeref_t instead of plain integer 0 2024-10-04 10:29:24 +03:00
i915_vma.h
i915_vma_resource.c
i915_vma_resource.h
i915_vma_types.h
intel_clock_gating.c drm/i915: remove all IS_<PLATFORM>_GT<N>() macros 2024-10-24 13:14:37 +03:00
intel_clock_gating.h
intel_cpu_info.c drm/i915: Introduce intel_cpu_info.c for CPU IDs 2024-12-11 23:45:09 +01:00
intel_cpu_info.h drm/i915: Introduce intel_cpu_info.c for CPU IDs 2024-12-11 23:45:09 +01:00
intel_device_info.c drm/i915/dg2: Introduce DG2_D subplatform 2024-12-11 23:45:08 +01:00
intel_device_info.h drm/i915/dg2: Introduce DG2_D subplatform 2024-12-11 23:45:08 +01:00
intel_gvt.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
intel_gvt.h
intel_gvt_mmio_table.c drm/i915: split out i9xx_wm_regs.h 2024-12-16 14:20:02 +02:00
intel_mchbar_regs.h drm/i915/hwmon: expose package temperature 2024-09-13 11:21:16 +02:00
intel_memory_region.c
intel_memory_region.h
intel_pci_config.h
intel_pcode.c
intel_pcode.h
intel_region_ttm.c
intel_region_ttm.h
intel_runtime_pm.c drm/i915: use NULL for zero wakeref_t instead of plain integer 0 2024-10-04 10:29:24 +03:00
intel_runtime_pm.h drm/i915/dp: Assume panel power is off if runtime suspended 2024-10-11 14:55:01 +03:00
intel_sbi.c drm/i915/sbi: add a dedicated mutex for LPT/WPT IOSF sideband 2024-11-05 12:19:34 +02:00
intel_sbi.h drm/i915/sbi: add a dedicated mutex for LPT/WPT IOSF sideband 2024-11-05 12:19:34 +02:00
intel_step.c
intel_step.h
intel_uncore.c drm/i915/uncore: add to_intel_uncore() and use it 2024-12-16 18:09:38 +02:00
intel_uncore.h drm/i915/uncore: add to_intel_uncore() and use it 2024-12-16 18:09:38 +02:00
intel_uncore_trace.c drm/i915: extract intel_uncore_trace.[ch] 2024-12-16 18:09:31 +02:00
intel_uncore_trace.h drm/i915: extract intel_uncore_trace.[ch] 2024-12-16 18:09:31 +02:00
intel_wakeref.c drm/i915: use NULL for zero wakeref_t instead of plain integer 0 2024-10-04 10:29:24 +03:00
intel_wakeref.h drm/i915: switch intel_wakeref_t underlying type to struct ref_tracker * 2024-09-30 17:54:13 +03:00
vlv_sideband.c drm/i915: hide VLV PUNIT IOSF sideband qos handling better 2024-11-05 12:19:34 +02:00
vlv_sideband.h drm/i915: add a dedicated mutex for VLV/CHV IOSF sideband 2024-11-05 12:19:34 +02:00
vlv_sideband_reg.h
vlv_suspend.c drm/i915: extract intel_uncore_trace.[ch] 2024-12-16 18:09:31 +02:00
vlv_suspend.h