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