diff options
Diffstat (limited to 'meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/0882-drm-amdgpu-move-hw-generation-check-into-amdgpu_door.patch')
-rw-r--r-- | meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/0882-drm-amdgpu-move-hw-generation-check-into-amdgpu_door.patch | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/0882-drm-amdgpu-move-hw-generation-check-into-amdgpu_door.patch b/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/0882-drm-amdgpu-move-hw-generation-check-into-amdgpu_door.patch new file mode 100644 index 00000000..3649f4b4 --- /dev/null +++ b/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/0882-drm-amdgpu-move-hw-generation-check-into-amdgpu_door.patch @@ -0,0 +1,64 @@ +From ed2ec5a62142dbe4e178ba782ce120fb6b111d96 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com> +Date: Thu, 8 Jun 2017 11:15:16 +0200 +Subject: [PATCH 0882/4131] drm/amdgpu: move hw generation check into + amdgpu_doorbell_init v2 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This way we can safely call it on SI as well. + +v2: fix type in commit message + +Signed-off-by: Christian König <christian.koenig@amd.com> +Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com> +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 17 ++++++++++++----- + 1 file changed, 12 insertions(+), 5 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +index 4709fdc..2b083d7 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +@@ -404,6 +404,15 @@ void amdgpu_pci_config_reset(struct amdgpu_device *adev) + */ + static int amdgpu_doorbell_init(struct amdgpu_device *adev) + { ++ /* No doorbell on SI hardware generation */ ++ if (adev->asic_type < CHIP_BONAIRE) { ++ adev->doorbell.base = 0; ++ adev->doorbell.size = 0; ++ adev->doorbell.num_doorbells = 0; ++ adev->doorbell.ptr = NULL; ++ return 0; ++ } ++ + /* doorbell bar mapping */ + adev->doorbell.base = pci_resource_start(adev->pdev, 2); + adev->doorbell.size = pci_resource_len(adev->pdev, 2); +@@ -2121,9 +2130,8 @@ 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); + +- if (adev->asic_type >= CHIP_BONAIRE) +- /* doorbell bar mapping */ +- amdgpu_doorbell_init(adev); ++ /* doorbell bar mapping */ ++ amdgpu_doorbell_init(adev); + + /* io port mapping */ + for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) { +@@ -2350,8 +2358,7 @@ void amdgpu_device_fini(struct amdgpu_device *adev) + adev->rio_mem = NULL; + iounmap(adev->rmmio); + adev->rmmio = NULL; +- if (adev->asic_type >= CHIP_BONAIRE) +- amdgpu_doorbell_fini(adev); ++ amdgpu_doorbell_fini(adev); + amdgpu_debugfs_regs_cleanup(adev); + } + +-- +2.7.4 + |