linux/Documentation
Dave Airlie 8205c61deb DRM Rust changes for v7.2-rc1
- Driver Core (shared via signed tag dd-lifetimes-7.2-rc1):
 
   - Introduce Higher-Ranked Lifetime Types (HRT) for Rust device
     drivers, allowing driver structs to hold device resources like
     pci::Bar and IoMem directly with a lifetime tied to the binding
     scope, removing the need for Devres indirection and ARef<Device>.
 
   - Replace drvdata() with scoped registration data on the auxiliary
     bus, using the new ForLt trait to thread lifetimes through
     registrations. Remove drvdata() and driver_type.
 
 - DRM:
 
   - Add GPUVM immediate mode abstraction for Rust GPU drivers:
     - In immediate mode, GPU virtual address space state is updated
       during job execution (in the DMA fence signalling critical path),
       keeping the GPUVM and the GPU's address space always in sync.
 
     - Provide GpuVm, GpuVa, and GpuVmBo types for managing address
       spaces, virtual mappings, and GEM object backing respectively.
 
     - Provide split-merge map/unmap operations that handle partial
       overlaps with existing mappings.
 
     - drm_exec integration for dma_resv locking and GEM object
       validation based on the external/evicted object lists are not
       yet covered and planned as follow-up work.
 
   - Introduce DeviceContext type state for drm::Device, allowing
     drivers to restrict operations to contexts where the device is
     guaranteed to be registered (or not yet registered) with userspace.
 
   - Add FEAT_RENDER flag to the Driver trait for render node support.
 
 - Nova:
 
   - Hopper/Blackwell enablement:
     - Add GPU identification and architecture-based HAL selection for
       Hopper (GH100) and Blackwell (GB100, GB202).
 
     - Implement the FSP (Foundation Security Processor) boot path used by
       Hopper and Blackwell, including FSP falcon engine support, EMEM
       operations, MCTP/NVDM message infrastructure, and FSP Chain of
       Trust boot with GSP lockdown release.
 
     - Add support for 32-bit firmware images and auto-detection of
       firmware image format.
 
     - Add architecture-specific framebuffer, sysmem flush, PCI config
       mirror, DMA mask, and WPR/non-WPR heap sizing.
 
   - GSP boot and unload:
     - Refactor the GSP boot process into a chipset-specific HAL,
       keeping the SEC2 and FSP boot paths separated cleanly.
 
     - Implement proper driver unload: send UNLOADING_GUEST_DRIVER
       command, run Booter Unloader and FWSEC-SB upon unbinding, and run
       the unload bundle on Gsp::boot() failure. This removes the need
       for a manual GPU reset between driver unbind and re-probe.
 
   - GA100 support:
     - Add support for the GA100 GPU, including IFR header detection and
       skipping, correct fwsignature selection, conditional FRTS boot,
       and documentation of the IFR header layout.
 
   - VBIOS hardening and refactoring:
     - Harden VBIOS parsing with checked arithmetic, bounds-checked
       accesses, and FromBytes-based structure reads throughout the FWSEC
       and Falcon data paths. Simplify the overall VBIOS module
       structure.
 
   - HRT adoption:
     - Use lifetime-parameterized pci::Bar directly, replacing the
       Arc<Devres<Bar0>> indirection. Replace ARef<Device> with &'bound
       Device in SysmemFlush and the GSP sequencer. Separate the driver
       type from driver data.
 
   - Misc:
     - Rename module names to kebab-case (nova-drm, nova-core).
 
     - Require little-endian in Kconfig, making the existing assumption
       explicit.
 
 - Tyr:
 
   - Define comprehensive typed register blocks for GPU_CONTROL,
     JOB_CONTROL, MMU_CONTROL (including per-address-space registers),
     and DOORBELL_BLOCK using the kernel register!() macro. This replaces
     manual bit manipulation with typed register and field accessors.
 
   - Add shmem-backed GEM objects and set DMA mask based on GPU physical
     address width.
 
   - Adopt HRT: separate driver type from driver data, and use IoMem
     directly instead of Devres for register access during probe.
 
   - Move clock cleanup into a Drop implementation.
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQS2q/xV6QjXAdC7k+1FlHeO1qrKLgUCaiHGcwAKCRBFlHeO1qrK
 LucmAQCnRhpHwT9Miq3y29lyJjm0OcxikeBmeVczx3o+pUWI6wD+IHQMk26MEpqa
 T/XmMDbY+cFjRpeVu7qRAKa28649FgM=
 =eLXf
 -----END PGP SIGNATURE-----

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

