]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
Merge tag 'drm-intel-next-2025-11-04' of https://gitlab.freedesktop.org/drm/i915...
authorDave Airlie <airlied@redhat.com>
Thu, 6 Nov 2025 23:45:38 +0000 (09:45 +1000)
committerDave Airlie <airlied@redhat.com>
Thu, 6 Nov 2025 23:47:56 +0000 (09:47 +1000)
drm/i915 feature pull for v6.19:

Features and functionality:
- Enable LNL+ content adaptive sharpness filter (CASF) (Nemesa)
- Use optimized VRR guardband (Ankit, Ville)
- Enable Xe3p LT PHY (Suraj)
- Enable FBC support for Xe3p_LPD display (Sai Teja, Vinod)
- Specify DMC firmware for display version 30.02 (Dnyaneshwar)
- Report reason for disabling PSR to debugfs (Michał)
- Extend i915_display_info with Type-C port details (Khaled)
- Log DSI send packet sequence errors and contents

Refactoring and cleanups:
- Refactoring to prepare for VRR guardband optimization (Ankit)
- Abstract VRR live status wait (Ankit)
- Refactor VRR and DSB timing to handle Set Context Latency explicitly (Ankit)
- Helpers for prefill latency calculations (Ville)
- Refactor SKL+ watermark latency setup (Ville)
- VRR refactoring and cleanups (Ville)
- SKL+ universal plane cleanups (Ville)
- Decouple CDCLK from state->modeset refactor (Ville)
- Refactor VLV/CHV clock functions (Jani)
- Refactor fbdev handling (Jani)
- Call i915 and xe runtime PM from display via function pointers (Jouni)
- IRQ code refactoring  (Jani)
- Drop display dependency on i915 feature check macros (Jani)
- Refactor and unify i915 and xe stolen memory interfaces towards display (Jani)
- Switch to driver agnostic drm to display pointer chase (Jani)
- Use display version over graphics version in display code (Matt A)
- GVT cleanups (Jonathan, Andi)
- Rename a VLV clock function to unify (Michał)
- Explicitly sanitize DMC package header num entries (Luca)
- Remove redundant port clock check from ALPM (Jouni)
- Use sysfs_emit() instead of sprintf() in PMU sysfs (Madhur Kumar)
- Clean up C20 PHY PLL register macros (Imre, Mika))
- Abstract "address in MMIO table" helper for general use (Matt A)
- Improve VRR platform abstractions (Ville)
- Move towards more standard PCI PM code usage (Ville)
- Framebuffer refactoring (Ville)
- Drop display dependency on i915_utils.h (Jani)
- Include cleanups (Jani)

Fixes:
- Workaround docking station DSC issues with high pixel clock and bpp (Imre)
- Fix Panel Replay in DSC mode (Imre)
- Disable tracepoints for PREEMPT_RT as a workaround (Maarten)
- Fix intel_crtc_get_vblank_counter() on PREEMPT_RT (Maarten)
- Fix C10 PHY identification on PTL/WCL (Dnyaneshwar)
- Take AS SDP into account with optimized guardband (Jouni)
- Fix panic structure allocation memory leak (Jani)
- Adjust an FBC workaround platforms (Vinod)
- Add fallback for CDCLK selection (Naladala)
- Avoid using invalid transcoder in MST transport select (Suraj)
- Don't use cursor size reduction on display version 14+ (Nemesa)
- Fix C20 PHY PLL register programming (Imre, Mika)
- Fix PSR frontbuffer flush handling (Jouni)
- Store ALPM parameters in crtc state (Jouni)
- Defeature DRRS on LNL+ (Ville)
- Fix the scope of the large DRAM DIMM workaround (Ville)
- Fix PICA vs. AUX power ordering issue (Gustavo)
- Fix pixel rate for computing watermark line time (Ville)
- Fix framebuffer set_tiling vs. addfb race (Ville)
- DMC event handler fixes (Ville)

DRM Core:
- CRTC sharpness strength property (Nemesa)
- DPCD DSC quirk for Synaptics Panamera devices (Imre)
- Helpers to query the branch DSC max throughput/line-width (Imre)

Merges:
- Backmerge drm-next for v6.18-rc and to sync with drm-xe-next (Jani)

