aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.19.8/0860-drm-amdgpu-Call-doorbell-index-init-on-device-initia.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.19.8/0860-drm-amdgpu-Call-doorbell-index-init-on-device-initia.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.19.8/0860-drm-amdgpu-Call-doorbell-index-init-on-device-initia.patch56
1 files changed, 56 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.19.8/0860-drm-amdgpu-Call-doorbell-index-init-on-device-initia.patch b/common/recipes-kernel/linux/linux-yocto-4.19.8/0860-drm-amdgpu-Call-doorbell-index-init-on-device-initia.patch
new file mode 100644
index 00000000..ae13e9ff
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-yocto-4.19.8/0860-drm-amdgpu-Call-doorbell-index-init-on-device-initia.patch
@@ -0,0 +1,56 @@
+From d945d720a71858f3c65e4edd064b9ee63415d282 Mon Sep 17 00:00:00 2001
+From: Oak Zeng <ozeng@amd.com>
+Date: Mon, 19 Nov 2018 14:36:09 -0600
+Subject: [PATCH 0860/2940] drm/amdgpu: Call doorbell index init on device
+ initialization
+
+Also call functioin amdgpu_device_doorbell_init after
+amdgpu_device_ip_early_init because the former depends
+on the later to set up asic-specific init_doorbell_index
+function
+
+Signed-off-by: Oak Zeng <ozeng@amd.com>
+Suggested-by: Felix Kuehling <Felix.Kuehling@amd.com>
+Suggested-by: Alex Deucher <alexander.deucher@amd.com>
+Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+index 2e14c4e2686c..c323fd2b7d18 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+@@ -513,6 +513,8 @@ void amdgpu_device_pci_config_reset(struct amdgpu_device *adev)
+ */
+ static int amdgpu_device_doorbell_init(struct amdgpu_device *adev)
+ {
++ amdgpu_asic_init_doorbell_index(adev);
++
+ /* No doorbell on SI hardware generation */
+ if (adev->asic_type < CHIP_BONAIRE) {
+ adev->doorbell.base = 0;
+@@ -2513,9 +2515,6 @@ int amdgpu_device_init(struct amdgpu_device *adev,
+ DRM_INFO("register mmio base: 0x%08X\n", (uint32_t)adev->rmmio_base);
+ DRM_INFO("register mmio size: %u\n", (unsigned)adev->rmmio_size);
+
+- /* doorbell bar mapping */
+- amdgpu_device_doorbell_init(adev);
+-
+ /* io port mapping */
+ for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) {
+ if (pci_resource_flags(adev->pdev, i) & IORESOURCE_IO) {
+@@ -2534,6 +2533,9 @@ int amdgpu_device_init(struct amdgpu_device *adev,
+ if (r)
+ return r;
+
++ /* doorbell bar mapping and doorbell index init*/
++ amdgpu_device_doorbell_init(adev);
++
+ /* if we have > 1 VGA cards, then disable the amdgpu VGA resources */
+ /* this will fail for cards that aren't VGA class devices, just
+ * ignore it */
+--
+2.17.1
+