• Home
  • Raw
  • Download

Lines Matching refs:pchan

141 	struct sun4i_dma_pchan		*pchan;  member
224 struct sun4i_dma_pchan *pchan = NULL, *pchans = priv->pchans; in find_and_use_pchan() local
242 pchan = &pchans[i]; in find_and_use_pchan()
243 pchan->vchan = vchan; in find_and_use_pchan()
249 return pchan; in find_and_use_pchan()
253 struct sun4i_dma_pchan *pchan) in release_pchan() argument
256 int nr = pchan - priv->pchans; in release_pchan()
260 pchan->vchan = NULL; in release_pchan()
266 static void configure_pchan(struct sun4i_dma_pchan *pchan, in configure_pchan() argument
273 if (pchan->is_dedicated) { in configure_pchan()
274 writel_relaxed(d->src, pchan->base + SUN4I_DDMA_SRC_ADDR_REG); in configure_pchan()
275 writel_relaxed(d->dst, pchan->base + SUN4I_DDMA_DST_ADDR_REG); in configure_pchan()
276 writel_relaxed(d->len, pchan->base + SUN4I_DDMA_BYTE_COUNT_REG); in configure_pchan()
277 writel_relaxed(d->para, pchan->base + SUN4I_DDMA_PARA_REG); in configure_pchan()
278 writel_relaxed(d->cfg, pchan->base + SUN4I_DDMA_CFG_REG); in configure_pchan()
280 writel_relaxed(d->src, pchan->base + SUN4I_NDMA_SRC_ADDR_REG); in configure_pchan()
281 writel_relaxed(d->dst, pchan->base + SUN4I_NDMA_DST_ADDR_REG); in configure_pchan()
282 writel_relaxed(d->len, pchan->base + SUN4I_NDMA_BYTE_COUNT_REG); in configure_pchan()
283 writel_relaxed(d->cfg, pchan->base + SUN4I_NDMA_CFG_REG); in configure_pchan()
288 struct sun4i_dma_pchan *pchan, in set_pchan_interrupt() argument
292 int pchan_number = pchan - priv->pchans; in set_pchan_interrupt()
328 struct sun4i_dma_pchan *pchan; in __execute_vchan_pending() local
335 pchan = find_and_use_pchan(priv, vchan); in __execute_vchan_pending()
336 if (!pchan) in __execute_vchan_pending()
378 vchan->pchan = pchan; in __execute_vchan_pending()
379 set_pchan_interrupt(priv, pchan, contract->is_cyclic, 1); in __execute_vchan_pending()
380 configure_pchan(pchan, promise); in __execute_vchan_pending()
386 release_pchan(priv, pchan); in __execute_vchan_pending()
870 struct sun4i_dma_pchan *pchan = vchan->pchan; in sun4i_dma_terminate_all() local
882 if (pchan) { in sun4i_dma_terminate_all()
883 if (pchan->is_dedicated) in sun4i_dma_terminate_all()
884 writel(0, pchan->base + SUN4I_DDMA_CFG_REG); in sun4i_dma_terminate_all()
886 writel(0, pchan->base + SUN4I_NDMA_CFG_REG); in sun4i_dma_terminate_all()
887 set_pchan_interrupt(priv, pchan, 0, 0); in sun4i_dma_terminate_all()
888 release_pchan(priv, pchan); in sun4i_dma_terminate_all()
895 vchan->pchan = NULL; in sun4i_dma_terminate_all()
946 struct sun4i_dma_pchan *pchan = vchan->pchan; in sun4i_dma_tx_status() local
974 if (promise && pchan) { in sun4i_dma_tx_status()
976 if (pchan->is_dedicated) in sun4i_dma_tx_status()
977 bytes += readl(pchan->base + SUN4I_DDMA_BYTE_COUNT_REG); in sun4i_dma_tx_status()
979 bytes += readl(pchan->base + SUN4I_NDMA_BYTE_COUNT_REG); in sun4i_dma_tx_status()
1011 struct sun4i_dma_pchan *pchans = priv->pchans, *pchan; in sun4i_dma_interrupt() local
1026 pchan = &pchans[bit >> 1]; in sun4i_dma_interrupt()
1027 vchan = pchan->vchan; in sun4i_dma_interrupt()
1063 configure_pchan(pchan, promise); in sun4i_dma_interrupt()
1067 vchan->pchan = NULL; in sun4i_dma_interrupt()
1071 release_pchan(priv, pchan); in sun4i_dma_interrupt()