diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gk20a_scale.c | 9 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gr_gk20a.c | 15 |
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 | ||
4657 | static void gr_gk20a_load_gating_prod(struct gk20a *g) | 4657 | static 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 | ||
4694 | static int gk20a_init_gr_prepare(struct gk20a *g) | 4703 | static int gk20a_init_gr_prepare(struct gk20a *g) |