On Mon Mar 2, 2026 at 11:42 AM GMT, Eliot Courtney wrote:
> There is no particular order required here and keeping them alphabetical
> will help preventing future mistakes.

Looks like the current order is in increasing opcode order. Granted, currently
they're generated in bindings and then included as such, but perhaps eventually
Rust code can be generated directly so the ordering could make sense?

Best,
Gary

>
> Tested-by: Zhi Wang <[email protected]>
> Signed-off-by: Eliot Courtney <[email protected]>
> ---
>  drivers/gpu/nova-core/gsp/fw.rs | 67 
> +++++++++++++++++++++--------------------
>  1 file changed, 35 insertions(+), 32 deletions(-)
>
> diff --git a/drivers/gpu/nova-core/gsp/fw.rs b/drivers/gpu/nova-core/gsp/fw.rs
> index f1797e1f0d9d..4b998485360b 100644
> --- a/drivers/gpu/nova-core/gsp/fw.rs
> +++ b/drivers/gpu/nova-core/gsp/fw.rs
> @@ -191,34 +191,34 @@ pub(crate) fn new(gsp_firmware: &GspFirmware, 
> fb_layout: &FbLayout) -> Self {
>  #[repr(u32)]
>  pub(crate) enum MsgFunction {
>      // Common function codes
> -    Nop = bindings::NV_VGPU_MSG_FUNCTION_NOP,
> -    SetGuestSystemInfo = 
> bindings::NV_VGPU_MSG_FUNCTION_SET_GUEST_SYSTEM_INFO,
> -    AllocRoot = bindings::NV_VGPU_MSG_FUNCTION_ALLOC_ROOT,
> +    AllocChannelDma = bindings::NV_VGPU_MSG_FUNCTION_ALLOC_CHANNEL_DMA,
> +    AllocCtxDma = bindings::NV_VGPU_MSG_FUNCTION_ALLOC_CTX_DMA,
>      AllocDevice = bindings::NV_VGPU_MSG_FUNCTION_ALLOC_DEVICE,
>      AllocMemory = bindings::NV_VGPU_MSG_FUNCTION_ALLOC_MEMORY,
> -    AllocCtxDma = bindings::NV_VGPU_MSG_FUNCTION_ALLOC_CTX_DMA,
> -    AllocChannelDma = bindings::NV_VGPU_MSG_FUNCTION_ALLOC_CHANNEL_DMA,
> -    MapMemory = bindings::NV_VGPU_MSG_FUNCTION_MAP_MEMORY,
> -    BindCtxDma = bindings::NV_VGPU_MSG_FUNCTION_BIND_CTX_DMA,
>      AllocObject = bindings::NV_VGPU_MSG_FUNCTION_ALLOC_OBJECT,
> +    AllocRoot = bindings::NV_VGPU_MSG_FUNCTION_ALLOC_ROOT,
> +    BindCtxDma = bindings::NV_VGPU_MSG_FUNCTION_BIND_CTX_DMA,
>      Free = bindings::NV_VGPU_MSG_FUNCTION_FREE,
> -    Log = bindings::NV_VGPU_MSG_FUNCTION_LOG,
>      GetGspStaticInfo = bindings::NV_VGPU_MSG_FUNCTION_GET_GSP_STATIC_INFO,
> -    SetRegistry = bindings::NV_VGPU_MSG_FUNCTION_SET_REGISTRY,
> -    GspSetSystemInfo = bindings::NV_VGPU_MSG_FUNCTION_GSP_SET_SYSTEM_INFO,
> +    GetStaticInfo = bindings::NV_VGPU_MSG_FUNCTION_GET_STATIC_INFO,
>      GspInitPostObjGpu = bindings::NV_VGPU_MSG_FUNCTION_GSP_INIT_POST_OBJGPU,
>      GspRmControl = bindings::NV_VGPU_MSG_FUNCTION_GSP_RM_CONTROL,
> -    GetStaticInfo = bindings::NV_VGPU_MSG_FUNCTION_GET_STATIC_INFO,
> +    GspSetSystemInfo = bindings::NV_VGPU_MSG_FUNCTION_GSP_SET_SYSTEM_INFO,
> +    Log = bindings::NV_VGPU_MSG_FUNCTION_LOG,
> +    MapMemory = bindings::NV_VGPU_MSG_FUNCTION_MAP_MEMORY,
> +    Nop = bindings::NV_VGPU_MSG_FUNCTION_NOP,
> +    SetGuestSystemInfo = 
> bindings::NV_VGPU_MSG_FUNCTION_SET_GUEST_SYSTEM_INFO,
> +    SetRegistry = bindings::NV_VGPU_MSG_FUNCTION_SET_REGISTRY,
>  
>      // Event codes
>      GspInitDone = bindings::NV_VGPU_MSG_EVENT_GSP_INIT_DONE,
> +    GspLockdownNotice = bindings::NV_VGPU_MSG_EVENT_GSP_LOCKDOWN_NOTICE,
> +    GspPostNoCat = bindings::NV_VGPU_MSG_EVENT_GSP_POST_NOCAT_RECORD,
>      GspRunCpuSequencer = bindings::NV_VGPU_MSG_EVENT_GSP_RUN_CPU_SEQUENCER,
> -    PostEvent = bindings::NV_VGPU_MSG_EVENT_POST_EVENT,
> -    RcTriggered = bindings::NV_VGPU_MSG_EVENT_RC_TRIGGERED,
>      MmuFaultQueued = bindings::NV_VGPU_MSG_EVENT_MMU_FAULT_QUEUED,
>      OsErrorLog = bindings::NV_VGPU_MSG_EVENT_OS_ERROR_LOG,
> -    GspPostNoCat = bindings::NV_VGPU_MSG_EVENT_GSP_POST_NOCAT_RECORD,
> -    GspLockdownNotice = bindings::NV_VGPU_MSG_EVENT_GSP_LOCKDOWN_NOTICE,
> +    PostEvent = bindings::NV_VGPU_MSG_EVENT_POST_EVENT,
> +    RcTriggered = bindings::NV_VGPU_MSG_EVENT_RC_TRIGGERED,
>      UcodeLibOsPrint = bindings::NV_VGPU_MSG_EVENT_UCODE_LIBOS_PRINT,
>  }
>  
> @@ -227,38 +227,41 @@ impl TryFrom<u32> for MsgFunction {
>  
>      fn try_from(value: u32) -> Result<MsgFunction> {
>          match value {
> -            bindings::NV_VGPU_MSG_FUNCTION_NOP => Ok(MsgFunction::Nop),
> -            bindings::NV_VGPU_MSG_FUNCTION_SET_GUEST_SYSTEM_INFO => {
> -                Ok(MsgFunction::SetGuestSystemInfo)
> -            }
> -            bindings::NV_VGPU_MSG_FUNCTION_ALLOC_ROOT => 
> Ok(MsgFunction::AllocRoot),
> +            // Common function codes
> +            bindings::NV_VGPU_MSG_FUNCTION_ALLOC_CHANNEL_DMA => 
> Ok(MsgFunction::AllocChannelDma),
> +            bindings::NV_VGPU_MSG_FUNCTION_ALLOC_CTX_DMA => 
> Ok(MsgFunction::AllocCtxDma),
>              bindings::NV_VGPU_MSG_FUNCTION_ALLOC_DEVICE => 
> Ok(MsgFunction::AllocDevice),
>              bindings::NV_VGPU_MSG_FUNCTION_ALLOC_MEMORY => 
> Ok(MsgFunction::AllocMemory),
> -            bindings::NV_VGPU_MSG_FUNCTION_ALLOC_CTX_DMA => 
> Ok(MsgFunction::AllocCtxDma),
> -            bindings::NV_VGPU_MSG_FUNCTION_ALLOC_CHANNEL_DMA => 
> Ok(MsgFunction::AllocChannelDma),
> -            bindings::NV_VGPU_MSG_FUNCTION_MAP_MEMORY => 
> Ok(MsgFunction::MapMemory),
> -            bindings::NV_VGPU_MSG_FUNCTION_BIND_CTX_DMA => 
> Ok(MsgFunction::BindCtxDma),
>              bindings::NV_VGPU_MSG_FUNCTION_ALLOC_OBJECT => 
> Ok(MsgFunction::AllocObject),
> +            bindings::NV_VGPU_MSG_FUNCTION_ALLOC_ROOT => 
> Ok(MsgFunction::AllocRoot),
> +            bindings::NV_VGPU_MSG_FUNCTION_BIND_CTX_DMA => 
> Ok(MsgFunction::BindCtxDma),
>              bindings::NV_VGPU_MSG_FUNCTION_FREE => Ok(MsgFunction::Free),
> -            bindings::NV_VGPU_MSG_FUNCTION_LOG => Ok(MsgFunction::Log),
>              bindings::NV_VGPU_MSG_FUNCTION_GET_GSP_STATIC_INFO => 
> Ok(MsgFunction::GetGspStaticInfo),
> -            bindings::NV_VGPU_MSG_FUNCTION_SET_REGISTRY => 
> Ok(MsgFunction::SetRegistry),
> -            bindings::NV_VGPU_MSG_FUNCTION_GSP_SET_SYSTEM_INFO => 
> Ok(MsgFunction::GspSetSystemInfo),
> +            bindings::NV_VGPU_MSG_FUNCTION_GET_STATIC_INFO => 
> Ok(MsgFunction::GetStaticInfo),
>              bindings::NV_VGPU_MSG_FUNCTION_GSP_INIT_POST_OBJGPU => {
>                  Ok(MsgFunction::GspInitPostObjGpu)
>              }
>              bindings::NV_VGPU_MSG_FUNCTION_GSP_RM_CONTROL => 
> Ok(MsgFunction::GspRmControl),
> -            bindings::NV_VGPU_MSG_FUNCTION_GET_STATIC_INFO => 
> Ok(MsgFunction::GetStaticInfo),
> +            bindings::NV_VGPU_MSG_FUNCTION_GSP_SET_SYSTEM_INFO => 
> Ok(MsgFunction::GspSetSystemInfo),
> +            bindings::NV_VGPU_MSG_FUNCTION_LOG => Ok(MsgFunction::Log),
> +            bindings::NV_VGPU_MSG_FUNCTION_MAP_MEMORY => 
> Ok(MsgFunction::MapMemory),
> +            bindings::NV_VGPU_MSG_FUNCTION_NOP => Ok(MsgFunction::Nop),
> +            bindings::NV_VGPU_MSG_FUNCTION_SET_GUEST_SYSTEM_INFO => {
> +                Ok(MsgFunction::SetGuestSystemInfo)
> +            }
> +            bindings::NV_VGPU_MSG_FUNCTION_SET_REGISTRY => 
> Ok(MsgFunction::SetRegistry),
> +
> +            // Event codes
>              bindings::NV_VGPU_MSG_EVENT_GSP_INIT_DONE => 
> Ok(MsgFunction::GspInitDone),
> +            bindings::NV_VGPU_MSG_EVENT_GSP_LOCKDOWN_NOTICE => 
> Ok(MsgFunction::GspLockdownNotice),
> +            bindings::NV_VGPU_MSG_EVENT_GSP_POST_NOCAT_RECORD => 
> Ok(MsgFunction::GspPostNoCat),
>              bindings::NV_VGPU_MSG_EVENT_GSP_RUN_CPU_SEQUENCER => {
>                  Ok(MsgFunction::GspRunCpuSequencer)
>              }
> -            bindings::NV_VGPU_MSG_EVENT_POST_EVENT => 
> Ok(MsgFunction::PostEvent),
> -            bindings::NV_VGPU_MSG_EVENT_RC_TRIGGERED => 
> Ok(MsgFunction::RcTriggered),
>              bindings::NV_VGPU_MSG_EVENT_MMU_FAULT_QUEUED => 
> Ok(MsgFunction::MmuFaultQueued),
>              bindings::NV_VGPU_MSG_EVENT_OS_ERROR_LOG => 
> Ok(MsgFunction::OsErrorLog),
> -            bindings::NV_VGPU_MSG_EVENT_GSP_POST_NOCAT_RECORD => 
> Ok(MsgFunction::GspPostNoCat),
> -            bindings::NV_VGPU_MSG_EVENT_GSP_LOCKDOWN_NOTICE => 
> Ok(MsgFunction::GspLockdownNotice),
> +            bindings::NV_VGPU_MSG_EVENT_POST_EVENT => 
> Ok(MsgFunction::PostEvent),
> +            bindings::NV_VGPU_MSG_EVENT_RC_TRIGGERED => 
> Ok(MsgFunction::RcTriggered),
>              bindings::NV_VGPU_MSG_EVENT_UCODE_LIBOS_PRINT => 
> Ok(MsgFunction::UcodeLibOsPrint),
>              _ => Err(EINVAL),
>          }

Reply via email to