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;