megaraid_sas: Remove PCI id checks
Remove PCI id based checks and use instance->ctrl_context to decide whether controller is MFI-based or a Fusion adapter. Additionally, Fusion adapters are divided into two categories: Thunderbolt and Invader. Signed-off-by: Sumit Saxena <sumit.saxena@avagotech.com> Signed-off-by: Kashyap Desai <kashyap.desai@avagotech.com> Reviewed-by: Tomas Henzl <thenzl@redhat.com> Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:

کامیت شده توسط
Martin K. Petersen

والد
0d5b47a724
کامیت
5a8cb85b56
@@ -741,14 +741,12 @@ static u8 mr_spanset_get_phy_params(struct megasas_instance *instance, u32 ld,
|
||||
u8 physArm, span;
|
||||
u64 row;
|
||||
u8 retval = TRUE;
|
||||
u8 do_invader = 0;
|
||||
u64 *pdBlock = &io_info->pdBlock;
|
||||
__le16 *pDevHandle = &io_info->devHandle;
|
||||
u32 logArm, rowMod, armQ, arm;
|
||||
struct fusion_context *fusion;
|
||||
|
||||
if ((instance->pdev->device == PCI_DEVICE_ID_LSI_INVADER ||
|
||||
instance->pdev->device == PCI_DEVICE_ID_LSI_FURY))
|
||||
do_invader = 1;
|
||||
fusion = instance->ctrl_context;
|
||||
|
||||
/*Get row and span from io_info for Uneven Span IO.*/
|
||||
row = io_info->start_row;
|
||||
@@ -779,7 +777,8 @@ static u8 mr_spanset_get_phy_params(struct megasas_instance *instance, u32 ld,
|
||||
else {
|
||||
*pDevHandle = cpu_to_le16(MR_PD_INVALID);
|
||||
if ((raid->level >= 5) &&
|
||||
(!do_invader || (do_invader &&
|
||||
((fusion->adapter_type == THUNDERBOLT_SERIES) ||
|
||||
((fusion->adapter_type == INVADER_SERIES) &&
|
||||
(raid->regTypeReqOnRead != REGION_TYPE_UNUSED))))
|
||||
pRAID_Context->regLockFlags = REGION_TYPE_EXCLUSIVE;
|
||||
else if (raid->level == 1) {
|
||||
@@ -823,13 +822,12 @@ u8 MR_GetPhyParams(struct megasas_instance *instance, u32 ld, u64 stripRow,
|
||||
u8 physArm, span;
|
||||
u64 row;
|
||||
u8 retval = TRUE;
|
||||
u8 do_invader = 0;
|
||||
u64 *pdBlock = &io_info->pdBlock;
|
||||
__le16 *pDevHandle = &io_info->devHandle;
|
||||
struct fusion_context *fusion;
|
||||
|
||||
fusion = instance->ctrl_context;
|
||||
|
||||
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);
|
||||
|
||||
@@ -875,7 +873,8 @@ u8 MR_GetPhyParams(struct megasas_instance *instance, u32 ld, u64 stripRow,
|
||||
/* set dev handle as invalid. */
|
||||
*pDevHandle = cpu_to_le16(MR_PD_INVALID);
|
||||
if ((raid->level >= 5) &&
|
||||
(!do_invader || (do_invader &&
|
||||
((fusion->adapter_type == THUNDERBOLT_SERIES) ||
|
||||
((fusion->adapter_type == INVADER_SERIES) &&
|
||||
(raid->regTypeReqOnRead != REGION_TYPE_UNUSED))))
|
||||
pRAID_Context->regLockFlags = REGION_TYPE_EXCLUSIVE;
|
||||
else if (raid->level == 1) {
|
||||
@@ -909,6 +908,7 @@ MR_BuildRaidContext(struct megasas_instance *instance,
|
||||
struct RAID_CONTEXT *pRAID_Context,
|
||||
struct MR_DRV_RAID_MAP_ALL *map, u8 **raidLUN)
|
||||
{
|
||||
struct fusion_context *fusion;
|
||||
struct MR_LD_RAID *raid;
|
||||
u32 ld, stripSize, stripe_mask;
|
||||
u64 endLba, endStrip, endRow, start_row, start_strip;
|
||||
@@ -929,6 +929,7 @@ MR_BuildRaidContext(struct megasas_instance *instance,
|
||||
isRead = io_info->isRead;
|
||||
io_info->IoforUnevenSpan = 0;
|
||||
io_info->start_span = SPAN_INVALID;
|
||||
fusion = instance->ctrl_context;
|
||||
|
||||
ld = MR_TargetIdToLdGet(ldTgtId, map);
|
||||
raid = MR_LdRaidGet(ld, map);
|
||||
@@ -1092,8 +1093,7 @@ MR_BuildRaidContext(struct megasas_instance *instance,
|
||||
cpu_to_le16(raid->fpIoTimeoutForLd ?
|
||||
raid->fpIoTimeoutForLd :
|
||||
map->raidMap.fpPdIoTimeoutSec);
|
||||
if ((instance->pdev->device == PCI_DEVICE_ID_LSI_INVADER) ||
|
||||
(instance->pdev->device == PCI_DEVICE_ID_LSI_FURY))
|
||||
if (fusion->adapter_type == INVADER_SERIES)
|
||||
pRAID_Context->regLockFlags = (isRead) ?
|
||||
raid->regTypeReqOnRead : raid->regTypeReqOnWrite;
|
||||
else
|
||||
|
مرجع در شماره جدید
Block a user