From a9c66768db400a82575a82ecddec71f1d3fd4aba Mon Sep 17 00:00:00 2001 From: Terje Bergstrom Date: Fri, 14 Apr 2017 12:06:39 -0700 Subject: gpu: nvgpu: Add abstraction for firmware loading Add nvgpu_firmware data structure, and return it instead of Linux struct firmare from nvgpu_request_firmware. Also add abstraction for releasing firmware: nvgpu_release_firmware. JIRA NVGPU-16 Change-Id: I6dae8262957c0d4506f710289e3a43a6c1729fc7 Signed-off-by: Terje Bergstrom Reviewed-on: http://git-master/r/1463538 Reviewed-by: mobile promotions Tested-by: mobile promotions --- drivers/gpu/nvgpu/gk20a/pmu_gk20a.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'drivers/gpu/nvgpu/gk20a/pmu_gk20a.c') diff --git a/drivers/gpu/nvgpu/gk20a/pmu_gk20a.c b/drivers/gpu/nvgpu/gk20a/pmu_gk20a.c index 49b9e78d..0ca8851f 100644 --- a/drivers/gpu/nvgpu/gk20a/pmu_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/pmu_gk20a.c @@ -16,7 +16,6 @@ * along with this program. If not, see . */ -#include #include #include #include @@ -27,6 +26,7 @@ #include #include #include +#include #include "gk20a.h" #include "gr_gk20a.h" @@ -3099,12 +3099,14 @@ static int pmu_queue_close(struct pmu_gk20a *pmu, void gk20a_remove_pmu_support(struct pmu_gk20a *pmu) { + struct gk20a *g = gk20a_from_pmu(pmu); + gk20a_dbg_fn(""); if (nvgpu_alloc_initialized(&pmu->dmem)) nvgpu_alloc_destroy(&pmu->dmem); - release_firmware(pmu->fw); + nvgpu_release_firmware(g, pmu->fw); nvgpu_mutex_destroy(&pmu->elpg_mutex); nvgpu_mutex_destroy(&pmu->pg_mutex); @@ -3157,7 +3159,7 @@ static int gk20a_prepare_ucode(struct gk20a *g) return gk20a_init_pmu(pmu); err_release_fw: - release_firmware(pmu->fw); + nvgpu_release_firmware(g, pmu->fw); pmu->fw = NULL; return err; -- cgit v1.2.2