aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/megaraid/megaraid_sas_fp.c
diff options
context:
space:
mode:
authorSumit.Saxena@lsi.com <Sumit.Saxena@lsi.com>2013-05-22 12:31:43 +0530
committerJames Bottomley <JBottomley@Parallels.com>2013-06-24 17:40:53 -0700
commit21d3c7105b7d87ad85b5d16d5c573941fc51585f (patch)
tree1a529bd2e1fbf8a057f29277b9d6ebf770cbe3fc /drivers/scsi/megaraid/megaraid_sas_fp.c
parent[SCSI] megaraid_sas: Set IO request timeout value provided by OS timeout for Tape devices (diff)
downloadlinux-dev-21d3c7105b7d87ad85b5d16d5c573941fc51585f.tar.xz
linux-dev-21d3c7105b7d87ad85b5d16d5c573941fc51585f.zip
[SCSI] megaraid_sas: Add support for MegaRAID Fury (device ID-0x005f) 12Gb/s controllers
Signed-off-by: Sumit Saxena <sumit.saxena@lsi.com> Signed-off-by: Kashyap Desai <kashyap.desai@lsi.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/megaraid/megaraid_sas_fp.c')
-rw-r--r--drivers/scsi/megaraid/megaraid_sas_fp.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/drivers/scsi/megaraid/megaraid_sas_fp.c b/drivers/scsi/megaraid/megaraid_sas_fp.c
index b06a240ee39a..356b684f5355 100644
--- a/drivers/scsi/megaraid/megaraid_sas_fp.c
+++ b/drivers/scsi/megaraid/megaraid_sas_fp.c
@@ -238,6 +238,11 @@ u8 MR_GetPhyParams(struct megasas_instance *instance, u32 ld, u64 stripRow,
u64 row;
u8 retval = TRUE;
int error_code = 0;
+ u8 do_invader = 0;
+
+ if ((instance->pdev->device == PCI_DEVICE_ID_LSI_INVADER ||
+ instance->pdev->device == PCI_DEVICE_ID_LSI_FURY))
+ do_invader = 1;
row = mega_div64_32(stripRow, raid->rowDataSize);
@@ -282,9 +287,8 @@ u8 MR_GetPhyParams(struct megasas_instance *instance, u32 ld, u64 stripRow,
else {
*pDevHandle = MR_PD_INVALID; /* set dev handle as invalid. */
if ((raid->level >= 5) &&
- ((instance->pdev->device != PCI_DEVICE_ID_LSI_INVADER) ||
- (instance->pdev->device == PCI_DEVICE_ID_LSI_INVADER &&
- raid->regTypeReqOnRead != REGION_TYPE_UNUSED)))
+ (!do_invader || (do_invader &&
+ (raid->regTypeReqOnRead != REGION_TYPE_UNUSED))))
pRAID_Context->regLockFlags = REGION_TYPE_EXCLUSIVE;
else if (raid->level == 1) {
/* Get alternate Pd. */
@@ -405,7 +409,8 @@ MR_BuildRaidContext(struct megasas_instance *instance,
}
pRAID_Context->timeoutValue = map->raidMap.fpPdIoTimeoutSec;
- if (instance->pdev->device == PCI_DEVICE_ID_LSI_INVADER)
+ if ((instance->pdev->device == PCI_DEVICE_ID_LSI_INVADER) ||
+ (instance->pdev->device == PCI_DEVICE_ID_LSI_FURY))
pRAID_Context->regLockFlags = (isRead) ?
raid->regTypeReqOnRead : raid->regTypeReqOnWrite;
else