Skip to content

Commit f326ce1

Browse files
committed
Merge branch 'pci/devm'
- Export pcim_request_all_regions(), a managed interface to request all BARs (Philipp Stanner) - Replace pcim_iomap_regions_request_all() with pcim_request_all_regions(), and pcim_iomap_table()[n] with pcim_iomap(n), in the following drivers: ahci, crypto qat, crypto octeontx2, intel_th, iwlwifi, ntb idt, serial rp2, ALSA korg1212 (Philipp Stanner) - Remove the now unused pcim_iomap_regions_request_all() (Philipp Stanner) - Export pcim_iounmap_region(), a managed interface to unmap and release a PCI BAR (Philipp Stanner) - Replace pcim_iomap_regions(mask) with pcim_iomap_region(n), and pcim_iounmap_regions(mask) with pcim_iounmap_region(n), in the following drivers: fpga dfl-pci, block mtip32xx, gpio-merrifield, cavium (Philipp Stanner) * pci/devm: ethernet: cavium: Replace deprecated PCI functions gpio: Replace deprecated PCI functions fpga/dfl-pci.c: Replace deprecated PCI functions PCI: Deprecate pcim_iounmap_regions() PCI: Make pcim_iounmap_region() a public function PCI: Remove pcim_iomap_regions_request_all() ALSA: korg1212: Replace deprecated PCI functions serial: rp2: Replace deprecated PCI functions ntb: idt: Replace deprecated PCI functions wifi: iwlwifi: replace deprecated PCI functions intel_th: pci: Replace deprecated PCI functions crypto: marvell - replace deprecated PCI functions crypto: qat - replace deprecated PCI functions ata: ahci: Replace deprecated PCI functions PCI: Make pcim_request_all_regions() a public function
2 parents 73bdd73 + 64fe9bc commit f326ce1

17 files changed

Lines changed: 98 additions & 129 deletions

File tree

Documentation/driver-api/driver-model/devres.rst

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -394,7 +394,6 @@ PCI
394394
pcim_enable_device() : after success, some PCI ops become managed
395395
pcim_iomap() : do iomap() on a single BAR
396396
pcim_iomap_regions() : do request_region() and iomap() on multiple BARs
397-
pcim_iomap_regions_request_all() : do request_region() on all and iomap() on multiple BARs
398397
pcim_iomap_table() : array of mapped addresses indexed by BAR
399398
pcim_iounmap() : do iounmap() on a single BAR
400399
pcim_iounmap_regions() : do iounmap() and release_region() on multiple BARs

