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 229 return -ENOMEM; 230 230 231 231 /* Perform set up for DMA */ 232 - if (pci_enable_device_bars(pdev, 1<<2)) { 232 + if (pci_enable_device_io(pdev)) { 233 233 printk(KERN_ERR DRV_NAME ": unable to configure BAR2.\n"); 234 234 return -ENODEV; 235 235 }
+1 -1
drivers/i2c/busses/scx200_acb.c
··· 492 492 iface->pdev = pdev; 493 493 iface->bar = bar; 494 494 495 - rc = pci_enable_device_bars(iface->pdev, 1 << iface->bar); 495 + rc = pci_enable_device_io(iface->pdev); 496 496 if (rc) 497 497 goto errout_free; 498 498
+8 -2
drivers/ide/pci/cs5520.c
··· 156 156 ide_setup_pci_noise(dev, d); 157 157 158 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)) { 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)) { 161 167 printk(KERN_WARNING "%s: Unable to enable 55x0.\n", d->name); 162 168 return -ENODEV; 163 169 }
+4 -2
drivers/ide/setup-pci.c
··· 240 240 * @d: IDE port info 241 241 * 242 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. 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. 244 246 * 245 247 * Returns zero on success or an error code 246 248 */ ··· 252 250 int ret; 253 251 254 252 if (pci_enable_device(dev)) { 255 - ret = pci_enable_device_bars(dev, 1 << 4); 253 + ret = pci_enable_device_io(dev); 256 254 if (ret < 0) { 257 255 printk(KERN_WARNING "%s: (ide_setup_pci_device:) " 258 256 "Could not enable device.\n", d->name);
+1 -2
drivers/scsi/lpfc/lpfc_init.c
··· 2296 2296 struct Scsi_Host *shost = pci_get_drvdata(pdev); 2297 2297 struct lpfc_hba *phba = ((struct lpfc_vport *)shost->hostdata)->phba; 2298 2298 struct lpfc_sli *psli = &phba->sli; 2299 - int bars = pci_select_bars(pdev, IORESOURCE_MEM); 2300 2299 2301 2300 dev_printk(KERN_INFO, &pdev->dev, "recovering from a slot reset.\n"); 2302 - if (pci_enable_device_bars(pdev, bars)) { 2301 + if (pci_enable_device_mem(pdev)) { 2303 2302 printk(KERN_ERR "lpfc: Cannot re-enable " 2304 2303 "PCI device after reset.\n"); 2305 2304 return PCI_ERS_RESULT_DISCONNECT;
+1
drivers/scsi/qla2xxx/qla_def.h
··· 2268 2268 spinlock_t hardware_lock ____cacheline_aligned; 2269 2269 2270 2270 int bars; 2271 + int mem_only; 2271 2272 device_reg_t __iomem *iobase; /* Base I/O address */ 2272 2273 resource_size_t pio_address; 2273 2274 #define MIN_IOBASE_LEN 0x100
+17 -4
drivers/scsi/qla2xxx/qla_os.c
··· 1564 1564 char pci_info[30]; 1565 1565 char fw_str[30]; 1566 1566 struct scsi_host_template *sht; 1567 - int bars; 1567 + int bars, mem_only = 0; 1568 1568 1569 1569 bars = pci_select_bars(pdev, IORESOURCE_MEM | IORESOURCE_IO); 1570 1570 sht = &qla2x00_driver_template; ··· 1575 1575 pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2532) { 1576 1576 bars = pci_select_bars(pdev, IORESOURCE_MEM); 1577 1577 sht = &qla24xx_driver_template; 1578 + mem_only = 1; 1578 1579 } 1579 1580 1580 - if (pci_enable_device_bars(pdev, bars)) 1581 - goto probe_out; 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 + } 1582 1588 1583 1589 if (pci_find_aer_capability(pdev)) 1584 1590 if (pci_enable_pcie_error_reporting(pdev)) ··· 1607 1601 sprintf(ha->host_str, "%s_%ld", QLA2XXX_DRIVER_NAME, ha->host_no); 1608 1602 ha->parent = NULL; 1609 1603 ha->bars = bars; 1604 + ha->mem_only = mem_only; 1610 1605 1611 1606 /* Set ISP-type information. */ 1612 1607 qla2x00_set_isp_flags(ha); ··· 2882 2875 { 2883 2876 pci_ers_result_t ret = PCI_ERS_RESULT_DISCONNECT; 2884 2877 scsi_qla_host_t *ha = pci_get_drvdata(pdev); 2878 + int rc; 2885 2879 2886 - if (pci_enable_device_bars(pdev, ha->bars)) { 2880 + if (ha->mem_only) 2881 + rc = pci_enable_device_mem(pdev); 2882 + else 2883 + rc = pci_enable_device(pdev); 2884 + 2885 + if (rc) { 2887 2886 qla_printk(KERN_WARNING, ha, 2888 2887 "Can't re-enable PCI device after reset.\n"); 2889 2888