linux/drivers/gpu/drm/i915
Linus Torvalds 1d239c1eb8 IOMMU Updates for Linux v5.20/v6.0:
Including:
 
 	- Most intrusive patch is small and changes the default
 	  allocation policy for DMA addresses. Before the change the
 	  allocator tried its best to find an address in the first 4GB.
 	  But that lead to performance problems when that space gets
 	  exhaused, and since most devices are capable of 64-bit DMA
 	  these days, we changed it to search in the full DMA-mask
 	  range from the beginning.  This change has the potential to
 	  uncover bugs elsewhere, in the kernel or the hardware. There
 	  is a Kconfig option and a command line option to restore the
 	  old behavior, but none of them is enabled by default.
 
 	- Add Robin Murphy as reviewer of IOMMU code and maintainer for
 	  the dma-iommu and iova code
 
 	- Chaning IOVA magazine size from 1032 to 1024 bytes to save
 	  memory
 
 	- Some core code cleanups and dead-code removal
 
 	- Support for ACPI IORT RMR node
 
 	- Support for multiple PCI domains in the AMD-Vi driver
 
 	- ARM SMMU changes from Will Deacon:
 
 	  - Add even more Qualcomm device-tree compatible strings
 
 	  - Support dumping of IMP DEF Qualcomm registers on TLB sync
 	    timeout
 
 	  - Fix reference count leak on device tree node in Qualcomm
 	    driver
 
 	- Intel VT-d driver updates from Lu Baolu:
 
 	  - Make intel-iommu.h private
 
 	  - Optimize the use of two locks
 
 	  - Extend the driver to support large-scale platforms
 
 	  - Cleanup some dead code
 
 	- MediaTek IOMMU refactoring and support for TTBR up to 35bit
 
 	- Basic support for Exynos SysMMU v7
 
 	- VirtIO IOMMU driver gets a map/unmap_pages() implementation
 
 	- Other smaller cleanups and fixes
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEr9jSbILcajRFYWYyK/BELZcBGuMFAmLs3DIACgkQK/BELZcB
 GuMizhAAguAnLLOkOLlR9/MhrTZfNXCUX+bfrEIevjFXMw4iPNfCCr4ydQ7EdVK6
 ZA/3Z89huYl0d0x/FELolnQi+HOeqYrfTDe4rB7TgNgwZnWa+fdHcyYkgBGyfPaV
 ilgjNcx8o//9o4NasyB6kU395jVmFxb735gMTTb+tcO9fr+/qIB6hxrHuCklxrNr
 C7wK6kkoDPi5n0QuXCSjXEx2Hk245pAWKPLwqxsUYzHGlLfl7ULOxw65BUBGvn/H
 uCsTfJFu7u+ErwQYf0qPuOwRBnRdsx9g5EAnfab8p074SoKWvbNnftIxgIRp8ZEM
 YgCbhYa1GOFI4r+XzqRzEbc0/vPSttims4Jqz0KxYs7pr5EoVifrWLJFjJdCdc2h
 Tio1gTvOq8HbH63kwYNKJhg4iSC6zVd37ihEhvfFO6LcgFl4iCfd2o9zK7oY40J4
 XoOxofVnJ2e3tzdhZ/n5quCXiudHixm6WuVa7QYKscF7Ud0tY1wWKuibdlMQTeNM
 68MvtlteKcfs1BrWzZyrFMrFeAfIY8LI82y6jdJuoNMU5LE9+5yelXBdJhnVygZ+
 Jglv1TIt6W/z1H5JgXtNVZ1wWgBm7rurOqNyfN8XCd8eP1z321CLfX8ujkhKrIWP
 ApG15cwvpnh1JX630+UFiEikTGU0fb2orMdPwYmwuu8DAsoLVHE=
 =hI2K
 -----END PGP SIGNATURE-----

Merge tag 'iommu-updates-v5.20-or-v6.0' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu

