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. Actually I am leaning towards that option since it doesn't make much sense to partially convert the driver anyway. I'm leaving it in split state for now in case this drives more people towards review. :) 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-20 and has been tested on Turing. Signed-off-by: Alexandre Courbot <[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 | 582 ++++++++-------- 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, 765 insertions(+), 1513 deletions(-) --- base-commit: a19457958c3018783881c4416f272cd594f13049 change-id: 20260318-b4-nova-register-6908b5118552 Best regards, -- Alexandre Courbot <[email protected]>
