2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-05-30 14:42:24 +02:00
|
|
|
|
2025-06-13 15:26:51 -03:00
|
|
|
|
2019-06-10 00:07:56 +02:00
|
|
|
|
2022-01-05 10:57:20 +08:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
2016-01-30 07:59:34 +02:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
2018-02-06 20:32:38 -05:00
|
|
|
|
2024-04-19 12:05:37 +05:30
|
|
|
|
2024-10-24 10:23:39 +01:00
|
|
|
|
2024-11-19 18:03:15 -05:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
2018-05-17 17:58:45 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-07-16 16:12:24 +02:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
2017-09-15 21:05:19 -04:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
2017-07-11 17:25:49 +02:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
2025-06-25 10:42:17 +02:00
|
|
|
|
2019-08-05 16:01:07 +02:00
|
|
|
|
|
|
|
|
|
2021-06-14 19:49:50 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-05-17 17:58:45 -04:00
|
|
|
|
2018-07-16 16:12:24 +02:00
|
|
|
|
2018-05-17 17:58:45 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-06-01 12:29:45 +02:00
|
|
|
|
|
|
|
|
|
2018-05-17 17:58:45 -04:00
|
|
|
|
2018-07-16 16:12:24 +02:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
2021-06-14 19:49:50 +02:00
|
|
|
|
2024-08-27 16:12:11 +02:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
2021-06-14 19:49:50 +02:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-05-17 17:58:45 -04:00
|
|
|
|
2018-07-16 16:12:24 +02:00
|
|
|
|
2018-05-17 17:58:45 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-07-16 16:12:24 +02:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
2017-09-12 10:56:17 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-15 14:08:54 +02:00
|
|
|
|
2015-04-24 17:37:30 +08:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
2023-05-09 19:08:17 +05:30
|
|
|
|
2023-03-08 11:57:00 -05:00
|
|
|
|
2016-08-15 14:06:50 +02:00
|
|
|
|
2023-03-08 11:57:00 -05:00
|
|
|
|
|
|
|
|
|
2023-03-07 11:30:24 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-03-08 11:57:00 -05:00
|
|
|
|
2023-01-26 18:54:29 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-09-10 13:39:41 +02:00
|
|
|
|
2020-09-30 16:44:16 +02:00
|
|
|
|
2017-03-29 13:41:57 +02:00
|
|
|
|
2016-08-15 14:06:50 +02:00
|
|
|
|
2023-01-26 18:54:29 -05:00
|
|
|
|
2023-06-09 06:18:41 -07:00
|
|
|
|
2016-08-15 14:06:50 +02:00
|
|
|
|
2017-03-29 13:41:57 +02:00
|
|
|
|
2024-04-25 21:05:55 +05:30
|
|
|
|
|
|
|
|
|
2017-03-29 13:41:57 +02:00
|
|
|
|
2024-04-25 21:05:55 +05:30
|
|
|
|
2016-08-15 14:06:50 +02:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
2023-07-14 15:11:26 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
2016-08-15 14:06:50 +02:00
|
|
|
|
2018-08-29 14:52:50 +02:00
|
|
|
|
2021-05-05 15:18:53 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-09-10 13:39:41 +02:00
|
|
|
|
2023-11-27 15:26:41 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-03-20 14:46:18 +01:00
|
|
|
|
|
|
|
|
|
2023-11-27 15:26:41 +01:00
|
|
|
|
2016-08-15 14:06:50 +02:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-15 14:06:50 +02:00
|
|
|
|
|
|
|
|
|
2020-09-10 13:39:41 +02:00
|
|
|
|
|
|
|
|
|
2016-08-15 14:06:50 +02:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-15 14:06:50 +02:00
|
|
|
|
|
|
|
|
|
2020-09-10 13:39:41 +02:00
|
|
|
|
2020-09-30 16:44:16 +02:00
|
|
|
|
2016-08-15 14:06:50 +02:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
2016-08-15 14:06:50 +02:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
2016-08-15 14:06:50 +02:00
|
|
|
|
|
|
|
|
|
2020-09-10 13:39:41 +02:00
|
|
|
|
2020-09-30 16:44:16 +02:00
|
|
|
|
2016-08-15 14:06:50 +02:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
2016-08-15 14:06:50 +02:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
2016-08-15 14:06:50 +02:00
|
|
|
|
|
|
|
|
|
2020-09-10 13:39:41 +02:00
|
|
|
|
2020-09-30 16:44:16 +02:00
|
|
|
|
2016-08-15 14:06:50 +02:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-15 14:06:50 +02:00
|
|
|
|
|
|
|
|
|
2020-09-10 13:39:41 +02:00
|
|
|
|
2020-09-30 16:44:16 +02:00
|
|
|
|
2016-08-15 14:06:50 +02:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
2021-06-22 12:23:38 -04:00
|
|
|
|
2018-07-18 11:16:35 +02:00
|
|
|
|
2016-08-15 14:06:50 +02:00
|
|
|
|
|
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
2015-12-14 13:18:01 +01:00
|
|
|
|
2017-07-27 17:08:54 +02:00
|
|
|
|
2015-12-14 13:18:01 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-03-14 11:45:22 -04:00
|
|
|
|
2015-12-14 13:18:01 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-07-27 17:08:54 +02:00
|
|
|
|
|
|
|
|
|
2015-12-14 13:18:01 +01:00
|
|
|
|
2018-03-14 11:45:22 -04:00
|
|
|
|
|
|
|
|
|
2018-06-01 12:29:45 +02:00
|
|
|
|
|
|
|
|
|
2015-12-14 13:18:01 +01:00
|
|
|
|
2017-07-27 17:08:54 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-12-14 13:18:01 +01:00
|
|
|
|
2018-04-16 18:27:50 +08:00
|
|
|
|
2017-07-27 14:52:53 +02:00
|
|
|
|
2015-12-14 13:18:01 +01:00
|
|
|
|
|
|
|
|
|
2018-09-14 21:03:37 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-04-16 18:27:50 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-08-19 15:30:22 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-04-16 18:27:50 +08:00
|
|
|
|
|
|
|
|
|
2021-03-08 14:00:06 +01:00
|
|
|
|
2018-04-16 18:27:50 +08:00
|
|
|
|
2017-07-27 14:52:53 +02:00
|
|
|
|
2018-04-16 18:27:50 +08:00
|
|
|
|
2017-07-27 14:52:53 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-12-14 13:18:01 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
drm/amdgpu: fix bo->pin leaking in amdgpu_bo_create_reserved
amdgpu_bo_create_reserved() only allocates a new BO when
*bo_ptr (struct amdgpu_bo **bo_ptr as input parameter) is
NULL, it simply skips creation when *bo_ptr is non-NULL.
But it unconditionally reserves, pins, gart allocates
and maps the BO afterwards.
When the same non-NULL BO pointer is passed in again,
for example firmware buffers that live in adev and are
re-loaded on every resume / cp_resume / start
under AMDGPU_FW_LOAD_DIRECT, amdgpu_bo_pin() just increases
pin_count unconditionally, however the matching teardown only unpins
once, so pin_count never drops to zero, so TTM is not able
to move, swap or evict a BO, causing BO leaks.
This commit fixes this issue by only pinning the bo
once at creation, and repeated calls no longer
take additional pin references.
Signed-off-by: Zhu Lingshan <lingshan.zhu@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit 3ddc0ae76202c447b6aec61e907b852bc94671cf)
Cc: stable@vger.kernel.org
2026-07-01 18:53:21 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-12-14 13:18:01 +01:00
|
|
|
|
2018-06-25 13:32:24 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-06-25 12:51:14 +08:00
|
|
|
|
|
|
|
|
|
2015-12-14 13:18:01 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-06-26 16:23:48 +08:00
|
|
|
|
2015-12-14 13:18:01 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-06-25 13:32:24 +08:00
|
|
|
|
drm/amdgpu: fix bo->pin leaking in amdgpu_bo_create_reserved
amdgpu_bo_create_reserved() only allocates a new BO when
*bo_ptr (struct amdgpu_bo **bo_ptr as input parameter) is
NULL, it simply skips creation when *bo_ptr is non-NULL.
But it unconditionally reserves, pins, gart allocates
and maps the BO afterwards.
When the same non-NULL BO pointer is passed in again,
for example firmware buffers that live in adev and are
re-loaded on every resume / cp_resume / start
under AMDGPU_FW_LOAD_DIRECT, amdgpu_bo_pin() just increases
pin_count unconditionally, however the matching teardown only unpins
once, so pin_count never drops to zero, so TTM is not able
to move, swap or evict a BO, causing BO leaks.
This commit fixes this issue by only pinning the bo
once at creation, and repeated calls no longer
take additional pin references.
Signed-off-by: Zhu Lingshan <lingshan.zhu@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit 3ddc0ae76202c447b6aec61e907b852bc94671cf)
Cc: stable@vger.kernel.org
2026-07-01 18:53:21 +08:00
|
|
|
|
|
|
|
|
|
2015-12-14 13:18:01 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-07-27 14:52:53 +02:00
|
|
|
|
|
|
|
|
|
2015-12-14 13:18:01 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-07-27 17:08:54 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-03-14 11:45:22 -04:00
|
|
|
|
2017-07-27 17:08:54 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-19 18:03:15 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-03-14 11:45:22 -04:00
|
|
|
|
|
|
|
|
|
2018-06-01 12:29:45 +02:00
|
|
|
|
|
|
|
|
|
2017-07-27 17:08:54 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-09-17 14:07:00 -04:00
|
|
|
|
|
|
|
|
|
2017-07-27 17:08:54 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-19 18:03:15 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-21 23:02:11 +05:30
|
|
|
|
2024-11-19 18:03:15 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-21 23:02:11 +05:30
|
|
|
|
2024-11-19 18:03:15 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-07-27 17:08:54 +02:00
|
|
|
|
2019-09-13 13:43:15 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-12-14 03:56:03 -05:00
|
|
|
|
2019-09-13 13:43:15 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-12-14 03:56:03 -05:00
|
|
|
|
2019-09-13 13:43:15 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-12-14 03:56:03 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-09-13 13:43:15 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-07-28 17:38:29 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-09-13 13:43:15 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-09-24 13:29:27 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-04-15 09:52:58 +02:00
|
|
|
|
2019-09-24 13:29:27 +02:00
|
|
|
|
2019-09-13 13:43:15 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-04-15 09:52:58 +02:00
|
|
|
|
2019-09-13 13:43:15 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-09-08 10:13:32 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-06-01 12:29:45 +02:00
|
|
|
|
|
|
|
|
|
2016-09-08 10:13:32 +08:00
|
|
|
|
|
|
|
|
|
2024-11-19 18:03:15 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-09-08 10:13:32 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-11-16 15:45:36 +01:00
|
|
|
|
|
|
|
|
|
2017-04-24 14:27:00 -04:00
|
|
|
|
2016-09-08 10:13:32 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-19 18:03:15 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-09-08 10:13:32 +08:00
|
|
|
|
2023-08-25 11:11:51 +08:00
|
|
|
|
2017-11-10 18:35:56 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-08-04 12:56:31 +10:00
|
|
|
|
2017-11-10 18:35:56 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-12-10 02:51:19 -05:00
|
|
|
|
2017-11-10 18:35:56 -05:00
|
|
|
|
2023-08-25 11:11:51 +08:00
|
|
|
|
2020-08-04 12:56:10 +10:00
|
|
|
|
2023-08-25 11:11:51 +08:00
|
|
|
|
2020-08-04 12:56:10 +10:00
|
|
|
|
2023-08-25 11:11:51 +08:00
|
|
|
|
|
|
|
|
|
2017-11-10 18:35:56 -05:00
|
|
|
|
2023-08-25 11:11:51 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-11-10 18:35:56 -05:00
|
|
|
|
|
|
|
|
|
2023-07-14 15:11:26 +02:00
|
|
|
|
2023-08-25 11:11:51 +08:00
|
|
|
|
|
|
|
|
|
2017-11-10 18:35:56 -05:00
|
|
|
|
2023-08-25 11:11:51 +08:00
|
|
|
|
2017-11-10 18:35:56 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-07-24 10:04:27 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-04-21 18:09:46 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-04-16 17:57:19 +08:00
|
|
|
|
2017-09-12 10:56:17 +02:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
2017-12-08 13:31:52 +08:00
|
|
|
|
2018-04-16 17:57:19 +08:00
|
|
|
|
2019-09-16 10:35:53 -05:00
|
|
|
|
2020-11-02 13:01:53 +01:00
|
|
|
|
|
|
|
|
|
2020-11-02 13:16:13 +01:00
|
|
|
|
|
|
|
|
|
2017-12-08 13:31:52 +08:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
2018-04-16 17:57:19 +08:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
2019-01-22 15:44:54 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-09-14 16:06:31 +02:00
|
|
|
|
2022-10-27 14:42:37 +05:30
|
|
|
|
2019-01-22 15:44:54 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-09-14 16:06:31 +02:00
|
|
|
|
2019-01-22 15:44:54 -05:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
2018-04-16 17:57:19 +08:00
|
|
|
|
2017-11-10 18:35:56 -05:00
|
|
|
|
|
|
|
|
|
2021-03-08 14:00:06 +01:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
2021-03-08 14:00:06 +01:00
|
|
|
|
2021-06-02 21:25:56 +08:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
2020-08-24 12:29:45 -04:00
|
|
|
|
2024-07-11 14:39:43 +02:00
|
|
|
|
2018-09-10 20:02:46 +02:00
|
|
|
|
2018-04-17 18:34:40 +08:00
|
|
|
|
2018-04-17 11:52:53 +08:00
|
|
|
|
2018-04-10 13:42:38 +02:00
|
|
|
|
2018-04-16 17:57:19 +08:00
|
|
|
|
2022-05-06 13:08:34 +02:00
|
|
|
|
2018-04-10 13:42:38 +02:00
|
|
|
|
|
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
2018-04-16 17:57:19 +08:00
|
|
|
|
2016-01-30 07:59:34 +02:00
|
|
|
|
2023-03-08 11:57:00 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-01-26 18:25:28 -05:00
|
|
|
|
2019-07-24 10:04:27 -04:00
|
|
|
|
2016-01-30 07:59:34 +02:00
|
|
|
|
|
|
|
|
|
2017-09-12 10:56:17 +02:00
|
|
|
|
2022-12-12 17:31:57 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-05-11 11:02:23 +08:00
|
|
|
|
2024-04-18 13:56:42 -04:00
|
|
|
|
|
|
|
|
|
2018-05-11 11:02:23 +08:00
|
|
|
|
2018-04-10 13:42:38 +02:00
|
|
|
|
2021-06-14 19:49:50 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-02-18 14:32:53 +01:00
|
|
|
|
2020-11-17 13:52:28 +01:00
|
|
|
|
2021-06-14 19:49:50 +02:00
|
|
|
|
2018-04-10 13:42:38 +02:00
|
|
|
|
2017-10-31 09:36:13 +01:00
|
|
|
|
|
|
|
|
|
2018-06-12 14:28:20 -04:00
|
|
|
|
2024-04-04 16:25:40 +02:00
|
|
|
|
2017-04-27 18:20:47 +02:00
|
|
|
|
|
|
|
|
|
2017-06-27 22:33:18 -04:00
|
|
|
|
2017-04-27 18:20:47 +02:00
|
|
|
|
2017-02-09 11:33:37 +01:00
|
|
|
|
2018-04-16 17:57:19 +08:00
|
|
|
|
2021-04-12 15:11:47 +02:00
|
|
|
|
2016-10-25 13:00:45 +01:00
|
|
|
|
2016-07-20 14:44:38 +08:00
|
|
|
|
2025-09-05 10:22:22 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-11-17 12:16:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-11-18 15:48:39 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-07-20 14:44:38 +08:00
|
|
|
|
2018-04-16 17:57:19 +08:00
|
|
|
|
2017-02-16 11:01:44 +01:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-06-30 11:31:08 -04:00
|
|
|
|
2018-04-16 17:57:19 +08:00
|
|
|
|
2017-06-30 11:31:08 -04:00
|
|
|
|
|
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
2016-07-20 14:44:38 +08:00
|
|
|
|
|
|
|
|
|
2018-04-16 17:57:19 +08:00
|
|
|
|
2019-08-11 10:06:32 +02:00
|
|
|
|
2016-07-20 14:44:38 +08:00
|
|
|
|
|
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
2021-03-05 13:00:22 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-06-14 19:49:50 +02:00
|
|
|
|
2021-04-21 18:09:46 +02:00
|
|
|
|
2021-03-05 13:00:22 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-05-04 14:08:29 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-05-17 17:58:45 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-06-01 12:29:45 +02:00
|
|
|
|
|
|
|
|
|
2018-05-17 17:58:45 -04:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
2017-07-20 23:45:18 +02:00
|
|
|
|
2016-03-10 16:21:04 +01:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
2015-05-13 14:30:53 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-04-04 12:57:30 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-07-20 23:45:18 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
2016-03-10 16:21:04 +01:00
|
|
|
|
2022-10-27 14:42:37 +05:30
|
|
|
|
2016-03-10 16:21:04 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-07-20 23:45:18 +02:00
|
|
|
|
2016-03-10 16:21:04 +01:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-05-17 17:58:45 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-06-01 12:29:45 +02:00
|
|
|
|
|
|
|
|
|
2018-05-17 17:58:45 -04:00
|
|
|
|
2017-07-20 23:45:18 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-05-17 17:58:45 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
2017-07-20 23:45:18 +02:00
|
|
|
|
|
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
2018-05-17 17:58:45 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-06-01 12:29:45 +02:00
|
|
|
|
|
|
|
|
|
2018-05-17 17:58:45 -04:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-07-11 14:39:43 +02:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-05-17 17:58:45 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-07-11 14:39:43 +02:00
|
|
|
|
2018-07-31 09:12:36 +02:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
2018-05-17 17:58:45 -04:00
|
|
|
|
2024-06-05 16:34:49 +02:00
|
|
|
|
2018-05-17 17:58:45 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-06-05 16:34:49 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-05-17 17:58:45 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-06-01 12:29:45 +02:00
|
|
|
|
|
|
|
|
|
2018-05-17 17:58:45 -04:00
|
|
|
|
2024-06-05 16:34:49 +02:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
2016-09-15 14:58:48 +02:00
|
|
|
|
2017-04-12 14:24:39 +02:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
2016-02-08 11:08:35 +01:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
2022-07-12 12:30:29 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-04-03 13:31:22 +10:00
|
|
|
|
2025-06-25 10:42:17 +02:00
|
|
|
|
2018-04-18 16:26:18 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-04-03 13:31:22 +10:00
|
|
|
|
2020-09-21 15:55:39 +02:00
|
|
|
|
2021-04-12 15:11:47 +02:00
|
|
|
|
|
|
|
|
|
2016-08-18 12:55:13 +08:00
|
|
|
|
2017-10-23 17:29:36 +02:00
|
|
|
|
2016-08-18 12:55:13 +08:00
|
|
|
|
|
|
|
|
|
2021-01-30 08:41:04 +08:00
|
|
|
|
|
|
|
|
|
2021-01-25 17:34:35 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-09-21 15:55:39 +02:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
2016-08-15 17:00:22 +02:00
|
|
|
|
2021-08-18 14:05:28 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-08-25 17:05:09 +08:00
|
|
|
|
2021-08-18 14:05:28 +02:00
|
|
|
|
2025-06-25 10:42:17 +02:00
|
|
|
|
2018-06-07 10:28:47 +02:00
|
|
|
|
|
|
|
|
|
2017-09-11 17:29:26 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-07-16 16:12:24 +02:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
2024-04-25 21:05:55 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
2017-04-12 14:24:39 +02:00
|
|
|
|
2016-08-12 16:50:12 +02:00
|
|
|
|
2016-09-15 14:58:48 +02:00
|
|
|
|
2016-08-12 16:50:12 +02:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
2016-08-12 16:50:12 +02:00
|
|
|
|
2020-09-21 15:55:39 +02:00
|
|
|
|
2017-10-20 13:12:12 +02:00
|
|
|
|
2024-05-06 17:59:56 +01:00
|
|
|
|
2018-07-11 12:00:40 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-05-06 17:59:56 +01:00
|
|
|
|
2018-07-11 12:00:40 +02:00
|
|
|
|
2016-08-12 16:50:12 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-05-17 17:58:45 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-06-01 12:29:45 +02:00
|
|
|
|
|
|
|
|
|
2018-05-17 17:58:45 -04:00
|
|
|
|
2020-09-21 15:55:39 +02:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
2021-04-14 15:51:24 +02:00
|
|
|
|
|
|
|
|
|
2020-09-21 15:55:39 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-12 16:50:12 +02:00
|
|
|
|
2025-06-25 10:42:17 +02:00
|
|
|
|
2018-06-07 10:28:47 +02:00
|
|
|
|
2021-04-14 15:51:24 +02:00
|
|
|
|
2021-04-12 15:11:47 +02:00
|
|
|
|
2021-04-14 15:51:24 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-04-12 15:11:47 +02:00
|
|
|
|
2021-04-14 15:51:24 +02:00
|
|
|
|
|
|
|
|
|
2023-07-14 15:11:26 +02:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
2023-05-09 19:08:17 +05:30
|
|
|
|
2016-03-31 16:56:22 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-03-09 06:16:55 -05:00
|
|
|
|
|
|
|
|
|
2018-05-02 17:52:39 +08:00
|
|
|
|
2022-05-23 11:24:31 -04:00
|
|
|
|
|
|
|
|
|
2025-04-03 16:51:20 +08:00
|
|
|
|
2025-09-12 13:21:09 -04:00
|
|
|
|
|
|
|
|
|
2016-03-31 16:56:22 -04:00
|
|
|
|
|
|
|
|
|
2018-05-17 17:58:45 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-06-01 12:29:45 +02:00
|
|
|
|
|
|
|
|
|
2018-05-17 17:58:45 -04:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
2021-01-22 13:00:06 -06:00
|
|
|
|
2023-01-27 21:57:00 -05:00
|
|
|
|
2021-01-22 13:00:06 -06:00
|
|
|
|
2021-10-29 16:06:04 +02:00
|
|
|
|
2021-01-22 13:00:06 -06:00
|
|
|
|
|
|
|
|
|
2021-10-29 16:06:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-01-22 13:00:06 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-10-24 15:37:48 +10:00
|
|
|
|
2025-12-14 19:12:27 -06:00
|
|
|
|
2018-01-12 14:52:22 +01:00
|
|
|
|
|
|
|
|
|
2025-12-14 19:12:27 -06:00
|
|
|
|
2018-01-12 14:52:22 +01:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-05-17 17:58:45 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
2022-01-05 10:57:20 +08:00
|
|
|
|
|
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
2022-01-05 10:57:20 +08:00
|
|
|
|
|
|
|
|
|
2023-03-03 18:03:00 +05:30
|
|
|
|
2022-01-05 10:57:20 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
2018-05-17 17:58:45 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-06-01 12:29:45 +02:00
|
|
|
|
|
|
|
|
|
2018-05-17 17:58:45 -04:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
2017-03-03 16:03:15 -05:00
|
|
|
|
2021-03-08 14:03:35 +01:00
|
|
|
|
2017-03-03 16:03:15 -05:00
|
|
|
|
drm/amdgpu: Map/Unmap MMIO_REMAP as BAR register window; add TTM sg helpers; wire dma-buf
MMIO_REMAP (HDP flush page) exposes a hardware MMIO register window via
a PCI BAR; there are no struct pages backing it (not normal RAM). But
when one device shares memory with another through dma-buf, the receiver
still expects a delivery route—a list of DMA-able chunks—called an
sg_table. For the BAR window, we can’t (no pages!), so we instead create
a one-entry list that points directly to the BAR’s physical bus address
and tell DMA: “use this I/O span.” - A single, contiguous byte range on
the PCI bus (start DMA address + length)). That’s why we map it with
dma_map_resource() and set sg_set_page(..., NULL, ...). Perform DMA
reads/writes directly to that range so we build an sg_table from a BAR
physical span and map it with dma_map_resource().
This patch centralizes the BAR-I/O mapping in TTM and wires dma-buf to
it:
Add amdgpu_ttm_mmio_remap_alloc_sgt() /
amdgpu_ttm_mmio_remap_free_sgt(). They walk the TTM resource via
amdgpu_res_cursor, add the byte offset to adev->rmmio_remap.bus_addr,
build a one-entry sg_table with sg_set_page(NULL, …), and map/unmap it
with dma_map_resource().
In dma-buf map/unmap, if the BO is in AMDGPU_PL_MMIO_REMAP, call the new
helpers.
Single place for BAR-I/O handling: amdgpu_ttm.c in
amdgpu_ttm_mmio_remap_alloc_sgt() and ..._free_sgt().
No struct pages: sg_set_page(sg, NULL, cur.size, 0); inside
amdgpu_ttm_mmio_remap_alloc_sgt().
Minimal sg_table: sg_alloc_table(*sgt, 1, GFP_KERNEL); inside
amdgpu_ttm_mmio_remap_alloc_sgt().
Hooked into dma-buf: amdgpu_dma_buf_map()/unmap() in amdgpu_dma_buf.c
call these helpers for AMDGPU_PL_MMIO_REMAP.
v2: squash in fix for set/get tiling
Suggested-by: Christian König <christian.koenig@amd.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Srinivasan Shanmugam <srinivasan.shanmugam@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2025-10-06 19:46:54 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-03-15 16:02:37 +01:00
|
|
|
|
2017-03-03 16:03:15 -05:00
|
|
|
|
|
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
2021-03-08 14:03:35 +01:00
|
|
|
|
|
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-05-17 17:58:45 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
2021-03-08 14:03:35 +01:00
|
|
|
|
|
|
|
|
|
drm/amdgpu: Map/Unmap MMIO_REMAP as BAR register window; add TTM sg helpers; wire dma-buf
MMIO_REMAP (HDP flush page) exposes a hardware MMIO register window via
a PCI BAR; there are no struct pages backing it (not normal RAM). But
when one device shares memory with another through dma-buf, the receiver
still expects a delivery route—a list of DMA-able chunks—called an
sg_table. For the BAR window, we can’t (no pages!), so we instead create
a one-entry list that points directly to the BAR’s physical bus address
and tell DMA: “use this I/O span.” - A single, contiguous byte range on
the PCI bus (start DMA address + length)). That’s why we map it with
dma_map_resource() and set sg_set_page(..., NULL, ...). Perform DMA
reads/writes directly to that range so we build an sg_table from a BAR
physical span and map it with dma_map_resource().
This patch centralizes the BAR-I/O mapping in TTM and wires dma-buf to
it:
Add amdgpu_ttm_mmio_remap_alloc_sgt() /
amdgpu_ttm_mmio_remap_free_sgt(). They walk the TTM resource via
amdgpu_res_cursor, add the byte offset to adev->rmmio_remap.bus_addr,
build a one-entry sg_table with sg_set_page(NULL, …), and map/unmap it
with dma_map_resource().
In dma-buf map/unmap, if the BO is in AMDGPU_PL_MMIO_REMAP, call the new
helpers.
Single place for BAR-I/O handling: amdgpu_ttm.c in
amdgpu_ttm_mmio_remap_alloc_sgt() and ..._free_sgt().
No struct pages: sg_set_page(sg, NULL, cur.size, 0); inside
amdgpu_ttm_mmio_remap_alloc_sgt().
Minimal sg_table: sg_alloc_table(*sgt, 1, GFP_KERNEL); inside
amdgpu_ttm_mmio_remap_alloc_sgt().
Hooked into dma-buf: amdgpu_dma_buf_map()/unmap() in amdgpu_dma_buf.c
call these helpers for AMDGPU_PL_MMIO_REMAP.
v2: squash in fix for set/get tiling
Suggested-by: Christian König <christian.koenig@amd.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Srinivasan Shanmugam <srinivasan.shanmugam@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2025-10-06 19:46:54 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-03-15 16:02:37 +01:00
|
|
|
|
2019-08-11 10:06:32 +02:00
|
|
|
|
2021-03-08 14:03:35 +01:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
2021-03-08 14:03:35 +01:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
2018-05-17 17:58:45 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-06-01 12:29:45 +02:00
|
|
|
|
|
|
|
|
|
2018-05-17 17:58:45 -04:00
|
|
|
|
2023-05-09 19:08:17 +05:30
|
|
|
|
|
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
2021-03-08 14:03:35 +01:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
2021-03-15 16:02:37 +01:00
|
|
|
|
2021-03-08 14:03:35 +01:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
2021-03-08 14:03:35 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-09-21 17:34:39 -04:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-03-08 14:03:35 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-05-17 17:58:45 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-06-01 12:29:45 +02:00
|
|
|
|
|
|
|
|
|
2018-05-17 17:58:45 -04:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-03-08 14:03:35 +01:00
|
|
|
|
|
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-03-15 16:02:37 +01:00
|
|
|
|
2021-03-08 14:03:35 +01:00
|
|
|
|
2021-05-24 14:30:21 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
2021-03-08 14:03:35 +01:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
2021-03-08 14:03:35 +01:00
|
|
|
|
|
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-03-08 14:03:35 +01:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-05-17 17:58:45 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-03-21 11:32:02 +01:00
|
|
|
|
2018-05-17 17:58:45 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-03-21 11:32:02 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
2024-03-21 11:32:02 +01:00
|
|
|
|
2016-09-15 15:06:50 +02:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
2018-07-16 16:12:24 +02:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
2017-09-15 21:05:19 -04:00
|
|
|
|
2024-12-19 10:14:11 -05:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
2017-07-11 17:25:49 +02:00
|
|
|
|
|
|
|
|
|
2025-06-25 10:42:17 +02:00
|
|
|
|
2024-03-21 11:32:02 +01:00
|
|
|
|
2026-01-24 21:14:14 +02:00
|
|
|
|
2018-05-30 14:42:24 +02:00
|
|
|
|
2024-03-21 11:32:02 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
2019-07-09 19:12:44 -04:00
|
|
|
|
2020-08-17 14:55:11 +08:00
|
|
|
|
2019-07-09 19:12:44 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-03-15 14:46:28 +08:00
|
|
|
|
2019-07-09 19:12:44 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-12-04 15:51:50 +01:00
|
|
|
|
|
|
|
|
|
2019-07-09 19:12:44 -04:00
|
|
|
|
2021-11-04 15:11:04 -04:00
|
|
|
|
2019-07-09 19:12:44 -04:00
|
|
|
|
2025-01-29 16:28:49 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-02-11 11:28:34 +08:00
|
|
|
|
2021-12-17 16:13:09 +01:00
|
|
|
|
2022-03-15 14:46:28 +08:00
|
|
|
|
2023-03-02 14:18:12 +08:00
|
|
|
|
2025-01-29 16:28:49 +01:00
|
|
|
|
2019-07-09 19:12:44 -04:00
|
|
|
|
2025-01-29 16:28:49 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-07-09 19:12:44 -04:00
|
|
|
|
2025-09-05 10:22:22 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-29 16:28:49 +01:00
|
|
|
|
|
|
|
|
|
2019-07-09 19:12:44 -04:00
|
|
|
|
2025-01-29 16:28:49 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-07-09 19:12:44 -04:00
|
|
|
|
|
|
|
|
|
2018-05-17 17:58:45 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-06-01 12:29:45 +02:00
|
|
|
|
|
|
|
|
|
2018-05-17 17:58:45 -04:00
|
|
|
|
2020-09-25 15:21:49 +02:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
2016-09-15 14:58:48 +02:00
|
|
|
|
2017-04-12 14:24:39 +02:00
|
|
|
|
2020-09-25 15:21:49 +02:00
|
|
|
|
2017-06-30 11:31:08 -04:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
2017-06-30 11:31:08 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-04-04 16:25:40 +02:00
|
|
|
|
2015-05-21 17:03:46 +02:00
|
|
|
|
|
|
|
|
|
2016-03-28 12:53:02 +09:00
|
|
|
|
2020-09-21 15:55:39 +02:00
|
|
|
|
2020-09-25 15:21:49 +02:00
|
|
|
|
2016-03-28 12:53:02 +09:00
|
|
|
|
2015-05-21 17:03:46 +02:00
|
|
|
|
2017-05-17 20:05:08 +02:00
|
|
|
|
2018-07-16 16:12:24 +02:00
|
|
|
|
|
|
|
|
|
2017-06-27 22:33:21 -04:00
|
|
|
|
|
|
|
|
|
2023-11-13 16:18:44 +05:30
|
|
|
|
2017-06-27 22:33:21 -04:00
|
|
|
|
2017-04-12 14:24:39 +02:00
|
|
|
|
2020-09-25 15:21:49 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-05-21 17:03:46 +02:00
|
|
|
|
|
|
|
|
|
2021-04-12 15:11:47 +02:00
|
|
|
|
2024-04-04 16:25:40 +02:00
|
|
|
|
2020-09-25 15:21:49 +02:00
|
|
|
|
2015-05-21 17:03:46 +02:00
|
|
|
|
2020-09-25 15:21:49 +02:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-10-25 13:00:45 +01:00
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
|
|
|
|
|
2019-08-11 10:06:32 +02:00
|
|
|
|
2021-11-16 15:20:45 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
2021-11-09 11:08:18 +01:00
|
|
|
|
|
|
|
|
|
2015-04-20 16:55:21 -04:00
|
|
|
|
2016-07-25 17:56:18 +02:00
|
|
|
|
2019-02-04 17:46:35 -05:00
|
|
|
|
2020-01-23 14:49:45 +01:00
|
|
|
|
2019-02-04 17:46:35 -05:00
|
|
|
|
2020-01-23 14:49:45 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-02-04 17:46:35 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-01-23 14:49:45 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-02-04 17:46:35 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-01-23 14:49:45 +01:00
|
|
|
|
|
|
|
|
|
2019-02-04 17:46:35 -05:00
|
|
|
|
|
|
|
|
|
2016-07-25 17:56:18 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-06-01 12:29:45 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-07-25 17:56:18 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-04-12 15:11:47 +02:00
|
|
|
|
2019-08-11 10:06:32 +02:00
|
|
|
|
2020-09-21 15:55:39 +02:00
|
|
|
|
2021-04-12 15:11:47 +02:00
|
|
|
|
|
|
|
|
|
2016-08-15 17:00:22 +02:00
|
|
|
|
2016-07-25 17:56:18 +02:00
|
|
|
|
2020-06-24 20:26:41 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-04-11 16:10:20 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-06-24 20:26:41 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-11-10 09:39:18 -05:00
|
|
|
|
2020-06-24 20:26:41 +02:00
|
|
|
|
2023-11-10 09:39:18 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-06-24 20:26:41 +02:00
|
|
|
|
|
|
|
|
|
2016-07-25 17:56:18 +02:00
|
|
|
|
2018-05-25 17:12:29 -07:00
|
|
|
|
2024-12-19 10:14:11 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-12-02 16:12:41 +01:00
|
|
|
|
2024-12-19 10:14:11 -05:00
|
|
|
|
2025-12-02 16:12:41 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-12-19 10:14:11 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-06-01 12:29:45 +02:00
|
|
|
|
2021-08-25 17:05:09 +08:00
|
|
|
|
2018-06-01 12:29:45 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-08-25 17:05:09 +08:00
|
|
|
|
2018-06-01 12:29:45 +02:00
|
|
|
|
2021-08-25 17:05:09 +08:00
|
|
|
|
2018-05-25 17:12:29 -07:00
|
|
|
|
|
|
|
|
|
2022-12-07 11:08:53 -05:00
|
|
|
|
|
|
|
|
|
2018-05-25 17:12:29 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-10-08 15:46:38 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-12-02 09:27:15 +01:00
|
|
|
|
2020-10-08 15:46:38 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-04-04 16:25:40 +02:00
|
|
|
|
2020-10-08 15:46:38 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-06-21 10:42:07 +02:00
|
|
|
|
2024-06-03 10:46:10 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-08-20 16:17:52 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-06-03 10:46:10 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-06-21 10:42:07 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-10-08 15:46:38 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-11-10 17:48:47 +10:00
|
|
|
|
2020-10-08 15:46:38 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2026-03-04 10:32:42 -05:00
|
|
|
|
2020-10-08 15:46:38 +05:30
|
|
|
|
2026-03-04 10:32:42 -05:00
|
|
|
|
2020-10-08 15:46:38 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-04-15 10:27:44 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-10-08 15:46:38 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|