Pull iommu updates from Joerg Roedel:

 - The most intrusive patch is small and changes the default allocation
   policy for DMA addresses.

   Before the change the allocator tried its best to find an address in
   the first 4GB. But that lead to performance problems when that space
   gets exhaused, and since most devices are capable of 64-bit DMA these
   days, we changed it to search in the full DMA-mask range from the
   beginning.

   This change has the potential to uncover bugs elsewhere, in the
   kernel or the hardware. There is a Kconfig option and a command line
   option to restore the old behavior, but none of them is enabled by
   default.

 - Add Robin Murphy as reviewer of IOMMU code and maintainer for the
   dma-iommu and iova code

 - Chaning IOVA magazine size from 1032 to 1024 bytes to save memory

 - Some core code cleanups and dead-code removal

 - Support for ACPI IORT RMR node

 - Support for multiple PCI domains in the AMD-Vi driver

 - ARM SMMU changes from Will Deacon:
      - Add even more Qualcomm device-tree compatible strings
      - Support dumping of IMP DEF Qualcomm registers on TLB sync
        timeout
      - Fix reference count leak on device tree node in Qualcomm driver

 - Intel VT-d driver updates from Lu Baolu:
      - Make intel-iommu.h private
      - Optimize the use of two locks
      - Extend the driver to support large-scale platforms
      - Cleanup some dead code

 - MediaTek IOMMU refactoring and support for TTBR up to 35bit

 - Basic support for Exynos SysMMU v7

 - VirtIO IOMMU driver gets a map/unmap_pages() implementation

 - Other smaller cleanups and fixes

* tag 'iommu-updates-v5.20-or-v6.0' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (116 commits)
  iommu/amd: Fix compile warning in init code
  iommu/amd: Add support for AVIC when SNP is enabled
  iommu/amd: Simplify and Consolidate Virtual APIC (AVIC) Enablement
  ACPI/IORT: Fix build error implicit-function-declaration
  drivers: iommu: fix clang -wformat warning
  iommu/arm-smmu: qcom_iommu: Add of_node_put() when breaking out of loop
  iommu/arm-smmu-qcom: Add SM6375 SMMU compatible
  dt-bindings: arm-smmu: Add compatible for Qualcomm SM6375
  MAINTAINERS: Add Robin Murphy as IOMMU SUBSYTEM reviewer
  iommu/amd: Do not support IOMMUv2 APIs when SNP is enabled
  iommu/amd: Do not support IOMMU_DOMAIN_IDENTITY after SNP is enabled
  iommu/amd: Set translation valid bit only when IO page tables are in use
  iommu/amd: Introduce function to check and enable SNP
  iommu/amd: Globally detect SNP support
  iommu/amd: Process all IVHDs before enabling IOMMU features
  iommu/amd: Introduce global variable for storing common EFR and EFR2
  iommu/amd: Introduce Support for Extended Feature 2 Register
  iommu/amd: Change macro for IOMMU control register bit shift to decimal value
  iommu/exynos: Enable default VM instance on SysMMU v7
  iommu/exynos: Add SysMMU v7 register set
  ...
