rust-for-linux.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PULL] DRM Rust changes for v6.19
@ 2025-11-18 12:57 Alice Ryhl
  0 siblings, 0 replies; only message in thread
From: Alice Ryhl @ 2025-11-18 12:57 UTC (permalink / raw)
  To: Dave Airlie, Simona Vetter
  Cc: Danilo Krummrich, Alexandre Courbot, Daniel Almeida, Miguel Ojeda,
	nouveau, dri-devel, rust-for-linux, linux-kernel, dim-tools

Hi Dave and Sima,

Please pull the following DRM Rust changes.

Besides the DRM Rust changes, this PR also contains a few core Rust changes and
DRM GPUVM support for deferred vm_bo cleanup. The GPUVM change was landed
through this tree so that it could be used from Rust code, but unfortunately
the relevant Rust change did not land in time for this cycle.

The top commit gets rid of a conflict with the Rust tree. This conflict is what
caused the hack fix in the Nov 17th linux-next and I confirmed that the hack is
absent in the Nov 18th linux-next.

The drivers/gpu/nova-core/driver.rs file has a conflict with the driver-core
tree. Please see linux-next for the resolution:

	https://lore.kernel.org/p/20251117160621.2043a859@canb.auug.org.au

- Alice

The following changes since commit 211ddde0823f1442e4ad052a2f30f050145ccada:

  Linux 6.18-rc2 (2025-10-19 15:19:16 -1000)

are available in the Git repository at:

  https://gitlab.freedesktop.org/drm/rust/kernel.git tags/drm-rust-next-2025-11-18

for you to fetch changes up to 77b686f688126a5f758b51441a03186e9eb1b0f1:

  gpu: nova-core: make formatting compatible with rust tree (2025-11-17 12:56:36 +0000)

----------------------------------------------------------------
Cross-subsystem Changes:

Rust
  - Make slice::as_flattened usable on all supported versions of rustc.
  - Add FromBytes::from_bytes_prefix() method.

Core Changes:

  - Update Tyr in MAINTAINERS file.
  - Remove redundant device ptr from Rust GEM object.
  - Change how AlwaysRefCounted is implemented for GEM objects.
  - Add deferred vm_bo cleanup to GPUVM and use it in Panthor.

Driver Changes:

Nova Core
  - Introduction of bitfield! macro, with support for different storage sizes
    and custom visibility.
  - Introduction of safe converters between integer types for which the
    conversion is lossless.
  - GSP initialized up to fully booted state on Ampere.
  - Use more future-proof register for GPU identification.
  - Various simplifications and optimizations.

Nova
  - Select NOVA_CORE.
  - Depend on CONFIG_64BIT.

----------------------------------------------------------------
Alexandre Courbot (19):
      gpu: nova-core: register: use field type for Into implementation
      gpu: nova-core: replace wait_on with kernel equivalents
      gpu: nova-core: bitfield: simplify condition
      gpu: nova-core: bitfield: simplify expression
      gpu: nova-core: bitfield: remove BitOr implementation
      gpu: nova-core: replace `as` with `from` conversions where possible
      gpu: nova-core: vbios: do not use `as` when comparing BiosImageType
      gpu: nova-core: use `try_from` instead of `as` for u32 conversions
      rust: transmute: add `from_bytes_prefix` family of methods
      gpu: nova-core: vbios: use FromBytes for PmuLookupTable header
      gpu: nova-core: vbios: use FromBytes for PcirStruct
      gpu: nova-core: vbios: use FromBytes for BitHeader
      gpu: nova-core: vbios: use FromBytes for NpdeStruct
      gpu: nova-core: add functions and traits for lossless integer conversions
      gpu: nova-core: replace use of `as` with functions from `num`
      gpu: nova-core: justify remaining uses of `as`
      gpu: nova-core: compute layout of more framebuffer regions required for GSP
      gpu: nova-core: num: add functions to safely convert a const value to a smaller type
      rust: enable slice_flatten feature and provide it through an extension trait

