[PULL] drm-xe-next

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Dave and Sima,

Second drm-xe-next pull request for the 6.12 cycle. This includes the
pull request from last week since it was not applied due to the ttm
patch. That patch is now reverted and replacement on the back burner.

The only UAPI change is actually a fix for building with gcc 5.

Aside from the additional fixes compared to last week, 2 important
patches to remove the force_probe requirement for LNL and BMG.  Those
are the first platforms to be officially supported by the xe driver: one
integrated and one discrete. For BMG there are still some necessary
changes going through the drm-intel-next pull request later this week.

Cheers,
Lucas De Marchi

drm-xe-next-2024-08-28:
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)
The following changes since commit a809b92ee0f84c3f655b16a8b4d04bc3665d954a:

  Merge tag 'drm-intel-next-2024-08-13' of https://gitlab.freedesktop.org/drm/i915/kernel into drm-next (2024-08-16 12:56:42 +1000)

are available in the Git repository at:

  https://gitlab.freedesktop.org/drm/xe/kernel.git tags/drm-xe-next-2024-08-28

for you to fetch changes up to 3adcf970dc7ec0469ec3116a5a8be9161d17a335:

  drm/xe/bmg: Drop force_probe requirement (2024-08-28 10:47:03 -0700)

----------------------------------------------------------------
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)

----------------------------------------------------------------
Akshata Jahagirdar (1):
      drm/xe/xe2: Introduce performance changes

Apoorva Singh (1):
      drm/xe: Remove NULL check of lrc->bo in xe_lrc_snapshot_capture()

Ashutosh Dixit (1):
      drm/xe/observation: Drop empty sysctl table entry

Balasubramani Vivekanandan (1):
      drm/xe/bmg: Drop force_probe requirement

Daniele Ceraolo Spurio (5):
      drm/xe: fix WA 14018094691
      drm/xe: Make exec_queue_kill safe to call twice
      drm/xe: use devm instead of drmm for managed bo
      drm/xe/uc: Use managed bo for HuC and GSC objects
      drm/xe/uc: Use devm to register cleanup that includes exec_queues

Dominik Grzegorzek (2):
      drm/xe: Move and export xe_hw_engine lookup.
      drm/xe: Export xe_hw_engine's mmio accessors

Francois Dugast (11):
      drm/xe/hw_engine_group: Introduce xe_hw_engine_group
      drm/xe/guc_submit: Make suspend_wait interruptible
      'drm/xe/hw_engine_group: Register hw engine group's exec queues
      drm/xe/hw_engine_group: Add helper to suspend faulting LR jobs
      drm/xe/exec_queue: Remove duplicated code
      drm/xe/exec_queue: Prepare last fence for hw engine group resume context
      drm/xe/hw_engine_group: Add helper to wait for dma fence jobs
      drm/xe/hw_engine_group: Ensure safe transition between execution modes
      drm/xe/exec: Switch hw engine group execution mode upon job submission
      drm/xe/vm: Remove restriction that all VMs must be faulting if one is
      drm/xe/device: Remove unused xe_device::usm::num_vm_in_*

Himal Prasad Ghimiray (5):
      drm/xe: Remove unused xe parameter
      drm/xe: Remove extra dma_fence_put on xe_sync_entry_add_deps failure
      drm/xe: Remove unrequired NULL checks in xe_sync_entry_cleanup
      drm/xe: Remove unrequired NULL check in xe_sched_job_free_fences
      drm/xe: Fix NPD in ggtt_node_remove()

Imre Deak (2):
      drm/xe: Suspend/resume user access only during system s/r
      drm/xe: Handle polling only for system s/r in xe_display_pm_suspend/resume()

Jani Nikula (3):
      drm/xe/tests: remove unused leftover xe_call_for_each_device()
      drm/xe: use pdev_to_xe_device() instead of pci_get_drvdata() directly
      drm/xe: add kdev_to_xe_device() helper and use it

Julia Filipchuk (3):
      drm/xe/guc: Bump minimum required GuC version to v70.29.2
      drm/xe/guc: Define GuC version v70.29.2 for BMG
      drm/xe/guc: Enable w/a 14022293748 and 22019794406

Karthik Poosa (1):
      drm/xe/hwmon: Fix PL1 disable flow in xe_hwmon_power_max_write

Lucas De Marchi (4):
      drm/xe: Allow to compile out debugfs
      drm/xe: Rename enable_display module param
      Merge drm/drm-next into drm-xe-next
      drm/xe/lnl: Drop force_probe requirement

