drm/amd/powerplay: don't give up if DPM is already running
authorGrazvydas Ignotas <notasas@gmail.com>
Thu, 20 Oct 2016 07:51:25 +0000 (15:51 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 21 Oct 2016 15:19:18 +0000 (11:19 -0400)
Currently the driver crashes if smu7_enable_dpm_tasks() returns early,
which it does if DPM is already active. It seems to be better just to
continue anyway, at least I haven't noticed any ill effects. It's also
unclear at what state the hardware was left by the previous driver, so
IMO it's better to always fully initialize.

Way to reproduce:
with GPU passthrough.
forced power off the VM or forced reset the VM
without shutting down the Os.

Signed-off-by: Grazvydas Ignotas <notasas@gmail.com>
Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net>
Reviewed-by: Rex Zhu <Rex.Zhu@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c

index 13333d01d2ef8f7651ced852bfd026f86283566e..75854021f40337aa43c8f302dc880832b16167b3 100644 (file)
@@ -1168,8 +1168,8 @@ int smu7_enable_dpm_tasks(struct pp_hwmgr *hwmgr)
 
        tmp_result = (!smum_is_dpm_running(hwmgr)) ? 0 : -1;
        PP_ASSERT_WITH_CODE(tmp_result == 0,
-                       "DPM is already running right now, no need to enable DPM!",
-                       return 0);
+                       "DPM is already running",
+                       );
 
        if (smu7_voltage_control(hwmgr)) {
                tmp_result = smu7_enable_voltage_control(hwmgr);