diff options
author | Alexandre Bounine <alexandre.bounine@idt.com> | 2010-10-27 18:34:35 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-10-27 21:03:16 -0400 |
commit | 388c45ccfaeec68e334ad79edeb0b5b0a43197ff (patch) | |
tree | 5a9e98d4ba6427d542ed7f384c31774cb625bff8 /drivers/rapidio/rio.c | |
parent | af84ca38aff94061dd0711edbb99b0900a9c28fd (diff) |
rapidio: fix IDLE2 bits corruption
RapidIO spec v.2.1 adds Idle Sequence 2 into LP-Serial Physical Layer.
The fix ensures that corresponding bits are not corrupted during error
handling.
Signed-off-by: Alexandre Bounine <alexandre.bounine@idt.com>
Cc: Thomas Moll <thomas.moll@sysgo.com>
Cc: Matt Porter <mporter@kernel.crashing.org>
Cc: Li Yang <leoli@freescale.com>
Cc: Kumar Gala <galak@kernel.crashing.org>
Cc: Micha Nelissen <micha@neli.hopto.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/rapidio/rio.c')
-rw-r--r-- | drivers/rapidio/rio.c | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/drivers/rapidio/rio.c b/drivers/rapidio/rio.c index 7f18a65c4ed0..68cf0c99138a 100644 --- a/drivers/rapidio/rio.c +++ b/drivers/rapidio/rio.c | |||
@@ -871,15 +871,10 @@ int rio_inb_pwrite_handler(union rio_pw_msg *pw_msg) | |||
871 | rdev->em_efptr + RIO_EM_LTL_ERR_DETECT, 0); | 871 | rdev->em_efptr + RIO_EM_LTL_ERR_DETECT, 0); |
872 | } | 872 | } |
873 | 873 | ||
874 | /* Clear remaining error bits */ | 874 | /* Clear remaining error bits and Port-Write Pending bit */ |
875 | rio_mport_write_config_32(mport, destid, hopcount, | 875 | rio_mport_write_config_32(mport, destid, hopcount, |
876 | rdev->phys_efptr + RIO_PORT_N_ERR_STS_CSR(portnum), | 876 | rdev->phys_efptr + RIO_PORT_N_ERR_STS_CSR(portnum), |
877 | err_status & RIO_PORT_N_ERR_STS_CLR_MASK); | 877 | err_status); |
878 | |||
879 | /* Clear Port-Write Pending bit */ | ||
880 | rio_mport_write_config_32(mport, destid, hopcount, | ||
881 | rdev->phys_efptr + RIO_PORT_N_ERR_STS_CSR(portnum), | ||
882 | RIO_PORT_N_ERR_STS_PW_PEND); | ||
883 | 878 | ||
884 | return 0; | 879 | return 0; |
885 | } | 880 | } |