mirror-linux/drivers
Dave Airlie 9bdbf7eb25 DRM Rust changes for v7.1-rc1
- DMA:
   - Rework the DMA coherent API: introduce Coherent<T> as a generalized
     container for arbitrary types, replacing the slice-only
     CoherentAllocation<T>. Add CoherentBox for memory initialization
     before exposing a buffer to hardware (converting to Coherent when
     ready), and CoherentHandle for allocations without kernel mapping.
 
   - Add Coherent::init() / init_with_attrs() for one-shot initialization
     via pin-init, and from-slice constructors for both Coherent and
     CoherentBox
 
   - Add uaccess write_dma() for copying from DMA buffers to userspace
     and BinaryWriter support for Coherent<T>
 
 - DRM:
   - Add GPU buddy allocator abstraction
 
   - Add DRM shmem GEM helper abstraction
 
   - Allow drm::Device to dispatch work and delayed work items to driver
     private data
 
   - Add impl_aref_for_gem_obj!() macro to reduce GEM refcount
     boilerplate, and introduce DriverObject::Args for constructor
     context
 
   - Add dma_resv_lock helper and raw_dma_resv() accessor on GEM objects
 
   - Clean up imports across the DRM module
 
 - I/O:
   - Merged via a signed tag from the driver-core tree: register!() macro
     and I/O infrastructure improvements (IoCapable refactor, RelaxedMmio
     wrapper, IoLoc trait, generic accessors, write_reg /
     LocatedRegister)
 
 - Nova (Core):
   - Fix and harden the GSP command queue: correct write pointer
     advancing, empty slot handling, and ring buffer indexing; add mutex
     locking and make Cmdq a pinned type; distinguish wait vs no-wait
     commands
 
   - Add support for large RPCs via continuation records, splitting
     oversized commands across multiple queue slots
 
   - Simplify GSP sequencer and message handling code: remove unused
     trait and Display impls, derive Debug and Zeroable where applicable,
     warn on unconsumed message data
 
   - Refactor Falcon firmware handling: create DMA objects lazily, add
     PIO upload support, and use the Generic Bootloader to boot FWSEC on
     Turing
 
   - Convert all register definitions (PMC, PBUS, PFB, GC6, FUSE, PDISP,
     Falcon) to the kernel register!() macro; add bounded_enum macro to
     define enums usable as register fields
 
   - Migrate all DMA usage to the new Coherent, CoherentBox, and
     CoherentHandle APIs
 
   - Harden firmware parsing with checked arithmetic throughout FWSEC,
     Booter, RISC-V parsing paths
 
   - Add debugfs support for reading GSP-RM log buffers; replace
     module_pci_driver!() with explicit module init to support
     module-level debugfs setup
 
   - Fix auxiliary device registration for multi-GPU systems
 
   - Various cleanups: import style, firmware parsing refactoring,
     framebuffer size logging
 
 - Rust:
   - Add interop::list module providing a C linked list interface
 
   - Extend num::Bounded with shift operations, into_bool(), and const
     get() to support register bitfield manipulation
 
   - Enable the generic_arg_infer Rust feature and add EMSGSIZE error
     code
 
 - Tyr:
   - Adopt vertical import style per kernel Rust guidelines
 
   - Clarify driver/device type names and use DRM device type alias
     consistently across the driver
 
   - Fix GPU model/version decoding in GpuInfo
 
 - Workqueue:
   - Add ARef<T> support for work and delayed work
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQS2q/xV6QjXAdC7k+1FlHeO1qrKLgUCacrovgAKCRBFlHeO1qrK
 LqarAQDSUyg2Z+T/z/svAkklfA9fk+J9yG1s4HLuhcLrAvlqlAEA+ZVCXkoGWmsi
 2wxE8trNl774CvcL0TFLvWFtBG2wmAs=
 =lGBF
 -----END PGP SIGNATURE-----

Merge tag 'drm-rust-next-2026-03-30' of https://gitlab.freedesktop.org/drm/rust/kernel into drm-next

DRM Rust changes for v7.1-rc1

- DMA:
  - Rework the DMA coherent API: introduce Coherent<T> as a generalized
    container for arbitrary types, replacing the slice-only
    CoherentAllocation<T>. Add CoherentBox for memory initialization
    before exposing a buffer to hardware (converting to Coherent when
    ready), and CoherentHandle for allocations without kernel mapping.

  - Add Coherent::init() / init_with_attrs() for one-shot initialization
    via pin-init, and from-slice constructors for both Coherent and
    CoherentBox

  - Add uaccess write_dma() for copying from DMA buffers to userspace
    and BinaryWriter support for Coherent<T>

