diff options
-rw-r--r-- | drivers/scsi/qla2xxx/Kconfig | 31 | ||||
-rw-r--r-- | drivers/scsi/qla2xxx/Makefile | 2 | ||||
-rw-r--r-- | drivers/scsi/qla2xxx/ql2300.c | 12 | ||||
-rw-r--r-- | drivers/scsi/qla2xxx/ql2322.c | 12 | ||||
-rw-r--r-- | drivers/scsi/qla2xxx/qla_init.c | 4 | ||||
-rw-r--r-- | drivers/scsi/qla2xxx/qla_os.c | 12 |
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 | ||
53 | config SCSI_QLA2300 | 52 | config 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 | ||
60 | config SCSI_QLA2322 | 59 | config 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 | |||
66 | config 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 | ||
73 | config SCSI_QLA24XX | 66 | config 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 | |||
9 | qla2200-y := ql2200.o ql2200_fw.o | 9 | qla2200-y := ql2200.o ql2200_fw.o |
10 | qla2300-y := ql2300.o ql2300_fw.o | 10 | qla2300-y := ql2300.o ql2300_fw.o |
11 | qla2322-y := ql2322.o ql2322_fw.o | 11 | qla2322-y := ql2322.o ql2322_fw.o |
12 | qla6312-y := ql6312.o ql6312_fw.o | ||
13 | qla2400-y := ql2400.o ql2400_fw.o | 12 | qla2400-y := ql2400.o ql2400_fw.o |
14 | 13 | ||
15 | obj-$(CONFIG_SCSI_QLA21XX) += qla2xxx.o qla2100.o | 14 | obj-$(CONFIG_SCSI_QLA21XX) += qla2xxx.o qla2100.o |
16 | obj-$(CONFIG_SCSI_QLA22XX) += qla2xxx.o qla2200.o | 15 | obj-$(CONFIG_SCSI_QLA22XX) += qla2xxx.o qla2200.o |
17 | obj-$(CONFIG_SCSI_QLA2300) += qla2xxx.o qla2300.o | 16 | obj-$(CONFIG_SCSI_QLA2300) += qla2xxx.o qla2300.o |
18 | obj-$(CONFIG_SCSI_QLA2322) += qla2xxx.o qla2322.o | 17 | obj-$(CONFIG_SCSI_QLA2322) += qla2xxx.o qla2322.o |
19 | obj-$(CONFIG_SCSI_QLA6312) += qla2xxx.o qla6312.o | ||
20 | obj-$(CONFIG_SCSI_QLA24XX) += qla2xxx.o qla2400.o | 18 | obj-$(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 | ||
45 | static struct pci_device_id qla2300_pci_tbl[] = { | 50 | static 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 | }; |
62 | MODULE_DEVICE_TABLE(pci, qla2300_pci_tbl); | 74 | MODULE_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 | ||
57 | static struct pci_device_id qla2322_pci_tbl[] = { | 62 | static 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 | }; |
67 | MODULE_DEVICE_TABLE(pci, qla2322_pci_tbl); | 79 | MODULE_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 | ||
2607 | static DECLARE_MUTEX(qla_fw_lock); | 2606 | static 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 | } |