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>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
b718989da7
commit
0948391641
@@ -229,7 +229,7 @@ static int __devinit cs5520_init_one(struct pci_dev *pdev, const struct pci_devi
|
|||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
/* Perform set up for DMA */
|
/* 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");
|
printk(KERN_ERR DRV_NAME ": unable to configure BAR2.\n");
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
}
|
}
|
||||||
|
@@ -492,7 +492,7 @@ static __init int scx200_create_pci(const char *text, struct pci_dev *pdev,
|
|||||||
iface->pdev = pdev;
|
iface->pdev = pdev;
|
||||||
iface->bar = bar;
|
iface->bar = bar;
|
||||||
|
|
||||||
rc = pci_enable_device_bars(iface->pdev, 1 << iface->bar);
|
rc = pci_enable_device_io(iface->pdev);
|
||||||
if (rc)
|
if (rc)
|
||||||
goto errout_free;
|
goto errout_free;
|
||||||
|
|
||||||
|
@@ -156,8 +156,14 @@ static int __devinit cs5520_init_one(struct pci_dev *dev, const struct pci_devic
|
|||||||
ide_setup_pci_noise(dev, d);
|
ide_setup_pci_noise(dev, d);
|
||||||
|
|
||||||
/* We must not grab the entire device, it has 'ISA' space in its
|
/* 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 */
|
* BARS too and we will freak out other bits of the kernel
|
||||||
if (pci_enable_device_bars(dev, 1<<2)) {
|
*
|
||||||
|
* 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);
|
printk(KERN_WARNING "%s: Unable to enable 55x0.\n", d->name);
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
}
|
}
|
||||||
|
@@ -240,7 +240,9 @@ EXPORT_SYMBOL_GPL(ide_setup_pci_noise);
|
|||||||
* @d: IDE port info
|
* @d: IDE port info
|
||||||
*
|
*
|
||||||
* Enable the IDE PCI device. We attempt to enable the device in full
|
* 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
|
* Returns zero on success or an error code
|
||||||
*/
|
*/
|
||||||
@@ -250,7 +252,7 @@ static int ide_pci_enable(struct pci_dev *dev, const struct ide_port_info *d)
|
|||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
if (pci_enable_device(dev)) {
|
if (pci_enable_device(dev)) {
|
||||||
ret = pci_enable_device_bars(dev, 1 << 4);
|
ret = pci_enable_device_io(dev);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
printk(KERN_WARNING "%s: (ide_setup_pci_device:) "
|
printk(KERN_WARNING "%s: (ide_setup_pci_device:) "
|
||||||
"Could not enable device.\n", d->name);
|
"Could not enable device.\n", d->name);
|
||||||
|
@@ -2296,10 +2296,9 @@ static pci_ers_result_t lpfc_io_slot_reset(struct pci_dev *pdev)
|
|||||||
struct Scsi_Host *shost = pci_get_drvdata(pdev);
|
struct Scsi_Host *shost = pci_get_drvdata(pdev);
|
||||||
struct lpfc_hba *phba = ((struct lpfc_vport *)shost->hostdata)->phba;
|
struct lpfc_hba *phba = ((struct lpfc_vport *)shost->hostdata)->phba;
|
||||||
struct lpfc_sli *psli = &phba->sli;
|
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");
|
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 "
|
printk(KERN_ERR "lpfc: Cannot re-enable "
|
||||||
"PCI device after reset.\n");
|
"PCI device after reset.\n");
|
||||||
return PCI_ERS_RESULT_DISCONNECT;
|
return PCI_ERS_RESULT_DISCONNECT;
|
||||||
|
@@ -2268,6 +2268,7 @@ typedef struct scsi_qla_host {
|
|||||||
spinlock_t hardware_lock ____cacheline_aligned;
|
spinlock_t hardware_lock ____cacheline_aligned;
|
||||||
|
|
||||||
int bars;
|
int bars;
|
||||||
|
int mem_only;
|
||||||
device_reg_t __iomem *iobase; /* Base I/O address */
|
device_reg_t __iomem *iobase; /* Base I/O address */
|
||||||
resource_size_t pio_address;
|
resource_size_t pio_address;
|
||||||
#define MIN_IOBASE_LEN 0x100
|
#define MIN_IOBASE_LEN 0x100
|
||||||
|
@@ -1564,7 +1564,7 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
|
|||||||
char pci_info[30];
|
char pci_info[30];
|
||||||
char fw_str[30];
|
char fw_str[30];
|
||||||
struct scsi_host_template *sht;
|
struct scsi_host_template *sht;
|
||||||
int bars;
|
int bars, mem_only = 0;
|
||||||
|
|
||||||
bars = pci_select_bars(pdev, IORESOURCE_MEM | IORESOURCE_IO);
|
bars = pci_select_bars(pdev, IORESOURCE_MEM | IORESOURCE_IO);
|
||||||
sht = &qla2x00_driver_template;
|
sht = &qla2x00_driver_template;
|
||||||
@@ -1575,10 +1575,16 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
|
|||||||
pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2532) {
|
pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2532) {
|
||||||
bars = pci_select_bars(pdev, IORESOURCE_MEM);
|
bars = pci_select_bars(pdev, IORESOURCE_MEM);
|
||||||
sht = &qla24xx_driver_template;
|
sht = &qla24xx_driver_template;
|
||||||
|
mem_only = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pci_enable_device_bars(pdev, bars))
|
if (mem_only) {
|
||||||
|
if (pci_enable_device_mem(pdev))
|
||||||
goto probe_out;
|
goto probe_out;
|
||||||
|
} else {
|
||||||
|
if (pci_enable_device(pdev))
|
||||||
|
goto probe_out;
|
||||||
|
}
|
||||||
|
|
||||||
if (pci_find_aer_capability(pdev))
|
if (pci_find_aer_capability(pdev))
|
||||||
if (pci_enable_pcie_error_reporting(pdev))
|
if (pci_enable_pcie_error_reporting(pdev))
|
||||||
@@ -1601,6 +1607,7 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
|
|||||||
sprintf(ha->host_str, "%s_%ld", QLA2XXX_DRIVER_NAME, ha->host_no);
|
sprintf(ha->host_str, "%s_%ld", QLA2XXX_DRIVER_NAME, ha->host_no);
|
||||||
ha->parent = NULL;
|
ha->parent = NULL;
|
||||||
ha->bars = bars;
|
ha->bars = bars;
|
||||||
|
ha->mem_only = mem_only;
|
||||||
|
|
||||||
/* Set ISP-type information. */
|
/* Set ISP-type information. */
|
||||||
qla2x00_set_isp_flags(ha);
|
qla2x00_set_isp_flags(ha);
|
||||||
@@ -2875,8 +2882,14 @@ qla2xxx_pci_slot_reset(struct pci_dev *pdev)
|
|||||||
{
|
{
|
||||||
pci_ers_result_t ret = PCI_ERS_RESULT_DISCONNECT;
|
pci_ers_result_t ret = PCI_ERS_RESULT_DISCONNECT;
|
||||||
scsi_qla_host_t *ha = pci_get_drvdata(pdev);
|
scsi_qla_host_t *ha = pci_get_drvdata(pdev);
|
||||||
|
int rc;
|
||||||
|
|
||||||
if (pci_enable_device_bars(pdev, ha->bars)) {
|
if (ha->mem_only)
|
||||||
|
rc = pci_enable_device_mem(pdev);
|
||||||
|
else
|
||||||
|
rc = pci_enable_device(pdev);
|
||||||
|
|
||||||
|
if (rc) {
|
||||||
qla_printk(KERN_WARNING, ha,
|
qla_printk(KERN_WARNING, ha,
|
||||||
"Can't re-enable PCI device after reset.\n");
|
"Can't re-enable PCI device after reset.\n");
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user