diff options
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/fifo_gk20a.c')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/fifo_gk20a.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c b/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c index 661c2c38..029a713f 100644 --- a/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c | |||
@@ -25,6 +25,7 @@ | |||
25 | 25 | ||
26 | #include "gk20a.h" | 26 | #include "gk20a.h" |
27 | #include "debug_gk20a.h" | 27 | #include "debug_gk20a.h" |
28 | #include "ctxsw_trace_gk20a.h" | ||
28 | #include "semaphore_gk20a.h" | 29 | #include "semaphore_gk20a.h" |
29 | #include "hw_fifo_gk20a.h" | 30 | #include "hw_fifo_gk20a.h" |
30 | #include "hw_pbdma_gk20a.h" | 31 | #include "hw_pbdma_gk20a.h" |
@@ -776,13 +777,17 @@ void gk20a_fifo_reset_engine(struct gk20a *g, u32 engine_id) | |||
776 | if (engine_id == top_device_info_type_enum_graphics_v()) { | 777 | if (engine_id == top_device_info_type_enum_graphics_v()) { |
777 | if (support_gk20a_pmu(g->dev) && g->elpg_enabled) | 778 | if (support_gk20a_pmu(g->dev) && g->elpg_enabled) |
778 | gk20a_pmu_disable_elpg(g); | 779 | gk20a_pmu_disable_elpg(g); |
779 | /*HALT_PIPELINE method, halt GR engine*/ | 780 | /*HALT_PIPELINE method, halt GR engine*/ |
780 | if (gr_gk20a_halt_pipe(g)) | 781 | if (gr_gk20a_halt_pipe(g)) |
781 | gk20a_err(dev_from_gk20a(g), | 782 | gk20a_err(dev_from_gk20a(g), "failed to HALT gr pipe"); |
782 | "failed to HALT gr pipe"); | 783 | /* resetting engine will alter read/write index. |
783 | /* resetting engine using mc_enable_r() is not | 784 | * need to flush circular buffer before re-enabling FECS. |
784 | enough, we do full init sequence */ | 785 | */ |
785 | gk20a_gr_reset(g); | 786 | if (g->ops.fecs_trace.reset) |
787 | g->ops.fecs_trace.reset(g); | ||
788 | /* resetting engine using mc_enable_r() is not | ||
789 | enough, we do full init sequence */ | ||
790 | gk20a_gr_reset(g); | ||
786 | if (support_gk20a_pmu(g->dev) && g->elpg_enabled) | 791 | if (support_gk20a_pmu(g->dev) && g->elpg_enabled) |
787 | gk20a_pmu_enable_elpg(g); | 792 | gk20a_pmu_enable_elpg(g); |
788 | } | 793 | } |