summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/nvgpu/gk20a/gk20a_scale.c9
-rw-r--r--drivers/gpu/nvgpu/gk20a/gr_gk20a.c15
2 files changed, 18 insertions, 6 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a_scale.c b/drivers/gpu/nvgpu/gk20a/gk20a_scale.c
index eeabd919..ec9ca5db 100644
--- a/drivers/gpu/nvgpu/gk20a/gk20a_scale.c
+++ b/drivers/gpu/nvgpu/gk20a/gk20a_scale.c
@@ -118,10 +118,13 @@ static int gk20a_scale_make_freq_table(struct gk20a_scale_profile *profile)
118 int num_freqs, err; 118 int num_freqs, err;
119 unsigned long *freqs; 119 unsigned long *freqs;
120 120
121 /* get gpu frequency table */ 121 if (platform->get_clk_freqs) {
122 err = platform->get_clk_freqs(profile->dev, &freqs, 122 /* get gpu frequency table */
123 err = platform->get_clk_freqs(profile->dev, &freqs,
123 &num_freqs); 124 &num_freqs);
124 if (err) 125 if (err)
126 return -ENOSYS;
127 } else
125 return -ENOSYS; 128 return -ENOSYS;
126 129
127 profile->devfreq_profile.freq_table = (unsigned long *)freqs; 130 profile->devfreq_profile.freq_table = (unsigned long *)freqs;
diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
index 62d3b231..6fc52ad0 100644
--- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
@@ -4656,6 +4656,8 @@ out:
4656 4656
4657static void gr_gk20a_load_gating_prod(struct gk20a *g) 4657static void gr_gk20a_load_gating_prod(struct gk20a *g)
4658{ 4658{
4659 gk20a_dbg_fn("");
4660
4659 /* slcg prod values */ 4661 /* slcg prod values */
4660 if (g->ops.clock_gating.slcg_bus_load_gating_prod) 4662 if (g->ops.clock_gating.slcg_bus_load_gating_prod)
4661 g->ops.clock_gating.slcg_bus_load_gating_prod(g, 4663 g->ops.clock_gating.slcg_bus_load_gating_prod(g,
@@ -4669,7 +4671,9 @@ static void gr_gk20a_load_gating_prod(struct gk20a *g)
4669 if (g->ops.clock_gating.slcg_ctxsw_firmware_load_gating_prod) 4671 if (g->ops.clock_gating.slcg_ctxsw_firmware_load_gating_prod)
4670 g->ops.clock_gating.slcg_ctxsw_firmware_load_gating_prod(g, 4672 g->ops.clock_gating.slcg_ctxsw_firmware_load_gating_prod(g,
4671 g->slcg_enabled); 4673 g->slcg_enabled);
4672 g->ops.clock_gating.slcg_perf_load_gating_prod(g, g->slcg_enabled); 4674 if (g->ops.clock_gating.slcg_perf_load_gating_prod)
4675 g->ops.clock_gating.slcg_perf_load_gating_prod(g,
4676 g->slcg_enabled);
4673 if (g->ops.clock_gating.slcg_xbar_load_gating_prod) 4677 if (g->ops.clock_gating.slcg_xbar_load_gating_prod)
4674 g->ops.clock_gating.slcg_xbar_load_gating_prod(g, 4678 g->ops.clock_gating.slcg_xbar_load_gating_prod(g,
4675 g->slcg_enabled); 4679 g->slcg_enabled);
@@ -4681,14 +4685,19 @@ static void gr_gk20a_load_gating_prod(struct gk20a *g)
4681 if (g->ops.clock_gating.blcg_ce_load_gating_prod) 4685 if (g->ops.clock_gating.blcg_ce_load_gating_prod)
4682 g->ops.clock_gating.blcg_ce_load_gating_prod(g, 4686 g->ops.clock_gating.blcg_ce_load_gating_prod(g,
4683 g->blcg_enabled); 4687 g->blcg_enabled);
4684 g->ops.clock_gating.blcg_gr_load_gating_prod(g, g->blcg_enabled); 4688 if (g->ops.clock_gating.blcg_gr_load_gating_prod)
4689 g->ops.clock_gating.blcg_gr_load_gating_prod(g,
4690 g->blcg_enabled);
4685 if (g->ops.clock_gating.blcg_ctxsw_firmware_load_gating_prod) 4691 if (g->ops.clock_gating.blcg_ctxsw_firmware_load_gating_prod)
4686 g->ops.clock_gating.blcg_ctxsw_firmware_load_gating_prod(g, 4692 g->ops.clock_gating.blcg_ctxsw_firmware_load_gating_prod(g,
4687 g->blcg_enabled); 4693 g->blcg_enabled);
4688 if (g->ops.clock_gating.blcg_xbar_load_gating_prod) 4694 if (g->ops.clock_gating.blcg_xbar_load_gating_prod)
4689 g->ops.clock_gating.blcg_xbar_load_gating_prod(g, 4695 g->ops.clock_gating.blcg_xbar_load_gating_prod(g,
4690 g->blcg_enabled); 4696 g->blcg_enabled);
4691 g->ops.clock_gating.pg_gr_load_gating_prod(g, true); 4697 if (g->ops.clock_gating.pg_gr_load_gating_prod)
4698 g->ops.clock_gating.pg_gr_load_gating_prod(g, true);
4699
4700 gk20a_dbg_fn("done");
4692} 4701}
4693 4702
4694static int gk20a_init_gr_prepare(struct gk20a *g) 4703static int gk20a_init_gr_prepare(struct gk20a *g)