diff options
author | Mahantesh Kumbar <mkumbar@nvidia.com> | 2017-09-20 14:08:03 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2017-10-21 20:34:28 -0400 |
commit | 50a1cc069a6b28757de1af1617c0f9f037b60c6a (patch) | |
tree | c635fe4e1fd0c2f4ef405766eb65da553f9a2cb9 /drivers/gpu/nvgpu/gk20a | |
parent | 8882014731730ef7febb1e2236e82a9d409f77ec (diff) |
gpu: nvgpu: memory unlock HAL support
- Created "mem_unlock" HAL under fb to support memory
unlock
- Called as part of gk20a_finalize_poweron() if memory unlock
support needed by checking HAL
- Assigned "mem_unlock" HAL to NULL for chips which don't
need memory unlocks.
Change-Id: I68d0910f15d293feaacfcbf6bd17ecccd3b5219d
Signed-off-by: Mahantesh Kumbar <mkumbar@nvidia.com>
(cherry picked from commit 586894eb84860bbbe4c75dae4715bdf27432a480)
Reviewed-on: https://git-master.nvidia.com/r/1564703
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gk20a.c | 8 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gk20a.h | 1 |
2 files changed, 9 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.c b/drivers/gpu/nvgpu/gk20a/gk20a.c index d203a335..2d09c0bb 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/gk20a.c | |||
@@ -192,6 +192,14 @@ int gk20a_finalize_poweron(struct gk20a *g) | |||
192 | } | 192 | } |
193 | } | 193 | } |
194 | 194 | ||
195 | if (g->ops.fb.mem_unlock) { | ||
196 | err = g->ops.fb.mem_unlock(g); | ||
197 | if (err) { | ||
198 | nvgpu_err(g, "failed to unlock memory"); | ||
199 | goto done; | ||
200 | } | ||
201 | } | ||
202 | |||
195 | err = g->ops.fifo.reset_enable_hw(g); | 203 | err = g->ops.fifo.reset_enable_hw(g); |
196 | 204 | ||
197 | if (err) { | 205 | if (err) { |
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h index 3fcad1cf..c04c97ca 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/gk20a.h | |||
@@ -445,6 +445,7 @@ struct gpu_ops { | |||
445 | void (*set_debug_mode)(struct gk20a *g, bool enable); | 445 | void (*set_debug_mode)(struct gk20a *g, bool enable); |
446 | void (*tlb_invalidate)(struct gk20a *g, struct nvgpu_mem *pdb); | 446 | void (*tlb_invalidate)(struct gk20a *g, struct nvgpu_mem *pdb); |
447 | void (*hub_isr)(struct gk20a *g); | 447 | void (*hub_isr)(struct gk20a *g); |
448 | int (*mem_unlock)(struct gk20a *g); | ||
448 | } fb; | 449 | } fb; |
449 | struct { | 450 | struct { |
450 | void (*slcg_bus_load_gating_prod)(struct gk20a *g, bool prod); | 451 | void (*slcg_bus_load_gating_prod)(struct gk20a *g, bool prod); |