[PULL] drm-intel-next

Rodrigo Vivi
2026-01-15T15:52:58Z

Hi Dave and Sima,

Here goes our likely last drm-intel-next PR towards 7.0.

Thanks,
Rodrigo.

drm-intel-next-2026-01-15:
Beyond Display:
- Make 'guc_hw_reg_state' static as it isn't exported (Ben)
- Fix doc build on mei related interface header (Jani)

Display related:
- Fix ggtt fb alignment on Xe display (Tvrtko)
- More display clean-up towards deduplication and full separation (Jani)
- Use the consolidated HDMI tables (Suraj)
- Account for DSC slice overhead (Ankit)
- Prepare GVT for display modularization (Ankit, Jani)
- Enable/Disable DC balance along with VRR DSB (Mitul, Ville)
- Protection against unsupported modes in LT PHY (Suraj)
- Display W/a addition and fixes (Gustavo)
- Fix many SPDX identifier comments (Ankit)
- Incorporate Xe3_LPD changes for CD2X divider (Gustavo)
- Clean up link BW/DSC slice config computation (Imre)
The following changes since commit 35ec71285c9311395b14bedc60fa94f6b7e24d2d:

drm/i915/pc8: Add parent interface for PC8 forcewake tricks (2025-12-19 21:28:48 +0200)

are available in the Git repository at:

https://gitlab.freedesktop.org/drm/i915/kernel.git tags/drm-intel-next-2026-01-15

for you to fetch changes up to d30f75d2dba913754dbacb982b19b783a30253ea:

drm/i915/dp: Simplify computing the DSC compressed BPP for DP-MST (2026-01-13 18:42:21 +0200)

----------------------------------------------------------------
Beyond Display:
- Make 'guc_hw_reg_state' static as it isn't exported (Ben)
- Fix doc build on mei related interface header (Jani)

Display related:
- Fix ggtt fb alignment on Xe display (Tvrtko)
- More display clean-up towards deduplication and full separation (Jani)
- Use the consolidated HDMI tables (Suraj)
- Account for DSC slice overhead (Ankit)
- Prepare GVT for display modularization (Ankit, Jani)
- Enable/Disable DC balance along with VRR DSB (Mitul, Ville)
- Protection against unsupported modes in LT PHY (Suraj)
- Display W/a addition and fixes (Gustavo)
- Fix many SPDX identifier comments (Ankit)
- Incorporate Xe3_LPD changes for CD2X divider (Gustavo)
- Clean up link BW/DSC slice config computation (Imre)

----------------------------------------------------------------
Ankit Nautiyal (16):
drm/i915/vdsc: Account for DSC slice overhead in intel_vdsc_min_cdclk()
drm/i915/display: Abstract pipe/trans/cursor offset calculation
drm/i915/display: Add APIs to be used by gvt to get the register offsets
drm/i915/gvt: Add header to use display offset functions in macros
drm/i915/gvt: Change for_each_pipe to use pipe_valid API
drm/i915/gvt: Use the appropriate header for the DPLL macro
drm/i915/gvt/display_helper: Get rid of #ifdef/#undefs
drm/i915/intel_alpm: Fix the SPDX identifier comment
drm/i915/intel_cx0_phy: Fix the SPDX identifier comment
drm/i915/intel_cx0_phy_regs: Fix the SPDX identifier comment
drm/i915/intel_display_params: Fix the SPDX identifier comment
drm/i915/intel_dsb: Fix the SPDX identifier comment
drm/i915/intel_dsb_buffer: Fix the SPDX identifier comment
drm/i915/intel_gvt_api: Fix the SPDX identifier comment
drm/i915/intel_lt_phy: Fix the SPDX identifier comment
drm/i915/lt_phy_regs: Fix the SPDX identifier comment

Ben Dooks (1):
drm/i915/guc: make 'guc_hw_reg_state' static as it isn't exported

Gustavo Sousa (3):
drm/i915/display_wa: Keep enum intel_display_wa sorted
drm/i915/cdclk: Implement Wa_13012396614
drm/i915/cdclk: Incorporate Xe3_LPD changes for CD2X divider

