diff options
author | Richard Zhao <rizhao@nvidia.com> | 2018-03-19 20:03:46 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2018-03-29 21:54:29 -0400 |
commit | 8d8ff9d34e9707e9306fcf40b5ffcfa0d826765a (patch) | |
tree | 45e22d523fbfd8503de2b6684c97c538b417bfb4 /drivers/gpu/nvgpu/vgpu/fifo_vgpu.c | |
parent | d436ad67b60eef68c7d5551b539490f8efb24387 (diff) |
gpu: nvgpu: add gops.fifo.set_error_notifier
RM Server overrides it for handling stall interrupts.
Jira VQRM-3058
Change-Id: I8b14f073e952d19c808cb693958626b8d8aee8ca
Signed-off-by: Richard Zhao <rizhao@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1679709
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/vgpu/fifo_vgpu.c')
-rw-r--r-- | drivers/gpu/nvgpu/vgpu/fifo_vgpu.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/gpu/nvgpu/vgpu/fifo_vgpu.c b/drivers/gpu/nvgpu/vgpu/fifo_vgpu.c index 6406c0da..c8a8ce49 100644 --- a/drivers/gpu/nvgpu/vgpu/fifo_vgpu.c +++ b/drivers/gpu/nvgpu/vgpu/fifo_vgpu.c | |||
@@ -643,7 +643,8 @@ int vgpu_fifo_force_reset_ch(struct channel_gk20a *ch, | |||
643 | nvgpu_list_for_each_entry(ch_tsg, &tsg->ch_list, | 643 | nvgpu_list_for_each_entry(ch_tsg, &tsg->ch_list, |
644 | channel_gk20a, ch_entry) { | 644 | channel_gk20a, ch_entry) { |
645 | if (gk20a_channel_get(ch_tsg)) { | 645 | if (gk20a_channel_get(ch_tsg)) { |
646 | nvgpu_set_error_notifier(ch_tsg, err_code); | 646 | g->ops.fifo.set_error_notifier(ch_tsg, |
647 | err_code); | ||
647 | ch_tsg->has_timedout = true; | 648 | ch_tsg->has_timedout = true; |
648 | gk20a_channel_put(ch_tsg); | 649 | gk20a_channel_put(ch_tsg); |
649 | } | 650 | } |
@@ -651,7 +652,7 @@ int vgpu_fifo_force_reset_ch(struct channel_gk20a *ch, | |||
651 | 652 | ||
652 | nvgpu_rwsem_up_read(&tsg->ch_list_lock); | 653 | nvgpu_rwsem_up_read(&tsg->ch_list_lock); |
653 | } else { | 654 | } else { |
654 | nvgpu_set_error_notifier(ch, err_code); | 655 | g->ops.fifo.set_error_notifier(ch, err_code); |
655 | ch->has_timedout = true; | 656 | ch->has_timedout = true; |
656 | } | 657 | } |
657 | 658 | ||
@@ -726,10 +727,11 @@ int vgpu_fifo_isr(struct gk20a *g, struct tegra_vgpu_fifo_intr_info *info) | |||
726 | 727 | ||
727 | switch (info->type) { | 728 | switch (info->type) { |
728 | case TEGRA_VGPU_FIFO_INTR_PBDMA: | 729 | case TEGRA_VGPU_FIFO_INTR_PBDMA: |
729 | nvgpu_set_error_notifier(ch, NVGPU_ERR_NOTIFIER_PBDMA_ERROR); | 730 | g->ops.fifo.set_error_notifier(ch, |
731 | NVGPU_ERR_NOTIFIER_PBDMA_ERROR); | ||
730 | break; | 732 | break; |
731 | case TEGRA_VGPU_FIFO_INTR_CTXSW_TIMEOUT: | 733 | case TEGRA_VGPU_FIFO_INTR_CTXSW_TIMEOUT: |
732 | nvgpu_set_error_notifier(ch, | 734 | g->ops.fifo.set_error_notifier(ch, |
733 | NVGPU_ERR_NOTIFIER_FIFO_ERROR_IDLE_TIMEOUT); | 735 | NVGPU_ERR_NOTIFIER_FIFO_ERROR_IDLE_TIMEOUT); |
734 | break; | 736 | break; |
735 | case TEGRA_VGPU_FIFO_INTR_MMU_FAULT: | 737 | case TEGRA_VGPU_FIFO_INTR_MMU_FAULT: |