nova-core carried its own helper macro to declare register types. Its purpose was to be temporary since the beginning, and to serve as a testbed to develop an equivalent that could be used kernel-wide.
That equivalent has now been merged, so it is time to retire the nova-core local version. The kernel register macro has evolved into something significantly different from the one in nova-core, so it cannot be used as a drop-in replacement. All declarations and sites using registers need to be updated. No semantic change should happen as a result. All the patches in this series could also be squashed into a single one without altering their reviewability significantly. I hope to be able to merge this quickly so we can rebase in-flight series to use the updated register syntax. This series is based on drm-rust-next as of 2026-03-23 and has been tested on Turing. Signed-off-by: Alexandre Courbot <[email protected]> --- Changes in v3: - Remove obsolete part of PMC commit message. - Add { } brackets around const expression used in `Bounded` constructor. - Use `MAX..` arm to `bounded_enum` to catch missing values in the required range of the `From` implementation. (thanks Gary!) - Remove unneeded const asserts that are already caught by `Bounded::new`. - Link to v2: https://patch.msgid.link/[email protected] Changes in v2: - Reorder register fields in descending order. - Drop `nv_reg` macro and use the kernel `register` macro directly. - Make `FUSE_UCODE1_VERSION` registers return a u16 directly. - Use `into_raw` instead of accessing the inner value of registers directly. - Use safer macro to generate the `From` and `TryFrom` implementations of falcon enum types. - Link to v1: https://patch.msgid.link/[email protected] --- Alexandre Courbot (10): gpu: nova-core: convert PMC registers to kernel register macro gpu: nova-core: convert PBUS registers to kernel register macro gpu: nova-core: convert PFB registers to kernel register macro gpu: nova-core: convert GC6 registers to kernel register macro gpu: nova-core: convert FUSE registers to kernel register macro gpu: nova-core: convert PDISP registers to kernel register macro gpu: nova-core: falcon: introduce `bounded_enum` macro gpu: nova-core: convert falcon registers to kernel register macro gpu: nova-core: remove `io::` qualifier to register macro invocations Documentation: nova: remove register abstraction task Documentation/gpu/nova/core/todo.rst | 76 --- drivers/gpu/nova-core/falcon.rs | 577 ++++++++-------- drivers/gpu/nova-core/falcon/gsp.rs | 27 +- drivers/gpu/nova-core/falcon/hal/ga102.rs | 70 +- drivers/gpu/nova-core/falcon/hal/tu102.rs | 12 +- drivers/gpu/nova-core/falcon/sec2.rs | 17 +- drivers/gpu/nova-core/fb.rs | 6 +- drivers/gpu/nova-core/fb/hal/ga100.rs | 37 +- drivers/gpu/nova-core/fb/hal/ga102.rs | 7 +- drivers/gpu/nova-core/fb/hal/tu102.rs | 17 +- drivers/gpu/nova-core/firmware/fwsec/bootloader.rs | 19 +- drivers/gpu/nova-core/gfw.rs | 11 +- drivers/gpu/nova-core/gpu.rs | 37 +- drivers/gpu/nova-core/gsp/boot.rs | 11 +- drivers/gpu/nova-core/gsp/cmdq.rs | 9 +- drivers/gpu/nova-core/regs.rs | 601 +++++++++-------- drivers/gpu/nova-core/regs/macros.rs | 739 --------------------- 17 files changed, 760 insertions(+), 1513 deletions(-) --- base-commit: a19457958c3018783881c4416f272cd594f13049 change-id: 20260318-b4-nova-register-6908b5118552 Best regards, -- Alexandre Courbot <[email protected]>
