Commit f091fa77 authored by Alex Deucher's avatar Alex Deucher
Browse files

drm/amdgpu/gfx: add generic handling for disable_kq



Add proper checks for disable_kq functionality in
gfx helper functions.  Add special logic for families
that require the clear state setup.

v2: use ring count as per Felix suggestion
v3: fix num_gfx_rings handling in amdgpu_gfx_graphics_queue_acquire()
v4: fix error code (Alex)

Reviewed-by: default avatarPrike Liang <Prike.Liang@amd.com>
Reviewed-by: default avatarSunil Khatri <sunil.khatri@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 4310acd4
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -259,6 +259,7 @@ void amdgpu_gfx_graphics_queue_acquire(struct amdgpu_device *adev)
	}

	/* update the number of active graphics rings */
	if (adev->gfx.num_gfx_rings)
		adev->gfx.num_gfx_rings =
			bitmap_weight(adev->gfx.me.queue_bitmap, AMDGPU_MAX_GFX_QUEUES);
}
@@ -1545,6 +1546,9 @@ static ssize_t amdgpu_gfx_set_run_cleaner_shader(struct device *dev,
	if (adev->in_suspend && !adev->in_runpm)
		return -EPERM;

	if (adev->gfx.disable_kq)
		return -EPERM;

	ret = kstrtol(buf, 0, &value);

	if (ret)
+2 −0
Original line number Diff line number Diff line
@@ -485,6 +485,8 @@ struct amdgpu_gfx {
	struct delayed_work		idle_work;
	bool				workload_profile_active;
	struct mutex                    workload_profile_mutex;

	bool				disable_kq;
};

struct amdgpu_gfx_ras_reg_entry {