Merge tag 'drm-xe-next-2024-08-28' of https://gitlab.freedesktop.org/drm/xe/kernel...
authorDave Airlie <airlied@redhat.com>
Fri, 30 Aug 2024 03:41:05 +0000 (13:41 +1000)
committerDave Airlie <airlied@redhat.com>
Fri, 30 Aug 2024 03:41:06 +0000 (13:41 +1000)
UAPI Changes:
- Fix OA format masks which were breaking build with gcc-5

Cross-subsystem Changes:

Driver Changes:
- Use dma_fence_chain_free in chain fence unused as a sync (Matthew Brost)
- Refactor hw engine lookup and mmio access to be used in more places
  (Dominik, Matt Auld, Mika Kuoppala)
- Enable priority mem read for Xe2 and later (Pallavi Mishra)
- Fix PL1 disable flow in xe_hwmon_power_max_write (Karthik)
- Fix refcount and speedup devcoredump (Matthew Brost)
- Add performance tuning changes to Xe2 (Akshata, Shekhar)
- Fix OA sysfs entry (Ashutosh)
- Add first GuC firmware support for BMG (Julia)
- Bump minimum GuC firmware for platforms under force_probe to match LNL
  and BMG (Julia)
- Fix access check on user fence creation (Nirmoy)
- Add/document workarounds for Xe2 (Julia, Daniele, John, Tejas)
- Document workaround and use proper WA infra (Matt Roper)
- Fix VF configuration on media GT (Michal Wajdeczko)
- Fix VM dma-resv lock (Matthew Brost)
- Allow suspend/resume exec queue backend op to be called multiple times
  (Matthew Brost)
- Add GT stats to debugfs (Nirmoy)
- Add hwconfig to debugfs (Matt Roper)
- Compile out all debugfs code with ONFIG_DEUBG_FS=n (Lucas)
- Remove dead kunit code (Jani Nikula)
- Refactor drvdata storing to help display (Jani Nikula)
- Cleanup unsused xe parameter in pte handling (Himal)
- Rename s/enable_display/probe_display/ for clarity (Lucas)
- Fix missing MCR annotation in couple of registers (Tejas)
- Fix DGFX display suspend/resume (Maarten)
- Prepare exec_queue_kill for PXP handling (Daniele)
- Fix devm/drmm issues (Daniele, Matthew Brost)
- Fix tile and ggtt fini sequences (Matthew Brost)
- Fix crashes when probing without firmware in place (Daniele, Matthew Brost)
- Use xe_managed for kernel BOs (Daniele, Matthew Brost)
- Future-proof dss_per_group calculation by using hwconfig (Matt Roper)
- Use reserved copy engine for user binds on faulting devices
  (Matthew Brost)
- Allow mixing dma-fence jobs and long-running faulting jobs (Francois)
- Cleanup redundant arg when creating use BO (Nirmoy)
- Prevent UAF around preempt fence (Auld)
- Fix display suspend/resume (Maarten)
- Use vma_pages() helper (Thorsten)
- Calculate pagefault queue size (Stuart, Matthew Auld)
- Fix missing pagefault wq destroy (Stuart)
- Fix lifetime handling of HW fence ctx (Matthew Brost)
- Fix order destroy order for jobs (Matthew Brost)
- Fix TLB invalidation for media GT (Matthew Brost)
- Document GGTT (Rodrigo Vivi)
- Refactor GGTT layering and fix runtime outer protection (Rodrigo Vivi)
- Handle HPD polling on display pm runtime suspend/resume (Imre, Vinod)
- Drop unrequired NULL checks (Apoorva, Himal)
- Use separate rpm lockdep map for non-d3cold-capable devices (Thomas Hellström)
- Support "nomodeset" kernel command-line option (Thomas Zimmermann)
- Drop force_probe requirement for LNL and BMG (Lucas, Balasubramani)

Signed-off-by: Dave Airlie <airlied@redhat.com>
From: Lucas De Marchi <lucas.demarchi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/wd42jsh4i3q5zlrmi2cljejohdsrqc6hvtxf76lbxsp3ibrgmz@y54fa7wwxgsd
1  2 
drivers/gpu/drm/xe/display/xe_display.c
drivers/gpu/drm/xe/xe_gt.c
drivers/gpu/drm/xe/xe_pm.c
drivers/gpu/drm/xe/xe_vm.c

index 1188ab83cfae461460f4e912b4fbc35d23cd0a22,710b1e2170c13a80721ad4095648c918b1bd40a6..78a884ddd499aafd004632b045eaab4c618a50d1
@@@ -320,14 -332,15 +332,17 @@@ void xe_display_pm_suspend(struct xe_de
         * properly.
         */
        intel_power_domains_disable(xe);
-       if (has_display(xe))
+       intel_fbdev_set_suspend(&xe->drm, FBINFO_STATE_SUSPENDED, true);
+       if (!runtime && has_display(xe)) {
                drm_kms_helper_poll_disable(&xe->drm);
-       if (!runtime)
+               intel_display_driver_disable_user_access(xe);
                intel_display_driver_suspend(xe);
+       }
+       xe_display_flush_cleanup_work(xe);
  
 +      xe_display_flush_cleanup_work(xe);
 +
        intel_dp_mst_suspend(xe);
  
        intel_hpd_cancel_work(xe);
Simple merge
index fcfb49af8c89130582149c5f4712be511af2b8b9,2600c936527e1883e4da060534dd17b6fe3d3072..2e2accd76fb2bd2dc3086b5423b4386812000bef
@@@ -366,9 -389,9 +389,11 @@@ int xe_pm_runtime_suspend(struct xe_dev
                xe_bo_runtime_pm_release_mmap_offset(bo);
        mutex_unlock(&xe->mem_access.vram_userfault.lock);
  
+       xe_display_pm_runtime_suspend(xe);
        if (xe->d3cold.allowed) {
 +              xe_display_pm_suspend(xe, true);
 +
                err = xe_bo_evict_all(xe);
                if (err)
                        goto out;
Simple merge