diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.19.8/1680-drm-amd-amdgpu-fix-PCIe-dpm-feature-issue-v3.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.19.8/1680-drm-amd-amdgpu-fix-PCIe-dpm-feature-issue-v3.patch | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.19.8/1680-drm-amd-amdgpu-fix-PCIe-dpm-feature-issue-v3.patch b/common/recipes-kernel/linux/linux-yocto-4.19.8/1680-drm-amd-amdgpu-fix-PCIe-dpm-feature-issue-v3.patch new file mode 100644 index 00000000..4ba5a88c --- /dev/null +++ b/common/recipes-kernel/linux/linux-yocto-4.19.8/1680-drm-amd-amdgpu-fix-PCIe-dpm-feature-issue-v3.patch @@ -0,0 +1,43 @@ +From d5eb8075935a1c7b5f4a96fd2dbe525e34195ad6 Mon Sep 17 00:00:00 2001 +From: Chengming Gui <Jack.Gui@amd.com> +Date: Thu, 21 Mar 2019 13:26:28 +0800 +Subject: [PATCH 1680/2940] drm/amd/amdgpu: fix PCIe dpm feature issue (v3) + +use pcie_bandwidth_available to get real link state +to update pcie table. + +v2: fix incorrect initialized return value +v3: expand the fetching method about the link width to all asics. + +Signed-off-by: Chengming Gui <Jack.Gui@amd.com> +Reviewed-by: Alex Deucher <alexander.deucher@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +index 1b98d1ac3651..85b1cf4e1159 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +@@ -3693,6 +3693,7 @@ static void amdgpu_device_get_min_pci_speed_width(struct amdgpu_device *adev, + struct pci_dev *pdev = adev->pdev; + enum pci_bus_speed cur_speed; + enum pcie_link_width cur_width; ++ u32 ret = 1; + + *speed = PCI_SPEED_UNKNOWN; + *width = PCIE_LNK_WIDTH_UNKNOWN; +@@ -3700,6 +3701,10 @@ static void amdgpu_device_get_min_pci_speed_width(struct amdgpu_device *adev, + while (pdev) { + cur_speed = pcie_get_speed_cap(pdev); + cur_width = pcie_get_width_cap(pdev); ++ ret = pcie_bandwidth_available(adev->pdev, NULL, ++ NULL, &cur_width); ++ if (!ret) ++ cur_width = PCIE_LNK_WIDTH_RESRV; + + if (cur_speed != PCI_SPEED_UNKNOWN) { + if (*speed == PCI_SPEED_UNKNOWN) +-- +2.17.1 + |