[PATCH v6 0/2] rust, nova-core: add SizeConstants trait for SZ_* constants
From: John Hubbard
Date: Fri Apr 10 2026 - 22:41:44 EST
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@xxxxxxxxxx
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