[PATCH] drm/amd/amdgpu: fix incorrect translation about the PCIe MLW info

Xu, Feifei Feifei.Xu at amd.com
Wed Mar 20 09:18:36 UTC 2019


Hi Jack,

Is the failure happens at link width training at X12? 

Thanks
Feifei

-----Original Message-----
From: amd-gfx <amd-gfx-bounces at lists.freedesktop.org> On Behalf Of Gui, Jack
Sent: Wednesday, March 20, 2019 4:22 PM
To: Alex Deucher <alexdeucher at gmail.com>
Cc: amd-gfx list <amd-gfx at lists.freedesktop.org>
Subject: RE: [PATCH] drm/amd/amdgpu: fix incorrect translation about the PCIe MLW info

Hi Alex,

I will rethink the patch.

Polaris10 encounted issue about the PCIe dpm feature (some platform, not all).
If we update pcie table with X16 link width, system will hang, But update with X8, our driver will modprobe successfully.
The link width got from the config register is real X16.

Could you give me some insight for this?

BR,
Jack Gui

-----Original Message-----
From: Alex Deucher <alexdeucher at gmail.com>
Sent: Tuesday, March 19, 2019 10:43 PM
To: Gui, Jack <Jack.Gui at amd.com>
Cc: amd-gfx list <amd-gfx at lists.freedesktop.org>
Subject: Re: [PATCH] drm/amd/amdgpu: fix incorrect translation about the PCIe MLW info

On Tue, Mar 19, 2019 at 12:26 AM Chengming Gui <Jack.Gui at amd.com> wrote:
>
> Max Link Width's full mask is 0x3f,
> and it's highest bit express X16.
>
> Signed-off-by: Chengming Gui <Jack.Gui at amd.com>
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 12 ++----------
>  1 file changed, 2 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> index 964a4d3..435f0d7 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> @@ -3763,15 +3763,6 @@ static void amdgpu_device_get_pcie_info(struct amdgpu_device *adev)
>                 } else {
>                         switch (platform_link_width) {
>                         case PCIE_LNK_X32:
> -                               adev->pm.pcie_mlw_mask = (CAIL_PCIE_LINK_WIDTH_SUPPORT_X32 |
> -                                                         CAIL_PCIE_LINK_WIDTH_SUPPORT_X16 |
> -                                                         CAIL_PCIE_LINK_WIDTH_SUPPORT_X12 |
> -                                                         CAIL_PCIE_LINK_WIDTH_SUPPORT_X8 |
> -                                                         CAIL_PCIE_LINK_WIDTH_SUPPORT_X4 |
> -                                                         CAIL_PCIE_LINK_WIDTH_SUPPORT_X2 |
> -                                                         CAIL_PCIE_LINK_WIDTH_SUPPORT_X1);
> -                               break;
> -                       case PCIE_LNK_X16:
>                                 adev->pm.pcie_mlw_mask = (CAIL_PCIE_LINK_WIDTH_SUPPORT_X16 |
>                                                           
> CAIL_PCIE_LINK_WIDTH_SUPPORT_X12 |
>                                                           
> CAIL_PCIE_LINK_WIDTH_SUPPORT_X8 | @@ -3779,13 +3770,14 @@ static void amdgpu_device_get_pcie_info(struct amdgpu_device *adev)
>                                                           CAIL_PCIE_LINK_WIDTH_SUPPORT_X2 |
>                                                           CAIL_PCIE_LINK_WIDTH_SUPPORT_X1);
>                                 break;
> -                       case PCIE_LNK_X12:
> +                       case PCIE_LNK_X16:

Not sure I understand this change or the one below.  If we have a x16 link, why don't you want CAIL_PCIE_LINK_WIDTH_SUPPORT_X16 set?

Alex

>                                 adev->pm.pcie_mlw_mask = (CAIL_PCIE_LINK_WIDTH_SUPPORT_X12 |
>                                                           CAIL_PCIE_LINK_WIDTH_SUPPORT_X8 |
>                                                           CAIL_PCIE_LINK_WIDTH_SUPPORT_X4 |
>                                                           CAIL_PCIE_LINK_WIDTH_SUPPORT_X2 |
>                                                           CAIL_PCIE_LINK_WIDTH_SUPPORT_X1);
>                                 break;
> +                       case PCIE_LNK_X12:
>                         case PCIE_LNK_X8:
>                                 adev->pm.pcie_mlw_mask = 
> (CAIL_PCIE_LINK_WIDTH_SUPPORT_X8 |
>                                                           
> CAIL_PCIE_LINK_WIDTH_SUPPORT_X4 |
> --
> 2.7.4
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
_______________________________________________
amd-gfx mailing list
amd-gfx at lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx


More information about the amd-gfx mailing list