mirror of
https://github.com/torvalds/linux.git
synced 2026-09-22 12:44:03 +02:00
dmaengine: dw-edma-pcie: Rename vsec_data to dma_data
dw_edma_pcie_probe() now obtains DMA layout data through device-specific capability callbacks, not only from PCIe Vendor-Specific Extended Capabilities. Rename the local data copy from vsec_data to dma_data before adding endpoint DMA BAR metadata discovery, which does not rely on VSEC. No functional change intended. Reviewed-by: Frank Li <Frank.Li@nxp.com> Signed-off-by: Koichiro Den <den@valinux.co.jp> Link: https://patch.msgid.link/20260721062815.4117887-9-den@valinux.co.jp Signed-off-by: Vinod Koul <vkoul@kernel.org>
This commit is contained in:
parent
f3468b998a
commit
6cb89b38dc
|
|
@ -390,9 +390,9 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev,
|
|||
if (!pdata)
|
||||
return -ENODEV;
|
||||
|
||||
struct dw_edma_pcie_data *vsec_data __free(kfree) =
|
||||
kmalloc_obj(*vsec_data);
|
||||
if (!vsec_data)
|
||||
struct dw_edma_pcie_data *dma_data __free(kfree) =
|
||||
kmemdup(pdata, sizeof(*dma_data), GFP_KERNEL);
|
||||
if (!dma_data)
|
||||
return -ENOMEM;
|
||||
|
||||
/* Enable PCI device */
|
||||
|
|
@ -402,25 +402,23 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev,
|
|||
return err;
|
||||
}
|
||||
|
||||
memcpy(vsec_data, pdata, sizeof(struct dw_edma_pcie_data));
|
||||
|
||||
/* Let device-specific discovery override the static template data. */
|
||||
if (!match->parse_caps)
|
||||
return -EINVAL;
|
||||
|
||||
err = match->parse_caps(pdev, vsec_data);
|
||||
err = match->parse_caps(pdev, dma_data);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
/* Mapping PCI BAR regions */
|
||||
mask = BIT(vsec_data->rg.bar);
|
||||
for (i = 0; i < vsec_data->wr_ch_cnt; i++) {
|
||||
mask |= BIT(vsec_data->ll_wr[i].bar);
|
||||
mask |= BIT(vsec_data->dt_wr[i].bar);
|
||||
mask = BIT(dma_data->rg.bar);
|
||||
for (i = 0; i < dma_data->wr_ch_cnt; i++) {
|
||||
mask |= BIT(dma_data->ll_wr[i].bar);
|
||||
mask |= BIT(dma_data->dt_wr[i].bar);
|
||||
}
|
||||
for (i = 0; i < vsec_data->rd_ch_cnt; i++) {
|
||||
mask |= BIT(vsec_data->ll_rd[i].bar);
|
||||
mask |= BIT(vsec_data->dt_rd[i].bar);
|
||||
for (i = 0; i < dma_data->rd_ch_cnt; i++) {
|
||||
mask |= BIT(dma_data->ll_rd[i].bar);
|
||||
mask |= BIT(dma_data->dt_rd[i].bar);
|
||||
}
|
||||
err = pcim_iomap_regions(pdev, mask, pci_name(pdev));
|
||||
if (err) {
|
||||
|
|
@ -443,7 +441,7 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev,
|
|||
return -ENOMEM;
|
||||
|
||||
/* IRQs allocation */
|
||||
nr_irqs = pci_alloc_irq_vectors(pdev, 1, vsec_data->irqs,
|
||||
nr_irqs = pci_alloc_irq_vectors(pdev, 1, dma_data->irqs,
|
||||
PCI_IRQ_MSI | PCI_IRQ_MSIX);
|
||||
if (nr_irqs < 1) {
|
||||
pci_err(pdev, "fail to alloc IRQ vector (number of IRQs=%u)\n",
|
||||
|
|
@ -454,23 +452,23 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev,
|
|||
/* Data structure initialization */
|
||||
chip->dev = dev;
|
||||
|
||||
chip->mf = vsec_data->mf;
|
||||
chip->mf = dma_data->mf;
|
||||
chip->nr_irqs = nr_irqs;
|
||||
chip->ops = &dw_edma_pcie_plat_ops;
|
||||
chip->cfg_non_ll = vsec_data->cfg_non_ll;
|
||||
chip->cfg_non_ll = dma_data->cfg_non_ll;
|
||||
|
||||
chip->ll_wr_cnt = vsec_data->wr_ch_cnt;
|
||||
chip->ll_rd_cnt = vsec_data->rd_ch_cnt;
|
||||
chip->ll_wr_cnt = dma_data->wr_ch_cnt;
|
||||
chip->ll_rd_cnt = dma_data->rd_ch_cnt;
|
||||
|
||||
chip->reg_base = pcim_iomap_table(pdev)[vsec_data->rg.bar];
|
||||
chip->reg_base = pcim_iomap_table(pdev)[dma_data->rg.bar];
|
||||
if (!chip->reg_base)
|
||||
return -ENOMEM;
|
||||
|
||||
for (i = 0; i < chip->ll_wr_cnt && !vsec_data->cfg_non_ll; i++) {
|
||||
for (i = 0; i < chip->ll_wr_cnt && !dma_data->cfg_non_ll; i++) {
|
||||
struct dw_edma_region *ll_region = &chip->ll_region_wr[i];
|
||||
struct dw_edma_region *dt_region = &chip->dt_region_wr[i];
|
||||
struct dw_edma_block *ll_block = &vsec_data->ll_wr[i];
|
||||
struct dw_edma_block *dt_block = &vsec_data->dt_wr[i];
|
||||
struct dw_edma_block *ll_block = &dma_data->ll_wr[i];
|
||||
struct dw_edma_block *dt_block = &dma_data->dt_wr[i];
|
||||
|
||||
ll_region->vaddr.io = pcim_iomap_table(pdev)[ll_block->bar];
|
||||
if (!ll_region->vaddr.io)
|
||||
|
|
@ -478,7 +476,7 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev,
|
|||
|
||||
ll_region->vaddr.io += ll_block->off;
|
||||
ll_region->paddr = dw_edma_get_phys_addr(pdev, match,
|
||||
vsec_data, ll_block->bar);
|
||||
dma_data, ll_block->bar);
|
||||
ll_region->paddr += ll_block->off;
|
||||
ll_region->sz = ll_block->sz;
|
||||
|
||||
|
|
@ -488,16 +486,16 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev,
|
|||
|
||||
dt_region->vaddr.io += dt_block->off;
|
||||
dt_region->paddr = dw_edma_get_phys_addr(pdev, match,
|
||||
vsec_data, dt_block->bar);
|
||||
dma_data, dt_block->bar);
|
||||
dt_region->paddr += dt_block->off;
|
||||
dt_region->sz = dt_block->sz;
|
||||
}
|
||||
|
||||
for (i = 0; i < chip->ll_rd_cnt && !vsec_data->cfg_non_ll; i++) {
|
||||
for (i = 0; i < chip->ll_rd_cnt && !dma_data->cfg_non_ll; i++) {
|
||||
struct dw_edma_region *ll_region = &chip->ll_region_rd[i];
|
||||
struct dw_edma_region *dt_region = &chip->dt_region_rd[i];
|
||||
struct dw_edma_block *ll_block = &vsec_data->ll_rd[i];
|
||||
struct dw_edma_block *dt_block = &vsec_data->dt_rd[i];
|
||||
struct dw_edma_block *ll_block = &dma_data->ll_rd[i];
|
||||
struct dw_edma_block *dt_block = &dma_data->dt_rd[i];
|
||||
|
||||
ll_region->vaddr.io = pcim_iomap_table(pdev)[ll_block->bar];
|
||||
if (!ll_region->vaddr.io)
|
||||
|
|
@ -505,7 +503,7 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev,
|
|||
|
||||
ll_region->vaddr.io += ll_block->off;
|
||||
ll_region->paddr = dw_edma_get_phys_addr(pdev, match,
|
||||
vsec_data, ll_block->bar);
|
||||
dma_data, ll_block->bar);
|
||||
ll_region->paddr += ll_block->off;
|
||||
ll_region->sz = ll_block->sz;
|
||||
|
||||
|
|
@ -515,7 +513,7 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev,
|
|||
|
||||
dt_region->vaddr.io += dt_block->off;
|
||||
dt_region->paddr = dw_edma_get_phys_addr(pdev, match,
|
||||
vsec_data, dt_block->bar);
|
||||
dma_data, dt_block->bar);
|
||||
dt_region->paddr += dt_block->off;
|
||||
dt_region->sz = dt_block->sz;
|
||||
}
|
||||
|
|
@ -533,31 +531,31 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev,
|
|||
pci_dbg(pdev, "Version:\tUnknown (0x%x)\n", chip->mf);
|
||||
|
||||
pci_dbg(pdev, "Registers:\tBAR=%u, off=0x%.8lx, sz=0x%zx bytes, addr(v=%p)\n",
|
||||
vsec_data->rg.bar, vsec_data->rg.off, vsec_data->rg.sz,
|
||||
dma_data->rg.bar, dma_data->rg.off, dma_data->rg.sz,
|
||||
chip->reg_base);
|
||||
|
||||
|
||||
for (i = 0; i < chip->ll_wr_cnt; i++) {
|
||||
pci_dbg(pdev, "L. List:\tWRITE CH%.2u, BAR=%u, off=0x%.8lx, sz=0x%zx bytes, addr(v=%p, p=%pa)\n",
|
||||
i, vsec_data->ll_wr[i].bar,
|
||||
vsec_data->ll_wr[i].off, chip->ll_region_wr[i].sz,
|
||||
i, dma_data->ll_wr[i].bar,
|
||||
dma_data->ll_wr[i].off, chip->ll_region_wr[i].sz,
|
||||
chip->ll_region_wr[i].vaddr.io, &chip->ll_region_wr[i].paddr);
|
||||
|
||||
pci_dbg(pdev, "Data:\tWRITE CH%.2u, BAR=%u, off=0x%.8lx, sz=0x%zx bytes, addr(v=%p, p=%pa)\n",
|
||||
i, vsec_data->dt_wr[i].bar,
|
||||
vsec_data->dt_wr[i].off, chip->dt_region_wr[i].sz,
|
||||
i, dma_data->dt_wr[i].bar,
|
||||
dma_data->dt_wr[i].off, chip->dt_region_wr[i].sz,
|
||||
chip->dt_region_wr[i].vaddr.io, &chip->dt_region_wr[i].paddr);
|
||||
}
|
||||
|
||||
for (i = 0; i < chip->ll_rd_cnt; i++) {
|
||||
pci_dbg(pdev, "L. List:\tREAD CH%.2u, BAR=%u, off=0x%.8lx, sz=0x%zx bytes, addr(v=%p, p=%pa)\n",
|
||||
i, vsec_data->ll_rd[i].bar,
|
||||
vsec_data->ll_rd[i].off, chip->ll_region_rd[i].sz,
|
||||
i, dma_data->ll_rd[i].bar,
|
||||
dma_data->ll_rd[i].off, chip->ll_region_rd[i].sz,
|
||||
chip->ll_region_rd[i].vaddr.io, &chip->ll_region_rd[i].paddr);
|
||||
|
||||
pci_dbg(pdev, "Data:\tREAD CH%.2u, BAR=%u, off=0x%.8lx, sz=0x%zx bytes, addr(v=%p, p=%pa)\n",
|
||||
i, vsec_data->dt_rd[i].bar,
|
||||
vsec_data->dt_rd[i].off, chip->dt_region_rd[i].sz,
|
||||
i, dma_data->dt_rd[i].bar,
|
||||
dma_data->dt_rd[i].off, chip->dt_region_rd[i].sz,
|
||||
chip->dt_region_rd[i].vaddr.io, &chip->dt_region_rd[i].paddr);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user