aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorandrew.vasquez@qlogic.com <andrew.vasquez@qlogic.com>2006-03-09 17:27:18 -0500
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>2006-03-12 10:38:22 -0500
commit48c02fde949f15920c0018d33d285fd39730d24b (patch)
treeaded9282ed2e45b0d0c9e73c95cfd60cfbadfba7
parent044cc6c8ec311c4ddeebfcc31c53dea282de70b7 (diff)
[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>
-rw-r--r--drivers/scsi/qla2xxx/Kconfig31
-rw-r--r--drivers/scsi/qla2xxx/Makefile2
-rw-r--r--drivers/scsi/qla2xxx/ql2300.c12
-rw-r--r--drivers/scsi/qla2xxx/ql2322.c12
-rw-r--r--drivers/scsi/qla2xxx/qla_init.c4
-rw-r--r--drivers/scsi/qla2xxx/qla_os.c12
6 files changed, 44 insertions, 29 deletions
diff --git a/drivers/scsi/qla2xxx/Kconfig b/drivers/scsi/qla2xxx/Kconfig
index 5758b2566d7f..ff40906c66f9 100644
--- a/drivers/scsi/qla2xxx/Kconfig
+++ b/drivers/scsi/qla2xxx/Kconfig
@@ -10,14 +10,13 @@ config SCSI_QLA_FC
10 By default, firmware for the ISP parts will be loaded 10 By default, firmware for the ISP parts will be loaded
11 via the Firmware Loader interface. 11 via the Firmware Loader interface.
12 12
13 ISP Firmware Filename 13 ISP Firmware Filename
14 ---------- ----------------- 14 ---------- -----------------
15 21xx ql2100_fw.bin 15 21xx ql2100_fw.bin
16 22xx ql2200_fw.bin 16 22xx ql2200_fw.bin
17 2300, 2312 ql2300_fw.bin 17 2300, 2312, 6312 ql2300_fw.bin
18 2322 ql2322_fw.bin 18 2322, 6322 ql2322_fw.bin
19 6312, 6322 ql6312_fw.bin 19 24xx ql2400_fw.bin
20 24xx ql2400_fw.bin
21 20
22 Upon request, the driver caches the firmware image until 21 Upon request, the driver caches the firmware image until
23 the driver is unloaded. 22 the driver is unloaded.
@@ -51,23 +50,17 @@ config SCSI_QLA22XX
51 This driver supports the QLogic 22xx (ISP2200) host adapter family. 50 This driver supports the QLogic 22xx (ISP2200) host adapter family.
52 51
53config SCSI_QLA2300 52config SCSI_QLA2300
54 tristate " Build QLogic ISP2300 firmware-module" 53 tristate " Build QLogic ISP2300/ISP6312 firmware-module"
55 depends on SCSI_QLA_FC && SCSI_QLA2XXX_EMBEDDED_FIRMWARE 54 depends on SCSI_QLA_FC && SCSI_QLA2XXX_EMBEDDED_FIRMWARE
56 ---help--- 55 ---help---
57 This driver supports the QLogic 2300 (ISP2300 and ISP2312) host 56 This driver supports the QLogic 2300 (ISP2300, ISP2312 and
58 adapter family. 57 ISP6312) host adapter family.
59 58
60config SCSI_QLA2322 59config SCSI_QLA2322
61 tristate " Build QLogic ISP2322 firmware-module" 60 tristate " Build QLogic ISP2322/ISP6322 firmware-module"
62 depends on SCSI_QLA_FC && SCSI_QLA2XXX_EMBEDDED_FIRMWARE
63 ---help---
64 This driver supports the QLogic 2322 (ISP2322) host adapter family.
65
66config SCSI_QLA6312
67 tristate " Build QLogic ISP63xx firmware-module"
68 depends on SCSI_QLA_FC && SCSI_QLA2XXX_EMBEDDED_FIRMWARE 61 depends on SCSI_QLA_FC && SCSI_QLA2XXX_EMBEDDED_FIRMWARE
69 ---help--- 62 ---help---
70 This driver supports the QLogic 63xx (ISP6312 and ISP6322) host 63 This driver supports the QLogic 2322 (ISP2322 and ISP6322) host
71 adapter family. 64 adapter family.
72 65
73config SCSI_QLA24XX 66config SCSI_QLA24XX
diff --git a/drivers/scsi/qla2xxx/Makefile b/drivers/scsi/qla2xxx/Makefile
index d028bc50ccf7..c8f670ee60b4 100644
--- a/drivers/scsi/qla2xxx/Makefile
+++ b/drivers/scsi/qla2xxx/Makefile
@@ -9,12 +9,10 @@ qla2100-y := ql2100.o ql2100_fw.o
9qla2200-y := ql2200.o ql2200_fw.o 9qla2200-y := ql2200.o ql2200_fw.o
10qla2300-y := ql2300.o ql2300_fw.o 10qla2300-y := ql2300.o ql2300_fw.o
11qla2322-y := ql2322.o ql2322_fw.o 11qla2322-y := ql2322.o ql2322_fw.o
12qla6312-y := ql6312.o ql6312_fw.o
13qla2400-y := ql2400.o ql2400_fw.o 12qla2400-y := ql2400.o ql2400_fw.o
14 13
15obj-$(CONFIG_SCSI_QLA21XX) += qla2xxx.o qla2100.o 14obj-$(CONFIG_SCSI_QLA21XX) += qla2xxx.o qla2100.o
16obj-$(CONFIG_SCSI_QLA22XX) += qla2xxx.o qla2200.o 15obj-$(CONFIG_SCSI_QLA22XX) += qla2xxx.o qla2200.o
17obj-$(CONFIG_SCSI_QLA2300) += qla2xxx.o qla2300.o 16obj-$(CONFIG_SCSI_QLA2300) += qla2xxx.o qla2300.o
18obj-$(CONFIG_SCSI_QLA2322) += qla2xxx.o qla2322.o 17obj-$(CONFIG_SCSI_QLA2322) += qla2xxx.o qla2322.o
19obj-$(CONFIG_SCSI_QLA6312) += qla2xxx.o qla6312.o
20obj-$(CONFIG_SCSI_QLA24XX) += qla2xxx.o qla2400.o 18obj-$(CONFIG_SCSI_QLA24XX) += qla2xxx.o qla2400.o
diff --git a/drivers/scsi/qla2xxx/ql2300.c b/drivers/scsi/qla2xxx/ql2300.c
index fd2f4b795a8a..e7a93ddda79a 100644
--- a/drivers/scsi/qla2xxx/ql2300.c
+++ b/drivers/scsi/qla2xxx/ql2300.c
@@ -40,6 +40,11 @@ static struct qla_board_info qla_board_tbl[] = {
40 .isp_name = "ISP2312", 40 .isp_name = "ISP2312",
41 .fw_info = qla_fw_tbl, 41 .fw_info = qla_fw_tbl,
42 }, 42 },
43 {
44 .drv_name = qla_driver_name,
45 .isp_name = "ISP6312",
46 .fw_info = qla_fw_tbl,
47 },
43}; 48};
44 49
45static struct pci_device_id qla2300_pci_tbl[] = { 50static struct pci_device_id qla2300_pci_tbl[] = {
@@ -57,6 +62,13 @@ static struct pci_device_id qla2300_pci_tbl[] = {
57 .subdevice = PCI_ANY_ID, 62 .subdevice = PCI_ANY_ID,
58 .driver_data = (unsigned long)&qla_board_tbl[1], 63 .driver_data = (unsigned long)&qla_board_tbl[1],
59 }, 64 },
65 {
66 .vendor = PCI_VENDOR_ID_QLOGIC,
67 .device = PCI_DEVICE_ID_QLOGIC_ISP6312,
68 .subvendor = PCI_ANY_ID,
69 .subdevice = PCI_ANY_ID,
70 .driver_data = (unsigned long)&qla_board_tbl[2],
71 },
60 {0, 0}, 72 {0, 0},
61}; 73};
62MODULE_DEVICE_TABLE(pci, qla2300_pci_tbl); 74MODULE_DEVICE_TABLE(pci, qla2300_pci_tbl);
diff --git a/drivers/scsi/qla2xxx/ql2322.c b/drivers/scsi/qla2xxx/ql2322.c
index c88a22c0d93a..3c8cafc12eee 100644
--- a/drivers/scsi/qla2xxx/ql2322.c
+++ b/drivers/scsi/qla2xxx/ql2322.c
@@ -52,6 +52,11 @@ static struct qla_board_info qla_board_tbl[] = {
52 .isp_name = "ISP2322", 52 .isp_name = "ISP2322",
53 .fw_info = qla_fw_tbl, 53 .fw_info = qla_fw_tbl,
54 }, 54 },
55 {
56 .drv_name = qla_driver_name,
57 .isp_name = "ISP6322",
58 .fw_info = qla_fw_tbl,
59 },
55}; 60};
56 61
57static struct pci_device_id qla2322_pci_tbl[] = { 62static struct pci_device_id qla2322_pci_tbl[] = {
@@ -62,6 +67,13 @@ static struct pci_device_id qla2322_pci_tbl[] = {
62 .subdevice = PCI_ANY_ID, 67 .subdevice = PCI_ANY_ID,
63 .driver_data = (unsigned long)&qla_board_tbl[0], 68 .driver_data = (unsigned long)&qla_board_tbl[0],
64 }, 69 },
70 {
71 .vendor = PCI_VENDOR_ID_QLOGIC,
72 .device = PCI_DEVICE_ID_QLOGIC_ISP6322,
73 .subvendor = PCI_ANY_ID,
74 .subdevice = PCI_ANY_ID,
75 .driver_data = (unsigned long)&qla_board_tbl[1],
76 },
65 {0, 0}, 77 {0, 0},
66}; 78};
67MODULE_DEVICE_TABLE(pci, qla2322_pci_tbl); 79MODULE_DEVICE_TABLE(pci, qla2322_pci_tbl);
diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c
index e6a2292a2892..d4389095b4bc 100644
--- a/drivers/scsi/qla2xxx/qla_init.c
+++ b/drivers/scsi/qla2xxx/qla_init.c
@@ -1003,6 +1003,10 @@ qla2x00_update_fw_options(scsi_qla_host_t *ha)
1003 if (ha->flags.enable_led_scheme) 1003 if (ha->flags.enable_led_scheme)
1004 ha->fw_options[2] |= BIT_12; 1004 ha->fw_options[2] |= BIT_12;
1005 1005
1006 /* Detect ISP6312. */
1007 if (IS_QLA6312(ha))
1008 ha->fw_options[2] |= BIT_13;
1009
1006 /* Update firmware options. */ 1010 /* Update firmware options. */
1007 qla2x00_set_fw_options(ha, ha->fw_options); 1011 qla2x00_set_fw_options(ha, ha->fw_options);
1008} 1012}
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
index 131614751196..4dc08d94ebec 100644
--- a/drivers/scsi/qla2xxx/qla_os.c
+++ b/drivers/scsi/qla2xxx/qla_os.c
@@ -2596,13 +2596,12 @@ qla2x00_down_timeout(struct semaphore *sema, unsigned long timeout)
2596 2596
2597/* Firmware interface routines. */ 2597/* Firmware interface routines. */
2598 2598
2599#define FW_BLOBS 6 2599#define FW_BLOBS 5
2600#define FW_ISP21XX 0 2600#define FW_ISP21XX 0
2601#define FW_ISP22XX 1 2601#define FW_ISP22XX 1
2602#define FW_ISP2300 2 2602#define FW_ISP2300 2
2603#define FW_ISP2322 3 2603#define FW_ISP2322 3
2604#define FW_ISP63XX 4 2604#define FW_ISP24XX 4
2605#define FW_ISP24XX 5
2606 2605
2607static DECLARE_MUTEX(qla_fw_lock); 2606static DECLARE_MUTEX(qla_fw_lock);
2608 2607
@@ -2611,7 +2610,6 @@ static struct fw_blob qla_fw_blobs[FW_BLOBS] = {
2611 { .name = "ql2200_fw.bin", .segs = { 0x1000, 0 }, }, 2610 { .name = "ql2200_fw.bin", .segs = { 0x1000, 0 }, },
2612 { .name = "ql2300_fw.bin", .segs = { 0x800, 0 }, }, 2611 { .name = "ql2300_fw.bin", .segs = { 0x800, 0 }, },
2613 { .name = "ql2322_fw.bin", .segs = { 0x800, 0x1c000, 0x1e000, 0 }, }, 2612 { .name = "ql2322_fw.bin", .segs = { 0x800, 0x1c000, 0x1e000, 0 }, },
2614 { .name = "ql6312_fw.bin", .segs = { 0x800, 0 }, },
2615 { .name = "ql2400_fw.bin", }, 2613 { .name = "ql2400_fw.bin", },
2616}; 2614};
2617 2615
@@ -2625,12 +2623,10 @@ qla2x00_request_firmware(scsi_qla_host_t *ha)
2625 blob = &qla_fw_blobs[FW_ISP21XX]; 2623 blob = &qla_fw_blobs[FW_ISP21XX];
2626 } else if (IS_QLA2200(ha)) { 2624 } else if (IS_QLA2200(ha)) {
2627 blob = &qla_fw_blobs[FW_ISP22XX]; 2625 blob = &qla_fw_blobs[FW_ISP22XX];
2628 } else if (IS_QLA2300(ha) || IS_QLA2312(ha)) { 2626 } else if (IS_QLA2300(ha) || IS_QLA2312(ha) || IS_QLA6312(ha)) {
2629 blob = &qla_fw_blobs[FW_ISP2300]; 2627 blob = &qla_fw_blobs[FW_ISP2300];
2630 } else if (IS_QLA2322(ha)) { 2628 } else if (IS_QLA2322(ha) || IS_QLA6322(ha)) {
2631 blob = &qla_fw_blobs[FW_ISP2322]; 2629 blob = &qla_fw_blobs[FW_ISP2322];
2632 } else if (IS_QLA6312(ha) || IS_QLA6322(ha)) {
2633 blob = &qla_fw_blobs[FW_ISP63XX];
2634 } else if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) { 2630 } else if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) {
2635 blob = &qla_fw_blobs[FW_ISP24XX]; 2631 blob = &qla_fw_blobs[FW_ISP24XX];
2636 } 2632 }