[SCSI] qla2xxx: Consolidate ISP63xx handling.
As new 23xx firmware will accomidate ISP63xx types. Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
This commit is contained in:
parent
044cc6c8ec
commit
48c02fde94
|
@ -14,9 +14,8 @@ config SCSI_QLA_FC
|
||||||
---------- -----------------
|
---------- -----------------
|
||||||
21xx ql2100_fw.bin
|
21xx ql2100_fw.bin
|
||||||
22xx ql2200_fw.bin
|
22xx ql2200_fw.bin
|
||||||
2300, 2312 ql2300_fw.bin
|
2300, 2312, 6312 ql2300_fw.bin
|
||||||
2322 ql2322_fw.bin
|
2322, 6322 ql2322_fw.bin
|
||||||
6312, 6322 ql6312_fw.bin
|
|
||||||
24xx ql2400_fw.bin
|
24xx ql2400_fw.bin
|
||||||
|
|
||||||
Upon request, the driver caches the firmware image until
|
Upon request, the driver caches the firmware image until
|
||||||
|
@ -51,23 +50,17 @@ config SCSI_QLA22XX
|
||||||
This driver supports the QLogic 22xx (ISP2200) host adapter family.
|
This driver supports the QLogic 22xx (ISP2200) host adapter family.
|
||||||
|
|
||||||
config SCSI_QLA2300
|
config SCSI_QLA2300
|
||||||
tristate " Build QLogic ISP2300 firmware-module"
|
tristate " Build QLogic ISP2300/ISP6312 firmware-module"
|
||||||
depends on SCSI_QLA_FC && SCSI_QLA2XXX_EMBEDDED_FIRMWARE
|
depends on SCSI_QLA_FC && SCSI_QLA2XXX_EMBEDDED_FIRMWARE
|
||||||
---help---
|
---help---
|
||||||
This driver supports the QLogic 2300 (ISP2300 and ISP2312) host
|
This driver supports the QLogic 2300 (ISP2300, ISP2312 and
|
||||||
adapter family.
|
ISP6312) host adapter family.
|
||||||
|
|
||||||
config SCSI_QLA2322
|
config SCSI_QLA2322
|
||||||
tristate " Build QLogic ISP2322 firmware-module"
|
tristate " Build QLogic ISP2322/ISP6322 firmware-module"
|
||||||
depends on SCSI_QLA_FC && SCSI_QLA2XXX_EMBEDDED_FIRMWARE
|
depends on SCSI_QLA_FC && SCSI_QLA2XXX_EMBEDDED_FIRMWARE
|
||||||
---help---
|
---help---
|
||||||
This driver supports the QLogic 2322 (ISP2322) host adapter family.
|
This driver supports the QLogic 2322 (ISP2322 and ISP6322) host
|
||||||
|
|
||||||
config SCSI_QLA6312
|
|
||||||
tristate " Build QLogic ISP63xx firmware-module"
|
|
||||||
depends on SCSI_QLA_FC && SCSI_QLA2XXX_EMBEDDED_FIRMWARE
|
|
||||||
---help---
|
|
||||||
This driver supports the QLogic 63xx (ISP6312 and ISP6322) host
|
|
||||||
adapter family.
|
adapter family.
|
||||||
|
|
||||||
config SCSI_QLA24XX
|
config SCSI_QLA24XX
|
||||||
|
|
|
@ -9,12 +9,10 @@ qla2100-y := ql2100.o ql2100_fw.o
|
||||||
qla2200-y := ql2200.o ql2200_fw.o
|
qla2200-y := ql2200.o ql2200_fw.o
|
||||||
qla2300-y := ql2300.o ql2300_fw.o
|
qla2300-y := ql2300.o ql2300_fw.o
|
||||||
qla2322-y := ql2322.o ql2322_fw.o
|
qla2322-y := ql2322.o ql2322_fw.o
|
||||||
qla6312-y := ql6312.o ql6312_fw.o
|
|
||||||
qla2400-y := ql2400.o ql2400_fw.o
|
qla2400-y := ql2400.o ql2400_fw.o
|
||||||
|
|
||||||
obj-$(CONFIG_SCSI_QLA21XX) += qla2xxx.o qla2100.o
|
obj-$(CONFIG_SCSI_QLA21XX) += qla2xxx.o qla2100.o
|
||||||
obj-$(CONFIG_SCSI_QLA22XX) += qla2xxx.o qla2200.o
|
obj-$(CONFIG_SCSI_QLA22XX) += qla2xxx.o qla2200.o
|
||||||
obj-$(CONFIG_SCSI_QLA2300) += qla2xxx.o qla2300.o
|
obj-$(CONFIG_SCSI_QLA2300) += qla2xxx.o qla2300.o
|
||||||
obj-$(CONFIG_SCSI_QLA2322) += qla2xxx.o qla2322.o
|
obj-$(CONFIG_SCSI_QLA2322) += qla2xxx.o qla2322.o
|
||||||
obj-$(CONFIG_SCSI_QLA6312) += qla2xxx.o qla6312.o
|
|
||||||
obj-$(CONFIG_SCSI_QLA24XX) += qla2xxx.o qla2400.o
|
obj-$(CONFIG_SCSI_QLA24XX) += qla2xxx.o qla2400.o
|
||||||
|
|
|
@ -40,6 +40,11 @@ static struct qla_board_info qla_board_tbl[] = {
|
||||||
.isp_name = "ISP2312",
|
.isp_name = "ISP2312",
|
||||||
.fw_info = qla_fw_tbl,
|
.fw_info = qla_fw_tbl,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
.drv_name = qla_driver_name,
|
||||||
|
.isp_name = "ISP6312",
|
||||||
|
.fw_info = qla_fw_tbl,
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct pci_device_id qla2300_pci_tbl[] = {
|
static struct pci_device_id qla2300_pci_tbl[] = {
|
||||||
|
@ -57,6 +62,13 @@ static struct pci_device_id qla2300_pci_tbl[] = {
|
||||||
.subdevice = PCI_ANY_ID,
|
.subdevice = PCI_ANY_ID,
|
||||||
.driver_data = (unsigned long)&qla_board_tbl[1],
|
.driver_data = (unsigned long)&qla_board_tbl[1],
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
.vendor = PCI_VENDOR_ID_QLOGIC,
|
||||||
|
.device = PCI_DEVICE_ID_QLOGIC_ISP6312,
|
||||||
|
.subvendor = PCI_ANY_ID,
|
||||||
|
.subdevice = PCI_ANY_ID,
|
||||||
|
.driver_data = (unsigned long)&qla_board_tbl[2],
|
||||||
|
},
|
||||||
{0, 0},
|
{0, 0},
|
||||||
};
|
};
|
||||||
MODULE_DEVICE_TABLE(pci, qla2300_pci_tbl);
|
MODULE_DEVICE_TABLE(pci, qla2300_pci_tbl);
|
||||||
|
|
|
@ -52,6 +52,11 @@ static struct qla_board_info qla_board_tbl[] = {
|
||||||
.isp_name = "ISP2322",
|
.isp_name = "ISP2322",
|
||||||
.fw_info = qla_fw_tbl,
|
.fw_info = qla_fw_tbl,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
.drv_name = qla_driver_name,
|
||||||
|
.isp_name = "ISP6322",
|
||||||
|
.fw_info = qla_fw_tbl,
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct pci_device_id qla2322_pci_tbl[] = {
|
static struct pci_device_id qla2322_pci_tbl[] = {
|
||||||
|
@ -62,6 +67,13 @@ static struct pci_device_id qla2322_pci_tbl[] = {
|
||||||
.subdevice = PCI_ANY_ID,
|
.subdevice = PCI_ANY_ID,
|
||||||
.driver_data = (unsigned long)&qla_board_tbl[0],
|
.driver_data = (unsigned long)&qla_board_tbl[0],
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
.vendor = PCI_VENDOR_ID_QLOGIC,
|
||||||
|
.device = PCI_DEVICE_ID_QLOGIC_ISP6322,
|
||||||
|
.subvendor = PCI_ANY_ID,
|
||||||
|
.subdevice = PCI_ANY_ID,
|
||||||
|
.driver_data = (unsigned long)&qla_board_tbl[1],
|
||||||
|
},
|
||||||
{0, 0},
|
{0, 0},
|
||||||
};
|
};
|
||||||
MODULE_DEVICE_TABLE(pci, qla2322_pci_tbl);
|
MODULE_DEVICE_TABLE(pci, qla2322_pci_tbl);
|
||||||
|
|
|
@ -1003,6 +1003,10 @@ qla2x00_update_fw_options(scsi_qla_host_t *ha)
|
||||||
if (ha->flags.enable_led_scheme)
|
if (ha->flags.enable_led_scheme)
|
||||||
ha->fw_options[2] |= BIT_12;
|
ha->fw_options[2] |= BIT_12;
|
||||||
|
|
||||||
|
/* Detect ISP6312. */
|
||||||
|
if (IS_QLA6312(ha))
|
||||||
|
ha->fw_options[2] |= BIT_13;
|
||||||
|
|
||||||
/* Update firmware options. */
|
/* Update firmware options. */
|
||||||
qla2x00_set_fw_options(ha, ha->fw_options);
|
qla2x00_set_fw_options(ha, ha->fw_options);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2596,13 +2596,12 @@ qla2x00_down_timeout(struct semaphore *sema, unsigned long timeout)
|
||||||
|
|
||||||
/* Firmware interface routines. */
|
/* Firmware interface routines. */
|
||||||
|
|
||||||
#define FW_BLOBS 6
|
#define FW_BLOBS 5
|
||||||
#define FW_ISP21XX 0
|
#define FW_ISP21XX 0
|
||||||
#define FW_ISP22XX 1
|
#define FW_ISP22XX 1
|
||||||
#define FW_ISP2300 2
|
#define FW_ISP2300 2
|
||||||
#define FW_ISP2322 3
|
#define FW_ISP2322 3
|
||||||
#define FW_ISP63XX 4
|
#define FW_ISP24XX 4
|
||||||
#define FW_ISP24XX 5
|
|
||||||
|
|
||||||
static DECLARE_MUTEX(qla_fw_lock);
|
static DECLARE_MUTEX(qla_fw_lock);
|
||||||
|
|
||||||
|
@ -2611,7 +2610,6 @@ static struct fw_blob qla_fw_blobs[FW_BLOBS] = {
|
||||||
{ .name = "ql2200_fw.bin", .segs = { 0x1000, 0 }, },
|
{ .name = "ql2200_fw.bin", .segs = { 0x1000, 0 }, },
|
||||||
{ .name = "ql2300_fw.bin", .segs = { 0x800, 0 }, },
|
{ .name = "ql2300_fw.bin", .segs = { 0x800, 0 }, },
|
||||||
{ .name = "ql2322_fw.bin", .segs = { 0x800, 0x1c000, 0x1e000, 0 }, },
|
{ .name = "ql2322_fw.bin", .segs = { 0x800, 0x1c000, 0x1e000, 0 }, },
|
||||||
{ .name = "ql6312_fw.bin", .segs = { 0x800, 0 }, },
|
|
||||||
{ .name = "ql2400_fw.bin", },
|
{ .name = "ql2400_fw.bin", },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -2625,12 +2623,10 @@ qla2x00_request_firmware(scsi_qla_host_t *ha)
|
||||||
blob = &qla_fw_blobs[FW_ISP21XX];
|
blob = &qla_fw_blobs[FW_ISP21XX];
|
||||||
} else if (IS_QLA2200(ha)) {
|
} else if (IS_QLA2200(ha)) {
|
||||||
blob = &qla_fw_blobs[FW_ISP22XX];
|
blob = &qla_fw_blobs[FW_ISP22XX];
|
||||||
} else if (IS_QLA2300(ha) || IS_QLA2312(ha)) {
|
} else if (IS_QLA2300(ha) || IS_QLA2312(ha) || IS_QLA6312(ha)) {
|
||||||
blob = &qla_fw_blobs[FW_ISP2300];
|
blob = &qla_fw_blobs[FW_ISP2300];
|
||||||
} else if (IS_QLA2322(ha)) {
|
} else if (IS_QLA2322(ha) || IS_QLA6322(ha)) {
|
||||||
blob = &qla_fw_blobs[FW_ISP2322];
|
blob = &qla_fw_blobs[FW_ISP2322];
|
||||||
} else if (IS_QLA6312(ha) || IS_QLA6322(ha)) {
|
|
||||||
blob = &qla_fw_blobs[FW_ISP63XX];
|
|
||||||
} else if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) {
|
} else if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) {
|
||||||
blob = &qla_fw_blobs[FW_ISP24XX];
|
blob = &qla_fw_blobs[FW_ISP24XX];
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue