diff options
Diffstat (limited to 'drivers/gpu/nvgpu/common')
-rw-r--r-- | drivers/gpu/nvgpu/common/fb/fb_gv100.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/common/fb/fb_gv100.c b/drivers/gpu/nvgpu/common/fb/fb_gv100.c index 967af51b..3bfac676 100644 --- a/drivers/gpu/nvgpu/common/fb/fb_gv100.c +++ b/drivers/gpu/nvgpu/common/fb/fb_gv100.c | |||
@@ -49,6 +49,9 @@ | |||
49 | #define HW_SCRUB_TIMEOUT_MAX 2000000 /* usec */ | 49 | #define HW_SCRUB_TIMEOUT_MAX 2000000 /* usec */ |
50 | #define MEM_UNLOCK_TIMEOUT 3500 /* msec */ | 50 | #define MEM_UNLOCK_TIMEOUT 3500 /* msec */ |
51 | 51 | ||
52 | #define MEM_UNLOCK_PROD_BIN "mem_unlock.bin" | ||
53 | #define MEM_UNLOCK_DBG_BIN "mem_unlock_dbg.bin" | ||
54 | |||
52 | void gv100_fb_reset(struct gk20a *g) | 55 | void gv100_fb_reset(struct gk20a *g) |
53 | { | 56 | { |
54 | u32 val; | 57 | u32 val; |
@@ -140,11 +143,16 @@ int gv100_fb_memory_unlock(struct gk20a *g) | |||
140 | 143 | ||
141 | nvgpu_log_info(g, "fb_mmu_vpr_info = 0x%08x", | 144 | nvgpu_log_info(g, "fb_mmu_vpr_info = 0x%08x", |
142 | gk20a_readl(g, fb_mmu_vpr_info_r())); | 145 | gk20a_readl(g, fb_mmu_vpr_info_r())); |
146 | |||
143 | /* | 147 | /* |
144 | * mem_unlock.bin should be written to install | 148 | * mem_unlock.bin should be written to install |
145 | * traps even if VPR isn’t actually supported | 149 | * traps even if VPR isn’t actually supported |
146 | */ | 150 | */ |
147 | mem_unlock_fw = nvgpu_request_firmware(g, "mem_unlock.bin", 0); | 151 | if (!g->ops.pmu.is_debug_mode_enabled(g)) { |
152 | mem_unlock_fw = nvgpu_request_firmware(g, MEM_UNLOCK_PROD_BIN, 0); | ||
153 | } else { | ||
154 | mem_unlock_fw = nvgpu_request_firmware(g, MEM_UNLOCK_DBG_BIN, 0); | ||
155 | } | ||
148 | if (!mem_unlock_fw) { | 156 | if (!mem_unlock_fw) { |
149 | nvgpu_err(g, "mem unlock ucode get fail"); | 157 | nvgpu_err(g, "mem unlock ucode get fail"); |
150 | err = -ENOENT; | 158 | err = -ENOENT; |