On Thu, 5 Feb 2026 at 07:36, Timur Tabi <[email protected]> wrote:
>
> On Tue, 2026-02-03 at 15:21 +1000, Dave Airlie wrote:
> > diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/gsp.c
> > b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/gsp.c
> > index 2a7e80c6d70f..6e7af2f737b7 100644
> > --- a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/gsp.c
> > +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/gsp.c
> > @@ -704,7 +704,7 @@ r535_gsp_rpc_set_registry(struct nvkm_gsp *gsp)
> >
> > build_registry(gsp, rpc);
> >
> > - return nvkm_gsp_rpc_wr(gsp, rpc, NVKM_GSP_RPC_REPLY_NOWAIT);
> > + return nvkm_gsp_rpc_wr(gsp, rpc, NVKM_GSP_RPC_REPLY_NOSEQ);
> >
> > fail:
> > clean_registry(gsp);
>
> So are you saying that some RPC commands need to have a sequence number set,
> and some do not?
I'm copying the behaviour of opengpu here,
src/kernel/gpu/gsp/kernel_gsp.c
if (pSequence)
vgpu_rpc_message_header_v->sequence = *pSequence = pRpc->sequence++;
else
vgpu_rpc_message_header_v->sequence = 0;
src/kernel/vgpu/rpc.c:_issueRpcAsync
doesn't pass pSequence
_issueRpcAndWait does pass it.
The SetSystemInfo and SetRegistry are the two async calls in nouveau.
So I'm not saying some RPC commands need to have a sequence number and
some don't, that would be up to someone who can access GSP source
code, I'm saying that opengpu does this and I'm copying it :-)
Dave.