summaryrefslogtreecommitdiff
path: root/drivers/mxc/sim/imx_emvsim.c
diff options
context:
space:
mode:
authorJoakim Zhang <qiangqing.zhang@nxp.com>2019-06-04 09:41:46 +0800
committerDong Aisheng <aisheng.dong@nxp.com>2019-11-25 15:47:57 +0800
commitf0fba896a3b6de07bdd1866b622458781251ff84 (patch)
treeedee7545a1b333a74ea8c47787b8cd43fa63ca1f /drivers/mxc/sim/imx_emvsim.c
parentc79402071ae74826ce35cacf6d55b89fe614a7d9 (diff)
MLK-22211 mxc: emvsim: should not clear PEF/FEF flag in irq handler
Shouldn't clear PEF/FEF flag in irq handler as they are just a flag which can't trigger interrupt. And they will be check later in irq handler. Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com> Acked-by: Fugang Duan <fugang.duan@nxp.com>
Diffstat (limited to 'drivers/mxc/sim/imx_emvsim.c')
-rw-r--r--drivers/mxc/sim/imx_emvsim.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/drivers/mxc/sim/imx_emvsim.c b/drivers/mxc/sim/imx_emvsim.c
index 3e59e7aa053e..1b9207313d47 100644
--- a/drivers/mxc/sim/imx_emvsim.c
+++ b/drivers/mxc/sim/imx_emvsim.c
@@ -431,9 +431,6 @@ static int32_t emvsim_check_rec_data(u32 *reg_data)
{
s32 err = 0;
- if (*reg_data & CWT_ERR)
- err |= SIM_ERROR_CWT;
-
if (*reg_data & FEF)
err |= SIM_ERROR_FRAME;
@@ -571,7 +568,7 @@ static irqreturn_t emvsim_irq_handler(int irq, void *dev_id)
/* clear TX/RX interrupt status, W1C*/
tx_status = __raw_readl(emvsim->ioaddr + EMV_SIM_TX_STATUS);
- rx_status = __raw_readl(emvsim->ioaddr + EMV_SIM_RX_STATUS);
+ rx_status = __raw_readl(emvsim->ioaddr + EMV_SIM_RX_STATUS) & ~(PEF | FEF);
__raw_writel(tx_status, emvsim->ioaddr + EMV_SIM_TX_STATUS);
__raw_writel(rx_status, emvsim->ioaddr + EMV_SIM_RX_STATUS);