[PATCH v6 0/2] rust, nova-core: add SizeConstants trait for SZ_* constants

John Hubbard posted 2 patches 2 months ago
Documentation/gpu/nova/core/todo.rst | 14 ++++++++++++++
drivers/gpu/nova-core/fb.rs          | 21 +++++++++------------
drivers/gpu/nova-core/gsp/fw.rs      | 15 +++++++--------
drivers/gpu/nova-core/regs.rs        |  7 +++----
4 files changed, 33 insertions(+), 24 deletions(-)
[PATCH v6 0/2] rust, nova-core: add SizeConstants trait for SZ_* constants
Posted by John Hubbard 2 months ago
Changes in v6:

* Rebased onto Alex Courbot's drm-rust-next-staging branch[1], which now
  includes the prerequisites, so this is only 2 patches instead of 3.

  Sending this because it makes the upcoming Blackwell v10 posting
  cleaner.

Changes in v5:
  * Changed the subject line of this cover letter to not use the old
    DeviceSize name.

  * Collected Reviewed-by tags from Alexandre Courbot and Joel
    Fernandes, and Acked-by from Gary Guo.

  * Added a new patch 3/3 with a todo.rst entry for device address
    type wrappers and a marker trait, as discussed with Danilo.

  * Rebased onto latest drm-rust-next.

Changes in v4:
  * Renamed the trait from DeviceSize to SizeConstants.

  * Added backticks and trailing periods to all hex-value doc comments
    on the SZ_* constants.

  * Removed redundant type annotations from doc-test examples.

  * Used a `use` import for PAGE_SIZE in the module-level doc-test
    instead of a fully qualified path.

  * Rewrote doc-test comments to clarify the distinction between
    module-level constants (no type qualifier) and trait associated
    constants (type qualifier required).

  * Added Reviewed-by from Eliot Courtney.

Changes in v3:
  * Dropped the Alignment::from_u64() patch.

  * Reworked define_sizes! macro to accept target types as arguments
    (define_sizes!(u32, u64, usize)) using recursive macro arms,
    instead of hardcoding impls for u32 and u64. Overflow checking
    uses u128 casts so the same assert works for any ("reasonable")
    target type.

  * Added usize to the DeviceSize implementations, so the trait
    covers u32, u64, and usize.

  * Hex values for each constant are now proper doc-comments
    (forwarded via macro meta), instead of inline comments.

  * Rebased onto latest drm-rust-next.

Changes in v2:
  * Replaced flat SZ_*_U64 constants with a DeviceSize trait that
    provides SZ_* as associated constants on u32 and u64.

  * A define_sizes! macro generates everything from one list of names.

  * Added Alignment::from_u64() so alignment values can be constructed
    from DeviceSize constants without falling back to usize variants.

  * Rebased onto drm-rust-next. No longer depends on the Blackwell
    patchset.

[1] https://github.com/Gnurou/linux/commits/drm-rust-next-staging/

v1 is here:
    https://lore.kernel.org/20260310023145.120037-1-jhubbard@nvidia.com

John Hubbard (2):
  gpu: nova-core: use SizeConstants trait for u64 size constants
  gpu: nova-core: add task for device address type wrappers

 Documentation/gpu/nova/core/todo.rst | 14 ++++++++++++++
 drivers/gpu/nova-core/fb.rs          | 21 +++++++++------------
 drivers/gpu/nova-core/gsp/fw.rs      | 15 +++++++--------
 drivers/gpu/nova-core/regs.rs        |  7 +++----
 4 files changed, 33 insertions(+), 24 deletions(-)


base-commit: 8884dbc1fd174315b406027375bb7a4b211a8fae
-- 
2.53.0
Re: (subset) [PATCH v6 0/2] rust, nova-core: add SizeConstants trait for SZ_* constants
Posted by Danilo Krummrich 1 month, 2 weeks ago
On Fri, 10 Apr 2026 19:41:16 -0700, John Hubbard wrote:
> [PATCH v6 0/2] rust, nova-core: add SizeConstants trait for SZ_* constants

Applied, thanks!

  Branch: drm-rust-next
  Tree:   https://gitlab.freedesktop.org/drm/rust/kernel.git

[1/2] gpu: nova-core: use SizeConstants trait for u64 size constants
      commit: 98e508e5b016

The patch will appear in the next linux-next integration (typically within 24
hours on weekdays).

The patch is queued up for the upcoming merge window for the next major kernel
release.