summaryrefslogtreecommitdiffstats
path: root/drivers/scsi
diff options
context:
space:
mode:
authorXiangliang Yu <yuxiangl@marvell.com>2011-09-29 09:34:11 +0200
committerJames Bottomley <JBottomley@Parallels.com>2011-10-02 20:14:00 +0200
commit07f098e6f4a9a488605d6a3a13ce2805023a0384 (patch)
tree62b3c08b04b566645987ea55f86b6fe369114c79 /drivers/scsi
parent[SCSI] mvsas: fixed some disk spin up issue (diff)
downloadlinux-07f098e6f4a9a488605d6a3a13ce2805023a0384.tar.xz
linux-07f098e6f4a9a488605d6a3a13ce2805023a0384.zip
[SCSI] mvsas: fixed wrong destination when hiting NAK for command frame
disable non data frame retry Signed-off-by: Xiangliang Yu <yuxiangl@marvell.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi')
-rw-r--r--drivers/scsi/mvsas/mv_94xx.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/scsi/mvsas/mv_94xx.c b/drivers/scsi/mvsas/mv_94xx.c
index 8f32c7c567cf..ce4e970bcedf 100644
--- a/drivers/scsi/mvsas/mv_94xx.c
+++ b/drivers/scsi/mvsas/mv_94xx.c
@@ -398,6 +398,16 @@ static int __devinit mvs_94xx_init(struct mvs_info *mvi)
/* init phys */
mvs_phy_hacks(mvi);
+ /* disable non data frame retry */
+ tmp = mvs_cr32(mvi, CMD_SAS_CTL1);
+ if ((revision == VANIR_A0_REV) ||
+ (revision == VANIR_B0_REV) ||
+ (revision == VANIR_C0_REV)) {
+ tmp &= ~0xffff;
+ tmp |= 0x007f;
+ mvs_cw32(mvi, CMD_SAS_CTL1, tmp);
+ }
+
/* set LED blink when IO*/
mw32(MVS_PA_VSR_ADDR, VSR_PHY_ACT_LED);
tmp = mr32(MVS_PA_VSR_PORT);