|
@@ -417,6 +417,10 @@ static struct ata_port_operations sil24_ops = {
|
|
|
#endif
|
|
|
};
|
|
|
|
|
|
+static int sata_sil24_msi; /* Disable MSI */
|
|
|
+module_param_named(msi, sata_sil24_msi, bool, S_IRUGO);
|
|
|
+MODULE_PARM_DESC(msi, "Enable MSI (Default: false)");
|
|
|
+
|
|
|
/*
|
|
|
* Use bits 30-31 of port_flags to encode available port numbers.
|
|
|
* Current maxium is 4.
|
|
@@ -1340,6 +1344,11 @@ static int sil24_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
|
|
|
|
|
|
sil24_init_controller(host);
|
|
|
|
|
|
+ if (sata_sil24_msi && !pci_enable_msi(pdev)) {
|
|
|
+ dev_printk(KERN_INFO, &pdev->dev, "Using MSI\n");
|
|
|
+ pci_intx(pdev, 0);
|
|
|
+ }
|
|
|
+
|
|
|
pci_set_master(pdev);
|
|
|
return ata_host_activate(host, pdev->irq, sil24_interrupt, IRQF_SHARED,
|
|
|
&sil24_sht);
|