aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.19.8/1680-drm-amd-amdgpu-fix-PCIe-dpm-feature-issue-v3.patch
diff options
context:
space:
mode:
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.patch43
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
+