[PATCH] drm/amdgpu/vcn: remove irq disabling in vcn 5 suspend

David Wu davidwu2 at amd.com
Mon May 13 17:47:37 UTC 2024


On 2024-05-13 13:43, Christian König wrote:
> Am 13.05.24 um 19:41 schrieb David Wu:
>>
>> On 2024-05-13 13:11, Christian König wrote:
>>>
>>>
>>> Am 09.05.24 um 20:40 schrieb David (Ming Qiang) Wu:
>>>> We do not directly enable/disable VCN IRQ in vcn 5.0.0.
>>>> And we do not handle the IRQ state as well. So the calls to
>>>> disable IRQ and set state are removed. This effectively gets
>>>> rid of the warining of
>>>>        "WARN_ON(!amdgpu_irq_enabled(adev, src, type))"
>>>> in amdgpu_irq_put().
>>>>
>>>> Signed-off-by: David (Ming Qiang) Wu <David.Wu3 at amd.com>
>>>> ---
>>>>   drivers/gpu/drm/amd/amdgpu/vcn_v5_0_0.c | 19 -------------------
>>>>   1 file changed, 19 deletions(-)
>>>>
>>>> diff --git a/drivers/gpu/drm/amd/amdgpu/vcn_v5_0_0.c 
>>>> b/drivers/gpu/drm/amd/amdgpu/vcn_v5_0_0.c
>>>> index 851975b5ce29..9b87d6a49b39 100644
>>>> --- a/drivers/gpu/drm/amd/amdgpu/vcn_v5_0_0.c
>>>> +++ b/drivers/gpu/drm/amd/amdgpu/vcn_v5_0_0.c
>>>> @@ -229,8 +229,6 @@ static int vcn_v5_0_0_hw_fini(void *handle)
>>>>       for (i = 0; i < adev->vcn.num_vcn_inst; ++i) {
>>>>           if (adev->vcn.harvest_config & (1 << i))
>>>>               continue;
>>>> -
>>>> -        amdgpu_irq_put(adev, &adev->vcn.inst[i].irq, 0);
>>>>       }
>>>
>>> Looks like you can now remove the whole for loop.
>> I realized that but there is a new patch added inside this loop to 
>> cover the suspend/resume issue.
>
> Is that added in a later patch or did you rebased your patch ontop of it?
>
> If it's added in a later patch then it's better to remove and re-add 
> the lines. Otherwise you can get a mail from automated scripts that 
> you have dead code.
>
> Bit annoying but the documented way of doing things in the kernel.
understood - it is added in the next patch right after this one - so far 
I have not got an email for the dead code yet. If it raises an issue I 
will  work on it.
>
> Regards,
> Christian.
>
>>>
>>> Apart from that looks good to me,
>>> Christian.
>>>
>>>>         return 0;
>>>> @@ -1226,22 +1224,6 @@ static int 
>>>> vcn_v5_0_0_set_powergating_state(void *handle, enum amd_powergating_s
>>>>       return ret;
>>>>   }
>>>>   -/**
>>>> - * vcn_v5_0_0_set_interrupt_state - set VCN block interrupt state
>>>> - *
>>>> - * @adev: amdgpu_device pointer
>>>> - * @source: interrupt sources
>>>> - * @type: interrupt types
>>>> - * @state: interrupt states
>>>> - *
>>>> - * Set VCN block interrupt state
>>>> - */
>>>> -static int vcn_v5_0_0_set_interrupt_state(struct amdgpu_device 
>>>> *adev, struct amdgpu_irq_src *source,
>>>> -    unsigned type, enum amdgpu_interrupt_state state)
>>>> -{
>>>> -    return 0;
>>>> -}
>>>> -
>>>>   /**
>>>>    * vcn_v5_0_0_process_interrupt - process VCN block interrupt
>>>>    *
>>>> @@ -1287,7 +1269,6 @@ static int 
>>>> vcn_v5_0_0_process_interrupt(struct amdgpu_device *adev, struct amdgp
>>>>   }
>>>>     static const struct amdgpu_irq_src_funcs vcn_v5_0_0_irq_funcs = {
>>>> -    .set = vcn_v5_0_0_set_interrupt_state,
>>>>       .process = vcn_v5_0_0_process_interrupt,
>>>>   };
>>>
>


More information about the amd-gfx mailing list