RE: [PATCH 1/3] drm/amd: Fix detection of _PR3 on the PCIe root port

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



[Public]

> -----Original Message-----
> From: Limonciello, Mario <Mario.Limonciello@xxxxxxx>
> Sent: Tuesday, September 26, 2023 7:00 PM
> To: amd-gfx@xxxxxxxxxxxxxxxxxxxxx; Sebastian Reichel <sre@xxxxxxxxxx>;
> Deucher, Alexander <Alexander.Deucher@xxxxxxx>
> Cc: linux-pm@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; Ma, Jun
> <Jun.Ma2@xxxxxxx>; Limonciello, Mario <Mario.Limonciello@xxxxxxx>
> Subject: [PATCH 1/3] drm/amd: Fix detection of _PR3 on the PCIe root port
>
> On some systems with Navi3x dGPU will attempt to use BACO for runtime PM
> but fails to resume properly.  This is because on these systems the root port
> goes into D3cold which is incompatible with BACO.
>
> This happens because in this case dGPU is connected to a bridge between root
> port which causes BOCO detection logic to fail.  Fix the intent of the logic by
> looking at root port, not the immediate upstream bridge for _PR3.
>
> Cc: stable@xxxxxxxxxxxxxxx
> Suggested-by: Jun Ma <Jun.Ma2@xxxxxxx>
> Tested-by: David Perry <David.Perry@xxxxxxx>
> Fixes: b10c1c5b3a4e ("drm/amdgpu: add check for ACPI power resources")
> Signed-off-by: Mario Limonciello <mario.limonciello@xxxxxxx>

Series is:
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>

> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> index e4627d92e1d0..bad2b5577e96 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> @@ -2238,7 +2238,7 @@ static int amdgpu_device_ip_early_init(struct
> amdgpu_device *adev)
>               adev->flags |= AMD_IS_PX;
>
>       if (!(adev->flags & AMD_IS_APU)) {
> -             parent = pci_upstream_bridge(adev->pdev);
> +             parent = pcie_find_root_port(adev->pdev);
>               adev->has_pr3 = parent ? pci_pr3_present(parent) : false;
>       }
>
> --
> 2.34.1





[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux