From f6c921ec97323c1eab7d3b8a0cda73abf041a00f Mon Sep 17 00:00:00 2001 From: Konsta Holtta Date: Mon, 5 Jun 2017 16:22:30 +0300 Subject: gpu: nvgpu: bring back tegra idle registration To make do_idle work when nvgpu is built as a module, reverse the order of call dependencies for do_idle. Don't provide visible gk20a_do_{idle,unidle}() functions for the kernel but instead call the kernel for registering and unregistering pointers to them when the driver loads and unloads. Refactor the internal __gk20a_do_{idle,unidle} functions to take a struct gk20a * instead of struct device *, and use the callback api for providing that g instead of retrieving the plat device from device tree. Bug 200290850 Change-Id: Ibef8b069302e547b298069cbb97734f461a10cc3 Signed-off-by: Konsta Holtta Reviewed-on: http://git-master/r/1493774 Reviewed-by: mobile promotions Tested-by: mobile promotions --- drivers/gpu/nvgpu/gk20a/gk20a.h | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'drivers/gpu/nvgpu/gk20a/gk20a.h') diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h index 79118fca..34f89fc8 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/gk20a.h @@ -1485,10 +1485,8 @@ void gk20a_busy_noresume(struct device *dev); void gk20a_idle_nosuspend(struct device *dev); int __must_check gk20a_busy(struct gk20a *g); void gk20a_idle(struct gk20a *g); -int gk20a_do_idle(void); -int gk20a_do_unidle(void); -int __gk20a_do_idle(struct device *dev, bool force_reset); -int __gk20a_do_unidle(struct device *dev); +int __gk20a_do_idle(struct gk20a *g, bool force_reset); +int __gk20a_do_unidle(struct gk20a *g); int gk20a_can_busy(struct gk20a *g); void gk20a_driver_start_unload(struct gk20a *g); -- cgit v1.2.2