DRM Rust changes for v7.2-rc1

- Driver Core (shared via signed tag dd-lifetimes-7.2-rc1):

  - Introduce Higher-Ranked Lifetime Types (HRT) for Rust device
    drivers, allowing driver structs to hold device resources like
    pci::Bar and IoMem directly with a lifetime tied to the binding
    scope, removing the need for Devres indirection and ARef<Device>.

  - Replace drvdata() with scoped registration data on the auxiliary
    bus, using the new ForLt trait to thread lifetimes through
    registrations. Remove drvdata() and driver_type.

- DRM:

  - Add GPUVM immediate mode abstraction for Rust GPU drivers:
    - In immediate mode, GPU virtual address space state is updated
      during job execution (in the DMA fence signalling critical path),
      keeping the GPUVM and the GPU's address space always in sync.

    - Provide GpuVm, GpuVa, and GpuVmBo types for managing address
      spaces, virtual mappings, and GEM object backing respectively.

    - Provide split-merge map/unmap operations that handle partial
      overlaps with existing mappings.

    - drm_exec integration for dma_resv locking and GEM object
      validation based on the external/evicted object lists are not
      yet covered and planned as follow-up work.

  - Introduce DeviceContext type state for drm::Device, allowing
    drivers to restrict operations to contexts where the device is
    guaranteed to be registered (or not yet registered) with userspace.

  - Add FEAT_RENDER flag to the Driver trait for render node support.

- Nova:

  - Hopper/Blackwell enablement:
    - Add GPU identification and architecture-based HAL selection for
      Hopper (GH100) and Blackwell (GB100, GB202).

    - Implement the FSP (Foundation Security Processor) boot path used by
      Hopper and Blackwell, including FSP falcon engine support, EMEM
      operations, MCTP/NVDM message infrastructure, and FSP Chain of
      Trust boot with GSP lockdown release.

    - Add support for 32-bit firmware images and auto-detection of
      firmware image format.

    - Add architecture-specific framebuffer, sysmem flush, PCI config
      mirror, DMA mask, and WPR/non-WPR heap sizing.

  - GSP boot and unload:
    - Refactor the GSP boot process into a chipset-specific HAL,
      keeping the SEC2 and FSP boot paths separated cleanly.

    - Implement proper driver unload: send UNLOADING_GUEST_DRIVER
      command, run Booter Unloader and FWSEC-SB upon unbinding, and run
      the unload bundle on Gsp::boot() failure. This removes the need
      for a manual GPU reset between driver unbind and re-probe.

  - GA100 support:
    - Add support for the GA100 GPU, including IFR header detection and
      skipping, correct fwsignature selection, conditional FRTS boot,
      and documentation of the IFR header layout.

  - VBIOS hardening and refactoring:
    - Harden VBIOS parsing with checked arithmetic, bounds-checked
      accesses, and FromBytes-based structure reads throughout the FWSEC
      and Falcon data paths. Simplify the overall VBIOS module
      structure.

  - HRT adoption:
    - Use lifetime-parameterized pci::Bar directly, replacing the
      Arc<Devres<Bar0>> indirection. Replace ARef<Device> with &'bound
      Device in SysmemFlush and the GSP sequencer. Separate the driver
      type from driver data.

  - Misc:
    - Rename module names to kebab-case (nova-drm, nova-core).

    - Require little-endian in Kconfig, making the existing assumption
      explicit.

