diff options
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/fifo_gk20a.c')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/fifo_gk20a.c | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c b/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c index 58020d41..b4589eaa 100644 --- a/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c | |||
@@ -838,10 +838,12 @@ int gk20a_init_fifo_reset_enable_hw(struct gk20a *g) | |||
838 | return 0; | 838 | return 0; |
839 | } | 839 | } |
840 | 840 | ||
841 | static void gk20a_init_fifo_pbdma_intr_descs(struct fifo_gk20a *f) | 841 | static void gk20a_fifo_init_pbdma_intr_descs(struct fifo_gk20a *f) |
842 | { | 842 | { |
843 | /* These are all errors which indicate something really wrong | 843 | /* |
844 | * going on in the device. */ | 844 | * These are all errors which indicate something really wrong |
845 | * going on in the device | ||
846 | */ | ||
845 | f->intr.pbdma.device_fatal_0 = | 847 | f->intr.pbdma.device_fatal_0 = |
846 | pbdma_intr_0_memreq_pending_f() | | 848 | pbdma_intr_0_memreq_pending_f() | |
847 | pbdma_intr_0_memack_timeout_pending_f() | | 849 | pbdma_intr_0_memack_timeout_pending_f() | |
@@ -858,9 +860,11 @@ static void gk20a_init_fifo_pbdma_intr_descs(struct fifo_gk20a *f) | |||
858 | pbdma_intr_0_xbarconnect_pending_f() | | 860 | pbdma_intr_0_xbarconnect_pending_f() | |
859 | pbdma_intr_0_pri_pending_f(); | 861 | pbdma_intr_0_pri_pending_f(); |
860 | 862 | ||
861 | /* These are data parsing, framing errors or others which can be | 863 | /* |
864 | * These are data parsing, framing errors or others which can be | ||
862 | * recovered from with intervention... or just resetting the | 865 | * recovered from with intervention... or just resetting the |
863 | * channel. */ | 866 | * channel |
867 | */ | ||
864 | f->intr.pbdma.channel_fatal_0 = | 868 | f->intr.pbdma.channel_fatal_0 = |
865 | pbdma_intr_0_gpfifo_pending_f() | | 869 | pbdma_intr_0_gpfifo_pending_f() | |
866 | pbdma_intr_0_gpptr_pending_f() | | 870 | pbdma_intr_0_gpptr_pending_f() | |
@@ -874,8 +878,7 @@ static void gk20a_init_fifo_pbdma_intr_descs(struct fifo_gk20a *f) | |||
874 | pbdma_intr_0_pbseg_pending_f() | | 878 | pbdma_intr_0_pbseg_pending_f() | |
875 | pbdma_intr_0_signature_pending_f(); | 879 | pbdma_intr_0_signature_pending_f(); |
876 | 880 | ||
877 | /* Can be used for sw-methods, or represents | 881 | /* Can be used for sw-methods, or represents a recoverable timeout. */ |
878 | * a recoverable timeout. */ | ||
879 | f->intr.pbdma.restartable_0 = | 882 | f->intr.pbdma.restartable_0 = |
880 | pbdma_intr_0_device_pending_f(); | 883 | pbdma_intr_0_device_pending_f(); |
881 | } | 884 | } |
@@ -898,7 +901,8 @@ static int gk20a_init_fifo_setup_sw(struct gk20a *g) | |||
898 | 901 | ||
899 | nvgpu_mutex_init(&f->intr.isr.mutex); | 902 | nvgpu_mutex_init(&f->intr.isr.mutex); |
900 | nvgpu_mutex_init(&f->gr_reset_mutex); | 903 | nvgpu_mutex_init(&f->gr_reset_mutex); |
901 | gk20a_init_fifo_pbdma_intr_descs(f); /* just filling in data/tables */ | 904 | |
905 | g->ops.fifo.init_pbdma_intr_descs(f); /* just filling in data/tables */ | ||
902 | 906 | ||
903 | f->num_channels = g->ops.fifo.get_num_fifos(g); | 907 | f->num_channels = g->ops.fifo.get_num_fifos(g); |
904 | f->runlist_entry_size = g->ops.fifo.runlist_entry_size(); | 908 | f->runlist_entry_size = g->ops.fifo.runlist_entry_size(); |
@@ -3824,4 +3828,5 @@ void gk20a_init_fifo(struct gpu_ops *gops) | |||
3824 | gops->fifo.dump_channel_status_ramfc = gk20a_dump_channel_status_ramfc; | 3828 | gops->fifo.dump_channel_status_ramfc = gk20a_dump_channel_status_ramfc; |
3825 | gops->fifo.intr_0_error_mask = gk20a_fifo_intr_0_error_mask; | 3829 | gops->fifo.intr_0_error_mask = gk20a_fifo_intr_0_error_mask; |
3826 | gops->fifo.is_preempt_pending = gk20a_fifo_is_preempt_pending; | 3830 | gops->fifo.is_preempt_pending = gk20a_fifo_is_preempt_pending; |
3831 | gops->fifo.init_pbdma_intr_descs = gk20a_fifo_init_pbdma_intr_descs; | ||
3827 | } | 3832 | } |