summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a
diff options
context:
space:
mode:
authorRichard Zhao <rizhao@nvidia.com>2018-05-21 13:37:52 -0400
committerTejal Kudav <tkudav@nvidia.com>2018-06-14 09:44:07 -0400
commitc8c686f8554352fc209fda592ec3b490811532aa (patch)
treeaf0b2905f7398532a96e9873fe87352021b4deff /drivers/gpu/nvgpu/gk20a
parent2ca8332eb7fd3a701dec04ecb6abf3587ca834e5 (diff)
gpu: nvgpu: add fbpa ecc support
- add fbpa ecc counters - add HALs for init_fbpa and fbpa_isr Jira NVGPUT-69 Jira NVGPUT-68 Change-Id: I3c8fbb664a9b08ece23d860d84881d4860706f77 Signed-off-by: Richard Zhao <rizhao@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1726307 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a')
-rw-r--r--drivers/gpu/nvgpu/gk20a/ecc_gk20a.h5
-rw-r--r--drivers/gpu/nvgpu/gk20a/gk20a.c8
-rw-r--r--drivers/gpu/nvgpu/gk20a/gk20a.h2
3 files changed, 15 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/ecc_gk20a.h b/drivers/gpu/nvgpu/gk20a/ecc_gk20a.h
index fba8ba7d..af10f828 100644
--- a/drivers/gpu/nvgpu/gk20a/ecc_gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/ecc_gk20a.h
@@ -91,6 +91,11 @@ struct ecc_gk20a {
91 struct gk20a_ecc_stat pmu_uncorrected_err_count; 91 struct gk20a_ecc_stat pmu_uncorrected_err_count;
92 } pmu; 92 } pmu;
93 93
94 struct {
95 struct gk20a_ecc_stat fbpa_sec_err_count;
96 struct gk20a_ecc_stat fbpa_ded_err_count;
97 } fbpa;
98
94}; 99};
95 100
96#endif /*__ECC_GK20A_H__*/ 101#endif /*__ECC_GK20A_H__*/
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.c b/drivers/gpu/nvgpu/gk20a/gk20a.c
index b502ef02..9c030f71 100644
--- a/drivers/gpu/nvgpu/gk20a/gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/gk20a.c
@@ -198,6 +198,14 @@ int gk20a_finalize_poweron(struct gk20a *g)
198 } 198 }
199 } 199 }
200 200
201 if (g->ops.fb.init_fbpa) {
202 err = g->ops.fb.init_fbpa(g);
203 if (err) {
204 nvgpu_err(g, "failed to init fbpa");
205 goto done;
206 }
207 }
208
201 if (g->ops.fb.mem_unlock) { 209 if (g->ops.fb.mem_unlock) {
202 err = g->ops.fb.mem_unlock(g); 210 err = g->ops.fb.mem_unlock(g);
203 if (err) { 211 if (err) {
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h
index 5440238f..74bb64b3 100644
--- a/drivers/gpu/nvgpu/gk20a/gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/gk20a.h
@@ -520,6 +520,8 @@ struct gpu_ops {
520 unsigned int intr_type); 520 unsigned int intr_type);
521 void (*disable_hub_intr)(struct gk20a *g, unsigned int index, 521 void (*disable_hub_intr)(struct gk20a *g, unsigned int index,
522 unsigned int intr_type); 522 unsigned int intr_type);
523 int (*init_fbpa)(struct gk20a *g);
524 void (*fbpa_isr)(struct gk20a *g);
523 } fb; 525 } fb;
524 struct { 526 struct {
525 void (*slcg_bus_load_gating_prod)(struct gk20a *g, bool prod); 527 void (*slcg_bus_load_gating_prod)(struct gk20a *g, bool prod);