sh_chan 152 drivers/dma/sh/shdmac.c struct sh_dmae_chan *sh_chan = shdev->chan[i]; sh_chan 153 drivers/dma/sh/shdmac.c if (sh_chan) sh_chan 154 drivers/dma/sh/shdmac.c channel_clear(sh_chan); sh_chan 175 drivers/dma/sh/shdmac.c static bool dmae_is_busy(struct sh_dmae_chan *sh_chan) sh_chan 177 drivers/dma/sh/shdmac.c u32 chcr = chcr_read(sh_chan); sh_chan 185 drivers/dma/sh/shdmac.c static unsigned int calc_xmit_shift(struct sh_dmae_chan *sh_chan, u32 chcr) sh_chan 187 drivers/dma/sh/shdmac.c struct sh_dmae_device *shdev = to_sh_dev(sh_chan); sh_chan 198 drivers/dma/sh/shdmac.c static u32 log2size_to_chcr(struct sh_dmae_chan *sh_chan, int l2size) sh_chan 200 drivers/dma/sh/shdmac.c struct sh_dmae_device *shdev = to_sh_dev(sh_chan); sh_chan 215 drivers/dma/sh/shdmac.c static void dmae_set_reg(struct sh_dmae_chan *sh_chan, struct sh_dmae_regs *hw) sh_chan 217 drivers/dma/sh/shdmac.c sh_dmae_writel(sh_chan, hw->sar, SAR); sh_chan 218 drivers/dma/sh/shdmac.c sh_dmae_writel(sh_chan, hw->dar, DAR); sh_chan 219 drivers/dma/sh/shdmac.c sh_dmae_writel(sh_chan, hw->tcr >> sh_chan->xmit_shift, TCR); sh_chan 222 drivers/dma/sh/shdmac.c static void dmae_start(struct sh_dmae_chan *sh_chan) sh_chan 224 drivers/dma/sh/shdmac.c struct sh_dmae_device *shdev = to_sh_dev(sh_chan); sh_chan 225 drivers/dma/sh/shdmac.c u32 chcr = chcr_read(sh_chan); sh_chan 228 drivers/dma/sh/shdmac.c sh_dmae_writel(sh_chan, 0xFFFFFFFF, TEND); sh_chan 231 drivers/dma/sh/shdmac.c chcr_write(sh_chan, chcr & ~CHCR_TE); sh_chan 234 drivers/dma/sh/shdmac.c static void dmae_init(struct sh_dmae_chan *sh_chan) sh_chan 239 drivers/dma/sh/shdmac.c u32 chcr = DM_INC | SM_INC | RS_AUTO | log2size_to_chcr(sh_chan, sh_chan 241 drivers/dma/sh/shdmac.c sh_chan->xmit_shift = calc_xmit_shift(sh_chan, chcr); sh_chan 242 drivers/dma/sh/shdmac.c chcr_write(sh_chan, chcr); sh_chan 245 drivers/dma/sh/shdmac.c static int dmae_set_chcr(struct sh_dmae_chan *sh_chan, u32 val) sh_chan 248 drivers/dma/sh/shdmac.c if (dmae_is_busy(sh_chan)) sh_chan 251 drivers/dma/sh/shdmac.c sh_chan->xmit_shift = calc_xmit_shift(sh_chan, val); sh_chan 252 drivers/dma/sh/shdmac.c chcr_write(sh_chan, val); sh_chan 257 drivers/dma/sh/shdmac.c static int dmae_set_dmars(struct sh_dmae_chan *sh_chan, u16 val) sh_chan 259 drivers/dma/sh/shdmac.c struct sh_dmae_device *shdev = to_sh_dev(sh_chan); sh_chan 261 drivers/dma/sh/shdmac.c const struct sh_dmae_channel *chan_pdata = &pdata->channel[sh_chan->shdma_chan.id]; sh_chan 265 drivers/dma/sh/shdmac.c if (dmae_is_busy(sh_chan)) sh_chan 285 drivers/dma/sh/shdmac.c struct sh_dmae_chan *sh_chan = container_of(schan, struct sh_dmae_chan, sh_chan 289 drivers/dma/sh/shdmac.c dev_dbg(sh_chan->shdma_chan.dev, "Queue #%d to %d: %u@%x -> %x\n", sh_chan 290 drivers/dma/sh/shdmac.c sdesc->async_tx.cookie, sh_chan->shdma_chan.id, sh_chan 293 drivers/dma/sh/shdmac.c dmae_set_reg(sh_chan, &sh_desc->hw); sh_chan 294 drivers/dma/sh/shdmac.c dmae_start(sh_chan); sh_chan 299 drivers/dma/sh/shdmac.c struct sh_dmae_chan *sh_chan = container_of(schan, struct sh_dmae_chan, sh_chan 301 drivers/dma/sh/shdmac.c return dmae_is_busy(sh_chan); sh_chan 307 drivers/dma/sh/shdmac.c struct sh_dmae_chan *sh_chan = container_of(schan, struct sh_dmae_chan, sh_chan 312 drivers/dma/sh/shdmac.c sh_chan->config; sh_chan 314 drivers/dma/sh/shdmac.c dmae_set_dmars(sh_chan, cfg->mid_rid); sh_chan 315 drivers/dma/sh/shdmac.c dmae_set_chcr(sh_chan, cfg->chcr); sh_chan 317 drivers/dma/sh/shdmac.c dmae_init(sh_chan); sh_chan 326 drivers/dma/sh/shdmac.c struct sh_dmae_chan *sh_chan, int match) sh_chan 328 drivers/dma/sh/shdmac.c struct sh_dmae_device *shdev = to_sh_dev(sh_chan); sh_chan 333 drivers/dma/sh/shdmac.c if (!sh_chan->shdma_chan.dev->of_node) { sh_chan 343 drivers/dma/sh/shdmac.c sh_chan->shdma_chan.slave_id = i; sh_chan 354 drivers/dma/sh/shdmac.c struct sh_dmae_chan *sh_chan = container_of(schan, struct sh_dmae_chan, sh_chan 356 drivers/dma/sh/shdmac.c const struct sh_dmae_slave_config *cfg = dmae_find_slave(sh_chan, slave_id); sh_chan 361 drivers/dma/sh/shdmac.c sh_chan->config = cfg; sh_chan 362 drivers/dma/sh/shdmac.c sh_chan->slave_addr = slave_addr ? : cfg->addr; sh_chan 368 drivers/dma/sh/shdmac.c static void dmae_halt(struct sh_dmae_chan *sh_chan) sh_chan 370 drivers/dma/sh/shdmac.c struct sh_dmae_device *shdev = to_sh_dev(sh_chan); sh_chan 371 drivers/dma/sh/shdmac.c u32 chcr = chcr_read(sh_chan); sh_chan 374 drivers/dma/sh/shdmac.c chcr_write(sh_chan, chcr); sh_chan 396 drivers/dma/sh/shdmac.c struct sh_dmae_chan *sh_chan = container_of(schan, struct sh_dmae_chan, sh_chan 398 drivers/dma/sh/shdmac.c dmae_halt(sh_chan); sh_chan 403 drivers/dma/sh/shdmac.c struct sh_dmae_chan *sh_chan = container_of(schan, struct sh_dmae_chan, sh_chan 406 drivers/dma/sh/shdmac.c if (!(chcr_read(sh_chan) & CHCR_TE)) sh_chan 410 drivers/dma/sh/shdmac.c dmae_halt(sh_chan); sh_chan 418 drivers/dma/sh/shdmac.c struct sh_dmae_chan *sh_chan = container_of(schan, struct sh_dmae_chan, sh_chan 423 drivers/dma/sh/shdmac.c (sh_dmae_readl(sh_chan, TCR) << sh_chan->xmit_shift); sh_chan 456 drivers/dma/sh/shdmac.c struct sh_dmae_chan *sh_chan = container_of(schan, sh_chan 460 drivers/dma/sh/shdmac.c u32 sar_buf = sh_dmae_readl(sh_chan, SAR); sh_chan 461 drivers/dma/sh/shdmac.c u32 dar_buf = sh_dmae_readl(sh_chan, DAR); sh_chan 523 drivers/dma/sh/shdmac.c struct sh_dmae_chan *sh_chan; sh_chan 527 drivers/dma/sh/shdmac.c sh_chan = devm_kzalloc(sdev->dma_dev.dev, sizeof(struct sh_dmae_chan), sh_chan 529 drivers/dma/sh/shdmac.c if (!sh_chan) sh_chan 532 drivers/dma/sh/shdmac.c schan = &sh_chan->shdma_chan; sh_chan 537 drivers/dma/sh/shdmac.c sh_chan->base = shdev->chan_reg + chan_pdata->offset; sh_chan 541 drivers/dma/sh/shdmac.c snprintf(sh_chan->dev_id, sizeof(sh_chan->dev_id), sh_chan 544 drivers/dma/sh/shdmac.c snprintf(sh_chan->dev_id, sizeof(sh_chan->dev_id), sh_chan 547 drivers/dma/sh/shdmac.c err = shdma_request_irq(schan, irq, flags, sh_chan->dev_id); sh_chan 555 drivers/dma/sh/shdmac.c shdev->chan[id] = sh_chan; sh_chan 612 drivers/dma/sh/shdmac.c struct sh_dmae_chan *sh_chan = shdev->chan[i]; sh_chan 614 drivers/dma/sh/shdmac.c if (!sh_chan->shdma_chan.desc_num) sh_chan 617 drivers/dma/sh/shdmac.c if (sh_chan->shdma_chan.slave_id >= 0) { sh_chan 618 drivers/dma/sh/shdmac.c const struct sh_dmae_slave_config *cfg = sh_chan->config; sh_chan 619 drivers/dma/sh/shdmac.c dmae_set_dmars(sh_chan, cfg->mid_rid); sh_chan 620 drivers/dma/sh/shdmac.c dmae_set_chcr(sh_chan, cfg->chcr); sh_chan 622 drivers/dma/sh/shdmac.c dmae_init(sh_chan); sh_chan 638 drivers/dma/sh/shdmac.c struct sh_dmae_chan *sh_chan = container_of(schan, sh_chan 646 drivers/dma/sh/shdmac.c return sh_chan->slave_addr;