diff options
Diffstat (limited to 'drivers/gpu/nvgpu/common/pmu/pmu_fw.c')
-rw-r--r-- | drivers/gpu/nvgpu/common/pmu/pmu_fw.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/common/pmu/pmu_fw.c b/drivers/gpu/nvgpu/common/pmu/pmu_fw.c index 20eadb50..654fde21 100644 --- a/drivers/gpu/nvgpu/common/pmu/pmu_fw.c +++ b/drivers/gpu/nvgpu/common/pmu/pmu_fw.c | |||
@@ -29,6 +29,9 @@ | |||
29 | 29 | ||
30 | #include "gk20a/gk20a.h" | 30 | #include "gk20a/gk20a.h" |
31 | 31 | ||
32 | #include "boardobj/boardobj.h" | ||
33 | #include "boardobj/boardobjgrp.h" | ||
34 | |||
32 | /* PMU NS UCODE IMG */ | 35 | /* PMU NS UCODE IMG */ |
33 | #define NVGPU_PMU_NS_UCODE_IMAGE "gpmu_ucode.bin" | 36 | #define NVGPU_PMU_NS_UCODE_IMAGE "gpmu_ucode.bin" |
34 | 37 | ||
@@ -2228,12 +2231,24 @@ static void nvgpu_remove_pmu_support(struct nvgpu_pmu *pmu) | |||
2228 | struct gk20a *g = gk20a_from_pmu(pmu); | 2231 | struct gk20a *g = gk20a_from_pmu(pmu); |
2229 | struct mm_gk20a *mm = &g->mm; | 2232 | struct mm_gk20a *mm = &g->mm; |
2230 | struct vm_gk20a *vm = mm->pmu.vm; | 2233 | struct vm_gk20a *vm = mm->pmu.vm; |
2234 | struct boardobj *pboardobj, *pboardobj_tmp; | ||
2235 | struct boardobjgrp *pboardobjgrp, *pboardobjgrp_tmp; | ||
2231 | 2236 | ||
2232 | nvgpu_log_fn(g, " "); | 2237 | nvgpu_log_fn(g, " "); |
2233 | 2238 | ||
2234 | if (nvgpu_alloc_initialized(&pmu->dmem)) | 2239 | if (nvgpu_alloc_initialized(&pmu->dmem)) |
2235 | nvgpu_alloc_destroy(&pmu->dmem); | 2240 | nvgpu_alloc_destroy(&pmu->dmem); |
2236 | 2241 | ||
2242 | nvgpu_list_for_each_entry_safe(pboardobjgrp, pboardobjgrp_tmp, | ||
2243 | &g->boardobjgrp_head, boardobjgrp, node) { | ||
2244 | pboardobjgrp->destruct(pboardobjgrp); | ||
2245 | } | ||
2246 | |||
2247 | nvgpu_list_for_each_entry_safe(pboardobj, pboardobj_tmp, | ||
2248 | &g->boardobj_head, boardobj, node) { | ||
2249 | pboardobj->destruct(pboardobj); | ||
2250 | } | ||
2251 | |||
2237 | if (pmu->fw) | 2252 | if (pmu->fw) |
2238 | nvgpu_release_firmware(g, pmu->fw); | 2253 | nvgpu_release_firmware(g, pmu->fw); |
2239 | 2254 | ||