summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/pmu_gk20a.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/pmu_gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/pmu_gk20a.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/pmu_gk20a.c b/drivers/gpu/nvgpu/gk20a/pmu_gk20a.c
index 18404ec0..110f3c5a 100644
--- a/drivers/gpu/nvgpu/gk20a/pmu_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/pmu_gk20a.c
@@ -1763,8 +1763,8 @@ static int pmu_bootstrap(struct pmu_gk20a *pmu)
1763 gk20a_writel(g, pwr_falcon_dmemd_r(0), 0x1); 1763 gk20a_writel(g, pwr_falcon_dmemd_r(0), 0x1);
1764 gk20a_writel(g, pwr_falcon_dmemd_r(0), addr_args); 1764 gk20a_writel(g, pwr_falcon_dmemd_r(0), addr_args);
1765 1765
1766 gk20a_writel(g, pwr_falcon_dmatrfbase_r(), 1766 g->ops.pmu.write_dmatrfbase(g,
1767 addr_load - (desc->bootloader_imem_offset >> 8)); 1767 addr_load - (desc->bootloader_imem_offset >> 8));
1768 1768
1769 blocks = ((desc->bootloader_size + 0xFF) & ~0xFF) >> 8; 1769 blocks = ((desc->bootloader_size + 0xFF) & ~0xFF) >> 8;
1770 1770
@@ -2643,6 +2643,11 @@ static void pmu_setup_hw_enable_elpg(struct gk20a *g)
2643 } 2643 }
2644} 2644}
2645 2645
2646static void gk20a_write_dmatrfbase(struct gk20a *g, u32 addr)
2647{
2648 gk20a_writel(g, pwr_falcon_dmatrfbase_r(), addr);
2649}
2650
2646void gk20a_init_pmu_ops(struct gpu_ops *gops) 2651void gk20a_init_pmu_ops(struct gpu_ops *gops)
2647{ 2652{
2648 gops->pmu.prepare_ucode = gk20a_prepare_ucode; 2653 gops->pmu.prepare_ucode = gk20a_prepare_ucode;
@@ -2651,6 +2656,7 @@ void gk20a_init_pmu_ops(struct gpu_ops *gops)
2651 gops->pmu.pmu_setup_elpg = NULL; 2656 gops->pmu.pmu_setup_elpg = NULL;
2652 gops->pmu.init_wpr_region = NULL; 2657 gops->pmu.init_wpr_region = NULL;
2653 gops->pmu.load_lsfalcon_ucode = NULL; 2658 gops->pmu.load_lsfalcon_ucode = NULL;
2659 gops->pmu.write_dmatrfbase = gk20a_write_dmatrfbase;
2654} 2660}
2655 2661
2656int gk20a_init_pmu_support(struct gk20a *g) 2662int gk20a_init_pmu_support(struct gk20a *g)