Alice Ryhl (4):
      drm/gpuvm: add deferred vm_bo cleanup
      panthor: use drm_gpuva_unlink_defer()
      Merge tag 'v6.18-rc2' into 'drm-rust-next'
      gpu: nova-core: make formatting compatible with rust tree

Alistair Popple (11):
      gpu: nova-core: Set correct DMA mask
      gpu: nova-core: Create initial Gsp
      gpu: nova-core: gsp: Create wpr metadata
      gpu: nova-core: Add zeroable trait to bindings
      gpu: nova-core: gsp: Add GSP command queue bindings and handling
      gpu: nova-core: gsp: Create rmargs
      gpu: nova-core: gsp: Add SetSystemInfo command
      gpu: nova-core: gsp: Add SetRegistry command
      gpu: nova-core: gsp: Boot GSP
      gpu: nova-core: gsp: Wait for gsp initialization to complete
      gpu: nova-core: gsp: Retrieve GSP static info to gather GPU information

Daniel del Castillo (4):
      gpu: nova-core: Simplify `transmute` and `transmute_mut` in fwsec.rs
      gpu: nova-core: Fix capitalization of some comments
      gpu: nova-core: Simplify `DmaObject::from_data` in nova-core/dma.rs
      Documentation: nova: Update the todo list

Danilo Krummrich (5):
      gpu: nova-core: gsp: remove useless conversion
      gpu: nova-core: gsp: do not unwrap() SGEntry
      MAINTAINERS: add Tyr to DRM DRIVERS AND COMMON INFRASTRUCTURE [RUST]
      drm: nova: depend on CONFIG_64BIT
      drm: nova: select NOVA_CORE

Joel Fernandes (18):
      gpu: nova-core: vbios: Rework BiosImage to be simpler
      gpu: nova-core: bitfield: Move bitfield-specific code from register! into new macro
      gpu: nova-core: bitfield: Add support for different storage widths
      gpu: nova-core: bitfield: Add support for custom visibility
      gpu: nova-core: Add a slice-buffer (sbuffer) datastructure
      gpu: nova-core: falcon: Add support to check if RISC-V is active
      gpu: nova-core: falcon: Add support to write firmware version
      gpu: nova-core: falcon: Move waiting until halted to a helper
      gpu: nova-core: falcon: Move start functionality into separate helper
      gpu: nova-core: falcon: Move mbox functionalities into helper
      gpu: nova-core: falcon: Move dma_reset functionality into helper
      gpu: nova-core: gsp: Add support for checking if GSP reloaded
      gpu: nova-core: Add bindings required by GSP sequencer
      gpu: nova-core: Implement the GSP sequencer
      gpu: nova-core: sequencer: Add register opcodes
      gpu: nova-core: sequencer: Add delay opcode support
      gpu: nova-core: sequencer: Implement basic core operations
      gpu: nova-core: sequencer: Implement core resume operation

John Hubbard (10):
      gpu: nova-core: regs: rename .alter() --> .update()
      gpu: nova-core: Ada: basic GPU identification
      gpu: nova-core: remove an unnecessary register read: HWCFG1
      gpu: nova-core: remove unnecessary need_riscv, bar parameters
      gpu: nova-core: apply the one "use" item per line policy
      gpu: nova-core: implement Display for Spec
      gpu: nova-core: prepare Spec and Revision types for boot0/boot42
      gpu: nova-core: make Architecture behave as a u8 type
      gpu: nova-core: add boot42 support for next-gen GPUs
      gpu: nova-core: provide a clear error report for unsupported GPUs

