diff options
Diffstat (limited to 'drivers/gpu')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/channel_gk20a.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c index a7f8005b..d94e12a2 100644 --- a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c | |||
@@ -1871,6 +1871,11 @@ static void gk20a_channel_clean_up_jobs(struct work_struct *work) | |||
1871 | if (!c) | 1871 | if (!c) |
1872 | return; | 1872 | return; |
1873 | 1873 | ||
1874 | if (!c->g->power_on) { /* shutdown case */ | ||
1875 | gk20a_channel_put(c); | ||
1876 | return; | ||
1877 | } | ||
1878 | |||
1874 | vm = c->vm; | 1879 | vm = c->vm; |
1875 | g = c->g; | 1880 | g = c->g; |
1876 | platform = gk20a_get_platform(g->dev); | 1881 | platform = gk20a_get_platform(g->dev); |
@@ -1951,6 +1956,11 @@ void gk20a_channel_update(struct channel_gk20a *c, int nr_completed) | |||
1951 | if (!c) | 1956 | if (!c) |
1952 | return; | 1957 | return; |
1953 | 1958 | ||
1959 | if (!c->g->power_on) { /* shutdown case */ | ||
1960 | gk20a_channel_put(c); | ||
1961 | return; | ||
1962 | } | ||
1963 | |||
1954 | update_gp_get(c->g, c); | 1964 | update_gp_get(c->g, c); |
1955 | wake_up(&c->submit_wq); | 1965 | wake_up(&c->submit_wq); |
1956 | 1966 | ||