SIM Hot Swap Plugin/out HISR fail while touch in touch panel

SIM Hot Swap Plugin/out HISR fail while touch in touch panel

[Description]

1, Touch and hold Touch Panel, or Press and holdkeys(used EINT)
2, Plug in or Plug out SIM card.
3, SIM card hot swap failure.

[Solution]

MT65*5/MT65*7 platform, AP & Modem share EINT module.
Touch and hold Touch Panel, or Press and hold keys(used EINT), Touch/keys EINT pin
trigger by AP, AP EINT ownermask EINT_MD. So modem EINT failure.
Patch: ALPS00420157
OR
modify AP side mt_eint.c/mt6577/5_eint.c as flow
alps\mediatek\platform\$(mt6577 or mt6575)\kernel\core\mt6577/5_eint.c(ICS2)
alps\mediatek\platform\$(mt6577 or mt6575)\kernel\core\mt_eint.c(JB)
/*
* mt65xx_eint_isr: EINT interrupt service routine.
* @irq: EINT IRQ number
* @dev_id:
* Return IRQ returned code.
*/
static irqreturn_t mt65xx_eint_isr(int irq, void *dev_id)
{
unsigned int index;
unsigned int status;
unsigned int domain;
/*
* NoteXXX: Need to get the wake up for 0.5 seconds when an EINT intr tirggers.
* This is used to prevent system from suspend such that other drivers
* or applications can have enough time to obtain their own wake lock.
* (This information is gotten from the power management owner.)
*/
tasklet_schedule(&eint_tasklet);
status = readl(EINT_STA);
domain = readl(EINT_D0EN);
dbgmsg("EINT Module - %s ISR Start\n", __func__);
dbgmsg("EINT Module - EINT_STA = 0x%x\n", status);
for (index = 0; index < EINT_MAX_CHANNEL; index++) {
if ((status & (1 << (index))) && (domain & (1 << (index)))) {
mt65xx_eint_mask(index);
if (EINT_FUNC.eint_func[index]) {
EINT_FUNC.eint_func[index]();
}
mt65xx_reg_sync_writel(1 << index, EINT_INTACK);
#if(EINT_DEBUG == 1)
status = readl(EINT_STA);
printk("EINT Module - EINT_STA after ack = 0x%x\n", status);
#endif
if (EINT_FUNC.eint_auto_umask[index]) {
mt65xx_eint_unmask(index);
}
}
}
dbgmsg("EINT Module - %s ISR END\n", __func__);
return IRQ_HANDLED;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值