- DRM:
  - Add GPU buddy allocator abstraction

  - Add DRM shmem GEM helper abstraction

  - Allow drm::Device to dispatch work and delayed work items to driver
    private data

  - Add impl_aref_for_gem_obj!() macro to reduce GEM refcount
    boilerplate, and introduce DriverObject::Args for constructor
    context

  - Add dma_resv_lock helper and raw_dma_resv() accessor on GEM objects

  - Clean up imports across the DRM module

- I/O:
  - Merged via a signed tag from the driver-core tree: register!() macro
    and I/O infrastructure improvements (IoCapable refactor, RelaxedMmio
    wrapper, IoLoc trait, generic accessors, write_reg /
    LocatedRegister)

- Nova (Core):
  - Fix and harden the GSP command queue: correct write pointer
    advancing, empty slot handling, and ring buffer indexing; add mutex
    locking and make Cmdq a pinned type; distinguish wait vs no-wait
    commands

  - Add support for large RPCs via continuation records, splitting
    oversized commands across multiple queue slots

  - Simplify GSP sequencer and message handling code: remove unused
    trait and Display impls, derive Debug and Zeroable where applicable,
    warn on unconsumed message data

  - Refactor Falcon firmware handling: create DMA objects lazily, add
    PIO upload support, and use the Generic Bootloader to boot FWSEC on
    Turing

  - Convert all register definitions (PMC, PBUS, PFB, GC6, FUSE, PDISP,
    Falcon) to the kernel register!() macro; add bounded_enum macro to
    define enums usable as register fields

  - Migrate all DMA usage to the new Coherent, CoherentBox, and
    CoherentHandle APIs

  - Harden firmware parsing with checked arithmetic throughout FWSEC,
    Booter, RISC-V parsing paths

  - Add debugfs support for reading GSP-RM log buffers; replace
    module_pci_driver!() with explicit module init to support
    module-level debugfs setup

  - Fix auxiliary device registration for multi-GPU systems

  - Various cleanups: import style, firmware parsing refactoring,
    framebuffer size logging

- Rust:
  - Add interop::list module providing a C linked list interface

  - Extend num::Bounded with shift operations, into_bool(), and const
    get() to support register bitfield manipulation

  - Enable the generic_arg_infer Rust feature and add EMSGSIZE error
    code

- Tyr:
  - Adopt vertical import style per kernel Rust guidelines

  - Clarify driver/device type names and use DRM device type alias
    consistently across the driver

  - Fix GPU model/version decoding in GpuInfo

- Workqueue:
  - Add ARef<T> support for work and delayed work

Signed-off-by: Dave Airlie <airlied@redhat.com>

