summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/clk/clk.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/clk/clk.c')
-rw-r--r--drivers/gpu/nvgpu/clk/clk.c30
1 files changed, 21 insertions, 9 deletions
diff --git a/drivers/gpu/nvgpu/clk/clk.c b/drivers/gpu/nvgpu/clk/clk.c
index 8b36394d..c1b8d5e1 100644
--- a/drivers/gpu/nvgpu/clk/clk.c
+++ b/drivers/gpu/nvgpu/clk/clk.c
@@ -49,15 +49,19 @@ int clk_pmu_freq_controller_load(struct gk20a *g, bool bload)
49{ 49{
50 struct pmu_cmd cmd; 50 struct pmu_cmd cmd;
51 struct pmu_msg msg; 51 struct pmu_msg msg;
52 struct pmu_payload payload = { {0} }; 52 struct pmu_payload payload;
53 u32 status; 53 u32 status;
54 u32 seqdesc; 54 u32 seqdesc;
55 struct nv_pmu_clk_rpc rpccall = {0}; 55 struct nv_pmu_clk_rpc rpccall;
56 struct clkrpc_pmucmdhandler_params handler = {0}; 56 struct clkrpc_pmucmdhandler_params handler;
57 struct nv_pmu_clk_load *clkload; 57 struct nv_pmu_clk_load *clkload;
58 struct clk_freq_controllers *pclk_freq_controllers; 58 struct clk_freq_controllers *pclk_freq_controllers;
59 struct ctrl_boardobjgrp_mask_e32 *load_mask; 59 struct ctrl_boardobjgrp_mask_e32 *load_mask;
60 60
61 memset(&payload, 0, sizeof(struct pmu_payload));
62 memset(&rpccall, 0, sizeof(struct nv_pmu_clk_rpc));
63 memset(&handler, 0, sizeof(struct clkrpc_pmucmdhandler_params));
64
61 pclk_freq_controllers = &g->clk_pmu.clk_freq_controllers; 65 pclk_freq_controllers = &g->clk_pmu.clk_freq_controllers;
62 rpccall.function = NV_PMU_CLK_RPC_ID_LOAD; 66 rpccall.function = NV_PMU_CLK_RPC_ID_LOAD;
63 clkload = &rpccall.params.clk_load; 67 clkload = &rpccall.params.clk_load;
@@ -120,13 +124,17 @@ u32 clk_pmu_vin_load(struct gk20a *g)
120{ 124{
121 struct pmu_cmd cmd; 125 struct pmu_cmd cmd;
122 struct pmu_msg msg; 126 struct pmu_msg msg;
123 struct pmu_payload payload = { {0} }; 127 struct pmu_payload payload;
124 u32 status; 128 u32 status;
125 u32 seqdesc; 129 u32 seqdesc;
126 struct nv_pmu_clk_rpc rpccall = {0}; 130 struct nv_pmu_clk_rpc rpccall;
127 struct clkrpc_pmucmdhandler_params handler = {0}; 131 struct clkrpc_pmucmdhandler_params handler;
128 struct nv_pmu_clk_load *clkload; 132 struct nv_pmu_clk_load *clkload;
129 133
134 memset(&payload, 0, sizeof(struct pmu_payload));
135 memset(&rpccall, 0, sizeof(struct nv_pmu_clk_rpc));
136 memset(&handler, 0, sizeof(struct clkrpc_pmucmdhandler_params));
137
130 rpccall.function = NV_PMU_CLK_RPC_ID_LOAD; 138 rpccall.function = NV_PMU_CLK_RPC_ID_LOAD;
131 clkload = &rpccall.params.clk_load; 139 clkload = &rpccall.params.clk_load;
132 clkload->feature = NV_NV_PMU_CLK_LOAD_FEATURE_VIN; 140 clkload->feature = NV_NV_PMU_CLK_LOAD_FEATURE_VIN;
@@ -179,13 +187,17 @@ static u32 clk_pmu_vf_inject(struct gk20a *g, struct set_fll_clk *setfllclk)
179{ 187{
180 struct pmu_cmd cmd; 188 struct pmu_cmd cmd;
181 struct pmu_msg msg; 189 struct pmu_msg msg;
182 struct pmu_payload payload = { {0} }; 190 struct pmu_payload payload;
183 u32 status; 191 u32 status;
184 u32 seqdesc; 192 u32 seqdesc;
185 struct nv_pmu_clk_rpc rpccall = {0}; 193 struct nv_pmu_clk_rpc rpccall;
186 struct clkrpc_pmucmdhandler_params handler = {0}; 194 struct clkrpc_pmucmdhandler_params handler;
187 struct nv_pmu_clk_vf_change_inject *vfchange; 195 struct nv_pmu_clk_vf_change_inject *vfchange;
188 196
197 memset(&payload, 0, sizeof(struct pmu_payload));
198 memset(&rpccall, 0, sizeof(struct nv_pmu_clk_rpc));
199 memset(&handler, 0, sizeof(struct clkrpc_pmucmdhandler_params));
200
189 if ((setfllclk->gpc2clkmhz == 0) || (setfllclk->xbar2clkmhz == 0) || 201 if ((setfllclk->gpc2clkmhz == 0) || (setfllclk->xbar2clkmhz == 0) ||
190 (setfllclk->sys2clkmhz == 0) || (setfllclk->voltuv == 0)) 202 (setfllclk->sys2clkmhz == 0) || (setfllclk->voltuv == 0))
191 return -EINVAL; 203 return -EINVAL;