545.23.06 has incompatible changes to GspSystemInfo. Signed-off-by: Ben Skeggs <bske...@nvidia.com> Reviewed-by: Dave Airlie <airl...@redhat.com> Reviewed-by: Timur Tabi <tt...@nvidia.com> Tested-by: Timur Tabi <tt...@nvidia.com> --- drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/gsp.c | 10 ++++++++-- drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/rm.c | 1 + drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/rm.h | 5 +++++ 3 files changed, 14 insertions(+), 2 deletions(-)
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 ec69fdb9492a..f574a3ad2082 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 @@ -871,7 +871,7 @@ r535_gsp_acpi_info(struct nvkm_gsp *gsp, ACPI_METHOD_DATA *acpi) } static int -r535_gsp_rpc_set_system_info(struct nvkm_gsp *gsp) +r535_gsp_set_system_info(struct nvkm_gsp *gsp) { struct nvkm_device *device = gsp->subdev.device; struct nvkm_device_pci *pdev = container_of(device, typeof(*pdev), device); @@ -2080,6 +2080,7 @@ int r535_gsp_oneinit(struct nvkm_gsp *gsp) { struct nvkm_device *device = gsp->subdev.device; + const struct nvkm_rm_api *rmapi = gsp->rm->api; const u8 *data; u64 size; int ret; @@ -2134,7 +2135,7 @@ r535_gsp_oneinit(struct nvkm_gsp *gsp) if (WARN_ON(ret)) return ret; - ret = r535_gsp_rpc_set_system_info(gsp); + ret = rmapi->gsp->set_system_info(gsp); if (WARN_ON(ret)) return ret; @@ -2146,3 +2147,8 @@ r535_gsp_oneinit(struct nvkm_gsp *gsp) idr_init(&gsp->client_id.idr); return 0; } + +const struct nvkm_rm_api_gsp +r535_gsp = { + .set_system_info = r535_gsp_set_system_info, +}; diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/rm.c b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/rm.c index 60e8678b7913..efedd387fcc5 100644 --- a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/rm.c +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/rm.c @@ -22,6 +22,7 @@ r535_wpr_libos3 = { static const struct nvkm_rm_api r535_api = { + .gsp = &r535_gsp, .rpc = &r535_rpc, .ctrl = &r535_ctrl, .alloc = &r535_alloc, diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/rm.h b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/rm.h index 1a2fec3935a4..4a37904f7f9c 100644 --- a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/rm.h +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/rm.h @@ -26,6 +26,10 @@ struct nvkm_rm_wpr { }; struct nvkm_rm_api { + const struct nvkm_rm_api_gsp { + int (*set_system_info)(struct nvkm_gsp *); + } *gsp; + const struct nvkm_rm_api_rpc { void *(*get)(struct nvkm_gsp *, u32 fn, u32 argc); void *(*push)(struct nvkm_gsp *gsp, void *argv, @@ -71,6 +75,7 @@ struct nvkm_rm_api { extern const struct nvkm_rm_impl r535_rm_tu102; extern const struct nvkm_rm_impl r535_rm_ga102; +extern const struct nvkm_rm_api_gsp r535_gsp; extern const struct nvkm_rm_api_rpc r535_rpc; extern const struct nvkm_rm_api_ctrl r535_ctrl; extern const struct nvkm_rm_api_alloc r535_alloc; -- 2.49.0