summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorTerje Bergstrom <tbergstrom@nvidia.com>2015-02-11 16:10:25 -0500
committerDan Willemsen <dwillemsen@nvidia.com>2015-04-04 21:08:03 -0400
commitb82c86a8650aa11cd730c5b8a62315d63ce62ad4 (patch)
tree89feca44fa4a69cf8ebff0ea53bab90a1413a4b0 /drivers
parent3877adcd656e8e4329e2c4250119de2256f30730 (diff)
gpu: nvgpu: Ensure memory subsystem is enabled
Ensure that memory subsystem is enabled at init. Bug 1603128 Change-Id: Ie3fcd4d9df4dbd480e44fa8919fc311e61b627ca Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/707027 Reviewed-by: Seshendra Gadagottu <sgadagottu@nvidia.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/nvgpu/gk20a/fb_gk20a.c8
-rw-r--r--drivers/gpu/nvgpu/gk20a/hw_mc_gk20a.h16
-rw-r--r--drivers/gpu/nvgpu/gm20b/hw_mc_gm20b.h16
3 files changed, 40 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/fb_gk20a.c b/drivers/gpu/nvgpu/gk20a/fb_gk20a.c
index 568aed7a..b73be02a 100644
--- a/drivers/gpu/nvgpu/gk20a/fb_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/fb_gk20a.c
@@ -22,12 +22,20 @@
22 22
23static void fb_gk20a_reset(struct gk20a *g) 23static void fb_gk20a_reset(struct gk20a *g)
24{ 24{
25 u32 val;
26
25 gk20a_dbg_info("reset gk20a fb"); 27 gk20a_dbg_info("reset gk20a fb");
26 28
27 gk20a_reset(g, mc_enable_pfb_enabled_f() 29 gk20a_reset(g, mc_enable_pfb_enabled_f()
28 | mc_enable_l2_enabled_f() 30 | mc_enable_l2_enabled_f()
29 | mc_enable_xbar_enabled_f() 31 | mc_enable_xbar_enabled_f()
30 | mc_enable_hub_enabled_f()); 32 | mc_enable_hub_enabled_f());
33
34 val = gk20a_readl(g, mc_elpg_enable_r());
35 val |= mc_elpg_enable_xbar_enabled_f()
36 | mc_elpg_enable_pfb_enabled_f()
37 | mc_elpg_enable_hub_enabled_f();
38 gk20a_writel(g, mc_elpg_enable_r(), val);
31} 39}
32 40
33static void gk20a_fb_set_mmu_page_size(struct gk20a *g) 41static void gk20a_fb_set_mmu_page_size(struct gk20a *g)
diff --git a/drivers/gpu/nvgpu/gk20a/hw_mc_gk20a.h b/drivers/gpu/nvgpu/gk20a/hw_mc_gk20a.h
index 97517a77..ea3c2528 100644
--- a/drivers/gpu/nvgpu/gk20a/hw_mc_gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/hw_mc_gk20a.h
@@ -266,4 +266,20 @@ static inline u32 mc_enable_pb_sel_f(u32 v, u32 i)
266{ 266{
267 return (v & 0x1) << (0 + i*1); 267 return (v & 0x1) << (0 + i*1);
268} 268}
269static inline u32 mc_elpg_enable_r(void)
270{
271 return 0x0000020c;
272}
273static inline u32 mc_elpg_enable_xbar_enabled_f(void)
274{
275 return 0x4;
276}
277static inline u32 mc_elpg_enable_pfb_enabled_f(void)
278{
279 return 0x100000;
280}
281static inline u32 mc_elpg_enable_hub_enabled_f(void)
282{
283 return 0x20000000;
284}
269#endif 285#endif
diff --git a/drivers/gpu/nvgpu/gm20b/hw_mc_gm20b.h b/drivers/gpu/nvgpu/gm20b/hw_mc_gm20b.h
index 3750de06..ed114e32 100644
--- a/drivers/gpu/nvgpu/gm20b/hw_mc_gm20b.h
+++ b/drivers/gpu/nvgpu/gm20b/hw_mc_gm20b.h
@@ -262,4 +262,20 @@ static inline u32 mc_enable_pb_sel_f(u32 v, u32 i)
262{ 262{
263 return (v & 0x1) << (0 + i*1); 263 return (v & 0x1) << (0 + i*1);
264} 264}
265static inline u32 mc_elpg_enable_r(void)
266{
267 return 0x0000020c;
268}
269static inline u32 mc_elpg_enable_xbar_enabled_f(void)
270{
271 return 0x4;
272}
273static inline u32 mc_elpg_enable_pfb_enabled_f(void)
274{
275 return 0x100000;
276}
277static inline u32 mc_elpg_enable_hub_enabled_f(void)
278{
279 return 0x20000000;
280}
265#endif 281#endif