- Tyr:

  - Define comprehensive typed register blocks for GPU_CONTROL,
    JOB_CONTROL, MMU_CONTROL (including per-address-space registers),
    and DOORBELL_BLOCK using the kernel register!() macro. This replaces
    manual bit manipulation with typed register and field accessors.

  - Add shmem-backed GEM objects and set DMA mask based on GPU physical
    address width.

  - Adopt HRT: separate driver type from driver data, and use IoMem
    directly instead of Devres for register access during probe.

  - Move clock cleanup into a Drop implementation.

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

From: "Danilo Krummrich" <dakr@kernel.org>
Link: https://patch.msgid.link/DJ0IF39U9ETK.PCCUO7ZEQ4S0@kernel.org
2026-06-05 09:13:12 +10:00
..
ABI Linux 7.1-rc5 2026-05-28 09:58:36 +02:00
accel accel/amdxdna: Expose per-client BO memory usage via fdinfo 2026-04-09 13:41:47 -07:00
accounting delayacct: add timestamp of delay max 2026-01-31 16:16:06 -08:00
admin-guide platform-drivers-x86 for v7.1-4 2026-05-22 15:45:26 -07:00
arch riscv: Docs: fix unmatched quote warning 2026-05-13 22:21:32 -06:00
block Documentation: ublk: address review comments for SHMEM_ZC docs 2026-04-09 19:10:44 -06:00
bpf docs/bpf: add missing fsession attach type to docs 2026-04-12 12:42:38 -07:00
cdrom Documentation: use a source-read extension for the index link boilerplate 2026-01-23 11:59:34 -07:00
core-api mm.git review status for linus..mm-stable 2026-04-15 12:59:16 -07:00
cpu-freq
crypto crypto/krb5, rxrpc: Fix lack of pre-decrypt/pre-verify length checks 2026-05-20 16:36:45 -07:00
dev-tools mm.git review status for linus..mm-stable 2026-04-15 12:59:16 -07:00
devicetree Merge tag 'drm-msm-next-2026-05-30' of https://gitlab.freedesktop.org/drm/msm into drm-next 2026-06-04 06:41:22 +10:00
doc-guide docs: kernel-doc.rst: document private: scope propagation 2026-03-22 15:02:29 -06:00
driver-api We've finally gotten rid of the struct clk_ops::round_rate() code after months 2026-04-21 08:33:26 -07:00
edac
fault-injection Documentation: use a source-read extension for the index link boilerplate 2026-01-23 11:59:34 -07:00
fb Documentation: use a source-read extension for the index link boilerplate 2026-01-23 11:59:34 -07:00
features RISC-V updates for v7.1 2026-04-24 10:00:37 -07:00
filesystems \n 2026-04-27 16:45:39 -07:00
firmware_class
firmware-guide docs: fix 're-use' -> 'reuse' in documentation 2026-02-02 09:54:15 -07:00
fpga Documentation: use a source-read extension for the index link boilerplate 2026-01-23 11:59:34 -07:00
gpu DRM Rust changes for v7.2-rc1 2026-06-05 09:13:12 +10:00
hid Docs: hid: intel-ish-hid: make long URL usable 2026-04-09 08:40:41 -06:00
hwmon docs: hwmon: sy7636a: fix temperature sysfs attribute name 2026-05-14 15:48:57 -07:00
i2c Documentation: use a source-read extension for the index link boilerplate 2026-01-23 11:59:34 -07:00
iio Docs: iio: ad7191 Correct clock configuration 2026-03-27 07:31:19 +00:00
images
infiniband RDMA/hfi1: Remove opa_vnic 2026-03-10 07:51:30 -04:00
input docs: fix 're-use' -> 'reuse' in documentation 2026-02-02 09:54:15 -07:00
kbuild Modules changes for v7.1-rc1 2026-04-14 17:16:38 -07:00
kernel-hacking
leds docs: leds: Document TI LP5812 LED driver 2026-02-04 09:23:37 +00:00
litmus-tests
livepatch Documentation: use a source-read extension for the index link boilerplate 2026-01-23 11:59:34 -07:00
locking Documentation: use a source-read extension for the index link boilerplate 2026-01-23 11:59:34 -07:00
maintainer
mhi Documentation: use a source-read extension for the index link boilerplate 2026-01-23 11:59:34 -07:00
misc-devices TTY / Serial driver updates for 7.0-rc1 2026-02-17 09:30:52 -08:00
mm mm.git review status for linus..mm-stable 2026-04-15 12:59:16 -07:00
netlabel Documentation: use a source-read extension for the index link boilerplate 2026-01-23 11:59:34 -07:00
netlink Linux 7.1-rc5 2026-05-28 09:58:36 +02:00
networking ethernet: 3c509: Update documentation to match MAINTAINERS 2026-05-21 08:28:56 -07:00
nvdimm
nvme
PCI pci-v7.1-changes 2026-04-15 14:41:21 -07:00
pcmcia Documentation: use a source-read extension for the index link boilerplate 2026-01-23 11:59:34 -07:00
peci Documentation: use a source-read extension for the index link boilerplate 2026-01-23 11:59:34 -07:00
power power supply and reset changes for the 7.0 series 2026-02-12 18:24:37 -08:00
process docs: threat-model: don't limit root capabilities to CAP_SYS_ADMIN 2026-05-14 06:23:44 -06:00
RCU rcu-tasks: Document that RCU Tasks Trace grace periods now imply RCU grace periods 2026-03-30 15:48:14 -04:00
rust docs: rust: general-information: use real example 2026-04-07 10:00:25 +02:00
scheduler sched_ext: Changes for v7.1 2026-04-15 10:54:24 -07:00
scsi SCSI misc on 20260212 2026-02-12 15:43:02 -08:00
security ipe/stable-7.1 PR 20260413 2026-04-15 15:19:45 -07:00
sound ALSA: doc: cs35l56: Update path to HDA driver source 2026-05-15 08:53:34 +02:00
sphinx docs: pt_BR: Add initial Portuguese translation 2026-02-23 14:16:07 -07:00
sphinx-includes Documentation: use a source-read extension for the index link boilerplate 2026-01-23 11:59:34 -07:00
sphinx-static docs: allow long links to wrap per character to prevent page overflow 2026-03-25 13:22:02 -06:00
spi spi: Updates for v7.0 2026-02-11 09:43:43 -08:00
staging net: remove ax25 and amateur radio (hamradio) subsystem 2026-04-23 10:24:02 -07:00
sunrpc/xdr Documentation: Add the RPC language description of NLM version 4 2026-03-29 21:25:09 -04:00
target Documentation: use a source-read extension for the index link boilerplate 2026-01-23 11:59:34 -07:00
tee Documentation: use a source-read extension for the index link boilerplate 2026-01-23 11:59:34 -07:00
timers Documentation: use a source-read extension for the index link boilerplate 2026-01-23 11:59:34 -07:00
tools RTLA patches for v7.1: 2026-04-15 17:48:24 -07:00
trace Runtime Verification updates for 7.1: 2026-04-15 17:15:18 -07:00
translations Delete some obsolete networking code 2026-04-24 09:41:58 -07:00
usb USB / Thunderbolt changes for 7.0-rc1 2026-02-17 09:36:43 -08:00
userspace-api rseq: Reenable performance optimizations conditionally 2026-05-06 17:40:27 +02:00
virt Documentation: kvm: update links in the references section of AMD Memory Encryption 2026-05-12 22:17:42 +02:00
w1 Documentation: use a source-read extension for the index link boilerplate 2026-01-23 11:59:34 -07:00
watchdog linux-watchdog 6.20-rc1 tag 2026-02-16 12:21:22 -08:00
wmi platform/wmi: Replace .no_notify_data with .min_event_size 2026-04-13 14:11:27 +03:00
.gitignore
.renames.txt Revert "drivers: net: 3com: 3c509: Remove this driver" 2026-05-21 08:28:56 -07:00
atomic_bitops.txt
atomic_t.txt
Changes
CodingStyle
conf.py docs: use logo.svg as favicon 2026-03-22 15:27:43 -06:00
docutils.conf
index.rst
Kconfig
Makefile
memory-barriers.txt
SubmittingPatches
subsystem-apis.rst net: remove ISDN subsystem and Bluetooth CMTP 2026-04-23 10:24:02 -07:00