diff options
author | Joakim Zhang <qiangqing.zhang@nxp.com> | 2019-06-04 09:41:46 +0800 |
---|---|---|
committer | Joakim Zhang <qiangqing.zhang@nxp.com> | 2019-07-12 09:36:50 +0800 |
commit | 423af91c26881d50ea3a580bc2e9b660fe36b5a7 (patch) | |
tree | df18b933cdbae7da2d7cb7daac17c096d3c93e64 /drivers/mxc/sim | |
parent | 0377ac8769fb5366a254abdf885d258fc70ac7fe (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.c | 5 |
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); |