Imre Deak (19):
drm/i915/dp: Drop unused timeslots param from dsc_compute_link_config()
drm/i915/dp: Factor out align_max_sink_dsc_input_bpp()
drm/i915/dp: Factor out align_max_vesa_compressed_bpp_x16()
drm/i915/dp: Align min/max DSC input BPPs to sink caps
drm/i915/dp: Align min/max compressed BPPs when calculating BPP limits
drm/i915/dp: Drop intel_dp parameter from intel_dp_compute_config_link_bpp_limits()
drm/i915/dp: Pass intel_output_format to intel_dp_dsc_sink_{min_max}_compressed_bpp()
drm/i915/dp: Pass mode clock to dsc_throughput_quirk_max_bpp_x16()
drm/i915/dp: Factor out compute_min_compressed_bpp_x16()
drm/i915/dp: Factor out compute_max_compressed_bpp_x16()
drm/i915/dp: Add intel_dp_mode_valid_with_dsc()
drm/i915/dp: Unify detect and compute time DSC mode BW validation
drm/i915/dp: Use helpers to align min/max compressed BPPs
drm/i915/dp: Simplify computing DSC BPPs for eDP
drm/i915/dp: Simplify computing DSC BPPs for DP-SST
drm/i915/dp: Simplify computing forced DSC BPP for DP-SST
drm/i915/dp: Unify computing compressed BPP for DP-SST and eDP
drm/i915/dp: Simplify eDP vs. DP compressed BPP computation
drm/i915/dp: Simplify computing the DSC compressed BPP for DP-MST

Jani Nikula (30):
drm/i915: move display/intel_plane_initial.c to i915_initial_plane.c
drm/xe/display: rename xe_plane_initial.c to xe_initial_plane.c
drm/i915: rename intel_plane_initial.h to intel_initial_plane.h
drm/{i915, xe}: move initial plane calls to parent interface
drm/{i915, xe}: deduplicate intel_initial_plane_config() between i915 and xe
drm/{i915, xe}: deduplicate plane_config_fini() between i915 and xe
drm/{i915, xe}: start deduplicating intel_find_initial_plane_obj() between i915 and xe
drm/i915: return plane_state from intel_reuse_initial_plane_obj()
drm/xe: return plane_state from intel_reuse_initial_plane_obj()
drm/i915: further deduplicate intel_find_initial_plane_obj()
drm/{i915, xe}: deduplicate intel_alloc_initial_plane_obj() FB modifier checks
drm/{i915,xe}: deduplicate initial plane setup
drm/{i915, xe}: pass struct drm_plane_state instead of struct drm_crtc to ->setup
drm/{i915, xe}: pass struct drm_device instead of drm_device to ->alloc_obj
drm/i915: drop dependency on struct intel_display from i915 initial plane
drm/xe/display: drop i915_utils.h
drm/i915: remove unused dev_priv local variable
drm/xe/compat: remove unused forcewake get/put macros
drm/xe/compat: convert uncore macro to static inlines
drm/i915/display: use to_intel_uncore() to avoid i915_drv.h
drm/i915: drop i915 param from i915_fence{, _context}_timeout()
drm/xe: remove compat i915_drv.h and -Ddrm_i915_private=xe_device hack
drm/i915/utils: drop unnecessary ifdefs
drm/i915/display: remove accidentally added empty file
drm/i915/gvt: sort and group include directives
drm/i915/gvt: include sched_policy.h only where needed
drm/i915/gvt: reduce include of gt/intel_engine_regs.h
drm/i915/gvt: reduce include of vfio.h
drm/i915/gvt: include intel_display_limits.h where needed
mei: late_bind: fix struct intel_lb_component_ops kernel-doc

Mitul Golani (12):
drm/i915/display: Add source param for dc balance
drm/i915/vrr: Add VRR DC balance registers
drm/i915/vrr: Add DC Balance params to crtc_state
drm/i915/vrr: Add state dump for DC Balance params
drm/i915/vrr: Add compute config for DC Balance params
drm/i915/vrr: Add function to check if DC Balance Possible
drm/i915/vrr: Add function to reset DC balance accumulated params
drm/i915/display: Add DC Balance flip count operations
drm/i915/vrr: Write DC balance params to hw registers
drm/i915/display: Wait for VRR PUSH status update
drm/i915/display: Add function to configure event for dc balance
drm/i915/vrr: Enable DC Balance

Suraj Kandpal (4):
drm/i915/cx0: Use the consolidated HDMI tables
drm/i915/ltphy: Remove state verification for LT PHY fields
drm/i915/ltphy: Compare only certain fields in state verify function
drm/i915/ltphy: Provide protection against unsupported modes

Tvrtko Ursulin (1):
drm/xe: Fix ggtt fb alignment

