summaryrefslogtreecommitdiff
path: root/drivers/mxc/sim
diff options
context:
space:
mode:
authorJoakim Zhang <qiangqing.zhang@nxp.com>2019-06-04 09:41:46 +0800
committerJoakim Zhang <qiangqing.zhang@nxp.com>2019-07-12 09:36:50 +0800
commit423af91c26881d50ea3a580bc2e9b660fe36b5a7 (patch)
treedf18b933cdbae7da2d7cb7daac17c096d3c93e64 /drivers/mxc/sim
parent0377ac8769fb5366a254abdf885d258fc70ac7fe (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')
-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 1fc682e2efd9..6d9dab665e81 100644
--- a/drivers/mxc/sim/imx_emvsim.c
+++ b/drivers/mxc/sim/imx_emvsim.c
@@ -430,9 +430,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;
@@ -570,7 +567,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);