diff options
author | Vivek Mahajan <vivek.mahajan@freescale.com> | 2009-11-16 01:19:22 -0500 |
---|---|---|
committer | Jeff Garzik <jgarzik@redhat.com> | 2009-12-03 02:46:34 -0500 |
commit | dae77214fa71898b84514e43721fb7bf260b026a (patch) | |
tree | f439185a2b1ffe3f481ec0ae1409c0c208e540e7 /drivers/ata/sata_sil24.c | |
parent | 097dac91837b35947fffb0e303bcf71e4e4a789f (diff) |
sata_sil24: MSI support, disabled by default
The following patch adds MSI support. Some platforms
may have broken MSI, so those are defaulted to use
legacy PCI interrupts.
Signed-off-by: Vivek Mahajan <vivek.mahajan@freescale.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'drivers/ata/sata_sil24.c')
-rw-r--r-- | drivers/ata/sata_sil24.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/ata/sata_sil24.c b/drivers/ata/sata_sil24.c index e6946fc527d0..1370df6c420c 100644 --- a/drivers/ata/sata_sil24.c +++ b/drivers/ata/sata_sil24.c | |||
@@ -417,6 +417,10 @@ static struct ata_port_operations sil24_ops = { | |||
417 | #endif | 417 | #endif |
418 | }; | 418 | }; |
419 | 419 | ||
420 | static int sata_sil24_msi; /* Disable MSI */ | ||
421 | module_param_named(msi, sata_sil24_msi, bool, S_IRUGO); | ||
422 | MODULE_PARM_DESC(msi, "Enable MSI (Default: false)"); | ||
423 | |||
420 | /* | 424 | /* |
421 | * Use bits 30-31 of port_flags to encode available port numbers. | 425 | * Use bits 30-31 of port_flags to encode available port numbers. |
422 | * Current maxium is 4. | 426 | * Current maxium is 4. |
@@ -1340,6 +1344,11 @@ static int sil24_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
1340 | 1344 | ||
1341 | sil24_init_controller(host); | 1345 | sil24_init_controller(host); |
1342 | 1346 | ||
1347 | if (sata_sil24_msi && !pci_enable_msi(pdev)) { | ||
1348 | dev_printk(KERN_INFO, &pdev->dev, "Using MSI\n"); | ||
1349 | pci_intx(pdev, 0); | ||
1350 | } | ||
1351 | |||
1343 | pci_set_master(pdev); | 1352 | pci_set_master(pdev); |
1344 | return ata_host_activate(host, pdev->irq, sil24_interrupt, IRQF_SHARED, | 1353 | return ata_host_activate(host, pdev->irq, sil24_interrupt, IRQF_SHARED, |
1345 | &sil24_sht); | 1354 | &sil24_sht); |