mirror of
https://github.com/hardkernel/kernel_common_drivers.git
synced 2026-06-25 12:03:48 +09:00
8e5f09cfa4
PD#SWPL-104023 Problem: 1.hdmitx_event flag can be set/cleared in both top/bottom half of hpd interrupt, so there may be write concurrency of this flag, subsequent plug in event may be ignored if the first plugin handler clear the this flag of the second plugin event 2.hpd change event during bootup may be lost to process, as there's opportunity there's hpd event come between hpd level read/handler and hpd irq enable Solution: optimise hpd flow 1.use hw hpd state to indicate the hpd intr state and only change in top half of hpd irq handler. use sw hpd flag to indicate if plugout/in bottom half done 2.lock mutex-> enable hpd irq-> do hpd top half handler-> do hpd bottom half handler->unlock mutex, so that all hpd irq will be handled. Verify: ohm Test: hotplug Change-Id: I5347a37f022dd37c5a5a436101af440aa49dd662 Signed-off-by: hang cheng <hang.cheng@amlogic.com>