From bce383801c0f93c3095c83a7209d7ab61edceca8 Mon Sep 17 00:00:00 2001 From: Deepak Nibade Date: Wed, 11 Jun 2014 19:22:51 +0530 Subject: gpu: nvgpu: bail out from poweroff if channel suspend fails During gk20a_pm_prepare_poweroff(), if call to gk20a_channel_suspend() fails, we proceed to disable other components and then return error. But when genpd sees the error, it will abort the suspend sequence and keep the device state as active. But since we have already disabled all the components, GPU lands in invalid state. Hence, if channel_suspend() fails then do not proceed but return the error immediately Bug 200010416 Change-Id: I553a2a25832a1be4941bb6b6ce490c950cdbe7fa Signed-off-by: Deepak Nibade Reviewed-on: http://git-master/r/422248 Reviewed-by: Terje Bergstrom --- drivers/gpu/nvgpu/gk20a/gk20a.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'drivers/gpu/nvgpu') diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.c b/drivers/gpu/nvgpu/gk20a/gk20a.c index 8e142e6e..c13c9614 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/gk20a.c @@ -754,7 +754,9 @@ static int gk20a_pm_prepare_poweroff(struct device *dev) if (!g->power_on) return 0; - ret |= gk20a_channel_suspend(g); + ret = gk20a_channel_suspend(g); + if (ret) + return ret; /* * After this point, gk20a interrupts should not get -- cgit v1.2.2