[PULL] drm-intel-next

Jani Nikula
2025-03-10T10:08:54Z

Hi Dave & Sima -

The second and likely final batch of i915 features towards v6.15.

BR,
Jani.

drm-intel-next-2025-03-10:
drm/i915 feature pull #2 for v6.15:

Features and functionality:
- FBC dirty rectangle support for display version 30+ (Vinod)
- Update plane scalers via DSB based commits (Ville)
- Move runtime power status info to display power debugfs (Jani)

Refactoring and cleanups:
- Convert i915 and xe to DRM client setup (Thomas)
- Refactor and clean up CDCLK/bw/dbuf readout/sanitation (Ville)
- Conversions from drm_i915_private to struct intel_display (Jani, Suraj)
- Refactor display reset for better separation between display and core (Jani)
- Move panel fitter code together (Jani)
- Add mst and hdcp sub-structs to display structs for clarity (Jani)
- Header refactoring to clarify separation between display and i915 core (Jani)

Fixes:
- Fix DP MST max stream count to match number of pipes (Jani)
- Fix encoder HW state readout of DP MST UHBR (Imre)
- Fix ICL+ combo PHY cursor and coeff polarity programming (Ville)
- Fix pipeDMC and ATS fault handling (Ville)
- Display workarounds (Gustavo)
- Remove duplicate forward declaration (Vinod)
- Improve POWER_DOMAIN_*() macro type safety (Gustavo)
- Move CDCLK post plane programming later (Ville)

DRM core changes:
- Add client-hotplug helper (Thomas)
- Send pending hotplug events after client resume (Thomas)
- Add fb_restore and fb_set_suspend fb helper hooks (Thomas)
- Remove struct fb_probe fb helper hook (Thomas)
- Add const qualifier to drm_atomic_helper_damage_merged() (Vinod)

Xe driver changes:
- Convert i915 and xe to DRM client setup (Thomas)
- Refactor i915 compat headers (Jani)
- Fix fbdev GGTT mapping handling (Maarten)
- Figure out pxp instance from the gem object (Jani)

Merges:
- Backmerge drm-next to fix conflicts with drm-xe-next (Jani)

BR,
Jani.

The following changes since commit 33e26f3544a558e7476eb221ff33173759b3a116:

Merge tag 'drm-xe-next-2025-02-24' of https://gitlab.freedesktop.org/drm/xe/kernel into drm-next (2025-02-27 10:08:29 +1000)

are available in the Git repository at:

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

for you to fetch changes up to bb800b56f01f430f4d7b360c758a9ed28f758d75:

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

----------------------------------------------------------------
drm/i915 feature pull #2 for v6.15:

Features and functionality:
- FBC dirty rectangle support for display version 30+ (Vinod)
- Update plane scalers via DSB based commits (Ville)
- Move runtime power status info to display power debugfs (Jani)

Refactoring and cleanups:
- Convert i915 and xe to DRM client setup (Thomas)
- Refactor and clean up CDCLK/bw/dbuf readout/sanitation (Ville)
- Conversions from drm_i915_private to struct intel_display (Jani, Suraj)
- Refactor display reset for better separation between display and core (Jani)
- Move panel fitter code together (Jani)
- Add mst and hdcp sub-structs to display structs for clarity (Jani)
- Header refactoring to clarify separation between display and i915 core (Jani)

Fixes:
- Fix DP MST max stream count to match number of pipes (Jani)
- Fix encoder HW state readout of DP MST UHBR (Imre)
- Fix ICL+ combo PHY cursor and coeff polarity programming (Ville)
- Fix pipeDMC and ATS fault handling (Ville)
- Display workarounds (Gustavo)
- Remove duplicate forward declaration (Vinod)
- Improve POWER_DOMAIN_*() macro type safety (Gustavo)
- Move CDCLK post plane programming later (Ville)

DRM core changes:
- Add client-hotplug helper (Thomas)
- Send pending hotplug events after client resume (Thomas)
- Add fb_restore and fb_set_suspend fb helper hooks (Thomas)
- Remove struct fb_probe fb helper hook (Thomas)
- Add const qualifier to drm_atomic_helper_damage_merged() (Vinod)

Xe driver changes:
- Convert i915 and xe to DRM client setup (Thomas)
- Refactor i915 compat headers (Jani)
- Fix fbdev GGTT mapping handling (Maarten)
- Figure out pxp instance from the gem object (Jani)

