[PULL] drm-intel-next

Rodrigo Vivi
2025-04-11T13:07:44Z

Hi Dave and Sima,

Here goes our first pull request towards 6.16.

It is worth to highlight the huge amount of patches around VRR refactor.
Also more chunks of clean-up towards a separated display.
And finally some changes in the debugfs entries.

Thanks,
Rodrigo.

drm-intel-next-2025-04-11:
Cross-subsystem Changes:
- Update GVT MAINTAINERS (Jani)

Driver Changes:
- Updates for xe3lpd display (Gustavo)
- Fix link training interrupted by HPD pulse (Imre)
- Watermark bound checks for DSC (Ankit)
- VRR Refactor and other fixes and improvements (Ankit)
- More conversions towards intel_display struct (Gustavo, Jani)
- Other clean-up patches towards a display separation (Jani)
- Maintain asciibetical order for HAS_* macros (Ankit)
- Fixes around probe/initialization (Janusz)
- Fix build and doc build issue (Yue, Rodrigo)
- DSI related fixes (Suraj, William, Jani)
- Improve DC6 entry counter (Mohammed)
- Fix xe2hpd memory type identification (Vivek)
- PSR related fixes and improvements (Animesh, Jouni)
- DP MST related fixes and improvements (Imre)
- Fix scanline_offset for LNL+/BMG+ (Ville)
- Some gvt related fixes and changes (Ville, Jani)
- Some PLL code adjustment (Ville)
- Display wa addition (Vinod)
- DRAM type logging (Lucas)
- Pimp the initial FB readout (Ville)
- Some sagv/bw cleanup (Ville)
- Remove i915_display_capabilities debugfs entry (Jani)
- Move PCH type to display caps debugfs entry (Jani)
The following changes since commit bb800b56f01f430f4d7b360c758a9ed28f758d75:

drm/i915: Relocate intel_bw_crtc_update() (2025-03-07 19:11:41 +0200)

are available in the Git repository at:

https://gitlab.freedesktop.org/drm/i915/kernel.git tags/drm-intel-next-2025-04-11

for you to fetch changes up to 1954629dc649b25071eec0d353288c5ee303e358:

drm/i915/debugfs: move PCH type to display caps (2025-04-11 09:47:39 +0300)

----------------------------------------------------------------
Cross-subsystem Changes:
- Update GVT MAINTAINERS (Jani)

Driver Changes:
- Updates for xe3lpd display (Gustavo)
- Fix link training interrupted by HPD pulse (Imre)
- Watermark bound checks for DSC (Ankit)
- VRR Refactor and other fixes and improvements (Ankit)
- More conversions towards intel_display struct (Gustavo, Jani)
- Other clean-up patches towards a display separation (Jani)
- Maintain asciibetical order for HAS_* macros (Ankit)
- Fixes around probe/initialization (Janusz)
- Fix build and doc build issue (Yue, Rodrigo)
- DSI related fixes (Suraj, William, Jani)
- Improve DC6 entry counter (Mohammed)
- Fix xe2hpd memory type identification (Vivek)
- PSR related fixes and improvements (Animesh, Jouni)
- DP MST related fixes and improvements (Imre)
- Fix scanline_offset for LNL+/BMG+ (Ville)
- Some gvt related fixes and changes (Ville, Jani)
- Some PLL code adjustment (Ville)
- Display wa addition (Vinod)
- DRAM type logging (Lucas)
- Pimp the initial FB readout (Ville)
- Some sagv/bw cleanup (Ville)
- Remove i915_display_capabilities debugfs entry (Jani)
- Move PCH type to display caps debugfs entry (Jani)

----------------------------------------------------------------
Animesh Manna (1):
drm/i915/display: Read panel replay source status through PSR2 status register