From: "Danilo Krummrich" <dakr@kernel.org>
Link: https://patch.msgid.link/DHGH4BLT03BU.ZJH5U52WE8BY@kernel.org
2026-04-01 07:32:05 +10:00
..
accel Linux 7.0-rc6 2026-03-31 07:51:02 +10:00
accessibility
acpi ACPI: EC: clean up handlers on probe failure in acpi_ec_setup() 2026-03-24 18:47:10 +01:00
amba
android rust_binder: use lock_vma_under_rcu() in use_page_slow() 2026-02-26 21:34:14 -08:00
ata ata: libata-scsi: report correct sense field pointer in ata_scsiop_maint_in() 2026-03-20 09:59:30 +01:00
atm Convert remaining multi-line kmalloc_obj/flex GFP_KERNEL uses 2026-02-22 08:26:33 -08:00
auxdisplay
base regmap: Fix for v7.0 2026-03-27 16:34:25 -07:00
bcma
block zram: do not slot_free() written-back slots 2026-03-21 17:36:33 -07:00
bluetooth Bluetooth: btusb: clamp SCO altsetting table indices 2026-03-25 15:32:55 -04:00
bus driver core: platform: use generic driver_override infrastructure 2026-03-17 20:30:57 +01:00
cache
cdrom
cdx
char Bug fixes for the IPMI driver 2026-02-26 14:34:21 -08:00
clk driver core: platform: use generic driver_override infrastructure 2026-03-17 20:30:57 +01:00
clocksource Convert remaining multi-line kmalloc_obj/flex GFP_KERNEL uses 2026-02-22 08:26:33 -08:00
comedi Convert remaining multi-line kmalloc_obj/flex GFP_KERNEL uses 2026-02-22 08:26:33 -08:00
connector Convert more 'alloc_obj' cases to default GFP_KERNEL arguments 2026-02-21 20:03:00 -08:00
counter
cpufreq cpufreq: conservative: Reset requested_freq on limits change 2026-03-23 13:32:57 +01:00
cpuidle sched: idle: Make skipping governor callbacks more consistent 2026-03-10 16:03:02 +01:00
crypto Crypto library fixes for v7.0-rc5 2026-03-18 15:50:29 -07:00
cxl cxl: Adjust the startup priority of cxl_pmem to be higher than that of cxl_acpi 2026-03-19 15:12:40 -07:00
dax
dca
devfreq Convert more 'alloc_obj' cases to default GFP_KERNEL arguments 2026-02-21 20:03:00 -08:00
dibs
dio
dma dmaengine: xilinx_dma: Fix reset related timeout with two-channel AXIDMA 2026-03-17 16:33:32 +05:30
dma-buf dma-buf: heaps: Clear CMA highages using helper 2026-03-11 10:06:32 +01:00
dpll Including fixes from IPsec, Bluetooth and netfilter 2026-02-26 08:00:13 -08:00
edac Convert remaining multi-line kmalloc_obj/flex GFP_KERNEL uses 2026-02-22 08:26:33 -08:00
eisa
extcon Convert remaining multi-line kmalloc_obj/flex GFP_KERNEL uses 2026-02-22 08:26:33 -08:00
firewire bonding: prevent potential infinite loop in bond_header_parse() 2026-03-16 19:29:45 -07:00
firmware Linux 7.0-rc6 2026-03-31 07:51:02 +10:00
fpga Convert more 'alloc_obj' cases to default GFP_KERNEL arguments 2026-02-21 20:03:00 -08:00
fsi
fwctl
gnss
gpib gpib: lpvo_usb: fix unintended binding of FTDI 8U232AM devices 2026-03-11 16:23:32 +01:00
gpio gpiolib: normalize the return value of gc->get() on behalf of buggy drivers 2026-02-23 11:49:23 +01:00
gpu DRM Rust changes for v7.1-rc1 2026-04-01 07:32:05 +10:00
greybus Convert more 'alloc_obj' cases to default GFP_KERNEL arguments 2026-02-21 20:03:00 -08:00
hid hid-for-linus-2026031701 2026-03-17 13:55:51 -07:00
hsi
hte
hv mshv: Fix error handling in mshv_region_pin 2026-03-18 16:18:49 +00:00
hwmon hwmon: (pmbus/core) Protect regulator operations with mutex 2026-03-25 13:32:37 -07:00
hwspinlock
hwtracing Convert more 'alloc_obj' cases to default GFP_KERNEL arguments 2026-02-21 20:03:00 -08:00
i2c i2c: designware: amdisp: Fix resume-probe race condition issue 2026-03-27 13:51:21 +01:00
i3c i3c: dw-i3c-master: Set SIR_REJECT in DAT on device attach and reattach 2026-03-11 22:50:29 +01:00
idle
iio I3C fixes for 7.0 2026-03-14 16:25:10 -07:00
infiniband Linux 7.0-rc6 2026-03-31 07:51:02 +10:00
input
interconnect
iommu Linux 7.0-rc6 2026-03-31 07:51:02 +10:00
ipack Convert more 'alloc_obj' cases to default GFP_KERNEL arguments 2026-02-21 20:03:00 -08:00
irqchip Miscellaneous irqchip driver fixes: 2026-03-29 09:53:01 -07:00
isdn Convert more 'alloc_obj' cases to default GFP_KERNEL arguments 2026-02-21 20:03:00 -08:00
leds
macintosh Convert more 'alloc_obj' cases to default GFP_KERNEL arguments 2026-02-21 20:03:00 -08:00
mailbox
mcb
md Convert remaining multi-line kmalloc_obj/flex GFP_KERNEL uses 2026-02-22 08:26:33 -08:00
media media: ccs: Avoid deadlock in ccs_init_state() 2026-03-26 13:14:07 +01:00
memory
memstick Convert remaining multi-line kmalloc_obj/flex GFP_KERNEL uses 2026-02-22 08:26:33 -08:00
message Convert remaining multi-line kmalloc_obj/flex GFP_KERNEL uses 2026-02-22 08:26:33 -08:00
mfd Convert more 'alloc_obj' cases to default GFP_KERNEL arguments 2026-02-21 20:03:00 -08:00
misc i3c: simplify combined i3c/i2c dependencies 2026-02-27 16:33:07 +01:00
mmc mmc: sdhci: fix timing selection for 1-bit bus width 2026-03-16 16:08:54 +01:00
most
mtd mtd: rawnand: pl353: make sure optimal timings are applied 2026-03-18 18:08:25 +01:00
mux
net Merge branch '100GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/net-queue 2026-03-26 15:14:52 +01:00
nfc NFC: nxp-nci: allow GPIOs to sleep 2026-03-18 17:20:51 -07:00
ntb
nubus
nvdimm nvdimm/bus: Fix potential use after free in asynchronous initialization 2026-03-09 09:38:22 -05:00
nvme block-7.0-20260312 2026-03-13 10:13:06 -07:00
nvmem
of
opp Convert more 'alloc_obj' cases to default GFP_KERNEL arguments 2026-02-21 20:03:00 -08:00
parisc Convert remaining multi-line kmalloc_obj/flex GFP_KERNEL uses 2026-02-22 08:26:33 -08:00
parport
pci PCI/pwrctrl: Fix pci_pwrctrl_is_required() device node leak 2026-03-23 15:57:43 -05:00
pcmcia
peci
perf Convert more 'alloc_obj' cases to default GFP_KERNEL arguments 2026-02-21 20:03:00 -08:00
phy phy: qcom: qmp-ufs: Fix SM8650 PCS table for Gear 4 2026-02-27 20:46:57 +05:30
pinctrl pinctrl: sunxi: fix gpiochip_lock_as_irq() failure when pinmux is unknown 2026-03-23 14:23:09 +01:00
platform platform/x86: ISST: Correct locked bit width 2026-03-24 12:31:10 +02:00
pmdomain pmdomain providers: 2026-03-20 09:46:15 -07:00
pnp
power power: sequencing: pcie-m2: Fix device node reference leak in probe 2026-03-04 09:16:41 +01:00
powercap Convert remaining multi-line kmalloc_obj/flex GFP_KERNEL uses 2026-02-22 08:26:33 -08:00
pps
ps3
ptp
pwm
rapidio
ras
regulator regulator: pca9450: Correct probed name for PCA9452 2026-03-10 14:52:42 +00:00
remoteproc remoteproc: imx_rproc: Fix unreachable platform prepare_ops 2026-03-05 10:18:23 -07:00
resctrl arm_mpam: Force __iomem casts 2026-03-13 14:17:30 +00:00
reset reset: rzg2l-usbphy-ctrl: Check pwrrdy is valid before using it 2026-02-23 17:03:28 +01:00
rpmsg
rtc RTC for 7.0 2026-02-22 09:43:11 -08:00
s390 s390 updates for 7.0-rc4 2026-03-13 14:18:13 -07:00
sbus
scsi SCSI fixes on 20260327 2026-03-27 19:58:22 -07:00
sh
siox
slimbus driver core: platform: use generic driver_override infrastructure 2026-03-17 20:30:57 +01:00
soc Fixing a missing of_node_put() call. 2026-03-17 09:35:40 +01:00
soundwire Convert remaining multi-line kmalloc_obj/flex GFP_KERNEL uses 2026-02-22 08:26:33 -08:00
spi spi: spi-fsl-lpspi: fix teardown order issue (UAF) 2026-03-26 12:27:42 +00:00
spmi
ssb
staging staging: rtl8723bs: fix potential out-of-bounds read in rtw_restruct_wmm_ie 2026-02-24 10:01:20 -08:00
target scsi: target: file: Use kzalloc_flex for aio_cmd 2026-03-19 22:07:39 -04:00
tc
tee tee: shm: Remove refcounting of kernel pages 2026-03-03 09:03:04 +01:00
thermal thermal: intel: int340x: soc_slider: Set offset only for balanced mode 2026-03-24 19:00:12 +01:00
thunderbolt Convert more 'alloc_obj' cases to default GFP_KERNEL arguments 2026-02-21 20:03:00 -08:00
tty vt: save/restore unicode screen buffer for alternate screen 2026-03-13 09:15:58 +01:00
ufs scsi: ufs: core: Fix SError in ufshcd_rtc_work() during UFS suspend 2026-03-07 11:08:39 -05:00
uio
usb USB: ezcap401 needs USB_QUIRK_NO_BOS to function on 10gbs usb speed 2026-03-13 18:19:07 +01:00
vdpa Convert remaining multi-line kmalloc_obj/flex GFP_KERNEL uses 2026-02-22 08:26:33 -08:00
vfio Linux 7.0-rc6 2026-03-31 07:51:02 +10:00
vhost Convert remaining multi-line kmalloc_obj/flex GFP_KERNEL uses 2026-02-22 08:26:33 -08:00
video Linux 7.0-rc3 2026-03-11 11:18:31 +01:00
virt virt: tdx-guest: Fix handling of host controlled 'quote' buffer length 2026-03-20 21:05:50 -07:00
virtio dma-mapping: Clarify valid conditions for CPU cache line overlap 2026-03-20 11:33:24 +01:00
w1
watchdog
xen xen/privcmd: unregister xenstore notifier on module exit 2026-03-26 08:57:51 +01:00
zorro
Kconfig
Makefile