Home
last modified time | relevance | path

Searched full:fdma (Results 1 – 25 of 34) sorted by relevance

12

/linux/drivers/net/ethernet/microchip/fdma/
H A Dfdma_api.c10 static int __fdma_db_add(struct fdma *fdma, int dcb_idx, int db_idx, u64 status, in __fdma_db_add() argument
11 int (*cb)(struct fdma *fdma, int dcb_idx, in __fdma_db_add() argument
14 struct fdma_db *db = fdma_db_get(fdma, dcb_idx, db_idx); in __fdma_db_add()
18 return cb(fdma, dcb_idx, db_idx, &db->dataptr); in __fdma_db_add()
22 int fdma_db_add(struct fdma *fdma, int dcb_idx, int db_idx, u64 status) in fdma_db_add() argument
24 return __fdma_db_add(fdma, in fdma_db_add()
28 fdma->ops.dataptr_cb); in fdma_db_add()
32 int __fdma_dcb_add(struct fdma *fdma, int dcb_idx, u64 info, u64 status, in __fdma_dcb_add() argument
33 int (*dcb_cb)(struct fdma *fdma, int dcb_idx, u64 *nextptr), in __fdma_dcb_add() argument
34 int (*db_cb)(struct fdma *fdma, int dcb_idx, int db_idx, in __fdma_dcb_add() argument
[all …]
H A Dfdma_api.h64 struct fdma;
79 int (*dataptr_cb)(struct fdma *fdma, int dcb_idx, int db_idx, u64 *ptr);
81 int (*nextptr_cb)(struct fdma *fdma, int dcb_idx, u64 *ptr);
84 struct fdma { struct
108 /* Channel id this FDMA object operates on */
115 static inline void fdma_dcb_advance(struct fdma *fdma) in fdma_dcb_advance() argument
117 fdma->dcb_index++; in fdma_dcb_advance()
118 if (fdma->dcb_index >= fdma->n_dcbs) in fdma_dcb_advance()
119 fdma->dcb_index = 0; in fdma_dcb_advance()
123 static inline void fdma_db_advance(struct fdma *fdma) in fdma_db_advance() argument
[all …]
H A DKconfig3 # Microchip FDMA API configuration
8 config FDMA config
9 bool "FDMA API" if COMPILE_TEST
11 Provides the basic FDMA functionality for multiple Microchip
14 Say Y here if you want to build the FDMA API that provides a common
H A DMakefile3 # Makefile for Microchip FDMA
6 obj-$(CONFIG_FDMA) += fdma.o
7 fdma-y += fdma_api.o
/linux/drivers/net/ethernet/microchip/lan966x/
H A Dlan966x_fdma.c9 static int lan966x_fdma_rx_dataptr_cb(struct fdma *fdma, int dcb, int db, in lan966x_fdma_rx_dataptr_cb() argument
12 struct lan966x *lan966x = (struct lan966x *)fdma->priv; in lan966x_fdma_rx_dataptr_cb()
26 static int lan966x_fdma_tx_dataptr_cb(struct fdma *fdma, int dcb, int db, in lan966x_fdma_tx_dataptr_cb() argument
29 struct lan966x *lan966x = (struct lan966x *)fdma->priv; in lan966x_fdma_tx_dataptr_cb()
36 static int lan966x_fdma_xdp_tx_dataptr_cb(struct fdma *fdma, int dcb, int db, in lan966x_fdma_xdp_tx_dataptr_cb() argument
39 struct lan966x *lan966x = (struct lan966x *)fdma->priv; in lan966x_fdma_xdp_tx_dataptr_cb()
53 struct fdma *fdma = &rx->fdma; in lan966x_fdma_rx_free_pages() local
56 for (i = 0; i < fdma->n_dcbs; ++i) { in lan966x_fdma_rx_free_pages()
57 for (j = 0; j < fdma->n_dbs; ++j) in lan966x_fdma_rx_free_pages()
65 struct fdma *fdma = &rx->fdma; in lan966x_fdma_rx_free_page() local
[all …]
H A Dlan966x_regs.h940 /* FDMA:FDMA:FDMA_CH_ACTIVATE */
949 /* FDMA:FDMA:FDMA_CH_RELOAD */
958 /* FDMA:FDMA:FDMA_CH_DISABLE */
967 /* FDMA:FDMA:FDMA_CH_DB_DISCARD */
976 /* FDMA:FDMA:FDMA_DCB_LLP */
979 /* FDMA:FDMA:FDMA_DCB_LLP1 */
982 /* FDMA:FDMA:FDMA_CH_ACTIVE */
985 /* FDMA:FDMA:FDMA_CH_CFG */
1012 /* FDMA:FDMA:FDMA_PORT_CTRL */
1027 /* FDMA:FDMA:FDMA_INTR_DB */
[all …]
H A Dlan966x_main.c387 if (port->lan966x->fdma) in lan966x_port_xmit()
407 if (!lan966x->fdma) in lan966x_port_change_mtu()
753 if (lan966x->fdma && lan966x->fdma_ndev == port->dev) in lan966x_cleanup_ports()
776 if (lan966x->fdma) in lan966x_cleanup_ports()
863 if (lan966x->fdma) in lan966x_probe_port()
925 lan_wr(QS_XTR_GRP_CFG_MODE_SET(lan966x->fdma ? 2 : 1) | in lan966x_init()
930 lan_wr(QS_INJ_GRP_CFG_MODE_SET(lan966x->fdma ? 2 : 1) | in lan966x_init()
1150 lan966x->fdma_irq = platform_get_irq_byname(pdev, "fdma"); in lan966x_probe()
1154 "fdma irq", lan966x); in lan966x_probe()
1156 return dev_err_probe(&pdev->dev, err, "Unable to use fdma irq"); in lan966x_probe()
[all …]
H A Dlan966x_xdp.c17 if (!lan966x->fdma) { in lan966x_xdp_setup()
19 "Allow to set xdp only when using fdma"); in lan966x_xdp_setup()
H A DKconfig11 select FDMA
H A DMakefile23 ccflags-y += -I$(srctree)/drivers/net/ethernet/microchip/fdma
/linux/drivers/net/ethernet/mscc/
H A Docelot_fdma.c3 * Microsemi SoCs FDMA driver
24 regmap_write(ocelot->targets[FDMA], reg, data); in ocelot_fdma_writel()
31 regmap_read(ocelot->targets[FDMA], reg, &retval); in ocelot_fdma_readl()
56 static int ocelot_fdma_rx_ring_free(struct ocelot_fdma *fdma) in ocelot_fdma_rx_ring_free() argument
58 struct ocelot_fdma_rx_ring *rx_ring = &fdma->rx_ring; in ocelot_fdma_rx_ring_free()
67 static int ocelot_fdma_tx_ring_free(struct ocelot_fdma *fdma) in ocelot_fdma_tx_ring_free() argument
69 struct ocelot_fdma_tx_ring *tx_ring = &fdma->tx_ring; in ocelot_fdma_tx_ring_free()
78 static bool ocelot_fdma_tx_ring_empty(struct ocelot_fdma *fdma) in ocelot_fdma_tx_ring_empty() argument
80 struct ocelot_fdma_tx_ring *tx_ring = &fdma->tx_ring; in ocelot_fdma_tx_ring_empty()
148 struct ocelot_fdma *fdma = ocelot->fdma; in ocelot_fdma_alloc_rx_buffs() local
[all …]
H A Docelot_fdma.h3 * Microsemi SoCs FDMA driver
135 * struct ocelot_fdma - FDMA context
137 * @irq: FDMA interrupt
160 int ocelot_fdma_inject_frame(struct ocelot *fdma, int port, u32 rew_op,
H A Docelot_vsc7514.c258 { FDMA, "fdma", 1 }, in mscc_ocelot_probe()
294 if (ocelot->targets[FDMA]) in mscc_ocelot_probe()
360 if (ocelot->fdma) in mscc_ocelot_probe()
403 if (ocelot->fdma) in mscc_ocelot_remove()
/linux/Documentation/devicetree/bindings/dma/
H A Dst_fdma.txt3 The FDMA is a general-purpose direct memory access controller capable of
5 The FDMA is based on a Slim processor which requires a firmware.
7 * FDMA Controller
11 - st,stih407-fdma-mpe31-11, "st,slim-rproc";
12 - st,stih407-fdma-mpe31-12, "st,slim-rproc";
13 - st,stih407-fdma-mpe31-13, "st,slim-rproc";
26 compatible = "st,stih407-fdma-mpe31-11", "st,slim-rproc";
48 1. A phandle pointing to the FDMA controller
50 3. A 32bit mask specifying (see include/linux/platform_data/dma-st-fdma.h)
/linux/Documentation/devicetree/bindings/net/
H A Dmscc,vsc7514-switch.yaml18 packets using CPU. Additionally, PTP is supported as well as FDMA for faster
78 - description: fdma target
103 - const: fdma
117 - const: fdma
156 "ana", "s0", "s1", "s2", "fdma";
158 interrupt-names = "ptp_rdy", "xtr", "fdma";
H A Dmicrochip,lan966x-switch.yaml48 - const: fdma
/linux/arch/arm/mach-rpc/
H A Ddma.c267 struct floppy_dma *fdma = container_of(dma, struct floppy_dma, dma); in floppy_enable_dma() local
272 if (fdma->dma.sg) in floppy_enable_dma()
275 if (fdma->dma.dma_mode == DMA_MODE_READ) { in floppy_enable_dma()
285 regs.ARM_r9 = fdma->dma.count; in floppy_enable_dma()
286 regs.ARM_r10 = (unsigned long)fdma->dma.addr; in floppy_enable_dma()
296 enable_fiq(fdma->fiq); in floppy_enable_dma()
301 struct floppy_dma *fdma = container_of(dma, struct floppy_dma, dma); in floppy_disable_dma() local
302 disable_fiq(fdma->fiq); in floppy_disable_dma()
/linux/drivers/dma/
H A Dst_fdma.h3 * DMA driver header for STMicroelectronics STi FDMA controller
20 #define DRIVER_NAME "st-fdma"
36 * struct st_fdma_hw_node - Node structure used by fdma hw
/linux/arch/arm/boot/dts/st/
H A Dstih407-family.dtsi848 /* fdma audio */
850 compatible = "st,stih407-fdma-mpe31-11", "st,slim-rproc";
865 /* fdma app */
867 compatible = "st,stih407-fdma-mpe31-12", "st,slim-rproc";
885 /* fdma free running */
887 compatible = "st,stih407-fdma-mpe31-13", "st,slim-rproc";
/linux/drivers/net/ethernet/microchip/
H A DMakefile16 obj-$(CONFIG_FDMA) += fdma/
H A DKconfig64 source "drivers/net/ethernet/microchip/fdma/Kconfig"
/linux/drivers/net/ethernet/microchip/sparx5/
H A DKconfig13 select FDMA
H A DMakefile29 ccflags-y += -I$(srctree)/drivers/net/ethernet/microchip/fdma
/linux/arch/mips/boot/dts/mscc/
H A Docelot.dtsi144 "ana", "s0", "s1", "s2", "fdma";
146 interrupt-names = "ptp_rdy", "xtr", "inj", "fdma";
/linux/drivers/clk/st/
H A Dclk-flexgen.c329 { .name = "clk-fdma", },
374 { .name = "clk-fdma", },
427 { .name = "clk-fdma", },

12