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_sysfs.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'drivers/gpu/nvgpu/gk20a/gk20a_sysfs.c') diff --git a/drivers/gpu/nvgpu/gk20a/gk20a_sysfs.c b/drivers/gpu/nvgpu/gk20a/gk20a_sysfs.c index 275b663f..8c1dbd37 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a_sysfs.c +++ b/drivers/gpu/nvgpu/gk20a/gk20a_sysfs.c @@ -22,7 +22,6 @@ #include #include #include -#include #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 0)) #include #endif @@ -742,7 +741,7 @@ static ssize_t force_idle_store(struct device *dev, if (g->forced_idle) return count; /* do nothing */ else { - err = __gk20a_do_idle(dev, false); + err = __gk20a_do_idle(g, false); if (!err) { g->forced_idle = 1; dev_info(dev, "gpu is idle : %d\n", @@ -753,7 +752,7 @@ static ssize_t force_idle_store(struct device *dev, if (!g->forced_idle) return count; /* do nothing */ else { - err = __gk20a_do_unidle(dev); + err = __gk20a_do_unidle(g); if (!err) { g->forced_idle = 0; dev_info(dev, "gpu is idle : %d\n", -- cgit v1.2.2