drm/amdgpu: disable mcbp if parameter zero is set

The parameter amdgpu_mcbp shall have priority against the default value
calculated from the chip version.
User could disable mcbp by setting the parameter mcbp as zero.

v2: do not trigger preemption in sw ring muxer when mcbp is disabled.

Signed-off-by: Jiadong Zhu <Jiadong.Zhu@amd.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
Jiadong Zhu 2023-08-08 10:59:25 +08:00 committed by Alex Deucher
parent b6360a5ec3
commit 0d6f374c0c
2 changed files with 6 additions and 5 deletions

View File

@ -3722,10 +3722,11 @@ static void amdgpu_device_set_mcbp(struct amdgpu_device *adev)
{ {
if (amdgpu_mcbp == 1) if (amdgpu_mcbp == 1)
adev->gfx.mcbp = true; adev->gfx.mcbp = true;
else if (amdgpu_mcbp == 0)
if ((adev->ip_versions[GC_HWIP][0] >= IP_VERSION(9, 0, 0)) && adev->gfx.mcbp = false;
(adev->ip_versions[GC_HWIP][0] < IP_VERSION(10, 0, 0)) && else if ((adev->ip_versions[GC_HWIP][0] >= IP_VERSION(9, 0, 0)) &&
adev->gfx.num_gfx_rings) (adev->ip_versions[GC_HWIP][0] < IP_VERSION(10, 0, 0)) &&
adev->gfx.num_gfx_rings)
adev->gfx.mcbp = true; adev->gfx.mcbp = true;
if (amdgpu_sriov_vf(adev)) if (amdgpu_sriov_vf(adev))

View File

@ -397,7 +397,7 @@ void amdgpu_sw_ring_ib_begin(struct amdgpu_ring *ring)
struct amdgpu_ring_mux *mux = &adev->gfx.muxer; struct amdgpu_ring_mux *mux = &adev->gfx.muxer;
WARN_ON(!ring->is_sw_ring); WARN_ON(!ring->is_sw_ring);
if (ring->hw_prio > AMDGPU_RING_PRIO_DEFAULT) { if (adev->gfx.mcbp && ring->hw_prio > AMDGPU_RING_PRIO_DEFAULT) {
if (amdgpu_mcbp_scan(mux) > 0) if (amdgpu_mcbp_scan(mux) > 0)
amdgpu_mcbp_trigger_preempt(mux); amdgpu_mcbp_trigger_preempt(mux);
return; return;