diff options
Diffstat (limited to 'drivers/gpu/nvgpu/common/linux/module.c')
-rw-r--r-- | drivers/gpu/nvgpu/common/linux/module.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/drivers/gpu/nvgpu/common/linux/module.c b/drivers/gpu/nvgpu/common/linux/module.c index b9c9554b..81b3db82 100644 --- a/drivers/gpu/nvgpu/common/linux/module.c +++ b/drivers/gpu/nvgpu/common/linux/module.c | |||
@@ -40,6 +40,7 @@ | |||
40 | #include <nvgpu/enabled.h> | 40 | #include <nvgpu/enabled.h> |
41 | #include <nvgpu/debug.h> | 41 | #include <nvgpu/debug.h> |
42 | #include <nvgpu/ctxsw_trace.h> | 42 | #include <nvgpu/ctxsw_trace.h> |
43 | #include <nvgpu/vidmem.h> | ||
43 | 44 | ||
44 | #include "platform_gk20a.h" | 45 | #include "platform_gk20a.h" |
45 | #include "sysfs.h" | 46 | #include "sysfs.h" |
@@ -252,13 +253,22 @@ int gk20a_pm_finalize_poweron(struct device *dev) | |||
252 | return err; | 253 | return err; |
253 | 254 | ||
254 | err = gk20a_finalize_poweron(g); | 255 | err = gk20a_finalize_poweron(g); |
255 | set_user_nice(current, nice_value); | 256 | if (err) { |
256 | if (err) | 257 | set_user_nice(current, nice_value); |
257 | goto done; | 258 | goto done; |
259 | } | ||
258 | 260 | ||
259 | err = nvgpu_finalize_poweron_linux(l); | 261 | err = nvgpu_finalize_poweron_linux(l); |
260 | if (err) | 262 | if (err) { |
263 | set_user_nice(current, nice_value); | ||
261 | goto done; | 264 | goto done; |
265 | } | ||
266 | |||
267 | nvgpu_init_mm_ce_context(g); | ||
268 | |||
269 | nvgpu_vidmem_thread_unpause(&g->mm); | ||
270 | |||
271 | set_user_nice(current, nice_value); | ||
262 | 272 | ||
263 | /* Initialise scaling: it will initialize scaling drive only once */ | 273 | /* Initialise scaling: it will initialize scaling drive only once */ |
264 | if (IS_ENABLED(CONFIG_GK20A_DEVFREQ) && | 274 | if (IS_ENABLED(CONFIG_GK20A_DEVFREQ) && |