Lines Matching refs:raid

50 MODULE_PARM_DESC(lb_pending_cmds, "Change raid-1 load balancing outstanding "
155 * This function will Populate Driver Map using firmware raid map
309 struct MR_LD_RAID *raid;
364 raid = MR_LdRaidGet(ld, drv_map);
365 le32_to_cpus((u32 *)&raid->capability);
378 struct MR_LD_RAID *raid = MR_LdRaidGet(ld, map);
381 for (span = 0; span < raid->spanDepth; span++, pSpanBlock++) {
395 blk = (blk + le64_to_cpu(quad->offsetInSpan)) << raid->stripeShift;
427 struct MR_LD_RAID *raid = MR_LdRaidGet(ld, map);
442 for (span = 0; span < raid->spanDepth; span++)
460 << raid->stripeShift;
490 struct MR_LD_RAID *raid = MR_LdRaidGet(ld, map);
509 for (span = 0, span_offset = 0; span < raid->spanDepth; span++)
547 struct MR_LD_RAID *raid = MR_LdRaidGet(ld, map);
562 for (span = 0; span < raid->spanDepth; span++)
608 struct MR_LD_RAID *raid = MR_LdRaidGet(ld, map);
625 for (span = 0, span_offset = 0; span < raid->spanDepth; span++)
651 struct MR_LD_RAID *raid = MR_LdRaidGet(ld, map);
655 switch (raid->level) {
695 struct MR_LD_RAID *raid = MR_LdRaidGet(ld, map);
712 if (raid->level == 6) {
734 /* get second pd also for raid 1/10 fast path writes*/
736 (raid->level == 1) &&
744 if ((raid->level >= 5) &&
747 (raid->regTypeReqOnRead != REGION_TYPE_UNUSED))))
749 else if (raid->level == 1) {
796 struct MR_LD_RAID *raid = MR_LdRaidGet(ld, map);
807 row = mega_div64_32(stripRow, raid->rowDataSize);
809 if (raid->level == 6) {
811 u32 logArm = mega_mod64(stripRow, raid->rowDataSize);
814 if (raid->rowSize == 0)
817 rowMod = mega_mod64(row, raid->rowSize);
818 armQ = raid->rowSize-1-rowMod; /* index of Q drive */
820 if (arm >= raid->rowSize) /* handle wrap condition */
821 arm -= raid->rowSize;
824 if (raid->modFactor == 0)
827 raid->modFactor),
831 if (raid->spanDepth == 1) {
833 *pdBlock = row << raid->stripeShift;
848 /* get second pd also for raid 1/10 fast path writes*/
850 (raid->level == 1) &&
858 if ((raid->level >= 5) &&
861 (raid->regTypeReqOnRead != REGION_TYPE_UNUSED))))
863 else if (raid->level == 1) {
908 struct MR_LD_RAID *raid = MR_LdRaidGet(ld, map);
914 dataArms = raid->rowDataSize;
915 arms = raid->rowSize;
926 if (raid->spanDepth == 1) {
934 if (raid->level == 6) {
977 struct MR_LD_RAID *raid;
1001 raid = MR_LdRaidGet(ld, map);
1003 io_info->ra_capable = raid->capability.ra_capable;
1009 if (raid->rowDataSize == 0) {
1016 "raid->rowDataSize is 0, but has SPAN[0]"
1024 stripSize = 1 << raid->stripeShift;
1027 io_info->data_arms = raid->rowDataSize;
1032 start_strip = ldStartBlock >> raid->stripeShift;
1036 endStrip = endLba >> raid->stripeShift;
1049 if (raid->spanDepth == 1) {
1051 *pdBlock = start_row << raid->stripeShift;
1067 start_row = mega_div64_32(start_strip, raid->rowDataSize);
1068 endRow = mega_div64_32(endStrip, raid->rowDataSize);
1077 regStart = start_row << raid->stripeShift;
1081 io_info->do_fp_rlbypass = raid->capability.fpBypassRegionLock;
1084 if (raid->capability.fpCapable) {
1086 io_info->fpOkForIo = (raid->capability.fpReadCapable &&
1088 raid->capability.
1091 io_info->fpOkForIo = (raid->capability.fpWriteCapable &&
1093 raid->capability.
1110 if (start_strip == (start_row + 1) * raid->rowDataSize - 1) {
1119 regSize += (numRows-2) << raid->stripeShift;
1122 if (endStrip == endRow*raid->rowDataSize)
1143 regSize += (numRows-2) << raid->stripeShift;
1153 cpu_to_le16(raid->fpIoTimeoutForLd ?
1154 raid->fpIoTimeoutForLd :
1158 raid->regTypeReqOnRead : raid->regTypeReqOnWrite;
1161 REGION_TYPE_SHARED_READ : raid->regTypeReqOnWrite;
1162 pRAID_Context->virtual_disk_tgt_id = raid->targetId;
1165 pRAID_Context->config_seq_num = raid->seqNum;
1166 /* save pointer to raid->LUN array */
1167 *raidLUN = raid->LUN;
1170 if (fusion->r56_div_offload && (raid->level >= 5) && !isRead) {
1226 struct MR_LD_RAID *raid;
1237 raid = MR_LdRaidGet(ld, map);
1239 for (span = 0; span < raid->spanDepth; span++) {
1252 count < raid->spanDepth; count++) {
1273 ((span_row << raid->stripeShift)
1293 ((span_row << raid->stripeShift)
1315 if (span == raid->spanDepth)
1326 struct MR_LD_RAID *raid;
1338 raid = MR_LdRaidGet(ld, drv_map);
1339 if ((raid->level != 1) ||
1340 (raid->ldState != MR_LD_STATE_OPTIMAL)) {
1353 struct MR_LD_RAID *raid;
1368 raid = MR_LdRaidGet(ld, drv_map);
1370 SPAN_ROW_SIZE(drv_map, ld, span) : raid->rowSize;