[GIT PULL] Nova changes for v6.16

Danilo Krummrich dakr at kernel.org
Tue May 20 08:42:39 UTC 2025


Hi Dave and Sima,

Please pull the following nova changes and other dependencies.

There are two minor and trivial conflicts with Linus' tree [1] and the CONFIGFS
tree [2].

There is also a minor, but slightly less trivial conflict with the Rust Xarray
tree with a resolution in [3].

[1] https://lore.kernel.org/all/20250428123825.4acf2499@canb.auug.org.au/
[2] https://lore.kernel.org/all/20250513135521.44a26953@canb.auug.org.au/
[3] https://lore.kernel.org/all/877c344gmp.fsf@kernel.org/

The following changes since commit 0af2f6be1b4281385b618cb86ad946eded089ac8:

  Linux 6.15-rc1 (2025-04-06 13:11:33 -0700)

are available in the Git repository at:

  https://gitlab.freedesktop.org/drm/nova.git tags/nova-next-v6.16-2025-05-20

for you to fetch changes up to 276c53c66e032c8e7cc0da63555f2742eb1afd69:

  gpu: drm: nova: select AUXILIARY_BUS instead of depending on it (2025-05-15 20:59:32 +0200)

----------------------------------------------------------------
Nova changes for v6.16

auxiliary:
  - bus abstractions
  - implementation for driver registration
  - add sample driver

drm:
  - implement __drm_dev_alloc()
  - DRM core infrastructure Rust abstractions
    - device, driver and registration
    - DRM IOCTL
    - DRM File
    - GEM object
  - IntoGEMObject rework
    - generically implement AlwaysRefCounted through IntoGEMObject
    - refactor unsound from_gem_obj() into as_ref()
    - refactor into_gem_obj() into as_raw()

driver-core:
  - merge topic/device-context-2025-04-17 from driver-core tree
  - implement Devres::access()
    - fix: doctest build under `!CONFIG_PCI`
  - accessor for Device::parent()
    - fix: conditionally expect `dead_code` for `parent()`
  - impl TryFrom<&Device> bus devices (PCI, platform)

nova-core:
  - remove completed Vec extentions from task list
  - register auxiliary device for nova-drm
  - derive useful traits for Chipset
  - add missing GA100 chipset
  - take &Device<Bound> in Gpu::new()
  - infrastructure to generate register definitions
  - fix register layout of NV_PMC_BOOT_0
  - move Firmware into own (Rust) module
  - fix: select AUXILIARY_BUS

nova-drm:
  - initial driver skeleton (depends on drm and auxiliary bus
    abstractions)
  - fix: select AUXILIARY_BUS

Rust (dependencies):
  - implement Opaque::zeroed()
  - implement Revocable::try_access_with()
  - implement Revocable::access()

----------------------------------------------------------------
Alexandre Courbot (11):
      rust/revocable: add try_access_with() convenience method
      samples: rust: convert PCI rust sample driver to use try_access_with()
      gpu: nova-core: derive useful traits for Chipset
      gpu: nova-core: add missing GA100 definition
      gpu: nova-core: take bound device in Gpu::new
      gpu: nova-core: define registers layout using helper macro
      gpu: nova-core: fix layout of NV_PMC_BOOT_0
      gpu: nova-core: move Firmware to firmware module
      samples: rust: select AUXILIARY_BUS instead of depending on it
      gpu: nova-core: select AUXILIARY_BUS instead of depending on it
      gpu: drm: nova: select AUXILIARY_BUS instead of depending on it

Andrew Ballance (1):
      gpu: nova-core: remove completed Vec extentions from task list

Asahi Lina (6):
      rust: drm: ioctl: Add DRM ioctl abstraction
      rust: drm: add driver abstractions
      rust: drm: add device abstraction
      rust: drm: add DRM driver registration
      rust: drm: file: Add File abstraction
      rust: drm: gem: Add GEM object abstraction

Danilo Krummrich (24):
      rust: device: implement impl_device_context_deref!
      rust: device: implement impl_device_context_into_aref!
      rust: device: implement device context for Device
      rust: platform: preserve device context in AsRef
      rust: pci: preserve device context in AsRef
      rust: device: implement Bound device context
      rust: pci: move iomap_region() to impl Device<Bound>
      rust: devres: require a bound device
      rust: dma: require a bound device
      Merge tag 'topic/device-context-2025-04-17' into nova-next
      rust: pci: impl TryFrom<&Device> for &pci::Device
      rust: platform: impl TryFrom<&Device> for &platform::Device
      rust: types: add `Opaque::zeroed`
      rust: device: implement Device::parent()
      rust: auxiliary: add auxiliary device / driver abstractions
      rust: auxiliary: add auxiliary registration
      samples: rust: add Rust auxiliary driver sample
      drm: drv: implement __drm_dev_alloc()
      MAINTAINERS: add DRM Rust source files to DRM DRIVERS
      rust: revocable: implement Revocable::access()
      rust: devres: implement Devres::access()
      samples: rust: pci: take advantage of Devres::access()
      gpu: nova-core: register auxiliary device for nova-drm
      drm: nova-drm: add initial driver skeleton

