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
[] = "qla2400";
15 extern uint32_t fw2400_version_str
[];
16 extern uint32_t fw2400_addr01
;
17 extern uint32_t fw2400_code01
[];
18 extern uint32_t fw2400_length01
;
19 extern uint32_t fw2400_addr02
;
20 extern uint32_t fw2400_code02
[];
21 extern uint32_t fw2400_length02
;
23 static struct qla_fw_info qla_fw_tbl
[] = {
25 .addressing
= FW_INFO_ADDR_EXTENDED
,
26 .fwcode
= (unsigned short *)&fw2400_code01
[0],
27 .fwlen
= (unsigned short *)&fw2400_length01
,
28 .lfwstart
= (unsigned long *)&fw2400_addr01
,
31 .addressing
= FW_INFO_ADDR_EXTENDED
,
32 .fwcode
= (unsigned short *)&fw2400_code02
[0],
33 .fwlen
= (unsigned short *)&fw2400_length02
,
34 .lfwstart
= (unsigned long *)&fw2400_addr02
,
36 { FW_INFO_ADDR_NOMORE
, },
39 static struct qla_board_info qla_board_tbl
[] = {
41 .drv_name
= qla_driver_name
,
42 .isp_name
= "ISP2422",
43 .fw_info
= qla_fw_tbl
,
44 .fw_fname
= "ql2400_fw.bin",
47 .drv_name
= qla_driver_name
,
48 .isp_name
= "ISP2432",
49 .fw_info
= qla_fw_tbl
,
50 .fw_fname
= "ql2400_fw.bin",
53 .drv_name
= qla_driver_name
,
54 .isp_name
= "ISP5422",
55 .fw_info
= qla_fw_tbl
,
56 .fw_fname
= "ql2400_fw.bin",
59 .drv_name
= qla_driver_name
,
60 .isp_name
= "ISP5432",
61 .fw_info
= qla_fw_tbl
,
62 .fw_fname
= "ql2400_fw.bin",
66 static struct pci_device_id qla24xx_pci_tbl
[] = {
68 .vendor
= PCI_VENDOR_ID_QLOGIC
,
69 .device
= PCI_DEVICE_ID_QLOGIC_ISP2422
,
70 .subvendor
= PCI_ANY_ID
,
71 .subdevice
= PCI_ANY_ID
,
72 .driver_data
= (unsigned long)&qla_board_tbl
[0],
75 .vendor
= PCI_VENDOR_ID_QLOGIC
,
76 .device
= PCI_DEVICE_ID_QLOGIC_ISP2432
,
77 .subvendor
= PCI_ANY_ID
,
78 .subdevice
= PCI_ANY_ID
,
79 .driver_data
= (unsigned long)&qla_board_tbl
[1],
82 .vendor
= PCI_VENDOR_ID_QLOGIC
,
83 .device
= PCI_DEVICE_ID_QLOGIC_ISP5422
,
84 .subvendor
= PCI_ANY_ID
,
85 .subdevice
= PCI_ANY_ID
,
86 .driver_data
= (unsigned long)&qla_board_tbl
[2],
89 .vendor
= PCI_VENDOR_ID_QLOGIC
,
90 .device
= PCI_DEVICE_ID_QLOGIC_ISP5432
,
91 .subvendor
= PCI_ANY_ID
,
92 .subdevice
= PCI_ANY_ID
,
93 .driver_data
= (unsigned long)&qla_board_tbl
[3],
98 MODULE_DEVICE_TABLE(pci
, qla24xx_pci_tbl
);
101 qla24xx_probe_one(struct pci_dev
*pdev
, const struct pci_device_id
*id
)
103 return qla2x00_probe_one(pdev
,
104 (struct qla_board_info
*)id
->driver_data
);
107 static void __devexit
108 qla24xx_remove_one(struct pci_dev
*pdev
)
110 qla2x00_remove_one(pdev
);
113 static struct pci_driver qla24xx_pci_driver
= {
115 .id_table
= qla24xx_pci_tbl
,
116 .probe
= qla24xx_probe_one
,
117 .remove
= __devexit_p(qla24xx_remove_one
),
123 return pci_module_init(&qla24xx_pci_driver
);
129 pci_unregister_driver(&qla24xx_pci_driver
);
132 module_init(qla24xx_init
);
133 module_exit(qla24xx_exit
);
135 MODULE_AUTHOR("QLogic Corporation");
136 MODULE_DESCRIPTION("QLogic ISP24xx FC-SCSI Host Bus Adapter driver");
137 MODULE_LICENSE("GPL");
138 MODULE_VERSION(QLA2XXX_VERSION
);