Quoting khsieh@xxxxxxxxxxxxxx (2021-05-21 08:21:58) > > > > Ok. So you're saying that we want to put both events on the queue > > regardless, and put IRQ_HPD there first because we want to check the > > status bit? Doesn't reading the status bit require the dongle to be > > connected though? So if an unplug came in along with an irq_hpd we may > > queue both the irq_hpd and the unplug, but when it comes time to > > process > > the irq_hpd in the kthread the link will be gone and so trying the dpcd > > read for the link status will fail? > > > yes, > we had a previous bug with this scenarios already. > https://partnerissuetracker.corp.google.com/issues/170598152 > At this case, dongle produce two interrupts, irq_hpd followed by unplug > immediately (not presented at isr status register at same time), at the > time dongle unplugged form DTU. > But due to dp ctrl reset at handling irq_hpd which cause unplug mask bit > be cleared so that unplug interrupt got lost. > Again, wouldn't that be too late if the hardirq handler is delayed to the point that the two irqs are pending in the isr status register?