diff options
Diffstat (limited to 'drivers/gpu/nvgpu')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/debug_gk20a.c | 7 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/fifo_gk20a.c | 13 |
2 files changed, 14 insertions, 6 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/debug_gk20a.c b/drivers/gpu/nvgpu/gk20a/debug_gk20a.c index 4b8e61c4..67f9b532 100644 --- a/drivers/gpu/nvgpu/gk20a/debug_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/debug_gk20a.c | |||
@@ -176,10 +176,13 @@ void gk20a_debug_show_dump(struct gk20a *g, struct gk20a_debug_output *o) | |||
176 | struct fifo_gk20a *f = &g->fifo; | 176 | struct fifo_gk20a *f = &g->fifo; |
177 | u32 chid; | 177 | u32 chid; |
178 | unsigned int i; | 178 | unsigned int i; |
179 | u32 host_num_pbdma = nvgpu_get_litter_value(g, GPU_LIT_HOST_NUM_PBDMA); | ||
180 | u32 host_num_engines = nvgpu_get_litter_value(g, | ||
181 | GPU_LIT_HOST_NUM_ENGINES); | ||
179 | 182 | ||
180 | struct ch_state **ch_state; | 183 | struct ch_state **ch_state; |
181 | 184 | ||
182 | for (i = 0; i < fifo_pbdma_status__size_1_v(); i++) { | 185 | for (i = 0; i < host_num_pbdma; i++) { |
183 | u32 status = gk20a_readl(g, fifo_pbdma_status_r(i)); | 186 | u32 status = gk20a_readl(g, fifo_pbdma_status_r(i)); |
184 | u32 chan_status = fifo_pbdma_status_chan_status_v(status); | 187 | u32 chan_status = fifo_pbdma_status_chan_status_v(status); |
185 | 188 | ||
@@ -204,7 +207,7 @@ void gk20a_debug_show_dump(struct gk20a *g, struct gk20a_debug_output *o) | |||
204 | } | 207 | } |
205 | gk20a_debug_output(o, "\n"); | 208 | gk20a_debug_output(o, "\n"); |
206 | 209 | ||
207 | for (i = 0; i < fifo_engine_status__size_1_v(); i++) { | 210 | for (i = 0; i < host_num_engines; i++) { |
208 | u32 status = gk20a_readl(g, fifo_engine_status_r(i)); | 211 | u32 status = gk20a_readl(g, fifo_engine_status_r(i)); |
209 | u32 ctx_status = fifo_engine_status_ctx_status_v(status); | 212 | u32 ctx_status = fifo_engine_status_ctx_status_v(status); |
210 | 213 | ||
diff --git a/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c b/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c index 0d3a75fc..95351a43 100644 --- a/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c | |||
@@ -3115,9 +3115,11 @@ bool gk20a_fifo_mmu_fault_pending(struct gk20a *g) | |||
3115 | 3115 | ||
3116 | bool gk20a_fifo_is_engine_busy(struct gk20a *g) | 3116 | bool gk20a_fifo_is_engine_busy(struct gk20a *g) |
3117 | { | 3117 | { |
3118 | unsigned int i; | 3118 | u32 i, host_num_engines; |
3119 | |||
3120 | host_num_engines = nvgpu_get_litter_value(g, GPU_LIT_HOST_NUM_ENGINES); | ||
3119 | 3121 | ||
3120 | for (i = 0; i < fifo_engine_status__size_1_v(); i++) { | 3122 | for (i = 0; i < host_num_engines; i++) { |
3121 | u32 status = gk20a_readl(g, fifo_engine_status_r(i)); | 3123 | u32 status = gk20a_readl(g, fifo_engine_status_r(i)); |
3122 | if (fifo_engine_status_engine_v(status) == | 3124 | if (fifo_engine_status_engine_v(status) == |
3123 | fifo_engine_status_engine_busy_v()) | 3125 | fifo_engine_status_engine_busy_v()) |
@@ -3131,14 +3133,17 @@ int gk20a_fifo_wait_engine_idle(struct gk20a *g) | |||
3131 | struct nvgpu_timeout timeout; | 3133 | struct nvgpu_timeout timeout; |
3132 | unsigned long delay = GR_IDLE_CHECK_DEFAULT; | 3134 | unsigned long delay = GR_IDLE_CHECK_DEFAULT; |
3133 | int ret = -ETIMEDOUT; | 3135 | int ret = -ETIMEDOUT; |
3134 | u32 i; | 3136 | u32 i, host_num_engines; |
3135 | 3137 | ||
3136 | gk20a_dbg_fn(""); | 3138 | gk20a_dbg_fn(""); |
3137 | 3139 | ||
3140 | host_num_engines = | ||
3141 | nvgpu_get_litter_value(g, GPU_LIT_HOST_NUM_ENGINES); | ||
3142 | |||
3138 | nvgpu_timeout_init(g, &timeout, gk20a_get_gr_idle_timeout(g), | 3143 | nvgpu_timeout_init(g, &timeout, gk20a_get_gr_idle_timeout(g), |
3139 | NVGPU_TIMER_CPU_TIMER); | 3144 | NVGPU_TIMER_CPU_TIMER); |
3140 | 3145 | ||
3141 | for (i = 0; i < fifo_engine_status__size_1_v(); i++) { | 3146 | for (i = 0; i < host_num_engines; i++) { |
3142 | do { | 3147 | do { |
3143 | u32 status = gk20a_readl(g, fifo_engine_status_r(i)); | 3148 | u32 status = gk20a_readl(g, fifo_engine_status_r(i)); |
3144 | if (!fifo_engine_status_engine_v(status)) { | 3149 | if (!fifo_engine_status_engine_v(status)) { |