summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/flcn_gk20a.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/flcn_gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/flcn_gk20a.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/flcn_gk20a.c b/drivers/gpu/nvgpu/gk20a/flcn_gk20a.c
index 9568b979..0b140802 100644
--- a/drivers/gpu/nvgpu/gk20a/flcn_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/flcn_gk20a.c
@@ -107,6 +107,25 @@ static bool gk20a_is_falcon_scrubbing_done(struct nvgpu_falcon *flcn)
107 return status; 107 return status;
108} 108}
109 109
110static void gk20a_falcon_engine_dependency_ops(struct nvgpu_falcon *flcn)
111{
112 struct nvgpu_falcon_engine_dependency_ops *flcn_eng_dep_ops =
113 &flcn->flcn_engine_dep_ops;
114
115 switch (flcn->flcn_id) {
116 case FALCON_ID_PMU:
117 flcn_eng_dep_ops->reset_eng = gk20a_pmu_reset;
118 break;
119 default:
120 /* NULL assignment make sure
121 * CPU hard reset in gk20a_flcn_reset() gets execute
122 * if falcon doesn't need specific reset implementation
123 */
124 flcn_eng_dep_ops->reset_eng = NULL;
125 break;
126 }
127}
128
110static void gk20a_falcon_ops(struct nvgpu_falcon *flcn) 129static void gk20a_falcon_ops(struct nvgpu_falcon *flcn)
111{ 130{
112 struct nvgpu_falcon_ops *flcn_ops = &flcn->flcn_ops; 131 struct nvgpu_falcon_ops *flcn_ops = &flcn->flcn_ops;
@@ -116,6 +135,8 @@ static void gk20a_falcon_ops(struct nvgpu_falcon *flcn)
116 flcn_ops->is_falcon_cpu_halted = gk20a_is_falcon_cpu_halted; 135 flcn_ops->is_falcon_cpu_halted = gk20a_is_falcon_cpu_halted;
117 flcn_ops->is_falcon_idle = gk20a_is_falcon_idle; 136 flcn_ops->is_falcon_idle = gk20a_is_falcon_idle;
118 flcn_ops->is_falcon_scrubbing_done = gk20a_is_falcon_scrubbing_done; 137 flcn_ops->is_falcon_scrubbing_done = gk20a_is_falcon_scrubbing_done;
138
139 gk20a_falcon_engine_dependency_ops(flcn);
119} 140}
120 141
121static void gk20a_falcon_hal_sw_init(struct nvgpu_falcon *flcn) 142static void gk20a_falcon_hal_sw_init(struct nvgpu_falcon *flcn)