diff options
author | Mahantesh Kumbar <mkumbar@nvidia.com> | 2018-02-14 04:01:01 -0500 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2018-03-15 02:46:59 -0400 |
commit | d3f96dfa96a8aafe6f5035e2ed24425141e4202e (patch) | |
tree | 05eb958518d5e6d9f31d607d1a9cf2f6e39ce295 /drivers/gpu/nvgpu/common | |
parent | e77ec1a98e6d65eac5b56999af17d51ffca6671f (diff) |
gpu: nvgpu: gv10x volt rail boardobj changes
- Created volt ops under pmu_ver to support volt_set_voltage,
volt_get_voltage & volt_send_load_cmd_to_pmu.
- Renamed volt load, set_voltage & get_voltage gp10x method names.
- Added new volt load, set_voltage & get_voltage methods for gv10x
using RPC & added code to handle ack in pmu_rpc_handler() along
with struct rail_list changes.
- Updated volt ops of gp106 & gv100 to point to respective methods.
- Added member volt_dev_idx_ipc_vmin & volt_scale_exp_pwr_equ_idx to
"struct nv_pmu_volt_volt_rail_boardobj_set" & "struct voltage_rail"
made changes to update members as needed.
- Added member volt_scale_exp_pwr_equ_idx to
"struct vbios_voltage_rail_table_1x_entry" to read
value from VBIOS table & update rail boardobj set interface.
- Defines for volt RPC "NV_PMU_RPC_ID_VOLT_*"
- Define struct's volt load, set_voltage & get_voltage to execute
volt RPC.
Change-Id: I4a41adcf7536468beaa8a73f551b1d608aabd161
Signed-off-by: Mahantesh Kumbar <mkumbar@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1659728
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/common')
-rw-r--r-- | drivers/gpu/nvgpu/common/pmu/pmu_fw.c | 12 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/common/pmu/pmu_ipc.c | 19 |
2 files changed, 31 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/common/pmu/pmu_fw.c b/drivers/gpu/nvgpu/common/pmu/pmu_fw.c index 6a038317..1070579e 100644 --- a/drivers/gpu/nvgpu/common/pmu/pmu_fw.c +++ b/drivers/gpu/nvgpu/common/pmu/pmu_fw.c | |||
@@ -1299,6 +1299,12 @@ static int nvgpu_init_pmu_fw_ver_ops(struct nvgpu_pmu *pmu) | |||
1299 | boardobjgrp_pmugetstatus_impl_v1; | 1299 | boardobjgrp_pmugetstatus_impl_v1; |
1300 | g->ops.pmu_ver.boardobj.is_boardobjgrp_pmucmd_id_valid = | 1300 | g->ops.pmu_ver.boardobj.is_boardobjgrp_pmucmd_id_valid = |
1301 | is_boardobjgrp_pmucmd_id_valid_v1; | 1301 | is_boardobjgrp_pmucmd_id_valid_v1; |
1302 | g->ops.pmu_ver.volt.volt_set_voltage = | ||
1303 | nvgpu_volt_set_voltage_gv10x; | ||
1304 | g->ops.pmu_ver.volt.volt_get_voltage = | ||
1305 | nvgpu_volt_rail_get_voltage_gv10x; | ||
1306 | g->ops.pmu_ver.volt.volt_send_load_cmd_to_pmu = | ||
1307 | nvgpu_volt_send_load_cmd_to_pmu_gv10x; | ||
1302 | } else { | 1308 | } else { |
1303 | g->ops.pmu_ver.get_pmu_init_msg_pmu_queue_params = | 1309 | g->ops.pmu_ver.get_pmu_init_msg_pmu_queue_params = |
1304 | get_pmu_init_msg_pmu_queue_params_v4; | 1310 | get_pmu_init_msg_pmu_queue_params_v4; |
@@ -1458,6 +1464,12 @@ static int nvgpu_init_pmu_fw_ver_ops(struct nvgpu_pmu *pmu) | |||
1458 | boardobjgrp_pmugetstatus_impl; | 1464 | boardobjgrp_pmugetstatus_impl; |
1459 | g->ops.pmu_ver.boardobj.is_boardobjgrp_pmucmd_id_valid = | 1465 | g->ops.pmu_ver.boardobj.is_boardobjgrp_pmucmd_id_valid = |
1460 | is_boardobjgrp_pmucmd_id_valid_v0; | 1466 | is_boardobjgrp_pmucmd_id_valid_v0; |
1467 | g->ops.pmu_ver.volt.volt_set_voltage = | ||
1468 | nvgpu_volt_set_voltage_gp10x; | ||
1469 | g->ops.pmu_ver.volt.volt_get_voltage = | ||
1470 | nvgpu_volt_rail_get_voltage_gp10x; | ||
1471 | g->ops.pmu_ver.volt.volt_send_load_cmd_to_pmu = | ||
1472 | nvgpu_volt_send_load_cmd_to_pmu_gp10x; | ||
1461 | break; | 1473 | break; |
1462 | case APP_VERSION_GM20B: | 1474 | case APP_VERSION_GM20B: |
1463 | g->ops.pmu_ver.pg_cmd_eng_buf_load_size = | 1475 | g->ops.pmu_ver.pg_cmd_eng_buf_load_size = |
diff --git a/drivers/gpu/nvgpu/common/pmu/pmu_ipc.c b/drivers/gpu/nvgpu/common/pmu/pmu_ipc.c index bb4edf38..d1058864 100644 --- a/drivers/gpu/nvgpu/common/pmu/pmu_ipc.c +++ b/drivers/gpu/nvgpu/common/pmu/pmu_ipc.c | |||
@@ -1035,6 +1035,25 @@ static void pmu_rpc_handler(struct gk20a *g, struct pmu_msg *msg, | |||
1035 | break; | 1035 | break; |
1036 | } | 1036 | } |
1037 | break; | 1037 | break; |
1038 | case PMU_UNIT_VOLT: | ||
1039 | switch (rpc.function) { | ||
1040 | case NV_PMU_RPC_ID_VOLT_BOARD_OBJ_GRP_CMD: | ||
1041 | nvgpu_pmu_dbg(g, | ||
1042 | "reply NV_PMU_RPC_ID_VOLT_BOARD_OBJ_GRP_CMD"); | ||
1043 | break; | ||
1044 | case NV_PMU_RPC_ID_VOLT_VOLT_SET_VOLTAGE: | ||
1045 | nvgpu_pmu_dbg(g, | ||
1046 | "reply NV_PMU_RPC_ID_VOLT_VOLT_SET_VOLTAGE"); | ||
1047 | break; | ||
1048 | case NV_PMU_RPC_ID_VOLT_VOLT_RAIL_GET_VOLTAGE: | ||
1049 | nvgpu_pmu_dbg(g, | ||
1050 | "reply NV_PMU_RPC_ID_VOLT_VOLT_RAIL_GET_VOLTAGE"); | ||
1051 | break; | ||
1052 | case NV_PMU_RPC_ID_VOLT_LOAD: | ||
1053 | nvgpu_pmu_dbg(g, | ||
1054 | "reply NV_PMU_RPC_ID_VOLT_LOAD"); | ||
1055 | } | ||
1056 | break; | ||
1038 | /* TBD case will be added */ | 1057 | /* TBD case will be added */ |
1039 | default: | 1058 | default: |
1040 | nvgpu_err(g, " Invalid RPC response, stats 0x%x", | 1059 | nvgpu_err(g, " Invalid RPC response, stats 0x%x", |