diff options
| author | Eliot Courtney <ecourtney@nvidia.com> | 2026-03-18 13:07:11 +0900 |
|---|---|---|
| committer | Alexandre Courbot <acourbot@nvidia.com> | 2026-03-18 21:53:14 +0900 |
| commit | c3bd240f97491122e3c9e9922def7e59eecd6145 (patch) | |
| tree | 14f6a7824e0c9813006a4dd9b1d26c9a2a7c13c3 /drivers/gpu/nova-core/gsp/boot.rs | |
| parent | 67d9ef2bdd62c541a22da04875ccd0722ba1d3d4 (diff) | |
| download | linux-next-c3bd240f97491122e3c9e9922def7e59eecd6145.tar.gz linux-next-c3bd240f97491122e3c9e9922def7e59eecd6145.zip | |
gpu: nova-core: gsp: add reply/no-reply info to `CommandToGsp`
Add type infrastructure to know what reply is expected from each
`CommandToGsp`. Uses a marker type `NoReply` which does not implement
`MessageFromGsp` to mark commands which don't expect a response.
Update `send_command` to wait for a reply and add `send_command_no_wait`
which sends a command that has no reply, without blocking.
This prepares for adding locking to the queue.
Tested-by: Zhi Wang <zhiw@nvidia.com>
Reviewed-by: Gary Guo <gary@garyguo.net>
Signed-off-by: Eliot Courtney <ecourtney@nvidia.com>
Link: https://patch.msgid.link/20260318-cmdq-locking-v5-3-18b37e3f9069@nvidia.com
Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
Diffstat (limited to 'drivers/gpu/nova-core/gsp/boot.rs')
| -rw-r--r-- | drivers/gpu/nova-core/gsp/boot.rs | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/gpu/nova-core/gsp/boot.rs b/drivers/gpu/nova-core/gsp/boot.rs index 6db2decbc6f5..ffc478b33640 100644 --- a/drivers/gpu/nova-core/gsp/boot.rs +++ b/drivers/gpu/nova-core/gsp/boot.rs @@ -169,8 +169,9 @@ impl super::Gsp { dma_write!(wpr_meta, [0]?, GspFwWprMeta::new(&gsp_fw, &fb_layout)); self.cmdq - .send_command(bar, commands::SetSystemInfo::new(pdev))?; - self.cmdq.send_command(bar, commands::SetRegistry::new())?; + .send_command_no_wait(bar, commands::SetSystemInfo::new(pdev))?; + self.cmdq + .send_command_no_wait(bar, commands::SetRegistry::new())?; gsp_falcon.reset(bar)?; let libos_handle = self.libos.dma_handle(); |
