• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6.36/arch/arm/plat-samsung/

Lines Matching refs:dmac

29  * @kmcache: Pool to quickly allocate xfers for all channels in the dmac.
68 * @dmac: Pointer to the DMAC that manages this channel, NULL if the
85 struct s3c_pl330_dmac *dmac;
128 ch->dmac = NULL;
140 return ch->dmac ? false : true;
144 * Returns 0 is peripheral i/f is invalid or not present on the dmac.
147 static unsigned iface_of_dmac(struct s3c_pl330_dmac *dmac, enum dma_ch ch_id)
149 enum dma_ch *id = dmac->peri;
164 static inline bool dmac_busy(struct s3c_pl330_dmac *dmac)
166 struct pl330_info *pi = dmac->pi;
168 return (dmac->busy_chan < pi->pcfg.num_chan) ? false : true;
173 * can be handled by this dmac only.
175 static unsigned ch_onlyby_dmac(struct s3c_pl330_dmac *dmac)
177 enum dma_ch *id = dmac->peri;
193 if (d != dmac && iface_of_dmac(d, ch->id)) {
206 * Measure of suitability of 'dmac' handling 'ch'
208 * 0 indicates 'dmac' can not handle 'ch' either
210 * because all dmac channels are currently busy.
212 * >0 vlaue indicates 'dmac' has the capability.
213 * The bigger the value the more suitable the dmac.
218 static unsigned suitablility(struct s3c_pl330_dmac *dmac,
221 struct pl330_info *pi = dmac->pi;
222 enum dma_ch *id = dmac->peri;
229 if (dmac_busy(dmac))
236 /* If the 'dmac' can't talk to 'ch' */
243 * If some other dmac can talk to this
246 if (d != dmac && iface_of_dmac(d, ch->id) && !dmac_busy(d)) {
257 s += (pi->pcfg.num_chan - dmac->busy_chan) - ch_onlyby_dmac(dmac);
268 struct s3c_pl330_dmac *d, *dmac = NULL;
278 dmac = d;
281 return dmac;
288 struct s3c_pl330_dmac *dmac;
296 dmac = map_chan_to_dmac(ch);
298 if (!dmac) {
303 dmac->busy_chan++;
304 ch->dmac = dmac;
417 kmem_cache_free(ch->dmac->kmcache, xfer);
436 struct pl330_info *pi = xfer->chan->dmac->pi;
472 dev_err(ch->dmac->pi->dev, "%s:%d!\n",
478 dev_err(ch->dmac->pi->dev, "%s:%d!\n",
516 dev_info(ch->dmac->pi->dev, "%s:%d No Xfer?!\n",
540 struct s3c_pl330_dmac *dmac;
545 dmac = ch->dmac;
546 ch->dmac = NULL;
547 dmac->busy_chan--;
683 xfer = kmem_cache_alloc(ch->dmac->kmcache, GFP_ATOMIC);
731 struct s3c_pl330_dmac *dmac;
744 dmac = ch->dmac;
746 ch->pl330_chan_id = pl330_request_channel(dmac->pi);
772 ch->req[0].peri = iface_of_dmac(dmac, id) - 1; /* Original index */
885 pi = ch->dmac->pi;
1142 struct s3c_pl330_dmac *dmac, *d;
1164 dmac = d;
1170 if (iface_of_dmac(dmac, ch->id))
1177 if (d != dmac && iface_of_dmac(d, ch->id)) {
1192 list_del(&dmac->node);
1193 kfree(dmac);