Merges:
- Backmerge drm-next to fix conflicts with drm-xe-next (Jani)

----------------------------------------------------------------
Gustavo Sousa (4):
drm/i915/display: Use IP version check for Wa_14020863754
drm/i915/audio: Extend Wa_14020863754 to Xe3_LPD
drm/i915/display: Use explicit base values in POWER_DOMAIN_*() macros
drm/i915/display: Make POWER_DOMAIN_*() always result in enum intel_display_power_domain

Imre Deak (1):
drm/i915/dp_mst: Fix encoder HW state readout for UHBR MST

Jani Nikula (41):
drm/i915/power: move runtime power status info to power debugfs
drm/i915/mst: update max stream count to match number of pipes
drm/i915/display: remove leftover struct drm_i915_private forward declarations
drm/i915/debugfs: continue display debugfs struct intel_display conversion
drm/i915/tdf: convert intel_tdf.[ch] to struct intel_display
drm/i915/snps: convert intel_snps_phy.[ch] to struct intel_display
drm/i915/dkl: convert intel_dkl_phy.[ch] to struct intel_display
drm/i915/drrs: convert intel_drrs.[ch] to struct intel_display
drm/i915/display: convert the M/N functions to struct intel_display
drm/i915/dpt: convert intel_dpt.[ch] interfaces to struct intel_display
drm/i915/fbc: convert intel_fbc.[ch] to struct intel_display
drm/i915/rps: convert intel_display_rps.[ch] to struct intel_display
drm/i915/ddi: convert intel_wait_ddi_buf_idle() to struct intel_display
drm/i915/fdi: convert intel_fdi.[ch] to struct intel_display
drm/i915/pfit: rename intel_panel_fitting() to intel_pfit_compute_config()
drm/i915/pfit: move ilk and i9xx pfit code to intel_pfit.[ch]
drm/i915/pfit: fix comment style for moved comments
drm/i915/pfit: convert moved code to struct intel_display
drm/i915/pfit: split out intel_pfit_regs.h
Merge drm/drm-next into drm-intel-next
drm/i915/mst: add mst sub-struct to struct intel_dp
drm/i915/mst: add mst sub-struct to struct intel_connector
drm/i915/hdcp: add hdcp sub-struct to struct intel_digital_port
drm/i915/pxp & drm/xe/pxp: Figure out pxp instance from the gem object
drm/i915: relocate intel_plane_ggtt_offset() to intel_atomic_plane.c
drm/i915: split out i915_gtt_view_types.h from i915_vma_types.h
drm/i915/display: convert display reset to struct intel_display *
drm/i915: move pending_fb_pin to struct intel_display
drm/i915/reset: add intel_gt_gpu_reset_clobbers_display() helper
drm/i915/reset: add intel_display_reset_test()
drm/i915/reset: remove I915_RESET_MODESET flag
drm/i915/reset: decide whether display reset is needed on gt side
drm/i915/reset: pass test only parameter to intel_display_reset_finish()
drm/i915/reset: add modeset_stuck callback to intel_display_reset_prepare()
drm/i915/display: convert various port/phy helpers to struct intel_display
drm/i915/display: convert some intel_display.[ch] functions to struct intel_display
drm/i915/display: convert intel_has_pending_fb_unpin() to struct intel_display
drm/i915/display: remove dupe intel_update_watermarks() declaration
drm/i915/display: convert intel_display.c to struct intel_display
drm/xe/compat: refactor compat i915_drv.h
drm/i915/plane: convert intel_atomic_plane.[ch] to struct intel_display

Maarten Lankhorst (1):
drm/xe/display: Fix fbdev GGTT mapping handling.

Suraj Kandpal (1):
drm/i915/vdsc: intel_display conversions

Thomas Zimmermann (12):
drm/{i915, xe}: Suspend/resume fbdev emulation via client interfaces
drm/client: Add client-hotplug helper
drm/client: Send pending hotplug events after resume
drm/i915/display: Remove fbdev suspend and hotplug tracking
drm/i915/display: fbdev: Move custom restore code to new callback
drm/i915/display: fbdev: Move custom suspend code to new callback
drm/i915/display: Remove preferred_bpp from struct intel_fbdev
drm/i915/display: Remove struct drm_fb_helper from struct intel_fbdev
drm/i915/display: Move fbdev code around
drm/{i915,xe}: Run DRM default client setup
drm/i915/display: Remove compile guard around fbdev debugfs output
drm/fb-helper: Remove struct drm_fb_helper.fb_probe

