On Tue, Aug 8, 2023 at 11:21 PM <jiadong.zhu@xxxxxxx> wrote: > > From: Jiadong Zhu <Jiadong.Zhu@xxxxxxx> > > 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@xxxxxxx> Acked-by: Alex Deucher <alexander.deucher@xxxxxxx> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 9 +++++---- > drivers/gpu/drm/amd/amdgpu/amdgpu_ring_mux.c | 2 +- > 2 files changed, 6 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c > index 7314529553f6..615669dcabc2 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c > @@ -3699,10 +3699,11 @@ static void amdgpu_device_set_mcbp(struct amdgpu_device *adev) > { > if (amdgpu_mcbp == 1) > adev->gfx.mcbp = true; > - > - if ((adev->ip_versions[GC_HWIP][0] >= IP_VERSION(9, 0, 0)) && > - (adev->ip_versions[GC_HWIP][0] < IP_VERSION(10, 0, 0)) && > - adev->gfx.num_gfx_rings) > + else if (amdgpu_mcbp == 0) > + adev->gfx.mcbp = false; > + else if ((adev->ip_versions[GC_HWIP][0] >= IP_VERSION(9, 0, 0)) && > + (adev->ip_versions[GC_HWIP][0] < IP_VERSION(10, 0, 0)) && > + adev->gfx.num_gfx_rings) > adev->gfx.mcbp = true; > > if (amdgpu_sriov_vf(adev)) > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring_mux.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring_mux.c > index b779ee4bbaa7..e1ee1c7117fb 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring_mux.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring_mux.c > @@ -397,7 +397,7 @@ void amdgpu_sw_ring_ib_begin(struct amdgpu_ring *ring) > struct amdgpu_ring_mux *mux = &adev->gfx.muxer; > > 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) > amdgpu_mcbp_trigger_preempt(mux); > return; > -- > 2.25.1 >