PCI: Remove users of pci_enable_device_bars()

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

authored by

Benjamin Herrenschmidt and committed by
Greg Kroah-Hartman
09483916 b718989d

+33 -12
+1 -1
drivers/ata/pata_cs5520.c
··· 229 return -ENOMEM; 230 231 /* Perform set up for DMA */ 232 - if (pci_enable_device_bars(pdev, 1<<2)) { 233 printk(KERN_ERR DRV_NAME ": unable to configure BAR2.\n"); 234 return -ENODEV; 235 }
··· 229 return -ENOMEM; 230 231 /* Perform set up for DMA */ 232 + if (pci_enable_device_io(pdev)) { 233 printk(KERN_ERR DRV_NAME ": unable to configure BAR2.\n"); 234 return -ENODEV; 235 }
+1 -1
drivers/i2c/busses/scx200_acb.c
··· 492 iface->pdev = pdev; 493 iface->bar = bar; 494 495 - rc = pci_enable_device_bars(iface->pdev, 1 << iface->bar); 496 if (rc) 497 goto errout_free; 498
··· 492 iface->pdev = pdev; 493 iface->bar = bar; 494 495 + rc = pci_enable_device_io(iface->pdev); 496 if (rc) 497 goto errout_free; 498
+8 -2
drivers/ide/pci/cs5520.c
··· 156 ide_setup_pci_noise(dev, d); 157 158 /* We must not grab the entire device, it has 'ISA' space in its 159 - BARS too and we will freak out other bits of the kernel */ 160 - if (pci_enable_device_bars(dev, 1<<2)) { 161 printk(KERN_WARNING "%s: Unable to enable 55x0.\n", d->name); 162 return -ENODEV; 163 }
··· 156 ide_setup_pci_noise(dev, d); 157 158 /* We must not grab the entire device, it has 'ISA' space in its 159 + * BARS too and we will freak out other bits of the kernel 160 + * 161 + * pci_enable_device_bars() is going away. I replaced it with 162 + * IO only enable for now but I'll need confirmation this is 163 + * allright for that device. If not, it will need some kind of 164 + * quirk. --BenH. 165 + */ 166 + if (pci_enable_device_io(dev)) { 167 printk(KERN_WARNING "%s: Unable to enable 55x0.\n", d->name); 168 return -ENODEV; 169 }
+4 -2
drivers/ide/setup-pci.c
··· 240 * @d: IDE port info 241 * 242 * Enable the IDE PCI device. We attempt to enable the device in full 243 - * but if that fails then we only need BAR4 so we will enable that. 244 * 245 * Returns zero on success or an error code 246 */ ··· 252 int ret; 253 254 if (pci_enable_device(dev)) { 255 - ret = pci_enable_device_bars(dev, 1 << 4); 256 if (ret < 0) { 257 printk(KERN_WARNING "%s: (ide_setup_pci_device:) " 258 "Could not enable device.\n", d->name);
··· 240 * @d: IDE port info 241 * 242 * Enable the IDE PCI device. We attempt to enable the device in full 243 + * but if that fails then we only need IO space. The PCI code should 244 + * have setup the proper resources for us already for controllers in 245 + * legacy mode. 246 * 247 * Returns zero on success or an error code 248 */ ··· 250 int ret; 251 252 if (pci_enable_device(dev)) { 253 + ret = pci_enable_device_io(dev); 254 if (ret < 0) { 255 printk(KERN_WARNING "%s: (ide_setup_pci_device:) " 256 "Could not enable device.\n", d->name);
+1 -2
drivers/scsi/lpfc/lpfc_init.c
··· 2296 struct Scsi_Host *shost = pci_get_drvdata(pdev); 2297 struct lpfc_hba *phba = ((struct lpfc_vport *)shost->hostdata)->phba; 2298 struct lpfc_sli *psli = &phba->sli; 2299 - int bars = pci_select_bars(pdev, IORESOURCE_MEM); 2300 2301 dev_printk(KERN_INFO, &pdev->dev, "recovering from a slot reset.\n"); 2302 - if (pci_enable_device_bars(pdev, bars)) { 2303 printk(KERN_ERR "lpfc: Cannot re-enable " 2304 "PCI device after reset.\n"); 2305 return PCI_ERS_RESULT_DISCONNECT;
··· 2296 struct Scsi_Host *shost = pci_get_drvdata(pdev); 2297 struct lpfc_hba *phba = ((struct lpfc_vport *)shost->hostdata)->phba; 2298 struct lpfc_sli *psli = &phba->sli; 2299 2300 dev_printk(KERN_INFO, &pdev->dev, "recovering from a slot reset.\n"); 2301 + if (pci_enable_device_mem(pdev)) { 2302 printk(KERN_ERR "lpfc: Cannot re-enable " 2303 "PCI device after reset.\n"); 2304 return PCI_ERS_RESULT_DISCONNECT;
+1
drivers/scsi/qla2xxx/qla_def.h
··· 2268 spinlock_t hardware_lock ____cacheline_aligned; 2269 2270 int bars; 2271 device_reg_t __iomem *iobase; /* Base I/O address */ 2272 resource_size_t pio_address; 2273 #define MIN_IOBASE_LEN 0x100
··· 2268 spinlock_t hardware_lock ____cacheline_aligned; 2269 2270 int bars; 2271 + int mem_only; 2272 device_reg_t __iomem *iobase; /* Base I/O address */ 2273 resource_size_t pio_address; 2274 #define MIN_IOBASE_LEN 0x100
+17 -4
drivers/scsi/qla2xxx/qla_os.c
··· 1564 char pci_info[30]; 1565 char fw_str[30]; 1566 struct scsi_host_template *sht; 1567 - int bars; 1568 1569 bars = pci_select_bars(pdev, IORESOURCE_MEM | IORESOURCE_IO); 1570 sht = &qla2x00_driver_template; ··· 1575 pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2532) { 1576 bars = pci_select_bars(pdev, IORESOURCE_MEM); 1577 sht = &qla24xx_driver_template; 1578 } 1579 1580 - if (pci_enable_device_bars(pdev, bars)) 1581 - goto probe_out; 1582 1583 if (pci_find_aer_capability(pdev)) 1584 if (pci_enable_pcie_error_reporting(pdev)) ··· 1607 sprintf(ha->host_str, "%s_%ld", QLA2XXX_DRIVER_NAME, ha->host_no); 1608 ha->parent = NULL; 1609 ha->bars = bars; 1610 1611 /* Set ISP-type information. */ 1612 qla2x00_set_isp_flags(ha); ··· 2882 { 2883 pci_ers_result_t ret = PCI_ERS_RESULT_DISCONNECT; 2884 scsi_qla_host_t *ha = pci_get_drvdata(pdev); 2885 2886 - if (pci_enable_device_bars(pdev, ha->bars)) { 2887 qla_printk(KERN_WARNING, ha, 2888 "Can't re-enable PCI device after reset.\n"); 2889
··· 1564 char pci_info[30]; 1565 char fw_str[30]; 1566 struct scsi_host_template *sht; 1567 + int bars, mem_only = 0; 1568 1569 bars = pci_select_bars(pdev, IORESOURCE_MEM | IORESOURCE_IO); 1570 sht = &qla2x00_driver_template; ··· 1575 pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2532) { 1576 bars = pci_select_bars(pdev, IORESOURCE_MEM); 1577 sht = &qla24xx_driver_template; 1578 + mem_only = 1; 1579 } 1580 1581 + if (mem_only) { 1582 + if (pci_enable_device_mem(pdev)) 1583 + goto probe_out; 1584 + } else { 1585 + if (pci_enable_device(pdev)) 1586 + goto probe_out; 1587 + } 1588 1589 if (pci_find_aer_capability(pdev)) 1590 if (pci_enable_pcie_error_reporting(pdev)) ··· 1601 sprintf(ha->host_str, "%s_%ld", QLA2XXX_DRIVER_NAME, ha->host_no); 1602 ha->parent = NULL; 1603 ha->bars = bars; 1604 + ha->mem_only = mem_only; 1605 1606 /* Set ISP-type information. */ 1607 qla2x00_set_isp_flags(ha); ··· 2875 { 2876 pci_ers_result_t ret = PCI_ERS_RESULT_DISCONNECT; 2877 scsi_qla_host_t *ha = pci_get_drvdata(pdev); 2878 + int rc; 2879 2880 + if (ha->mem_only) 2881 + rc = pci_enable_device_mem(pdev); 2882 + else 2883 + rc = pci_enable_device(pdev); 2884 + 2885 + if (rc) { 2886 qla_printk(KERN_WARNING, ha, 2887 "Can't re-enable PCI device after reset.\n"); 2888