diff options
author | James Smart <james.smart@emulex.com> | 2012-08-03 12:35:34 -0400 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2012-09-14 09:37:45 -0400 |
commit | 7e56aa25e3510ae72f0feada4b2d04eda48f95db (patch) | |
tree | c43b41e5d41cc9be0f81eabfbec5e7dd54a1997a /drivers/scsi/lpfc/lpfc_mbox.c | |
parent | b9a7c631d4f0ddd482e2c3183d5e02148bdf5365 (diff) |
[SCSI] lpfc 8.3.33: Formally separate lpfc_sli_ring SLI-3 and SLI-4 variantions
Signed-off-by: James Smart <james.smart@emulex.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_mbox.c')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_mbox.c | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/drivers/scsi/lpfc/lpfc_mbox.c b/drivers/scsi/lpfc/lpfc_mbox.c index 20336f09fb3c..0e5d9a4f3b3d 100644 --- a/drivers/scsi/lpfc/lpfc_mbox.c +++ b/drivers/scsi/lpfc/lpfc_mbox.c | |||
@@ -950,44 +950,47 @@ lpfc_config_pcb_setup(struct lpfc_hba * phba) | |||
950 | for (i = 0; i < psli->num_rings; i++) { | 950 | for (i = 0; i < psli->num_rings; i++) { |
951 | pring = &psli->ring[i]; | 951 | pring = &psli->ring[i]; |
952 | 952 | ||
953 | pring->sizeCiocb = phba->sli_rev == 3 ? SLI3_IOCB_CMD_SIZE: | 953 | pring->sli.sli3.sizeCiocb = |
954 | phba->sli_rev == 3 ? SLI3_IOCB_CMD_SIZE : | ||
954 | SLI2_IOCB_CMD_SIZE; | 955 | SLI2_IOCB_CMD_SIZE; |
955 | pring->sizeRiocb = phba->sli_rev == 3 ? SLI3_IOCB_RSP_SIZE: | 956 | pring->sli.sli3.sizeRiocb = |
957 | phba->sli_rev == 3 ? SLI3_IOCB_RSP_SIZE : | ||
956 | SLI2_IOCB_RSP_SIZE; | 958 | SLI2_IOCB_RSP_SIZE; |
957 | /* A ring MUST have both cmd and rsp entries defined to be | 959 | /* A ring MUST have both cmd and rsp entries defined to be |
958 | valid */ | 960 | valid */ |
959 | if ((pring->numCiocb == 0) || (pring->numRiocb == 0)) { | 961 | if ((pring->sli.sli3.numCiocb == 0) || |
962 | (pring->sli.sli3.numRiocb == 0)) { | ||
960 | pcbp->rdsc[i].cmdEntries = 0; | 963 | pcbp->rdsc[i].cmdEntries = 0; |
961 | pcbp->rdsc[i].rspEntries = 0; | 964 | pcbp->rdsc[i].rspEntries = 0; |
962 | pcbp->rdsc[i].cmdAddrHigh = 0; | 965 | pcbp->rdsc[i].cmdAddrHigh = 0; |
963 | pcbp->rdsc[i].rspAddrHigh = 0; | 966 | pcbp->rdsc[i].rspAddrHigh = 0; |
964 | pcbp->rdsc[i].cmdAddrLow = 0; | 967 | pcbp->rdsc[i].cmdAddrLow = 0; |
965 | pcbp->rdsc[i].rspAddrLow = 0; | 968 | pcbp->rdsc[i].rspAddrLow = 0; |
966 | pring->cmdringaddr = NULL; | 969 | pring->sli.sli3.cmdringaddr = NULL; |
967 | pring->rspringaddr = NULL; | 970 | pring->sli.sli3.rspringaddr = NULL; |
968 | continue; | 971 | continue; |
969 | } | 972 | } |
970 | /* Command ring setup for ring */ | 973 | /* Command ring setup for ring */ |
971 | pring->cmdringaddr = (void *)&phba->IOCBs[iocbCnt]; | 974 | pring->sli.sli3.cmdringaddr = (void *)&phba->IOCBs[iocbCnt]; |
972 | pcbp->rdsc[i].cmdEntries = pring->numCiocb; | 975 | pcbp->rdsc[i].cmdEntries = pring->sli.sli3.numCiocb; |
973 | 976 | ||
974 | offset = (uint8_t *) &phba->IOCBs[iocbCnt] - | 977 | offset = (uint8_t *) &phba->IOCBs[iocbCnt] - |
975 | (uint8_t *) phba->slim2p.virt; | 978 | (uint8_t *) phba->slim2p.virt; |
976 | pdma_addr = phba->slim2p.phys + offset; | 979 | pdma_addr = phba->slim2p.phys + offset; |
977 | pcbp->rdsc[i].cmdAddrHigh = putPaddrHigh(pdma_addr); | 980 | pcbp->rdsc[i].cmdAddrHigh = putPaddrHigh(pdma_addr); |
978 | pcbp->rdsc[i].cmdAddrLow = putPaddrLow(pdma_addr); | 981 | pcbp->rdsc[i].cmdAddrLow = putPaddrLow(pdma_addr); |
979 | iocbCnt += pring->numCiocb; | 982 | iocbCnt += pring->sli.sli3.numCiocb; |
980 | 983 | ||
981 | /* Response ring setup for ring */ | 984 | /* Response ring setup for ring */ |
982 | pring->rspringaddr = (void *) &phba->IOCBs[iocbCnt]; | 985 | pring->sli.sli3.rspringaddr = (void *) &phba->IOCBs[iocbCnt]; |
983 | 986 | ||
984 | pcbp->rdsc[i].rspEntries = pring->numRiocb; | 987 | pcbp->rdsc[i].rspEntries = pring->sli.sli3.numRiocb; |
985 | offset = (uint8_t *)&phba->IOCBs[iocbCnt] - | 988 | offset = (uint8_t *)&phba->IOCBs[iocbCnt] - |
986 | (uint8_t *)phba->slim2p.virt; | 989 | (uint8_t *)phba->slim2p.virt; |
987 | pdma_addr = phba->slim2p.phys + offset; | 990 | pdma_addr = phba->slim2p.phys + offset; |
988 | pcbp->rdsc[i].rspAddrHigh = putPaddrHigh(pdma_addr); | 991 | pcbp->rdsc[i].rspAddrHigh = putPaddrHigh(pdma_addr); |
989 | pcbp->rdsc[i].rspAddrLow = putPaddrLow(pdma_addr); | 992 | pcbp->rdsc[i].rspAddrLow = putPaddrLow(pdma_addr); |
990 | iocbCnt += pring->numRiocb; | 993 | iocbCnt += pring->sli.sli3.numRiocb; |
991 | } | 994 | } |
992 | } | 995 | } |
993 | 996 | ||