Maarten Lankhorst (2):
      drm/xe/display: Match i915 driver suspend/resume sequences better
      drm/xe/display: Make display suspend/resume work on discrete

Matt Roper (3):
      drm/xe: Name and document Wa_14019789679
      drm/xe: Add debugfs to dump GuC's hwconfig
      drm/xe/mcr: Try to derive dss_per_grp from hwconfig attributes

Matthew Auld (3):
      drm/xe: fix engine_class bounds check again
      drm/xe: prevent UAF around preempt fence
      drm/xe: fixup xe_alloc_pf_queue

Matthew Brost (24):
      drm/xe: Use dma_fence_chain_free in chain fence unused as a sync
      drm/xe: Take ref to VM in delayed snapshot
      drm/printer: Allow NULL data in devcoredump printer
      drm/xe: Faster devcoredump
      drm/xe: Only check last fence on user binds
      drm/xe: Move VM dma-resv lock from xe_exec_queue_create to __xe_exec_queue_init
      drm/xe: Add xe_sched_msg_lock/unlock helper
      drm/xe: Reinit msg link when processing a message
      drm/xe: Add xe_sched_add_msg_locked helper
      drm/xe: Only enable scheduling upon resume if needed
      drm/xe: Allow suspend / resume to be safely called multiple times
      drm/xe: Fix tile fini sequence
      drm/xe: Use for_each_remote_tile rather than manual check
      drm/xe: Use reserved copy engine for user binds on faulting devices
      drm/xe: Drop HW fence pointer to HW fence ctx
      drm/xe: Free job before xe_exec_queue_put
      drm/xe: Invalidate media_gt TLBs
      drm/xe: Invalidate media_gt TLBs in PT code
      Revert "drm/xe: Invalidate media_gt TLBs in PT code"
      drm/xe: Move ggtt_fini to devm managed
      drm/xe: Set firmware state to loadable before registering guc_fini_hw
      drm/xe: Drop warn on xe_guc_pc_gucrc_disable in guc pc fini
      drm/xe: Move hw_engine_fini to devm managed
      drm/xe: Update xe_sa to use xe_managed_bo_create_pin_map

Michal Wajdeczko (1):
      drm/xe/pf: Fix VF config validation on multi-GT platforms

Mika Kuoppala (1):
      drm/xe: Add kernel doc for xe_hw_engine_lookup

Nathan Chancellor (1):
      drm/xe: Fix total initialization in xe_ggtt_print_holes()

Nirmoy Das (9):
      drm/xe: Fix access_ok check in user_fence_create
      drm/xe/gt: Add APIs for printing stats over debugfs
      drm/xe: Add stats for tlb invalidation count
      drm/xe/migrate: Parameterize ccs and bo data clear in xe_migrate_clear()
      drm/xe: Remove redundant param from xe_bo_create_user
      drm/ttm: Add a flag to allow drivers to skip clear-on-free
      drm/xe/lnl: Offload system clear page activity to GPU
      Revert "drm/xe/lnl: Offload system clear page activity to GPU"
      Revert "drm/ttm: Add a flag to allow drivers to skip clear-on-free"

Pallavi Mishra (1):
      drm/xe/xe2: Enable Priority Mem Read

Rodrigo Vivi (12):
      drm/xe: Removed unused xe_ggtt_printk
      drm/xe: Introduce GGTT documentation
      drm/xe: Remove unnecessary drm_mm.h includes
      drm/{i915, xe}: Avoid direct inspection of dpt_vma from outside dpt
      drm/xe: Encapsulate drm_mm_node inside xe_ggtt_node
      drm/xe: Rename xe_ggtt_node related functions
      drm/xe: Limit drm_mm_node_allocated access to xe_ggtt_node
      drm/xe: Introduce xe_ggtt_largest_hole
      drm/xe: Introduce xe_ggtt_print_holes
      drm/xe: Refactor xe_ggtt balloon functions to make the node clear
      drm/xe: Make xe_ggtt_node struct independent
      drm/xe: Fix missing runtime outer protection for ggtt_remove_node

Shekhar Chauhan (1):
      drm/xe/xe2: Add performance turning changes

Stuart Summers (3):
      drm/xe: Fix missing workqueue destroy in xe_gt_pagefault
      drm/xe: Use topology to determine page fault queue size
      drm/xe/guc: Bump the G2H queue size to account for page faults

Tejas Upadhyay (4):
      drm/xe/xe2hpg: Add Wa_14021821874
      drm/xe: Move enable host l2 VRAM post MCR init
      drm/xe: Write all slices if its mcr register
      drm/xe: Define STATELESS_COMPRESSION_CTRL as mcr register

Thomas Hellström (1):
      drm/xe: Use separate rpm lockdep map for non-d3cold-capable devices

Thomas Zimmermann (1):
      drm/xe: Support 'nomodeset' kernel command-line option

Thorsten Blum (1):
      drm/xe/oa: Use vma_pages() helper function in xe_oa_mmap()

Vinod Govindapillai (1):
      drm/xe/display: handle HPD polling in display runtime suspend/resume

 Documentation/gpu/xe/xe_mm.rst                     |  15 +
 drivers/gpu/drm/drm_print.c                        |  13 +-
 drivers/gpu/drm/i915/display/intel_dpt.c           |   4 +
 drivers/gpu/drm/i915/display/intel_dpt.h           |   3 +
 drivers/gpu/drm/i915/display/skl_universal_plane.c |   3 +-
 drivers/gpu/drm/xe/Makefile                        |  18 +-
 drivers/gpu/drm/xe/abi/guc_klvs_abi.h              |   1 +
 drivers/gpu/drm/xe/compat-i915-headers/i915_vma.h  |   7 +-
 drivers/gpu/drm/xe/display/xe_display.c            | 115 +++--
 drivers/gpu/drm/xe/display/xe_display.h            |   4 +
 drivers/gpu/drm/xe/display/xe_fb_pin.c             |  50 ++-
 drivers/gpu/drm/xe/regs/xe_engine_regs.h           |   1 +
 drivers/gpu/drm/xe/regs/xe_gt_regs.h               |  10 +-
 drivers/gpu/drm/xe/tests/xe_bo.c                   |   8 +-
 drivers/gpu/drm/xe/tests/xe_dma_buf.c              |   2 +-
 drivers/gpu/drm/xe/tests/xe_migrate.c              |  24 +-
 drivers/gpu/drm/xe/tests/xe_pci.c                  |  52 ---
 drivers/gpu/drm/xe/tests/xe_pci_test.h             |   1 -
 drivers/gpu/drm/xe/xe_bo.c                         |  26 +-
 drivers/gpu/drm/xe/xe_bo.h                         |  10 +-
 drivers/gpu/drm/xe/xe_bo_types.h                   |   5 +-
 drivers/gpu/drm/xe/xe_debugfs.h                    |   4 +
 drivers/gpu/drm/xe/xe_devcoredump.c                | 111 +++--
 drivers/gpu/drm/xe/xe_devcoredump_types.h          |   8 +
 drivers/gpu/drm/xe/xe_device.c                     |   5 +-
 drivers/gpu/drm/xe/xe_device.h                     |  15 +-
 drivers/gpu/drm/xe/xe_device_types.h               |  17 +-
 drivers/gpu/drm/xe/xe_exec.c                       |  20 +-
 drivers/gpu/drm/xe/xe_exec_queue.c                 | 237 +++++-----
 drivers/gpu/drm/xe/xe_exec_queue.h                 |   8 +-
 drivers/gpu/drm/xe/xe_exec_queue_types.h           |   4 +-
 drivers/gpu/drm/xe/xe_ggtt.c                       | 487 ++++++++++++++++-----
 drivers/gpu/drm/xe/xe_ggtt.h                       |  28 +-
 drivers/gpu/drm/xe/xe_ggtt_types.h                 |  54 ++-
 drivers/gpu/drm/xe/xe_gpu_scheduler.c              |  23 +-
 drivers/gpu/drm/xe/xe_gpu_scheduler.h              |  12 +
 drivers/gpu/drm/xe/xe_gsc.c                        |  20 +-
 drivers/gpu/drm/xe/xe_gsc_proxy.c                  |  45 +-
 drivers/gpu/drm/xe/xe_gt.c                         |  10 +-
 drivers/gpu/drm/xe/xe_gt_debugfs.c                 |  13 +
 drivers/gpu/drm/xe/xe_gt_mcr.c                     |  40 +-
 drivers/gpu/drm/xe/xe_gt_pagefault.c               |  75 +++-
 drivers/gpu/drm/xe/xe_gt_sriov_pf_config.c         | 119 ++---
 drivers/gpu/drm/xe/xe_gt_sriov_pf_config_types.h   |   5 +-
 drivers/gpu/drm/xe/xe_gt_sriov_vf.c                |  44 +-
 drivers/gpu/drm/xe/xe_gt_stats.c                   |  49 +++
 drivers/gpu/drm/xe/xe_gt_stats.h                   |  29 ++
 drivers/gpu/drm/xe/xe_gt_tlb_invalidation.c        |   2 +
 drivers/gpu/drm/xe/xe_gt_types.h                   |  24 +-
 drivers/gpu/drm/xe/xe_guc.c                        |   4 +-
 drivers/gpu/drm/xe/xe_guc.h                        |  10 +
 drivers/gpu/drm/xe/xe_guc_ads.c                    |   6 +
 drivers/gpu/drm/xe/xe_guc_ct.c                     |  12 +-
 drivers/gpu/drm/xe/xe_guc_hwconfig.c               |  97 ++++
 drivers/gpu/drm/xe/xe_guc_hwconfig.h               |   3 +
 drivers/gpu/drm/xe/xe_guc_pc.c                     |   2 +-
 drivers/gpu/drm/xe/xe_guc_submit.c                 |  62 ++-
 drivers/gpu/drm/xe/xe_huc.c                        |  19 +-
 drivers/gpu/drm/xe/xe_hw_engine.c                  | 149 +++++--
 drivers/gpu/drm/xe/xe_hw_engine.h                  |  10 +
 drivers/gpu/drm/xe/xe_hw_engine_group.c            | 372 ++++++++++++++++
 drivers/gpu/drm/xe/xe_hw_engine_group.h            |  29 ++
 drivers/gpu/drm/xe/xe_hw_engine_group_types.h      |  51 +++
 drivers/gpu/drm/xe/xe_hw_engine_types.h            |   2 +
 drivers/gpu/drm/xe/xe_hw_fence.c                   |   9 +-
 drivers/gpu/drm/xe/xe_hw_fence_types.h             |   7 +-
 drivers/gpu/drm/xe/xe_hwmon.c                      |   3 +-
 drivers/gpu/drm/xe/xe_lrc.c                        |  50 ++-
 drivers/gpu/drm/xe/xe_migrate.c                    |  29 +-
 drivers/gpu/drm/xe/xe_migrate.h                    |   9 +-
 drivers/gpu/drm/xe/xe_mmio.c                       |   4 +-
 drivers/gpu/drm/xe/xe_module.c                     |  54 ++-
 drivers/gpu/drm/xe/xe_module.h                     |   2 +-
 drivers/gpu/drm/xe/xe_oa.c                         |   3 +-
 drivers/gpu/drm/xe/xe_observation.c                |   1 -
 drivers/gpu/drm/xe/xe_pci.c                        |  12 +-
 drivers/gpu/drm/xe/xe_pm.c                         |  99 ++++-
 drivers/gpu/drm/xe/xe_pm.h                         |   1 +
 drivers/gpu/drm/xe/xe_preempt_fence.c              |   3 +-
 drivers/gpu/drm/xe/xe_preempt_fence_types.h        |   2 +
 drivers/gpu/drm/xe/xe_pt.c                         |  10 +-
 drivers/gpu/drm/xe/xe_res_cursor.h                 |   1 -
 drivers/gpu/drm/xe/xe_sa.c                         |  13 +-
 drivers/gpu/drm/xe/xe_sa_types.h                   |   1 +
 drivers/gpu/drm/xe/xe_sched_job.c                  |   6 +-
 drivers/gpu/drm/xe/xe_sync.c                       |  21 +-
 drivers/gpu/drm/xe/xe_trace.h                      |   2 +-
 drivers/gpu/drm/xe/xe_ttm_stolen_mgr.c             |   1 -
 drivers/gpu/drm/xe/xe_tuning.c                     |  13 +-
 drivers/gpu/drm/xe/xe_uc_fw.c                      |  28 +-
 drivers/gpu/drm/xe/xe_vm.c                         |  90 ++--
 drivers/gpu/drm/xe/xe_wa.c                         |   4 +
 drivers/gpu/drm/xe/xe_wa_oob.rules                 |   6 +
 include/drm/drm_print.h                            |  54 ++-
 94 files changed, 2381 insertions(+), 865 deletions(-)
 create mode 100644 drivers/gpu/drm/xe/xe_gt_stats.c
 create mode 100644 drivers/gpu/drm/xe/xe_gt_stats.h
 create mode 100644 drivers/gpu/drm/xe/xe_hw_engine_group.c
 create mode 100644 drivers/gpu/drm/xe/xe_hw_engine_group.h
 create mode 100644 drivers/gpu/drm/xe/xe_hw_engine_group_types.h



[Index of Archives]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux