summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/include
diff options
context:
space:
mode:
authorVaikundanathan S <vaikuns@nvidia.com>2018-04-24 02:02:43 -0400
committerTejal Kudav <tkudav@nvidia.com>2018-06-14 09:44:08 -0400
commit8a4e6945302e35204eac1dd1c88cac615825217a (patch)
tree76987e7367d48a543a6e66474857668e57d91315 /drivers/gpu/nvgpu/include
parent0aa8d6e27394ec15c1816943996daf8f8ffab438 (diff)
gpu: nvgpu: effective freq load changes
Read clk frequency through PMU RPC Bug 200399373 Change-Id: I9e887dcb1c5b622110eb4c1584f2f34434efd674 Signed-off-by: Vaikundanathan S <vaikuns@nvidia.com> Signed-off-by: Mahantesh Kumbar <mkumbar@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1701276 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')
-rw-r--r--drivers/gpu/nvgpu/include/nvgpu/pmuif/gpmuifclk.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/include/nvgpu/pmuif/gpmuifclk.h b/drivers/gpu/nvgpu/include/nvgpu/pmuif/gpmuifclk.h
index fe9a70db..8f4c8564 100644
--- a/drivers/gpu/nvgpu/include/nvgpu/pmuif/gpmuifclk.h
+++ b/drivers/gpu/nvgpu/include/nvgpu/pmuif/gpmuifclk.h
@@ -226,6 +226,7 @@ struct nv_pmu_clk_lut_device_desc {
226 226
227struct nv_pmu_clk_regime_desc { 227struct nv_pmu_clk_regime_desc {
228 u8 regime_id; 228 u8 regime_id;
229 u8 target_regime_id_override;
229 u16 fixed_freq_regime_limit_mhz; 230 u16 fixed_freq_regime_limit_mhz;
230}; 231};
231 232
@@ -389,6 +390,12 @@ struct nv_pmu_clk_load {
389 struct nv_pmu_clk_load_payload_freq_controllers freq_controllers; 390 struct nv_pmu_clk_load_payload_freq_controllers freq_controllers;
390 } payload; 391 } payload;
391}; 392};
393
394struct nv_pmu_clk_freq_effective_avg {
395 u32 clkDomainMask;
396 u32 freqkHz[CTRL_BOARDOBJ_MAX_BOARD_OBJECTS];
397};
398
392/* CLK_FREQ_CONTROLLER */ 399/* CLK_FREQ_CONTROLLER */
393#define NV_NV_PMU_CLK_LOAD_FEATURE_FREQ_CONTROLLER (0x00000003) 400#define NV_NV_PMU_CLK_LOAD_FEATURE_FREQ_CONTROLLER (0x00000003)
394 401
@@ -432,6 +439,10 @@ union nv_pmu_clk_clk_freq_controller_boardobj_set_union {
432 439
433NV_PMU_BOARDOBJ_GRP_SET_MAKE_E32(clk, clk_freq_controller); 440NV_PMU_BOARDOBJ_GRP_SET_MAKE_E32(clk, clk_freq_controller);
434 441
442#define NV_NV_PMU_CLK_LOAD_FEATURE_FREQ_EFFECTIVE_AVG (0x00000004)
443#define NV_NV_PMU_CLK_LOAD_ACTION_MASK_FREQ_EFFECTIVE_AVG_CALLBACK_NO (0x00000000)
444#define NV_NV_PMU_CLK_LOAD_ACTION_MASK_FREQ_EFFECTIVE_AVG_CALLBACK_YES (0x00000004)
445
435/* CLK CMD ID definitions. */ 446/* CLK CMD ID definitions. */
436#define NV_PMU_CLK_CMD_ID_BOARDOBJ_GRP_SET (0x00000001) 447#define NV_PMU_CLK_CMD_ID_BOARDOBJ_GRP_SET (0x00000001)
437#define NV_PMU_CLK_CMD_ID_RPC (0x00000000) 448#define NV_PMU_CLK_CMD_ID_RPC (0x00000000)
@@ -441,7 +452,6 @@ NV_PMU_BOARDOBJ_GRP_SET_MAKE_E32(clk, clk_freq_controller);
441#define NV_PMU_CLK_RPC_ID_CLK_VF_CHANGE_INJECT (0x00000000) 452#define NV_PMU_CLK_RPC_ID_CLK_VF_CHANGE_INJECT (0x00000000)
442#define NV_PMU_CLK_RPC_ID_CLK_FREQ_EFF_AVG (0x00000002) 453#define NV_PMU_CLK_RPC_ID_CLK_FREQ_EFF_AVG (0x00000002)
443 454
444
445struct nv_pmu_clk_cmd_rpc { 455struct nv_pmu_clk_cmd_rpc {
446 u8 cmd_type; 456 u8 cmd_type;
447 u8 pad[3]; 457 u8 pad[3];
@@ -476,6 +486,7 @@ struct nv_pmu_clk_rpc {
476 struct nv_pmu_clk_vf_change_inject clk_vf_change_inject; 486 struct nv_pmu_clk_vf_change_inject clk_vf_change_inject;
477 struct nv_pmu_clk_vf_change_inject_v1 clk_vf_change_inject_v1; 487 struct nv_pmu_clk_vf_change_inject_v1 clk_vf_change_inject_v1;
478 struct nv_pmu_clk_load clk_load; 488 struct nv_pmu_clk_load clk_load;
489 struct nv_pmu_clk_freq_effective_avg clk_freq_effective_avg;
479 } params; 490 } params;
480}; 491};
481 492