summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/gk20a_sysfs.c
diff options
context:
space:
mode:
authorKonsta Holtta <kholtta@nvidia.com>2017-06-05 09:22:30 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2017-06-15 08:23:19 -0400
commitf6c921ec97323c1eab7d3b8a0cda73abf041a00f (patch)
treeb2607a51e09dd88ffff5ccf47e44c9076e34391a /drivers/gpu/nvgpu/gk20a/gk20a_sysfs.c
parent7680fd689ecf7d11bf2dfdba41dc2f33cde2bbe7 (diff)
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 <kholtta@nvidia.com> Reviewed-on: http://git-master/r/1493774 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/gk20a_sysfs.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/gk20a_sysfs.c5
1 files changed, 2 insertions, 3 deletions
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 @@
22#include <linux/device.h> 22#include <linux/device.h>
23#include <linux/pm_runtime.h> 23#include <linux/pm_runtime.h>
24#include <linux/fb.h> 24#include <linux/fb.h>
25#include <linux/gk20a.h>
26#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 0)) 25#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 0))
27#include <soc/tegra/tegra-dvfs.h> 26#include <soc/tegra/tegra-dvfs.h>
28#endif 27#endif
@@ -742,7 +741,7 @@ static ssize_t force_idle_store(struct device *dev,
742 if (g->forced_idle) 741 if (g->forced_idle)
743 return count; /* do nothing */ 742 return count; /* do nothing */
744 else { 743 else {
745 err = __gk20a_do_idle(dev, false); 744 err = __gk20a_do_idle(g, false);
746 if (!err) { 745 if (!err) {
747 g->forced_idle = 1; 746 g->forced_idle = 1;
748 dev_info(dev, "gpu is idle : %d\n", 747 dev_info(dev, "gpu is idle : %d\n",
@@ -753,7 +752,7 @@ static ssize_t force_idle_store(struct device *dev,
753 if (!g->forced_idle) 752 if (!g->forced_idle)
754 return count; /* do nothing */ 753 return count; /* do nothing */
755 else { 754 else {
756 err = __gk20a_do_unidle(dev); 755 err = __gk20a_do_unidle(g);
757 if (!err) { 756 if (!err) {
758 g->forced_idle = 0; 757 g->forced_idle = 0;
759 dev_info(dev, "gpu is idle : %d\n", 758 dev_info(dev, "gpu is idle : %d\n",