diff options
author | Alex Frid <afrid@nvidia.com> | 2017-08-23 01:33:59 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2017-08-25 14:18:17 -0400 |
commit | 9a28bab63fc99146ba2f356bab861d2a59cce115 (patch) | |
tree | 309cd7c399b621246224bdeaab5c8db28156bbfd /drivers | |
parent | cc64606a535edd9fd96487631f8ef583226fc575 (diff) |
gpu: nvgpu: Use bcast bank to debug GM20B dvfs2
GM20B GPCPLL dvfs register cannot be accessed through sys registers
bank (as other PLL registers), instead bcast bank must be used. This
limitation was already taken into account for production access, but
dbugfs access has incorrectly used sys bank. Fixed bank access in
this commit.
Change-Id: Ic7ca640c586addea3aaae4f10a98af8497d6f3cb
Signed-off-by: Alex Frid <afrid@nvidia.com>
Reviewed-on: http://git-master/r/1504241
Reviewed-on: https://git-master.nvidia.com/r/1543854
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svccoveritychecker <svccoveritychecker@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Alex Waterman <alexw@nvidia.com>
Reviewed-by: Krishna Reddy <vdumpa@nvidia.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/gpu/nvgpu/gm20b/clk_gm20b.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/gm20b/clk_gm20b.c b/drivers/gpu/nvgpu/gm20b/clk_gm20b.c index 81f8aec0..a13f943a 100644 --- a/drivers/gpu/nvgpu/gm20b/clk_gm20b.c +++ b/drivers/gpu/nvgpu/gm20b/clk_gm20b.c | |||
@@ -1539,6 +1539,9 @@ int gm20b_clk_pll_reg_write(struct gk20a *g, u32 reg, u32 val) | |||
1539 | (reg != trim_sys_bypassctrl_r())) | 1539 | (reg != trim_sys_bypassctrl_r())) |
1540 | return -EPERM; | 1540 | return -EPERM; |
1541 | 1541 | ||
1542 | if (reg == trim_sys_gpcpll_dvfs2_r()) | ||
1543 | reg = trim_gpc_bcast_gpcpll_dvfs2_r(); | ||
1544 | |||
1542 | nvgpu_mutex_acquire(&g->clk.clk_mutex); | 1545 | nvgpu_mutex_acquire(&g->clk.clk_mutex); |
1543 | if (!g->clk.clk_hw_on) { | 1546 | if (!g->clk.clk_hw_on) { |
1544 | nvgpu_mutex_release(&g->clk.clk_mutex); | 1547 | nvgpu_mutex_release(&g->clk.clk_mutex); |
@@ -1568,7 +1571,7 @@ int gm20b_clk_get_pll_debug_data(struct gk20a *g, | |||
1568 | d->trim_sys_gpc2clk_out_reg = trim_sys_gpc2clk_out_r(); | 1571 | d->trim_sys_gpc2clk_out_reg = trim_sys_gpc2clk_out_r(); |
1569 | d->trim_sys_gpc2clk_out_val = gk20a_readl(g, trim_sys_gpc2clk_out_r()); | 1572 | d->trim_sys_gpc2clk_out_val = gk20a_readl(g, trim_sys_gpc2clk_out_r()); |
1570 | d->trim_sys_gpcpll_cfg_reg = trim_sys_gpcpll_cfg_r(); | 1573 | d->trim_sys_gpcpll_cfg_reg = trim_sys_gpcpll_cfg_r(); |
1571 | d->trim_sys_gpcpll_dvfs2_reg = trim_sys_gpcpll_dvfs2_r(); | 1574 | d->trim_sys_gpcpll_dvfs2_reg = trim_gpc_bcast_gpcpll_dvfs2_r(); |
1572 | 1575 | ||
1573 | reg = gk20a_readl(g, trim_sys_gpcpll_cfg_r()); | 1576 | reg = gk20a_readl(g, trim_sys_gpcpll_cfg_r()); |
1574 | d->trim_sys_gpcpll_cfg_val = reg; | 1577 | d->trim_sys_gpcpll_cfg_val = reg; |