diff options
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/flcn_gk20a.c')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/flcn_gk20a.c | 21 |
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 | ||
110 | static 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 | |||
110 | static void gk20a_falcon_ops(struct nvgpu_falcon *flcn) | 129 | static 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 | ||
121 | static void gk20a_falcon_hal_sw_init(struct nvgpu_falcon *flcn) | 142 | static void gk20a_falcon_hal_sw_init(struct nvgpu_falcon *flcn) |