bdma_chan         914 drivers/rapidio/devices/tsi721.h extern void tsi721_bdma_handler(struct tsi721_bdma_chan *bdma_chan);
bdma_chan          63 drivers/rapidio/devices/tsi721_dma.c static int tsi721_bdma_ch_init(struct tsi721_bdma_chan *bdma_chan, int bd_num)
bdma_chan          66 drivers/rapidio/devices/tsi721_dma.c 	struct device *dev = bdma_chan->dchan.device->dev;
bdma_chan          72 drivers/rapidio/devices/tsi721_dma.c 	struct tsi721_device *priv = to_tsi721(bdma_chan->dchan.device);
bdma_chan          75 drivers/rapidio/devices/tsi721_dma.c 	tsi_debug(DMA, &bdma_chan->dchan.dev->device, "DMAC%d", bdma_chan->id);
bdma_chan          87 drivers/rapidio/devices/tsi721_dma.c 	bdma_chan->bd_num = bd_num;
bdma_chan          88 drivers/rapidio/devices/tsi721_dma.c 	bdma_chan->bd_phys = bd_phys;
bdma_chan          89 drivers/rapidio/devices/tsi721_dma.c 	bdma_chan->bd_base = bd_ptr;
bdma_chan          91 drivers/rapidio/devices/tsi721_dma.c 	tsi_debug(DMA, &bdma_chan->dchan.dev->device,
bdma_chan          93 drivers/rapidio/devices/tsi721_dma.c 		  bdma_chan->id, bd_ptr, &bd_phys);
bdma_chan         107 drivers/rapidio/devices/tsi721_dma.c 		bdma_chan->bd_base = NULL;
bdma_chan         111 drivers/rapidio/devices/tsi721_dma.c 	bdma_chan->sts_phys = sts_phys;
bdma_chan         112 drivers/rapidio/devices/tsi721_dma.c 	bdma_chan->sts_base = sts_ptr;
bdma_chan         113 drivers/rapidio/devices/tsi721_dma.c 	bdma_chan->sts_size = sts_size;
bdma_chan         115 drivers/rapidio/devices/tsi721_dma.c 	tsi_debug(DMA, &bdma_chan->dchan.dev->device,
bdma_chan         117 drivers/rapidio/devices/tsi721_dma.c 		bdma_chan->id, sts_ptr, &sts_phys, sts_size);
bdma_chan         127 drivers/rapidio/devices/tsi721_dma.c 		bdma_chan->regs + TSI721_DMAC_DPTRH);
bdma_chan         129 drivers/rapidio/devices/tsi721_dma.c 		bdma_chan->regs + TSI721_DMAC_DPTRL);
bdma_chan         133 drivers/rapidio/devices/tsi721_dma.c 		bdma_chan->regs + TSI721_DMAC_DSBH);
bdma_chan         135 drivers/rapidio/devices/tsi721_dma.c 		bdma_chan->regs + TSI721_DMAC_DSBL);
bdma_chan         137 drivers/rapidio/devices/tsi721_dma.c 		bdma_chan->regs + TSI721_DMAC_DSSZ);
bdma_chan         141 drivers/rapidio/devices/tsi721_dma.c 		bdma_chan->regs + TSI721_DMAC_INT);
bdma_chan         143 drivers/rapidio/devices/tsi721_dma.c 	ioread32(bdma_chan->regs + TSI721_DMAC_INT);
bdma_chan         150 drivers/rapidio/devices/tsi721_dma.c 		idx = TSI721_VECT_DMA0_DONE + bdma_chan->id;
bdma_chan         153 drivers/rapidio/devices/tsi721_dma.c 				 priv->msix[idx].irq_name, (void *)bdma_chan);
bdma_chan         156 drivers/rapidio/devices/tsi721_dma.c 			tsi_debug(DMA, &bdma_chan->dchan.dev->device,
bdma_chan         158 drivers/rapidio/devices/tsi721_dma.c 				  bdma_chan->id);
bdma_chan         162 drivers/rapidio/devices/tsi721_dma.c 		idx = TSI721_VECT_DMA0_INT + bdma_chan->id;
bdma_chan         165 drivers/rapidio/devices/tsi721_dma.c 				priv->msix[idx].irq_name, (void *)bdma_chan);
bdma_chan         168 drivers/rapidio/devices/tsi721_dma.c 			tsi_debug(DMA, &bdma_chan->dchan.dev->device,
bdma_chan         170 drivers/rapidio/devices/tsi721_dma.c 				  bdma_chan->id);
bdma_chan         173 drivers/rapidio/devices/tsi721_dma.c 					    bdma_chan->id].vector,
bdma_chan         174 drivers/rapidio/devices/tsi721_dma.c 				(void *)bdma_chan);
bdma_chan         183 drivers/rapidio/devices/tsi721_dma.c 			bdma_chan->bd_base = NULL;
bdma_chan         189 drivers/rapidio/devices/tsi721_dma.c 			bdma_chan->sts_base = NULL;
bdma_chan         197 drivers/rapidio/devices/tsi721_dma.c 	iowrite32(TSI721_DMAC_CTL_INIT,	bdma_chan->regs + TSI721_DMAC_CTL);
bdma_chan         198 drivers/rapidio/devices/tsi721_dma.c 	ioread32(bdma_chan->regs + TSI721_DMAC_CTL);
bdma_chan         199 drivers/rapidio/devices/tsi721_dma.c 	bdma_chan->wr_count = bdma_chan->wr_count_next = 0;
bdma_chan         200 drivers/rapidio/devices/tsi721_dma.c 	bdma_chan->sts_rdptr = 0;
bdma_chan         206 drivers/rapidio/devices/tsi721_dma.c static int tsi721_bdma_ch_free(struct tsi721_bdma_chan *bdma_chan)
bdma_chan         210 drivers/rapidio/devices/tsi721_dma.c 	struct tsi721_device *priv = to_tsi721(bdma_chan->dchan.device);
bdma_chan         213 drivers/rapidio/devices/tsi721_dma.c 	if (!bdma_chan->bd_base)
bdma_chan         217 drivers/rapidio/devices/tsi721_dma.c 	ch_stat = ioread32(bdma_chan->regs + TSI721_DMAC_STS);
bdma_chan         222 drivers/rapidio/devices/tsi721_dma.c 	iowrite32(TSI721_DMAC_CTL_INIT,	bdma_chan->regs + TSI721_DMAC_CTL);
bdma_chan         227 drivers/rapidio/devices/tsi721_dma.c 				    bdma_chan->id].vector, (void *)bdma_chan);
bdma_chan         229 drivers/rapidio/devices/tsi721_dma.c 				    bdma_chan->id].vector, (void *)bdma_chan);
bdma_chan         234 drivers/rapidio/devices/tsi721_dma.c 	dma_free_coherent(bdma_chan->dchan.device->dev,
bdma_chan         235 drivers/rapidio/devices/tsi721_dma.c 		(bdma_chan->bd_num + 1) * sizeof(struct tsi721_dma_desc),
bdma_chan         236 drivers/rapidio/devices/tsi721_dma.c 		bdma_chan->bd_base, bdma_chan->bd_phys);
bdma_chan         237 drivers/rapidio/devices/tsi721_dma.c 	bdma_chan->bd_base = NULL;
bdma_chan         240 drivers/rapidio/devices/tsi721_dma.c 	dma_free_coherent(bdma_chan->dchan.device->dev,
bdma_chan         241 drivers/rapidio/devices/tsi721_dma.c 		bdma_chan->sts_size * sizeof(struct tsi721_dma_sts),
bdma_chan         242 drivers/rapidio/devices/tsi721_dma.c 		bdma_chan->sts_base, bdma_chan->sts_phys);
bdma_chan         243 drivers/rapidio/devices/tsi721_dma.c 	bdma_chan->sts_base = NULL;
bdma_chan         248 drivers/rapidio/devices/tsi721_dma.c tsi721_bdma_interrupt_enable(struct tsi721_bdma_chan *bdma_chan, int enable)
bdma_chan         253 drivers/rapidio/devices/tsi721_dma.c 			bdma_chan->regs + TSI721_DMAC_INT);
bdma_chan         254 drivers/rapidio/devices/tsi721_dma.c 		ioread32(bdma_chan->regs + TSI721_DMAC_INT);
bdma_chan         257 drivers/rapidio/devices/tsi721_dma.c 			bdma_chan->regs + TSI721_DMAC_INTE);
bdma_chan         260 drivers/rapidio/devices/tsi721_dma.c 		iowrite32(0, bdma_chan->regs + TSI721_DMAC_INTE);
bdma_chan         263 drivers/rapidio/devices/tsi721_dma.c 			bdma_chan->regs + TSI721_DMAC_INT);
bdma_chan         268 drivers/rapidio/devices/tsi721_dma.c static bool tsi721_dma_is_idle(struct tsi721_bdma_chan *bdma_chan)
bdma_chan         272 drivers/rapidio/devices/tsi721_dma.c 	sts = ioread32(bdma_chan->regs + TSI721_DMAC_STS);
bdma_chan         276 drivers/rapidio/devices/tsi721_dma.c void tsi721_bdma_handler(struct tsi721_bdma_chan *bdma_chan)
bdma_chan         279 drivers/rapidio/devices/tsi721_dma.c 	iowrite32(0, bdma_chan->regs + TSI721_DMAC_INTE);
bdma_chan         280 drivers/rapidio/devices/tsi721_dma.c 	if (bdma_chan->active)
bdma_chan         281 drivers/rapidio/devices/tsi721_dma.c 		tasklet_hi_schedule(&bdma_chan->tasklet);
bdma_chan         294 drivers/rapidio/devices/tsi721_dma.c 	struct tsi721_bdma_chan *bdma_chan = ptr;
bdma_chan         296 drivers/rapidio/devices/tsi721_dma.c 	if (bdma_chan->active)
bdma_chan         297 drivers/rapidio/devices/tsi721_dma.c 		tasklet_hi_schedule(&bdma_chan->tasklet);
bdma_chan         303 drivers/rapidio/devices/tsi721_dma.c static void tsi721_start_dma(struct tsi721_bdma_chan *bdma_chan)
bdma_chan         305 drivers/rapidio/devices/tsi721_dma.c 	if (!tsi721_dma_is_idle(bdma_chan)) {
bdma_chan         306 drivers/rapidio/devices/tsi721_dma.c 		tsi_err(&bdma_chan->dchan.dev->device,
bdma_chan         308 drivers/rapidio/devices/tsi721_dma.c 			bdma_chan->id);
bdma_chan         312 drivers/rapidio/devices/tsi721_dma.c 	if (bdma_chan->wr_count == bdma_chan->wr_count_next) {
bdma_chan         313 drivers/rapidio/devices/tsi721_dma.c 		tsi_err(&bdma_chan->dchan.dev->device,
bdma_chan         315 drivers/rapidio/devices/tsi721_dma.c 			bdma_chan->id, task_pid_nr(current));
bdma_chan         319 drivers/rapidio/devices/tsi721_dma.c 	tsi_debug(DMA, &bdma_chan->dchan.dev->device, "DMAC%d (wrc=%d) %d",
bdma_chan         320 drivers/rapidio/devices/tsi721_dma.c 		  bdma_chan->id, bdma_chan->wr_count_next,
bdma_chan         323 drivers/rapidio/devices/tsi721_dma.c 	iowrite32(bdma_chan->wr_count_next,
bdma_chan         324 drivers/rapidio/devices/tsi721_dma.c 		bdma_chan->regs + TSI721_DMAC_DWRCNT);
bdma_chan         325 drivers/rapidio/devices/tsi721_dma.c 	ioread32(bdma_chan->regs + TSI721_DMAC_DWRCNT);
bdma_chan         327 drivers/rapidio/devices/tsi721_dma.c 	bdma_chan->wr_count = bdma_chan->wr_count_next;
bdma_chan         372 drivers/rapidio/devices/tsi721_dma.c static void tsi721_dma_tx_err(struct tsi721_bdma_chan *bdma_chan,
bdma_chan         379 drivers/rapidio/devices/tsi721_dma.c 	list_move(&desc->desc_node, &bdma_chan->free_list);
bdma_chan         385 drivers/rapidio/devices/tsi721_dma.c static void tsi721_clr_stat(struct tsi721_bdma_chan *bdma_chan)
bdma_chan         392 drivers/rapidio/devices/tsi721_dma.c 	srd_ptr = bdma_chan->sts_rdptr;
bdma_chan         393 drivers/rapidio/devices/tsi721_dma.c 	sts_ptr = bdma_chan->sts_base;
bdma_chan         400 drivers/rapidio/devices/tsi721_dma.c 		srd_ptr %= bdma_chan->sts_size;
bdma_chan         404 drivers/rapidio/devices/tsi721_dma.c 	iowrite32(srd_ptr, bdma_chan->regs + TSI721_DMAC_DSRP);
bdma_chan         405 drivers/rapidio/devices/tsi721_dma.c 	bdma_chan->sts_rdptr = srd_ptr;
bdma_chan         412 drivers/rapidio/devices/tsi721_dma.c 	struct tsi721_bdma_chan *bdma_chan = to_tsi721_chan(dchan);
bdma_chan         425 drivers/rapidio/devices/tsi721_dma.c 	if (!tsi721_dma_is_idle(bdma_chan)) {
bdma_chan         427 drivers/rapidio/devices/tsi721_dma.c 			bdma_chan->id);
bdma_chan         440 drivers/rapidio/devices/tsi721_dma.c 	rd_idx = ioread32(bdma_chan->regs + TSI721_DMAC_DRDCNT);
bdma_chan         441 drivers/rapidio/devices/tsi721_dma.c 	rd_idx %= (bdma_chan->bd_num + 1);
bdma_chan         443 drivers/rapidio/devices/tsi721_dma.c 	idx = bdma_chan->wr_count_next % (bdma_chan->bd_num + 1);
bdma_chan         444 drivers/rapidio/devices/tsi721_dma.c 	if (idx == bdma_chan->bd_num) {
bdma_chan         451 drivers/rapidio/devices/tsi721_dma.c 		  bdma_chan->id, rd_idx, idx);
bdma_chan         456 drivers/rapidio/devices/tsi721_dma.c 			bdma_chan->id, i, desc->sg_len,
bdma_chan         461 drivers/rapidio/devices/tsi721_dma.c 				bdma_chan->id, i);
bdma_chan         479 drivers/rapidio/devices/tsi721_dma.c 				  bdma_chan->id, bcount);
bdma_chan         487 drivers/rapidio/devices/tsi721_dma.c 				  bdma_chan->id, i);
bdma_chan         493 drivers/rapidio/devices/tsi721_dma.c 		bd_ptr = &((struct tsi721_dma_desc *)bdma_chan->bd_base)[idx];
bdma_chan         501 drivers/rapidio/devices/tsi721_dma.c 			  bdma_chan->id, bd_ptr, desc->destid, desc->rio_addr);
bdma_chan         507 drivers/rapidio/devices/tsi721_dma.c 		if (++idx == bdma_chan->bd_num) {
bdma_chan         518 drivers/rapidio/devices/tsi721_dma.c 				  bdma_chan->id, bcount);
bdma_chan         527 drivers/rapidio/devices/tsi721_dma.c 		bdma_chan->wr_count_next += add_count;
bdma_chan         532 drivers/rapidio/devices/tsi721_dma.c static void tsi721_advance_work(struct tsi721_bdma_chan *bdma_chan,
bdma_chan         537 drivers/rapidio/devices/tsi721_dma.c 	tsi_debug(DMA, &bdma_chan->dchan.dev->device, "DMAC%d", bdma_chan->id);
bdma_chan         539 drivers/rapidio/devices/tsi721_dma.c 	if (!tsi721_dma_is_idle(bdma_chan))
bdma_chan         546 drivers/rapidio/devices/tsi721_dma.c 	if (!desc && !bdma_chan->active_tx && !list_empty(&bdma_chan->queue)) {
bdma_chan         547 drivers/rapidio/devices/tsi721_dma.c 		desc = list_first_entry(&bdma_chan->queue,
bdma_chan         550 drivers/rapidio/devices/tsi721_dma.c 		bdma_chan->active_tx = desc;
bdma_chan         556 drivers/rapidio/devices/tsi721_dma.c 			tsi721_start_dma(bdma_chan);
bdma_chan         558 drivers/rapidio/devices/tsi721_dma.c 			tsi721_dma_tx_err(bdma_chan, desc);
bdma_chan         559 drivers/rapidio/devices/tsi721_dma.c 			tsi_debug(DMA, &bdma_chan->dchan.dev->device,
bdma_chan         561 drivers/rapidio/devices/tsi721_dma.c 				bdma_chan->id, err);
bdma_chan         565 drivers/rapidio/devices/tsi721_dma.c 	tsi_debug(DMA, &bdma_chan->dchan.dev->device, "DMAC%d Exit",
bdma_chan         566 drivers/rapidio/devices/tsi721_dma.c 		  bdma_chan->id);
bdma_chan         571 drivers/rapidio/devices/tsi721_dma.c 	struct tsi721_bdma_chan *bdma_chan = (struct tsi721_bdma_chan *)data;
bdma_chan         574 drivers/rapidio/devices/tsi721_dma.c 	dmac_int = ioread32(bdma_chan->regs + TSI721_DMAC_INT);
bdma_chan         575 drivers/rapidio/devices/tsi721_dma.c 	tsi_debug(DMA, &bdma_chan->dchan.dev->device, "DMAC%d_INT = 0x%x",
bdma_chan         576 drivers/rapidio/devices/tsi721_dma.c 		  bdma_chan->id, dmac_int);
bdma_chan         578 drivers/rapidio/devices/tsi721_dma.c 	iowrite32(dmac_int, bdma_chan->regs + TSI721_DMAC_INT);
bdma_chan         584 drivers/rapidio/devices/tsi721_dma.c 		desc = bdma_chan->active_tx;
bdma_chan         585 drivers/rapidio/devices/tsi721_dma.c 		dmac_sts = ioread32(bdma_chan->regs + TSI721_DMAC_STS);
bdma_chan         586 drivers/rapidio/devices/tsi721_dma.c 		tsi_err(&bdma_chan->dchan.dev->device,
bdma_chan         588 drivers/rapidio/devices/tsi721_dma.c 			bdma_chan->id, dmac_sts, desc->destid, desc->rio_addr);
bdma_chan         595 drivers/rapidio/devices/tsi721_dma.c 		tsi721_clr_stat(bdma_chan);
bdma_chan         597 drivers/rapidio/devices/tsi721_dma.c 		spin_lock(&bdma_chan->lock);
bdma_chan         601 drivers/rapidio/devices/tsi721_dma.c 			  bdma_chan->regs + TSI721_DMAC_CTL);
bdma_chan         604 drivers/rapidio/devices/tsi721_dma.c 			dmac_sts = ioread32(bdma_chan->regs + TSI721_DMAC_STS);
bdma_chan         609 drivers/rapidio/devices/tsi721_dma.c 			tsi_err(&bdma_chan->dchan.dev->device,
bdma_chan         610 drivers/rapidio/devices/tsi721_dma.c 				"Failed to re-initiate DMAC%d",	bdma_chan->id);
bdma_chan         611 drivers/rapidio/devices/tsi721_dma.c 			spin_unlock(&bdma_chan->lock);
bdma_chan         616 drivers/rapidio/devices/tsi721_dma.c 		iowrite32(((u64)bdma_chan->bd_phys >> 32),
bdma_chan         617 drivers/rapidio/devices/tsi721_dma.c 			bdma_chan->regs + TSI721_DMAC_DPTRH);
bdma_chan         618 drivers/rapidio/devices/tsi721_dma.c 		iowrite32(((u64)bdma_chan->bd_phys & TSI721_DMAC_DPTRL_MASK),
bdma_chan         619 drivers/rapidio/devices/tsi721_dma.c 			bdma_chan->regs + TSI721_DMAC_DPTRL);
bdma_chan         622 drivers/rapidio/devices/tsi721_dma.c 		iowrite32(((u64)bdma_chan->sts_phys >> 32),
bdma_chan         623 drivers/rapidio/devices/tsi721_dma.c 			bdma_chan->regs + TSI721_DMAC_DSBH);
bdma_chan         624 drivers/rapidio/devices/tsi721_dma.c 		iowrite32(((u64)bdma_chan->sts_phys & TSI721_DMAC_DSBL_MASK),
bdma_chan         625 drivers/rapidio/devices/tsi721_dma.c 			bdma_chan->regs + TSI721_DMAC_DSBL);
bdma_chan         626 drivers/rapidio/devices/tsi721_dma.c 		iowrite32(TSI721_DMAC_DSSZ_SIZE(bdma_chan->sts_size),
bdma_chan         627 drivers/rapidio/devices/tsi721_dma.c 			bdma_chan->regs + TSI721_DMAC_DSSZ);
bdma_chan         631 drivers/rapidio/devices/tsi721_dma.c 			bdma_chan->regs + TSI721_DMAC_INT);
bdma_chan         633 drivers/rapidio/devices/tsi721_dma.c 		ioread32(bdma_chan->regs + TSI721_DMAC_INT);
bdma_chan         635 drivers/rapidio/devices/tsi721_dma.c 		bdma_chan->wr_count = bdma_chan->wr_count_next = 0;
bdma_chan         636 drivers/rapidio/devices/tsi721_dma.c 		bdma_chan->sts_rdptr = 0;
bdma_chan         639 drivers/rapidio/devices/tsi721_dma.c 		desc = bdma_chan->active_tx;
bdma_chan         642 drivers/rapidio/devices/tsi721_dma.c 		list_add(&desc->desc_node, &bdma_chan->free_list);
bdma_chan         643 drivers/rapidio/devices/tsi721_dma.c 		bdma_chan->active_tx = NULL;
bdma_chan         644 drivers/rapidio/devices/tsi721_dma.c 		if (bdma_chan->active)
bdma_chan         645 drivers/rapidio/devices/tsi721_dma.c 			tsi721_advance_work(bdma_chan, NULL);
bdma_chan         646 drivers/rapidio/devices/tsi721_dma.c 		spin_unlock(&bdma_chan->lock);
bdma_chan         650 drivers/rapidio/devices/tsi721_dma.c 		tsi_err(&bdma_chan->dchan.dev->device,
bdma_chan         652 drivers/rapidio/devices/tsi721_dma.c 			bdma_chan->id);
bdma_chan         658 drivers/rapidio/devices/tsi721_dma.c 		tsi721_clr_stat(bdma_chan);
bdma_chan         659 drivers/rapidio/devices/tsi721_dma.c 		spin_lock(&bdma_chan->lock);
bdma_chan         660 drivers/rapidio/devices/tsi721_dma.c 		desc = bdma_chan->active_tx;
bdma_chan         672 drivers/rapidio/devices/tsi721_dma.c 			list_add(&desc->desc_node, &bdma_chan->free_list);
bdma_chan         673 drivers/rapidio/devices/tsi721_dma.c 			bdma_chan->active_tx = NULL;
bdma_chan         674 drivers/rapidio/devices/tsi721_dma.c 			if (bdma_chan->active)
bdma_chan         675 drivers/rapidio/devices/tsi721_dma.c 				tsi721_advance_work(bdma_chan, NULL);
bdma_chan         676 drivers/rapidio/devices/tsi721_dma.c 			spin_unlock(&bdma_chan->lock);
bdma_chan         680 drivers/rapidio/devices/tsi721_dma.c 			if (bdma_chan->active)
bdma_chan         681 drivers/rapidio/devices/tsi721_dma.c 				tsi721_advance_work(bdma_chan,
bdma_chan         682 drivers/rapidio/devices/tsi721_dma.c 						    bdma_chan->active_tx);
bdma_chan         683 drivers/rapidio/devices/tsi721_dma.c 			spin_unlock(&bdma_chan->lock);
bdma_chan         688 drivers/rapidio/devices/tsi721_dma.c 	iowrite32(TSI721_DMAC_INT_ALL, bdma_chan->regs + TSI721_DMAC_INTE);
bdma_chan         694 drivers/rapidio/devices/tsi721_dma.c 	struct tsi721_bdma_chan *bdma_chan = to_tsi721_chan(txd->chan);
bdma_chan         699 drivers/rapidio/devices/tsi721_dma.c 		tsi_err(&bdma_chan->dchan.dev->device,
bdma_chan         701 drivers/rapidio/devices/tsi721_dma.c 			bdma_chan->id, txd);
bdma_chan         705 drivers/rapidio/devices/tsi721_dma.c 	spin_lock_bh(&bdma_chan->lock);
bdma_chan         707 drivers/rapidio/devices/tsi721_dma.c 	if (!bdma_chan->active) {
bdma_chan         708 drivers/rapidio/devices/tsi721_dma.c 		spin_unlock_bh(&bdma_chan->lock);
bdma_chan         714 drivers/rapidio/devices/tsi721_dma.c 	list_add_tail(&desc->desc_node, &bdma_chan->queue);
bdma_chan         715 drivers/rapidio/devices/tsi721_dma.c 	tsi721_advance_work(bdma_chan, NULL);
bdma_chan         717 drivers/rapidio/devices/tsi721_dma.c 	spin_unlock_bh(&bdma_chan->lock);
bdma_chan         723 drivers/rapidio/devices/tsi721_dma.c 	struct tsi721_bdma_chan *bdma_chan = to_tsi721_chan(dchan);
bdma_chan         727 drivers/rapidio/devices/tsi721_dma.c 	tsi_debug(DMA, &dchan->dev->device, "DMAC%d", bdma_chan->id);
bdma_chan         729 drivers/rapidio/devices/tsi721_dma.c 	if (bdma_chan->bd_base)
bdma_chan         733 drivers/rapidio/devices/tsi721_dma.c 	if (tsi721_bdma_ch_init(bdma_chan, dma_desc_per_channel)) {
bdma_chan         735 drivers/rapidio/devices/tsi721_dma.c 			bdma_chan->id);
bdma_chan         743 drivers/rapidio/devices/tsi721_dma.c 		tsi721_bdma_ch_free(bdma_chan);
bdma_chan         747 drivers/rapidio/devices/tsi721_dma.c 	bdma_chan->tx_desc = desc;
bdma_chan         753 drivers/rapidio/devices/tsi721_dma.c 		list_add(&desc[i].desc_node, &bdma_chan->free_list);
bdma_chan         758 drivers/rapidio/devices/tsi721_dma.c 	bdma_chan->active = true;
bdma_chan         759 drivers/rapidio/devices/tsi721_dma.c 	tsi721_bdma_interrupt_enable(bdma_chan, 1);
bdma_chan         764 drivers/rapidio/devices/tsi721_dma.c static void tsi721_sync_dma_irq(struct tsi721_bdma_chan *bdma_chan)
bdma_chan         766 drivers/rapidio/devices/tsi721_dma.c 	struct tsi721_device *priv = to_tsi721(bdma_chan->dchan.device);
bdma_chan         771 drivers/rapidio/devices/tsi721_dma.c 					   bdma_chan->id].vector);
bdma_chan         773 drivers/rapidio/devices/tsi721_dma.c 					   bdma_chan->id].vector);
bdma_chan         781 drivers/rapidio/devices/tsi721_dma.c 	struct tsi721_bdma_chan *bdma_chan = to_tsi721_chan(dchan);
bdma_chan         783 drivers/rapidio/devices/tsi721_dma.c 	tsi_debug(DMA, &dchan->dev->device, "DMAC%d", bdma_chan->id);
bdma_chan         785 drivers/rapidio/devices/tsi721_dma.c 	if (!bdma_chan->bd_base)
bdma_chan         788 drivers/rapidio/devices/tsi721_dma.c 	tsi721_bdma_interrupt_enable(bdma_chan, 0);
bdma_chan         789 drivers/rapidio/devices/tsi721_dma.c 	bdma_chan->active = false;
bdma_chan         790 drivers/rapidio/devices/tsi721_dma.c 	tsi721_sync_dma_irq(bdma_chan);
bdma_chan         791 drivers/rapidio/devices/tsi721_dma.c 	tasklet_kill(&bdma_chan->tasklet);
bdma_chan         792 drivers/rapidio/devices/tsi721_dma.c 	INIT_LIST_HEAD(&bdma_chan->free_list);
bdma_chan         793 drivers/rapidio/devices/tsi721_dma.c 	kfree(bdma_chan->tx_desc);
bdma_chan         794 drivers/rapidio/devices/tsi721_dma.c 	tsi721_bdma_ch_free(bdma_chan);
bdma_chan         801 drivers/rapidio/devices/tsi721_dma.c 	struct tsi721_bdma_chan *bdma_chan = to_tsi721_chan(dchan);
bdma_chan         804 drivers/rapidio/devices/tsi721_dma.c 	spin_lock_bh(&bdma_chan->lock);
bdma_chan         806 drivers/rapidio/devices/tsi721_dma.c 	spin_unlock_bh(&bdma_chan->lock);
bdma_chan         812 drivers/rapidio/devices/tsi721_dma.c 	struct tsi721_bdma_chan *bdma_chan = to_tsi721_chan(dchan);
bdma_chan         814 drivers/rapidio/devices/tsi721_dma.c 	tsi_debug(DMA, &dchan->dev->device, "DMAC%d", bdma_chan->id);
bdma_chan         816 drivers/rapidio/devices/tsi721_dma.c 	spin_lock_bh(&bdma_chan->lock);
bdma_chan         817 drivers/rapidio/devices/tsi721_dma.c 	if (tsi721_dma_is_idle(bdma_chan) && bdma_chan->active) {
bdma_chan         818 drivers/rapidio/devices/tsi721_dma.c 		tsi721_advance_work(bdma_chan, NULL);
bdma_chan         820 drivers/rapidio/devices/tsi721_dma.c 	spin_unlock_bh(&bdma_chan->lock);
bdma_chan         829 drivers/rapidio/devices/tsi721_dma.c 	struct tsi721_bdma_chan *bdma_chan = to_tsi721_chan(dchan);
bdma_chan         837 drivers/rapidio/devices/tsi721_dma.c 			bdma_chan->id);
bdma_chan         841 drivers/rapidio/devices/tsi721_dma.c 	tsi_debug(DMA, &dchan->dev->device, "DMAC%d %s", bdma_chan->id,
bdma_chan         862 drivers/rapidio/devices/tsi721_dma.c 			bdma_chan->id);
bdma_chan         866 drivers/rapidio/devices/tsi721_dma.c 	spin_lock_bh(&bdma_chan->lock);
bdma_chan         868 drivers/rapidio/devices/tsi721_dma.c 	if (!list_empty(&bdma_chan->free_list)) {
bdma_chan         869 drivers/rapidio/devices/tsi721_dma.c 		desc = list_first_entry(&bdma_chan->free_list,
bdma_chan         882 drivers/rapidio/devices/tsi721_dma.c 	spin_unlock_bh(&bdma_chan->lock);
bdma_chan         886 drivers/rapidio/devices/tsi721_dma.c 			  "DMAC%d free TXD is not available", bdma_chan->id);
bdma_chan         895 drivers/rapidio/devices/tsi721_dma.c 	struct tsi721_bdma_chan *bdma_chan = to_tsi721_chan(dchan);
bdma_chan         899 drivers/rapidio/devices/tsi721_dma.c 	tsi_debug(DMA, &dchan->dev->device, "DMAC%d", bdma_chan->id);
bdma_chan         901 drivers/rapidio/devices/tsi721_dma.c 	spin_lock_bh(&bdma_chan->lock);
bdma_chan         903 drivers/rapidio/devices/tsi721_dma.c 	bdma_chan->active = false;
bdma_chan         905 drivers/rapidio/devices/tsi721_dma.c 	while (!tsi721_dma_is_idle(bdma_chan)) {
bdma_chan         911 drivers/rapidio/devices/tsi721_dma.c 			  bdma_chan->regs + TSI721_DMAC_CTL);
bdma_chan         915 drivers/rapidio/devices/tsi721_dma.c 			dmac_int = ioread32(bdma_chan->regs + TSI721_DMAC_INT);
bdma_chan         920 drivers/rapidio/devices/tsi721_dma.c 	if (bdma_chan->active_tx)
bdma_chan         921 drivers/rapidio/devices/tsi721_dma.c 		list_add(&bdma_chan->active_tx->desc_node, &list);
bdma_chan         922 drivers/rapidio/devices/tsi721_dma.c 	list_splice_init(&bdma_chan->queue, &list);
bdma_chan         925 drivers/rapidio/devices/tsi721_dma.c 		tsi721_dma_tx_err(bdma_chan, desc);
bdma_chan         927 drivers/rapidio/devices/tsi721_dma.c 	spin_unlock_bh(&bdma_chan->lock);
bdma_chan         932 drivers/rapidio/devices/tsi721_dma.c static void tsi721_dma_stop(struct tsi721_bdma_chan *bdma_chan)
bdma_chan         934 drivers/rapidio/devices/tsi721_dma.c 	if (!bdma_chan->active)
bdma_chan         936 drivers/rapidio/devices/tsi721_dma.c 	spin_lock_bh(&bdma_chan->lock);
bdma_chan         937 drivers/rapidio/devices/tsi721_dma.c 	if (!tsi721_dma_is_idle(bdma_chan)) {
bdma_chan         942 drivers/rapidio/devices/tsi721_dma.c 			  bdma_chan->regs + TSI721_DMAC_CTL);
bdma_chan         945 drivers/rapidio/devices/tsi721_dma.c 		while (!tsi721_dma_is_idle(bdma_chan) && --timeout)
bdma_chan         949 drivers/rapidio/devices/tsi721_dma.c 	spin_unlock_bh(&bdma_chan->lock);
bdma_chan         972 drivers/rapidio/devices/tsi721_dma.c 		struct tsi721_bdma_chan *bdma_chan = &priv->bdma[i];
bdma_chan         977 drivers/rapidio/devices/tsi721_dma.c 		bdma_chan->regs = priv->regs + TSI721_DMAC_BASE(i);
bdma_chan         979 drivers/rapidio/devices/tsi721_dma.c 		bdma_chan->dchan.device = &mport->dma;
bdma_chan         980 drivers/rapidio/devices/tsi721_dma.c 		bdma_chan->dchan.cookie = 1;
bdma_chan         981 drivers/rapidio/devices/tsi721_dma.c 		bdma_chan->dchan.chan_id = i;
bdma_chan         982 drivers/rapidio/devices/tsi721_dma.c 		bdma_chan->id = i;
bdma_chan         983 drivers/rapidio/devices/tsi721_dma.c 		bdma_chan->active = false;
bdma_chan         985 drivers/rapidio/devices/tsi721_dma.c 		spin_lock_init(&bdma_chan->lock);
bdma_chan         987 drivers/rapidio/devices/tsi721_dma.c 		bdma_chan->active_tx = NULL;
bdma_chan         988 drivers/rapidio/devices/tsi721_dma.c 		INIT_LIST_HEAD(&bdma_chan->queue);
bdma_chan         989 drivers/rapidio/devices/tsi721_dma.c 		INIT_LIST_HEAD(&bdma_chan->free_list);
bdma_chan         991 drivers/rapidio/devices/tsi721_dma.c 		tasklet_init(&bdma_chan->tasklet, tsi721_dma_tasklet,
bdma_chan         992 drivers/rapidio/devices/tsi721_dma.c 			     (unsigned long)bdma_chan);
bdma_chan         993 drivers/rapidio/devices/tsi721_dma.c 		list_add_tail(&bdma_chan->dchan.device_node,
bdma_chan        1022 drivers/rapidio/devices/tsi721_dma.c 	struct tsi721_bdma_chan *bdma_chan;
bdma_chan        1029 drivers/rapidio/devices/tsi721_dma.c 		bdma_chan = to_tsi721_chan(chan);
bdma_chan        1030 drivers/rapidio/devices/tsi721_dma.c 		if (bdma_chan->active) {
bdma_chan        1031 drivers/rapidio/devices/tsi721_dma.c 			tsi721_bdma_interrupt_enable(bdma_chan, 0);
bdma_chan        1032 drivers/rapidio/devices/tsi721_dma.c 			bdma_chan->active = false;
bdma_chan        1033 drivers/rapidio/devices/tsi721_dma.c 			tsi721_sync_dma_irq(bdma_chan);
bdma_chan        1034 drivers/rapidio/devices/tsi721_dma.c 			tasklet_kill(&bdma_chan->tasklet);
bdma_chan        1035 drivers/rapidio/devices/tsi721_dma.c 			INIT_LIST_HEAD(&bdma_chan->free_list);
bdma_chan        1036 drivers/rapidio/devices/tsi721_dma.c 			kfree(bdma_chan->tx_desc);
bdma_chan        1037 drivers/rapidio/devices/tsi721_dma.c 			tsi721_bdma_ch_free(bdma_chan);