diff options
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/fifo_gk20a.c | 21 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gk20a.h | 1 |
2 files changed, 14 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 | } |
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h index 8d03cc9a..817315e7 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/gk20a.h | |||
@@ -454,6 +454,7 @@ struct gpu_ops { | |||
454 | unsigned int id_type, unsigned int timeout_rc_type); | 454 | unsigned int id_type, unsigned int timeout_rc_type); |
455 | int (*preempt_ch_tsg)(struct gk20a *g, u32 id, | 455 | int (*preempt_ch_tsg)(struct gk20a *g, u32 id, |
456 | unsigned int id_type, unsigned int timeout_rc_type); | 456 | unsigned int id_type, unsigned int timeout_rc_type); |
457 | void (*init_pbdma_intr_descs)(struct fifo_gk20a *f); | ||
457 | } fifo; | 458 | } fifo; |
458 | struct pmu_v { | 459 | struct pmu_v { |
459 | /*used for change of enum zbc update cmd id from ver 0 to ver1*/ | 460 | /*used for change of enum zbc update cmd id from ver 0 to ver1*/ |