summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/channel_gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/channel_gk20a.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
index 5b259672..a7f8005b 100644
--- a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
@@ -2826,6 +2826,12 @@ void gk20a_channel_semaphore_wakeup(struct gk20a *g, bool post_events)
2826 2826
2827 gk20a_dbg_fn(""); 2827 gk20a_dbg_fn("");
2828 2828
2829 /*
2830 * Ensure that all pending writes are actually done before trying to
2831 * read semaphore values from DRAM.
2832 */
2833 g->ops.mm.fb_flush(g);
2834
2829 for (chid = 0; chid < f->num_channels; chid++) { 2835 for (chid = 0; chid < f->num_channels; chid++) {
2830 struct channel_gk20a *c = g->fifo.channel+chid; 2836 struct channel_gk20a *c = g->fifo.channel+chid;
2831 if (gk20a_channel_get(c)) { 2837 if (gk20a_channel_get(c)) {