2022-08-06 10:42:38 -07:00
..
display IOMMU Updates for Linux v5.20/v6.0: 2022-08-06 10:42:38 -07:00
gem IOMMU Updates for Linux v5.20/v6.0: 2022-08-06 10:42:38 -07:00
gt drm for 5.20/6.0 2022-08-03 19:52:08 -07:00
gvt VFIO updates for v6.0-rc1 2022-08-06 08:59:35 -07:00
pxp drm/i915/pxp: fix sparse warning for not declared symbol 2022-06-08 11:32:28 +03:00
selftests drm/i915/selftests: fix subtraction overflow bug 2022-07-12 18:21:58 -04:00
.gitignore
Kconfig Merge tag 'drm-intel-next-2022-05-20' of git://anongit.freedesktop.org/drm/drm-intel into drm-intel-gt-next 2022-05-23 09:34:47 +01:00
Kconfig.debug drm/i915: Improve debug Kconfig texts a bit 2021-07-06 10:10:07 +02:00
Kconfig.profile
Kconfig.unstable drm/i915: Kill the fake lmem support 2022-02-18 22:31:46 -08:00
Makefile Merge tag 'drm-intel-gt-next-2022-06-29' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2022-07-01 14:14:52 +10:00
TODO.txt drm/i915/tasklet: separate local hacks around struct tasklet_struct 2022-06-07 21:47:19 +03:00
i915_active.c drm/i915: Bump GT idling delay to 2 jiffies 2022-07-12 17:44:40 -04:00
i915_active.h drm/i915: Remove unused bits of i915_vma/active api 2021-12-20 16:26:09 +01:00
i915_active_types.h drm/i915/active: remove useless i915_utils.h include 2021-12-13 12:04:44 +02:00
i915_cmd_parser.c drm/i915: include linux/highmem.h and linux/swap.h where needed 2022-03-04 11:15:25 +02:00
i915_cmd_parser.h drm/i915: split out i915_cmd_parser.h from i915_drv.h 2022-01-10 15:43:09 +02:00
i915_config.c drm/i915: remove IS_ACTIVE 2021-10-07 11:04:05 -07:00
i915_debugfs.c Merge drm/drm-next into drm-intel-gt-next 2022-04-21 13:48:26 -04:00
i915_debugfs.h
i915_debugfs_params.c drm/i915: Use to_gt() helper 2021-12-17 21:51:59 -08:00
i915_debugfs_params.h
i915_deps.c drm/i915: fix broken build 2022-04-08 10:36:11 +02:00
i915_deps.h drm/i915: Break out the i915_deps utility 2021-12-22 08:52:57 +01:00
i915_driver.c - Suspend fixes for Display (Jose) 2022-07-12 12:55:36 +10:00
i915_driver.h drm/i915: Move intel_vtd_active and run_as_guest to i915_utils 2022-03-30 12:04:01 +01:00
i915_drm_client.c drm/i915/fdinfo: Don't show engine classes not present 2022-06-20 13:07:49 +03:00
i915_drm_client.h drm/i915/client: only include what's needed 2022-06-07 21:31:17 +03:00
i915_drv.h Driver uAPI changes: 2022-07-22 15:51:31 +10:00
i915_file_private.h drm/i915: Explicitly track DRM clients 2022-04-05 08:38:49 +01:00
i915_fixed.h
i915_gem.c drm/i915: Explicitly track DRM clients 2022-04-05 08:38:49 +01:00
i915_gem.h drm/i915/tasklet: separate local hacks around struct tasklet_struct 2022-06-07 21:47:19 +03:00
i915_gem_evict.c Merge tag 'drm-intel-gt-next-2022-02-17' of git://anongit.freedesktop.org/drm/drm-intel into drm-intel-next 2022-02-23 15:03:51 -05:00
i915_gem_evict.h Merge tag 'drm-intel-gt-next-2022-02-17' of git://anongit.freedesktop.org/drm/drm-intel into drm-intel-next 2022-02-23 15:03:51 -05:00
i915_gem_gtt.c Merge tag 'drm-intel-gt-next-2022-02-17' of git://anongit.freedesktop.org/drm/drm-intel into drm-intel-next 2022-02-23 15:03:51 -05:00
i915_gem_gtt.h drm/i915: Remove short-term pins from execbuf, v6. 2022-01-18 12:19:30 +01:00
i915_gem_ww.c drm/i915: Break out dma_resv ww locking utilities to separate files 2021-06-17 14:22:59 +01:00
i915_gem_ww.h drm/i915: Ditch the i915_gem_ww_ctx loop member 2021-08-20 09:39:41 +01:00
i915_getparam.c drm/i915/sseu: Disassociate internal subslice mask representation from uapi 2022-06-02 07:20:59 -07:00
i915_getparam.h drm/i915: split out i915_getparam.h from i915_drv.h 2022-01-10 15:43:05 +02:00
i915_gpu_error.c drm/i915/gt: Add general DSS steering iterator to intel_gt_mcr 2022-07-08 09:32:57 -07:00
i915_gpu_error.h drm/i915: Add extra registers to GPU error dump 2022-06-02 09:14:36 -07:00
i915_ioc32.c drm/i915: split out i915_getparam.h from i915_drv.h 2022-01-10 15:43:05 +02:00
i915_ioc32.h
i915_ioctl.c drm/i915: split out i915_reg_read_ioctl() to i915_ioctl.[ch] 2022-01-21 09:59:22 +02:00
i915_ioctl.h drm/i915: split out i915_reg_read_ioctl() to i915_ioctl.[ch] 2022-01-21 09:59:22 +02:00
i915_iosf_mbi.h drm/i915: abstraction for iosf to compile on all archs 2021-10-27 00:32:01 -07:00
i915_irq.c drm/i915/reg: split out icl_dsi_regs.h 2022-02-21 12:06:15 +02:00
i915_irq.h drm/i915/hpd: hide struct intel_hotplug_funcs 2022-02-09 13:39:35 +02:00
i915_memcpy.c
i915_memcpy.h
i915_mitigations.c drm/i915: move the DRIVER_* macros to i915_driver.[ch] 2022-02-10 11:44:25 +02:00
i915_mitigations.h
i915_mm.c drm/i915: Skip remap_io_mapping() for non-x86 platforms 2021-12-08 13:26:14 -08:00
i915_mm.h drm/i915: Fix header test for !CONFIG_X86 2022-02-07 12:56:49 +00:00
i915_module.c Merge tag 'drm-intel-gt-next-2022-02-17' of git://anongit.freedesktop.org/drm/drm-intel into drm-intel-next 2022-02-23 15:03:51 -05:00
i915_params.c drm/i915: Add lmem_bar_size modparam 2022-07-13 17:47:51 +01:00
i915_params.h drm/i915: Add lmem_bar_size modparam 2022-07-13 17:47:51 +01:00
i915_pci.c Driver uAPI changes: 2022-07-22 15:51:31 +10:00
i915_pci.h drm/i915/pci: rename functions to have i915_pci prefix 2021-08-26 10:50:19 +03:00
i915_perf.c i915/perf: Disable OA sseu config param for gfx12.50+ 2022-07-08 08:27:36 -07:00
i915_perf.h drm/i915: Use a table for i915_init/exit (v2) 2021-07-22 12:05:17 +02:00
i915_perf_oa_regs.h drm/i915/perf: Express OA register ranges with i915_range 2022-02-02 07:52:23 -08:00
i915_perf_types.h drm/i915: Fix CFI violation with show_dynamic_id() 2022-05-19 12:10:57 +03:00
i915_pmu.c Bitmap patches for 5.19-rc1 2022-06-04 14:04:27 -07:00
i915_pmu.h drm/i915: Use a table for i915_init/exit (v2) 2021-07-22 12:05:17 +02:00
i915_priolist_types.h
i915_pvinfo.h
i915_query.c drm/i915/uapi: expose the avail tracking 2022-07-01 08:29:59 +01:00
i915_query.h
i915_reg.h - Suspend fixes for Display (Jose) 2022-07-12 12:55:36 +10:00
i915_reg_defs.h drm/i915/gt: Remove GEN12_SFC_DONE_MAX from register defs header 2022-03-11 08:18:27 -08:00
i915_request.c Revert "drm/i915: Hold reference to intel_context over life of i915_request" 2022-06-27 23:47:26 +05:30
i915_request.h drm/i915: Do not access rq->engine without a reference 2022-06-27 23:46:35 +05:30
i915_scatterlist.c drm/i915/ttm: fix 32b build 2022-07-17 14:53:47 -04:00
i915_scatterlist.h drm/i915/ttm: fix 32b build 2022-07-17 14:53:47 -04:00
i915_scheduler.c drm/i915: move scheduler slabs to direct module init/exit 2021-07-28 17:18:56 +02:00
i915_scheduler.h drm/i915/tasklet: separate local hacks around struct tasklet_struct 2022-06-07 21:47:19 +03:00
i915_scheduler_types.h drm/i915/guc: Implement GuC priority management 2021-07-27 17:32:27 -07:00
i915_selftest.h
i915_suspend.c drm/i915/fbc: Remove intel_fbc_global_disable() 2022-04-13 17:19:04 +03:00
i915_suspend.h
i915_sw_fence.c dma-buf: add enum dma_resv_usage v4 2022-04-07 12:53:53 +02:00
i915_sw_fence.h drm/i915: Drop stealing of bits from i915_sw_fence function pointer 2021-11-30 17:52:15 -08:00
i915_sw_fence_work.c drm/i915: Drop stealing of bits from i915_sw_fence function pointer 2021-11-30 17:52:15 -08:00
i915_sw_fence_work.h drm/i915: Drop error handling from dma_fence_work 2021-07-16 21:47:39 +02:00
i915_switcheroo.c drm/i915/driver: add i915_driver_ prefix to functions 2021-11-17 11:47:55 +02:00
i915_switcheroo.h
i915_syncmap.c
i915_syncmap.h
i915_sysfs.c drm/i915/gt: Fix memory leaks in per-gt sysfs 2022-06-13 13:04:31 +03:00
i915_sysfs.h drm/i915/gt: create per-tile sysfs interface 2022-03-21 08:37:39 +00:00
i915_tasklet.h drm/i915/tasklet: separate local hacks around struct tasklet_struct 2022-06-07 21:47:19 +03:00
i915_trace.h drm/i915/trace: split out display trace to a separate file 2021-12-09 11:21:46 +02:00
i915_trace_points.c
i915_ttm_buddy_manager.c drm/i915/uapi: expose the avail tracking 2022-07-01 08:29:59 +01:00
i915_ttm_buddy_manager.h drm/i915/uapi: expose the avail tracking 2022-07-01 08:29:59 +01:00
i915_user_extensions.c
i915_user_extensions.h
i915_utils.c drm/i915: Move intel_vtd_active and run_as_guest to i915_utils 2022-03-30 12:04:01 +01:00
i915_utils.h drm/i915/utils: throw out unused stuff 2022-06-07 21:47:25 +03:00
i915_vgpu.c drm/i915: Add object locking to i915_gem_evict_for_node and i915_gem_evict_something, v2. 2022-01-18 12:18:03 +01:00
i915_vgpu.h
i915_vma.c drm/i915: Fix vm use-after-free in vma destruction 2022-07-12 18:16:40 -04:00
i915_vma.h drm/i915: use IOMEM_ERR_PTR() directly 2022-05-04 13:10:49 +01:00
i915_vma_resource.c drm/i915: Remove the vm open count 2022-03-07 08:50:03 +01:00
i915_vma_resource.h drm/i915: Remove the vm open count 2022-03-07 08:50:03 +01:00
i915_vma_types.h drm/i915: Remove the vma refcount 2022-03-07 08:50:52 +01:00
intel_device_info.c drm/i915/mtl: Add MeteorLake PCI IDs 2022-07-08 13:25:33 -07:00
intel_device_info.h Driver uAPI changes: 2022-07-22 15:51:31 +10:00
intel_dram.c drm/i915/pcode: Extend pcode functions for multiple gt's 2022-05-20 09:11:27 +01:00
intel_dram.h
intel_gvt.c drm/i915/gvt: Fix the compiling error when CONFIG_DRM_I915_DEBUG_RUNTIME_PM=n 2022-04-28 17:01:17 -04:00
intel_gvt.h drm/i915/gvt: move the gvt code into kvmgt.ko 2022-04-21 07:36:56 -04:00
intel_gvt_mmio_table.c drm/i915/regs: split out intel audio register definitions 2022-06-03 10:49:16 +03:00
intel_mchbar_regs.h drm/i915: Clean up SSKPD/MLTR defines 2022-02-18 08:42:17 +02:00
intel_memory_region.c drm/i915: remove intel_memory_region avail 2022-07-01 08:29:59 +01:00
intel_memory_region.h drm/i915: remove intel_memory_region avail 2022-07-01 08:29:59 +01:00
intel_pch.c drm/i915: Nuke PCH_JSP 2022-07-06 20:33:47 +03:00
intel_pch.h drm/i915: Nuke PCH_JSP 2022-07-06 20:33:47 +03:00
intel_pci_config.h drm/i915: split out PCI config space registers from i915_reg.h 2022-01-10 16:17:46 +02:00
intel_pcode.c drm/i915/pcode: Add a couple of pcode helpers 2022-05-20 09:11:45 +01:00
intel_pcode.h drm/i915/pcode: Add a couple of pcode helpers 2022-05-20 09:11:45 +01:00
intel_pm.c - Suspend fixes for Display (Jose) 2022-07-12 12:55:36 +10:00
intel_pm.h drm/i915/wm: move wm state verification to intel_pm.c 2022-06-17 11:54:28 +03:00
intel_pm_types.h drm/i915: split out intel_pm_types.h 2021-12-03 11:28:12 +02:00
intel_region_ttm.c drm/i915/ttm: fix 32b build 2022-07-17 14:53:47 -04:00
intel_region_ttm.h drm/i915/ttm: fix 32b build 2022-07-17 14:53:47 -04:00
intel_runtime_pm.c drm/i915/selftests: Disable runtime pm wakeref tracking for the mock device 2022-02-11 13:22:10 +02:00
intel_runtime_pm.h drm/i915/selftests: Disable runtime pm wakeref tracking for the mock device 2022-02-11 13:22:10 +02:00
intel_sbi.c drm/i915: Only include i915_reg.h from .c files 2022-02-02 07:59:54 -08:00
intel_sbi.h drm/i915: rename intel_sideband.[ch] to intel_sbi.[ch] 2021-10-14 18:05:04 +03:00
intel_step.c drm/i915/pvc: Extract stepping information from PCI revid 2022-05-31 14:44:57 -07:00
intel_step.h drm/i915/pvc: Extract stepping information from PCI revid 2022-05-31 14:44:57 -07:00
intel_uncore.c drm/i915/gt: Move multicast register handling to a dedicated file 2022-06-17 08:05:12 -07:00
intel_uncore.h drm/i915/gt: Move multicast register handling to a dedicated file 2022-06-17 08:05:12 -07:00
intel_wakeref.c
intel_wakeref.h drm/i915/guc: Take engine PM when a context is pinned with GuC submission 2021-10-15 10:37:26 -07:00
intel_wopcm.c drm/i915/wopcm: Handle pre-programmed WOPCM registers 2022-01-26 11:47:24 -08:00
intel_wopcm.h
vlv_sideband.c drm/i915: Only include i915_reg.h from .c files 2022-02-02 07:59:54 -08:00
vlv_sideband.h drm/i915: split out vlv sideband registers from i915_reg.h 2022-01-10 16:17:50 +02:00
vlv_sideband_reg.h drm/i915: split out vlv sideband registers from i915_reg.h 2022-01-10 16:17:50 +02:00
vlv_suspend.c drm/i915: Use str_on_off() 2022-03-02 08:48:23 -08:00
vlv_suspend.h