Ankit Nautiyal (29):
drm/i915/watermark: Check bounds for scaler_users for dsc prefill latency
drm/i915/vrr: Remove unwanted comment
drm/i915:vrr: Separate out functions to compute vmin and vmax
drm/i915/vrr: Make helpers for cmrr and vrr timings
drm/i915/vrr: Disable CMRR
drm/i915/vrr: Track vrr.enable only for variable timing
drm/i915/vrr: Use crtc_vtotal for vmin
drm/i915/vrr: Prepare for fixed refresh rate timings
drm/i915/display: Enable MSA Ignore Timing PAR only when in not fixed_rr mode
drm/i915/display: Maintain asciibetical order for HAS_* macros
drm/i915/display: Add fixed_rr to crtc_state dump
drm/i915/vrr: Avoid reading vrr.enable based on fixed_rr check
drm/i915/hdmi: Use VRR Timing generator for HDMI for fixed_rr
drm/i915/dp_mst: Use VRR Timing generator for DP MST for fixed_rr
drm/i915/display: Disable PSR before disabling VRR
drm/i915/display: Move intel_psr_post_plane_update() at the later
drm/i915/vrr: Refactor condition for computing vmax and LRR
drm/i915/vrr: Always set vrr vmax/vmin/flipline in vrr_{enable/disable}
drm/i915/vrr: Set vrr.enable for VRR TG with fixed_rr
drm/i915/display: Use fixed_rr timings in modeset sequence
drm/i915/vrr: Use fixed timings for platforms that support VRR
drm/i915/display: Use fixed rr timings in intel_set_transcoder_timings_lrr()
drm/i915/display: Move vrr.guardband/pipeline_full out of !fastset block
drm/i915/vrr: Allow fixed_rr with pipe joiner
drm/i915/vrr: Always use VRR timing generator for PTL+
drm/i915/vrr: Set trans_vrr_ctl in intel_vrr_set_transcoder_timings()
drm/i915/display: Introduce transcoder_has_vrr() helper
drm/i915/display: Avoid use of VTOTAL.Vtotal bits
drm/i915/vrr: Add vrr.vsync_{start, end} in vrr_params_changed

Gustavo Sousa (4):
drm/i915/xe3lpd: Map POWER_DOMAIN_AUDIO_PLAYBACK to DC_off
drm/i915/display: Convert intel_bw.c internally to intel_display
drm/i915/display: Convert intel_bw.c externally to intel_display
drm/i915/xe3lpd: Update bandwidth parameters

Imre Deak (14):
drm/i915/hpd: Track HPD pins instead of ports for HPD pulse events
drm/i915/hpd: Let an HPD pin be in the disabled state when handling missed IRQs
drm/i915/hpd: Add support for blocking the IRQ handling on an HPD pin
drm/i915/dp: Fix link training interrupted by a short HPD pulse
drm/i915/dp: Queue a link check after link training is complete
drm/i915/crt: Use intel_hpd_block/unblock() instead of intel_hpd_disable/enable()
drm/i915/pps: Let calling intel_pps_vdd_{on, off}_unlocked() w/o PPS lock held
drm/i915/dp_mst: Fix side-band message timeouts due to long PPS delays
drm/i915/dp: Rename intel_dp::link_trained to link.active
drm/i915/dp_mst: Add intel_dp_mst_{inc, dec}_active_streams()
drm/i915/dp_mst: Remove stream count assert from intel_dp_check_mst_status()
drm/i915/dp_mst: Rename intel_dp_mst_encoder_active_links() to intel_dp_mst_active_streams()
drm/i915/dp_mst: Use intel_dp_mst_active_streams() instead of open-coding it
drm/i915/dp_mst: Rename intel_dp::mst.active_links to mst.active_streams

Jani Nikula (48):
drm/i915/color: prefer display->platform.<platform> checks
drm/i915/connector: convert intel_connector.c to struct intel_display
drm/i915/hotplug: convert intel_hotplug.[ch] to struct intel_display
drm/i915/hotplug: convert hotplug debugfs to struct intel_display
drm/i915/hotplug: convert hotplug irq handling to intel_de_*()
drm/i915/hotplug: convert intel_hotplug_irq.[ch] to struct intel_display
drm/i915/irq: convert intel_display_irq.[ch] interfaces to struct intel_display
drm/i915/irq: convert rest of intel_display_irq.[ch] to struct intel_display
drm/i915/display: rename I915_HAS_HOTPLUG() to HAS_HOTPLUG
drm/i915/display: add display specific runtime PM wrappers
drm/i915/display: conversions to with_intel_display_rpm()
drm/i915/display: use display runtime PM interfaces for for atomic state
drm/i915/display: convert to display runtime PM interfaces
drm/i915/power: convert to display runtime PM interfaces
drm/xe/compat: remove intel_runtime_pm.h
drm/i915/dsi: convert vlv_dsi.[ch] to struct intel_display
drm/i915/dsi: convert vlv_dsi_pll.[ch] to struct intel_display
drm/i915/dsi: convert parameter printing to drm_printer
drm/i915/dsi: convert intel_dsi_vbt.[ch] to struct intel_display
drm/i915/dsi: convert intel_dsi_dcs_backlight.c to struct intel_display
drm/i915/dvo: convert intel_dvo.[ch] to struct intel_display
drm/i915/lvds: convert intel_lvds.[ch] to struct intel_display
drm/i915/tc: convert intel_tc.c to struct intel_display
drm/i915/atomic: convert intel_atomic.c to struct intel_display
drm/i915/display: convert intel_crtc_state_dump.c to struct intel_display
drm/i915/pch: convert intel_pch_display.[ch] to struct intel_display
drm/i915/pch: convert intel_pch_refclk.c to struct intel_display
drm/i915/dpll: convert intel_dpll.[ch] to struct intel_display
drm/i915/ddi: convert intel_ddi.c to struct intel_display
drm/i915/crc: convert intel_pipe_crc.c to struct intel_display
drm/i915/psr: further conversions to struct intel_display
drm/i915/wa: convert intel_display_wa.[ch] to struct intel_display
drm/i915/display: drop some unnecessary intel_de_* compatibility wrappers
drm/i915/gvt: fix unterminated-string-initialization warning
drm/i915/gvt: update MAINTAINERS
drm/i915: reduce intel_wakeref.h dependencies
drm/i915/gvt: use hardcoded reference clocks
drm/i915/dsi: separate clock and data lane prepare timing
drm/i915/dsi: unify naming and simplify checks for dphy params
drm/i915/wm: convert intel_wm.h external interfaces to struct intel_display
drm/i915/wm: convert intel_wm.c internally to struct intel_display
drm/i915/wm: convert skl_watermark.h external interfaces to struct intel_display
drm/i915/wm: convert skl_watermarks.c internally to struct intel_display
drm/i915/wm: convert i9xx_wm.h external interfaces to struct intel_display
drm/i915/wm: convert i9xx_wm.c to intel_de_*() register interface
drm/i915/wm: convert i9xx_wm.c internally to struct intel_display
drm/i915/debugfs: remove i915_display_capabilities
drm/i915/debugfs: move PCH type to display caps

Janusz Krzysztofik (3):
drm/i915: Downgrade device register error if injected
drm/i915: Fix PXP cleanup missing from probe error rewind
drm/i915: Fix harmful driver register/unregister asymmetry

Jouni Högander (2):
drm/i915/psr: Add PSR pause/resume reference count
drm/i915/psr: Prevent DP Panel Replay as well when CRC is enable

Lucas De Marchi (2):
drm/i915/dram: Add missing INTEL_DRAM str conversions
drm/i915/dram: Consolidate logging of DRAM type

Mohammed Thasleem (1):
drm/i915/dmc: Create debugfs entry for dc6 counter

Rodrigo Vivi (1):
drm/i915/display: Fix htmldocs build

Suraj Kandpal (1):
drm/i915/vdsc: Use the DSC config tables for DSI panels

