[PATCH v5 00/10] drm: zynqmp_dp: IRQ cleanups and debugfs support

Sean Anderson sean.anderson at linux.dev
Fri Aug 9 18:55:02 UTC 2024


On 8/8/24 08:46, Tomi Valkeinen wrote:
> Hi Sean,
> 
> On 17/06/2024 17:48, Sean Anderson wrote:
>> On 6/17/24 03:47, Tomi Valkeinen wrote:
>>> Hi Sean,
>>>
>>> On 03/05/2024 22:29, Sean Anderson wrote:
>>>> This series cleans up the zyqnmp_dp IRQ and locking situation. Once
>>>> that's done, it adds debugfs support. The intent is to enable compliance
>>>> testing or to help debug signal-integrity issues.
>>>>
>>>> Last time I discussed converting the HPD work(s) to a threaded IRQ. I
>>>> did not end up doing that for this series since the steps would be
>>>>
>>>> - Add locking
>>>> - Move link retraining to a work function
>>>> - Harden the IRQ
>>>> - Merge the works into a threaded IRQ (omitted)
>>>>
>>>> Which with the exception of the final step is the same as leaving those
>>>> works as-is. Conversion to a threaded IRQ can be done as a follow-up.
>>>
>>> I tested this, and the "drm: zynqmp_dp: Convert to a hard IRQ" causes a hang for me when unloading the drivers. Unfortunately I'm not in the condition to debug it at the moment.
>>>
>>> I have picked the first three patches into drm-misc-next, though, to decrease the number of patches in the series a bit. They looked independent and safe enough to apply.
>>
>> Are you running into [1]?
>>
>> --Sean
>>
>> [1] https://lore.kernel.org/dri-devel/4d8f4c9b-2efb-4774-9a37-2f257f79b2c9@linux.dev/
>>
> 
> No. Afaics, it breaks because the irq handler is requested with IRQF_SHARED, and that means the handler can be called at any time. The handler reads DP registers, but the DP IP could already be powered off.
> 
> You'll probably see it easily if you enable CONFIG_DEBUG_SHIRQ, and unload the module or unbind the device.

Ah, looks like I need to use devm_free_irq instead of disable_irq.

And after fixing this, [1] turns up again. I guess I'll take a crack at it...

--Sean



More information about the dri-devel mailing list