From: Mark Lord <liml@rtr.ca>
To: Jeff Garzik <jgarzik@pobox.com>,
IDE/ATA development list <linux-ide@vger.kernel.org>
Subject: [PATCH 05/04] sata_mv: msi fix and cleanup
Date: Tue, 20 Jan 2009 13:19:02 -0500 [thread overview]
Message-ID: <49761596.3010000@rtr.ca> (raw)
In-Reply-To: <497507BF.3090608@rtr.ca>
Bug fix and cleanup for MSI support in sata_mv:
1. Set MV_HP_FLAG_MSI when MSI is enabled.
2. Remove redundant call of pci_intx().
3. Ensure that pci_disable_msi() is called on device removal.
Tested and working with Marvell 7042 PCIe hosts, though off by default.
Use of MSI still requires "msi=1" modparm for sata_mv.
Signed-off-by: Mark Lord <mlord@pobox.com>
--- old/drivers/ata/sata_mv.c 2009-01-19 17:12:51.000000000 -0500
+++ linux/drivers/ata/sata_mv.c 2009-01-20 13:06:06.000000000 -0500
@@ -3276,13 +3276,14 @@
#ifdef CONFIG_PCI
static int mv_pci_init_one(struct pci_dev *pdev,
const struct pci_device_id *ent);
+static void mv_pci_remove_one(struct pci_dev *pdev);
static struct pci_driver mv_pci_driver = {
.name = DRV_NAME,
.id_table = mv_pci_tbl,
.probe = mv_pci_init_one,
- .remove = ata_pci_remove_one,
+ .remove = mv_pci_remove_one,
};
/*
@@ -3367,6 +3368,26 @@
}
/**
+ * mv_pci_remove_one - ensure MSI gets disabled on device removal
+ * @pdev: PCI device
+ *
+ * LOCKING:
+ * Inherited from caller.
+ */
+static void mv_pci_remove_one(struct pci_dev *pdev)
+{
+ struct device *dev = &pdev->dev;
+ struct ata_host *host = dev_get_drvdata(dev);
+ struct mv_host_priv *hpriv = host->private_data;
+
+ if (hpriv->hp_flags & MV_HP_FLAG_MSI) {
+ devm_free_irq(host->dev, pdev->irq, host);
+ pci_disable_msi(pdev);
+ }
+ ata_pci_remove_one(pdev);
+}
+
+/**
* mv_pci_init_one - handle a positive probe of a PCI Marvell host
* @pdev: PCI device found
* @ent: PCI device ID entry for the matched host
@@ -3424,8 +3445,8 @@
return rc;
/* Enable interrupts */
- if (msi && pci_enable_msi(pdev))
- pci_intx(pdev, 1);
+ if (msi && 0 == pci_enable_msi(pdev))
+ hpriv->hp_flags |= MV_HP_FLAG_MSI;
mv_dump_pci_cfg(pdev, 0x68);
mv_print_info(host);
next prev parent reply other threads:[~2009-01-20 18:19 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-01-19 23:04 [PATCH 01/04] sata_mv: fix 8-port timeouts on 508x/6081 chips Mark Lord
2009-01-19 23:05 ` [PATCH 02/04] sata_mv: don't read hc_irq_cause Mark Lord
2009-01-19 23:06 ` [PATCH 03/04] sata_mv: remove bogus nsect restriction Mark Lord
2009-01-19 23:07 ` [PATCH 04/04] sata_mv: msi masking Mark Lord
2009-01-20 18:19 ` Mark Lord [this message]
2009-01-20 18:49 ` [PATCH 06/06] sata_mv: remove experimental designation Mark Lord
2009-01-21 1:54 ` [PATCH 04/04] sata_mv: msi masking Grant Grundler
2009-01-21 15:15 ` Mark Lord
2009-01-21 15:31 ` [PATCH 04/05] sata_mv: msi masking fix (v2) Mark Lord
2009-01-21 15:34 ` [PATCH 05/05] sata_mv: no longer experimental (v2) Mark Lord
2009-01-26 11:43 ` Jeff Garzik
2009-01-21 17:03 ` [PATCH 04/05] sata_mv: msi masking fix (v2) Grant Grundler
2009-01-22 1:02 ` Tejun Heo
2009-01-22 5:17 ` Mark Lord
2009-01-22 5:19 ` Mark Lord
2009-01-22 5:22 ` Tejun Heo
2009-01-23 17:20 ` sata_mv: basic PIO-only ATAPI support? Mark Lord
2009-01-23 17:23 ` Mark Lord
2009-01-23 17:52 ` Alan Cox
2009-01-23 18:37 ` Mark Lord
2009-01-26 11:42 ` [PATCH 04/05] sata_mv: msi masking fix (v2) Jeff Garzik
2009-01-26 11:39 ` [PATCH 01/04] sata_mv: fix 8-port timeouts on 508x/6081 chips Jeff Garzik
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=49761596.3010000@rtr.ca \
--to=liml@rtr.ca \
--cc=jgarzik@pobox.com \
--cc=linux-ide@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).