drm/radeon: resume old pm late
Moving the pm resume up in the init order to fix dpm seems to have regressed somes cases with the old pm code. Move it back to late resume. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
14eedc32a3
commit
bc6a62955f
|
@ -7902,7 +7902,8 @@ int cik_resume(struct radeon_device *rdev)
|
|||
/* init golden registers */
|
||||
cik_init_golden_registers(rdev);
|
||||
|
||||
radeon_pm_resume(rdev);
|
||||
if (rdev->pm.pm_method == PM_METHOD_DPM)
|
||||
radeon_pm_resume(rdev);
|
||||
|
||||
rdev->accel_working = true;
|
||||
r = cik_startup(rdev);
|
||||
|
|
|
@ -5299,7 +5299,8 @@ int evergreen_resume(struct radeon_device *rdev)
|
|||
/* init golden registers */
|
||||
evergreen_init_golden_registers(rdev);
|
||||
|
||||
radeon_pm_resume(rdev);
|
||||
if (rdev->pm.pm_method == PM_METHOD_DPM)
|
||||
radeon_pm_resume(rdev);
|
||||
|
||||
rdev->accel_working = true;
|
||||
r = evergreen_startup(rdev);
|
||||
|
|
|
@ -2105,7 +2105,8 @@ int cayman_resume(struct radeon_device *rdev)
|
|||
/* init golden registers */
|
||||
ni_init_golden_registers(rdev);
|
||||
|
||||
radeon_pm_resume(rdev);
|
||||
if (rdev->pm.pm_method == PM_METHOD_DPM)
|
||||
radeon_pm_resume(rdev);
|
||||
|
||||
rdev->accel_working = true;
|
||||
r = cayman_startup(rdev);
|
||||
|
|
|
@ -3942,8 +3942,6 @@ int r100_resume(struct radeon_device *rdev)
|
|||
/* Initialize surface registers */
|
||||
radeon_surface_init(rdev);
|
||||
|
||||
radeon_pm_resume(rdev);
|
||||
|
||||
rdev->accel_working = true;
|
||||
r = r100_startup(rdev);
|
||||
if (r) {
|
||||
|
|
|
@ -1430,8 +1430,6 @@ int r300_resume(struct radeon_device *rdev)
|
|||
/* Initialize surface registers */
|
||||
radeon_surface_init(rdev);
|
||||
|
||||
radeon_pm_resume(rdev);
|
||||
|
||||
rdev->accel_working = true;
|
||||
r = r300_startup(rdev);
|
||||
if (r) {
|
||||
|
|
|
@ -325,8 +325,6 @@ int r420_resume(struct radeon_device *rdev)
|
|||
/* Initialize surface registers */
|
||||
radeon_surface_init(rdev);
|
||||
|
||||
radeon_pm_resume(rdev);
|
||||
|
||||
rdev->accel_working = true;
|
||||
r = r420_startup(rdev);
|
||||
if (r) {
|
||||
|
|
|
@ -240,8 +240,6 @@ int r520_resume(struct radeon_device *rdev)
|
|||
/* Initialize surface registers */
|
||||
radeon_surface_init(rdev);
|
||||
|
||||
radeon_pm_resume(rdev);
|
||||
|
||||
rdev->accel_working = true;
|
||||
r = r520_startup(rdev);
|
||||
if (r) {
|
||||
|
|
|
@ -2968,7 +2968,8 @@ int r600_resume(struct radeon_device *rdev)
|
|||
/* post card */
|
||||
atom_asic_init(rdev->mode_info.atom_context);
|
||||
|
||||
radeon_pm_resume(rdev);
|
||||
if (rdev->pm.pm_method == PM_METHOD_DPM)
|
||||
radeon_pm_resume(rdev);
|
||||
|
||||
rdev->accel_working = true;
|
||||
r = r600_startup(rdev);
|
||||
|
|
|
@ -1521,13 +1521,16 @@ int radeon_resume_kms(struct drm_device *dev, bool resume, bool fbcon)
|
|||
if (r)
|
||||
DRM_ERROR("ib ring test failed (%d).\n", r);
|
||||
|
||||
if (rdev->pm.dpm_enabled) {
|
||||
if ((rdev->pm.pm_method == PM_METHOD_DPM) && rdev->pm.dpm_enabled) {
|
||||
/* do dpm late init */
|
||||
r = radeon_pm_late_init(rdev);
|
||||
if (r) {
|
||||
rdev->pm.dpm_enabled = false;
|
||||
DRM_ERROR("radeon_pm_late_init failed, disabling dpm\n");
|
||||
}
|
||||
} else {
|
||||
/* resume old pm late */
|
||||
radeon_pm_resume(rdev);
|
||||
}
|
||||
|
||||
radeon_restore_bios_scratch_regs(rdev);
|
||||
|
|
|
@ -474,8 +474,6 @@ int rs400_resume(struct radeon_device *rdev)
|
|||
/* Initialize surface registers */
|
||||
radeon_surface_init(rdev);
|
||||
|
||||
radeon_pm_resume(rdev);
|
||||
|
||||
rdev->accel_working = true;
|
||||
r = rs400_startup(rdev);
|
||||
if (r) {
|
||||
|
|
|
@ -1048,8 +1048,6 @@ int rs600_resume(struct radeon_device *rdev)
|
|||
/* Initialize surface registers */
|
||||
radeon_surface_init(rdev);
|
||||
|
||||
radeon_pm_resume(rdev);
|
||||
|
||||
rdev->accel_working = true;
|
||||
r = rs600_startup(rdev);
|
||||
if (r) {
|
||||
|
|
|
@ -756,8 +756,6 @@ int rs690_resume(struct radeon_device *rdev)
|
|||
/* Initialize surface registers */
|
||||
radeon_surface_init(rdev);
|
||||
|
||||
radeon_pm_resume(rdev);
|
||||
|
||||
rdev->accel_working = true;
|
||||
r = rs690_startup(rdev);
|
||||
if (r) {
|
||||
|
|
|
@ -586,8 +586,6 @@ int rv515_resume(struct radeon_device *rdev)
|
|||
/* Initialize surface registers */
|
||||
radeon_surface_init(rdev);
|
||||
|
||||
radeon_pm_resume(rdev);
|
||||
|
||||
rdev->accel_working = true;
|
||||
r = rv515_startup(rdev);
|
||||
if (r) {
|
||||
|
|
|
@ -1811,7 +1811,8 @@ int rv770_resume(struct radeon_device *rdev)
|
|||
/* init golden registers */
|
||||
rv770_init_golden_registers(rdev);
|
||||
|
||||
radeon_pm_resume(rdev);
|
||||
if (rdev->pm.pm_method == PM_METHOD_DPM)
|
||||
radeon_pm_resume(rdev);
|
||||
|
||||
rdev->accel_working = true;
|
||||
r = rv770_startup(rdev);
|
||||
|
|
|
@ -6618,7 +6618,8 @@ int si_resume(struct radeon_device *rdev)
|
|||
/* init golden registers */
|
||||
si_init_golden_registers(rdev);
|
||||
|
||||
radeon_pm_resume(rdev);
|
||||
if (rdev->pm.pm_method == PM_METHOD_DPM)
|
||||
radeon_pm_resume(rdev);
|
||||
|
||||
rdev->accel_working = true;
|
||||
r = si_startup(rdev);
|
||||
|
|
Loading…
Reference in a new issue