2 * QLogic Fibre Channel HBA Driver
3 * Copyright (c) 2003-2005 QLogic Corporation
5 * See LICENSE.qla2xxx for copyright and licensing details.
7 #include <linux/init.h>
8 #include <linux/module.h>
13 static char qla_driver_name
[] = "qla2322";
15 extern unsigned char fw2322ipx_version
[];
16 extern unsigned char fw2322ipx_version_str
[];
17 extern unsigned short fw2322ipx_addr01
;
18 extern unsigned short fw2322ipx_code01
[];
19 extern unsigned short fw2322ipx_length01
;
20 extern unsigned long rseqipx_code_addr01
;
21 extern unsigned short rseqipx_code01
[];
22 extern unsigned short rseqipx_code_length01
;
23 extern unsigned long xseqipx_code_addr01
;
24 extern unsigned short xseqipx_code01
[];
25 extern unsigned short xseqipx_code_length01
;
27 static struct qla_fw_info qla_fw_tbl
[] = {
29 .addressing
= FW_INFO_ADDR_NORMAL
,
30 .fwcode
= &fw2322ipx_code01
[0],
31 .fwlen
= &fw2322ipx_length01
,
32 .fwstart
= &fw2322ipx_addr01
,
35 .addressing
= FW_INFO_ADDR_EXTENDED
,
36 .fwcode
= &rseqipx_code01
[0],
37 .fwlen
= &rseqipx_code_length01
,
38 .lfwstart
= &rseqipx_code_addr01
,
41 .addressing
= FW_INFO_ADDR_EXTENDED
,
42 .fwcode
= &xseqipx_code01
[0],
43 .fwlen
= &xseqipx_code_length01
,
44 .lfwstart
= &xseqipx_code_addr01
,
46 { FW_INFO_ADDR_NOMORE
, },
49 static struct qla_board_info qla_board_tbl
[] = {
51 .drv_name
= qla_driver_name
,
52 .isp_name
= "ISP2322",
53 .fw_info
= qla_fw_tbl
,
56 .drv_name
= qla_driver_name
,
57 .isp_name
= "ISP6322",
58 .fw_info
= qla_fw_tbl
,
62 static struct pci_device_id qla2322_pci_tbl
[] = {
64 .vendor
= PCI_VENDOR_ID_QLOGIC
,
65 .device
= PCI_DEVICE_ID_QLOGIC_ISP2322
,
66 .subvendor
= PCI_ANY_ID
,
67 .subdevice
= PCI_ANY_ID
,
68 .driver_data
= (unsigned long)&qla_board_tbl
[0],
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],
79 MODULE_DEVICE_TABLE(pci
, qla2322_pci_tbl
);
82 qla2322_probe_one(struct pci_dev
*pdev
, const struct pci_device_id
*id
)
84 return qla2x00_probe_one(pdev
,
85 (struct qla_board_info
*)id
->driver_data
);
89 qla2322_remove_one(struct pci_dev
*pdev
)
91 qla2x00_remove_one(pdev
);
94 static struct pci_driver qla2322_pci_driver
= {
96 .id_table
= qla2322_pci_tbl
,
97 .probe
= qla2322_probe_one
,
98 .remove
= __devexit_p(qla2322_remove_one
),
104 return pci_module_init(&qla2322_pci_driver
);
110 pci_unregister_driver(&qla2322_pci_driver
);
113 module_init(qla2322_init
);
114 module_exit(qla2322_exit
);
116 MODULE_AUTHOR("QLogic Corporation");
117 MODULE_DESCRIPTION("QLogic ISP2322 FC-SCSI Host Bus Adapter driver");
118 MODULE_LICENSE("GPL");
119 MODULE_VERSION(QLA2XXX_VERSION
);