如果只有使用Accdet 作为耳机的检测,没有使用EINT_HP 作为拔插检测。会遇到概率性:短按HOOK键,无法接听电话;短按HOOK键,会变成长按的效果,挂断电话。
在accdet_irq_handler函数 return 1之前做如下修改:
//add beginwhile((pmic_pwrap_read(ACCDET_IRQ_STS) & IRQ_STATUS_BIT) && i<10) {
i++;
udelay(200);
}
//add end
return 1;
等待上一次中断位被清除掉以后,再返回。