summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/pstate/pstate.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/pstate/pstate.c')
-rw-r--r--drivers/gpu/nvgpu/pstate/pstate.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/pstate/pstate.c b/drivers/gpu/nvgpu/pstate/pstate.c
index 2e08ef01..82e809bb 100644
--- a/drivers/gpu/nvgpu/pstate/pstate.c
+++ b/drivers/gpu/nvgpu/pstate/pstate.c
@@ -83,6 +83,10 @@ int gk20a_init_pstate_support(struct gk20a *g)
83 return err; 83 return err;
84 84
85 err = clk_freq_controller_sw_setup(g); 85 err = clk_freq_controller_sw_setup(g);
86 if (err)
87 return err;
88
89 err = nvgpu_lpwr_pg_setup(g);
86 90
87 return err; 91 return err;
88} 92}
@@ -327,6 +331,9 @@ static int pstate_sw_setup(struct gk20a *g)
327 331
328 gk20a_dbg_fn(""); 332 gk20a_dbg_fn("");
329 333
334 init_waitqueue_head(&g->perf_pmu.pstatesobjs.pstate_notifier_wq);
335 mutex_init(&g->perf_pmu.pstatesobjs.pstate_mutex);
336
330 err = boardobjgrpconstruct_e32(&g->perf_pmu.pstatesobjs.super); 337 err = boardobjgrpconstruct_e32(&g->perf_pmu.pstatesobjs.super);
331 if (err) { 338 if (err) {
332 gk20a_err(dev_from_gk20a(g), 339 gk20a_err(dev_from_gk20a(g),
@@ -361,7 +368,7 @@ done:
361 return err; 368 return err;
362} 369}
363 370
364static struct pstate *pstate_find(struct gk20a *g, u32 num) 371struct pstate *pstate_find(struct gk20a *g, u32 num)
365{ 372{
366 struct pstates *pstates = &(g->perf_pmu.pstatesobjs); 373 struct pstates *pstates = &(g->perf_pmu.pstatesobjs);
367 struct pstate *pstate; 374 struct pstate *pstate;