diff options
author | Konsta Holtta <kholtta@nvidia.com> | 2017-06-05 09:22:30 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2017-06-15 08:23:19 -0400 |
commit | f6c921ec97323c1eab7d3b8a0cda73abf041a00f (patch) | |
tree | b2607a51e09dd88ffff5ccf47e44c9076e34391a /drivers/gpu/nvgpu/gk20a/gk20a.h | |
parent | 7680fd689ecf7d11bf2dfdba41dc2f33cde2bbe7 (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.h')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gk20a.h | 6 |
1 files changed, 2 insertions, 4 deletions
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); | |||
1485 | void gk20a_idle_nosuspend(struct device *dev); | 1485 | void gk20a_idle_nosuspend(struct device *dev); |
1486 | int __must_check gk20a_busy(struct gk20a *g); | 1486 | int __must_check gk20a_busy(struct gk20a *g); |
1487 | void gk20a_idle(struct gk20a *g); | 1487 | void gk20a_idle(struct gk20a *g); |
1488 | int gk20a_do_idle(void); | 1488 | int __gk20a_do_idle(struct gk20a *g, bool force_reset); |
1489 | int gk20a_do_unidle(void); | 1489 | int __gk20a_do_unidle(struct gk20a *g); |
1490 | int __gk20a_do_idle(struct device *dev, bool force_reset); | ||
1491 | int __gk20a_do_unidle(struct device *dev); | ||
1492 | 1490 | ||
1493 | int gk20a_can_busy(struct gk20a *g); | 1491 | int gk20a_can_busy(struct gk20a *g); |
1494 | void gk20a_driver_start_unload(struct gk20a *g); | 1492 | void gk20a_driver_start_unload(struct gk20a *g); |