summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/nvgpu/gk20a/gr_gk20a.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
index 8b022b9b..3a166e06 100644
--- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
@@ -1857,7 +1857,13 @@ int gr_gk20a_update_hwpm_ctxsw_mode(struct gk20a *g,
1857 nvgpu_mem_wr(g, gr_mem, ctxsw_prog_main_image_pm_o(), data); 1857 nvgpu_mem_wr(g, gr_mem, ctxsw_prog_main_image_pm_o(), data);
1858 1858
1859 if (ctxheader->gpu_va) { 1859 if (ctxheader->gpu_va) {
1860 g->ops.gr.write_pm_ptr(g, ctxheader, virt_addr); 1860 struct channel_gk20a *ch;
1861
1862 nvgpu_rwsem_down_read(&tsg->ch_list_lock);
1863 nvgpu_list_for_each_entry(ch, &tsg->ch_list, channel_gk20a, ch_entry) {
1864 g->ops.gr.write_pm_ptr(g, &ch->ctx_header, virt_addr);
1865 }
1866 nvgpu_rwsem_up_read(&tsg->ch_list_lock);
1861 } else { 1867 } else {
1862 g->ops.gr.write_pm_ptr(g, gr_mem, virt_addr); 1868 g->ops.gr.write_pm_ptr(g, gr_mem, virt_addr);
1863 } 1869 }