diff options
author | Wayne Boyer <wayneb@linux.vnet.ibm.com> | 2009-01-23 12:17:35 -0500 |
---|---|---|
committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2009-03-12 13:57:58 -0400 |
commit | 5a9ef25b14d39b8413364df12cb8d9bb7a673a32 (patch) | |
tree | a63917edbeaf1eda156015b013b4bb683c94d459 /drivers/scsi | |
parent | 951948a397e3ddc96658efd648b9d66622965b19 (diff) |
[SCSI] ipr: add MSI support
Enable MSI if available/supported.
Signed-off-by: Wayne Boyer <wayneb@linux.vnet.ibm.com>
Acked-by: Brian King <brking@linux.vnet.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/scsi')
-rw-r--r-- | drivers/scsi/ipr.c | 7 | ||||
-rw-r--r-- | drivers/scsi/ipr.h | 4 |
2 files changed, 9 insertions, 2 deletions
diff --git a/drivers/scsi/ipr.c b/drivers/scsi/ipr.c index 07829009a8be..3f47cd1c46e7 100644 --- a/drivers/scsi/ipr.c +++ b/drivers/scsi/ipr.c | |||
@@ -7147,6 +7147,7 @@ static void ipr_free_all_resources(struct ipr_ioa_cfg *ioa_cfg) | |||
7147 | 7147 | ||
7148 | ENTER; | 7148 | ENTER; |
7149 | free_irq(pdev->irq, ioa_cfg); | 7149 | free_irq(pdev->irq, ioa_cfg); |
7150 | pci_disable_msi(pdev); | ||
7150 | iounmap(ioa_cfg->hdw_dma_regs); | 7151 | iounmap(ioa_cfg->hdw_dma_regs); |
7151 | pci_release_regions(pdev); | 7152 | pci_release_regions(pdev); |
7152 | ipr_free_mem(ioa_cfg); | 7153 | ipr_free_mem(ioa_cfg); |
@@ -7432,6 +7433,11 @@ static int __devinit ipr_probe_ioa(struct pci_dev *pdev, | |||
7432 | goto out; | 7433 | goto out; |
7433 | } | 7434 | } |
7434 | 7435 | ||
7436 | if (!(rc = pci_enable_msi(pdev))) | ||
7437 | dev_info(&pdev->dev, "MSI enabled\n"); | ||
7438 | else if (ipr_debug) | ||
7439 | dev_info(&pdev->dev, "Cannot enable MSI\n"); | ||
7440 | |||
7435 | dev_info(&pdev->dev, "Found IOA with IRQ: %d\n", pdev->irq); | 7441 | dev_info(&pdev->dev, "Found IOA with IRQ: %d\n", pdev->irq); |
7436 | 7442 | ||
7437 | host = scsi_host_alloc(&driver_template, sizeof(*ioa_cfg)); | 7443 | host = scsi_host_alloc(&driver_template, sizeof(*ioa_cfg)); |
@@ -7574,6 +7580,7 @@ out_release_regions: | |||
7574 | out_scsi_host_put: | 7580 | out_scsi_host_put: |
7575 | scsi_host_put(host); | 7581 | scsi_host_put(host); |
7576 | out_disable: | 7582 | out_disable: |
7583 | pci_disable_msi(pdev); | ||
7577 | pci_disable_device(pdev); | 7584 | pci_disable_device(pdev); |
7578 | goto out; | 7585 | goto out; |
7579 | } | 7586 | } |
diff --git a/drivers/scsi/ipr.h b/drivers/scsi/ipr.h index 8f872f816fe4..79a3ae4fb2c7 100644 --- a/drivers/scsi/ipr.h +++ b/drivers/scsi/ipr.h | |||
@@ -37,8 +37,8 @@ | |||
37 | /* | 37 | /* |
38 | * Literals | 38 | * Literals |
39 | */ | 39 | */ |
40 | #define IPR_DRIVER_VERSION "2.4.1" | 40 | #define IPR_DRIVER_VERSION "2.4.2" |
41 | #define IPR_DRIVER_DATE "(April 24, 2007)" | 41 | #define IPR_DRIVER_DATE "(January 21, 2009)" |
42 | 42 | ||
43 | /* | 43 | /* |
44 | * IPR_MAX_CMD_PER_LUN: This defines the maximum number of outstanding | 44 | * IPR_MAX_CMD_PER_LUN: This defines the maximum number of outstanding |