summaryrefslogtreecommitdiff
path: root/drivers/gpu/nova-core/gsp/boot.rs
diff options
context:
space:
mode:
authorEliot Courtney <ecourtney@nvidia.com>2026-03-18 13:07:11 +0900
committerAlexandre Courbot <acourbot@nvidia.com>2026-03-18 21:53:14 +0900
commitc3bd240f97491122e3c9e9922def7e59eecd6145 (patch)
tree14f6a7824e0c9813006a4dd9b1d26c9a2a7c13c3 /drivers/gpu/nova-core/gsp/boot.rs
parent67d9ef2bdd62c541a22da04875ccd0722ba1d3d4 (diff)
downloadlinux-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.rs5
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();