diff options
author | Terje Bergstrom <tbergstrom@nvidia.com> | 2015-02-11 16:10:25 -0500 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2015-04-04 21:08:03 -0400 |
commit | b82c86a8650aa11cd730c5b8a62315d63ce62ad4 (patch) | |
tree | 89feca44fa4a69cf8ebff0ea53bab90a1413a4b0 | |
parent | 3877adcd656e8e4329e2c4250119de2256f30730 (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>
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/fb_gk20a.c | 8 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/hw_mc_gk20a.h | 16 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gm20b/hw_mc_gm20b.h | 16 |
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 | ||
23 | static void fb_gk20a_reset(struct gk20a *g) | 23 | static 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 | ||
33 | static void gk20a_fb_set_mmu_page_size(struct gk20a *g) | 41 | static 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 | } |
269 | static inline u32 mc_elpg_enable_r(void) | ||
270 | { | ||
271 | return 0x0000020c; | ||
272 | } | ||
273 | static inline u32 mc_elpg_enable_xbar_enabled_f(void) | ||
274 | { | ||
275 | return 0x4; | ||
276 | } | ||
277 | static inline u32 mc_elpg_enable_pfb_enabled_f(void) | ||
278 | { | ||
279 | return 0x100000; | ||
280 | } | ||
281 | static 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 | } |
265 | static inline u32 mc_elpg_enable_r(void) | ||
266 | { | ||
267 | return 0x0000020c; | ||
268 | } | ||
269 | static inline u32 mc_elpg_enable_xbar_enabled_f(void) | ||
270 | { | ||
271 | return 0x4; | ||
272 | } | ||
273 | static inline u32 mc_elpg_enable_pfb_enabled_f(void) | ||
274 | { | ||
275 | return 0x100000; | ||
276 | } | ||
277 | static inline u32 mc_elpg_enable_hub_enabled_f(void) | ||
278 | { | ||
279 | return 0x20000000; | ||
280 | } | ||
265 | #endif | 281 | #endif |