From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Greg Kroah-Hartman <greg@kroah.com>
Cc: linux-pci@atrey.karlin.mff.cuni.cz,
<linux-kernel@vger.kernel.org>, <ink@jurassic.park.msu.ru>,
Alan Cox <alan@redhat.com>, <james.smart@emulex.com>,
<linux-driver@qlogic.com>,
Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Subject: [PATCH 2/3] pci: Remove users of pci_enable_device_bars()
Date: Thu, 20 Dec 2007 15:28:09 +1100 [thread overview]
Message-ID: <20071220042811.D312DDDEE6@ozlabs.org> (raw)
This patch converts users of pci_enable_device_bars() to the new
pci_enable_device_{io,mem} interface.
The new API fits nicely, except maybe for the QLA case where a bit of
code re-organization might be a good idea but I prefer sticking to the
simple patch as I don't have hardware to test on.
I'll also need some feedback on the cs5520 change.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
---
drivers/ata/pata_cs5520.c | 2 +-
drivers/i2c/busses/scx200_acb.c | 2 +-
drivers/ide/pci/cs5520.c | 10 ++++++++--
drivers/ide/setup-pci.c | 6 ++++--
drivers/scsi/lpfc/lpfc_init.c | 3 +--
drivers/scsi/qla2xxx/qla_os.c | 12 +++++++++---
6 files changed, 24 insertions(+), 11 deletions(-)
--- linux-work.orig/drivers/ata/pata_cs5520.c 2007-12-18 09:37:55.000000000 +1100
+++ linux-work/drivers/ata/pata_cs5520.c 2007-12-18 09:39:03.000000000 +1100
@@ -229,7 +229,7 @@ static int __devinit cs5520_init_one(str
return -ENOMEM;
/* Perform set up for DMA */
- if (pci_enable_device_bars(pdev, 1<<2)) {
+ if (pci_enable_device_io(pdev)) {
printk(KERN_ERR DRV_NAME ": unable to configure BAR2.\n");
return -ENODEV;
}
Index: linux-work/drivers/i2c/busses/scx200_acb.c
===================================================================
--- linux-work.orig/drivers/i2c/busses/scx200_acb.c 2007-12-18 09:37:55.000000000 +1100
+++ linux-work/drivers/i2c/busses/scx200_acb.c 2007-12-18 09:39:03.000000000 +1100
@@ -492,7 +492,7 @@ static __init int scx200_create_pci(cons
iface->pdev = pdev;
iface->bar = bar;
- rc = pci_enable_device_bars(iface->pdev, 1 << iface->bar);
+ rc = pci_enable_device_io(iface->pdev);
if (rc)
goto errout_free;
Index: linux-work/drivers/ide/pci/cs5520.c
===================================================================
--- linux-work.orig/drivers/ide/pci/cs5520.c 2007-12-18 09:37:55.000000000 +1100
+++ linux-work/drivers/ide/pci/cs5520.c 2007-12-18 09:39:03.000000000 +1100
@@ -160,8 +160,14 @@ static int __devinit cs5520_init_one(str
ide_setup_pci_noise(dev, d);
/* We must not grab the entire device, it has 'ISA' space in its
- BARS too and we will freak out other bits of the kernel */
- if (pci_enable_device_bars(dev, 1<<2)) {
+ * BARS too and we will freak out other bits of the kernel
+ *
+ * pci_enable_device_bars() is going away. I replaced it with
+ * IO only enable for now but I'll need confirmation this is
+ * allright for that device. If not, it will need some kind of
+ * quirk. --BenH.
+ */
+ if (pci_enable_device_io(dev)) {
printk(KERN_WARNING "%s: Unable to enable 55x0.\n", d->name);
return -ENODEV;
}
Index: linux-work/drivers/ide/setup-pci.c
===================================================================
--- linux-work.orig/drivers/ide/setup-pci.c 2007-12-18 09:37:55.000000000 +1100
+++ linux-work/drivers/ide/setup-pci.c 2007-12-18 09:40:07.000000000 +1100
@@ -236,7 +236,9 @@ EXPORT_SYMBOL_GPL(ide_setup_pci_noise);
* @d: IDE port info
*
* Enable the IDE PCI device. We attempt to enable the device in full
- * but if that fails then we only need BAR4 so we will enable that.
+ * but if that fails then we only need IO space. The PCI code should
+ * have setup the proper resources for us already for controllers in
+ * legacy mode.
*
* Returns zero on success or an error code
*/
@@ -246,7 +248,7 @@ static int ide_pci_enable(struct pci_dev
int ret;
if (pci_enable_device(dev)) {
- ret = pci_enable_device_bars(dev, 1 << 4);
+ ret = pci_enable_device_io(dev);
if (ret < 0) {
printk(KERN_WARNING "%s: (ide_setup_pci_device:) "
"Could not enable device.\n", d->name);
Index: linux-work/drivers/scsi/lpfc/lpfc_init.c
===================================================================
--- linux-work.orig/drivers/scsi/lpfc/lpfc_init.c 2007-12-18 09:37:55.000000000 +1100
+++ linux-work/drivers/scsi/lpfc/lpfc_init.c 2007-12-18 09:39:03.000000000 +1100
@@ -2100,10 +2100,9 @@ static pci_ers_result_t lpfc_io_slot_res
struct Scsi_Host *shost = pci_get_drvdata(pdev);
struct lpfc_hba *phba = ((struct lpfc_vport *)shost->hostdata)->phba;
struct lpfc_sli *psli = &phba->sli;
- int bars = pci_select_bars(pdev, IORESOURCE_MEM);
dev_printk(KERN_INFO, &pdev->dev, "recovering from a slot reset.\n");
- if (pci_enable_device_bars(pdev, bars)) {
+ if (pci_enable_device_mem(pdev)) {
printk(KERN_ERR "lpfc: Cannot re-enable "
"PCI device after reset.\n");
return PCI_ERS_RESULT_DISCONNECT;
Index: linux-work/drivers/scsi/qla2xxx/qla_os.c
===================================================================
--- linux-work.orig/drivers/scsi/qla2xxx/qla_os.c 2007-12-18 09:37:55.000000000 +1100
+++ linux-work/drivers/scsi/qla2xxx/qla_os.c 2007-12-18 09:39:03.000000000 +1100
@@ -1583,7 +1583,7 @@ qla2x00_probe_one(struct pci_dev *pdev,
char pci_info[30];
char fw_str[30];
struct scsi_host_template *sht;
- int bars;
+ int bars, mem_only = 0;
bars = pci_select_bars(pdev, IORESOURCE_MEM | IORESOURCE_IO);
sht = &qla2x00_driver_template;
@@ -1594,10 +1594,16 @@ qla2x00_probe_one(struct pci_dev *pdev,
pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2532) {
bars = pci_select_bars(pdev, IORESOURCE_MEM);
sht = &qla24xx_driver_template;
+ mem_only = 1;
}
- if (pci_enable_device_bars(pdev, bars))
- goto probe_out;
+ if (mem_only) {
+ if (pci_enable_device_mem(pdev))
+ goto probe_out;
+ } else {
+ if (pci_enable_device(pdev))
+ goto probe_out;
+ }
if (pci_find_aer_capability(pdev))
if (pci_enable_pcie_error_reporting(pdev))
next reply other threads:[~2007-12-20 4:31 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-12-20 4:28 Benjamin Herrenschmidt [this message]
2007-12-21 2:59 ` patch pci-remove-users-of-pci_enable_device_bars.patch added to gregkh-2.6 tree gregkh
2008-01-07 19:42 ` [PATCH 2/3] pci: Remove users of pci_enable_device_bars() Andrew Vasquez
2008-01-07 20:48 ` Benjamin Herrenschmidt
2008-02-01 0:14 ` Andrew Vasquez
2008-02-01 5:08 ` Greg KH
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=20071220042811.D312DDDEE6@ozlabs.org \
--to=benh@kernel.crashing.org \
--cc=alan@redhat.com \
--cc=bzolnier@gmail.com \
--cc=greg@kroah.com \
--cc=ink@jurassic.park.msu.ru \
--cc=james.smart@emulex.com \
--cc=linux-driver@qlogic.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@atrey.karlin.mff.cuni.cz \
/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