diff options
author | Mahantesh Kumbar <mkumbar@nvidia.com> | 2017-06-15 12:40:43 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2017-06-23 04:14:23 -0400 |
commit | 94cb4b635fba4c01b58f36a6d3384db729e4c9f6 (patch) | |
tree | faa4d026519d04005204c172f1b708e5c1188ab2 /drivers/gpu/nvgpu/gk20a/flcn_gk20a.c | |
parent | be04b9b1b56d6dd478fe521277c079367c03f39d (diff) |
gpu: nvgpu: use nvgpu_flcn_* interfaces
- set nvgpu_flcn_reset() to point to gk20a_pmu_reset()
- set PMU interrupt using nvgpu_flcn_enable_irq()
- replace pmu_idle with nvgpu_flcn_wait_idle()
JIRA NVGPU-57
Change-Id: I50d0310ae78ad266da3c1e662f1598d61ff7abb6
Signed-off-by: Mahantesh Kumbar <mkumbar@nvidia.com>
Reviewed-on: http://git-master/r/1469478
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
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) |