Ville Syrjälä (6):
drm/i915/dmc: Add pipe dmc registers and bits for DC Balance
drm/i915/vrr: Add functions to read out vmin/vmax stuff
drm/i915/vblank: Extract vrr_vblank_start()
drm/i915/vrr: Implement vblank evasion with DC balancing
drm/i915/dsb: Add pipedmc dc balance enable/disable
drm/i915/vrr: Pause DC Balancing for DSB commits

drivers/gpu/drm/i915/Makefile | 6 +-
drivers/gpu/drm/i915/display/i9xx_wm.c | 17 +-
drivers/gpu/drm/i915/display/intel_alpm.h | 4 +-
drivers/gpu/drm/i915/display/intel_bw.c | 19 +-
drivers/gpu/drm/i915/display/intel_cdclk.c | 60 ++-
drivers/gpu/drm/i915/display/intel_connector.c | 2 -
.../gpu/drm/i915/display/intel_crtc_state_dump.c | 8 +
drivers/gpu/drm/i915/display/intel_cx0_phy.c | 13 +-
drivers/gpu/drm/i915/display/intel_cx0_phy.h | 2 +-
drivers/gpu/drm/i915/display/intel_cx0_phy_regs.h | 4 +-
drivers/gpu/drm/i915/display/intel_display.c | 46 +-
.../gpu/drm/i915/display/intel_display_device.h | 18 +
.../gpu/drm/i915/display/intel_display_driver.c | 4 +-
.../gpu/drm/i915/display/intel_display_params.h | 2 +-
drivers/gpu/drm/i915/display/intel_display_power.c | 3 +-
.../gpu/drm/i915/display/intel_display_reg_defs.h | 15 +-
drivers/gpu/drm/i915/display/intel_display_types.h | 11 +
drivers/gpu/drm/i915/display/intel_display_utils.h | 4 -
drivers/gpu/drm/i915/display/intel_display_wa.c | 14 +-
drivers/gpu/drm/i915/display/intel_display_wa.h | 12 +-
drivers/gpu/drm/i915/display/intel_dmc.c | 25 +
drivers/gpu/drm/i915/display/intel_dmc.h | 5 +
drivers/gpu/drm/i915/display/intel_dmc_regs.h | 60 +++
drivers/gpu/drm/i915/display/intel_dp.c | 515 ++++++++++-----------
drivers/gpu/drm/i915/display/intel_dp.h | 17 +-
drivers/gpu/drm/i915/display/intel_dp_mst.c | 77 +--
drivers/gpu/drm/i915/display/intel_dram.c | 42 +-
drivers/gpu/drm/i915/display/intel_dsb.c | 31 +-
drivers/gpu/drm/i915/display/intel_dsb.h | 4 +-
drivers/gpu/drm/i915/display/intel_dsb_buffer.h | 4 +-
drivers/gpu/drm/i915/display/intel_gvt_api.c | 43 ++
drivers/gpu/drm/i915/display/intel_gvt_api.h | 21 +
drivers/gpu/drm/i915/display/intel_initial_plane.c | 193 ++++++++
...intel_plane_initial.h => intel_initial_plane.h} | 6 +-
drivers/gpu/drm/i915/display/intel_lt_phy.c | 54 +--
drivers/gpu/drm/i915/display/intel_lt_phy.h | 4 +-
drivers/gpu/drm/i915/display/intel_lt_phy_regs.h | 4 +-
drivers/gpu/drm/i915/display/intel_plane_initial.c | 442 ------------------
drivers/gpu/drm/i915/display/intel_rom.c | 8 +-
drivers/gpu/drm/i915/display/intel_vblank.c | 46 +-
drivers/gpu/drm/i915/display/intel_vdsc.c | 35 +-
drivers/gpu/drm/i915/display/intel_vrr.c | 281 ++++++++++-
drivers/gpu/drm/i915/display/intel_vrr.h | 10 +
drivers/gpu/drm/i915/display/intel_vrr_regs.h | 68 +++
drivers/gpu/drm/i915/gem/i915_gem_clflush.c | 2 +-
drivers/gpu/drm/i915/gvt/aperture_gm.c | 5 +-
drivers/gpu/drm/i915/gvt/cfg_space.c | 2 +-
drivers/gpu/drm/i915/gvt/cmd_parser.c | 26 +-
drivers/gpu/drm/i915/gvt/debugfs.c | 4 +-
drivers/gpu/drm/i915/gvt/display.c | 23 +-
drivers/gpu/drm/i915/gvt/display.h | 2 +-
drivers/gpu/drm/i915/gvt/display_helpers.h | 37 ++
drivers/gpu/drm/i915/gvt/dmabuf.c | 6 +-
drivers/gpu/drm/i915/gvt/dmabuf.h | 7 +-
drivers/gpu/drm/i915/gvt/edid.c | 1 +
drivers/gpu/drm/i915/gvt/execlist.c | 2 +-
drivers/gpu/drm/i915/gvt/fb_decoder.c | 14 +-
drivers/gpu/drm/i915/gvt/fb_decoder.h | 2 -
drivers/gpu/drm/i915/gvt/firmware.c | 4 +-
drivers/gpu/drm/i915/gvt/gtt.c | 9 +-
drivers/gpu/drm/i915/gvt/gvt.h | 26 +-
drivers/gpu/drm/i915/gvt/handlers.c | 21 +-
drivers/gpu/drm/i915/gvt/interrupt.c | 5 +-
drivers/gpu/drm/i915/gvt/kvmgt.c | 24 +-
drivers/gpu/drm/i915/gvt/mmio.c | 13 +-
drivers/gpu/drm/i915/gvt/mmio_context.h | 5 -
drivers/gpu/drm/i915/gvt/opregion.c | 3 +-
drivers/gpu/drm/i915/gvt/page_track.c | 3 +-
drivers/gpu/drm/i915/gvt/sched_policy.c | 3 +-
drivers/gpu/drm/i915/gvt/scheduler.c | 8 +-
drivers/gpu/drm/i915/gvt/trace.h | 2 +-
drivers/gpu/drm/i915/gvt/trace_points.c | 2 +
drivers/gpu/drm/i915/gvt/vgpu.c | 6 +-
drivers/gpu/drm/i915/i915_config.c | 3 +-
drivers/gpu/drm/i915/i915_config.h | 10 +-
drivers/gpu/drm/i915/i915_driver.c | 2 +
drivers/gpu/drm/i915/i915_gpu_error.c | 2 +-
drivers/gpu/drm/i915/i915_initial_plane.c | 290 ++++++++++++
drivers/gpu/drm/i915/i915_initial_plane.h | 9 +
drivers/gpu/drm/i915/i915_request.c | 3 +-
drivers/gpu/drm/i915/i915_utils.h | 4 -
drivers/gpu/drm/i915/intel_gvt.c | 13 +-
drivers/gpu/drm/i915/intel_gvt_mmio_table.c | 4 +-
drivers/gpu/drm/xe/Makefile | 6 +-
.../gpu/drm/xe/compat-i915-headers/i915_config.h | 5 +-
drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h | 22 -
.../gpu/drm/xe/compat-i915-headers/i915_utils.h | 7 -
.../gpu/drm/xe/compat-i915-headers/intel_uncore.h | 11 +-
drivers/gpu/drm/xe/display/xe_display.c | 2 +
drivers/gpu/drm/xe/display/xe_fb_pin.c | 2 +-
drivers/gpu/drm/xe/display/xe_initial_plane.c | 189 ++++++++
drivers/gpu/drm/xe/display/xe_initial_plane.h | 9 +
drivers/gpu/drm/xe/display/xe_plane_initial.c | 321 -------------
include/drm/intel/display_parent_interface.h | 17 +
include/drm/intel/intel_lb_mei_interface.h | 3 +-
95 files changed, 2017 insertions(+), 1443 deletions(-)
create mode 100644 drivers/gpu/drm/i915/display/intel_gvt_api.c
create mode 100644 drivers/gpu/drm/i915/display/intel_gvt_api.h
create mode 100644 drivers/gpu/drm/i915/display/intel_initial_plane.c
rename drivers/gpu/drm/i915/display/{intel_plane_initial.h => intel_initial_plane.h} (60%)
delete mode 100644 drivers/gpu/drm/i915/display/intel_plane_initial.c
create mode 100644 drivers/gpu/drm/i915/gvt/display_helpers.h
create mode 100644 drivers/gpu/drm/i915/i915_initial_plane.c
create mode 100644 drivers/gpu/drm/i915/i915_initial_plane.h
delete mode 100644 drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h
delete mode 100644 drivers/gpu/drm/xe/compat-i915-headers/i915_utils.h
create mode 100644 drivers/gpu/drm/xe/display/xe_initial_plane.c
create mode 100644 drivers/gpu/drm/xe/display/xe_initial_plane.h
delete mode 100644 drivers/gpu/drm/xe/display/xe_plane_initial.c