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>
By default, firmware for the ISP parts will be loaded
via the Firmware Loader interface.
- ISP Firmware Filename
- ---------- -----------------
- 21xx ql2100_fw.bin
- 22xx ql2200_fw.bin
- 2300, 2312 ql2300_fw.bin
- 2322 ql2322_fw.bin
- 6312, 6322 ql6312_fw.bin
- 24xx ql2400_fw.bin
+ ISP Firmware Filename
+ ---------- -----------------
+ 21xx ql2100_fw.bin
+ 22xx ql2200_fw.bin
+ 2300, 2312, 6312 ql2300_fw.bin
+ 2322, 6322 ql2322_fw.bin
+ 24xx ql2400_fw.bin
Upon request, the driver caches the firmware image until
the driver is unloaded.
This driver supports the QLogic 22xx (ISP2200) host adapter family.
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
---help---
- This driver supports the QLogic 2300 (ISP2300 and ISP2312) host
- adapter family.
+ This driver supports the QLogic 2300 (ISP2300, ISP2312 and
+ ISP6312) host adapter family.
config SCSI_QLA2322
- tristate " Build QLogic ISP2322 firmware-module"
- depends on SCSI_QLA_FC && SCSI_QLA2XXX_EMBEDDED_FIRMWARE
- ---help---
- This driver supports the QLogic 2322 (ISP2322) host adapter family.
-
-config SCSI_QLA6312
- tristate " Build QLogic ISP63xx firmware-module"
+ tristate " Build QLogic ISP2322/ISP6322 firmware-module"
depends on SCSI_QLA_FC && SCSI_QLA2XXX_EMBEDDED_FIRMWARE
---help---
- This driver supports the QLogic 63xx (ISP6312 and ISP6322) host
+ This driver supports the QLogic 2322 (ISP2322 and ISP6322) host
adapter family.
config SCSI_QLA24XX
qla2200-y := ql2200.o ql2200_fw.o
qla2300-y := ql2300.o ql2300_fw.o
qla2322-y := ql2322.o ql2322_fw.o
-qla6312-y := ql6312.o ql6312_fw.o
qla2400-y := ql2400.o ql2400_fw.o
obj-$(CONFIG_SCSI_QLA21XX) += qla2xxx.o qla2100.o
obj-$(CONFIG_SCSI_QLA22XX) += qla2xxx.o qla2200.o
obj-$(CONFIG_SCSI_QLA2300) += qla2xxx.o qla2300.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
.isp_name = "ISP2312",
.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[] = {
.subdevice = PCI_ANY_ID,
.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},
};
MODULE_DEVICE_TABLE(pci, qla2300_pci_tbl);
.isp_name = "ISP2322",
.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[] = {
.subdevice = PCI_ANY_ID,
.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},
};
MODULE_DEVICE_TABLE(pci, qla2322_pci_tbl);
if (ha->flags.enable_led_scheme)
ha->fw_options[2] |= BIT_12;
+ /* Detect ISP6312. */
+ if (IS_QLA6312(ha))
+ ha->fw_options[2] |= BIT_13;
+
/* Update firmware options. */
qla2x00_set_fw_options(ha, ha->fw_options);
}
/* Firmware interface routines. */
-#define FW_BLOBS 6
+#define FW_BLOBS 5
#define FW_ISP21XX 0
#define FW_ISP22XX 1
#define FW_ISP2300 2
#define FW_ISP2322 3
-#define FW_ISP63XX 4
-#define FW_ISP24XX 5
+#define FW_ISP24XX 4
static DECLARE_MUTEX(qla_fw_lock);
{ .name = "ql2200_fw.bin", .segs = { 0x1000, 0 }, },
{ .name = "ql2300_fw.bin", .segs = { 0x800, 0 }, },
{ .name = "ql2322_fw.bin", .segs = { 0x800, 0x1c000, 0x1e000, 0 }, },
- { .name = "ql6312_fw.bin", .segs = { 0x800, 0 }, },
{ .name = "ql2400_fw.bin", },
};
blob = &qla_fw_blobs[FW_ISP21XX];
} else if (IS_QLA2200(ha)) {
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];
- } else if (IS_QLA2322(ha)) {
+ } else if (IS_QLA2322(ha) || IS_QLA6322(ha)) {
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)) {
blob = &qla_fw_blobs[FW_ISP24XX];
}