drm/amd/powerplay: add callbacks to move smc firmware request into sw_init phase

Signed-off-by: Huang Rui <ray.huang@amd.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
Huang Rui 2016-12-14 16:26:54 +08:00 committed by Alex Deucher
parent a5b2b6ebf3
commit 167112bff8
2 changed files with 14 additions and 0 deletions

View File

@ -76,9 +76,18 @@ static int pp_sw_init(void *handle)
if (ret)
goto err1;
if (hwmgr->hwmgr_func->request_firmware) {
ret = hwmgr->hwmgr_func->request_firmware(hwmgr);
if (ret)
goto err2;
}
pr_info("amdgpu: powerplay initialized\n");
return 0;
err2:
if (hwmgr->hwmgr_func->backend_fini)
hwmgr->hwmgr_func->backend_fini(hwmgr);
err1:
if (hwmgr->pptable_func->pptable_fini)
hwmgr->pptable_func->pptable_fini(hwmgr);
@ -101,6 +110,9 @@ static int pp_sw_fini(void *handle)
PP_CHECK_HW(hwmgr);
if (hwmgr->hwmgr_func->release_firmware)
ret = hwmgr->hwmgr_func->release_firmware(hwmgr);
if (hwmgr->hwmgr_func->backend_fini != NULL)
ret = hwmgr->hwmgr_func->backend_fini(hwmgr);

View File

@ -358,6 +358,8 @@ struct pp_hwmgr_func {
int (*get_mclk_od)(struct pp_hwmgr *hwmgr);
int (*set_mclk_od)(struct pp_hwmgr *hwmgr, uint32_t value);
int (*read_sensor)(struct pp_hwmgr *hwmgr, int idx, int32_t *value);
int (*request_firmware)(struct pp_hwmgr *hwmgr);
int (*release_firmware)(struct pp_hwmgr *hwmgr);
};
struct pp_table_func {