aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu
diff options
context:
space:
mode:
authorAlex Deucher <alexander.deucher@amd.com>2017-12-14 16:27:11 -0500
committerAlex Deucher <alexander.deucher@amd.com>2017-12-18 10:59:23 -0500
commit22cb0164378c6511423f79d429e0b2e4290934df (patch)
tree1287794b7b566e818a87320568be172559b61b00 /drivers/gpu/drm/amd/amdgpu
parent8111c387275f64aae972d5717d32b0f756bb6e5f (diff)
drm/amdgpu: move amdgpu_doorbell_get_kfd_info to amdgpu_amdkfd.c
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>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu.h6
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c33
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_device.c33
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 941535d94f87..b03f9242448c 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
@@ -651,12 +651,6 @@ typedef enum _AMDGPU_DOORBELL64_ASSIGNMENT
651 AMDGPU_DOORBELL64_INVALID = 0xFFFF 651 AMDGPU_DOORBELL64_INVALID = 0xFFFF
652} AMDGPU_DOORBELL64_ASSIGNMENT; 652} AMDGPU_DOORBELL64_ASSIGNMENT;
653 653
654
655void amdgpu_doorbell_get_kfd_info(struct amdgpu_device *adev,
656 phys_addr_t *aperture_base,
657 size_t *aperture_size,
658 size_t *start_offset);
659
660/* 654/*
661 * IRQS. 655 * IRQS.
662 */ 656 */
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
index c70cda04dbfb..896b16db58aa 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
@@ -93,6 +93,39 @@ void amdgpu_amdkfd_device_probe(struct amdgpu_device *adev)
93 adev->pdev, kfd2kgd); 93 adev->pdev, kfd2kgd);
94} 94}
95 95
96/**
97 * amdgpu_doorbell_get_kfd_info - Report doorbell configuration required to
98 * setup amdkfd
99 *
100 * @adev: amdgpu_device pointer
101 * @aperture_base: output returning doorbell aperture base physical address
102 * @aperture_size: output returning doorbell aperture size in bytes
103 * @start_offset: output returning # of doorbell bytes reserved for amdgpu.
104 *
105 * amdgpu and amdkfd share the doorbell aperture. amdgpu sets it up,
106 * takes doorbells required for its own rings and reports the setup to amdkfd.
107 * amdgpu reserved doorbells are at the start of the doorbell aperture.
108 */
109static void amdgpu_doorbell_get_kfd_info(struct amdgpu_device *adev,
110 phys_addr_t *aperture_base,
111 size_t *aperture_size,
112 size_t *start_offset)
113{
114 /*
115 * The first num_doorbells are used by amdgpu.
116 * amdkfd takes whatever's left in the aperture.
117 */
118 if (adev->doorbell.size > adev->doorbell.num_doorbells * sizeof(u32)) {
119 *aperture_base = adev->doorbell.base;
120 *aperture_size = adev->doorbell.size;
121 *start_offset = adev->doorbell.num_doorbells * sizeof(u32);
122 } else {
123 *aperture_base = 0;
124 *aperture_size = 0;
125 *start_offset = 0;
126 }
127}
128
96void amdgpu_amdkfd_device_init(struct amdgpu_device *adev) 129void amdgpu_amdkfd_device_init(struct amdgpu_device *adev)
97{ 130{
98 int i; 131 int i;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
index 2ff4194fd153..ae9a3a0334d7 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
@@ -438,38 +438,7 @@ static void amdgpu_device_doorbell_fini(struct amdgpu_device *adev)
438 adev->doorbell.ptr = NULL; 438 adev->doorbell.ptr = NULL;
439} 439}
440 440
441/** 441
442 * amdgpu_doorbell_get_kfd_info - Report doorbell configuration required to
443 * setup amdkfd
444 *
445 * @adev: amdgpu_device pointer
446 * @aperture_base: output returning doorbell aperture base physical address
447 * @aperture_size: output returning doorbell aperture size in bytes
448 * @start_offset: output returning # of doorbell bytes reserved for amdgpu.
449 *
450 * amdgpu and amdkfd share the doorbell aperture. amdgpu sets it up,
451 * takes doorbells required for its own rings and reports the setup to amdkfd.
452 * amdgpu reserved doorbells are at the start of the doorbell aperture.
453 */
454void amdgpu_doorbell_get_kfd_info(struct amdgpu_device *adev,
455 phys_addr_t *aperture_base,
456 size_t *aperture_size,
457 size_t *start_offset)
458{
459 /*
460 * The first num_doorbells are used by amdgpu.
461 * amdkfd takes whatever's left in the aperture.
462 */
463 if (adev->doorbell.size > adev->doorbell.num_doorbells * sizeof(u32)) {
464 *aperture_base = adev->doorbell.base;
465 *aperture_size = adev->doorbell.size;
466 *start_offset = adev->doorbell.num_doorbells * sizeof(u32);
467 } else {
468 *aperture_base = 0;
469 *aperture_size = 0;
470 *start_offset = 0;
471 }
472}
473 442
474/* 443/*
475 * amdgpu_device_wb_*() 444 * amdgpu_device_wb_*()