Lyude Paul (3):
      Partially revert "rust: drm: gem: Implement AlwaysRefCounted for all gem objects automatically"
      rust: drm/gem: Remove Object.dev
      rust/drm/gem: Fix missing header in `Object` rustdoc

 Documentation/gpu/nova/core/todo.rst              |  30 -
 MAINTAINERS                                       |   1 +
 drivers/gpu/drm/drm_gpuvm.c                       | 190 +++++
 drivers/gpu/drm/nova/Kconfig                      |   2 +
 drivers/gpu/drm/panthor/panthor_mmu.c             | 110 +--
 drivers/gpu/nova-core/bitfield.rs                 | 330 ++++++++
 drivers/gpu/nova-core/dma.rs                      |  34 +-
 drivers/gpu/nova-core/driver.rs                   |  27 +-
 drivers/gpu/nova-core/falcon.rs                   | 287 ++++---
 drivers/gpu/nova-core/falcon/gsp.rs               |  29 +-
 drivers/gpu/nova-core/falcon/hal.rs               |  14 +-
 drivers/gpu/nova-core/falcon/hal/ga102.rs         |  46 +-
 drivers/gpu/nova-core/falcon/sec2.rs              |  10 +-
 drivers/gpu/nova-core/fb.rs                       | 100 ++-
 drivers/gpu/nova-core/fb/hal.rs                   |   6 +-
 drivers/gpu/nova-core/fb/hal/ga100.rs             |  16 +-
 drivers/gpu/nova-core/fb/hal/ga102.rs             |   8 +-
 drivers/gpu/nova-core/fb/hal/tu102.rs             |  25 +-
 drivers/gpu/nova-core/firmware.rs                 |  31 +-
 drivers/gpu/nova-core/firmware/booter.rs          |  78 +-
 drivers/gpu/nova-core/firmware/fwsec.rs           | 184 +++--
 drivers/gpu/nova-core/firmware/gsp.rs             |  53 +-
 drivers/gpu/nova-core/firmware/riscv.rs           |  34 +-
 drivers/gpu/nova-core/gfw.rs                      |  48 +-
 drivers/gpu/nova-core/gpu.rs                      | 117 ++-
 drivers/gpu/nova-core/gsp.rs                      | 157 +++-
 drivers/gpu/nova-core/gsp/boot.rs                 | 153 +++-
 drivers/gpu/nova-core/gsp/cmdq.rs                 | 679 ++++++++++++++++
 drivers/gpu/nova-core/gsp/commands.rs             | 227 ++++++
 drivers/gpu/nova-core/gsp/fw.rs                   | 923 ++++++++++++++++++++-
 drivers/gpu/nova-core/gsp/fw/commands.rs          | 128 +++
 drivers/gpu/nova-core/gsp/fw/r570_144.rs          |   6 +-
 drivers/gpu/nova-core/gsp/fw/r570_144/bindings.rs | 950 ++++++++++++++++++++++
 drivers/gpu/nova-core/gsp/sequencer.rs            | 407 +++++++++
 drivers/gpu/nova-core/nova_core.rs                |   5 +
 drivers/gpu/nova-core/num.rs                      | 217 +++++
 drivers/gpu/nova-core/regs.rs                     |  93 ++-
 drivers/gpu/nova-core/regs/macros.rs              | 287 +------
 drivers/gpu/nova-core/sbuffer.rs                  | 227 ++++++
 drivers/gpu/nova-core/util.rs                     |  33 +-
 drivers/gpu/nova-core/vbios.rs                    | 423 +++++-----
 include/drm/drm_gpuvm.h                           |  16 +
 init/Kconfig                                      |   3 +
 rust/kernel/drm/gem/mod.rs                        |  53 +-
 rust/kernel/lib.rs                                |   4 +
 rust/kernel/prelude.rs                            |   3 +
 rust/kernel/slice.rs                              |  49 ++
 rust/kernel/transmute.rs                          |  63 ++
 48 files changed, 5783 insertions(+), 1133 deletions(-)
 create mode 100644 drivers/gpu/nova-core/bitfield.rs
 create mode 100644 drivers/gpu/nova-core/gsp/cmdq.rs
 create mode 100644 drivers/gpu/nova-core/gsp/commands.rs
 create mode 100644 drivers/gpu/nova-core/gsp/fw/commands.rs
 create mode 100644 drivers/gpu/nova-core/gsp/sequencer.rs
 create mode 100644 drivers/gpu/nova-core/num.rs
 create mode 100644 drivers/gpu/nova-core/sbuffer.rs
 create mode 100644 rust/kernel/slice.rs

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2025-11-18 12:57 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-18 12:57 [PULL] DRM Rust changes for v6.19 Alice Ryhl

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).