diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c index 48616c6..882b205 100644 --- a/drivers/ata/ahci.c +++ b/drivers/ata/ahci.c @@ -209,6 +209,10 @@ struct ahci_port_priv { unsigned int ncq_saw_dmas:1; }; +static int msi; +module_param(msi, int, 0444); +MODULE_PARM_DESC(msi, "Enable use of PCI MSI (0=off, 1=on)"); + static u32 ahci_scr_read (struct ata_port *ap, unsigned int sc_reg); static void ahci_scr_write (struct ata_port *ap, unsigned int sc_reg, u32 val); static int ahci_init_one (struct pci_dev *pdev, const struct pci_device_id *ent); @@ -1706,11 +1710,13 @@ static int ahci_init_one (struct pci_dev *pdev, const struct pci_device_id *ent) goto err_out; } - if (pci_enable_msi(pdev) == 0) - have_msi = 1; - else { - pci_intx(pdev, 1); - have_msi = 0; + if (msi) { + if (pci_enable_msi(pdev) == 0) + have_msi = 1; + else { + pci_intx(pdev, 1); + have_msi = 0; + } } probe_ent = kmalloc(sizeof(*probe_ent), GFP_KERNEL);