Re: [PATCH v3 0/9] gpu: nova-core: gsp: add RM control command infrastructure
From: Joel Fernandes
Date: Thu Apr 16 2026 - 17:30:52 EST
On 3/25/2026 8:13 AM, Eliot Courtney wrote:
> Add the infrastructure for sending RM control RPCs. This is needed e.g.
> for channel allocation.
>
> This series adds:
> - `NV_STATUS` bindings and wrapping `NvStatus` enum (used by RM control
> RPCs)
> - The necessary bindings for the RM control RPCs.
> - `RmControlMsgFunction` to identify individual control commands, like
> `MsgFunction` for GSP commands.
> - `SBufferIter::read_to_vec` (using KVVec) for reading large RPC payloads
> - A typed `RmControl` command that can send RM control commands.
> - One usage of `RmControl`: the `FaultMethodBufferSize`
> RPC. This is useful for channel allocation later.
>
> Each new RM control command can be added by extending
> `RmControlMsgFunction`, adding the bindings and wrappers for their
> parameters, and writing a type-safe wrapper to send and receive the
> reply for the RM control rpc, using `RmControl`.
>
> This series applies on latest drm-rust-next with the listed
> pre-requisites.
>
> Signed-off-by: Eliot Courtney <ecourtney@xxxxxxxxxx>
For all except patch #2,
Reviewed-by: Joel Fernandes <joelagnelf@xxxxxxxxxx>
For patch #2, I have the same concerns as John mentioned.
Thanks.
> ---
> Changes in v3:
> - Remove `send_rm_control` in favour of a typed `RmControl`
> - Print out fault method buffer size at gsp boot
> - Remove Reviewed-by and Tested-by on some patches that have changed
> substantively.
> - Link to v2: https://lore.kernel.org/r/20260318-rmcontrol-v2-0-9a9fa6f1c4c3@xxxxxxxxxx
>
> Changes in v2:
> - Introduce typed Handle<T> for RM objects.
> - Improve naming
> - Improve doc comments
> - Change SBufferIter to always use KVVec
> - flush_into_kvec -> read_to_vec
> - Rebased on latest cmdq locking
> - Link to v1: https://lore.kernel.org/r/20260227-rmcontrol-v1-0-86648e4869f9@xxxxxxxxxx
>
> ---
> Eliot Courtney (9):
> gpu: nova-core: gsp: add NV_STATUS error code bindings
> gpu: nova-core: gsp: add NvStatus enum for RM control errors
> gpu: nova-core: gsp: expose GSP-RM internal client and subdevice handles
> gpu: nova-core: gsp: add RM control RPC structure binding
> gpu: nova-core: gsp: add types for RM control RPCs
> gpu: nova-core: use KVVec for SBufferIter flush
> gpu: nova-core: gsp: add RM control command infrastructure
> gpu: nova-core: gsp: add CE fault method buffer size bindings
> gpu: nova-core: gsp: add FaultMethodBufferSize RM control command
>
> drivers/gpu/nova-core/gsp.rs | 1 +
> drivers/gpu/nova-core/gsp/boot.rs | 11 +
> drivers/gpu/nova-core/gsp/commands.rs | 62 ++++
> drivers/gpu/nova-core/gsp/fw.rs | 402 ++++++++++++++++++++++
> drivers/gpu/nova-core/gsp/fw/commands.rs | 19 +-
> drivers/gpu/nova-core/gsp/fw/r570_144/bindings.rs | 161 +++++++++
> drivers/gpu/nova-core/gsp/fw/rm.rs | 106 ++++++
> drivers/gpu/nova-core/gsp/rm.rs | 3 +
> drivers/gpu/nova-core/gsp/rm/commands.rs | 167 +++++++++
> drivers/gpu/nova-core/gsp/sequencer.rs | 4 +-
> drivers/gpu/nova-core/sbuffer.rs | 6 +-
> 11 files changed, 936 insertions(+), 6 deletions(-)
> ---
> base-commit: dff8302ca1d0e773c90dbeeb05e759f995c95482
> change-id: 20260225-rmcontrol-bd8a06fc3a0d
>
> Best regards,
> --
> Eliot Courtney <ecourtney@xxxxxxxxxx>
>