summaryrefslogtreecommitdiff
path: root/drivers/uio
diff options
context:
space:
mode:
authorLiu Gang <Gang.Liu@freescale.com>2014-10-29 11:56:26 (GMT)
committerMatthew Weigel <Matthew.Weigel@freescale.com>2014-12-11 18:39:08 (GMT)
commit23fd3e4bab3478f2b620732c0a4e07b3567b9f1c (patch)
tree1ca85caed83598e56d3a5c0f770b1de0799d48c1 /drivers/uio
parent44f0a9a894db63d29795e63a58f6be4fe21b0ae6 (diff)
downloadlinux-fsl-qoriq-23fd3e4bab3478f2b620732c0a4e07b3567b9f1c.tar.xz
UIO/RapidIO: Add workaround for erratum A-008116
Erratum A-008116 can cause a SRIO phyiscal or logical/transport error interrupt (PINTn) that orginates on port 2 is incorrectly reported as originating on port 1. Valid workaround needed if using Serial RapidIO port 2. Upon detection of a Serial RapidIO interrupt, each port's LTLEDCSR and PnEDCSR registers must be read to determine the port origin. Signed-off-by: Liu Gang <Gang.Liu@freescale.com> Change-Id: I309106e79853cf08b9b546924a41ec74ad4b8b53 Reviewed-on: http://git.am.freescale.net:8181/22437 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Minghuan Lian <Minghuan.Lian@freescale.com> Reviewed-by: Mingkai Hu <Mingkai.Hu@freescale.com> Reviewed-by: Richard Schmitt <richard.schmitt@freescale.com>
Diffstat (limited to 'drivers/uio')
-rw-r--r--drivers/uio/fsl_srio_uio.c2
1 files changed, 0 insertions, 2 deletions
diff --git a/drivers/uio/fsl_srio_uio.c b/drivers/uio/fsl_srio_uio.c
index 840872b..c46aab5 100644
--- a/drivers/uio/fsl_srio_uio.c
+++ b/drivers/uio/fsl_srio_uio.c
@@ -111,7 +111,6 @@ static irqreturn_t srio_uio_irq_handler(int irq, struct uio_info *dev_info)
out_be32(sriodev->regs.regs_win + LTLEECSR, 0);
for (i = 0; i < sriodev->port_num; i++) {
- if (port_bits & (1 << (31 - i))) {
/* Clear retry error threshold exceeded */
out_be32(sriodev->regs.regs_win + IECSR + 0x80 * i,
SRIO_IECSR_CLEAR);
@@ -121,7 +120,6 @@ static irqreturn_t srio_uio_irq_handler(int irq, struct uio_info *dev_info)
/* Clear EDCSR */
out_be32(sriodev->regs.regs_win + EDCSR + 0x40 * i,
0);
- }
}
return IRQ_HANDLED;