diff options
author | Andrew Vasquez <andrew.vasquez@qlogic.com> | 2007-05-07 10:43:02 -0400 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.il.steeleye.com> | 2007-05-08 12:21:45 -0400 |
commit | cbedb601868821c9bfdcf1e9194be160deceeecb (patch) | |
tree | 3a5d3f663dcdc8013633e1a20f830e3b28d69a5f | |
parent | a157b1014f9eaf7f80f9105defed2117c5f6653c (diff) |
[SCSI] qla2xxx: Add MSI support.
Supported ISP types include ISP2422 and revision-2 type
ISP2432 chips.
Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
-rw-r--r-- | drivers/scsi/qla2xxx/qla_isr.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c index d4885616cd39..ca463469063d 100644 --- a/drivers/scsi/qla2xxx/qla_isr.c +++ b/drivers/scsi/qla2xxx/qla_isr.c | |||
@@ -1726,6 +1726,17 @@ qla2x00_request_irqs(scsi_qla_host_t *ha) | |||
1726 | qla_printk(KERN_WARNING, ha, | 1726 | qla_printk(KERN_WARNING, ha, |
1727 | "MSI-X: Falling back-to INTa mode -- %d.\n", ret); | 1727 | "MSI-X: Falling back-to INTa mode -- %d.\n", ret); |
1728 | skip_msix: | 1728 | skip_msix: |
1729 | |||
1730 | if (!IS_QLA24XX(ha)) | ||
1731 | goto skip_msi; | ||
1732 | |||
1733 | ret = pci_enable_msi(ha->pdev); | ||
1734 | if (!ret) { | ||
1735 | DEBUG2(qla_printk(KERN_INFO, ha, "MSI: Enabled.\n")); | ||
1736 | ha->flags.msi_enabled = 1; | ||
1737 | } | ||
1738 | skip_msi: | ||
1739 | |||
1729 | ret = request_irq(ha->pdev->irq, ha->isp_ops.intr_handler, | 1740 | ret = request_irq(ha->pdev->irq, ha->isp_ops.intr_handler, |
1730 | IRQF_DISABLED|IRQF_SHARED, QLA2XXX_DRIVER_NAME, ha); | 1741 | IRQF_DISABLED|IRQF_SHARED, QLA2XXX_DRIVER_NAME, ha); |
1731 | if (!ret) { | 1742 | if (!ret) { |
@@ -1746,6 +1757,8 @@ qla2x00_free_irqs(scsi_qla_host_t *ha) | |||
1746 | 1757 | ||
1747 | if (ha->flags.msix_enabled) | 1758 | if (ha->flags.msix_enabled) |
1748 | qla24xx_disable_msix(ha); | 1759 | qla24xx_disable_msix(ha); |
1749 | else if (ha->flags.inta_enabled) | 1760 | else if (ha->flags.inta_enabled) { |
1750 | free_irq(ha->host->irq, ha); | 1761 | free_irq(ha->host->irq, ha); |
1762 | pci_disable_msi(ha->pdev); | ||
1763 | } | ||
1751 | } | 1764 | } |