summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/common/pmu/pmu_fw.c
diff options
context:
space:
mode:
authorMahantesh Kumbar <mkumbar@nvidia.com>2018-02-14 04:01:01 -0500
committermobile promotions <svcmobile_promotions@nvidia.com>2018-03-15 02:46:59 -0400
commitd3f96dfa96a8aafe6f5035e2ed24425141e4202e (patch)
tree05eb958518d5e6d9f31d607d1a9cf2f6e39ce295 /drivers/gpu/nvgpu/common/pmu/pmu_fw.c
parente77ec1a98e6d65eac5b56999af17d51ffca6671f (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/pmu/pmu_fw.c')
-rw-r--r--drivers/gpu/nvgpu/common/pmu/pmu_fw.c12
1 files changed, 12 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 =