Lyude Paul (4):
      rust: drm: gem: Use NonNull for Object::dev
      rust: drm: gem: Refactor IntoGEMObject::from_gem_obj() to as_ref()
      rust: drm: gem: s/into_gem_obj()/as_raw()/
      rust: drm: gem: Implement AlwaysRefCounted for all gem objects automatically

Miguel Ojeda (2):
      rust: device: conditionally expect `dead_code` for `parent()`
      rust: devres: fix doctest build under `!CONFIG_PCI`

 Documentation/gpu/nova/core/todo.rst  |  16 ++---
 MAINTAINERS                           |  17 ++++++
 drivers/gpu/drm/Kconfig               |   2 +
 drivers/gpu/drm/Makefile              |   1 +
 drivers/gpu/drm/drm_drv.c             |  58 +++++++++++++-----
 drivers/gpu/drm/nova/Kconfig          |  14 +++++
 drivers/gpu/drm/nova/Makefile         |   3 +
 drivers/gpu/drm/nova/driver.rs        |  69 +++++++++++++++++++++
 drivers/gpu/drm/nova/file.rs          |  74 +++++++++++++++++++++++
 drivers/gpu/drm/nova/gem.rs           |  49 +++++++++++++++
 drivers/gpu/drm/nova/nova.rs          |  18 ++++++
 drivers/gpu/drm/nova/uapi.rs          |  61 +++++++++++++++++++
 drivers/gpu/nova-core/Kconfig         |   1 +
 drivers/gpu/nova-core/driver.rs       |   9 ++-
 drivers/gpu/nova-core/firmware.rs     |  44 ++++++++++++--
 drivers/gpu/nova-core/gpu.rs          |  86 ++++++++++++--------------
 drivers/gpu/nova-core/nova_core.rs    |   2 +
 drivers/gpu/nova-core/regs.rs         |  82 ++++++++++---------------
 drivers/gpu/nova-core/regs/macros.rs  | 380 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 include/drm/drm_drv.h                 |   5 ++
 include/uapi/drm/nova_drm.h           | 101 +++++++++++++++++++++++++++++++
 rust/bindings/bindings_helper.h       |   7 +++
 rust/helpers/auxiliary.c              |  23 +++++++
 rust/helpers/drm.c                    |  23 +++++++
 rust/helpers/helpers.c                |   2 +
 rust/helpers/pci.c                    |   5 ++
 rust/helpers/platform.c               |   5 ++
 rust/kernel/auxiliary.rs              | 360 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 rust/kernel/device.rs                 | 109 ++++++++++++++++++++++++++++++++-
 rust/kernel/devres.rs                 |  56 ++++++++++++++---
 rust/kernel/dma.rs                    |  14 ++---
 rust/kernel/drm/device.rs             | 200 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 rust/kernel/drm/driver.rs             | 166 ++++++++++++++++++++++++++++++++++++++++++++++++++
 rust/kernel/drm/file.rs               |  99 ++++++++++++++++++++++++++++++
 rust/kernel/drm/gem/mod.rs            | 328 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 rust/kernel/drm/ioctl.rs              | 162 +++++++++++++++++++++++++++++++++++++++++++++++++
 rust/kernel/drm/mod.rs                |  19 ++++++
 rust/kernel/lib.rs                    |   4 ++
 rust/kernel/pci.rs                    |  55 ++++++++++-------
 rust/kernel/platform.rs               |  54 +++++++++--------
 rust/kernel/revocable.rs              |  28 +++++++++
 rust/kernel/types.rs                  |   8 +++
 rust/uapi/uapi_helper.h               |   2 +
 samples/rust/Kconfig                  |  12 ++++
 samples/rust/Makefile                 |   1 +
 samples/rust/rust_driver_auxiliary.rs | 120 ++++++++++++++++++++++++++++++++++++
 samples/rust/rust_driver_pci.rs       |   5 +-
 47 files changed, 2762 insertions(+), 197 deletions(-)
 create mode 100644 drivers/gpu/drm/nova/Kconfig
 create mode 100644 drivers/gpu/drm/nova/Makefile
 create mode 100644 drivers/gpu/drm/nova/driver.rs
 create mode 100644 drivers/gpu/drm/nova/file.rs
 create mode 100644 drivers/gpu/drm/nova/gem.rs
 create mode 100644 drivers/gpu/drm/nova/nova.rs
 create mode 100644 drivers/gpu/drm/nova/uapi.rs
 create mode 100644 drivers/gpu/nova-core/regs/macros.rs
 create mode 100644 include/uapi/drm/nova_drm.h
 create mode 100644 rust/helpers/auxiliary.c
 create mode 100644 rust/helpers/drm.c
 create mode 100644 rust/kernel/auxiliary.rs
 create mode 100644 rust/kernel/drm/device.rs
 create mode 100644 rust/kernel/drm/driver.rs
 create mode 100644 rust/kernel/drm/file.rs
 create mode 100644 rust/kernel/drm/gem/mod.rs
 create mode 100644 rust/kernel/drm/ioctl.rs
 create mode 100644 rust/kernel/drm/mod.rs
 create mode 100644 samples/rust/rust_driver_auxiliary.rs


More information about the dri-devel mailing list