diff options
Diffstat (limited to 'drivers/gpu/nvgpu/gp10b/pmu_gp10b.c')
-rw-r--r-- | drivers/gpu/nvgpu/gp10b/pmu_gp10b.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gp10b/pmu_gp10b.c b/drivers/gpu/nvgpu/gp10b/pmu_gp10b.c index f29bcbad..529491d0 100644 --- a/drivers/gpu/nvgpu/gp10b/pmu_gp10b.c +++ b/drivers/gpu/nvgpu/gp10b/pmu_gp10b.c | |||
@@ -20,6 +20,7 @@ | |||
20 | #include "gm20b/pmu_gm20b.h" | 20 | #include "gm20b/pmu_gm20b.h" |
21 | 21 | ||
22 | #include "pmu_gp10b.h" | 22 | #include "pmu_gp10b.h" |
23 | #include "hw_pwr_gp10b.h" | ||
23 | 24 | ||
24 | #define gp10b_dbg_pmu(fmt, arg...) \ | 25 | #define gp10b_dbg_pmu(fmt, arg...) \ |
25 | gk20a_dbg(gpu_dbg_pmu, fmt, ##arg) | 26 | gk20a_dbg(gpu_dbg_pmu, fmt, ##arg) |
@@ -223,6 +224,14 @@ static int gp10b_pmu_setup_elpg(struct gk20a *g) | |||
223 | return ret; | 224 | return ret; |
224 | } | 225 | } |
225 | 226 | ||
227 | void gp10b_write_dmatrfbase(struct gk20a *g, u32 addr) | ||
228 | { | ||
229 | gk20a_writel(g, pwr_falcon_dmatrfbase_r(), | ||
230 | addr); | ||
231 | gk20a_writel(g, pwr_falcon_dmatrfbase1_r(), | ||
232 | 0x0); | ||
233 | } | ||
234 | |||
226 | void gp10b_init_pmu_ops(struct gpu_ops *gops) | 235 | void gp10b_init_pmu_ops(struct gpu_ops *gops) |
227 | { | 236 | { |
228 | if (gops->privsecurity) { | 237 | if (gops->privsecurity) { |
@@ -239,4 +248,5 @@ void gp10b_init_pmu_ops(struct gpu_ops *gops) | |||
239 | gops->pmu.pmu_setup_elpg = gp10b_pmu_setup_elpg; | 248 | gops->pmu.pmu_setup_elpg = gp10b_pmu_setup_elpg; |
240 | gops->pmu.lspmuwprinitdone = false; | 249 | gops->pmu.lspmuwprinitdone = false; |
241 | gops->pmu.fecsbootstrapdone = false; | 250 | gops->pmu.fecsbootstrapdone = false; |
251 | gops->pmu.write_dmatrfbase = gp10b_write_dmatrfbase; | ||
242 | } | 252 | } |