Commit 51c89499 authored by Tony Vroon's avatar Tony Vroon Committed by Jeff Garzik

sata_nv: MSI support, disabled by default

At least the nVidia MCP55 controller quite happily supports MSI.
This adds an option to use it. It is disabled by default.
As per feedback by Robert Hancock, it will honour the user
request as the kernel will not enable MSI where the controller
or the specific system configuration do not support it.
Signed-off-by: default avatarTony Vroon <tony@linx.net>
Cc: Robert Hancock <hancockrwd@gmail.com>
Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
parent 7831387b
...@@ -602,6 +602,7 @@ MODULE_VERSION(DRV_VERSION); ...@@ -602,6 +602,7 @@ MODULE_VERSION(DRV_VERSION);
static int adma_enabled; static int adma_enabled;
static int swncq_enabled = 1; static int swncq_enabled = 1;
static int msi_enabled;
static void nv_adma_register_mode(struct ata_port *ap) static void nv_adma_register_mode(struct ata_port *ap)
{ {
...@@ -2459,6 +2460,11 @@ static int nv_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) ...@@ -2459,6 +2460,11 @@ static int nv_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
} else if (type == SWNCQ) } else if (type == SWNCQ)
nv_swncq_host_init(host); nv_swncq_host_init(host);
if (msi_enabled) {
dev_printk(KERN_NOTICE, &pdev->dev, "Using MSI\n");
pci_enable_msi(pdev);
}
pci_set_master(pdev); pci_set_master(pdev);
return ata_host_activate(host, pdev->irq, ipriv->irq_handler, return ata_host_activate(host, pdev->irq, ipriv->irq_handler,
IRQF_SHARED, ipriv->sht); IRQF_SHARED, ipriv->sht);
...@@ -2558,4 +2564,6 @@ module_param_named(adma, adma_enabled, bool, 0444); ...@@ -2558,4 +2564,6 @@ module_param_named(adma, adma_enabled, bool, 0444);
MODULE_PARM_DESC(adma, "Enable use of ADMA (Default: false)"); MODULE_PARM_DESC(adma, "Enable use of ADMA (Default: false)");
module_param_named(swncq, swncq_enabled, bool, 0444); module_param_named(swncq, swncq_enabled, bool, 0444);
MODULE_PARM_DESC(swncq, "Enable use of SWNCQ (Default: true)"); MODULE_PARM_DESC(swncq, "Enable use of SWNCQ (Default: true)");
module_param_named(msi, msi_enabled, bool, 0444);
MODULE_PARM_DESC(msi, "Enable use of MSI (Default: false)");
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment