aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.19.8/1767-drm-amdgpu-use-pcie_bandwidth_available-rather-than-.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.19.8/1767-drm-amdgpu-use-pcie_bandwidth_available-rather-than-.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.19.8/1767-drm-amdgpu-use-pcie_bandwidth_available-rather-than-.patch81
1 files changed, 81 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.19.8/1767-drm-amdgpu-use-pcie_bandwidth_available-rather-than-.patch b/common/recipes-kernel/linux/linux-yocto-4.19.8/1767-drm-amdgpu-use-pcie_bandwidth_available-rather-than-.patch
new file mode 100644
index 00000000..77b47c11
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-yocto-4.19.8/1767-drm-amdgpu-use-pcie_bandwidth_available-rather-than-.patch
@@ -0,0 +1,81 @@
+From db8cfeb0e0107f8a17bd08b0e0d70fb796dd0c43 Mon Sep 17 00:00:00 2001
+From: Alex Deucher <alexander.deucher@amd.com>
+Date: Thu, 11 Apr 2019 08:58:22 -0500
+Subject: [PATCH 1767/2940] drm/amdgpu: use pcie_bandwidth_available rather
+ than open coding it
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+It does the same thing we were doing already. I though it needed
+work for gen3/4 speeds, but that seems to be covered already.
+
+Reviewed-by: Evan Quan <evan.quan@amd.com>
+Acked-by: Michel Dänzer <michel.daenzer@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 41 ++--------------------
+ 1 file changed, 2 insertions(+), 39 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+index 452f1f64c2a6..4882b86b33f2 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+@@ -3697,43 +3697,6 @@ int amdgpu_device_gpu_recover(struct amdgpu_device *adev,
+ return r;
+ }
+
+-static void amdgpu_device_get_min_pci_speed_width(struct amdgpu_device *adev,
+- enum pci_bus_speed *speed,
+- enum pcie_link_width *width)
+-{
+- 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;
+-
+- 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)
+- *speed = cur_speed;
+- else if (cur_speed < *speed)
+- *speed = cur_speed;
+- }
+-
+- if (cur_width != PCIE_LNK_WIDTH_UNKNOWN) {
+- if (*width == PCIE_LNK_WIDTH_UNKNOWN)
+- *width = cur_width;
+- else if (cur_width < *width)
+- *width = cur_width;
+- }
+- pdev = pci_upstream_bridge(pdev);
+- }
+-}
+-
+ /**
+ * amdgpu_device_get_pcie_info - fence pcie info about the PCIE slot
+ *
+@@ -3767,8 +3730,8 @@ static void amdgpu_device_get_pcie_info(struct amdgpu_device *adev)
+ if (adev->pm.pcie_gen_mask && adev->pm.pcie_mlw_mask)
+ return;
+
+- amdgpu_device_get_min_pci_speed_width(adev, &platform_speed_cap,
+- &platform_link_width);
++ pcie_bandwidth_available(adev->pdev, NULL,
++ &platform_speed_cap, &platform_link_width);
+
+ if (adev->pm.pcie_gen_mask == 0) {
+ /* asic caps */
+--
+2.17.1
+