OSDN Git Service

drm/amdgpu/ring: add no_scheduler flag
authorAlex Deucher <alexander.deucher@amd.com>
Thu, 9 Apr 2020 19:56:05 +0000 (15:56 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 13 Apr 2020 16:02:19 +0000 (12:02 -0400)
This allows IPs to flag whether a specific ring requires
a GPU scheduler or not.  E.g., sometimes instances of an
IP are asymmetric and have different capabilities.

Reviewed-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c
drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h

index 5f36bd5..4863e91 100644 (file)
@@ -261,7 +261,8 @@ int amdgpu_ring_init(struct amdgpu_device *adev, struct amdgpu_ring *ring,
        mutex_init(&ring->priority_mutex);
 
        if (ring->funcs->type >= AMDGPU_RING_TYPE_GFX &&
-           ring->funcs->type <= AMDGPU_RING_TYPE_VCN_JPEG) {
+           ring->funcs->type <= AMDGPU_RING_TYPE_VCN_JPEG &&
+           !ring->no_scheduler) {
                hw_ip = ring->funcs->type;
                num_sched = &adev->gpu_sched[hw_ip][hw_prio].num_scheds;
                adev->gpu_sched[hw_ip][hw_prio].sched[(*num_sched)++] =
index 057e169..5254396 100644 (file)
@@ -223,6 +223,7 @@ struct amdgpu_ring {
        unsigned                vm_inv_eng;
        struct dma_fence        *vmid_wait;
        bool                    has_compute_vm_bug;
+       bool                    no_scheduler;
 
        atomic_t                num_jobs[DRM_SCHED_PRIORITY_MAX];
        struct mutex            priority_mutex;