Ville Syrjälä (33):
drm/i915: Fix scanline_offset for LNL+ and BMG+
drm/i915: Reverse the scanline_offset if ladder
drm/i915: Replace the HAS_DDI() in intel_crtc_scanline_offset() with specific platform checks
drm/i915/gvt: Stop using intel_runtime_pm_put_unchecked()
drm/i915: Enable/disable shared dplls just the once for joined pipes
drm/i915: Move intel_disable_shared_dpll() into ilk_pch_post_disable()
drm/i915: Extract intel_memory_type_is_local()
drm/i915: Expose intel_memory_type_str()
agp/intel-gtt: Add intel_gmch_gtt_read_entry()
drm/i915/ggtt: Add intel_ggtt_read_entry()
drm/i915: Use intel_ggtt_read_entry() in the BIOS FB takeover
drm/i915: Verify the BIOS FB first PTE on non-LMEMBAR systems
drm/i915: Use a nicer way to lookup the memory region in BIOS FB takeover
drm/i915: Lookup the memory region first in the BIOS FB takeover
drm/i915: Use intel_memory_region_type_is_local() in the BIOS FB takeover
drm/i915: Eliminate the initial_plane_phys_{smem,lmem}() duplication
drm/i915/dp: Reject HBR3 when sink doesn't support TPS4
drm/i915: Drop the cached per-pipe min_cdclk[] from bw state
drm/i915: s/intel_crtc_bw/intel_dbuf_bw/
drm/i915: Extract intel_dbuf_bw_changed()
drm/i915: Pass intel_dbuf_bw to skl_*_calc_dbuf_bw() explicitly
drm/i915: Avoid triggering unwanted cdclk changes due to dbuf bandwidth changes
drm/i915: Do more bw readout
drm/i915: Flag even inactive crtcs as "inherited"
drm/i915: Drop force_check_qgv
drm/i915: Extract intel_bw_modeset_checks()
drm/i915: Extract intel_bw_check_sagv_mask()
drm/i915: Make intel_bw_check_sagv_mask() internal to intel_bw.c
drm/i915: Make intel_bw_modeset_checks() internal to intel_bw_atomic_check()
drm/i915: Skip bw stuff if per-crtc sagv state doesn't change
drm/i915: Eliminate intel_compute_sagv_mask()
drm/i915: Apply the combo PLL frac w/a on DG1
drm/i915: Simplify combo PLL frac w/a

Vinod Govindapillai (3):
drm/i915/fbc: keep FBC disabled if selective update is on in xe2lpd
drm/i915/fbc: update the panel_replay dependency in fbc wa's
drm/i915/display: implement wa_18038517565

Vivek Kasireddy (1):
drm/i915/xe2hpd: Identify the memory type for SKUs with GDDR + ECC

William Tseng (1):
drm/i915/dsi: let HW maintain the HS-TRAIL timing

Yue Haibing (1):
drm/i915/display: Fix build error without DRM_FBDEV_EMULATION

