diff options
Diffstat (limited to 'drivers/gpu')
-rw-r--r-- | drivers/gpu/nvgpu/gp10b/hw_pwr_gp10b.h | 4 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gp10b/pmu_gp10b.c | 10 |
2 files changed, 14 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gp10b/hw_pwr_gp10b.h b/drivers/gpu/nvgpu/gp10b/hw_pwr_gp10b.h index 0de70b96..f66812d6 100644 --- a/drivers/gpu/nvgpu/gp10b/hw_pwr_gp10b.h +++ b/drivers/gpu/nvgpu/gp10b/hw_pwr_gp10b.h | |||
@@ -406,6 +406,10 @@ static inline u32 pwr_falcon_dmatrfbase_r(void) | |||
406 | { | 406 | { |
407 | return 0x0010a110; | 407 | return 0x0010a110; |
408 | } | 408 | } |
409 | static inline u32 pwr_falcon_dmatrfbase1_r(void) | ||
410 | { | ||
411 | return 0x0010a128; | ||
412 | } | ||
409 | static inline u32 pwr_falcon_dmatrfmoffs_r(void) | 413 | static inline u32 pwr_falcon_dmatrfmoffs_r(void) |
410 | { | 414 | { |
411 | return 0x0010a114; | 415 | return 0x0010a114; |
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 | } |