File tree 5 files changed +7
-13
lines changed
drivers/gpu/drm/amd/amdgpu
5 files changed +7
-13
lines changed Original file line number Diff line number Diff line change @@ -1111,8 +1111,6 @@ struct amdgpu_device {
1111
1111
bool in_s3 ;
1112
1112
bool in_s4 ;
1113
1113
bool in_s0ix ;
1114
- /* indicate amdgpu suspension status */
1115
- bool suspend_complete ;
1116
1114
1117
1115
enum pp_mp1_state mp1_state ;
1118
1116
struct amdgpu_doorbell_index doorbell_index ;
Original file line number Diff line number Diff line change @@ -2500,7 +2500,6 @@ static int amdgpu_pmops_suspend(struct device *dev)
2500
2500
struct drm_device * drm_dev = dev_get_drvdata (dev );
2501
2501
struct amdgpu_device * adev = drm_to_adev (drm_dev );
2502
2502
2503
- adev -> suspend_complete = false;
2504
2503
if (amdgpu_acpi_is_s0ix_active (adev ))
2505
2504
adev -> in_s0ix = true;
2506
2505
else if (amdgpu_acpi_is_s3_active (adev ))
@@ -2515,7 +2514,6 @@ static int amdgpu_pmops_suspend_noirq(struct device *dev)
2515
2514
struct drm_device * drm_dev = dev_get_drvdata (dev );
2516
2515
struct amdgpu_device * adev = drm_to_adev (drm_dev );
2517
2516
2518
- adev -> suspend_complete = true;
2519
2517
if (amdgpu_acpi_should_gpu_reset (adev ))
2520
2518
return amdgpu_asic_reset (adev );
2521
2519
Original file line number Diff line number Diff line change @@ -3288,8 +3288,8 @@ static int gfx_v9_0_cp_gfx_start(struct amdgpu_device *adev)
3288
3288
* confirmed that the APU gfx10/gfx11 needn't such update.
3289
3289
*/
3290
3290
if (adev -> flags & AMD_IS_APU &&
3291
- adev -> in_s3 && !adev -> suspend_complete ) {
3292
- DRM_INFO (" Will skip the CSB packet resubmit\n" );
3291
+ adev -> in_s3 && !pm_resume_via_firmware () ) {
3292
+ DRM_INFO ("Will skip the CSB packet resubmit\n" );
3293
3293
return 0 ;
3294
3294
}
3295
3295
r = amdgpu_ring_alloc (ring , gfx_v9_0_get_csb_size (adev ) + 4 + 3 );
Original file line number Diff line number Diff line change @@ -584,13 +584,10 @@ static bool soc15_need_reset_on_resume(struct amdgpu_device *adev)
584
584
* performing pm core test.
585
585
*/
586
586
if (adev -> flags & AMD_IS_APU && adev -> in_s3 &&
587
- !pm_resume_via_firmware ()) {
588
- adev -> suspend_complete = false;
587
+ !pm_resume_via_firmware ())
589
588
return true;
590
- } else {
591
- adev -> suspend_complete = true;
589
+ else
592
590
return false;
593
- }
594
591
}
595
592
596
593
static int soc15_asic_reset (struct amdgpu_device * adev )
Original file line number Diff line number Diff line change @@ -897,9 +897,10 @@ static bool soc21_need_reset_on_resume(struct amdgpu_device *adev)
897
897
/* Will reset for the following suspend abort cases.
898
898
* 1) Only reset dGPU side.
899
899
* 2) S3 suspend got aborted and TOS is active.
900
+ * As for dGPU suspend abort cases the SOL value
901
+ * will be kept as zero at this resume point.
900
902
*/
901
- if (!(adev -> flags & AMD_IS_APU ) && adev -> in_s3 &&
902
- !adev -> suspend_complete ) {
903
+ if (!(adev -> flags & AMD_IS_APU ) && adev -> in_s3 ) {
903
904
sol_reg1 = RREG32_SOC15 (MP0 , 0 , regMP0_SMN_C2PMSG_81 );
904
905
msleep (100 );
905
906
sol_reg2 = RREG32_SOC15 (MP0 , 0 , regMP0_SMN_C2PMSG_81 );
You can’t perform that action at this time.
0 commit comments