MAINTAINERS | 9 +-
drivers/char/agp/intel-gtt.c | 55 +
drivers/gpu/drm/i915/Makefile | 1 +
drivers/gpu/drm/i915/display/dvo_ch7017.c | 2 +
drivers/gpu/drm/i915/display/dvo_ch7xxx.c | 2 +
drivers/gpu/drm/i915/display/dvo_ivch.c | 2 +
drivers/gpu/drm/i915/display/dvo_ns2501.c | 2 +
drivers/gpu/drm/i915/display/dvo_sil164.c | 2 +
drivers/gpu/drm/i915/display/dvo_tfp410.c | 2 +
drivers/gpu/drm/i915/display/g4x_dp.c | 2 +-
drivers/gpu/drm/i915/display/hsw_ips.c | 8 +-
drivers/gpu/drm/i915/display/i9xx_plane.c | 24 +-
drivers/gpu/drm/i915/display/i9xx_wm.c | 1216 ++++++++++----------
drivers/gpu/drm/i915/display/i9xx_wm.h | 18 +-
drivers/gpu/drm/i915/display/icl_dsi.c | 102 +-
drivers/gpu/drm/i915/display/intel_atomic.c | 23 +-
drivers/gpu/drm/i915/display/intel_backlight.c | 5 +-
drivers/gpu/drm/i915/display/intel_bios.c | 6 +-
drivers/gpu/drm/i915/display/intel_bw.c | 649 ++++++-----
drivers/gpu/drm/i915/display/intel_bw.h | 18 +-
drivers/gpu/drm/i915/display/intel_cdclk.c | 11 +-
drivers/gpu/drm/i915/display/intel_color.c | 18 +-
drivers/gpu/drm/i915/display/intel_combo_phy.c | 2 +
drivers/gpu/drm/i915/display/intel_connector.c | 45 +-
drivers/gpu/drm/i915/display/intel_crt.c | 17 +-
.../gpu/drm/i915/display/intel_crtc_state_dump.c | 47 +-
drivers/gpu/drm/i915/display/intel_ddi.c | 919 +++++++--------
drivers/gpu/drm/i915/display/intel_de.h | 16 +-
drivers/gpu/drm/i915/display/intel_display.c | 134 ++-
drivers/gpu/drm/i915/display/intel_display_core.h | 11 +-
.../gpu/drm/i915/display/intel_display_debugfs.c | 37 +-
.../gpu/drm/i915/display/intel_display_device.h | 10 +-
.../gpu/drm/i915/display/intel_display_driver.c | 37 +-
drivers/gpu/drm/i915/display/intel_display_irq.c | 746 ++++++------
drivers/gpu/drm/i915/display/intel_display_irq.h | 75 +-
drivers/gpu/drm/i915/display/intel_display_power.c | 69 +-
.../gpu/drm/i915/display/intel_display_power_map.c | 1 +
.../drm/i915/display/intel_display_power_well.c | 33 +-
drivers/gpu/drm/i915/display/intel_display_reset.c | 4 +-
drivers/gpu/drm/i915/display/intel_display_rpm.c | 68 ++
drivers/gpu/drm/i915/display/intel_display_rpm.h | 37 +
drivers/gpu/drm/i915/display/intel_display_types.h | 8 +-
drivers/gpu/drm/i915/display/intel_display_wa.c | 30 +-
drivers/gpu/drm/i915/display/intel_display_wa.h | 11 +-
drivers/gpu/drm/i915/display/intel_dkl_phy.c | 1 +
drivers/gpu/drm/i915/display/intel_dmc.c | 59 +-
drivers/gpu/drm/i915/display/intel_dmc.h | 1 +
drivers/gpu/drm/i915/display/intel_dp.c | 70 +-
drivers/gpu/drm/i915/display/intel_dp_aux.c | 21 +-
.../gpu/drm/i915/display/intel_dp_link_training.c | 48 +-
drivers/gpu/drm/i915/display/intel_dp_mst.c | 73 +-
drivers/gpu/drm/i915/display/intel_dp_mst.h | 2 +-
drivers/gpu/drm/i915/display/intel_dpll.c | 323 +++---
drivers/gpu/drm/i915/display/intel_dpll.h | 13 +-
drivers/gpu/drm/i915/display/intel_dpll_mgr.c | 16 +-
drivers/gpu/drm/i915/display/intel_dpt.c | 7 +-
drivers/gpu/drm/i915/display/intel_dsb.c | 21 +-
.../gpu/drm/i915/display/intel_dsi_dcs_backlight.c | 7 +-
drivers/gpu/drm/i915/display/intel_dsi_vbt.c | 209 ++--
drivers/gpu/drm/i915/display/intel_dvo.c | 64 +-
drivers/gpu/drm/i915/display/intel_dvo.h | 6 +-
drivers/gpu/drm/i915/display/intel_fb_pin.c | 7 +-
drivers/gpu/drm/i915/display/intel_fbc.c | 47 +-
drivers/gpu/drm/i915/display/intel_fbdev.c | 11 +-
drivers/gpu/drm/i915/display/intel_fbdev.h | 2 +
drivers/gpu/drm/i915/display/intel_fifo_underrun.c | 31 +-
drivers/gpu/drm/i915/display/intel_hdcp.c | 8 +-
drivers/gpu/drm/i915/display/intel_hdmi.c | 3 +
drivers/gpu/drm/i915/display/intel_hotplug.c | 633 ++++++----
drivers/gpu/drm/i915/display/intel_hotplug.h | 31 +-
drivers/gpu/drm/i915/display/intel_hotplug_irq.c | 625 +++++-----
drivers/gpu/drm/i915/display/intel_hotplug_irq.h | 28 +-
drivers/gpu/drm/i915/display/intel_hti.c | 1 +
drivers/gpu/drm/i915/display/intel_load_detect.c | 1 +
drivers/gpu/drm/i915/display/intel_lspcon.c | 1 +
drivers/gpu/drm/i915/display/intel_lvds.c | 142 +--
drivers/gpu/drm/i915/display/intel_lvds.h | 18 +-
drivers/gpu/drm/i915/display/intel_modeset_setup.c | 35 +-
drivers/gpu/drm/i915/display/intel_pch_display.c | 170 +--
drivers/gpu/drm/i915/display/intel_pch_display.h | 10 +-
drivers/gpu/drm/i915/display/intel_pch_refclk.c | 126 +-
drivers/gpu/drm/i915/display/intel_pch_refclk.h | 18 +-
drivers/gpu/drm/i915/display/intel_pipe_crc.c | 140 +--
drivers/gpu/drm/i915/display/intel_plane_initial.c | 89 +-
drivers/gpu/drm/i915/display/intel_pmdemand.c | 2 +
drivers/gpu/drm/i915/display/intel_pps.c | 17 +-
drivers/gpu/drm/i915/display/intel_psr.c | 149 +--
drivers/gpu/drm/i915/display/intel_sdvo.c | 2 +-
drivers/gpu/drm/i915/display/intel_snps_phy.c | 2 +
drivers/gpu/drm/i915/display/intel_tc.c | 288 +++--
drivers/gpu/drm/i915/display/intel_tv.c | 4 +-
drivers/gpu/drm/i915/display/intel_vblank.c | 13 +-
drivers/gpu/drm/i915/display/intel_vdsc.c | 23 +-
drivers/gpu/drm/i915/display/intel_vrr.c | 320 +++++-
drivers/gpu/drm/i915/display/intel_vrr.h | 6 +
drivers/gpu/drm/i915/display/intel_wm.c | 171 +--
drivers/gpu/drm/i915/display/intel_wm.h | 14 +-
drivers/gpu/drm/i915/display/skl_universal_plane.c | 6 +-
drivers/gpu/drm/i915/display/skl_watermark.c | 746 ++++++------
drivers/gpu/drm/i915/display/skl_watermark.h | 24 +-
drivers/gpu/drm/i915/display/vlv_dsi.c | 160 ++-
drivers/gpu/drm/i915/display/vlv_dsi.h | 6 +-
drivers/gpu/drm/i915/display/vlv_dsi_pll.c | 118 +-
drivers/gpu/drm/i915/display/vlv_dsi_pll.h | 5 +-
drivers/gpu/drm/i915/gem/i915_gem_lmem.c | 3 +-
drivers/gpu/drm/i915/gt/intel_ggtt.c | 56 +
drivers/gpu/drm/i915/gt/intel_ggtt_gmch.c | 8 +
drivers/gpu/drm/i915/gt/intel_gtt.h | 6 +
drivers/gpu/drm/i915/gt/intel_rps.c | 6 +-
drivers/gpu/drm/i915/gvt/aperture_gm.c | 7 +-
drivers/gpu/drm/i915/gvt/debugfs.c | 5 +-
drivers/gpu/drm/i915/gvt/gtt.c | 6 +-
drivers/gpu/drm/i915/gvt/gvt.h | 9 +-
drivers/gpu/drm/i915/gvt/handlers.c | 27 +-
drivers/gpu/drm/i915/gvt/opregion.c | 7 +-
drivers/gpu/drm/i915/gvt/sched_policy.c | 5 +-
drivers/gpu/drm/i915/i915_debugfs.c | 2 -
drivers/gpu/drm/i915/i915_driver.c | 42 +-
drivers/gpu/drm/i915/i915_drv.h | 2 +
drivers/gpu/drm/i915/i915_irq.c | 123 +-
drivers/gpu/drm/i915/i915_reg.h | 6 +
drivers/gpu/drm/i915/intel_memory_region.c | 15 +-
drivers/gpu/drm/i915/intel_memory_region.h | 3 +
drivers/gpu/drm/i915/intel_wakeref.h | 11 +-
drivers/gpu/drm/i915/soc/intel_dram.c | 21 +-
drivers/gpu/drm/xe/Makefile | 1 +
drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h | 1 -
.../drm/xe/compat-i915-headers/intel_runtime_pm.h | 76 --
drivers/gpu/drm/xe/display/xe_display.c | 42 +-
drivers/gpu/drm/xe/display/xe_display_rpm.c | 71 ++
drivers/gpu/drm/xe/display/xe_display_wa.c | 6 +-
drivers/gpu/drm/xe/xe_device_types.h | 2 +
include/drm/intel/intel-gtt.h | 2 +
133 files changed, 5551 insertions(+), 4748 deletions(-)
create mode 100644 drivers/gpu/drm/i915/display/intel_display_rpm.c
create mode 100644 drivers/gpu/drm/i915/display/intel_display_rpm.h
delete mode 100644 drivers/gpu/drm/xe/compat-i915-headers/intel_runtime_pm.h
create mode 100644 drivers/gpu/drm/xe/display/xe_display_rpm.c