diff options
Diffstat (limited to 'drivers/gpu/drm/amd/powerplay/amd_powerplay.c')
-rw-r--r-- | drivers/gpu/drm/amd/powerplay/amd_powerplay.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/powerplay/amd_powerplay.c b/drivers/gpu/drm/amd/powerplay/amd_powerplay.c index c81cf1412728..cc7219084fad 100644 --- a/drivers/gpu/drm/amd/powerplay/amd_powerplay.c +++ b/drivers/gpu/drm/amd/powerplay/amd_powerplay.c | |||
@@ -76,9 +76,18 @@ static int pp_sw_init(void *handle) | |||
76 | if (ret) | 76 | if (ret) |
77 | goto err1; | 77 | goto err1; |
78 | 78 | ||
79 | if (hwmgr->hwmgr_func->request_firmware) { | ||
80 | ret = hwmgr->hwmgr_func->request_firmware(hwmgr); | ||
81 | if (ret) | ||
82 | goto err2; | ||
83 | } | ||
84 | |||
79 | pr_info("amdgpu: powerplay initialized\n"); | 85 | pr_info("amdgpu: powerplay initialized\n"); |
80 | 86 | ||
81 | return 0; | 87 | return 0; |
88 | err2: | ||
89 | if (hwmgr->hwmgr_func->backend_fini) | ||
90 | hwmgr->hwmgr_func->backend_fini(hwmgr); | ||
82 | err1: | 91 | err1: |
83 | if (hwmgr->pptable_func->pptable_fini) | 92 | if (hwmgr->pptable_func->pptable_fini) |
84 | hwmgr->pptable_func->pptable_fini(hwmgr); | 93 | hwmgr->pptable_func->pptable_fini(hwmgr); |
@@ -101,6 +110,9 @@ static int pp_sw_fini(void *handle) | |||
101 | 110 | ||
102 | PP_CHECK_HW(hwmgr); | 111 | PP_CHECK_HW(hwmgr); |
103 | 112 | ||
113 | if (hwmgr->hwmgr_func->release_firmware) | ||
114 | ret = hwmgr->hwmgr_func->release_firmware(hwmgr); | ||
115 | |||
104 | if (hwmgr->hwmgr_func->backend_fini != NULL) | 116 | if (hwmgr->hwmgr_func->backend_fini != NULL) |
105 | ret = hwmgr->hwmgr_func->backend_fini(hwmgr); | 117 | ret = hwmgr->hwmgr_func->backend_fini(hwmgr); |
106 | 118 | ||