diff options
author | David Ung <davidu@nvidia.com> | 2020-04-24 20:46:15 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2020-05-22 01:54:37 -0400 |
commit | bbef4c6927a13a24821c43cb2b6af72f859f7deb (patch) | |
tree | bf5f5ff242ecbadbe2e49cecb1c73305abb8a0cc /drivers/gpu/nvgpu/gk20a | |
parent | b7fb70db759af82fb03988d4c224892df236ac73 (diff) |
gpu: nvgpu: initialize masks for the perfmon counters 3
Initialize the perfmon counters #3 masks to be same values as ELPG.
Hardware boots up with value NV_PPWR_PMU_IDLE_MASK_1(3) (0x10aa4c) = 0x1030,
but ELPG NV_PPWR_PMU_IDLE_MASK_1_SUPP(0) (0x10a9f4) boots up with 0.
Bug 2833620
Change-Id: I3a424345aec6176a97dd20fb2c68a6e2faf955ad
Signed-off-by: David Ung <davidu@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2335299
Reviewed-by: automaticguardword <automaticguardword@nvidia.com>
Reviewed-by: Alex Waterman <alexw@nvidia.com>
Reviewed-by: Deepak Nibade <dnibade@nvidia.com>
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/pmu_gk20a.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/pmu_gk20a.c b/drivers/gpu/nvgpu/gk20a/pmu_gk20a.c index 050423b0..63a32f03 100644 --- a/drivers/gpu/nvgpu/gk20a/pmu_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/pmu_gk20a.c | |||
@@ -760,6 +760,10 @@ void gk20a_pmu_init_perfmon_counter(struct gk20a *g) | |||
760 | pwr_pmu_idle_mask_gr_enabled_f() | | 760 | pwr_pmu_idle_mask_gr_enabled_f() | |
761 | pwr_pmu_idle_mask_ce_2_enabled_f()); | 761 | pwr_pmu_idle_mask_ce_2_enabled_f()); |
762 | 762 | ||
763 | /* assign same mask setting from GR ELPG to counter #3 */ | ||
764 | data = gk20a_readl(g, pwr_pmu_idle_mask_1_supp_r(0)); | ||
765 | gk20a_writel(g, pwr_pmu_idle_mask_1_r(3), data); | ||
766 | |||
763 | /* disable idle filtering for counters 3 and 6 */ | 767 | /* disable idle filtering for counters 3 and 6 */ |
764 | data = gk20a_readl(g, pwr_pmu_idle_ctrl_r(3)); | 768 | data = gk20a_readl(g, pwr_pmu_idle_ctrl_r(3)); |
765 | data = set_field(data, pwr_pmu_idle_ctrl_value_m() | | 769 | data = set_field(data, pwr_pmu_idle_ctrl_value_m() | |