Commit 48c02fde authored by andrew.vasquez@qlogic.com's avatar andrew.vasquez@qlogic.com Committed by James Bottomley

[SCSI] qla2xxx: Consolidate ISP63xx handling.

As new 23xx firmware will accomidate ISP63xx types.
Signed-off-by: default avatarAndrew Vasquez <andrew.vasquez@qlogic.com>
Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
parent 044cc6c8
...@@ -10,14 +10,13 @@ config SCSI_QLA_FC ...@@ -10,14 +10,13 @@ config SCSI_QLA_FC
By default, firmware for the ISP parts will be loaded By default, firmware for the ISP parts will be loaded
via the Firmware Loader interface. via the Firmware Loader interface.
ISP Firmware Filename ISP Firmware Filename
---------- ----------------- ---------- -----------------
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
the driver is unloaded. the driver is unloaded.
...@@ -51,23 +50,17 @@ config SCSI_QLA22XX ...@@ -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
---help---
This driver supports the QLogic 2322 (ISP2322) host adapter family.
config SCSI_QLA6312
tristate " Build QLogic ISP63xx 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 63xx (ISP6312 and ISP6322) host This driver supports the QLogic 2322 (ISP2322 and ISP6322) host
adapter family. adapter family.
config SCSI_QLA24XX config SCSI_QLA24XX
......
...@@ -9,12 +9,10 @@ qla2100-y := ql2100.o ql2100_fw.o ...@@ -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[] = { ...@@ -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[] = { ...@@ -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[] = { ...@@ -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[] = { ...@@ -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) ...@@ -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) ...@@ -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] = { ...@@ -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) ...@@ -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];
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment