Lines Matching refs:edma

15 #include <linux/dma/edma.h>
147 if (!pci->edma.reg_base) {
150 pci->edma.reg_base = devm_ioremap_resource(pci->dev, res);
151 if (IS_ERR(pci->edma.reg_base))
152 return PTR_ERR(pci->edma.reg_base);
154 pci->edma.reg_base = pci->atu_base + DEFAULT_DBI_DMA_OFFSET;
851 return pci->ops->read_dbi(pci, pci->edma.reg_base, reg, 4);
853 ret = dw_pcie_read(pci->edma.reg_base + reg, 4, &val);
896 if (val == 0xFFFFFFFF && pci->edma.reg_base) {
897 pci->edma.mf = EDMA_MF_EDMA_UNROLL;
901 pci->edma.mf = EDMA_MF_EDMA_LEGACY;
903 pci->edma.reg_base = pci->dbi_base + PCIE_DMA_VIEWPORT_BASE;
908 pci->edma.dev = pci->dev;
910 if (!pci->edma.ops)
911 pci->edma.ops = &dw_pcie_edma_ops;
913 pci->edma.flags |= DW_EDMA_CHIP_LOCAL;
915 pci->edma.ll_wr_cnt = FIELD_GET(PCIE_DMA_NUM_WR_CHAN, val);
916 pci->edma.ll_rd_cnt = FIELD_GET(PCIE_DMA_NUM_RD_CHAN, val);
919 if (!pci->edma.ll_wr_cnt || pci->edma.ll_wr_cnt > EDMA_MAX_WR_CH ||
920 !pci->edma.ll_rd_cnt || pci->edma.ll_rd_cnt > EDMA_MAX_RD_CH)
929 u16 ch_cnt = pci->edma.ll_wr_cnt + pci->edma.ll_rd_cnt;
933 if (pci->edma.nr_irqs == 1)
935 else if (pci->edma.nr_irqs > 1)
936 return pci->edma.nr_irqs != ch_cnt ? -EINVAL : 0;
940 pci->edma.nr_irqs = 1;
944 for (; pci->edma.nr_irqs < ch_cnt; pci->edma.nr_irqs++) {
945 snprintf(name, sizeof(name), "dma%d", pci->edma.nr_irqs);
961 for (i = 0; i < pci->edma.ll_wr_cnt; i++) {
962 ll = &pci->edma.ll_region_wr[i];
972 for (i = 0; i < pci->edma.ll_rd_cnt; i++) {
973 ll = &pci->edma.ll_region_rd[i];
1009 ret = dw_edma_probe(&pci->edma);
1016 pci->edma.mf == EDMA_MF_EDMA_UNROLL ? "T" : "F",
1017 pci->edma.ll_wr_cnt, pci->edma.ll_rd_cnt);
1024 dw_edma_remove(&pci->edma);