summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a')
-rw-r--r--drivers/gpu/nvgpu/gk20a/gk20a_sysfs.c8
1 files changed, 8 insertions, 0 deletions
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,
228 const char *buf, size_t count) 228 const char *buf, size_t count)
229{ 229{
230 struct gk20a_platform *platform = dev_get_drvdata(dev); 230 struct gk20a_platform *platform = dev_get_drvdata(dev);
231 struct platform_device *ndev = to_platform_device(dev);
231 int railgate_delay = 0, ret = 0; 232 int railgate_delay = 0, ret = 0;
233 struct gk20a *g = get_gk20a(ndev);
234 int err;
232 235
233 if (!platform->can_railgate) { 236 if (!platform->can_railgate) {
234 dev_info(dev, "does not support power-gating\n"); 237 dev_info(dev, "does not support power-gating\n");
@@ -242,6 +245,11 @@ static ssize_t railgate_delay_store(struct device *dev,
242 pm_genpd_set_poweroff_delay(genpd, platform->railgate_delay); 245 pm_genpd_set_poweroff_delay(genpd, platform->railgate_delay);
243 } else 246 } else
244 dev_err(dev, "Invalid powergate delay\n"); 247 dev_err(dev, "Invalid powergate delay\n");
248 /* wake-up system to make rail-gating delay effective immediately */
249 err = gk20a_busy(g->dev);
250 if (err)
251 return err;
252 gk20a_idle(g->dev);
245 253
246 return count; 254 return count;
247} 255}