/kernel/linux/linux-6.6/drivers/dma/ |
H A D | fsl-edma-common.c | 45 void fsl_edma_tx_chan_handler(struct fsl_edma_chan *fsl_chan) in fsl_edma_tx_chan_handler() argument 47 spin_lock(&fsl_chan->vchan.lock); in fsl_edma_tx_chan_handler() 49 if (!fsl_chan->edesc) { in fsl_edma_tx_chan_handler() 51 spin_unlock(&fsl_chan->vchan.lock); in fsl_edma_tx_chan_handler() 55 if (!fsl_chan->edesc->iscyclic) { in fsl_edma_tx_chan_handler() 56 list_del(&fsl_chan->edesc->vdesc.node); in fsl_edma_tx_chan_handler() 57 vchan_cookie_complete(&fsl_chan->edesc->vdesc); in fsl_edma_tx_chan_handler() 58 fsl_chan->edesc = NULL; in fsl_edma_tx_chan_handler() 59 fsl_chan->status = DMA_COMPLETE; in fsl_edma_tx_chan_handler() 60 fsl_chan in fsl_edma_tx_chan_handler() 71 fsl_edma3_enable_request(struct fsl_edma_chan *fsl_chan) fsl_edma3_enable_request() argument 109 fsl_edma_enable_request(struct fsl_edma_chan *fsl_chan) fsl_edma_enable_request() argument 129 fsl_edma3_disable_request(struct fsl_edma_chan *fsl_chan) fsl_edma3_disable_request() argument 143 fsl_edma_disable_request(struct fsl_edma_chan *fsl_chan) fsl_edma_disable_request() argument 163 mux_configure8(struct fsl_edma_chan *fsl_chan, void __iomem *addr, u32 off, u32 slot, bool enable) mux_configure8() argument 176 mux_configure32(struct fsl_edma_chan *fsl_chan, void __iomem *addr, u32 off, u32 slot, bool enable) mux_configure32() argument 189 fsl_edma_chan_mux(struct fsl_edma_chan *fsl_chan, unsigned int slot, bool enable) fsl_edma_chan_mux() argument 241 struct fsl_edma_chan *fsl_chan = to_fsl_edma_chan(chan); fsl_edma_terminate_all() local 261 struct fsl_edma_chan *fsl_chan = to_fsl_edma_chan(chan); fsl_edma_pause() local 276 struct fsl_edma_chan *fsl_chan = to_fsl_edma_chan(chan); fsl_edma_resume() local 289 fsl_edma_unprep_slave_dma(struct fsl_edma_chan *fsl_chan) fsl_edma_unprep_slave_dma() argument 299 fsl_edma_prep_slave_dma(struct fsl_edma_chan *fsl_chan, enum dma_transfer_direction dir) fsl_edma_prep_slave_dma() argument 341 struct fsl_edma_chan *fsl_chan = to_fsl_edma_chan(chan); fsl_edma_slave_config() local 349 fsl_edma_desc_residue(struct fsl_edma_chan *fsl_chan, struct virt_dma_desc *vdesc, bool in_progress) fsl_edma_desc_residue() argument 401 struct fsl_edma_chan *fsl_chan = to_fsl_edma_chan(chan); fsl_edma_tx_status() local 429 fsl_edma_set_tcd_regs(struct fsl_edma_chan *fsl_chan, struct fsl_edma_hw_tcd *tcd) fsl_edma_set_tcd_regs() argument 480 fsl_edma_fill_tcd(struct fsl_edma_chan *fsl_chan, struct fsl_edma_hw_tcd *tcd, u32 src, u32 dst, u16 attr, u16 soff, u32 nbytes, u32 slast, u16 citer, u16 biter, u16 doff, u32 dlast_sga, bool major_int, bool disable_req, bool enable_sg) fsl_edma_fill_tcd() argument 545 fsl_edma_alloc_desc(struct fsl_edma_chan *fsl_chan, int sg_len) fsl_edma_alloc_desc() argument 578 struct fsl_edma_chan *fsl_chan = to_fsl_edma_chan(chan); fsl_edma_prep_dma_cyclic() local 653 struct fsl_edma_chan *fsl_chan = to_fsl_edma_chan(chan); fsl_edma_prep_slave_sg() local 748 struct fsl_edma_chan *fsl_chan = to_fsl_edma_chan(chan); fsl_edma_prep_memcpy() local 766 fsl_edma_xfer_desc(struct fsl_edma_chan *fsl_chan) fsl_edma_xfer_desc() argument 784 struct fsl_edma_chan *fsl_chan = to_fsl_edma_chan(chan); fsl_edma_issue_pending() local 803 struct fsl_edma_chan *fsl_chan = to_fsl_edma_chan(chan); fsl_edma_alloc_chan_resources() local 813 struct fsl_edma_chan *fsl_chan = to_fsl_edma_chan(chan); fsl_edma_free_chan_resources() local [all...] |
H A D | fsl-edma-main.c | 30 struct fsl_edma_chan *fsl_chan = to_fsl_edma_chan(chan); in fsl_edma_synchronize() local 32 vchan_synchronize(&fsl_chan->vchan); in fsl_edma_synchronize() 56 struct fsl_edma_chan *fsl_chan = dev_id; in fsl_edma3_tx_handler() local 59 intr = edma_readl_chreg(fsl_chan, ch_int); in fsl_edma3_tx_handler() 63 edma_writel_chreg(fsl_chan, 1, ch_int); in fsl_edma3_tx_handler() 65 fsl_edma_tx_chan_handler(fsl_chan); in fsl_edma3_tx_handler() 103 struct fsl_edma_chan *fsl_chan; in fsl_edma_xlate() local 118 fsl_chan = to_fsl_edma_chan(chan); in fsl_edma_xlate() 119 fsl_chan->slave_id = dma_spec->args[1]; in fsl_edma_xlate() 120 fsl_edma_chan_mux(fsl_chan, fsl_cha in fsl_edma_xlate() 136 struct fsl_edma_chan *fsl_chan; fsl_edma3_xlate() local 232 struct fsl_edma_chan *fsl_chan = &fsl_edma->chans[i]; fsl_edma3_irq_init() local 384 struct fsl_edma_chan *fsl_chan; fsl_edma3_attach_pd() local 523 struct fsl_edma_chan *fsl_chan = &fsl_edma->chans[i]; fsl_edma_probe() local 641 struct fsl_edma_chan *fsl_chan; fsl_edma_suspend_late() local 667 struct fsl_edma_chan *fsl_chan; fsl_edma_resume_early() local [all...] |
H A D | fsl-qdma.c | 307 struct fsl_qdma_chan *fsl_chan = to_fsl_qdma_chan(chan); in fsl_qdma_free_chan_resources() local 308 struct fsl_qdma_queue *fsl_queue = fsl_chan->queue; in fsl_qdma_free_chan_resources() 309 struct fsl_qdma_engine *fsl_qdma = fsl_chan->qdma; in fsl_qdma_free_chan_resources() 314 spin_lock_irqsave(&fsl_chan->vchan.lock, flags); in fsl_qdma_free_chan_resources() 315 vchan_get_all_descriptors(&fsl_chan->vchan, &head); in fsl_qdma_free_chan_resources() 316 spin_unlock_irqrestore(&fsl_chan->vchan.lock, flags); in fsl_qdma_free_chan_resources() 318 vchan_dma_desc_free_list(&fsl_chan->vchan, &head); in fsl_qdma_free_chan_resources() 457 *fsl_qdma_request_enqueue_desc(struct fsl_qdma_chan *fsl_chan) in fsl_qdma_request_enqueue_desc() argument 462 struct fsl_qdma_queue *queue = fsl_chan->queue; in fsl_qdma_request_enqueue_desc() 473 comp_temp->qchan = fsl_chan; in fsl_qdma_request_enqueue_desc() 978 struct fsl_qdma_chan *fsl_chan = to_fsl_qdma_chan(chan); fsl_qdma_prep_memcpy() local 990 fsl_qdma_enqueue_desc(struct fsl_qdma_chan *fsl_chan) fsl_qdma_enqueue_desc() argument 1037 struct fsl_qdma_chan *fsl_chan = to_fsl_qdma_chan(chan); fsl_qdma_issue_pending() local 1050 struct fsl_qdma_chan *fsl_chan = to_fsl_qdma_chan(chan); fsl_qdma_synchronize() local 1059 struct fsl_qdma_chan *fsl_chan = to_fsl_qdma_chan(chan); fsl_qdma_terminate_all() local 1071 struct fsl_qdma_chan *fsl_chan = to_fsl_qdma_chan(chan); fsl_qdma_alloc_chan_resources() local 1124 struct fsl_qdma_chan *fsl_chan; fsl_qdma_probe() local 1210 struct fsl_qdma_chan *fsl_chan = &fsl_qdma->chans[i]; fsl_qdma_probe() local [all...] |
H A D | fsl-edma-common.h | 306 static inline u32 fsl_edma_drvflags(struct fsl_edma_chan *fsl_chan) in fsl_edma_drvflags() argument 308 return fsl_chan->edma->drvdata->flags; in fsl_edma_drvflags() 316 static inline void fsl_edma_err_chan_handler(struct fsl_edma_chan *fsl_chan) in fsl_edma_err_chan_handler() argument 318 fsl_chan->status = DMA_ERROR; in fsl_edma_err_chan_handler() 319 fsl_chan->idle = true; in fsl_edma_err_chan_handler() 322 void fsl_edma_tx_chan_handler(struct fsl_edma_chan *fsl_chan); 323 void fsl_edma_disable_request(struct fsl_edma_chan *fsl_chan); 324 void fsl_edma_chan_mux(struct fsl_edma_chan *fsl_chan, 345 void fsl_edma_xfer_desc(struct fsl_edma_chan *fsl_chan);
|
H A D | fsldma.h | 183 void (*toggle_ext_pause)(struct fsldma_chan *fsl_chan, int enable); 184 void (*toggle_ext_start)(struct fsldma_chan *fsl_chan, int enable); 185 void (*set_src_loop_size)(struct fsldma_chan *fsl_chan, int size); 186 void (*set_dst_loop_size)(struct fsldma_chan *fsl_chan, int size); 187 void (*set_request_count)(struct fsldma_chan *fsl_chan, int size); 256 #define DMA_TO_CPU(fsl_chan, d, width) \ 257 (((fsl_chan)->feature & FSL_DMA_BIG_ENDIAN) ? \ 260 #define CPU_TO_DMA(fsl_chan, c, width) \ 261 (((fsl_chan)->feature & FSL_DMA_BIG_ENDIAN) ? \
|
/kernel/linux/linux-5.10/drivers/dma/ |
H A D | fsl-edma-common.c | 45 static void fsl_edma_enable_request(struct fsl_edma_chan *fsl_chan) in fsl_edma_enable_request() argument 47 struct edma_regs *regs = &fsl_chan->edma->regs; in fsl_edma_enable_request() 48 u32 ch = fsl_chan->vchan.chan.chan_id; in fsl_edma_enable_request() 50 if (fsl_chan->edma->drvdata->version == v1) { in fsl_edma_enable_request() 51 edma_writeb(fsl_chan->edma, EDMA_SEEI_SEEI(ch), regs->seei); in fsl_edma_enable_request() 52 edma_writeb(fsl_chan->edma, ch, regs->serq); in fsl_edma_enable_request() 62 void fsl_edma_disable_request(struct fsl_edma_chan *fsl_chan) in fsl_edma_disable_request() argument 64 struct edma_regs *regs = &fsl_chan->edma->regs; in fsl_edma_disable_request() 65 u32 ch = fsl_chan->vchan.chan.chan_id; in fsl_edma_disable_request() 67 if (fsl_chan in fsl_edma_disable_request() 80 mux_configure8(struct fsl_edma_chan *fsl_chan, void __iomem *addr, u32 off, u32 slot, bool enable) mux_configure8() argument 93 mux_configure32(struct fsl_edma_chan *fsl_chan, void __iomem *addr, u32 off, u32 slot, bool enable) mux_configure32() argument 106 fsl_edma_chan_mux(struct fsl_edma_chan *fsl_chan, unsigned int slot, bool enable) fsl_edma_chan_mux() argument 162 struct fsl_edma_chan *fsl_chan = to_fsl_edma_chan(chan); fsl_edma_terminate_all() local 179 struct fsl_edma_chan *fsl_chan = to_fsl_edma_chan(chan); fsl_edma_pause() local 195 struct fsl_edma_chan *fsl_chan = to_fsl_edma_chan(chan); fsl_edma_resume() local 209 fsl_edma_unprep_slave_dma(struct fsl_edma_chan *fsl_chan) fsl_edma_unprep_slave_dma() argument 219 fsl_edma_prep_slave_dma(struct fsl_edma_chan *fsl_chan, enum dma_transfer_direction dir) fsl_edma_prep_slave_dma() argument 261 struct fsl_edma_chan *fsl_chan = to_fsl_edma_chan(chan); fsl_edma_slave_config() local 270 fsl_edma_desc_residue(struct fsl_edma_chan *fsl_chan, struct virt_dma_desc *vdesc, bool in_progress) fsl_edma_desc_residue() argument 316 struct fsl_edma_chan *fsl_chan = to_fsl_edma_chan(chan); fsl_edma_tx_status() local 345 fsl_edma_set_tcd_regs(struct fsl_edma_chan *fsl_chan, struct fsl_edma_hw_tcd *tcd) fsl_edma_set_tcd_regs() argument 421 fsl_edma_alloc_desc(struct fsl_edma_chan *fsl_chan, int sg_len) fsl_edma_alloc_desc() argument 454 struct fsl_edma_chan *fsl_chan = to_fsl_edma_chan(chan); fsl_edma_prep_dma_cyclic() local 523 struct fsl_edma_chan *fsl_chan = to_fsl_edma_chan(chan); fsl_edma_prep_slave_sg() local 590 fsl_edma_xfer_desc(struct fsl_edma_chan *fsl_chan) fsl_edma_xfer_desc() argument 609 struct fsl_edma_chan *fsl_chan = to_fsl_edma_chan(chan); fsl_edma_issue_pending() local 629 struct fsl_edma_chan *fsl_chan = to_fsl_edma_chan(chan); fsl_edma_alloc_chan_resources() local 640 struct fsl_edma_chan *fsl_chan = to_fsl_edma_chan(chan); fsl_edma_free_chan_resources() local [all...] |
H A D | fsl-edma.c | 25 struct fsl_edma_chan *fsl_chan = to_fsl_edma_chan(chan); in fsl_edma_synchronize() local 27 vchan_synchronize(&fsl_chan->vchan); in fsl_edma_synchronize() 35 struct fsl_edma_chan *fsl_chan; in fsl_edma_tx_handler() local 45 fsl_chan = &fsl_edma->chans[ch]; in fsl_edma_tx_handler() 47 spin_lock(&fsl_chan->vchan.lock); in fsl_edma_tx_handler() 49 if (!fsl_chan->edesc) { in fsl_edma_tx_handler() 51 spin_unlock(&fsl_chan->vchan.lock); in fsl_edma_tx_handler() 55 if (!fsl_chan->edesc->iscyclic) { in fsl_edma_tx_handler() 56 list_del(&fsl_chan->edesc->vdesc.node); in fsl_edma_tx_handler() 57 vchan_cookie_complete(&fsl_chan in fsl_edma_tx_handler() 108 struct fsl_edma_chan *fsl_chan; fsl_edma_xlate() local 272 struct fsl_edma_chan *fsl_chan; fsl_edma_probe() local 353 struct fsl_edma_chan *fsl_chan = &fsl_edma->chans[i]; fsl_edma_probe() local 437 struct fsl_edma_chan *fsl_chan; fsl_edma_suspend_late() local 461 struct fsl_edma_chan *fsl_chan; fsl_edma_resume_early() local [all...] |
H A D | fsl-qdma.c | 306 struct fsl_qdma_chan *fsl_chan = to_fsl_qdma_chan(chan); in fsl_qdma_free_chan_resources() local 307 struct fsl_qdma_queue *fsl_queue = fsl_chan->queue; in fsl_qdma_free_chan_resources() 308 struct fsl_qdma_engine *fsl_qdma = fsl_chan->qdma; in fsl_qdma_free_chan_resources() 313 spin_lock_irqsave(&fsl_chan->vchan.lock, flags); in fsl_qdma_free_chan_resources() 314 vchan_get_all_descriptors(&fsl_chan->vchan, &head); in fsl_qdma_free_chan_resources() 315 spin_unlock_irqrestore(&fsl_chan->vchan.lock, flags); in fsl_qdma_free_chan_resources() 317 vchan_dma_desc_free_list(&fsl_chan->vchan, &head); in fsl_qdma_free_chan_resources() 455 *fsl_qdma_request_enqueue_desc(struct fsl_qdma_chan *fsl_chan) in fsl_qdma_request_enqueue_desc() argument 460 struct fsl_qdma_queue *queue = fsl_chan->queue; in fsl_qdma_request_enqueue_desc() 471 comp_temp->qchan = fsl_chan; in fsl_qdma_request_enqueue_desc() 976 struct fsl_qdma_chan *fsl_chan = to_fsl_qdma_chan(chan); fsl_qdma_prep_memcpy() local 988 fsl_qdma_enqueue_desc(struct fsl_qdma_chan *fsl_chan) fsl_qdma_enqueue_desc() argument 1035 struct fsl_qdma_chan *fsl_chan = to_fsl_qdma_chan(chan); fsl_qdma_issue_pending() local 1048 struct fsl_qdma_chan *fsl_chan = to_fsl_qdma_chan(chan); fsl_qdma_synchronize() local 1057 struct fsl_qdma_chan *fsl_chan = to_fsl_qdma_chan(chan); fsl_qdma_terminate_all() local 1069 struct fsl_qdma_chan *fsl_chan = to_fsl_qdma_chan(chan); fsl_qdma_alloc_chan_resources() local 1123 struct fsl_qdma_chan *fsl_chan; fsl_qdma_probe() local 1216 struct fsl_qdma_chan *fsl_chan = &fsl_qdma->chans[i]; fsl_qdma_probe() local [all...] |
H A D | fsldma.h | 183 void (*toggle_ext_pause)(struct fsldma_chan *fsl_chan, int enable); 184 void (*toggle_ext_start)(struct fsldma_chan *fsl_chan, int enable); 185 void (*set_src_loop_size)(struct fsldma_chan *fsl_chan, int size); 186 void (*set_dst_loop_size)(struct fsldma_chan *fsl_chan, int size); 187 void (*set_request_count)(struct fsldma_chan *fsl_chan, int size); 256 #define DMA_TO_CPU(fsl_chan, d, width) \ 257 (((fsl_chan)->feature & FSL_DMA_BIG_ENDIAN) ? \ 260 #define CPU_TO_DMA(fsl_chan, c, width) \ 261 (((fsl_chan)->feature & FSL_DMA_BIG_ENDIAN) ? \
|
H A D | fsl-edma-common.h | 224 void fsl_edma_disable_request(struct fsl_edma_chan *fsl_chan); 225 void fsl_edma_chan_mux(struct fsl_edma_chan *fsl_chan, 243 void fsl_edma_xfer_desc(struct fsl_edma_chan *fsl_chan);
|