From b94770dc4d2d96b80b14b9942595d3e7fc2bbf6c Mon Sep 17 00:00:00 2001 From: Mahantesh Kumbar Date: Tue, 13 Feb 2018 12:48:58 +0530 Subject: gpu: nvgpu: boardobj update for gv10x branch - Created ops for below boardobj methods to support gp10x & gv10x branch boardobj changes, and defined methods for gv10x with postfix _v1 with below names boardobjgrp_pmucmd_construct_impl boardobjgrp_pmuset_impl boardobjgrp_pmugetstatus_impl is_boardobjgrp_pmucmd_id_valid - These ops are assigned based on PMU version to respective chip. - Modified BOARDOBJGRP_PMU_CMD_GRP_SET_CONSTRUCT & BOARDOBJGRP_PMU_CMD_GRP_GET_STATUS_CONSTRUCT to support gp10x & gv10x branch changes - Updated struct boardobjgrp_pmu_cmd to include members needed for gv10x boardobj changes - Created "struct nv_pmu_rpc_struct_board_obj_grp_cmd" to execute BOARD_OBJ_GRP_CMD using RPC. - Defined method boardobjgrp_pmucmdsend_rpc() to send BOARD_OBJ_GRP_CMD to PMU. Change-Id: If2551bdda80e897e7b21d2966881586f3bbc7a9b Signed-off-by: Mahantesh Kumbar Reviewed-on: https://git-master.nvidia.com/r/1656511 GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom Reviewed-by: mobile promotions Tested-by: mobile promotions --- .../gpu/nvgpu/include/nvgpu/pmuif/gpmuifboardobj.h | 28 ++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'drivers/gpu/nvgpu/include') diff --git a/drivers/gpu/nvgpu/include/nvgpu/pmuif/gpmuifboardobj.h b/drivers/gpu/nvgpu/include/nvgpu/pmuif/gpmuifboardobj.h index ee5dfd06..b8c1e394 100644 --- a/drivers/gpu/nvgpu/include/nvgpu/pmuif/gpmuifboardobj.h +++ b/drivers/gpu/nvgpu/include/nvgpu/pmuif/gpmuifboardobj.h @@ -25,6 +25,18 @@ #include #include "ctrl/ctrlboardobj.h" +/* board object group command id's. */ +#define NV_PMU_BOARDOBJGRP_CMD_SET 0x00 +#define NV_PMU_BOARDOBJGRP_CMD_GET_STATUS 0x01 + +#define NV_PMU_RPC_ID_CLK_BOARD_OBJ_GRP_CMD 0x00 +#define NV_PMU_RPC_ID_FAN_BOARD_OBJ_GRP_CMD 0x00 +#define NV_PMU_RPC_ID_PERF_BOARD_OBJ_GRP_CMD 0x00 +#define NV_PMU_RPC_ID_PERF_CF_BOARD_OBJ_GRP_CMD 0x00 +#define NV_PMU_RPC_ID_PMGR_BOARD_OBJ_GRP_CMD 0x00 +#define NV_PMU_RPC_ID_THERM_BOARD_OBJ_GRP_CMD 0x00 +#define NV_PMU_RPC_ID_VOLT_BOARD_OBJ_GRP_CMD 0x00 + /* * Base structure describing a BOARDOBJ for communication between Kernel and * PMU. @@ -200,5 +212,21 @@ struct nv_pmu_boardobj_msg { NV_PMU_BOARDOBJ_GRP_GET_STATUS_MAKE(_eng, _class, \ CTRL_BOARDOBJGRP_E255_MAX_OBJECTS) +/* RPC */ + +/* + * structure that holds data used to + * execute BOARD_OBJ_GRP_CMD RPC. + */ +struct nv_pmu_rpc_struct_board_obj_grp_cmd +{ + /* [IN/OUT] Must be first field in RPC structure */ + struct nv_pmu_rpc_header hdr; + /* [IN] BOARDOBJGRP class IDs. */ + u8 class_id; + /* [IN] Requested command ID (@ref NV_PMU_BOARDOBJGRP_CMD_***)*/ + u8 command_id; + u32 scratch[1]; +}; #endif /* _GPMUIFBOARDOBJ_H_ */ -- cgit v1.2.2