diff options
author | Andrew Vasquez <andrew.vasquez@qlogic.com> | 2005-11-09 18:49:04 -0500 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.(none)> | 2005-12-13 20:11:16 -0500 |
commit | 5433383ef33ed40c9c8a86a4355da344234af2a5 (patch) | |
tree | 8d82c620fe6faadfa805fb465d5beb67946133c7 /drivers/scsi/qla2xxx/qla_def.h | |
parent | 26a68019c86e1d1782984a7a5babff762cde1501 (diff) |
[SCSI] qla2xxx: Add full firmware(-request) hotplug support for all ISPs.
Transition driver to exclusively use the request_firmware()
interfaces to retrieve firmware-blobs from user-space. This
will be the default behaviour going forward until the
embedded firmware-binary images are removed from the
upstream kernel.
Upon request, the driver caches the firmware image until the
driver is unloaded.
NOTE: The option is present to allow the user to continue to
use the firmware-loader modules, but, should be considered
deprecated.
Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com>
Rejections fixed up and
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_def.h')
-rw-r--r-- | drivers/scsi/qla2xxx/qla_def.h | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h index 7096945ea234..ce0d88bbaa06 100644 --- a/drivers/scsi/qla2xxx/qla_def.h +++ b/drivers/scsi/qla2xxx/qla_def.h | |||
@@ -22,6 +22,7 @@ | |||
22 | #include <linux/completion.h> | 22 | #include <linux/completion.h> |
23 | #include <linux/interrupt.h> | 23 | #include <linux/interrupt.h> |
24 | #include <linux/workqueue.h> | 24 | #include <linux/workqueue.h> |
25 | #include <linux/firmware.h> | ||
25 | #include <asm/semaphore.h> | 26 | #include <asm/semaphore.h> |
26 | 27 | ||
27 | #include <scsi/scsi.h> | 28 | #include <scsi/scsi.h> |
@@ -29,6 +30,7 @@ | |||
29 | #include <scsi/scsi_device.h> | 30 | #include <scsi/scsi_device.h> |
30 | #include <scsi/scsi_cmnd.h> | 31 | #include <scsi/scsi_cmnd.h> |
31 | 32 | ||
33 | #if defined(CONFIG_SCSI_QLA2XXX_EMBEDDED_FIRMWARE) | ||
32 | #if defined(CONFIG_SCSI_QLA21XX) || defined(CONFIG_SCSI_QLA21XX_MODULE) | 34 | #if defined(CONFIG_SCSI_QLA21XX) || defined(CONFIG_SCSI_QLA21XX_MODULE) |
33 | #define IS_QLA2100(ha) ((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2100) | 35 | #define IS_QLA2100(ha) ((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2100) |
34 | #else | 36 | #else |
@@ -79,9 +81,23 @@ | |||
79 | #define IS_QLA2522(ha) 0 | 81 | #define IS_QLA2522(ha) 0 |
80 | #endif | 82 | #endif |
81 | 83 | ||
84 | #else /* !defined(CONFIG_SCSI_QLA2XXX_EMBEDDED_FIRMWARE) */ | ||
85 | |||
86 | #define IS_QLA2100(ha) ((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2100) | ||
87 | #define IS_QLA2200(ha) ((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2200) | ||
88 | #define IS_QLA2300(ha) ((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2300) | ||
89 | #define IS_QLA2312(ha) ((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2312) | ||
90 | #define IS_QLA2322(ha) ((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2322) | ||
91 | #define IS_QLA6312(ha) ((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP6312) | ||
92 | #define IS_QLA6322(ha) ((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP6322) | ||
93 | #define IS_QLA2422(ha) ((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2422) | ||
94 | #define IS_QLA2432(ha) ((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2432) | ||
95 | #define IS_QLA2512(ha) ((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2512) | ||
96 | #define IS_QLA2522(ha) ((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2522) | ||
97 | #endif | ||
98 | |||
82 | #define IS_QLA23XX(ha) (IS_QLA2300(ha) || IS_QLA2312(ha) || IS_QLA2322(ha) || \ | 99 | #define IS_QLA23XX(ha) (IS_QLA2300(ha) || IS_QLA2312(ha) || IS_QLA2322(ha) || \ |
83 | IS_QLA6312(ha) || IS_QLA6322(ha)) | 100 | IS_QLA6312(ha) || IS_QLA6322(ha)) |
84 | |||
85 | #define IS_QLA24XX(ha) (IS_QLA2422(ha) || IS_QLA2432(ha)) | 101 | #define IS_QLA24XX(ha) (IS_QLA2422(ha) || IS_QLA2432(ha)) |
86 | #define IS_QLA25XX(ha) (IS_QLA2512(ha) || IS_QLA2522(ha)) | 102 | #define IS_QLA25XX(ha) (IS_QLA2512(ha) || IS_QLA2522(ha)) |
87 | 103 | ||
@@ -2124,6 +2140,12 @@ struct qla_board_info { | |||
2124 | struct scsi_host_template *sht; | 2140 | struct scsi_host_template *sht; |
2125 | }; | 2141 | }; |
2126 | 2142 | ||
2143 | struct fw_blob { | ||
2144 | char *name; | ||
2145 | uint32_t segs[4]; | ||
2146 | const struct firmware *fw; | ||
2147 | }; | ||
2148 | |||
2127 | /* Return data from MBC_GET_ID_LIST call. */ | 2149 | /* Return data from MBC_GET_ID_LIST call. */ |
2128 | struct gid_list_info { | 2150 | struct gid_list_info { |
2129 | uint8_t al_pa; | 2151 | uint8_t al_pa; |