/linux/drivers/net/ethernet/microchip/fdma/ |
H A D | fdma_api.c | 10 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 in fdma_db_add() 32 __fdma_dcb_add(struct fdma * fdma,int dcb_idx,u64 info,u64 status,int (* dcb_cb)(struct fdma * fdma,int dcb_idx,u64 * nextptr),int (* db_cb)(struct fdma * fdma,int dcb_idx,int db_idx,u64 * dataptr)) __fdma_dcb_add() argument 33 __fdma_dcb_add(struct fdma * fdma,int dcb_idx,u64 info,u64 status,int (* dcb_cb)(struct fdma * fdma,int dcb_idx,u64 * nextptr),int (* db_cb)(struct fdma * fdma,int dcb_idx,int db_idx,u64 * dataptr)) __fdma_dcb_add() argument 34 __fdma_dcb_add(struct fdma * fdma,int dcb_idx,u64 info,u64 status,int (* dcb_cb)(struct fdma * fdma,int dcb_idx,u64 * nextptr),int (* db_cb)(struct fdma * fdma,int dcb_idx,int db_idx,u64 * dataptr)) __fdma_dcb_add() argument 60 fdma_dcb_add(struct fdma * fdma,int dcb_idx,u64 info,u64 status) fdma_dcb_add() argument 71 fdma_dcbs_init(struct fdma * fdma,u64 info,u64 status) fdma_dcbs_init() argument 90 fdma_alloc_coherent(struct device * dev,struct fdma * fdma) fdma_alloc_coherent() argument 104 fdma_alloc_phys(struct fdma * fdma) fdma_alloc_phys() argument 117 fdma_free_coherent(struct device * dev,struct fdma * fdma) fdma_free_coherent() argument 124 fdma_free_phys(struct fdma * fdma) fdma_free_phys() argument 131 fdma_get_size(struct fdma * fdma) fdma_get_size() argument 140 fdma_get_size_contiguous(struct fdma * fdma) fdma_get_size_contiguous() argument [all...] |
H A D | fdma_api.h | 64 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 in fdma_dcb_advance() 88 dcbsfdma global() argument 89 last_dcbfdma global() argument 111 opsfdma global() argument 123 fdma_db_advance(struct fdma * fdma) fdma_db_advance() argument 129 fdma_db_reset(struct fdma * fdma) fdma_db_reset() argument 135 fdma_dcb_is_reusable(struct fdma * fdma) fdma_dcb_is_reusable() argument 159 fdma_db_get(struct fdma * fdma,int dcb_idx,int db_idx) fdma_db_get() argument 166 fdma_db_next_get(struct fdma * fdma) fdma_db_next_get() argument 172 fdma_dcb_get(struct fdma * fdma,int dcb_idx) fdma_dcb_get() argument 178 fdma_dcb_next_get(struct fdma * fdma) fdma_dcb_next_get() argument 184 fdma_has_frames(struct fdma * fdma) fdma_has_frames() argument 190 fdma_nextptr_cb(struct fdma * fdma,int dcb_idx,u64 * nextptr) fdma_nextptr_cb() argument 200 fdma_dataptr_get_contiguous(struct fdma * fdma,int dcb_idx,int db_idx) fdma_dataptr_get_contiguous() argument 212 fdma_dataptr_virt_get_contiguous(struct fdma * fdma,int dcb_idx,int db_idx) fdma_dataptr_virt_get_contiguous() argument 221 fdma_is_last(struct fdma * fdma,struct fdma_dcb * dcb) fdma_is_last() argument [all...] |
H A D | Kconfig | 3 # 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 D | Makefile | 3 # Makefile for Microchip FDMA 6 obj-$(CONFIG_FDMA) += fdma.o 7 fdma-y += fdma_api.o
|
/linux/drivers/net/ethernet/microchip/sparx5/lan969x/ |
H A D | lan969x_fdma.c | 15 #define FDMA_PRIV(fdma) ((struct sparx5 *)((fdma)->priv)) argument 17 static int lan969x_fdma_tx_dataptr_cb(struct fdma *fdma, int dcb, int db, in lan969x_fdma_tx_dataptr_cb() argument 20 *dataptr = FDMA_PRIV(fdma)->tx.dbs[dcb].dma_addr; in lan969x_fdma_tx_dataptr_cb() 25 static int lan969x_fdma_rx_dataptr_cb(struct fdma *fdma, int dcb, int db, in lan969x_fdma_rx_dataptr_cb() argument 28 struct sparx5_rx *rx = &FDMA_PRIV(fdma)->rx; in lan969x_fdma_rx_dataptr_cb() 44 struct fdma *fdma in lan969x_fdma_get_next_dcb() local 55 struct fdma *fdma = &sparx5->tx.fdma; lan969x_fdma_tx_clear_buf() local 91 struct fdma *fdma = &rx->fdma; lan969x_fdma_free_pages() local 104 struct fdma *fdma = &rx->fdma; lan969x_fdma_rx_get_frame() local 153 struct fdma *fdma = &rx->fdma; lan969x_fdma_rx_alloc() local 186 struct fdma *fdma = &tx->fdma; lan969x_fdma_tx_alloc() local 210 struct fdma *fdma = &sparx5->rx.fdma; lan969x_fdma_rx_init() local 234 struct fdma *fdma = &sparx5->tx.fdma; lan969x_fdma_tx_init() local 251 struct fdma *fdma = &rx->fdma; lan969x_fdma_napi_poll() local 305 struct fdma *fdma = &tx->fdma; lan969x_fdma_xmit() local [all...] |
/linux/drivers/net/ethernet/microchip/lan966x/ |
H A D | lan966x_fdma.c | 9 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 *fdm in lan966x_fdma_rx_free_pages() local 65 struct fdma *fdma = &rx->fdma; lan966x_fdma_rx_free_page() local 113 struct fdma *fdma = &rx->fdma; lan966x_fdma_rx_alloc() local 132 struct fdma *fdma = &rx->fdma; lan966x_fdma_rx_start() local 171 struct fdma *fdma = &rx->fdma; lan966x_fdma_rx_disable() local 200 struct fdma *fdma = &tx->fdma; lan966x_fdma_tx_alloc() local 232 struct fdma *fdma = &tx->fdma; lan966x_fdma_tx_activate() local 271 struct fdma *fdma = &tx->fdma; lan966x_fdma_tx_disable() local 334 struct fdma *fdma = &tx->fdma; lan966x_fdma_tx_clear_buf() local 394 struct fdma *fdma = &rx->fdma; lan966x_fdma_rx_check_frame() local 425 struct fdma *fdma = &rx->fdma; lan966x_fdma_rx_get_frame() local 479 struct fdma *fdma = &rx->fdma; lan966x_fdma_napi_poll() local 574 struct fdma *fdma = &tx->fdma; lan966x_fdma_get_next_dcb() local [all...] |
H A D | lan966x_regs.h | 940 /* 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 [all...] |
H A D | lan966x_main.h | 133 /* FDMA return action codes for checking if the frame is valid 201 struct fdma fdma; member 237 struct fdma fdma; member 327 /* fdma */ 328 bool fdma; member
|
H A D | lan966x_main.c | 393 if (port->lan966x->fdma) in lan966x_port_xmit() 413 if (!lan966x->fdma) in lan966x_port_change_mtu() 759 if (lan966x->fdma && lan966x->fdma_ndev == port->dev) in lan966x_cleanup_ports() 782 if (lan966x->fdma) in lan966x_cleanup_ports() 868 if (lan966x->fdma) in lan966x_probe_port() 931 lan_wr(QS_XTR_GRP_CFG_MODE_SET(lan966x->fdma ? 2 : 1) | in lan966x_init() 936 lan_wr(QS_INJ_GRP_CFG_MODE_SET(lan966x->fdma ? 2 : 1) | in lan966x_init() 1156 lan966x->fdma_irq = platform_get_irq_byname(pdev, "fdma"); in lan966x_probe() 1160 "fdma irq", lan966x); in lan966x_probe() 1162 return dev_err_probe(&pdev->dev, err, "Unable to use fdma ir in lan966x_probe() [all...] |
H A D | lan966x_xdp.c | 17 if (!lan966x->fdma) { in lan966x_xdp_setup() 19 "Allow to set xdp only when using fdma"); in lan966x_xdp_setup()
|
H A D | Kconfig | 11 select FDMA
|
H A D | Makefile | 23 ccflags-y += -I$(srctree)/drivers/net/ethernet/microchip/fdma
|
/linux/drivers/net/ethernet/mscc/ |
H A D | ocelot_fdma.c | 3 * 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 in ocelot_fdma_alloc_rx_buffs() local 236 struct ocelot_fdma *fdma = ocelot->fdma; ocelot_fdma_rx_restart() local 391 struct ocelot_fdma *fdma = ocelot->fdma; ocelot_fdma_rx_get() local 483 struct ocelot_fdma *fdma = ocelot->fdma; ocelot_fdma_tx_cleanup() local 553 struct ocelot_fdma *fdma = container_of(napi, struct ocelot_fdma, napi); ocelot_fdma_napi_poll() local 608 ocelot_fdma_send_skb(struct ocelot * ocelot,struct ocelot_fdma * fdma,struct sk_buff * skb) ocelot_fdma_send_skb() argument 676 struct ocelot_fdma *fdma = ocelot->fdma; ocelot_fdma_inject_frame() local 700 struct ocelot_fdma *fdma = ocelot->fdma; ocelot_fdma_free_rx_ring() local 723 struct ocelot_fdma *fdma = ocelot->fdma; ocelot_fdma_free_tx_ring() local 744 struct ocelot_fdma *fdma = ocelot->fdma; ocelot_fdma_rings_alloc() local 791 struct ocelot_fdma *fdma = ocelot->fdma; ocelot_fdma_netdev_init() local 806 struct ocelot_fdma *fdma = ocelot->fdma; ocelot_fdma_netdev_deinit() local 817 struct ocelot_fdma *fdma; ocelot_fdma_init() local 854 struct ocelot_fdma *fdma = ocelot->fdma; ocelot_fdma_start() local 880 struct ocelot_fdma *fdma = ocelot->fdma; ocelot_fdma_deinit() local [all...] |
H A D | ocelot_fdma.h | 3 * 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,
|
/linux/Documentation/devicetree/bindings/dma/ |
H A D | st_fdma.txt | 3 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 D | mscc,vsc7514-switch.yaml | 18 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";
|
/linux/arch/arm/mach-rpc/ |
H A D | dma.c | 267 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 D | st_fdma.c | 3 * DMA driver for STMicroelectronics STi FDMA controller 41 * dreq_mask is shared for n channels of fdma, so all accesses must be in st_fdma_dreq_get() 703 { .compatible = "st,stih407-fdma-mpe31-11" 705 { .compatible = "st,stih407-fdma-mpe31-12" 707 { .compatible = "st,stih407-fdma-mpe31-13" 786 /* Initialise list of FDMA channels */ in st_fdma_probe() 796 /* Initialise the FDMA dreq (reserve 0 & 31 for FDMA use) */ in st_fdma_probe() 835 dev_info(&pdev->dev, "ST FDMA engine driver, irq:%d\n", fdev->irq); in st_fdma_probe() 866 MODULE_DESCRIPTION("STMicroelectronics FDMA engin [all...] |
H A D | st_fdma.h | 3 * 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/drivers/net/ethernet/microchip/ |
H A D | Makefile | 16 obj-$(CONFIG_FDMA) += fdma/
|
/linux/drivers/net/ethernet/microchip/sparx5/ |
H A D | Kconfig | 13 select FDMA
|
H A D | Makefile | 29 ccflags-y += -I$(srctree)/drivers/net/ethernet/microchip/fdma
|
H A D | sparx5_main_regs.h | 4663 /* FDMA:FDMA:FDMA_CH_ACTIVATE */ 4674 /* FDMA:FDMA:FDMA_CH_RELOAD */ 4685 /* FDMA:FDMA:FDMA_CH_DISABLE */ 4696 /* FDMA:FDMA:FDMA_DCB_LLP */ 4701 /* FDMA:FDMA [all...] |
/linux/arch/arm/boot/dts/st/ |
H A D | stih407-family.dtsi | 848 /* 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/arch/mips/boot/dts/mscc/ |
H A D | ocelot.dtsi | 144 "ana", "s0", "s1", "s2", "fdma"; 146 interrupt-names = "ptp_rdy", "xtr", "inj", "fdma";
|