ql2400.c 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. /*
  2. * QLogic Fibre Channel HBA Driver
  3. * Copyright (c) 2003-2005 QLogic Corporation
  4. *
  5. * See LICENSE.qla2xxx for copyright and licensing details.
  6. */
  7. #include <linux/init.h>
  8. #include <linux/module.h>
  9. #include <linux/pci.h>
  10. #include "qla_def.h"
  11. static char qla_driver_name[] = "qla2400";
  12. extern uint32_t fw2400_version_str[];
  13. extern uint32_t fw2400_addr01;
  14. extern uint32_t fw2400_code01[];
  15. extern uint32_t fw2400_length01;
  16. extern uint32_t fw2400_addr02;
  17. extern uint32_t fw2400_code02[];
  18. extern uint32_t fw2400_length02;
  19. static struct qla_fw_info qla_fw_tbl[] = {
  20. {
  21. .addressing = FW_INFO_ADDR_EXTENDED,
  22. .fwcode = (unsigned short *)&fw2400_code01[0],
  23. .fwlen = (unsigned short *)&fw2400_length01,
  24. .lfwstart = (unsigned long *)&fw2400_addr01,
  25. },
  26. {
  27. .addressing = FW_INFO_ADDR_EXTENDED,
  28. .fwcode = (unsigned short *)&fw2400_code02[0],
  29. .fwlen = (unsigned short *)&fw2400_length02,
  30. .lfwstart = (unsigned long *)&fw2400_addr02,
  31. },
  32. { FW_INFO_ADDR_NOMORE, },
  33. };
  34. static struct qla_board_info qla_board_tbl[] = {
  35. {
  36. .drv_name = qla_driver_name,
  37. .isp_name = "ISP2422",
  38. .fw_info = qla_fw_tbl,
  39. .fw_fname = "ql2400_fw.bin",
  40. },
  41. {
  42. .drv_name = qla_driver_name,
  43. .isp_name = "ISP2432",
  44. .fw_info = qla_fw_tbl,
  45. .fw_fname = "ql2400_fw.bin",
  46. },
  47. {
  48. .drv_name = qla_driver_name,
  49. .isp_name = "ISP5422",
  50. .fw_info = qla_fw_tbl,
  51. .fw_fname = "ql2400_fw.bin",
  52. },
  53. {
  54. .drv_name = qla_driver_name,
  55. .isp_name = "ISP5432",
  56. .fw_info = qla_fw_tbl,
  57. .fw_fname = "ql2400_fw.bin",
  58. },
  59. };
  60. static struct pci_device_id qla24xx_pci_tbl[] = {
  61. {
  62. .vendor = PCI_VENDOR_ID_QLOGIC,
  63. .device = PCI_DEVICE_ID_QLOGIC_ISP2422,
  64. .subvendor = PCI_ANY_ID,
  65. .subdevice = PCI_ANY_ID,
  66. .driver_data = (unsigned long)&qla_board_tbl[0],
  67. },
  68. {
  69. .vendor = PCI_VENDOR_ID_QLOGIC,
  70. .device = PCI_DEVICE_ID_QLOGIC_ISP2432,
  71. .subvendor = PCI_ANY_ID,
  72. .subdevice = PCI_ANY_ID,
  73. .driver_data = (unsigned long)&qla_board_tbl[1],
  74. },
  75. {
  76. .vendor = PCI_VENDOR_ID_QLOGIC,
  77. .device = PCI_DEVICE_ID_QLOGIC_ISP5422,
  78. .subvendor = PCI_ANY_ID,
  79. .subdevice = PCI_ANY_ID,
  80. .driver_data = (unsigned long)&qla_board_tbl[2],
  81. },
  82. {
  83. .vendor = PCI_VENDOR_ID_QLOGIC,
  84. .device = PCI_DEVICE_ID_QLOGIC_ISP5432,
  85. .subvendor = PCI_ANY_ID,
  86. .subdevice = PCI_ANY_ID,
  87. .driver_data = (unsigned long)&qla_board_tbl[3],
  88. },
  89. {0, 0},
  90. };
  91. MODULE_DEVICE_TABLE(pci, qla24xx_pci_tbl);
  92. static int __devinit
  93. qla24xx_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
  94. {
  95. return qla2x00_probe_one(pdev,
  96. (struct qla_board_info *)id->driver_data);
  97. }
  98. static void __devexit
  99. qla24xx_remove_one(struct pci_dev *pdev)
  100. {
  101. qla2x00_remove_one(pdev);
  102. }
  103. static struct pci_driver qla24xx_pci_driver = {
  104. .name = "qla2400",
  105. .id_table = qla24xx_pci_tbl,
  106. .probe = qla24xx_probe_one,
  107. .remove = __devexit_p(qla24xx_remove_one),
  108. };
  109. static int __init
  110. qla24xx_init(void)
  111. {
  112. return pci_module_init(&qla24xx_pci_driver);
  113. }
  114. static void __exit
  115. qla24xx_exit(void)
  116. {
  117. pci_unregister_driver(&qla24xx_pci_driver);
  118. }
  119. module_init(qla24xx_init);
  120. module_exit(qla24xx_exit);
  121. MODULE_AUTHOR("QLogic Corporation");
  122. MODULE_DESCRIPTION("QLogic ISP24xx FC-SCSI Host Bus Adapter driver");
  123. MODULE_LICENSE("GPL");
  124. MODULE_VERSION(QLA2XXX_VERSION);