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@xxxxxxxxx/ >> > > 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