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-2f257f79b...@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