Ville Syrjälä (24):
drm/i915: Fix pipeDMC and ATS fault handling
drm/i915/dsb: Allow DSB based updates without planes
drm/i915/dsb: Plumb dsb into plane scaler functions
drm/i915/dsb: Allow DSB based commits when scalers are in use
drm/i915/cdclk: Do cdclk post plane programming later
drm/i915: Program CURSOR_PROGRAM and COEFF_POLARITY for icl+ combo PHYs
drm/i915: Drop redundant shared_dpll=NULL assignments
drm/i915: Don't clobber crtc_state->cpu_transcoder for inactive crtcs
drm/i915: Use intel_plane_set_invisible() in intel_plane_disable_noatomic()
drm/i915: Extract intel_cdclk_crtc_disable_noatomic()
drm/i915: Extract skl_wm_crtc_disable_noatomic()
drm/i915: clean up pipe's ddb usage in intel_crtc_disable_noatomic()
drm/i915: Add skl_wm_plane_disable_noatomic()
drm/i915: Extract intel_bw_crtc_disable_noatomic()
drm/i915: Extract intel_cdclk_update_hw_state()
drm/i915: Extract intel_bw_update_hw_state()
drm/i915: Update bw_state->active_pipes during readout
drm/i915: Skip some bw_state readout on pre-icl
sem/i915: Simplify intel_cdclk_update_hw_state()
drm/i915: Simplify cdclk_disable_noatomic()
drm/i915: Split wm sanitize from readout
drm/i915: Do wm readout ealier for skl+
drm/i915: Move dbuf_state->active_pipes into skl_wm_get_hw_state()
drm/i915: Relocate intel_bw_crtc_update()

Vinod Govindapillai (9):
drm/i915/fbc: remove one duplicate forward declaration
drm/damage-helper: add const qualifier in drm_atomic_helper_damage_merged()
drm/i915/display: update and store the plane damage clips
drm/i915/fbc: add register definitions for fbc dirty rect support
drm/i915/fbc: introduce HAS_FBC_DIRTY_RECT() for FBC dirty rect support
drm/i915/fbc: avoid calling fbc activate if fbc is active
drm/i915/fbc: dirty rect support for FBC
drm/i915/fbc: disable FBC if PSR2 selective fetch is enabled
drm/i915/fbc: handle dirty rect coords for the first frame

