mirror of
https://github.com/torvalds/linux.git
synced 2026-04-25 10:02:31 -04:00
drm/amdgpu: add helpers to create userqueue object
This patch introduces amdgpu_userqueue_object and its helper functions to creates and destroy this object. The helper functions creates/destroys a base amdgpu_bo, kmap/unmap it and save the respective GPU and CPU addresses in the encapsulating userqueue object. These helpers will be used to create/destroy userqueue MQD, WPTR and FW areas. V7: - Forked out this new patch from V11-gfx-userqueue patch to prevent that patch from growing very big. - Using amdgpu_bo_create instead of amdgpu_bo_create_kernel in prep for eviction fences (Christian) V9: - Rebase V10: - Added Alex's R-B Cc: Alex Deucher <alexander.deucher@amd.com> Cc: Christian Koenig <christian.koenig@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Shashank Sharma <shashank.sharma@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
committed by
Alex Deucher
parent
5501117d24
commit
0385800c2f
@@ -29,6 +29,12 @@
|
||||
|
||||
struct amdgpu_mqd_prop;
|
||||
|
||||
struct amdgpu_userq_obj {
|
||||
void *cpu_ptr;
|
||||
uint64_t gpu_addr;
|
||||
struct amdgpu_bo *obj;
|
||||
};
|
||||
|
||||
struct amdgpu_usermode_queue {
|
||||
int queue_type;
|
||||
uint64_t doorbell_handle;
|
||||
@@ -37,6 +43,7 @@ struct amdgpu_usermode_queue {
|
||||
struct amdgpu_mqd_prop *userq_prop;
|
||||
struct amdgpu_userq_mgr *userq_mgr;
|
||||
struct amdgpu_vm *vm;
|
||||
struct amdgpu_userq_obj mqd;
|
||||
};
|
||||
|
||||
struct amdgpu_userq_funcs {
|
||||
@@ -60,4 +67,10 @@ int amdgpu_userq_mgr_init(struct amdgpu_userq_mgr *userq_mgr, struct amdgpu_devi
|
||||
|
||||
void amdgpu_userq_mgr_fini(struct amdgpu_userq_mgr *userq_mgr);
|
||||
|
||||
int amdgpu_userqueue_create_object(struct amdgpu_userq_mgr *uq_mgr,
|
||||
struct amdgpu_userq_obj *userq_obj,
|
||||
int size);
|
||||
|
||||
void amdgpu_userqueue_destroy_object(struct amdgpu_userq_mgr *uq_mgr,
|
||||
struct amdgpu_userq_obj *userq_obj);
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user