diff options
author | Atul Deshmukh <atul.deshmukh@qlogic.com> | 2013-08-27 01:37:28 -0400 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2013-09-03 10:28:00 -0400 |
commit | 7ec0effd30bb4b1379cd2f5ed1a7bd6b9ec49cfd (patch) | |
tree | e249c7e5d1a3ae11eeeb2e0aef0883872d7e74ce /drivers/scsi/qla2xxx/qla_isr.c | |
parent | 7b8335589035b47504f98c1a22547f514386a48c (diff) |
[SCSI] qla2xxx: Add support for ISP8044.
[jejb: checkpatch fixes]
Signed-off-by: Atul Deshmukh <atul.deshmukh@qlogic.com>
Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_isr.c')
-rw-r--r-- | drivers/scsi/qla2xxx/qla_isr.c | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c index e779506fda75..b4fb8a6b8aa0 100644 --- a/drivers/scsi/qla2xxx/qla_isr.c +++ b/drivers/scsi/qla2xxx/qla_isr.c | |||
@@ -691,7 +691,8 @@ skip_rio: | |||
691 | case MBA_LOOP_DOWN: /* Loop Down Event */ | 691 | case MBA_LOOP_DOWN: /* Loop Down Event */ |
692 | mbx = (IS_QLA81XX(ha) || IS_QLA8031(ha)) | 692 | mbx = (IS_QLA81XX(ha) || IS_QLA8031(ha)) |
693 | ? RD_REG_WORD(®24->mailbox4) : 0; | 693 | ? RD_REG_WORD(®24->mailbox4) : 0; |
694 | mbx = IS_QLA82XX(ha) ? RD_REG_WORD(®82->mailbox_out[4]) : mbx; | 694 | mbx = (IS_P3P_TYPE(ha)) ? RD_REG_WORD(®82->mailbox_out[4]) |
695 | : mbx; | ||
695 | ql_dbg(ql_dbg_async, vha, 0x500b, | 696 | ql_dbg(ql_dbg_async, vha, 0x500b, |
696 | "LOOP DOWN detected (%x %x %x %x).\n", | 697 | "LOOP DOWN detected (%x %x %x %x).\n", |
697 | mb[1], mb[2], mb[3], mbx); | 698 | mb[1], mb[2], mb[3], mbx); |
@@ -740,7 +741,7 @@ skip_rio: | |||
740 | if (IS_QLA2100(ha)) | 741 | if (IS_QLA2100(ha)) |
741 | break; | 742 | break; |
742 | 743 | ||
743 | if (IS_QLA81XX(ha) || IS_QLA82XX(ha) || IS_QLA8031(ha)) { | 744 | if (IS_CNA_CAPABLE(ha)) { |
744 | ql_dbg(ql_dbg_async, vha, 0x500d, | 745 | ql_dbg(ql_dbg_async, vha, 0x500d, |
745 | "DCBX Completed -- %04x %04x %04x.\n", | 746 | "DCBX Completed -- %04x %04x %04x.\n", |
746 | mb[1], mb[2], mb[3]); | 747 | mb[1], mb[2], mb[3]); |
@@ -1002,7 +1003,7 @@ skip_rio: | |||
1002 | mb[1], mb[2], mb[3]); | 1003 | mb[1], mb[2], mb[3]); |
1003 | break; | 1004 | break; |
1004 | case MBA_IDC_NOTIFY: | 1005 | case MBA_IDC_NOTIFY: |
1005 | if (IS_QLA8031(vha->hw)) { | 1006 | if (IS_QLA8031(vha->hw) || IS_QLA8044(ha)) { |
1006 | mb[4] = RD_REG_WORD(®24->mailbox4); | 1007 | mb[4] = RD_REG_WORD(®24->mailbox4); |
1007 | if (((mb[2] & 0x7fff) == MBC_PORT_RESET || | 1008 | if (((mb[2] & 0x7fff) == MBC_PORT_RESET || |
1008 | (mb[2] & 0x7fff) == MBC_SET_PORT_CONFIG) && | 1009 | (mb[2] & 0x7fff) == MBC_SET_PORT_CONFIG) && |
@@ -1022,7 +1023,8 @@ skip_rio: | |||
1022 | complete(&ha->lb_portup_comp); | 1023 | complete(&ha->lb_portup_comp); |
1023 | /* Fallthru */ | 1024 | /* Fallthru */ |
1024 | case MBA_IDC_TIME_EXT: | 1025 | case MBA_IDC_TIME_EXT: |
1025 | if (IS_QLA81XX(vha->hw) || IS_QLA8031(vha->hw)) | 1026 | if (IS_QLA81XX(vha->hw) || IS_QLA8031(vha->hw) || |
1027 | IS_QLA8044(ha)) | ||
1026 | qla81xx_idc_event(vha, mb[0], mb[1]); | 1028 | qla81xx_idc_event(vha, mb[0], mb[1]); |
1027 | break; | 1029 | break; |
1028 | 1030 | ||
@@ -1063,7 +1065,7 @@ qla2x00_process_completed_request(struct scsi_qla_host *vha, | |||
1063 | ql_log(ql_log_warn, vha, 0x3014, | 1065 | ql_log(ql_log_warn, vha, 0x3014, |
1064 | "Invalid SCSI command index (%x).\n", index); | 1066 | "Invalid SCSI command index (%x).\n", index); |
1065 | 1067 | ||
1066 | if (IS_QLA82XX(ha)) | 1068 | if (IS_P3P_TYPE(ha)) |
1067 | set_bit(FCOE_CTX_RESET_NEEDED, &vha->dpc_flags); | 1069 | set_bit(FCOE_CTX_RESET_NEEDED, &vha->dpc_flags); |
1068 | else | 1070 | else |
1069 | set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags); | 1071 | set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags); |
@@ -1080,7 +1082,7 @@ qla2x00_process_completed_request(struct scsi_qla_host *vha, | |||
1080 | } else { | 1082 | } else { |
1081 | ql_log(ql_log_warn, vha, 0x3016, "Invalid SCSI SRB.\n"); | 1083 | ql_log(ql_log_warn, vha, 0x3016, "Invalid SCSI SRB.\n"); |
1082 | 1084 | ||
1083 | if (IS_QLA82XX(ha)) | 1085 | if (IS_P3P_TYPE(ha)) |
1084 | set_bit(FCOE_CTX_RESET_NEEDED, &vha->dpc_flags); | 1086 | set_bit(FCOE_CTX_RESET_NEEDED, &vha->dpc_flags); |
1085 | else | 1087 | else |
1086 | set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags); | 1088 | set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags); |
@@ -1100,7 +1102,7 @@ qla2x00_get_sp_from_handle(scsi_qla_host_t *vha, const char *func, | |||
1100 | if (index >= req->num_outstanding_cmds) { | 1102 | if (index >= req->num_outstanding_cmds) { |
1101 | ql_log(ql_log_warn, vha, 0x5031, | 1103 | ql_log(ql_log_warn, vha, 0x5031, |
1102 | "Invalid command index (%x).\n", index); | 1104 | "Invalid command index (%x).\n", index); |
1103 | if (IS_QLA82XX(ha)) | 1105 | if (IS_P3P_TYPE(ha)) |
1104 | set_bit(FCOE_CTX_RESET_NEEDED, &vha->dpc_flags); | 1106 | set_bit(FCOE_CTX_RESET_NEEDED, &vha->dpc_flags); |
1105 | else | 1107 | else |
1106 | set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags); | 1108 | set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags); |
@@ -1949,7 +1951,7 @@ qla2x00_status_entry(scsi_qla_host_t *vha, struct rsp_que *rsp, void *pkt) | |||
1949 | ql_dbg(ql_dbg_io, vha, 0x3017, | 1951 | ql_dbg(ql_dbg_io, vha, 0x3017, |
1950 | "Invalid status handle (0x%x).\n", sts->handle); | 1952 | "Invalid status handle (0x%x).\n", sts->handle); |
1951 | 1953 | ||
1952 | if (IS_QLA82XX(ha)) | 1954 | if (IS_P3P_TYPE(ha)) |
1953 | set_bit(FCOE_CTX_RESET_NEEDED, &vha->dpc_flags); | 1955 | set_bit(FCOE_CTX_RESET_NEEDED, &vha->dpc_flags); |
1954 | else | 1956 | else |
1955 | set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags); | 1957 | set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags); |
@@ -2321,7 +2323,7 @@ fatal: | |||
2321 | ql_log(ql_log_warn, vha, 0x5030, | 2323 | ql_log(ql_log_warn, vha, 0x5030, |
2322 | "Error entry - invalid handle/queue.\n"); | 2324 | "Error entry - invalid handle/queue.\n"); |
2323 | 2325 | ||
2324 | if (IS_QLA82XX(ha)) | 2326 | if (IS_P3P_TYPE(ha)) |
2325 | set_bit(FCOE_CTX_RESET_NEEDED, &vha->dpc_flags); | 2327 | set_bit(FCOE_CTX_RESET_NEEDED, &vha->dpc_flags); |
2326 | else | 2328 | else |
2327 | set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags); | 2329 | set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags); |
@@ -2449,7 +2451,7 @@ void qla24xx_process_response_queue(struct scsi_qla_host *vha, | |||
2449 | } | 2451 | } |
2450 | 2452 | ||
2451 | /* Adjust ring index */ | 2453 | /* Adjust ring index */ |
2452 | if (IS_QLA82XX(ha)) { | 2454 | if (IS_P3P_TYPE(ha)) { |
2453 | struct device_reg_82xx __iomem *reg = &ha->iobase->isp82; | 2455 | struct device_reg_82xx __iomem *reg = &ha->iobase->isp82; |
2454 | WRT_REG_DWORD(®->rsp_q_out[0], rsp->ring_index); | 2456 | WRT_REG_DWORD(®->rsp_q_out[0], rsp->ring_index); |
2455 | } else | 2457 | } else |
@@ -2862,7 +2864,7 @@ msix_failed: | |||
2862 | ret = request_irq(qentry->vector, | 2864 | ret = request_irq(qentry->vector, |
2863 | qla83xx_msix_entries[i].handler, | 2865 | qla83xx_msix_entries[i].handler, |
2864 | 0, qla83xx_msix_entries[i].name, rsp); | 2866 | 0, qla83xx_msix_entries[i].name, rsp); |
2865 | } else if (IS_QLA82XX(ha)) { | 2867 | } else if (IS_P3P_TYPE(ha)) { |
2866 | ret = request_irq(qentry->vector, | 2868 | ret = request_irq(qentry->vector, |
2867 | qla82xx_msix_entries[i].handler, | 2869 | qla82xx_msix_entries[i].handler, |
2868 | 0, qla82xx_msix_entries[i].name, rsp); | 2870 | 0, qla82xx_msix_entries[i].name, rsp); |
@@ -2947,7 +2949,7 @@ qla2x00_request_irqs(struct qla_hw_data *ha, struct rsp_que *rsp) | |||
2947 | skip_msix: | 2949 | skip_msix: |
2948 | 2950 | ||
2949 | if (!IS_QLA24XX(ha) && !IS_QLA2532(ha) && !IS_QLA8432(ha) && | 2951 | if (!IS_QLA24XX(ha) && !IS_QLA2532(ha) && !IS_QLA8432(ha) && |
2950 | !IS_QLA8001(ha) && !IS_QLA82XX(ha) && !IS_QLAFX00(ha)) | 2952 | !IS_QLA8001(ha) && !IS_P3P_TYPE(ha) && !IS_QLAFX00(ha)) |
2951 | goto skip_msi; | 2953 | goto skip_msi; |
2952 | 2954 | ||
2953 | ret = pci_enable_msi(ha->pdev); | 2955 | ret = pci_enable_msi(ha->pdev); |