diff options
Diffstat (limited to 'drivers/gpu/nvgpu/gm20b/fifo_gm20b.c')
-rw-r--r-- | drivers/gpu/nvgpu/gm20b/fifo_gm20b.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/drivers/gpu/nvgpu/gm20b/fifo_gm20b.c b/drivers/gpu/nvgpu/gm20b/fifo_gm20b.c index f0635b83..dd11d2c7 100644 --- a/drivers/gpu/nvgpu/gm20b/fifo_gm20b.c +++ b/drivers/gpu/nvgpu/gm20b/fifo_gm20b.c | |||
@@ -99,9 +99,10 @@ void gm20b_fifo_trigger_mmu_fault(struct gk20a *g, | |||
99 | } else { | 99 | } else { |
100 | u32 mmu_id = gm20b_engine_id_to_mmu_id(g, | 100 | u32 mmu_id = gm20b_engine_id_to_mmu_id(g, |
101 | engine_id); | 101 | engine_id); |
102 | if (mmu_id != (u32)~0) | 102 | if (mmu_id != (u32)~0) { |
103 | gk20a_writel(g, fifo_trigger_mmu_fault_r(mmu_id), | 103 | gk20a_writel(g, fifo_trigger_mmu_fault_r(mmu_id), |
104 | fifo_trigger_mmu_fault_enable_f(1)); | 104 | fifo_trigger_mmu_fault_enable_f(1)); |
105 | } | ||
105 | } | 106 | } |
106 | } | 107 | } |
107 | 108 | ||
@@ -120,8 +121,9 @@ void gm20b_fifo_trigger_mmu_fault(struct gk20a *g, | |||
120 | delay = min_t(u32, delay << 1, GR_IDLE_CHECK_MAX); | 121 | delay = min_t(u32, delay << 1, GR_IDLE_CHECK_MAX); |
121 | } while (!nvgpu_timeout_expired(&timeout)); | 122 | } while (!nvgpu_timeout_expired(&timeout)); |
122 | 123 | ||
123 | if (ret) | 124 | if (ret) { |
124 | nvgpu_err(g, "mmu fault timeout"); | 125 | nvgpu_err(g, "mmu fault timeout"); |
126 | } | ||
125 | 127 | ||
126 | /* release mmu fault trigger */ | 128 | /* release mmu fault trigger */ |
127 | for_each_set_bit(engine_id, &engine_ids, 32) { | 129 | for_each_set_bit(engine_id, &engine_ids, 32) { |
@@ -150,9 +152,10 @@ void gm20b_device_info_data_parse(struct gk20a *g, | |||
150 | *fault_id = | 152 | *fault_id = |
151 | top_device_info_data_fault_id_enum_v(table_entry); | 153 | top_device_info_data_fault_id_enum_v(table_entry); |
152 | } | 154 | } |
153 | } else | 155 | } else { |
154 | nvgpu_err(g, "unknown device_info_data %d", | 156 | nvgpu_err(g, "unknown device_info_data %d", |
155 | top_device_info_data_type_v(table_entry)); | 157 | top_device_info_data_type_v(table_entry)); |
158 | } | ||
156 | } | 159 | } |
157 | 160 | ||
158 | void gm20b_fifo_init_pbdma_intr_descs(struct fifo_gk20a *f) | 161 | void gm20b_fifo_init_pbdma_intr_descs(struct fifo_gk20a *f) |
@@ -250,10 +253,11 @@ static const char * const gm20b_gpc_client_descs[] = { | |||
250 | 253 | ||
251 | void gm20b_fifo_get_mmu_fault_gpc_desc(struct mmu_fault_info *mmfault) | 254 | void gm20b_fifo_get_mmu_fault_gpc_desc(struct mmu_fault_info *mmfault) |
252 | { | 255 | { |
253 | if (mmfault->client_id >= ARRAY_SIZE(gm20b_gpc_client_descs)) | 256 | if (mmfault->client_id >= ARRAY_SIZE(gm20b_gpc_client_descs)) { |
254 | WARN_ON(mmfault->client_id >= | 257 | WARN_ON(mmfault->client_id >= |
255 | ARRAY_SIZE(gm20b_gpc_client_descs)); | 258 | ARRAY_SIZE(gm20b_gpc_client_descs)); |
256 | else | 259 | } else { |
257 | mmfault->client_id_desc = | 260 | mmfault->client_id_desc = |
258 | gm20b_gpc_client_descs[mmfault->client_id]; | 261 | gm20b_gpc_client_descs[mmfault->client_id]; |
262 | } | ||
259 | } | 263 | } |