aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/qla2xxx/qla_def.h
diff options
context:
space:
mode:
authorAndrew Vasquez <andrew.vasquez@qlogic.com>2005-11-09 18:49:04 -0500
committerJames Bottomley <jejb@mulgrave.(none)>2005-12-13 20:11:16 -0500
commit5433383ef33ed40c9c8a86a4355da344234af2a5 (patch)
tree8d82c620fe6faadfa805fb465d5beb67946133c7 /drivers/scsi/qla2xxx/qla_def.h
parent26a68019c86e1d1782984a7a5babff762cde1501 (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.h24
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
2143struct 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. */
2128struct gid_list_info { 2150struct gid_list_info {
2129 uint8_t al_pa; 2151 uint8_t al_pa;