Signed-off-by: Dave Airlie <airlied@redhat.com>
From: Jani Nikula <jani.nikula@intel.com>
Link: https://patch.msgid.link/ec5a05f2df6d597a62033ee2d57225cce707b320@intel.com
13 files changed:
1  2 
drivers/gpu/drm/display/drm_dp_helper.c
drivers/gpu/drm/i915/display/intel_fbdev.c
drivers/gpu/drm/i915/gem/i915_gem_ttm.c
drivers/gpu/drm/i915/i915_driver.c
drivers/gpu/drm/xe/Makefile
drivers/gpu/drm/xe/display/intel_fbdev_fb.c
drivers/gpu/drm/xe/display/xe_display.c
drivers/gpu/drm/xe/xe_device_types.h
drivers/gpu/drm/xe/xe_pci.c
include/drm/display/drm_dp.h
include/drm/display/drm_dp_helper.h
include/drm/drm_crtc.h
include/drm/intel/pciids.h

Simple merge
Simple merge
index af8139d00161dfe880eb0f9e4e431f79e15dcf8a,83eaf9263c6b2b10856dd242ee03cb7bba42c350..7ad76022cb14f58d95b9c19611a0691cb565a5a8
  #include "xe_ttm_stolen_mgr.h"
  #include "xe_wa.h"
  
 -#include <generated/xe_wa_oob.h>
 +#include <generated/xe_device_wa_oob.h>
  
- struct intel_framebuffer *intel_fbdev_fb_alloc(struct drm_fb_helper *helper,
-                                              struct drm_fb_helper_surface_size *sizes)
+ /*
+  * FIXME: There shouldn't be any reason to have XE_PAGE_SIZE stride
+  * alignment. The same 64 as i915 uses should be fine, and we shouldn't need to
+  * have driver specific values. However, dropping the stride alignment to 64
+  * leads to underflowing the bo pin count in the atomic cleanup work.
+  */
+ u32 intel_fbdev_fb_pitch_align(u32 stride)
  {
-       struct drm_framebuffer *fb;
-       struct drm_device *dev = helper->dev;
-       struct xe_device *xe = to_xe_device(dev);
-       struct drm_mode_fb_cmd2 mode_cmd = {};
-       struct xe_bo *obj;
-       int size;
-       /* we don't do packed 24bpp */
-       if (sizes->surface_bpp == 24)
-               sizes->surface_bpp = 32;
-       mode_cmd.width = sizes->surface_width;
-       mode_cmd.height = sizes->surface_height;
+       return ALIGN(stride, XE_PAGE_SIZE);
+ }
  
-       mode_cmd.pitches[0] = ALIGN(mode_cmd.width *
-                                   DIV_ROUND_UP(sizes->surface_bpp, 8), XE_PAGE_SIZE);
-       mode_cmd.pixel_format = drm_mode_legacy_fb_format(sizes->surface_bpp,
-                                                         sizes->surface_depth);
+ struct drm_gem_object *intel_fbdev_fb_bo_create(struct drm_device *drm, int size)
+ {
+       struct xe_device *xe = to_xe_device(drm);
+       struct xe_bo *obj;
  
-       size = mode_cmd.pitches[0] * mode_cmd.height;
-       size = PAGE_ALIGN(size);
        obj = ERR_PTR(-ENODEV);
  
 -      if (!IS_DGFX(xe) && !XE_GT_WA(xe_root_mmio_gt(xe), 22019338487_display)) {
 +      if (!IS_DGFX(xe) && !XE_DEVICE_WA(xe, 22019338487_display)) {
                obj = xe_bo_create_pin_map_novm(xe, xe_device_get_root_tile(xe),
                                                size,
                                                ttm_bo_type_kernel, XE_BO_FLAG_SCANOUT |
Simple merge
index 6e59642e782022a12e43752da07add783abe31c3,67c808bb22a8559cf08004fe576920776b848228..90e2ee5e9270fd8f5383edacc8d24a225fc495a6
@@@ -440,8 -375,7 +440,9 @@@ static const struct pci_device_id pciid
        INTEL_LNL_IDS(INTEL_VGA_DEVICE, &lnl_desc),
        INTEL_BMG_IDS(INTEL_VGA_DEVICE, &bmg_desc),
        INTEL_PTL_IDS(INTEL_VGA_DEVICE, &ptl_desc),
 +      INTEL_NVLS_IDS(INTEL_VGA_DEVICE, &nvls_desc),
 +      INTEL_CRI_IDS(INTEL_PCI_DEVICE, &cri_desc),
+       INTEL_WCL_IDS(INTEL_VGA_DEVICE, &ptl_desc),
        { }
  };
  MODULE_DEVICE_TABLE(pci, pciidlist);
Simple merge
Simple merge
Simple merge
Simple merge