drivers/gpu/drm/drm_client_event.c | 41 +-
drivers/gpu/drm/drm_damage_helper.c | 2 +-
drivers/gpu/drm/drm_fb_helper.c | 20 +-
drivers/gpu/drm/i915/display/g4x_dp.c | 2 +-
drivers/gpu/drm/i915/display/g4x_hdmi.c | 2 +-
drivers/gpu/drm/i915/display/i9xx_wm.c | 18 +-
drivers/gpu/drm/i915/display/icl_dsi.c | 2 +-
drivers/gpu/drm/i915/display/intel_acpi.c | 2 +
drivers/gpu/drm/i915/display/intel_atomic.h | 1 -
drivers/gpu/drm/i915/display/intel_atomic_plane.c | 126 +-
drivers/gpu/drm/i915/display/intel_atomic_plane.h | 2 +
drivers/gpu/drm/i915/display/intel_audio.c | 4 +-
drivers/gpu/drm/i915/display/intel_bios.c | 5 +-
drivers/gpu/drm/i915/display/intel_bw.c | 74 +-
drivers/gpu/drm/i915/display/intel_bw.h | 6 +-
drivers/gpu/drm/i915/display/intel_cdclk.c | 30 +-
drivers/gpu/drm/i915/display/intel_cdclk.h | 4 +-
.../gpu/drm/i915/display/intel_combo_phy_regs.h | 2 +
drivers/gpu/drm/i915/display/intel_connector.c | 4 +-
drivers/gpu/drm/i915/display/intel_crt.c | 1 +
drivers/gpu/drm/i915/display/intel_ddi.c | 39 +-
drivers/gpu/drm/i915/display/intel_ddi.h | 4 +-
drivers/gpu/drm/i915/display/intel_ddi_buf_trans.h | 1 -
drivers/gpu/drm/i915/display/intel_display.c | 1364 +++++++++-----------
drivers/gpu/drm/i915/display/intel_display.h | 34 +-
drivers/gpu/drm/i915/display/intel_display_core.h | 4 +-
.../gpu/drm/i915/display/intel_display_debugfs.c | 34 +-
.../gpu/drm/i915/display/intel_display_debugfs.h | 6 +-
.../gpu/drm/i915/display/intel_display_device.h | 1 +
.../gpu/drm/i915/display/intel_display_driver.c | 18 +-
drivers/gpu/drm/i915/display/intel_display_irq.c | 6 +-
drivers/gpu/drm/i915/display/intel_display_power.c | 5 +-
drivers/gpu/drm/i915/display/intel_display_power.h | 7 +-
.../gpu/drm/i915/display/intel_display_power_map.c | 2 +
.../drm/i915/display/intel_display_power_well.c | 9 +-
drivers/gpu/drm/i915/display/intel_display_reset.c | 73 +-
drivers/gpu/drm/i915/display/intel_display_reset.h | 12 +-
drivers/gpu/drm/i915/display/intel_display_rps.c | 4 +-
drivers/gpu/drm/i915/display/intel_display_rps.h | 4 +-
drivers/gpu/drm/i915/display/intel_display_types.h | 55 +-
drivers/gpu/drm/i915/display/intel_dkl_phy.c | 8 +-
drivers/gpu/drm/i915/display/intel_dkl_phy.h | 3 +-
drivers/gpu/drm/i915/display/intel_dp.c | 50 +-
.../gpu/drm/i915/display/intel_dp_aux_backlight.c | 2 +
drivers/gpu/drm/i915/display/intel_dp_hdcp.c | 8 +-
.../gpu/drm/i915/display/intel_dp_link_training.c | 1 +
drivers/gpu/drm/i915/display/intel_dp_mst.c | 158 +--
drivers/gpu/drm/i915/display/intel_dp_test.c | 2 +
drivers/gpu/drm/i915/display/intel_dp_tunnel.c | 1 +
drivers/gpu/drm/i915/display/intel_dpt.c | 29 +-
drivers/gpu/drm/i915/display/intel_dpt.h | 7 +-
drivers/gpu/drm/i915/display/intel_drrs.c | 45 +-
drivers/gpu/drm/i915/display/intel_drrs.h | 10 +-
drivers/gpu/drm/i915/display/intel_fb_pin.c | 10 +-
drivers/gpu/drm/i915/display/intel_fbc.c | 270 +++-
drivers/gpu/drm/i915/display/intel_fbc.h | 10 +-
drivers/gpu/drm/i915/display/intel_fbc_regs.h | 9 +
drivers/gpu/drm/i915/display/intel_fbdev.c | 340 ++---
drivers/gpu/drm/i915/display/intel_fbdev.h | 17 +-
drivers/gpu/drm/i915/display/intel_fdi.c | 464 ++++---
drivers/gpu/drm/i915/display/intel_fdi.h | 16 +-
drivers/gpu/drm/i915/display/intel_frontbuffer.c | 12 +-
drivers/gpu/drm/i915/display/intel_hdcp.c | 94 +-
drivers/gpu/drm/i915/display/intel_hdmi.c | 2 +-
drivers/gpu/drm/i915/display/intel_hdmi.h | 1 -
drivers/gpu/drm/i915/display/intel_link_bw.c | 1 +
drivers/gpu/drm/i915/display/intel_lvds.c | 3 +-
drivers/gpu/drm/i915/display/intel_modeset_setup.c | 55 +-
.../gpu/drm/i915/display/intel_modeset_verify.c | 3 +-
drivers/gpu/drm/i915/display/intel_overlay.c | 6 +-
drivers/gpu/drm/i915/display/intel_overlay.h | 1 -
drivers/gpu/drm/i915/display/intel_panel.c | 1 +
drivers/gpu/drm/i915/display/intel_pch_display.c | 35 +-
drivers/gpu/drm/i915/display/intel_pfit.c | 170 ++-
drivers/gpu/drm/i915/display/intel_pfit.h | 10 +-
drivers/gpu/drm/i915/display/intel_pfit_regs.h | 79 ++
drivers/gpu/drm/i915/display/intel_pipe_crc.h | 1 -
drivers/gpu/drm/i915/display/intel_quirks.c | 2 +
drivers/gpu/drm/i915/display/intel_snps_phy.c | 75 +-
drivers/gpu/drm/i915/display/intel_snps_phy.h | 6 +-
drivers/gpu/drm/i915/display/intel_tdf.h | 6 +-
drivers/gpu/drm/i915/display/intel_vdsc.c | 182 ++-
drivers/gpu/drm/i915/display/intel_wm.c | 6 +
drivers/gpu/drm/i915/display/intel_wm.h | 1 +
drivers/gpu/drm/i915/display/skl_scaler.c | 60 +-
drivers/gpu/drm/i915/display/skl_scaler.h | 7 +-
drivers/gpu/drm/i915/display/skl_universal_plane.c | 53 +-
drivers/gpu/drm/i915/display/skl_watermark.c | 56 +-
drivers/gpu/drm/i915/display/skl_watermark.h | 4 +
drivers/gpu/drm/i915/display/vlv_dsi.c | 2 +-
drivers/gpu/drm/i915/display/vlv_dsi_pll.h | 6 +-
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c | 2 +-
drivers/gpu/drm/i915/gt/intel_engine_cs.c | 2 +-
drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c | 3 +-
drivers/gpu/drm/i915/gt/intel_gt_pm.c | 2 +-
drivers/gpu/drm/i915/gt/intel_reset.c | 41 +-
drivers/gpu/drm/i915/gt/intel_reset.h | 2 +
drivers/gpu/drm/i915/gt/intel_reset_types.h | 3 +-
drivers/gpu/drm/i915/i915_debugfs.c | 3 -
drivers/gpu/drm/i915/i915_driver.c | 16 +-
drivers/gpu/drm/i915/i915_gpu_error.h | 2 -
drivers/gpu/drm/i915/i915_gtt_view_types.h | 59 +
drivers/gpu/drm/i915/i915_reg.h | 74 +-
drivers/gpu/drm/i915/i915_vma_types.h | 52 +-
drivers/gpu/drm/i915/intel_gvt_mmio_table.c | 1 +
drivers/gpu/drm/i915/pxp/intel_pxp.c | 6 +-
drivers/gpu/drm/i915/pxp/intel_pxp.h | 4 +-
.../xe/compat-i915-headers/gem/i915_gem_object.h | 15 +
drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h | 8 -
.../xe/compat-i915-headers/i915_gtt_view_types.h | 7 +
.../xe/compat-i915-headers/i915_scheduler_types.h | 13 +
.../drm/xe/compat-i915-headers/i915_vma_types.h | 74 --
.../gpu/drm/xe/compat-i915-headers/intel_uncore.h | 2 +
.../gpu/drm/xe/compat-i915-headers/pxp/intel_pxp.h | 7 +-
drivers/gpu/drm/xe/display/intel_fbdev_fb.c | 4 +-
drivers/gpu/drm/xe/display/xe_display.c | 13 +-
drivers/gpu/drm/xe/display/xe_display_rps.c | 2 +-
drivers/gpu/drm/xe/display/xe_fb_pin.c | 1 +
drivers/gpu/drm/xe/display/xe_tdf.c | 6 +-
drivers/gpu/drm/xe/xe_pxp.c | 9 +-
drivers/gpu/drm/xe/xe_pxp.h | 2 +-
include/drm/drm_client.h | 8 +
include/drm/drm_damage_helper.h | 2 +-
include/drm/drm_fb_helper.h | 44 +-
124 files changed, 2545 insertions(+), 2374 deletions(-)
create mode 100644 drivers/gpu/drm/i915/display/intel_pfit_regs.h
create mode 100644 drivers/gpu/drm/i915/i915_gtt_view_types.h
create mode 100644 drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_object.h
create mode 100644 drivers/gpu/drm/xe/compat-i915-headers/i915_gtt_view_types.h
create mode 100644 drivers/gpu/drm/xe/compat-i915-headers/i915_scheduler_types.h
delete mode 100644 drivers/gpu/drm/xe/compat-i915-headers/i915_vma_types.h

--
Jani Nikula, Intel