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 <mkumbar@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1656511
GVS: Gerrit_Virtual_Submit
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
Mahantesh Kumbar
2018-02-13 12:48:58 +05:30
committed by mobile promotions
parent cc4b9f540f
commit b94770dc4d
5 changed files with 319 additions and 43 deletions

View File

@@ -25,6 +25,18 @@
#include <nvgpu/flcnif_cmn.h>
#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_ */