diff options
author | Alex Deucher <alexander.deucher@amd.com> | 2017-12-14 16:27:11 -0500 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2017-12-18 10:59:23 -0500 |
commit | 22cb0164378c6511423f79d429e0b2e4290934df (patch) | |
tree | 1287794b7b566e818a87320568be172559b61b00 /drivers/gpu/drm/amd/amdgpu | |
parent | 8111c387275f64aae972d5717d32b0f756bb6e5f (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.h | 6 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 33 | ||||
-rw-r--r-- | 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 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 | |||
655 | void 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 | */ | ||
109 | static 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 | |||
96 | void amdgpu_amdkfd_device_init(struct amdgpu_device *adev) | 129 | void 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 | */ | ||
454 | void 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_*() |