Commit aa733b3e authored by Ben Skeggs's avatar Ben Skeggs Committed by Dave Airlie
Browse files

drm/nouveau/gsp: add hal for gsp.set_system_info()



545.23.06 has incompatible changes to GspSystemInfo.

Signed-off-by: default avatarBen Skeggs <bskeggs@nvidia.com>
Reviewed-by: default avatarDave Airlie <airlied@redhat.com>
Reviewed-by: default avatarTimur Tabi <ttabi@nvidia.com>
Tested-by: default avatarTimur Tabi <ttabi@nvidia.com>
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
parent 57fe0d30
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -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,
};
+1 −0
Original line number Diff line number Diff line
@@ -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,
+5 −0
Original line number Diff line number Diff line
@@ -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;