<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<p style="font-family:Arial;font-size:10pt;color:#317100;margin:15pt;" align="Left">
[AMD Public Use]<br>
</p>
<br>
<div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Looks good to me.</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Reviewed-by: Alex Deucher <alexander.deucher@amd.com><br>
</div>
<div id="appendonsend"></div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> Christian König <ckoenig.leichtzumerken@gmail.com><br>
<b>Sent:</b> Thursday, February 27, 2020 9:50 AM<br>
<b>To:</b> Das, Nirmoy <Nirmoy.Das@amd.com>; amd-gfx@lists.freedesktop.org <amd-gfx@lists.freedesktop.org>; Deucher, Alexander <Alexander.Deucher@amd.com><br>
<b>Subject:</b> Re: [PATCH] drm/amdgpu: stop disable the scheduler during HW fini</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">Alex any comment on this?<br>
<br>
Am 25.02.20 um 14:16 schrieb Nirmoy:<br>
> Acked-by: Nirmoy Das <nirmoy.das@amd.com><br>
><br>
> On 2/25/20 2:07 PM, Christian König wrote:<br>
>> When we stop the HW for example for GPU reset we should not stop the<br>
>> front-end scheduler. Otherwise we run into intermediate failures during<br>
>> command submission.<br>
>><br>
>> The scheduler should only be stopped in very few cases:<br>
>> 1. We can't get the hardware working in ring or IB test after a GPU <br>
>> reset.<br>
>> 2. The KIQ scheduler is not used in the front-end and should be <br>
>> disabled during GPU reset.<br>
>> 3. In amdgpu_ring_fini() when the driver unloads.<br>
>><br>
>> Signed-off-by: Christian König <christian.koenig@amd.com><br>
>> ---<br>
>>   drivers/gpu/drm/amd/amdgpu/cik_sdma.c  |  2 --<br>
>>   drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c |  8 --------<br>
>>   drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c  |  5 -----<br>
>>   drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c  | 25 +++++++++----------------<br>
>>   drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c  |  7 -------<br>
>>   drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c  |  9 ---------<br>
>>   drivers/gpu/drm/amd/amdgpu/jpeg_v2_0.c |  3 ---<br>
>>   drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c |  2 --<br>
>>   drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c |  2 --<br>
>>   drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c |  4 ----<br>
>>   drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c |  3 ---<br>
>>   drivers/gpu/drm/amd/amdgpu/si_dma.c    |  1 -<br>
>>   drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c  |  3 ---<br>
>>   drivers/gpu/drm/amd/amdgpu/uvd_v5_0.c  |  3 ---<br>
>>   drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c  |  3 ---<br>
>>   drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c  |  7 -------<br>
>>   drivers/gpu/drm/amd/amdgpu/vce_v4_0.c  |  4 ----<br>
>>   drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c  |  3 ---<br>
>>   drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c  |  9 ---------<br>
>>   drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c  | 11 +----------<br>
>>   20 files changed, 10 insertions(+), 104 deletions(-)<br>
>><br>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/cik_sdma.c <br>
>> b/drivers/gpu/drm/amd/amdgpu/cik_sdma.c<br>
>> index 4274ccf765de..cb3b3a0a1348 100644<br>
>> --- a/drivers/gpu/drm/amd/amdgpu/cik_sdma.c<br>
>> +++ b/drivers/gpu/drm/amd/amdgpu/cik_sdma.c<br>
>> @@ -320,8 +320,6 @@ static void cik_sdma_gfx_stop(struct <br>
>> amdgpu_device *adev)<br>
>>           WREG32(mmSDMA0_GFX_RB_CNTL + sdma_offsets[i], rb_cntl);<br>
>>           WREG32(mmSDMA0_GFX_IB_CNTL + sdma_offsets[i], 0);<br>
>>       }<br>
>> -    sdma0->sched.ready = false;<br>
>> -    sdma1->sched.ready = false;<br>
>>   }<br>
>>     /**<br>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c <br>
>> b/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c<br>
>> index 7b6158320400..36ce67ce4800 100644<br>
>> --- a/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c<br>
>> +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c<br>
>> @@ -2391,10 +2391,6 @@ static int gfx_v10_0_cp_gfx_enable(struct <br>
>> amdgpu_device *adev, bool enable)<br>
>>       tmp = REG_SET_FIELD(tmp, CP_ME_CNTL, ME_HALT, enable ? 0 : 1);<br>
>>       tmp = REG_SET_FIELD(tmp, CP_ME_CNTL, PFP_HALT, enable ? 0 : 1);<br>
>>       tmp = REG_SET_FIELD(tmp, CP_ME_CNTL, CE_HALT, enable ? 0 : 1);<br>
>> -    if (!enable) {<br>
>> -        for (i = 0; i < adev->gfx.num_gfx_rings; i++)<br>
>> -            adev->gfx.gfx_ring[i].sched.ready = false;<br>
>> -    }<br>
>>       WREG32_SOC15(GC, 0, mmCP_ME_CNTL, tmp);<br>
>>         for (i = 0; i < adev->usec_timeout; i++) {<br>
>> @@ -2869,16 +2865,12 @@ static int gfx_v10_0_cp_gfx_resume(struct <br>
>> amdgpu_device *adev)<br>
>>     static void gfx_v10_0_cp_compute_enable(struct amdgpu_device <br>
>> *adev, bool enable)<br>
>>   {<br>
>> -    int i;<br>
>> -<br>
>>       if (enable) {<br>
>>           WREG32_SOC15(GC, 0, mmCP_MEC_CNTL, 0);<br>
>>       } else {<br>
>>           WREG32_SOC15(GC, 0, mmCP_MEC_CNTL,<br>
>>                    (CP_MEC_CNTL__MEC_ME1_HALT_MASK |<br>
>>                     CP_MEC_CNTL__MEC_ME2_HALT_MASK));<br>
>> -        for (i = 0; i < adev->gfx.num_compute_rings; i++)<br>
>> -            adev->gfx.compute_ring[i].sched.ready = false;<br>
>>           adev->gfx.kiq.ring.sched.ready = false;<br>
>>       }<br>
>>       udelay(50);<br>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c <br>
>> b/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c<br>
>> index 31f44d05e606..e462a099dbda 100644<br>
>> --- a/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c<br>
>> +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c<br>
>> @@ -1950,7 +1950,6 @@ static int gfx_v6_0_ring_test_ib(struct <br>
>> amdgpu_ring *ring, long timeout)<br>
>>     static void gfx_v6_0_cp_gfx_enable(struct amdgpu_device *adev, <br>
>> bool enable)<br>
>>   {<br>
>> -    int i;<br>
>>       if (enable) {<br>
>>           WREG32(mmCP_ME_CNTL, 0);<br>
>>       } else {<br>
>> @@ -1958,10 +1957,6 @@ static void gfx_v6_0_cp_gfx_enable(struct <br>
>> amdgpu_device *adev, bool enable)<br>
>>                         CP_ME_CNTL__PFP_HALT_MASK |<br>
>>                         CP_ME_CNTL__CE_HALT_MASK));<br>
>>           WREG32(mmSCRATCH_UMSK, 0);<br>
>> -        for (i = 0; i < adev->gfx.num_gfx_rings; i++)<br>
>> -            adev->gfx.gfx_ring[i].sched.ready = false;<br>
>> -        for (i = 0; i < adev->gfx.num_compute_rings; i++)<br>
>> -            adev->gfx.compute_ring[i].sched.ready = false;<br>
>>       }<br>
>>       udelay(50);<br>
>>   }<br>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c <br>
>> b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c<br>
>> index 8f20a5dd44fe..9bc8673c83ac 100644<br>
>> --- a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c<br>
>> +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c<br>
>> @@ -2431,15 +2431,12 @@ static int gfx_v7_0_ring_test_ib(struct <br>
>> amdgpu_ring *ring, long timeout)<br>
>>    */<br>
>>   static void gfx_v7_0_cp_gfx_enable(struct amdgpu_device *adev, bool <br>
>> enable)<br>
>>   {<br>
>> -    int i;<br>
>> -<br>
>> -    if (enable) {<br>
>> +    if (enable)<br>
>>           WREG32(mmCP_ME_CNTL, 0);<br>
>> -    } else {<br>
>> -        WREG32(mmCP_ME_CNTL, (CP_ME_CNTL__ME_HALT_MASK | <br>
>> CP_ME_CNTL__PFP_HALT_MASK | CP_ME_CNTL__CE_HALT_MASK));<br>
>> -        for (i = 0; i < adev->gfx.num_gfx_rings; i++)<br>
>> -            adev->gfx.gfx_ring[i].sched.ready = false;<br>
>> -    }<br>
>> +    else<br>
>> +        WREG32(mmCP_ME_CNTL, (CP_ME_CNTL__ME_HALT_MASK |<br>
>> +                      CP_ME_CNTL__PFP_HALT_MASK |<br>
>> +                      CP_ME_CNTL__CE_HALT_MASK));<br>
>>       udelay(50);<br>
>>   }<br>
>>   @@ -2700,15 +2697,11 @@ static void <br>
>> gfx_v7_0_ring_set_wptr_compute(struct amdgpu_ring *ring)<br>
>>    */<br>
>>   static void gfx_v7_0_cp_compute_enable(struct amdgpu_device *adev, <br>
>> bool enable)<br>
>>   {<br>
>> -    int i;<br>
>> -<br>
>> -    if (enable) {<br>
>> +    if (enable)<br>
>>           WREG32(mmCP_MEC_CNTL, 0);<br>
>> -    } else {<br>
>> -        WREG32(mmCP_MEC_CNTL, (CP_MEC_CNTL__MEC_ME1_HALT_MASK | <br>
>> CP_MEC_CNTL__MEC_ME2_HALT_MASK));<br>
>> -        for (i = 0; i < adev->gfx.num_compute_rings; i++)<br>
>> -            adev->gfx.compute_ring[i].sched.ready = false;<br>
>> -    }<br>
>> +    else<br>
>> +        WREG32(mmCP_MEC_CNTL, (CP_MEC_CNTL__MEC_ME1_HALT_MASK |<br>
>> +                       CP_MEC_CNTL__MEC_ME2_HALT_MASK));<br>
>>       udelay(50);<br>
>>   }<br>
>>   diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c <br>
>> b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c<br>
>> index fa245973de12..7b6b03c02754 100644<br>
>> --- a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c<br>
>> +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c<br>
>> @@ -4111,7 +4111,6 @@ static int gfx_v8_0_rlc_resume(struct <br>
>> amdgpu_device *adev)<br>
>>     static void gfx_v8_0_cp_gfx_enable(struct amdgpu_device *adev, <br>
>> bool enable)<br>
>>   {<br>
>> -    int i;<br>
>>       u32 tmp = RREG32(mmCP_ME_CNTL);<br>
>>         if (enable) {<br>
>> @@ -4122,8 +4121,6 @@ static void gfx_v8_0_cp_gfx_enable(struct <br>
>> amdgpu_device *adev, bool enable)<br>
>>           tmp = REG_SET_FIELD(tmp, CP_ME_CNTL, ME_HALT, 1);<br>
>>           tmp = REG_SET_FIELD(tmp, CP_ME_CNTL, PFP_HALT, 1);<br>
>>           tmp = REG_SET_FIELD(tmp, CP_ME_CNTL, CE_HALT, 1);<br>
>> -        for (i = 0; i < adev->gfx.num_gfx_rings; i++)<br>
>> -            adev->gfx.gfx_ring[i].sched.ready = false;<br>
>>       }<br>
>>       WREG32(mmCP_ME_CNTL, tmp);<br>
>>       udelay(50);<br>
>> @@ -4311,14 +4308,10 @@ static int gfx_v8_0_cp_gfx_resume(struct <br>
>> amdgpu_device *adev)<br>
>>     static void gfx_v8_0_cp_compute_enable(struct amdgpu_device <br>
>> *adev, bool enable)<br>
>>   {<br>
>> -    int i;<br>
>> -<br>
>>       if (enable) {<br>
>>           WREG32(mmCP_MEC_CNTL, 0);<br>
>>       } else {<br>
>>           WREG32(mmCP_MEC_CNTL, (CP_MEC_CNTL__MEC_ME1_HALT_MASK | <br>
>> CP_MEC_CNTL__MEC_ME2_HALT_MASK));<br>
>> -        for (i = 0; i < adev->gfx.num_compute_rings; i++)<br>
>> -            adev->gfx.compute_ring[i].sched.ready = false;<br>
>>           adev->gfx.kiq.ring.sched.ready = false;<br>
>>       }<br>
>>       udelay(50);<br>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c <br>
>> b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c<br>
>> index 1c7a16b91686..a2f9882bd9b4 100644<br>
>> --- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c<br>
>> +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c<br>
>> @@ -3034,16 +3034,11 @@ static int gfx_v9_0_rlc_resume(struct <br>
>> amdgpu_device *adev)<br>
>>     static void gfx_v9_0_cp_gfx_enable(struct amdgpu_device *adev, <br>
>> bool enable)<br>
>>   {<br>
>> -    int i;<br>
>>       u32 tmp = RREG32_SOC15(GC, 0, mmCP_ME_CNTL);<br>
>>         tmp = REG_SET_FIELD(tmp, CP_ME_CNTL, ME_HALT, enable ? 0 : 1);<br>
>>       tmp = REG_SET_FIELD(tmp, CP_ME_CNTL, PFP_HALT, enable ? 0 : 1);<br>
>>       tmp = REG_SET_FIELD(tmp, CP_ME_CNTL, CE_HALT, enable ? 0 : 1);<br>
>> -    if (!enable) {<br>
>> -        for (i = 0; i < adev->gfx.num_gfx_rings; i++)<br>
>> -            adev->gfx.gfx_ring[i].sched.ready = false;<br>
>> -    }<br>
>>       WREG32_SOC15_RLC(GC, 0, mmCP_ME_CNTL, tmp);<br>
>>       udelay(50);<br>
>>   }<br>
>> @@ -3239,15 +3234,11 @@ static int gfx_v9_0_cp_gfx_resume(struct <br>
>> amdgpu_device *adev)<br>
>>     static void gfx_v9_0_cp_compute_enable(struct amdgpu_device <br>
>> *adev, bool enable)<br>
>>   {<br>
>> -    int i;<br>
>> -<br>
>>       if (enable) {<br>
>>           WREG32_SOC15_RLC(GC, 0, mmCP_MEC_CNTL, 0);<br>
>>       } else {<br>
>>           WREG32_SOC15_RLC(GC, 0, mmCP_MEC_CNTL,<br>
>>               (CP_MEC_CNTL__MEC_ME1_HALT_MASK | <br>
>> CP_MEC_CNTL__MEC_ME2_HALT_MASK));<br>
>> -        for (i = 0; i < adev->gfx.num_compute_rings; i++)<br>
>> -            adev->gfx.compute_ring[i].sched.ready = false;<br>
>>           adev->gfx.kiq.ring.sched.ready = false;<br>
>>       }<br>
>>       udelay(50);<br>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/jpeg_v2_0.c <br>
>> b/drivers/gpu/drm/amd/amdgpu/jpeg_v2_0.c<br>
>> index ff2e6e1ccde7..471710a42a0c 100644<br>
>> --- a/drivers/gpu/drm/amd/amdgpu/jpeg_v2_0.c<br>
>> +++ b/drivers/gpu/drm/amd/amdgpu/jpeg_v2_0.c<br>
>> @@ -169,14 +169,11 @@ static int jpeg_v2_0_hw_init(void *handle)<br>
>>   static int jpeg_v2_0_hw_fini(void *handle)<br>
>>   {<br>
>>       struct amdgpu_device *adev = (struct amdgpu_device *)handle;<br>
>> -    struct amdgpu_ring *ring = &adev->jpeg.inst->ring_dec;<br>
>>         if (adev->jpeg.cur_state != AMD_PG_STATE_GATE &&<br>
>>             RREG32_SOC15(JPEG, 0, mmUVD_JRBC_STATUS))<br>
>>           jpeg_v2_0_set_powergating_state(adev, AMD_PG_STATE_GATE);<br>
>>   -    ring->sched.ready = false;<br>
>> -<br>
>>       return 0;<br>
>>   }<br>
>>   diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c <br>
>> b/drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c<br>
>> index fd7fa6082563..05b79aced6e8 100644<br>
>> --- a/drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c<br>
>> +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c<br>
>> @@ -355,8 +355,6 @@ static void sdma_v2_4_gfx_stop(struct <br>
>> amdgpu_device *adev)<br>
>>           ib_cntl = REG_SET_FIELD(ib_cntl, SDMA0_GFX_IB_CNTL, <br>
>> IB_ENABLE, 0);<br>
>>           WREG32(mmSDMA0_GFX_IB_CNTL + sdma_offsets[i], ib_cntl);<br>
>>       }<br>
>> -    sdma0->sched.ready = false;<br>
>> -    sdma1->sched.ready = false;<br>
>>   }<br>
>>     /**<br>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c <br>
>> b/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c<br>
>> index 4a8a7f0f3a9c..1448d9beb7a8 100644<br>
>> --- a/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c<br>
>> +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c<br>
>> @@ -529,8 +529,6 @@ static void sdma_v3_0_gfx_stop(struct <br>
>> amdgpu_device *adev)<br>
>>           ib_cntl = REG_SET_FIELD(ib_cntl, SDMA0_GFX_IB_CNTL, <br>
>> IB_ENABLE, 0);<br>
>>           WREG32(mmSDMA0_GFX_IB_CNTL + sdma_offsets[i], ib_cntl);<br>
>>       }<br>
>> -    sdma0->sched.ready = false;<br>
>> -    sdma1->sched.ready = false;<br>
>>   }<br>
>>     /**<br>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c <br>
>> b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c<br>
>> index 7cea4513c303..0c6eb65f96f3 100644<br>
>> --- a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c<br>
>> +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c<br>
>> @@ -923,8 +923,6 @@ static void sdma_v4_0_gfx_stop(struct <br>
>> amdgpu_device *adev)<br>
>>           ib_cntl = RREG32_SDMA(i, mmSDMA0_GFX_IB_CNTL);<br>
>>           ib_cntl = REG_SET_FIELD(ib_cntl, SDMA0_GFX_IB_CNTL, <br>
>> IB_ENABLE, 0);<br>
>>           WREG32_SDMA(i, mmSDMA0_GFX_IB_CNTL, ib_cntl);<br>
>> -<br>
>> -        sdma[i]->sched.ready = false;<br>
>>       }<br>
>>   }<br>
>>   @@ -971,8 +969,6 @@ static void sdma_v4_0_page_stop(struct <br>
>> amdgpu_device *adev)<br>
>>           ib_cntl = REG_SET_FIELD(ib_cntl, SDMA0_PAGE_IB_CNTL,<br>
>>                       IB_ENABLE, 0);<br>
>>           WREG32_SDMA(i, mmSDMA0_PAGE_IB_CNTL, ib_cntl);<br>
>> -<br>
>> -        sdma[i]->sched.ready = false;<br>
>>       }<br>
>>   }<br>
>>   diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c <br>
>> b/drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c<br>
>> index 7ee603db8c57..5af66a24b0a2 100644<br>
>> --- a/drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c<br>
>> +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c<br>
>> @@ -502,9 +502,6 @@ static void sdma_v5_0_gfx_stop(struct <br>
>> amdgpu_device *adev)<br>
>>           ib_cntl = REG_SET_FIELD(ib_cntl, SDMA0_GFX_IB_CNTL, <br>
>> IB_ENABLE, 0);<br>
>>           WREG32(sdma_v5_0_get_reg_offset(adev, i, <br>
>> mmSDMA0_GFX_IB_CNTL), ib_cntl);<br>
>>       }<br>
>> -<br>
>> -    sdma0->sched.ready = false;<br>
>> -    sdma1->sched.ready = false;<br>
>>   }<br>
>>     /**<br>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/si_dma.c <br>
>> b/drivers/gpu/drm/amd/amdgpu/si_dma.c<br>
>> index 7f64d73043cf..a8548678c37d 100644<br>
>> --- a/drivers/gpu/drm/amd/amdgpu/si_dma.c<br>
>> +++ b/drivers/gpu/drm/amd/amdgpu/si_dma.c<br>
>> @@ -124,7 +124,6 @@ static void si_dma_stop(struct amdgpu_device *adev)<br>
>>             if (adev->mman.buffer_funcs_ring == ring)<br>
>>               amdgpu_ttm_set_buffer_funcs_status(adev, false);<br>
>> -        ring->sched.ready = false;<br>
>>       }<br>
>>   }<br>
>>   diff --git a/drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c <br>
>> b/drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c<br>
>> index 82abd8e728ab..957e14e2c155 100644<br>
>> --- a/drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c<br>
>> +++ b/drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c<br>
>> @@ -210,13 +210,10 @@ static int uvd_v4_2_hw_init(void *handle)<br>
>>   static int uvd_v4_2_hw_fini(void *handle)<br>
>>   {<br>
>>       struct amdgpu_device *adev = (struct amdgpu_device *)handle;<br>
>> -    struct amdgpu_ring *ring = &adev->uvd.inst->ring;<br>
>>         if (RREG32(mmUVD_STATUS) != 0)<br>
>>           uvd_v4_2_stop(adev);<br>
>>   -    ring->sched.ready = false;<br>
>> -<br>
>>       return 0;<br>
>>   }<br>
>>   diff --git a/drivers/gpu/drm/amd/amdgpu/uvd_v5_0.c <br>
>> b/drivers/gpu/drm/amd/amdgpu/uvd_v5_0.c<br>
>> index 0fa8aae2d78e..2aad6689823b 100644<br>
>> --- a/drivers/gpu/drm/amd/amdgpu/uvd_v5_0.c<br>
>> +++ b/drivers/gpu/drm/amd/amdgpu/uvd_v5_0.c<br>
>> @@ -208,13 +208,10 @@ static int uvd_v5_0_hw_init(void *handle)<br>
>>   static int uvd_v5_0_hw_fini(void *handle)<br>
>>   {<br>
>>       struct amdgpu_device *adev = (struct amdgpu_device *)handle;<br>
>> -    struct amdgpu_ring *ring = &adev->uvd.inst->ring;<br>
>>         if (RREG32(mmUVD_STATUS) != 0)<br>
>>           uvd_v5_0_stop(adev);<br>
>>   -    ring->sched.ready = false;<br>
>> -<br>
>>       return 0;<br>
>>   }<br>
>>   diff --git a/drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c <br>
>> b/drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c<br>
>> index e0aadcaf6c8b..a9d06ec5d09a 100644<br>
>> --- a/drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c<br>
>> +++ b/drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c<br>
>> @@ -535,13 +535,10 @@ static int uvd_v6_0_hw_init(void *handle)<br>
>>   static int uvd_v6_0_hw_fini(void *handle)<br>
>>   {<br>
>>       struct amdgpu_device *adev = (struct amdgpu_device *)handle;<br>
>> -    struct amdgpu_ring *ring = &adev->uvd.inst->ring;<br>
>>         if (RREG32(mmUVD_STATUS) != 0)<br>
>>           uvd_v6_0_stop(adev);<br>
>>   -    ring->sched.ready = false;<br>
>> -<br>
>>       return 0;<br>
>>   }<br>
>>   diff --git a/drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c <br>
>> b/drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c<br>
>> index 0995378d8263..af3b1c9d3377 100644<br>
>> --- a/drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c<br>
>> +++ b/drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c<br>
>> @@ -598,7 +598,6 @@ static int uvd_v7_0_hw_init(void *handle)<br>
>>   static int uvd_v7_0_hw_fini(void *handle)<br>
>>   {<br>
>>       struct amdgpu_device *adev = (struct amdgpu_device *)handle;<br>
>> -    int i;<br>
>>         if (!amdgpu_sriov_vf(adev))<br>
>>           uvd_v7_0_stop(adev);<br>
>> @@ -607,12 +606,6 @@ static int uvd_v7_0_hw_fini(void *handle)<br>
>>           DRM_DEBUG("For SRIOV client, shouldn't do anything.\n");<br>
>>       }<br>
>>   -    for (i = 0; i < adev->uvd.num_uvd_inst; ++i) {<br>
>> -        if (adev->uvd.harvest_config & (1 << i))<br>
>> -            continue;<br>
>> -        adev->uvd.inst[i].ring.sched.ready = false;<br>
>> -    }<br>
>> -<br>
>>       return 0;<br>
>>   }<br>
>>   diff --git a/drivers/gpu/drm/amd/amdgpu/vce_v4_0.c <br>
>> b/drivers/gpu/drm/amd/amdgpu/vce_v4_0.c<br>
>> index 3fd102efb7af..5e986dea4645 100644<br>
>> --- a/drivers/gpu/drm/amd/amdgpu/vce_v4_0.c<br>
>> +++ b/drivers/gpu/drm/amd/amdgpu/vce_v4_0.c<br>
>> @@ -539,7 +539,6 @@ static int vce_v4_0_hw_init(void *handle)<br>
>>   static int vce_v4_0_hw_fini(void *handle)<br>
>>   {<br>
>>       struct amdgpu_device *adev = (struct amdgpu_device *)handle;<br>
>> -    int i;<br>
>>         if (!amdgpu_sriov_vf(adev)) {<br>
>>           /* vce_v4_0_wait_for_idle(handle); */<br>
>> @@ -549,9 +548,6 @@ static int vce_v4_0_hw_fini(void *handle)<br>
>>           DRM_DEBUG("For SRIOV client, shouldn't do anything.\n");<br>
>>       }<br>
>>   -    for (i = 0; i < adev->vce.num_rings; i++)<br>
>> -        adev->vce.ring[i].sched.ready = false;<br>
>> -<br>
>>       return 0;<br>
>>   }<br>
>>   diff --git a/drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c <br>
>> b/drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c<br>
>> index 71f61afdc655..df92c4e1efaa 100644<br>
>> --- a/drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c<br>
>> +++ b/drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c<br>
>> @@ -227,14 +227,11 @@ static int vcn_v1_0_hw_init(void *handle)<br>
>>   static int vcn_v1_0_hw_fini(void *handle)<br>
>>   {<br>
>>       struct amdgpu_device *adev = (struct amdgpu_device *)handle;<br>
>> -    struct amdgpu_ring *ring = &adev->vcn.inst->ring_dec;<br>
>>         if ((adev->pg_flags & AMD_PG_SUPPORT_VCN_DPG) ||<br>
>>           RREG32_SOC15(VCN, 0, mmUVD_STATUS))<br>
>>           vcn_v1_0_set_powergating_state(adev, AMD_PG_STATE_GATE);<br>
>>   -    ring->sched.ready = false;<br>
>> -<br>
>>       return 0;<br>
>>   }<br>
>>   diff --git a/drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c <br>
>> b/drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c<br>
>> index c387c81f8695..37508277cbdf 100644<br>
>> --- a/drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c<br>
>> +++ b/drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c<br>
>> @@ -232,21 +232,12 @@ static int vcn_v2_0_hw_init(void *handle)<br>
>>   static int vcn_v2_0_hw_fini(void *handle)<br>
>>   {<br>
>>       struct amdgpu_device *adev = (struct amdgpu_device *)handle;<br>
>> -    struct amdgpu_ring *ring = &adev->vcn.inst->ring_dec;<br>
>> -    int i;<br>
>>         if ((adev->pg_flags & AMD_PG_SUPPORT_VCN_DPG) ||<br>
>>           (adev->vcn.cur_state != AMD_PG_STATE_GATE &&<br>
>>             RREG32_SOC15(VCN, 0, mmUVD_STATUS)))<br>
>>           vcn_v2_0_set_powergating_state(adev, AMD_PG_STATE_GATE);<br>
>>   -    ring->sched.ready = false;<br>
>> -<br>
>> -    for (i = 0; i < adev->vcn.num_enc_rings; ++i) {<br>
>> -        ring = &adev->vcn.inst->ring_enc[i];<br>
>> -        ring->sched.ready = false;<br>
>> -    }<br>
>> -<br>
>>       return 0;<br>
>>   }<br>
>>   diff --git a/drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c <br>
>> b/drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c<br>
>> index 2d64ba1adf99..90a1994857db 100644<br>
>> --- a/drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c<br>
>> +++ b/drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c<br>
>> @@ -307,25 +307,16 @@ static int vcn_v2_5_hw_init(void *handle)<br>
>>   static int vcn_v2_5_hw_fini(void *handle)<br>
>>   {<br>
>>       struct amdgpu_device *adev = (struct amdgpu_device *)handle;<br>
>> -    struct amdgpu_ring *ring;<br>
>> -    int i, j;<br>
>> +    int i;<br>
>>         for (i = 0; i < adev->vcn.num_vcn_inst; ++i) {<br>
>>           if (adev->vcn.harvest_config & (1 << i))<br>
>>               continue;<br>
>> -        ring = &adev->vcn.inst[i].ring_dec;<br>
>>             if ((adev->pg_flags & AMD_PG_SUPPORT_VCN_DPG) ||<br>
>>               (adev->vcn.cur_state != AMD_PG_STATE_GATE &&<br>
>>                RREG32_SOC15(VCN, i, mmUVD_STATUS)))<br>
>>               vcn_v2_5_set_powergating_state(adev, AMD_PG_STATE_GATE);<br>
>> -<br>
>> -        ring->sched.ready = false;<br>
>> -<br>
>> -        for (j = 0; j < adev->vcn.num_enc_rings; ++j) {<br>
>> -            ring = &adev->vcn.inst[i].ring_enc[j];<br>
>> -            ring->sched.ready = false;<br>
>> -        }<br>
>>       }<br>
>>         return 0;<br>
> _______________________________________________<br>
> amd-gfx mailing list<br>
> amd-gfx@lists.freedesktop.org<br>
> <a href="https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.freedesktop.org%2Fmailman%2Flistinfo%2Famd-gfx&amp;data=02%7C01%7Calexander.deucher%40amd.com%7Ca040605cb0574b3fc93608d7bb945b4c%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637184118188416898&amp;sdata=hzQLxdX8COuG2nB0mn6YWO4%2Btd402tIfRiOTh%2BCK58M%3D&amp;reserved=0">
https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.freedesktop.org%2Fmailman%2Flistinfo%2Famd-gfx&amp;data=02%7C01%7Calexander.deucher%40amd.com%7Ca040605cb0574b3fc93608d7bb945b4c%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637184118188416898&amp;sdata=hzQLxdX8COuG2nB0mn6YWO4%2Btd402tIfRiOTh%2BCK58M%3D&amp;reserved=0</a><br>
<br>
</div>
</span></font></div>
</div>
</body>
</html>