diff options
Diffstat (limited to 'drivers/gpu/nvgpu/gp10b')
-rw-r--r-- | drivers/gpu/nvgpu/gp10b/fifo_gp10b.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gp10b/fifo_gp10b.c b/drivers/gpu/nvgpu/gp10b/fifo_gp10b.c index d458d00b..77ea1b47 100644 --- a/drivers/gpu/nvgpu/gp10b/fifo_gp10b.c +++ b/drivers/gpu/nvgpu/gp10b/fifo_gp10b.c | |||
@@ -230,6 +230,51 @@ static void gp10b_device_info_data_parse(struct gk20a *g, u32 table_entry, | |||
230 | top_device_info_data_type_v(table_entry)); | 230 | top_device_info_data_type_v(table_entry)); |
231 | } | 231 | } |
232 | 232 | ||
233 | static void gp10b_fifo_init_pbdma_intr_descs(struct fifo_gk20a *f) | ||
234 | { | ||
235 | /* | ||
236 | * These are all errors which indicate something really wrong | ||
237 | * going on in the device | ||
238 | */ | ||
239 | f->intr.pbdma.device_fatal_0 = | ||
240 | pbdma_intr_0_memreq_pending_f() | | ||
241 | pbdma_intr_0_memack_timeout_pending_f() | | ||
242 | pbdma_intr_0_memack_extra_pending_f() | | ||
243 | pbdma_intr_0_memdat_timeout_pending_f() | | ||
244 | pbdma_intr_0_memdat_extra_pending_f() | | ||
245 | pbdma_intr_0_memflush_pending_f() | | ||
246 | pbdma_intr_0_memop_pending_f() | | ||
247 | pbdma_intr_0_lbconnect_pending_f() | | ||
248 | pbdma_intr_0_lback_timeout_pending_f() | | ||
249 | pbdma_intr_0_lback_extra_pending_f() | | ||
250 | pbdma_intr_0_lbdat_timeout_pending_f() | | ||
251 | pbdma_intr_0_lbdat_extra_pending_f() | | ||
252 | pbdma_intr_0_pri_pending_f(); | ||
253 | |||
254 | /* | ||
255 | * These are data parsing, framing errors or others which can be | ||
256 | * recovered from with intervention... or just resetting the | ||
257 | * channel | ||
258 | */ | ||
259 | f->intr.pbdma.channel_fatal_0 = | ||
260 | pbdma_intr_0_gpfifo_pending_f() | | ||
261 | pbdma_intr_0_gpptr_pending_f() | | ||
262 | pbdma_intr_0_gpentry_pending_f() | | ||
263 | pbdma_intr_0_gpcrc_pending_f() | | ||
264 | pbdma_intr_0_pbptr_pending_f() | | ||
265 | pbdma_intr_0_pbentry_pending_f() | | ||
266 | pbdma_intr_0_pbcrc_pending_f() | | ||
267 | pbdma_intr_0_method_pending_f() | | ||
268 | pbdma_intr_0_methodcrc_pending_f() | | ||
269 | pbdma_intr_0_pbseg_pending_f() | | ||
270 | pbdma_intr_0_syncpoint_illegal_pending_f() | | ||
271 | pbdma_intr_0_signature_pending_f(); | ||
272 | |||
273 | /* Can be used for sw-methods, or represents a recoverable timeout. */ | ||
274 | f->intr.pbdma.restartable_0 = | ||
275 | pbdma_intr_0_device_pending_f(); | ||
276 | } | ||
277 | |||
233 | void gp10b_init_fifo(struct gpu_ops *gops) | 278 | void gp10b_init_fifo(struct gpu_ops *gops) |
234 | { | 279 | { |
235 | gm20b_init_fifo(gops); | 280 | gm20b_init_fifo(gops); |
@@ -240,4 +285,5 @@ void gp10b_init_fifo(struct gpu_ops *gops) | |||
240 | gops->fifo.device_info_data_parse = gp10b_device_info_data_parse; | 285 | gops->fifo.device_info_data_parse = gp10b_device_info_data_parse; |
241 | gops->fifo.eng_runlist_base_size = fifo_eng_runlist_base__size_1_v; | 286 | gops->fifo.eng_runlist_base_size = fifo_eng_runlist_base__size_1_v; |
242 | gops->fifo.device_info_fault_id = top_device_info_data_fault_id_enum_v; | 287 | gops->fifo.device_info_fault_id = top_device_info_data_fault_id_enum_v; |
288 | gops->fifo.init_pbdma_intr_descs = gp10b_fifo_init_pbdma_intr_descs; | ||
243 | } | 289 | } |