aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2977-drm-amdgpu-move-amdgpu_doorbell_get_kfd_info-to-amdg.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2977-drm-amdgpu-move-amdgpu_doorbell_get_kfd_info-to-amdg.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2977-drm-amdgpu-move-amdgpu_doorbell_get_kfd_info-to-amdg.patch127
1 files changed, 127 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2977-drm-amdgpu-move-amdgpu_doorbell_get_kfd_info-to-amdg.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2977-drm-amdgpu-move-amdgpu_doorbell_get_kfd_info-to-amdg.patch
new file mode 100644
index 00000000..19a970b9
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2977-drm-amdgpu-move-amdgpu_doorbell_get_kfd_info-to-amdg.patch
@@ -0,0 +1,127 @@
+From d167e0e736f5abf4c8b6674520163c40b8773dcd Mon Sep 17 00:00:00 2001
+From: Alex Deucher <alexander.deucher@amd.com>
+Date: Thu, 14 Dec 2017 16:27:11 -0500
+Subject: [PATCH 2977/4131] drm/amdgpu: move amdgpu_doorbell_get_kfd_info to
+ amdgpu_amdkfd.c
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+It's the only place it's used.
+
+Acked-by: Christian König <christian.koenig@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu.h | 6 ------
+ drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 33 ++++++++++++++++++++++++++++++
+ drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 33 +-----------------------------
+ 3 files changed, 34 insertions(+), 38 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+index 0008a99..b5b0d1c 100755
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+@@ -671,12 +671,6 @@ typedef enum _AMDGPU_DOORBELL64_ASSIGNMENT
+ AMDGPU_DOORBELL64_INVALID = 0xFFFF
+ } AMDGPU_DOORBELL64_ASSIGNMENT;
+
+-
+-void amdgpu_doorbell_get_kfd_info(struct amdgpu_device *adev,
+- phys_addr_t *aperture_base,
+- size_t *aperture_size,
+- size_t *start_offset);
+-
+ /*
+ * IRQS.
+ */
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
+index 5b0c6ab..e8910de 100755
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
+@@ -109,6 +109,39 @@ void amdgpu_amdkfd_device_probe(struct amdgpu_device *adev)
+ adev->pdev, kfd2kgd);
+ }
+
++/**
++ * amdgpu_doorbell_get_kfd_info - Report doorbell configuration required to
++ * setup amdkfd
++ *
++ * @adev: amdgpu_device pointer
++ * @aperture_base: output returning doorbell aperture base physical address
++ * @aperture_size: output returning doorbell aperture size in bytes
++ * @start_offset: output returning # of doorbell bytes reserved for amdgpu.
++ *
++ * amdgpu and amdkfd share the doorbell aperture. amdgpu sets it up,
++ * takes doorbells required for its own rings and reports the setup to amdkfd.
++ * amdgpu reserved doorbells are at the start of the doorbell aperture.
++ */
++static void amdgpu_doorbell_get_kfd_info(struct amdgpu_device *adev,
++ phys_addr_t *aperture_base,
++ size_t *aperture_size,
++ size_t *start_offset)
++{
++ /*
++ * The first num_doorbells are used by amdgpu.
++ * amdkfd takes whatever's left in the aperture.
++ */
++ if (adev->doorbell.size > adev->doorbell.num_doorbells * sizeof(u32)) {
++ *aperture_base = adev->doorbell.base;
++ *aperture_size = adev->doorbell.size;
++ *start_offset = adev->doorbell.num_doorbells * sizeof(u32);
++ } else {
++ *aperture_base = 0;
++ *aperture_size = 0;
++ *start_offset = 0;
++ }
++}
++
+ void amdgpu_amdkfd_device_init(struct amdgpu_device *adev)
+ {
+ int i;
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+index b6d8b50..15c5fd8 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+@@ -437,38 +437,7 @@ static void amdgpu_device_doorbell_fini(struct amdgpu_device *adev)
+ adev->doorbell.ptr = NULL;
+ }
+
+-/**
+- * amdgpu_doorbell_get_kfd_info - Report doorbell configuration required to
+- * setup amdkfd
+- *
+- * @adev: amdgpu_device pointer
+- * @aperture_base: output returning doorbell aperture base physical address
+- * @aperture_size: output returning doorbell aperture size in bytes
+- * @start_offset: output returning # of doorbell bytes reserved for amdgpu.
+- *
+- * amdgpu and amdkfd share the doorbell aperture. amdgpu sets it up,
+- * takes doorbells required for its own rings and reports the setup to amdkfd.
+- * amdgpu reserved doorbells are at the start of the doorbell aperture.
+- */
+-void amdgpu_doorbell_get_kfd_info(struct amdgpu_device *adev,
+- phys_addr_t *aperture_base,
+- size_t *aperture_size,
+- size_t *start_offset)
+-{
+- /*
+- * The first num_doorbells are used by amdgpu.
+- * amdkfd takes whatever's left in the aperture.
+- */
+- if (adev->doorbell.size > adev->doorbell.num_doorbells * sizeof(u32)) {
+- *aperture_base = adev->doorbell.base;
+- *aperture_size = adev->doorbell.size;
+- *start_offset = adev->doorbell.num_doorbells * sizeof(u32);
+- } else {
+- *aperture_base = 0;
+- *aperture_size = 0;
+- *start_offset = 0;
+- }
+-}
++
+
+ /*
+ * amdgpu_device_wb_*()
+--
+2.7.4
+