From 6c3370a588108ba920c952d63699670905e16449 Mon Sep 17 00:00:00 2001 From: Deepak Nibade Date: Wed, 29 Mar 2017 14:29:29 +0530 Subject: gpu: nvgpu: check return value of mutex_init in mclk code - check return value of nvgpu_mutex_init in clk_mclk.c - declare new callback g->ops.pmu.mclk_deinit() to deinitialize mclk mutexes - and define this callback for gp106 - add corresponding nvgpu_mutex_destroy calls in deinitialization Jira NVGPU-13 Change-Id: I1491c084d330ac9756c9520477e6fe494560e651 Signed-off-by: Deepak Nibade Reviewed-on: http://git-master/r/1321294 Reviewed-by: mobile promotions Tested-by: mobile promotions --- drivers/gpu/nvgpu/gk20a/gk20a.c | 3 +++ drivers/gpu/nvgpu/gk20a/gk20a.h | 1 + 2 files changed, 4 insertions(+) (limited to 'drivers/gpu/nvgpu/gk20a') diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.c b/drivers/gpu/nvgpu/gk20a/gk20a.c index 4ed7251a..aae3072a 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/gk20a.c @@ -452,6 +452,9 @@ static int gk20a_pm_prepare_poweroff(struct device *dev) ret |= gk20a_mm_suspend(g); ret |= gk20a_fifo_suspend(g); + if (g->ops.pmu.mclk_deinit) + g->ops.pmu.mclk_deinit(g); + /* Disable GPCPLL */ if (g->ops.clk.suspend_clk_support) ret |= g->ops.clk.suspend_clk_support(g); diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h index 951c8267..e3dad962 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/gk20a.h @@ -699,6 +699,7 @@ struct gpu_ops { int (*flcn_populate_bl_dmem_desc)(struct gk20a *g, void *lsfm, u32 *p_bl_gen_desc_size, u32 falconid); int (*mclk_init)(struct gk20a *g); + void (*mclk_deinit)(struct gk20a *g); u32 lspmuwprinitdone; u32 lsfloadedfalconid; bool fecsbootstrapdone; -- cgit v1.2.2