drivers/ata/acard-ahci.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -370,7 +370,7 @@ static int acard_ahci_init_one(struct pci_dev *pdev, const struct pci_device_id
370370
/* AHCI controllers often implement SFF compatible interface.
371371
* Grab all PCI BARs just in case.
372372
*/
373-
rc = pcim_iomap_regions_request_all(pdev, 1 << AHCI_PCI_BAR, DRV_NAME);
373+
rc = pcim_request_all_regions(pdev, DRV_NAME);
374374
if (rc == -EBUSY)
375375
pcim_pin_device(pdev);
376376
if (rc)
@@ -386,7 +386,9 @@ static int acard_ahci_init_one(struct pci_dev *pdev, const struct pci_device_id
386386
if (!(hpriv->flags & AHCI_HFLAG_NO_MSI))
387387
pci_enable_msi(pdev);
388388

389-
hpriv->mmio = pcim_iomap_table(pdev)[AHCI_PCI_BAR];
389+
hpriv->mmio = pcim_iomap(pdev, AHCI_PCI_BAR, 0);
390+
if (!hpriv->mmio)
391+
return -ENOMEM;
390392

391393
/* save initial config */
392394
ahci_save_initial_config(&pdev->dev, hpriv);

drivers/ata/ahci.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1869,7 +1869,7 @@ static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
18691869
/* AHCI controllers often implement SFF compatible interface.
18701870
* Grab all PCI BARs just in case.
18711871
*/
1872-
rc = pcim_iomap_regions_request_all(pdev, 1 << ahci_pci_bar, DRV_NAME);
1872+
rc = pcim_request_all_regions(pdev, DRV_NAME);
18731873
if (rc == -EBUSY)
18741874
pcim_pin_device(pdev);
18751875
if (rc)
@@ -1893,7 +1893,9 @@ static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
18931893
if (ahci_sb600_enable_64bit(pdev))
18941894
hpriv->flags &= ~AHCI_HFLAG_32BIT_ONLY;
18951895

1896-
hpriv->mmio = pcim_iomap_table(pdev)[ahci_pci_bar];
1896+
hpriv->mmio = pcim_iomap(pdev, ahci_pci_bar, 0);
1897+
if (!hpriv->mmio)
1898+
return -ENOMEM;
18971899

18981900
/* detect remapped nvme devices */
18991901
ahci_remap_check(pdev, ahci_pci_bar, hpriv);

drivers/crypto/intel/qat/qat_420xx/adf_drv.c

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -129,16 +129,21 @@ static int adf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
129129
/* Find and map all the device's BARS */
130130
bar_mask = pci_select_bars(pdev, IORESOURCE_MEM) & ADF_GEN4_BAR_MASK;
131131

132-
ret = pcim_iomap_regions_request_all(pdev, bar_mask, pci_name(pdev));
132+
ret = pcim_request_all_regions(pdev, pci_name(pdev));
133133
if (ret) {
134-
dev_err(&pdev->dev, "Failed to map pci regions.\n");
134+
dev_err(&pdev->dev, "Failed to request PCI regions.\n");
135135
goto out_err;
136136
}
137137

138138
i = 0;
139139
for_each_set_bit(bar_nr, &bar_mask, PCI_STD_NUM_BARS) {
140140
bar = &accel_pci_dev->pci_bars[i++];
141-
bar->virt_addr = pcim_iomap_table(pdev)[bar_nr];
141+
bar->virt_addr = pcim_iomap(pdev, bar_nr, 0);
142+
if (!bar->virt_addr) {
143+
dev_err(&pdev->dev, "Failed to ioremap PCI region.\n");
144+
ret = -ENOMEM;
145+
goto out_err;
146+
}
142147
}
143148

144149
pci_set_master(pdev);

drivers/crypto/intel/qat/qat_4xxx/adf_drv.c

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -131,16 +131,21 @@ static int adf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
131131
/* Find and map all the device's BARS */
132132
bar_mask = pci_select_bars(pdev, IORESOURCE_MEM) & ADF_GEN4_BAR_MASK;
133133

134-
ret = pcim_iomap_regions_request_all(pdev, bar_mask, pci_name(pdev));
134+
ret = pcim_request_all_regions(pdev, pci_name(pdev));
135135
if (ret) {
136-
dev_err(&pdev->dev, "Failed to map pci regions.\n");
136+
dev_err(&pdev->dev, "Failed to request PCI regions.\n");
137137
goto out_err;
138138
}
139139

140140
i = 0;
141141
for_each_set_bit(bar_nr, &bar_mask, PCI_STD_NUM_BARS) {
142142
bar = &accel_pci_dev->pci_bars[i++];
143-
bar->virt_addr = pcim_iomap_table(pdev)[bar_nr];
143+
bar->virt_addr = pcim_iomap(pdev, bar_nr, 0);
144+
if (!bar->virt_addr) {
145+
dev_err(&pdev->dev, "Failed to ioremap PCI region.\n");
146+
ret = -ENOMEM;
147+
goto out_err;
148+
}
144149
}
145150

146151
pci_set_master(pdev);

drivers/crypto/marvell/octeontx2/otx2_cptpf_main.c

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -739,18 +739,22 @@ static int otx2_cptpf_probe(struct pci_dev *pdev,
739739
dev_err(dev, "Unable to get usable DMA configuration\n");
740740
goto clear_drvdata;
741741
}
742-
/* Map PF's configuration registers */
743-
err = pcim_iomap_regions_request_all(pdev, 1 << PCI_PF_REG_BAR_NUM,
744-
OTX2_CPT_DRV_NAME);
742+
err = pcim_request_all_regions(pdev, OTX2_CPT_DRV_NAME);
745743
if (err) {
746-
dev_err(dev, "Couldn't get PCI resources 0x%x\n", err);
744+
dev_err(dev, "Couldn't request PCI resources 0x%x\n", err);
747745
goto clear_drvdata;
748746
}
749747
pci_set_master(pdev);
750748
pci_set_drvdata(pdev, cptpf);
751749
cptpf->pdev = pdev;
752750

753-
cptpf->reg_base = pcim_iomap_table(pdev)[PCI_PF_REG_BAR_NUM];
751+
/* Map PF's configuration registers */
752+
cptpf->reg_base = pcim_iomap(pdev, PCI_PF_REG_BAR_NUM, 0);
753+
if (!cptpf->reg_base) {
754+
err = -ENOMEM;
755+
dev_err(dev, "Couldn't ioremap PCI resource 0x%x\n", err);
756+
goto clear_drvdata;
757+
}
754758

755759
/* Check if AF driver is up, otherwise defer probe */
756760
err = cpt_is_pf_usable(cptpf);

drivers/crypto/marvell/octeontx2/otx2_cptvf_main.c

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -358,9 +358,8 @@ static int otx2_cptvf_probe(struct pci_dev *pdev,
358358
dev_err(dev, "Unable to get usable DMA configuration\n");
359359
goto clear_drvdata;
360360
}
361-
/* Map VF's configuration registers */
362-
ret = pcim_iomap_regions_request_all(pdev, 1 << PCI_PF_REG_BAR_NUM,
363-
OTX2_CPTVF_DRV_NAME);
361+
362+
ret = pcim_request_all_regions(pdev, OTX2_CPTVF_DRV_NAME);
364363
if (ret) {
365364
dev_err(dev, "Couldn't get PCI resources 0x%x\n", ret);
366365
goto clear_drvdata;
@@ -369,7 +368,13 @@ static int otx2_cptvf_probe(struct pci_dev *pdev,
369368
pci_set_drvdata(pdev, cptvf);
370369
cptvf->pdev = pdev;
371370

372-
cptvf->reg_base = pcim_iomap_table(pdev)[PCI_PF_REG_BAR_NUM];
371+
/* Map VF's configuration registers */
372+
cptvf->reg_base = pcim_iomap(pdev, PCI_PF_REG_BAR_NUM, 0);
373+
if (!cptvf->reg_base) {
374+
ret = -ENOMEM;
375+
dev_err(dev, "Couldn't ioremap PCI resource 0x%x\n", ret);
376+
goto clear_drvdata;
377+
}
373378

374379
otx2_cpt_set_hw_caps(pdev, &cptvf->cap_flag);
375380

drivers/fpga/dfl-pci.c

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,6 @@ struct cci_drvdata {
3939
struct dfl_fpga_cdev *cdev; /* container device */
4040
};
4141

42-
static void __iomem *cci_pci_ioremap_bar0(struct pci_dev *pcidev)
43-
{
44-
if (pcim_iomap_regions(pcidev, BIT(0), DRV_NAME))
45-
return NULL;
46-
47-
return pcim_iomap_table(pcidev)[0];
48-
}
49-
5042
static int cci_pci_alloc_irq(struct pci_dev *pcidev)
5143
{
5244
int ret, nvec = pci_msix_vec_count(pcidev);
@@ -235,9 +227,9 @@ static int find_dfls_by_default(struct pci_dev *pcidev,
235227
u64 v;
236228

237229
/* start to find Device Feature List from Bar 0 */
238-
base = cci_pci_ioremap_bar0(pcidev);
239-
if (!base)
240-
return -ENOMEM;
230+
base = pcim_iomap_region(pcidev, 0, DRV_NAME);
231+
if (IS_ERR(base))
232+
return PTR_ERR(base);
241233

242234
/*
243235
* PF device has FME and Ports/AFUs, and VF device only has one
@@ -296,7 +288,7 @@ static int find_dfls_by_default(struct pci_dev *pcidev,
296288
}
297289

298290
/* release I/O mappings for next step enumeration */
299-
pcim_iounmap_regions(pcidev, BIT(0));
291+
pcim_iounmap_region(pcidev, 0);
300292

301293
return ret;
302294
}

drivers/gpio/gpio-merrifield.c

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -78,24 +78,25 @@ static int mrfld_gpio_probe(struct pci_dev *pdev, const struct pci_device_id *id
7878
if (retval)
7979
return retval;
8080

81-
retval = pcim_iomap_regions(pdev, BIT(1) | BIT(0), pci_name(pdev));
82-
if (retval)
83-
return dev_err_probe(dev, retval, "I/O memory mapping error\n");
84-
85-
base = pcim_iomap_table(pdev)[1];
81+
base = pcim_iomap_region(pdev, 1, pci_name(pdev));
82+
if (IS_ERR(base))
83+
return dev_err_probe(dev, PTR_ERR(base), "I/O memory mapping error\n");
8684

8785
irq_base = readl(base + 0 * sizeof(u32));
8886
gpio_base = readl(base + 1 * sizeof(u32));
8987

9088
/* Release the IO mapping, since we already get the info from BAR1 */
91-
pcim_iounmap_regions(pdev, BIT(1));
89+
pcim_iounmap_region(pdev, 1);
9290

9391
priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
9492
if (!priv)
9593
return -ENOMEM;
9694

9795
priv->dev = dev;
98-
priv->reg_base = pcim_iomap_table(pdev)[0];
96+
priv->reg_base = pcim_iomap_region(pdev, 0, pci_name(pdev));
97+
if (IS_ERR(priv->reg_base))
98+
return dev_err_probe(dev, PTR_ERR(priv->reg_base),
99+
"I/O memory mapping error\n");
99100

100101
priv->pin_info.pin_ranges = mrfld_gpio_ranges;
101102
priv->pin_info.nranges = ARRAY_SIZE(mrfld_gpio_ranges);

drivers/hwtracing/intel_th/pci.c

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ enum {
2323
TH_PCI_RTIT_BAR = 4,
2424
};
2525

26-
#define BAR_MASK (BIT(TH_PCI_CONFIG_BAR) | BIT(TH_PCI_STH_SW_BAR))
2726

2827
#define PCI_REG_NPKDSC 0x80
2928
#define NPKDSC_TSACT BIT(5)
@@ -83,10 +82,16 @@ static int intel_th_pci_probe(struct pci_dev *pdev,
8382
if (err)
8483
return err;
8584

86-
err = pcim_iomap_regions_request_all(pdev, BAR_MASK, DRIVER_NAME);
85+
err = pcim_request_all_regions(pdev, DRIVER_NAME);
8786
if (err)
8887
return err;
8988

89+
if (!pcim_iomap(pdev, TH_PCI_CONFIG_BAR, 0))
90+
return -ENOMEM;
91+
92+
if (!pcim_iomap(pdev, TH_PCI_STH_SW_BAR, 0))
93+
return -ENOMEM;
94+
9095
if (pdev->resource[TH_PCI_RTIT_BAR].start) {
9196
resource[TH_MMIO_RTIT] = pdev->resource[TH_PCI_RTIT_BAR];
9297
r++;

0 commit comments

Comments
 (0)