From 918485b5e0a7a3b8677375409b7647bcbbc63c95 Mon Sep 17 00:00:00 2001 From: Seshendra Gadagottu Date: Thu, 26 Feb 2015 18:18:47 -0800 Subject: gpu: nvgpu: wake-up gpu for rail gating delay setting Currently new gpu rail gating delay is not effective until next gpu rail gate and ungate. To make new rail gate delay effective immediately, wakeup gpu after setting new delay. Change-Id: I80889687e9d3d577ea783cdf5688074c06d602cf Signed-off-by: Seshendra Gadagottu Reviewed-on: http://git-master/r/714961 Reviewed-by: Terje Bergstrom --- drivers/gpu/nvgpu/gk20a/gk20a_sysfs.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/gpu/nvgpu/gk20a/gk20a_sysfs.c b/drivers/gpu/nvgpu/gk20a/gk20a_sysfs.c index a70ce4b2..4fea0779 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a_sysfs.c +++ b/drivers/gpu/nvgpu/gk20a/gk20a_sysfs.c @@ -228,7 +228,10 @@ static ssize_t railgate_delay_store(struct device *dev, const char *buf, size_t count) { struct gk20a_platform *platform = dev_get_drvdata(dev); + struct platform_device *ndev = to_platform_device(dev); int railgate_delay = 0, ret = 0; + struct gk20a *g = get_gk20a(ndev); + int err; if (!platform->can_railgate) { dev_info(dev, "does not support power-gating\n"); @@ -242,6 +245,11 @@ static ssize_t railgate_delay_store(struct device *dev, pm_genpd_set_poweroff_delay(genpd, platform->railgate_delay); } else dev_err(dev, "Invalid powergate delay\n"); + /* wake-up system to make rail-gating delay effective immediately */ + err = gk20a_busy(g->dev); + if (err) + return err; + gk20a_idle(g->dev); return count; } -- cgit v1.2.2