drm/amd/powerplay: Reload and initialize the smc firmware on powerplay resume.
Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Rex Zhu <Rex.Zhu@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
Родитель
a969e163a4
Коммит
e0b71a7eff
|
@ -203,13 +203,29 @@ static int pp_resume(void *handle)
|
|||
struct pp_instance *pp_handle;
|
||||
struct pp_eventmgr *eventmgr;
|
||||
struct pem_event_data event_data = { {0} };
|
||||
struct pp_smumgr *smumgr;
|
||||
int ret;
|
||||
|
||||
if (handle == NULL)
|
||||
return -EINVAL;
|
||||
|
||||
pp_handle = (struct pp_instance *)handle;
|
||||
smumgr = pp_handle->smu_mgr;
|
||||
|
||||
if (smumgr == NULL || smumgr->smumgr_funcs == NULL ||
|
||||
smumgr->smumgr_funcs->start_smu == NULL)
|
||||
return -EINVAL;
|
||||
|
||||
ret = smumgr->smumgr_funcs->start_smu(smumgr);
|
||||
if (ret) {
|
||||
printk(KERN_ERR "[ powerplay ] smc start failed\n");
|
||||
smumgr->smumgr_funcs->smu_fini(smumgr);
|
||||
return ret;
|
||||
}
|
||||
|
||||
eventmgr = pp_handle->eventmgr;
|
||||
pem_handle_event(eventmgr, AMD_PP_EVENT_RESUME, &event_data);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -624,6 +640,7 @@ int amd_powerplay_display_configuration_change(void *handle, const void *input)
|
|||
hwmgr = ((struct pp_instance *)handle)->hwmgr;
|
||||
|
||||
phm_store_dal_configuration_data(hwmgr, display_config);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче