Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

+16 -23
+2 -1
drivers/gpu/drm/radeon/cik.c
··· 7902 7902 /* init golden registers */ 7903 7903 cik_init_golden_registers(rdev); 7904 7904 7905 - radeon_pm_resume(rdev); 7905 + if (rdev->pm.pm_method == PM_METHOD_DPM) 7906 + radeon_pm_resume(rdev); 7906 7907 7907 7908 rdev->accel_working = true; 7908 7909 r = cik_startup(rdev);
+2 -1
drivers/gpu/drm/radeon/evergreen.c
··· 5299 5299 /* init golden registers */ 5300 5300 evergreen_init_golden_registers(rdev); 5301 5301 5302 - radeon_pm_resume(rdev); 5302 + if (rdev->pm.pm_method == PM_METHOD_DPM) 5303 + radeon_pm_resume(rdev); 5303 5304 5304 5305 rdev->accel_working = true; 5305 5306 r = evergreen_startup(rdev);
+2 -1
drivers/gpu/drm/radeon/ni.c
··· 2105 2105 /* init golden registers */ 2106 2106 ni_init_golden_registers(rdev); 2107 2107 2108 - radeon_pm_resume(rdev); 2108 + if (rdev->pm.pm_method == PM_METHOD_DPM) 2109 + radeon_pm_resume(rdev); 2109 2110 2110 2111 rdev->accel_working = true; 2111 2112 r = cayman_startup(rdev);
-2
drivers/gpu/drm/radeon/r100.c
··· 3942 3942 /* Initialize surface registers */ 3943 3943 radeon_surface_init(rdev); 3944 3944 3945 - radeon_pm_resume(rdev); 3946 - 3947 3945 rdev->accel_working = true; 3948 3946 r = r100_startup(rdev); 3949 3947 if (r) {
-2
drivers/gpu/drm/radeon/r300.c
··· 1430 1430 /* Initialize surface registers */ 1431 1431 radeon_surface_init(rdev); 1432 1432 1433 - radeon_pm_resume(rdev); 1434 - 1435 1433 rdev->accel_working = true; 1436 1434 r = r300_startup(rdev); 1437 1435 if (r) {
-2
drivers/gpu/drm/radeon/r420.c
··· 325 325 /* Initialize surface registers */ 326 326 radeon_surface_init(rdev); 327 327 328 - radeon_pm_resume(rdev); 329 - 330 328 rdev->accel_working = true; 331 329 r = r420_startup(rdev); 332 330 if (r) {
-2
drivers/gpu/drm/radeon/r520.c
··· 240 240 /* Initialize surface registers */ 241 241 radeon_surface_init(rdev); 242 242 243 - radeon_pm_resume(rdev); 244 - 245 243 rdev->accel_working = true; 246 244 r = r520_startup(rdev); 247 245 if (r) {
+2 -1
drivers/gpu/drm/radeon/r600.c
··· 2968 2968 /* post card */ 2969 2969 atom_asic_init(rdev->mode_info.atom_context); 2970 2970 2971 - radeon_pm_resume(rdev); 2971 + if (rdev->pm.pm_method == PM_METHOD_DPM) 2972 + radeon_pm_resume(rdev); 2972 2973 2973 2974 rdev->accel_working = true; 2974 2975 r = r600_startup(rdev);
+4 -1
drivers/gpu/drm/radeon/radeon_device.c
··· 1521 1521 if (r) 1522 1522 DRM_ERROR("ib ring test failed (%d).\n", r); 1523 1523 1524 - if (rdev->pm.dpm_enabled) { 1524 + if ((rdev->pm.pm_method == PM_METHOD_DPM) && rdev->pm.dpm_enabled) { 1525 1525 /* do dpm late init */ 1526 1526 r = radeon_pm_late_init(rdev); 1527 1527 if (r) { 1528 1528 rdev->pm.dpm_enabled = false; 1529 1529 DRM_ERROR("radeon_pm_late_init failed, disabling dpm\n"); 1530 1530 } 1531 + } else { 1532 + /* resume old pm late */ 1533 + radeon_pm_resume(rdev); 1531 1534 } 1532 1535 1533 1536 radeon_restore_bios_scratch_regs(rdev);
-2
drivers/gpu/drm/radeon/rs400.c
··· 474 474 /* Initialize surface registers */ 475 475 radeon_surface_init(rdev); 476 476 477 - radeon_pm_resume(rdev); 478 - 479 477 rdev->accel_working = true; 480 478 r = rs400_startup(rdev); 481 479 if (r) {
-2
drivers/gpu/drm/radeon/rs600.c
··· 1048 1048 /* Initialize surface registers */ 1049 1049 radeon_surface_init(rdev); 1050 1050 1051 - radeon_pm_resume(rdev); 1052 - 1053 1051 rdev->accel_working = true; 1054 1052 r = rs600_startup(rdev); 1055 1053 if (r) {
-2
drivers/gpu/drm/radeon/rs690.c
··· 756 756 /* Initialize surface registers */ 757 757 radeon_surface_init(rdev); 758 758 759 - radeon_pm_resume(rdev); 760 - 761 759 rdev->accel_working = true; 762 760 r = rs690_startup(rdev); 763 761 if (r) {
-2
drivers/gpu/drm/radeon/rv515.c
··· 586 586 /* Initialize surface registers */ 587 587 radeon_surface_init(rdev); 588 588 589 - radeon_pm_resume(rdev); 590 - 591 589 rdev->accel_working = true; 592 590 r = rv515_startup(rdev); 593 591 if (r) {
+2 -1
drivers/gpu/drm/radeon/rv770.c
··· 1811 1811 /* init golden registers */ 1812 1812 rv770_init_golden_registers(rdev); 1813 1813 1814 - radeon_pm_resume(rdev); 1814 + if (rdev->pm.pm_method == PM_METHOD_DPM) 1815 + radeon_pm_resume(rdev); 1815 1816 1816 1817 rdev->accel_working = true; 1817 1818 r = rv770_startup(rdev);
+2 -1
drivers/gpu/drm/radeon/si.c
··· 6618 6618 /* init golden registers */ 6619 6619 si_init_golden_registers(rdev); 6620 6620 6621 - radeon_pm_resume(rdev); 6621 + if (rdev->pm.pm_method == PM_METHOD_DPM) 6622 + radeon_pm_resume(rdev); 6622 6623 6623 6624 rdev->accel_working = true; 6624 6625 r = si_startup(rdev);