diff options
author | Mahantesh Kumbar <mkumbar@nvidia.com> | 2018-02-19 01:40:37 -0500 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2018-03-15 02:47:02 -0400 |
commit | 8a1d51fe49da0d2351ee5ece472c8cdf399f0f6a (patch) | |
tree | 1c028329993ce384accef50f10dd4054fdb85fee /drivers/gpu/nvgpu/include/nvgpu/pmuif | |
parent | d3f96dfa96a8aafe6f5035e2ed24425141e4202e (diff) |
gpu: nvgpu: gv10x volt policy boardobj changes
- Added support for single rail multi step volt policy & below
are the list of define & struct added/updated to support same.
CTRL_VOLT_POLICY_TYPE_SINGLE_RAIL_MULTI_STEP 0x04,
NV_VBIOS_VOLTAGE_POLICY_1X_ENTRY_TYPE_SINGLE_RAIL_MULTI_STEP 0x04,
Updated struct vbios_voltage_policy_table_1x_entry,
struct nv_pmu_volt_volt_policy_sr_multi_step_boardobj_set, this holds
members which help to config single rail multi step like delay
between switch step, ramp up & ramp down step size in uv.
- Added case to support SINGLE_RAIL_MULTI_STEP in
volt_volt_policy_construct() based on boardobj type.
- Added case to support SINGLE_RAIL_MULTI_STEP in
volt_get_volt_policy_table() to read data from VBIOS
table vbios_voltage_policy_table_1x_entry & extract to
voltage_policy_single_rail_multi_step.
- Added methods to forward single rail multi step data to
PMU using below methods by assigning data read from
VBIOS voltage_policy_single_rail_multi_step to
nv_pmu_volt_volt_policy_sr_multi_step_boardobj_set
interface.
volt_construct_volt_policy_single_rail_multi_step()
volt_policy_pmu_data_init_sr_multi_step()
volt_policy_pmu_data_init_single_rail()
construct_volt_policy_single_rail()
Change-Id: I17bc8c320777191611365ee63274c38ffe5ecbf7
Signed-off-by: Mahantesh Kumbar <mkumbar@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1660687
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
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/include/nvgpu/pmuif')
-rw-r--r-- | drivers/gpu/nvgpu/include/nvgpu/pmuif/gpmuifvolt.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/include/nvgpu/pmuif/gpmuifvolt.h b/drivers/gpu/nvgpu/include/nvgpu/pmuif/gpmuifvolt.h index 3b286139..313a3b2a 100644 --- a/drivers/gpu/nvgpu/include/nvgpu/pmuif/gpmuifvolt.h +++ b/drivers/gpu/nvgpu/include/nvgpu/pmuif/gpmuifvolt.h | |||
@@ -104,6 +104,7 @@ NV_PMU_BOARDOBJ_GRP_SET_MAKE_E32(volt, volt_device); | |||
104 | /* ------------ VOLT_POLICY's GRP_SET defines and structures ------------ */ | 104 | /* ------------ VOLT_POLICY's GRP_SET defines and structures ------------ */ |
105 | struct nv_pmu_volt_volt_policy_boardobjgrp_set_header { | 105 | struct nv_pmu_volt_volt_policy_boardobjgrp_set_header { |
106 | struct nv_pmu_boardobjgrp_e32 super; | 106 | struct nv_pmu_boardobjgrp_e32 super; |
107 | u8 perf_core_vf_seq_policy_idx; | ||
107 | }; | 108 | }; |
108 | 109 | ||
109 | struct nv_pmu_volt_volt_policy_boardobj_set { | 110 | struct nv_pmu_volt_volt_policy_boardobj_set { |
@@ -114,6 +115,13 @@ struct nv_pmu_volt_volt_policy_sr_boardobj_set { | |||
114 | u8 rail_idx; | 115 | u8 rail_idx; |
115 | }; | 116 | }; |
116 | 117 | ||
118 | struct nv_pmu_volt_volt_policy_sr_multi_step_boardobj_set { | ||
119 | struct nv_pmu_volt_volt_policy_sr_boardobj_set super; | ||
120 | u16 inter_switch_delay_us; | ||
121 | u32 ramp_up_step_size_uv; | ||
122 | u32 ramp_down_step_size_uv; | ||
123 | }; | ||
124 | |||
117 | struct nv_pmu_volt_volt_policy_splt_r_boardobj_set { | 125 | struct nv_pmu_volt_volt_policy_splt_r_boardobj_set { |
118 | struct nv_pmu_volt_volt_policy_boardobj_set super; | 126 | struct nv_pmu_volt_volt_policy_boardobj_set super; |
119 | u8 rail_idx_master; | 127 | u8 rail_idx_master; |
@@ -138,6 +146,8 @@ union nv_pmu_volt_volt_policy_boardobj_set_union { | |||
138 | struct nv_pmu_boardobj board_obj; | 146 | struct nv_pmu_boardobj board_obj; |
139 | struct nv_pmu_volt_volt_policy_boardobj_set super; | 147 | struct nv_pmu_volt_volt_policy_boardobj_set super; |
140 | struct nv_pmu_volt_volt_policy_sr_boardobj_set single_rail; | 148 | struct nv_pmu_volt_volt_policy_sr_boardobj_set single_rail; |
149 | struct nv_pmu_volt_volt_policy_sr_multi_step_boardobj_set | ||
150 | single_rail_ms; | ||
141 | struct nv_pmu_volt_volt_policy_splt_r_boardobj_set split_rail; | 151 | struct nv_pmu_volt_volt_policy_splt_r_boardobj_set split_rail; |
142 | struct nv_pmu_volt_volt_policy_srms_boardobj_set | 152 | struct nv_pmu_volt_volt_policy_srms_boardobj_set |
143 | split_rail_m_s; | 153 | split_rail_m_s; |