Lines Matching refs:span

86 static u_int16_t MR_LdSpanArrayGet(u_int32_t ld, u_int32_t span, 
91 static MR_LD_SPAN *MR_LdSpanPtrGet(u_int32_t ld, u_int32_t span,
101 * Added for PRL11 configuration (Uneven span support)
112 static u_int8_t get_arm(struct mrsas_softc *sc, u_int32_t ld, u_int8_t span,
118 * Added for PRL11 configuration(Uneven span support)
186 static u_int16_t MR_LdSpanArrayGet(u_int32_t ld, u_int32_t span, MR_FW_RAID_MAP_ALL *map)
188 return map->raidMap.ldSpanMap[ld].spanBlock[span].span.arrayRef;
206 static MR_LD_SPAN *MR_LdSpanPtrGet(u_int32_t ld, u_int32_t span, MR_FW_RAID_MAP_ALL *map)
208 return &map->raidMap.ldSpanMap[ld].spanBlock[span].span;
264 device_printf(sc->mrsas_dev, "span map= %x\n", (unsigned int)sizeof(MR_LD_SPAN_MAP));
281 * Function to print info about span set created in driver from FW raid map
293 u_int8_t span;
309 for (span=0; span<raid->spanDepth; span++)
310 printf("Span=%x, number of quads=%x\n", span,
311 map->raidMap.ldSpanMap[ld].spanBlock[span].
323 printf(" span row start=0x%08lx, end=0x%08lx\n",
333 for (span=0; span<raid->spanDepth; span++) {
334 if (map->raidMap.ldSpanMap[ld].spanBlock[span].
337 spanBlock[span].block_span_info.
339 printf(" Span=%x, Quad=%x, diff=%x\n", span,
366 * span - Span number
377 u_int32_t span, info;
386 for (span=0; span<raid->spanDepth; span++)
387 if (map->raidMap.ldSpanMap[ld].spanBlock[span].
390 spanBlock[span].
394 return span;
409 return span;
438 u_int32_t info, strip_offset, span, span_offset;
452 for (span=0,span_offset=0; span<raid->spanDepth; span++)
453 if (map->raidMap.ldSpanMap[ld].spanBlock[span].
456 span_set->strip_offset[span])
462 "data width 0x%llx span offset 0x%llx\n", (unsigned long long)strip,
498 u_int32_t span, info;
507 for (span=0; span<raid->spanDepth; span++)
508 if (map->raidMap.ldSpanMap[ld].spanBlock[span].
511 spanBlock[span].block_span_info.quad[info];
522 strip += span_set->strip_offset[span];
554 u_int32_t info, strip_offset, span, span_offset;
566 for (span=0,span_offset=0; span<raid->spanDepth; span++)
567 if (map->raidMap.ldSpanMap[ld].spanBlock[span].
570 span_set->strip_offset[span])
572 span_set->strip_offset[span];
590 u_int8_t get_arm(struct mrsas_softc *sc, u_int32_t ld, u_int8_t span, u_int64_t stripe,
601 arm = mega_mod64(stripe, SPAN_ROW_SIZE(map, ld, span));
617 * This routine calculates the arm, span and block for the specified stripe and
628 * span - Span number
637 u_int8_t physArm, span;
648 // Get row and span from io_info for Uneven Span IO.
650 span = io_info->start_span;
655 rowMod = mega_mod64(row, SPAN_ROW_SIZE(map, ld, span));
656 armQ = SPAN_ROW_SIZE(map,ld,span) - 1 - rowMod;
658 if (arm >= SPAN_ROW_SIZE(map, ld, span))
659 arm -= SPAN_ROW_SIZE(map ,ld ,span);
663 physArm = get_arm(sc, ld, span, stripRow, map);
666 arRef = MR_LdSpanArrayGet(ld, span, map);
683 *pdBlock += stripRef + MR_LdSpanPtrGet(ld, span, map)->startBlk;
684 pRAID_Context->spanArm = (span << RAID_CTX_SPANARM_SPAN_SHIFT) | physArm;
780 " start strip 0x%llx endSrip 0x%llx span 0x%x\n",
784 mrsas_dprint(sc, MRSAS_PRL11, "LSI Debug : 1. start_row 0x%llx endRow 0x%llx Start span 0x%x\n",
825 // For Even span region lock optimization.
842 //For Uneven span region lock optimization.
920 u_int8_t span,count;
939 for (span=0; span < raid->spanDepth; span++) {
940 if (map->raidMap.ldSpanMap[ld].spanBlock[span].
946 spanBlock[span].block_span_info.
963 printf("LSI Debug span %x rowDataSize %x\n",
1017 if (span == raid->spanDepth) break; // no quads remain
1021 getSpanInfo(map, ldSpanInfo); //to get span set info
1058 /* Get the array on which this span is present */
1327 * MR_GetPhyParams Calculates arm, span, and block
1335 * This routine calculates the arm, span and block for the specified stripe
1345 u_int8_t physArm, span;
1377 span = 0;
1381 span = (u_int8_t)MR_GetSpanBlock(ld, row, pdBlock, map, &error_code);
1386 /* Get the array on which this span is present */
1387 arRef = MR_LdSpanArrayGet(ld, span, map);
1405 *pdBlock += stripRef + MR_LdSpanPtrGet(ld, span, map)->startBlk;
1406 pRAID_Context->spanArm = (span << RAID_CTX_SPANARM_SPAN_SHIFT) | physArm;
1411 * MR_GetSpanBlock Calculates span block
1414 * PD span block
1419 * This routine calculates the span from the span block info.
1427 u_int32_t span, j;
1430 for (span=0; span < raid->spanDepth; span++, pSpanBlock++) {
1435 return span;
1445 return span;
1449 return span;