Home
last modified time | relevance | path

Searched refs:dmamux (Results 1 – 10 of 10) sorted by relevance

/linux/drivers/dma/
H A Dlpc18xx-dmamux.c44 struct lpc18xx_dmamux_data *dmamux = dev_get_drvdata(dev); in lpc18xx_dmamux_free() local
48 spin_lock_irqsave(&dmamux->lock, flags); in lpc18xx_dmamux_free()
50 spin_unlock_irqrestore(&dmamux->lock, flags); in lpc18xx_dmamux_free()
57 struct lpc18xx_dmamux_data *dmamux = platform_get_drvdata(pdev); in lpc18xx_dmamux_reserve() local
68 if (mux >= dmamux->dma_master_requests) { in lpc18xx_dmamux_reserve()
87 spin_lock_irqsave(&dmamux->lock, flags); in lpc18xx_dmamux_reserve()
88 if (dmamux->muxes[mux].busy) { in lpc18xx_dmamux_reserve()
89 spin_unlock_irqrestore(&dmamux->lock, flags); in lpc18xx_dmamux_reserve()
91 mux, mux, dmamux->muxes[mux].value); in lpc18xx_dmamux_reserve()
97 dmamux->muxes[mux].busy = true; in lpc18xx_dmamux_reserve()
[all …]
H A Dlpc32xx-dmamux.c79 struct lpc32xx_dmamux_data *dmamux = dev_get_drvdata(dev); in lpc32xx_dmamux_release() local
85 guard(spinlock)(&dmamux->lock); in lpc32xx_dmamux_release()
95 struct lpc32xx_dmamux_data *dmamux = platform_get_drvdata(pdev); in lpc32xx_dmamux_reserve() local
131 spin_lock_irqsave(&dmamux->lock, flags); in lpc32xx_dmamux_reserve()
133 spin_unlock_irqrestore(&dmamux->lock, flags); in lpc32xx_dmamux_reserve()
144 regmap_update_bits(dmamux->reg, mux->muxreg, BIT(mux->bit), mux->muxval); in lpc32xx_dmamux_reserve()
145 spin_unlock_irqrestore(&dmamux->lock, flags); in lpc32xx_dmamux_reserve()
166 struct lpc32xx_dmamux_data *dmamux; in lpc32xx_dmamux_probe() local
168 dmamux = devm_kzalloc(&pdev->dev, sizeof(*dmamux), GFP_KERNEL); in lpc32xx_dmamux_probe()
169 if (!dmamux) in lpc32xx_dmamux_probe()
[all …]
H A Dcv1800b-dmamux.c78 struct cv1800_dmamux_data *dmamux = dev_get_drvdata(dev); in cv1800_dmamux_free() local
81 guard(spinlock_irqsave)(&dmamux->lock); in cv1800_dmamux_free()
83 regmap_update_bits(dmamux->regmap, in cv1800_dmamux_free()
88 regmap_update_bits(dmamux->regmap, REG_DMA_INT_MUX, in cv1800_dmamux_free()
100 struct cv1800_dmamux_data *dmamux = platform_get_drvdata(pdev); in cv1800_dmamux_route_allocate() local
132 spin_lock_irqsave(&dmamux->lock, flags); in cv1800_dmamux_route_allocate()
134 if (test_bit(devid, dmamux->mapped_peripherals)) { in cv1800_dmamux_route_allocate()
135 llist_for_each_entry(map, dmamux->reserve_maps.first, node) { in cv1800_dmamux_route_allocate()
141 node = llist_del_first(&dmamux->free_maps); in cv1800_dmamux_route_allocate()
148 llist_add(&map->node, &dmamux->reserve_maps); in cv1800_dmamux_route_allocate()
[all …]
/linux/drivers/dma/stm32/
H A Dstm32-dmamux.c66 struct stm32_dmamux_data *dmamux = dev_get_drvdata(dev); in stm32_dmamux_free() local
71 spin_lock_irqsave(&dmamux->lock, flags); in stm32_dmamux_free()
73 stm32_dmamux_write(dmamux->iomem, STM32_DMAMUX_CCR(mux->chan_id), 0); in stm32_dmamux_free()
74 clear_bit(mux->chan_id, dmamux->dma_inuse); in stm32_dmamux_free()
78 spin_unlock_irqrestore(&dmamux->lock, flags); in stm32_dmamux_free()
90 struct stm32_dmamux_data *dmamux = platform_get_drvdata(pdev); in stm32_dmamux_route_allocate() local
101 if (dma_spec->args[0] > dmamux->dmamux_requests) { in stm32_dmamux_route_allocate()
113 spin_lock_irqsave(&dmamux->lock, flags); in stm32_dmamux_route_allocate()
114 mux->chan_id = find_first_zero_bit(dmamux->dma_inuse, in stm32_dmamux_route_allocate()
115 dmamux->dma_requests); in stm32_dmamux_route_allocate()
[all …]
H A DMakefile3 obj-$(CONFIG_STM32_DMAMUX) += stm32-dmamux.o
/linux/drivers/dma/dw/
H A Drzn1-dmamux.c31 struct rzn1_dmamux_data *dmamux = dev_get_drvdata(dev); in rzn1_dmamux_free() local
36 clear_bit(map->req_idx, dmamux->used_chans); in rzn1_dmamux_free()
45 struct rzn1_dmamux_data *dmamux = platform_get_drvdata(pdev); in rzn1_dmamux_route_allocate() local
91 if (test_and_set_bit(map->req_idx, dmamux->used_chans)) { in rzn1_dmamux_route_allocate()
105 clear_bit(map->req_idx, dmamux->used_chans); in rzn1_dmamux_route_allocate()
128 struct rzn1_dmamux_data *dmamux; in rzn1_dmamux_probe() local
130 dmamux = devm_kzalloc(&pdev->dev, sizeof(*dmamux), GFP_KERNEL); in rzn1_dmamux_probe()
131 if (!dmamux) in rzn1_dmamux_probe()
143 dmamux->dmarouter.dev = &pdev->dev; in rzn1_dmamux_probe()
144 dmamux->dmarouter.route_free = rzn1_dmamux_free; in rzn1_dmamux_probe()
[all …]
H A DMakefile13 obj-$(CONFIG_RZN1_DMAMUX) += rzn1-dmamux.o
/linux/arch/arm/boot/dts/st/
H A Dstm32h743.dtsi300 compatible = "st,stm32h7-dmamux";
/linux/Documentation/arch/arm/stm32/
H A Dstm32-dma-mdma-chaining.rst409 .. _AN5224: https://www.st.com/resource/en/application_note/an5224-stm32-dmamux-the-dma-request-rou…
/linux/
H A DMAINTAINERS2971 F: drivers/dma/lpc32xx-dmamux.c
2984 F: Documentation/devicetree/bindings/dma/nxp,lpc3220-dmamux.yaml
25893 F: Documentation/devicetree/bindings/dma/renesas,rzn1-dmamux.yaml