summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorDeepak Nibade <dnibade@nvidia.com>2018-05-08 08:21:50 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2018-05-24 07:38:10 -0400
commit2a0f678257eed156293569a1c00b29fe7d4e956d (patch)
tree1c7cd95ce57f4a3330057381d1722e278e2de82b /drivers
parent0f81c5616b04dea9772f490636d0a1959a42774e (diff)
gpu: nvgpu: export hub intr handling APIs
Export below APIs in fb_gv11b.h gv11b_fb_handle_dropped_mmu_fault() gv11b_fb_handle_other_fault_notify() gv11b_fb_handle_mmu_nonreplay_replay_fault() gv11b_fb_handle_nonreplay_fault_overflow() gv11b_fb_handle_replay_fault_overflow() gv11b_handle_l2tlb_ecc_isr() gv11b_handle_hubtlb_ecc_isr() gv11b_handle_fillunit_ecc_isr() Jira NVGPUT-44 Change-Id: Ib50e3f3c2f698d486ffe718ebf4a651ccfe8cd93 Signed-off-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1725976 Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com> Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/nvgpu/gv11b/fb_gv11b.c16
-rw-r--r--drivers/gpu/nvgpu/gv11b/fb_gv11b.h12
2 files changed, 20 insertions, 8 deletions
diff --git a/drivers/gpu/nvgpu/gv11b/fb_gv11b.c b/drivers/gpu/nvgpu/gv11b/fb_gv11b.c
index 8bbde5c3..47369523 100644
--- a/drivers/gpu/nvgpu/gv11b/fb_gv11b.c
+++ b/drivers/gpu/nvgpu/gv11b/fb_gv11b.c
@@ -501,7 +501,7 @@ void gv11b_fb_disable_hub_intr(struct gk20a *g,
501 gv11b_fb_intr_en_clr(g, index, mask); 501 gv11b_fb_intr_en_clr(g, index, mask);
502} 502}
503 503
504static void gv11b_handle_l2tlb_ecc_isr(struct gk20a *g, u32 ecc_status) 504void gv11b_handle_l2tlb_ecc_isr(struct gk20a *g, u32 ecc_status)
505{ 505{
506 u32 ecc_addr, corrected_cnt, uncorrected_cnt; 506 u32 ecc_addr, corrected_cnt, uncorrected_cnt;
507 u32 corrected_delta, uncorrected_delta; 507 u32 corrected_delta, uncorrected_delta;
@@ -559,7 +559,7 @@ static void gv11b_handle_l2tlb_ecc_isr(struct gk20a *g, u32 ecc_status)
559 g->ecc.fb.mmu_l2tlb_uncorrected_err_count.counters[0]); 559 g->ecc.fb.mmu_l2tlb_uncorrected_err_count.counters[0]);
560} 560}
561 561
562static void gv11b_handle_hubtlb_ecc_isr(struct gk20a *g, u32 ecc_status) 562void gv11b_handle_hubtlb_ecc_isr(struct gk20a *g, u32 ecc_status)
563{ 563{
564 u32 ecc_addr, corrected_cnt, uncorrected_cnt; 564 u32 ecc_addr, corrected_cnt, uncorrected_cnt;
565 u32 corrected_delta, uncorrected_delta; 565 u32 corrected_delta, uncorrected_delta;
@@ -617,7 +617,7 @@ static void gv11b_handle_hubtlb_ecc_isr(struct gk20a *g, u32 ecc_status)
617 g->ecc.fb.mmu_hubtlb_uncorrected_err_count.counters[0]); 617 g->ecc.fb.mmu_hubtlb_uncorrected_err_count.counters[0]);
618} 618}
619 619
620static void gv11b_handle_fillunit_ecc_isr(struct gk20a *g, u32 ecc_status) 620void gv11b_handle_fillunit_ecc_isr(struct gk20a *g, u32 ecc_status)
621{ 621{
622 u32 ecc_addr, corrected_cnt, uncorrected_cnt; 622 u32 ecc_addr, corrected_cnt, uncorrected_cnt;
623 u32 corrected_delta, uncorrected_delta; 623 u32 corrected_delta, uncorrected_delta;
@@ -992,7 +992,7 @@ static int gv11b_fb_replay_or_cancel_faults(struct gk20a *g,
992 return err; 992 return err;
993} 993}
994 994
995static void gv11b_fb_handle_mmu_nonreplay_replay_fault(struct gk20a *g, 995void gv11b_fb_handle_mmu_nonreplay_replay_fault(struct gk20a *g,
996 u32 fault_status, unsigned int index) 996 u32 fault_status, unsigned int index)
997{ 997{
998 u32 get_indx, offset, rd32_val, entries; 998 u32 get_indx, offset, rd32_val, entries;
@@ -1140,7 +1140,7 @@ static void gv11b_mm_copy_from_fault_snap_reg(struct gk20a *g,
1140 1140
1141} 1141}
1142 1142
1143static void gv11b_fb_handle_replay_fault_overflow(struct gk20a *g, 1143void gv11b_fb_handle_replay_fault_overflow(struct gk20a *g,
1144 u32 fault_status) 1144 u32 fault_status)
1145{ 1145{
1146 u32 reg_val; 1146 u32 reg_val;
@@ -1175,7 +1175,7 @@ static void gv11b_fb_handle_replay_fault_overflow(struct gk20a *g,
1175 gk20a_writel(g, fb_mmu_fault_buffer_get_r(index), reg_val); 1175 gk20a_writel(g, fb_mmu_fault_buffer_get_r(index), reg_val);
1176} 1176}
1177 1177
1178static void gv11b_fb_handle_nonreplay_fault_overflow(struct gk20a *g, 1178void gv11b_fb_handle_nonreplay_fault_overflow(struct gk20a *g,
1179 u32 fault_status) 1179 u32 fault_status)
1180{ 1180{
1181 u32 reg_val; 1181 u32 reg_val;
@@ -1239,7 +1239,7 @@ static void gv11b_fb_handle_bar2_fault(struct gk20a *g,
1239 HUB_INTR_TYPE_NONREPLAY | HUB_INTR_TYPE_REPLAY); 1239 HUB_INTR_TYPE_NONREPLAY | HUB_INTR_TYPE_REPLAY);
1240} 1240}
1241 1241
1242static void gv11b_fb_handle_other_fault_notify(struct gk20a *g, 1242void gv11b_fb_handle_other_fault_notify(struct gk20a *g,
1243 u32 fault_status) 1243 u32 fault_status)
1244{ 1244{
1245 struct mmu_fault_info *mmfault; 1245 struct mmu_fault_info *mmfault;
@@ -1269,7 +1269,7 @@ static void gv11b_fb_handle_other_fault_notify(struct gk20a *g,
1269 } 1269 }
1270} 1270}
1271 1271
1272static void gv11b_fb_handle_dropped_mmu_fault(struct gk20a *g, u32 fault_status) 1272void gv11b_fb_handle_dropped_mmu_fault(struct gk20a *g, u32 fault_status)
1273{ 1273{
1274 u32 dropped_faults = 0; 1274 u32 dropped_faults = 0;
1275 1275
diff --git a/drivers/gpu/nvgpu/gv11b/fb_gv11b.h b/drivers/gpu/nvgpu/gv11b/fb_gv11b.h
index 0b8f9fbf..a28d1ff7 100644
--- a/drivers/gpu/nvgpu/gv11b/fb_gv11b.h
+++ b/drivers/gpu/nvgpu/gv11b/fb_gv11b.h
@@ -68,5 +68,17 @@ void gv11b_fb_enable_hub_intr(struct gk20a *g,
68void gv11b_fb_disable_hub_intr(struct gk20a *g, 68void gv11b_fb_disable_hub_intr(struct gk20a *g,
69 unsigned int index, unsigned int intr_type); 69 unsigned int index, unsigned int intr_type);
70bool gv11b_fb_mmu_fault_pending(struct gk20a *g); 70bool gv11b_fb_mmu_fault_pending(struct gk20a *g);
71void gv11b_fb_handle_dropped_mmu_fault(struct gk20a *g, u32 fault_status);
72void gv11b_fb_handle_other_fault_notify(struct gk20a *g,
73 u32 fault_status);
74void gv11b_fb_handle_mmu_nonreplay_replay_fault(struct gk20a *g,
75 u32 fault_status, unsigned int index);
76void gv11b_fb_handle_nonreplay_fault_overflow(struct gk20a *g,
77 u32 fault_status);
78void gv11b_fb_handle_replay_fault_overflow(struct gk20a *g,
79 u32 fault_status);
80void gv11b_handle_l2tlb_ecc_isr(struct gk20a *g, u32 ecc_status);
81void gv11b_handle_hubtlb_ecc_isr(struct gk20a *g, u32 ecc_status);
82void gv11b_handle_fillunit_ecc_isr(struct gk20a *g, u32 ecc_status);
71 83
72#endif 84#endif