tdc               111 arch/s390/include/asm/ctl_reg.h 		unsigned long tdc   : 2;
tdc                65 arch/s390/kernel/ptrace.c 		cr2_new.tdc = 0;
tdc                68 arch/s390/kernel/ptrace.c 				cr2_new.tdc = 1;
tdc                70 arch/s390/kernel/ptrace.c 				cr2_new.tdc = 2;
tdc               176 drivers/dma/tegra20-apb-dma.c typedef void (*dma_isr_handler)(struct tegra_dma_channel *tdc,
tdc               242 drivers/dma/tegra20-apb-dma.c static inline void tdc_write(struct tegra_dma_channel *tdc,
tdc               245 drivers/dma/tegra20-apb-dma.c 	writel(val, tdc->chan_addr + reg);
tdc               248 drivers/dma/tegra20-apb-dma.c static inline u32 tdc_read(struct tegra_dma_channel *tdc, u32 reg)
tdc               250 drivers/dma/tegra20-apb-dma.c 	return readl(tdc->chan_addr + reg);
tdc               264 drivers/dma/tegra20-apb-dma.c static inline struct device *tdc2dev(struct tegra_dma_channel *tdc)
tdc               266 drivers/dma/tegra20-apb-dma.c 	return &tdc->dma_chan.dev->device;
tdc               275 drivers/dma/tegra20-apb-dma.c 		struct tegra_dma_channel *tdc)
tdc               280 drivers/dma/tegra20-apb-dma.c 	spin_lock_irqsave(&tdc->lock, flags);
tdc               283 drivers/dma/tegra20-apb-dma.c 	list_for_each_entry(dma_desc, &tdc->free_dma_desc, node) {
tdc               286 drivers/dma/tegra20-apb-dma.c 			spin_unlock_irqrestore(&tdc->lock, flags);
tdc               292 drivers/dma/tegra20-apb-dma.c 	spin_unlock_irqrestore(&tdc->lock, flags);
tdc               299 drivers/dma/tegra20-apb-dma.c 	dma_async_tx_descriptor_init(&dma_desc->txd, &tdc->dma_chan);
tdc               305 drivers/dma/tegra20-apb-dma.c static void tegra_dma_desc_put(struct tegra_dma_channel *tdc,
tdc               310 drivers/dma/tegra20-apb-dma.c 	spin_lock_irqsave(&tdc->lock, flags);
tdc               312 drivers/dma/tegra20-apb-dma.c 		list_splice_init(&dma_desc->tx_list, &tdc->free_sg_req);
tdc               313 drivers/dma/tegra20-apb-dma.c 	list_add_tail(&dma_desc->node, &tdc->free_dma_desc);
tdc               314 drivers/dma/tegra20-apb-dma.c 	spin_unlock_irqrestore(&tdc->lock, flags);
tdc               318 drivers/dma/tegra20-apb-dma.c 		struct tegra_dma_channel *tdc)
tdc               323 drivers/dma/tegra20-apb-dma.c 	spin_lock_irqsave(&tdc->lock, flags);
tdc               324 drivers/dma/tegra20-apb-dma.c 	if (!list_empty(&tdc->free_sg_req)) {
tdc               325 drivers/dma/tegra20-apb-dma.c 		sg_req = list_first_entry(&tdc->free_sg_req,
tdc               328 drivers/dma/tegra20-apb-dma.c 		spin_unlock_irqrestore(&tdc->lock, flags);
tdc               331 drivers/dma/tegra20-apb-dma.c 	spin_unlock_irqrestore(&tdc->lock, flags);
tdc               341 drivers/dma/tegra20-apb-dma.c 	struct tegra_dma_channel *tdc = to_tegra_dma_chan(dc);
tdc               343 drivers/dma/tegra20-apb-dma.c 	if (!list_empty(&tdc->pending_sg_req)) {
tdc               344 drivers/dma/tegra20-apb-dma.c 		dev_err(tdc2dev(tdc), "Configuration not allowed\n");
tdc               348 drivers/dma/tegra20-apb-dma.c 	memcpy(&tdc->dma_sconfig, sconfig, sizeof(*sconfig));
tdc               349 drivers/dma/tegra20-apb-dma.c 	if (tdc->slave_id == TEGRA_APBDMA_SLAVE_ID_INVALID &&
tdc               353 drivers/dma/tegra20-apb-dma.c 		tdc->slave_id = sconfig->slave_id;
tdc               355 drivers/dma/tegra20-apb-dma.c 	tdc->config_init = true;
tdc               359 drivers/dma/tegra20-apb-dma.c static void tegra_dma_global_pause(struct tegra_dma_channel *tdc,
tdc               362 drivers/dma/tegra20-apb-dma.c 	struct tegra_dma *tdma = tdc->tdma;
tdc               366 drivers/dma/tegra20-apb-dma.c 	if (tdc->tdma->global_pause_count == 0) {
tdc               372 drivers/dma/tegra20-apb-dma.c 	tdc->tdma->global_pause_count++;
tdc               377 drivers/dma/tegra20-apb-dma.c static void tegra_dma_global_resume(struct tegra_dma_channel *tdc)
tdc               379 drivers/dma/tegra20-apb-dma.c 	struct tegra_dma *tdma = tdc->tdma;
tdc               383 drivers/dma/tegra20-apb-dma.c 	if (WARN_ON(tdc->tdma->global_pause_count == 0))
tdc               386 drivers/dma/tegra20-apb-dma.c 	if (--tdc->tdma->global_pause_count == 0)
tdc               394 drivers/dma/tegra20-apb-dma.c static void tegra_dma_pause(struct tegra_dma_channel *tdc,
tdc               397 drivers/dma/tegra20-apb-dma.c 	struct tegra_dma *tdma = tdc->tdma;
tdc               400 drivers/dma/tegra20-apb-dma.c 		tdc_write(tdc, TEGRA_APBDMA_CHAN_CSRE,
tdc               405 drivers/dma/tegra20-apb-dma.c 		tegra_dma_global_pause(tdc, wait_for_burst_complete);
tdc               409 drivers/dma/tegra20-apb-dma.c static void tegra_dma_resume(struct tegra_dma_channel *tdc)
tdc               411 drivers/dma/tegra20-apb-dma.c 	struct tegra_dma *tdma = tdc->tdma;
tdc               414 drivers/dma/tegra20-apb-dma.c 		tdc_write(tdc, TEGRA_APBDMA_CHAN_CSRE, 0);
tdc               416 drivers/dma/tegra20-apb-dma.c 		tegra_dma_global_resume(tdc);
tdc               420 drivers/dma/tegra20-apb-dma.c static void tegra_dma_stop(struct tegra_dma_channel *tdc)
tdc               426 drivers/dma/tegra20-apb-dma.c 	csr = tdc_read(tdc, TEGRA_APBDMA_CHAN_CSR);
tdc               428 drivers/dma/tegra20-apb-dma.c 	tdc_write(tdc, TEGRA_APBDMA_CHAN_CSR, csr);
tdc               432 drivers/dma/tegra20-apb-dma.c 	tdc_write(tdc, TEGRA_APBDMA_CHAN_CSR, csr);
tdc               435 drivers/dma/tegra20-apb-dma.c 	status = tdc_read(tdc, TEGRA_APBDMA_CHAN_STATUS);
tdc               437 drivers/dma/tegra20-apb-dma.c 		dev_dbg(tdc2dev(tdc), "%s():clearing interrupt\n", __func__);
tdc               438 drivers/dma/tegra20-apb-dma.c 		tdc_write(tdc, TEGRA_APBDMA_CHAN_STATUS, status);
tdc               440 drivers/dma/tegra20-apb-dma.c 	tdc->busy = false;
tdc               443 drivers/dma/tegra20-apb-dma.c static void tegra_dma_start(struct tegra_dma_channel *tdc,
tdc               448 drivers/dma/tegra20-apb-dma.c 	tdc_write(tdc, TEGRA_APBDMA_CHAN_CSR, ch_regs->csr);
tdc               449 drivers/dma/tegra20-apb-dma.c 	tdc_write(tdc, TEGRA_APBDMA_CHAN_APBSEQ, ch_regs->apb_seq);
tdc               450 drivers/dma/tegra20-apb-dma.c 	tdc_write(tdc, TEGRA_APBDMA_CHAN_APBPTR, ch_regs->apb_ptr);
tdc               451 drivers/dma/tegra20-apb-dma.c 	tdc_write(tdc, TEGRA_APBDMA_CHAN_AHBSEQ, ch_regs->ahb_seq);
tdc               452 drivers/dma/tegra20-apb-dma.c 	tdc_write(tdc, TEGRA_APBDMA_CHAN_AHBPTR, ch_regs->ahb_ptr);
tdc               453 drivers/dma/tegra20-apb-dma.c 	if (tdc->tdma->chip_data->support_separate_wcount_reg)
tdc               454 drivers/dma/tegra20-apb-dma.c 		tdc_write(tdc, TEGRA_APBDMA_CHAN_WCOUNT, ch_regs->wcount);
tdc               457 drivers/dma/tegra20-apb-dma.c 	tdc_write(tdc, TEGRA_APBDMA_CHAN_CSR,
tdc               461 drivers/dma/tegra20-apb-dma.c static void tegra_dma_configure_for_next(struct tegra_dma_channel *tdc,
tdc               477 drivers/dma/tegra20-apb-dma.c 	tegra_dma_pause(tdc, false);
tdc               478 drivers/dma/tegra20-apb-dma.c 	status = tdc_read(tdc, TEGRA_APBDMA_CHAN_STATUS);
tdc               485 drivers/dma/tegra20-apb-dma.c 		dev_err(tdc2dev(tdc),
tdc               487 drivers/dma/tegra20-apb-dma.c 		tegra_dma_resume(tdc);
tdc               492 drivers/dma/tegra20-apb-dma.c 	tdc_write(tdc, TEGRA_APBDMA_CHAN_APBPTR, nsg_req->ch_regs.apb_ptr);
tdc               493 drivers/dma/tegra20-apb-dma.c 	tdc_write(tdc, TEGRA_APBDMA_CHAN_AHBPTR, nsg_req->ch_regs.ahb_ptr);
tdc               494 drivers/dma/tegra20-apb-dma.c 	if (tdc->tdma->chip_data->support_separate_wcount_reg)
tdc               495 drivers/dma/tegra20-apb-dma.c 		tdc_write(tdc, TEGRA_APBDMA_CHAN_WCOUNT,
tdc               497 drivers/dma/tegra20-apb-dma.c 	tdc_write(tdc, TEGRA_APBDMA_CHAN_CSR,
tdc               502 drivers/dma/tegra20-apb-dma.c 	tegra_dma_resume(tdc);
tdc               505 drivers/dma/tegra20-apb-dma.c static void tdc_start_head_req(struct tegra_dma_channel *tdc)
tdc               509 drivers/dma/tegra20-apb-dma.c 	if (list_empty(&tdc->pending_sg_req))
tdc               512 drivers/dma/tegra20-apb-dma.c 	sg_req = list_first_entry(&tdc->pending_sg_req,
tdc               514 drivers/dma/tegra20-apb-dma.c 	tegra_dma_start(tdc, sg_req);
tdc               517 drivers/dma/tegra20-apb-dma.c 	tdc->busy = true;
tdc               520 drivers/dma/tegra20-apb-dma.c static void tdc_configure_next_head_desc(struct tegra_dma_channel *tdc)
tdc               525 drivers/dma/tegra20-apb-dma.c 	if (list_empty(&tdc->pending_sg_req))
tdc               528 drivers/dma/tegra20-apb-dma.c 	hsgreq = list_first_entry(&tdc->pending_sg_req, typeof(*hsgreq), node);
tdc               529 drivers/dma/tegra20-apb-dma.c 	if (!list_is_last(&hsgreq->node, &tdc->pending_sg_req)) {
tdc               532 drivers/dma/tegra20-apb-dma.c 		tegra_dma_configure_for_next(tdc, hnsgreq);
tdc               536 drivers/dma/tegra20-apb-dma.c static inline int get_current_xferred_count(struct tegra_dma_channel *tdc,
tdc               542 drivers/dma/tegra20-apb-dma.c static void tegra_dma_abort_all(struct tegra_dma_channel *tdc)
tdc               547 drivers/dma/tegra20-apb-dma.c 	while (!list_empty(&tdc->pending_sg_req)) {
tdc               548 drivers/dma/tegra20-apb-dma.c 		sgreq = list_first_entry(&tdc->pending_sg_req,
tdc               550 drivers/dma/tegra20-apb-dma.c 		list_move_tail(&sgreq->node, &tdc->free_sg_req);
tdc               554 drivers/dma/tegra20-apb-dma.c 			list_add_tail(&dma_desc->node, &tdc->free_dma_desc);
tdc               559 drivers/dma/tegra20-apb-dma.c 							&tdc->cb_desc);
tdc               563 drivers/dma/tegra20-apb-dma.c 	tdc->isr_handler = NULL;
tdc               566 drivers/dma/tegra20-apb-dma.c static bool handle_continuous_head_request(struct tegra_dma_channel *tdc,
tdc               571 drivers/dma/tegra20-apb-dma.c 	if (list_empty(&tdc->pending_sg_req)) {
tdc               572 drivers/dma/tegra20-apb-dma.c 		dev_err(tdc2dev(tdc), "DMA is running without req\n");
tdc               573 drivers/dma/tegra20-apb-dma.c 		tegra_dma_stop(tdc);
tdc               582 drivers/dma/tegra20-apb-dma.c 	hsgreq = list_first_entry(&tdc->pending_sg_req, typeof(*hsgreq), node);
tdc               584 drivers/dma/tegra20-apb-dma.c 		tegra_dma_stop(tdc);
tdc               585 drivers/dma/tegra20-apb-dma.c 		dev_err(tdc2dev(tdc), "Error in DMA transfer, aborting DMA\n");
tdc               586 drivers/dma/tegra20-apb-dma.c 		tegra_dma_abort_all(tdc);
tdc               592 drivers/dma/tegra20-apb-dma.c 		tdc_configure_next_head_desc(tdc);
tdc               596 drivers/dma/tegra20-apb-dma.c static void handle_once_dma_done(struct tegra_dma_channel *tdc,
tdc               602 drivers/dma/tegra20-apb-dma.c 	tdc->busy = false;
tdc               603 drivers/dma/tegra20-apb-dma.c 	sgreq = list_first_entry(&tdc->pending_sg_req, typeof(*sgreq), node);
tdc               612 drivers/dma/tegra20-apb-dma.c 			list_add_tail(&dma_desc->cb_node, &tdc->cb_desc);
tdc               614 drivers/dma/tegra20-apb-dma.c 		list_add_tail(&dma_desc->node, &tdc->free_dma_desc);
tdc               616 drivers/dma/tegra20-apb-dma.c 	list_add_tail(&sgreq->node, &tdc->free_sg_req);
tdc               619 drivers/dma/tegra20-apb-dma.c 	if (to_terminate || list_empty(&tdc->pending_sg_req))
tdc               622 drivers/dma/tegra20-apb-dma.c 	tdc_start_head_req(tdc);
tdc               625 drivers/dma/tegra20-apb-dma.c static void handle_cont_sngl_cycle_dma_done(struct tegra_dma_channel *tdc,
tdc               632 drivers/dma/tegra20-apb-dma.c 	sgreq = list_first_entry(&tdc->pending_sg_req, typeof(*sgreq), node);
tdc               641 drivers/dma/tegra20-apb-dma.c 		list_add_tail(&dma_desc->cb_node, &tdc->cb_desc);
tdc               647 drivers/dma/tegra20-apb-dma.c 	if (!list_is_last(&sgreq->node, &tdc->pending_sg_req)) {
tdc               648 drivers/dma/tegra20-apb-dma.c 		list_move_tail(&sgreq->node, &tdc->pending_sg_req);
tdc               650 drivers/dma/tegra20-apb-dma.c 		st = handle_continuous_head_request(tdc, sgreq, to_terminate);
tdc               658 drivers/dma/tegra20-apb-dma.c 	struct tegra_dma_channel *tdc = (struct tegra_dma_channel *)data;
tdc               664 drivers/dma/tegra20-apb-dma.c 	spin_lock_irqsave(&tdc->lock, flags);
tdc               665 drivers/dma/tegra20-apb-dma.c 	while (!list_empty(&tdc->cb_desc)) {
tdc               666 drivers/dma/tegra20-apb-dma.c 		dma_desc  = list_first_entry(&tdc->cb_desc,
tdc               672 drivers/dma/tegra20-apb-dma.c 		trace_tegra_dma_complete_cb(&tdc->dma_chan, cb_count,
tdc               674 drivers/dma/tegra20-apb-dma.c 		spin_unlock_irqrestore(&tdc->lock, flags);
tdc               677 drivers/dma/tegra20-apb-dma.c 		spin_lock_irqsave(&tdc->lock, flags);
tdc               679 drivers/dma/tegra20-apb-dma.c 	spin_unlock_irqrestore(&tdc->lock, flags);
tdc               684 drivers/dma/tegra20-apb-dma.c 	struct tegra_dma_channel *tdc = dev_id;
tdc               688 drivers/dma/tegra20-apb-dma.c 	spin_lock_irqsave(&tdc->lock, flags);
tdc               690 drivers/dma/tegra20-apb-dma.c 	trace_tegra_dma_isr(&tdc->dma_chan, irq);
tdc               691 drivers/dma/tegra20-apb-dma.c 	status = tdc_read(tdc, TEGRA_APBDMA_CHAN_STATUS);
tdc               693 drivers/dma/tegra20-apb-dma.c 		tdc_write(tdc, TEGRA_APBDMA_CHAN_STATUS, status);
tdc               694 drivers/dma/tegra20-apb-dma.c 		tdc->isr_handler(tdc, false);
tdc               695 drivers/dma/tegra20-apb-dma.c 		tasklet_schedule(&tdc->tasklet);
tdc               696 drivers/dma/tegra20-apb-dma.c 		spin_unlock_irqrestore(&tdc->lock, flags);
tdc               700 drivers/dma/tegra20-apb-dma.c 	spin_unlock_irqrestore(&tdc->lock, flags);
tdc               701 drivers/dma/tegra20-apb-dma.c 	dev_info(tdc2dev(tdc),
tdc               709 drivers/dma/tegra20-apb-dma.c 	struct tegra_dma_channel *tdc = to_tegra_dma_chan(txd->chan);
tdc               713 drivers/dma/tegra20-apb-dma.c 	spin_lock_irqsave(&tdc->lock, flags);
tdc               716 drivers/dma/tegra20-apb-dma.c 	list_splice_tail_init(&dma_desc->tx_list, &tdc->pending_sg_req);
tdc               717 drivers/dma/tegra20-apb-dma.c 	spin_unlock_irqrestore(&tdc->lock, flags);
tdc               723 drivers/dma/tegra20-apb-dma.c 	struct tegra_dma_channel *tdc = to_tegra_dma_chan(dc);
tdc               726 drivers/dma/tegra20-apb-dma.c 	spin_lock_irqsave(&tdc->lock, flags);
tdc               727 drivers/dma/tegra20-apb-dma.c 	if (list_empty(&tdc->pending_sg_req)) {
tdc               728 drivers/dma/tegra20-apb-dma.c 		dev_err(tdc2dev(tdc), "No DMA request\n");
tdc               731 drivers/dma/tegra20-apb-dma.c 	if (!tdc->busy) {
tdc               732 drivers/dma/tegra20-apb-dma.c 		tdc_start_head_req(tdc);
tdc               735 drivers/dma/tegra20-apb-dma.c 		if (tdc->cyclic) {
tdc               741 drivers/dma/tegra20-apb-dma.c 			tdc_configure_next_head_desc(tdc);
tdc               745 drivers/dma/tegra20-apb-dma.c 	spin_unlock_irqrestore(&tdc->lock, flags);
tdc               750 drivers/dma/tegra20-apb-dma.c 	struct tegra_dma_channel *tdc = to_tegra_dma_chan(dc);
tdc               758 drivers/dma/tegra20-apb-dma.c 	spin_lock_irqsave(&tdc->lock, flags);
tdc               760 drivers/dma/tegra20-apb-dma.c 	if (!tdc->busy)
tdc               764 drivers/dma/tegra20-apb-dma.c 	tegra_dma_pause(tdc, true);
tdc               766 drivers/dma/tegra20-apb-dma.c 	status = tdc_read(tdc, TEGRA_APBDMA_CHAN_STATUS);
tdc               768 drivers/dma/tegra20-apb-dma.c 		dev_dbg(tdc2dev(tdc), "%s():handling isr\n", __func__);
tdc               769 drivers/dma/tegra20-apb-dma.c 		tdc->isr_handler(tdc, true);
tdc               770 drivers/dma/tegra20-apb-dma.c 		status = tdc_read(tdc, TEGRA_APBDMA_CHAN_STATUS);
tdc               772 drivers/dma/tegra20-apb-dma.c 	if (tdc->tdma->chip_data->support_separate_wcount_reg)
tdc               773 drivers/dma/tegra20-apb-dma.c 		wcount = tdc_read(tdc, TEGRA_APBDMA_CHAN_WORD_TRANSFER);
tdc               777 drivers/dma/tegra20-apb-dma.c 	was_busy = tdc->busy;
tdc               778 drivers/dma/tegra20-apb-dma.c 	tegra_dma_stop(tdc);
tdc               780 drivers/dma/tegra20-apb-dma.c 	if (!list_empty(&tdc->pending_sg_req) && was_busy) {
tdc               781 drivers/dma/tegra20-apb-dma.c 		sgreq = list_first_entry(&tdc->pending_sg_req,
tdc               784 drivers/dma/tegra20-apb-dma.c 				get_current_xferred_count(tdc, sgreq, wcount);
tdc               786 drivers/dma/tegra20-apb-dma.c 	tegra_dma_resume(tdc);
tdc               789 drivers/dma/tegra20-apb-dma.c 	tegra_dma_abort_all(tdc);
tdc               791 drivers/dma/tegra20-apb-dma.c 	while (!list_empty(&tdc->cb_desc)) {
tdc               792 drivers/dma/tegra20-apb-dma.c 		dma_desc  = list_first_entry(&tdc->cb_desc,
tdc               797 drivers/dma/tegra20-apb-dma.c 	spin_unlock_irqrestore(&tdc->lock, flags);
tdc               801 drivers/dma/tegra20-apb-dma.c static unsigned int tegra_dma_sg_bytes_xferred(struct tegra_dma_channel *tdc,
tdc               806 drivers/dma/tegra20-apb-dma.c 	if (!list_is_first(&sg_req->node, &tdc->pending_sg_req))
tdc               809 drivers/dma/tegra20-apb-dma.c 	if (tdc->tdma->chip_data->support_separate_wcount_reg)
tdc               810 drivers/dma/tegra20-apb-dma.c 		wcount = tdc_read(tdc, TEGRA_APBDMA_CHAN_WORD_TRANSFER);
tdc               812 drivers/dma/tegra20-apb-dma.c 	status = tdc_read(tdc, TEGRA_APBDMA_CHAN_STATUS);
tdc               814 drivers/dma/tegra20-apb-dma.c 	if (!tdc->tdma->chip_data->support_separate_wcount_reg)
tdc               820 drivers/dma/tegra20-apb-dma.c 	wcount = get_current_xferred_count(tdc, sg_req, wcount);
tdc               863 drivers/dma/tegra20-apb-dma.c 	struct tegra_dma_channel *tdc = to_tegra_dma_chan(dc);
tdc               875 drivers/dma/tegra20-apb-dma.c 	spin_lock_irqsave(&tdc->lock, flags);
tdc               878 drivers/dma/tegra20-apb-dma.c 	list_for_each_entry(dma_desc, &tdc->free_dma_desc, node) {
tdc               886 drivers/dma/tegra20-apb-dma.c 	list_for_each_entry(sg_req, &tdc->pending_sg_req, node) {
tdc               889 drivers/dma/tegra20-apb-dma.c 			bytes = tegra_dma_sg_bytes_xferred(tdc, sg_req);
tdc               895 drivers/dma/tegra20-apb-dma.c 	dev_dbg(tdc2dev(tdc), "cookie %d not found\n", cookie);
tdc               906 drivers/dma/tegra20-apb-dma.c 	trace_tegra_dma_tx_status(&tdc->dma_chan, cookie, txstate);
tdc               907 drivers/dma/tegra20-apb-dma.c 	spin_unlock_irqrestore(&tdc->lock, flags);
tdc               911 drivers/dma/tegra20-apb-dma.c static inline int get_bus_width(struct tegra_dma_channel *tdc,
tdc               924 drivers/dma/tegra20-apb-dma.c 		dev_warn(tdc2dev(tdc),
tdc               930 drivers/dma/tegra20-apb-dma.c static inline int get_burst_size(struct tegra_dma_channel *tdc,
tdc               960 drivers/dma/tegra20-apb-dma.c static int get_transfer_param(struct tegra_dma_channel *tdc,
tdc               967 drivers/dma/tegra20-apb-dma.c 		*apb_addr = tdc->dma_sconfig.dst_addr;
tdc               968 drivers/dma/tegra20-apb-dma.c 		*apb_seq = get_bus_width(tdc, tdc->dma_sconfig.dst_addr_width);
tdc               969 drivers/dma/tegra20-apb-dma.c 		*burst_size = tdc->dma_sconfig.dst_maxburst;
tdc               970 drivers/dma/tegra20-apb-dma.c 		*slave_bw = tdc->dma_sconfig.dst_addr_width;
tdc               975 drivers/dma/tegra20-apb-dma.c 		*apb_addr = tdc->dma_sconfig.src_addr;
tdc               976 drivers/dma/tegra20-apb-dma.c 		*apb_seq = get_bus_width(tdc, tdc->dma_sconfig.src_addr_width);
tdc               977 drivers/dma/tegra20-apb-dma.c 		*burst_size = tdc->dma_sconfig.src_maxburst;
tdc               978 drivers/dma/tegra20-apb-dma.c 		*slave_bw = tdc->dma_sconfig.src_addr_width;
tdc               983 drivers/dma/tegra20-apb-dma.c 		dev_err(tdc2dev(tdc), "DMA direction is not supported\n");
tdc               989 drivers/dma/tegra20-apb-dma.c static void tegra_dma_prep_wcount(struct tegra_dma_channel *tdc,
tdc               994 drivers/dma/tegra20-apb-dma.c 	if (tdc->tdma->chip_data->support_separate_wcount_reg)
tdc              1005 drivers/dma/tegra20-apb-dma.c 	struct tegra_dma_channel *tdc = to_tegra_dma_chan(dc);
tdc              1015 drivers/dma/tegra20-apb-dma.c 	if (!tdc->config_init) {
tdc              1016 drivers/dma/tegra20-apb-dma.c 		dev_err(tdc2dev(tdc), "DMA channel is not configured\n");
tdc              1020 drivers/dma/tegra20-apb-dma.c 		dev_err(tdc2dev(tdc), "Invalid segment length %d\n", sg_len);
tdc              1024 drivers/dma/tegra20-apb-dma.c 	if (get_transfer_param(tdc, direction, &apb_ptr, &apb_seq, &csr,
tdc              1037 drivers/dma/tegra20-apb-dma.c 	if (tdc->slave_id != TEGRA_APBDMA_SLAVE_ID_INVALID) {
tdc              1039 drivers/dma/tegra20-apb-dma.c 		csr |= tdc->slave_id << TEGRA_APBDMA_CSR_REQ_SEL_SHIFT;
tdc              1051 drivers/dma/tegra20-apb-dma.c 	dma_desc = tegra_dma_desc_get(tdc);
tdc              1053 drivers/dma/tegra20-apb-dma.c 		dev_err(tdc2dev(tdc), "DMA descriptors not available\n");
tdc              1071 drivers/dma/tegra20-apb-dma.c 				(len > tdc->tdma->chip_data->max_dma_count)) {
tdc              1072 drivers/dma/tegra20-apb-dma.c 			dev_err(tdc2dev(tdc),
tdc              1074 drivers/dma/tegra20-apb-dma.c 			tegra_dma_desc_put(tdc, dma_desc);
tdc              1078 drivers/dma/tegra20-apb-dma.c 		sg_req = tegra_dma_sg_req_get(tdc);
tdc              1080 drivers/dma/tegra20-apb-dma.c 			dev_err(tdc2dev(tdc), "DMA sg-req not available\n");
tdc              1081 drivers/dma/tegra20-apb-dma.c 			tegra_dma_desc_put(tdc, dma_desc);
tdc              1085 drivers/dma/tegra20-apb-dma.c 		ahb_seq |= get_burst_size(tdc, burst_size, slave_bw, len);
tdc              1091 drivers/dma/tegra20-apb-dma.c 		tegra_dma_prep_wcount(tdc, &sg_req->ch_regs, len);
tdc              1109 drivers/dma/tegra20-apb-dma.c 	if (!tdc->isr_handler) {
tdc              1110 drivers/dma/tegra20-apb-dma.c 		tdc->isr_handler = handle_once_dma_done;
tdc              1111 drivers/dma/tegra20-apb-dma.c 		tdc->cyclic = false;
tdc              1113 drivers/dma/tegra20-apb-dma.c 		if (tdc->cyclic) {
tdc              1114 drivers/dma/tegra20-apb-dma.c 			dev_err(tdc2dev(tdc), "DMA configured in cyclic mode\n");
tdc              1115 drivers/dma/tegra20-apb-dma.c 			tegra_dma_desc_put(tdc, dma_desc);
tdc              1128 drivers/dma/tegra20-apb-dma.c 	struct tegra_dma_channel *tdc = to_tegra_dma_chan(dc);
tdc              1139 drivers/dma/tegra20-apb-dma.c 		dev_err(tdc2dev(tdc), "Invalid buffer/period len\n");
tdc              1143 drivers/dma/tegra20-apb-dma.c 	if (!tdc->config_init) {
tdc              1144 drivers/dma/tegra20-apb-dma.c 		dev_err(tdc2dev(tdc), "DMA slave is not configured\n");
tdc              1154 drivers/dma/tegra20-apb-dma.c 	if (tdc->busy) {
tdc              1155 drivers/dma/tegra20-apb-dma.c 		dev_err(tdc2dev(tdc), "Request not allowed when DMA running\n");
tdc              1164 drivers/dma/tegra20-apb-dma.c 		dev_err(tdc2dev(tdc), "buf_len is not multiple of period_len\n");
tdc              1170 drivers/dma/tegra20-apb-dma.c 			(len > tdc->tdma->chip_data->max_dma_count)) {
tdc              1171 drivers/dma/tegra20-apb-dma.c 		dev_err(tdc2dev(tdc), "Req len/mem address is not correct\n");
tdc              1175 drivers/dma/tegra20-apb-dma.c 	if (get_transfer_param(tdc, direction, &apb_ptr, &apb_seq, &csr,
tdc              1184 drivers/dma/tegra20-apb-dma.c 	if (tdc->slave_id != TEGRA_APBDMA_SLAVE_ID_INVALID) {
tdc              1186 drivers/dma/tegra20-apb-dma.c 		csr |= tdc->slave_id << TEGRA_APBDMA_CSR_REQ_SEL_SHIFT;
tdc              1198 drivers/dma/tegra20-apb-dma.c 	dma_desc = tegra_dma_desc_get(tdc);
tdc              1200 drivers/dma/tegra20-apb-dma.c 		dev_err(tdc2dev(tdc), "not enough descriptors available\n");
tdc              1214 drivers/dma/tegra20-apb-dma.c 		sg_req = tegra_dma_sg_req_get(tdc);
tdc              1216 drivers/dma/tegra20-apb-dma.c 			dev_err(tdc2dev(tdc), "DMA sg-req not available\n");
tdc              1217 drivers/dma/tegra20-apb-dma.c 			tegra_dma_desc_put(tdc, dma_desc);
tdc              1221 drivers/dma/tegra20-apb-dma.c 		ahb_seq |= get_burst_size(tdc, burst_size, slave_bw, len);
tdc              1225 drivers/dma/tegra20-apb-dma.c 		tegra_dma_prep_wcount(tdc, &sg_req->ch_regs, len);
tdc              1245 drivers/dma/tegra20-apb-dma.c 	if (!tdc->isr_handler) {
tdc              1246 drivers/dma/tegra20-apb-dma.c 		tdc->isr_handler = handle_cont_sngl_cycle_dma_done;
tdc              1247 drivers/dma/tegra20-apb-dma.c 		tdc->cyclic = true;
tdc              1249 drivers/dma/tegra20-apb-dma.c 		if (!tdc->cyclic) {
tdc              1250 drivers/dma/tegra20-apb-dma.c 			dev_err(tdc2dev(tdc), "DMA configuration conflict\n");
tdc              1251 drivers/dma/tegra20-apb-dma.c 			tegra_dma_desc_put(tdc, dma_desc);
tdc              1261 drivers/dma/tegra20-apb-dma.c 	struct tegra_dma_channel *tdc = to_tegra_dma_chan(dc);
tdc              1262 drivers/dma/tegra20-apb-dma.c 	struct tegra_dma *tdma = tdc->tdma;
tdc              1265 drivers/dma/tegra20-apb-dma.c 	dma_cookie_init(&tdc->dma_chan);
tdc              1266 drivers/dma/tegra20-apb-dma.c 	tdc->config_init = false;
tdc              1277 drivers/dma/tegra20-apb-dma.c 	struct tegra_dma_channel *tdc = to_tegra_dma_chan(dc);
tdc              1278 drivers/dma/tegra20-apb-dma.c 	struct tegra_dma *tdma = tdc->tdma;
tdc              1288 drivers/dma/tegra20-apb-dma.c 	dev_dbg(tdc2dev(tdc), "Freeing channel %d\n", tdc->id);
tdc              1290 drivers/dma/tegra20-apb-dma.c 	if (tdc->busy)
tdc              1293 drivers/dma/tegra20-apb-dma.c 	spin_lock_irqsave(&tdc->lock, flags);
tdc              1294 drivers/dma/tegra20-apb-dma.c 	list_splice_init(&tdc->pending_sg_req, &sg_req_list);
tdc              1295 drivers/dma/tegra20-apb-dma.c 	list_splice_init(&tdc->free_sg_req, &sg_req_list);
tdc              1296 drivers/dma/tegra20-apb-dma.c 	list_splice_init(&tdc->free_dma_desc, &dma_desc_list);
tdc              1297 drivers/dma/tegra20-apb-dma.c 	INIT_LIST_HEAD(&tdc->cb_desc);
tdc              1298 drivers/dma/tegra20-apb-dma.c 	tdc->config_init = false;
tdc              1299 drivers/dma/tegra20-apb-dma.c 	tdc->isr_handler = NULL;
tdc              1300 drivers/dma/tegra20-apb-dma.c 	spin_unlock_irqrestore(&tdc->lock, flags);
tdc              1316 drivers/dma/tegra20-apb-dma.c 	tdc->slave_id = TEGRA_APBDMA_SLAVE_ID_INVALID;
tdc              1324 drivers/dma/tegra20-apb-dma.c 	struct tegra_dma_channel *tdc;
tdc              1335 drivers/dma/tegra20-apb-dma.c 	tdc = to_tegra_dma_chan(chan);
tdc              1336 drivers/dma/tegra20-apb-dma.c 	tdc->slave_id = dma_spec->args[0];
tdc              1445 drivers/dma/tegra20-apb-dma.c 		struct tegra_dma_channel *tdc = &tdma->channels[i];
tdc              1447 drivers/dma/tegra20-apb-dma.c 		tdc->chan_addr = tdma->base_addr +
tdc              1457 drivers/dma/tegra20-apb-dma.c 		tdc->irq = res->start;
tdc              1458 drivers/dma/tegra20-apb-dma.c 		snprintf(tdc->name, sizeof(tdc->name), "apbdma.%d", i);
tdc              1459 drivers/dma/tegra20-apb-dma.c 		ret = request_irq(tdc->irq, tegra_dma_isr, 0, tdc->name, tdc);
tdc              1467 drivers/dma/tegra20-apb-dma.c 		tdc->dma_chan.device = &tdma->dma_dev;
tdc              1468 drivers/dma/tegra20-apb-dma.c 		dma_cookie_init(&tdc->dma_chan);
tdc              1469 drivers/dma/tegra20-apb-dma.c 		list_add_tail(&tdc->dma_chan.device_node,
tdc              1471 drivers/dma/tegra20-apb-dma.c 		tdc->tdma = tdma;
tdc              1472 drivers/dma/tegra20-apb-dma.c 		tdc->id = i;
tdc              1473 drivers/dma/tegra20-apb-dma.c 		tdc->slave_id = TEGRA_APBDMA_SLAVE_ID_INVALID;
tdc              1475 drivers/dma/tegra20-apb-dma.c 		tasklet_init(&tdc->tasklet, tegra_dma_tasklet,
tdc              1476 drivers/dma/tegra20-apb-dma.c 				(unsigned long)tdc);
tdc              1477 drivers/dma/tegra20-apb-dma.c 		spin_lock_init(&tdc->lock);
tdc              1479 drivers/dma/tegra20-apb-dma.c 		INIT_LIST_HEAD(&tdc->pending_sg_req);
tdc              1480 drivers/dma/tegra20-apb-dma.c 		INIT_LIST_HEAD(&tdc->free_sg_req);
tdc              1481 drivers/dma/tegra20-apb-dma.c 		INIT_LIST_HEAD(&tdc->free_dma_desc);
tdc              1482 drivers/dma/tegra20-apb-dma.c 		INIT_LIST_HEAD(&tdc->cb_desc);
tdc              1535 drivers/dma/tegra20-apb-dma.c 		struct tegra_dma_channel *tdc = &tdma->channels[i];
tdc              1537 drivers/dma/tegra20-apb-dma.c 		free_irq(tdc->irq, tdc);
tdc              1538 drivers/dma/tegra20-apb-dma.c 		tasklet_kill(&tdc->tasklet);
tdc              1551 drivers/dma/tegra20-apb-dma.c 	struct tegra_dma_channel *tdc;
tdc              1556 drivers/dma/tegra20-apb-dma.c 		tdc = &tdma->channels[i];
tdc              1557 drivers/dma/tegra20-apb-dma.c 		free_irq(tdc->irq, tdc);
tdc              1558 drivers/dma/tegra20-apb-dma.c 		tasklet_kill(&tdc->tasklet);
tdc              1575 drivers/dma/tegra20-apb-dma.c 		struct tegra_dma_channel *tdc = &tdma->channels[i];
tdc              1576 drivers/dma/tegra20-apb-dma.c 		struct tegra_dma_channel_regs *ch_reg = &tdc->channel_reg;
tdc              1579 drivers/dma/tegra20-apb-dma.c 		if (!tdc->config_init)
tdc              1582 drivers/dma/tegra20-apb-dma.c 		ch_reg->csr = tdc_read(tdc, TEGRA_APBDMA_CHAN_CSR);
tdc              1583 drivers/dma/tegra20-apb-dma.c 		ch_reg->ahb_ptr = tdc_read(tdc, TEGRA_APBDMA_CHAN_AHBPTR);
tdc              1584 drivers/dma/tegra20-apb-dma.c 		ch_reg->apb_ptr = tdc_read(tdc, TEGRA_APBDMA_CHAN_APBPTR);
tdc              1585 drivers/dma/tegra20-apb-dma.c 		ch_reg->ahb_seq = tdc_read(tdc, TEGRA_APBDMA_CHAN_AHBSEQ);
tdc              1586 drivers/dma/tegra20-apb-dma.c 		ch_reg->apb_seq = tdc_read(tdc, TEGRA_APBDMA_CHAN_APBSEQ);
tdc              1588 drivers/dma/tegra20-apb-dma.c 			ch_reg->wcount = tdc_read(tdc,
tdc              1613 drivers/dma/tegra20-apb-dma.c 		struct tegra_dma_channel *tdc = &tdma->channels[i];
tdc              1614 drivers/dma/tegra20-apb-dma.c 		struct tegra_dma_channel_regs *ch_reg = &tdc->channel_reg;
tdc              1617 drivers/dma/tegra20-apb-dma.c 		if (!tdc->config_init)
tdc              1621 drivers/dma/tegra20-apb-dma.c 			tdc_write(tdc, TEGRA_APBDMA_CHAN_WCOUNT,
tdc              1623 drivers/dma/tegra20-apb-dma.c 		tdc_write(tdc, TEGRA_APBDMA_CHAN_APBSEQ, ch_reg->apb_seq);
tdc              1624 drivers/dma/tegra20-apb-dma.c 		tdc_write(tdc, TEGRA_APBDMA_CHAN_APBPTR, ch_reg->apb_ptr);
tdc              1625 drivers/dma/tegra20-apb-dma.c 		tdc_write(tdc, TEGRA_APBDMA_CHAN_AHBSEQ, ch_reg->ahb_seq);
tdc              1626 drivers/dma/tegra20-apb-dma.c 		tdc_write(tdc, TEGRA_APBDMA_CHAN_AHBPTR, ch_reg->ahb_ptr);
tdc              1627 drivers/dma/tegra20-apb-dma.c 		tdc_write(tdc, TEGRA_APBDMA_CHAN_CSR,
tdc               180 drivers/dma/tegra210-adma.c static inline void tdma_ch_write(struct tegra_adma_chan *tdc, u32 reg, u32 val)
tdc               182 drivers/dma/tegra210-adma.c 	writel(val, tdc->chan_addr + reg);
tdc               185 drivers/dma/tegra210-adma.c static inline u32 tdma_ch_read(struct tegra_adma_chan *tdc, u32 reg)
tdc               187 drivers/dma/tegra210-adma.c 	return readl(tdc->chan_addr + reg);
tdc               201 drivers/dma/tegra210-adma.c static inline struct device *tdc2dev(struct tegra_adma_chan *tdc)
tdc               203 drivers/dma/tegra210-adma.c 	return tdc->tdma->dev;
tdc               214 drivers/dma/tegra210-adma.c 	struct tegra_adma_chan *tdc = to_tegra_adma_chan(dc);
tdc               216 drivers/dma/tegra210-adma.c 	memcpy(&tdc->sconfig, sconfig, sizeof(*sconfig));
tdc               247 drivers/dma/tegra210-adma.c static int tegra_adma_request_alloc(struct tegra_adma_chan *tdc,
tdc               250 drivers/dma/tegra210-adma.c 	struct tegra_adma *tdma = tdc->tdma;
tdc               251 drivers/dma/tegra210-adma.c 	unsigned int sreq_index = tdc->sreq_index;
tdc               253 drivers/dma/tegra210-adma.c 	if (tdc->sreq_reserved)
tdc               254 drivers/dma/tegra210-adma.c 		return tdc->sreq_dir == direction ? 0 : -EINVAL;
tdc               278 drivers/dma/tegra210-adma.c 			 dma_chan_name(&tdc->vc.chan));
tdc               282 drivers/dma/tegra210-adma.c 	tdc->sreq_dir = direction;
tdc               283 drivers/dma/tegra210-adma.c 	tdc->sreq_reserved = true;
tdc               288 drivers/dma/tegra210-adma.c static void tegra_adma_request_free(struct tegra_adma_chan *tdc)
tdc               290 drivers/dma/tegra210-adma.c 	struct tegra_adma *tdma = tdc->tdma;
tdc               292 drivers/dma/tegra210-adma.c 	if (!tdc->sreq_reserved)
tdc               295 drivers/dma/tegra210-adma.c 	switch (tdc->sreq_dir) {
tdc               297 drivers/dma/tegra210-adma.c 		clear_bit(tdc->sreq_index, &tdma->tx_requests_reserved);
tdc               301 drivers/dma/tegra210-adma.c 		clear_bit(tdc->sreq_index, &tdma->rx_requests_reserved);
tdc               306 drivers/dma/tegra210-adma.c 			 dma_chan_name(&tdc->vc.chan));
tdc               310 drivers/dma/tegra210-adma.c 	tdc->sreq_reserved = false;
tdc               313 drivers/dma/tegra210-adma.c static u32 tegra_adma_irq_status(struct tegra_adma_chan *tdc)
tdc               315 drivers/dma/tegra210-adma.c 	u32 status = tdma_ch_read(tdc, ADMA_CH_INT_STATUS);
tdc               320 drivers/dma/tegra210-adma.c static u32 tegra_adma_irq_clear(struct tegra_adma_chan *tdc)
tdc               322 drivers/dma/tegra210-adma.c 	u32 status = tegra_adma_irq_status(tdc);
tdc               325 drivers/dma/tegra210-adma.c 		tdma_ch_write(tdc, ADMA_CH_INT_CLEAR, status);
tdc               330 drivers/dma/tegra210-adma.c static void tegra_adma_stop(struct tegra_adma_chan *tdc)
tdc               335 drivers/dma/tegra210-adma.c 	tdma_ch_write(tdc, ADMA_CH_CMD, 0);
tdc               338 drivers/dma/tegra210-adma.c 	tegra_adma_irq_clear(tdc);
tdc               340 drivers/dma/tegra210-adma.c 	if (readx_poll_timeout_atomic(readl, tdc->chan_addr + ADMA_CH_STATUS,
tdc               343 drivers/dma/tegra210-adma.c 		dev_err(tdc2dev(tdc), "unable to stop DMA channel\n");
tdc               347 drivers/dma/tegra210-adma.c 	kfree(tdc->desc);
tdc               348 drivers/dma/tegra210-adma.c 	tdc->desc = NULL;
tdc               351 drivers/dma/tegra210-adma.c static void tegra_adma_start(struct tegra_adma_chan *tdc)
tdc               353 drivers/dma/tegra210-adma.c 	struct virt_dma_desc *vd = vchan_next_desc(&tdc->vc);
tdc               365 drivers/dma/tegra210-adma.c 		dev_warn(tdc2dev(tdc), "unable to start DMA, no descriptor\n");
tdc               371 drivers/dma/tegra210-adma.c 	tdc->tx_buf_pos = 0;
tdc               372 drivers/dma/tegra210-adma.c 	tdc->tx_buf_count = 0;
tdc               373 drivers/dma/tegra210-adma.c 	tdma_ch_write(tdc, ADMA_CH_TC, ch_regs->tc);
tdc               374 drivers/dma/tegra210-adma.c 	tdma_ch_write(tdc, ADMA_CH_CTRL, ch_regs->ctrl);
tdc               375 drivers/dma/tegra210-adma.c 	tdma_ch_write(tdc, ADMA_CH_LOWER_SRC_ADDR, ch_regs->src_addr);
tdc               376 drivers/dma/tegra210-adma.c 	tdma_ch_write(tdc, ADMA_CH_LOWER_TRG_ADDR, ch_regs->trg_addr);
tdc               377 drivers/dma/tegra210-adma.c 	tdma_ch_write(tdc, ADMA_CH_FIFO_CTRL, ch_regs->fifo_ctrl);
tdc               378 drivers/dma/tegra210-adma.c 	tdma_ch_write(tdc, ADMA_CH_CONFIG, ch_regs->config);
tdc               381 drivers/dma/tegra210-adma.c 	tdma_ch_write(tdc, ADMA_CH_CMD, 1);
tdc               383 drivers/dma/tegra210-adma.c 	tdc->desc = desc;
tdc               386 drivers/dma/tegra210-adma.c static unsigned int tegra_adma_get_residue(struct tegra_adma_chan *tdc)
tdc               388 drivers/dma/tegra210-adma.c 	struct tegra_adma_desc *desc = tdc->desc;
tdc               390 drivers/dma/tegra210-adma.c 	unsigned int pos = tdma_ch_read(tdc, ADMA_CH_XFER_STATUS);
tdc               396 drivers/dma/tegra210-adma.c 	if (pos < tdc->tx_buf_pos)
tdc               397 drivers/dma/tegra210-adma.c 		tdc->tx_buf_count += pos + (max - tdc->tx_buf_pos);
tdc               399 drivers/dma/tegra210-adma.c 		tdc->tx_buf_count += pos - tdc->tx_buf_pos;
tdc               401 drivers/dma/tegra210-adma.c 	periods_remaining = tdc->tx_buf_count % desc->num_periods;
tdc               402 drivers/dma/tegra210-adma.c 	tdc->tx_buf_pos = pos;
tdc               409 drivers/dma/tegra210-adma.c 	struct tegra_adma_chan *tdc = dev_id;
tdc               413 drivers/dma/tegra210-adma.c 	spin_lock_irqsave(&tdc->vc.lock, flags);
tdc               415 drivers/dma/tegra210-adma.c 	status = tegra_adma_irq_clear(tdc);
tdc               416 drivers/dma/tegra210-adma.c 	if (status == 0 || !tdc->desc) {
tdc               417 drivers/dma/tegra210-adma.c 		spin_unlock_irqrestore(&tdc->vc.lock, flags);
tdc               421 drivers/dma/tegra210-adma.c 	vchan_cyclic_callback(&tdc->desc->vd);
tdc               423 drivers/dma/tegra210-adma.c 	spin_unlock_irqrestore(&tdc->vc.lock, flags);
tdc               430 drivers/dma/tegra210-adma.c 	struct tegra_adma_chan *tdc = to_tegra_adma_chan(dc);
tdc               433 drivers/dma/tegra210-adma.c 	spin_lock_irqsave(&tdc->vc.lock, flags);
tdc               435 drivers/dma/tegra210-adma.c 	if (vchan_issue_pending(&tdc->vc)) {
tdc               436 drivers/dma/tegra210-adma.c 		if (!tdc->desc)
tdc               437 drivers/dma/tegra210-adma.c 			tegra_adma_start(tdc);
tdc               440 drivers/dma/tegra210-adma.c 	spin_unlock_irqrestore(&tdc->vc.lock, flags);
tdc               443 drivers/dma/tegra210-adma.c static bool tegra_adma_is_paused(struct tegra_adma_chan *tdc)
tdc               447 drivers/dma/tegra210-adma.c 	csts = tdma_ch_read(tdc, ADMA_CH_STATUS);
tdc               455 drivers/dma/tegra210-adma.c 	struct tegra_adma_chan *tdc = to_tegra_adma_chan(dc);
tdc               456 drivers/dma/tegra210-adma.c 	struct tegra_adma_desc *desc = tdc->desc;
tdc               460 drivers/dma/tegra210-adma.c 	ch_regs->ctrl = tdma_ch_read(tdc, ADMA_CH_CTRL);
tdc               462 drivers/dma/tegra210-adma.c 	tdma_ch_write(tdc, ADMA_CH_CTRL, ch_regs->ctrl);
tdc               464 drivers/dma/tegra210-adma.c 	while (dcnt-- && !tegra_adma_is_paused(tdc))
tdc               468 drivers/dma/tegra210-adma.c 		dev_err(tdc2dev(tdc), "unable to pause DMA channel\n");
tdc               477 drivers/dma/tegra210-adma.c 	struct tegra_adma_chan *tdc = to_tegra_adma_chan(dc);
tdc               478 drivers/dma/tegra210-adma.c 	struct tegra_adma_desc *desc = tdc->desc;
tdc               481 drivers/dma/tegra210-adma.c 	ch_regs->ctrl = tdma_ch_read(tdc, ADMA_CH_CTRL);
tdc               483 drivers/dma/tegra210-adma.c 	tdma_ch_write(tdc, ADMA_CH_CTRL, ch_regs->ctrl);
tdc               490 drivers/dma/tegra210-adma.c 	struct tegra_adma_chan *tdc = to_tegra_adma_chan(dc);
tdc               494 drivers/dma/tegra210-adma.c 	spin_lock_irqsave(&tdc->vc.lock, flags);
tdc               496 drivers/dma/tegra210-adma.c 	if (tdc->desc)
tdc               497 drivers/dma/tegra210-adma.c 		tegra_adma_stop(tdc);
tdc               499 drivers/dma/tegra210-adma.c 	tegra_adma_request_free(tdc);
tdc               500 drivers/dma/tegra210-adma.c 	vchan_get_all_descriptors(&tdc->vc, &head);
tdc               501 drivers/dma/tegra210-adma.c 	spin_unlock_irqrestore(&tdc->vc.lock, flags);
tdc               502 drivers/dma/tegra210-adma.c 	vchan_dma_desc_free_list(&tdc->vc, &head);
tdc               511 drivers/dma/tegra210-adma.c 	struct tegra_adma_chan *tdc = to_tegra_adma_chan(dc);
tdc               522 drivers/dma/tegra210-adma.c 	spin_lock_irqsave(&tdc->vc.lock, flags);
tdc               524 drivers/dma/tegra210-adma.c 	vd = vchan_find_desc(&tdc->vc, cookie);
tdc               528 drivers/dma/tegra210-adma.c 	} else if (tdc->desc && tdc->desc->vd.tx.cookie == cookie) {
tdc               529 drivers/dma/tegra210-adma.c 		residual = tegra_adma_get_residue(tdc);
tdc               534 drivers/dma/tegra210-adma.c 	spin_unlock_irqrestore(&tdc->vc.lock, flags);
tdc               557 drivers/dma/tegra210-adma.c static int tegra_adma_set_xfer_params(struct tegra_adma_chan *tdc,
tdc               563 drivers/dma/tegra210-adma.c 	const struct tegra_adma_chip_data *cdata = tdc->tdma->cdata;
tdc               572 drivers/dma/tegra210-adma.c 		burst_size = tdc->sconfig.dst_maxburst;
tdc               574 drivers/dma/tegra210-adma.c 		ch_regs->ctrl = ADMA_CH_REG_FIELD_VAL(tdc->sreq_index,
tdc               582 drivers/dma/tegra210-adma.c 		burst_size = tdc->sconfig.src_maxburst;
tdc               584 drivers/dma/tegra210-adma.c 		ch_regs->ctrl = ADMA_CH_REG_FIELD_VAL(tdc->sreq_index,
tdc               591 drivers/dma/tegra210-adma.c 		dev_err(tdc2dev(tdc), "DMA direction is not supported\n");
tdc               605 drivers/dma/tegra210-adma.c 	return tegra_adma_request_alloc(tdc, direction);
tdc               613 drivers/dma/tegra210-adma.c 	struct tegra_adma_chan *tdc = to_tegra_adma_chan(dc);
tdc               617 drivers/dma/tegra210-adma.c 		dev_err(tdc2dev(tdc), "invalid buffer/period len\n");
tdc               622 drivers/dma/tegra210-adma.c 		dev_err(tdc2dev(tdc), "buf_len not a multiple of period_len\n");
tdc               627 drivers/dma/tegra210-adma.c 		dev_err(tdc2dev(tdc), "invalid buffer alignment\n");
tdc               639 drivers/dma/tegra210-adma.c 	if (tegra_adma_set_xfer_params(tdc, desc, buf_addr, direction)) {
tdc               644 drivers/dma/tegra210-adma.c 	return vchan_tx_prep(&tdc->vc, &desc->vd, flags);
tdc               649 drivers/dma/tegra210-adma.c 	struct tegra_adma_chan *tdc = to_tegra_adma_chan(dc);
tdc               652 drivers/dma/tegra210-adma.c 	ret = request_irq(tdc->irq, tegra_adma_isr, 0, dma_chan_name(dc), tdc);
tdc               654 drivers/dma/tegra210-adma.c 		dev_err(tdc2dev(tdc), "failed to get interrupt for %s\n",
tdc               659 drivers/dma/tegra210-adma.c 	ret = pm_runtime_get_sync(tdc2dev(tdc));
tdc               661 drivers/dma/tegra210-adma.c 		free_irq(tdc->irq, tdc);
tdc               665 drivers/dma/tegra210-adma.c 	dma_cookie_init(&tdc->vc.chan);
tdc               672 drivers/dma/tegra210-adma.c 	struct tegra_adma_chan *tdc = to_tegra_adma_chan(dc);
tdc               675 drivers/dma/tegra210-adma.c 	vchan_free_chan_resources(&tdc->vc);
tdc               676 drivers/dma/tegra210-adma.c 	tasklet_kill(&tdc->vc.task);
tdc               677 drivers/dma/tegra210-adma.c 	free_irq(tdc->irq, tdc);
tdc               678 drivers/dma/tegra210-adma.c 	pm_runtime_put(tdc2dev(tdc));
tdc               680 drivers/dma/tegra210-adma.c 	tdc->sreq_index = 0;
tdc               681 drivers/dma/tegra210-adma.c 	tdc->sreq_dir = DMA_TRANS_NONE;
tdc               688 drivers/dma/tegra210-adma.c 	struct tegra_adma_chan *tdc;
tdc               706 drivers/dma/tegra210-adma.c 	tdc = to_tegra_adma_chan(chan);
tdc               707 drivers/dma/tegra210-adma.c 	tdc->sreq_index = sreq_index;
tdc               716 drivers/dma/tegra210-adma.c 	struct tegra_adma_chan *tdc;
tdc               724 drivers/dma/tegra210-adma.c 		tdc = &tdma->channels[i];
tdc               725 drivers/dma/tegra210-adma.c 		ch_reg = &tdc->ch_regs;
tdc               726 drivers/dma/tegra210-adma.c 		ch_reg->cmd = tdma_ch_read(tdc, ADMA_CH_CMD);
tdc               730 drivers/dma/tegra210-adma.c 		ch_reg->tc = tdma_ch_read(tdc, ADMA_CH_TC);
tdc               731 drivers/dma/tegra210-adma.c 		ch_reg->src_addr = tdma_ch_read(tdc, ADMA_CH_LOWER_SRC_ADDR);
tdc               732 drivers/dma/tegra210-adma.c 		ch_reg->trg_addr = tdma_ch_read(tdc, ADMA_CH_LOWER_TRG_ADDR);
tdc               733 drivers/dma/tegra210-adma.c 		ch_reg->ctrl = tdma_ch_read(tdc, ADMA_CH_CTRL);
tdc               734 drivers/dma/tegra210-adma.c 		ch_reg->fifo_ctrl = tdma_ch_read(tdc, ADMA_CH_FIFO_CTRL);
tdc               735 drivers/dma/tegra210-adma.c 		ch_reg->config = tdma_ch_read(tdc, ADMA_CH_CONFIG);
tdc               748 drivers/dma/tegra210-adma.c 	struct tegra_adma_chan *tdc;
tdc               762 drivers/dma/tegra210-adma.c 		tdc = &tdma->channels[i];
tdc               763 drivers/dma/tegra210-adma.c 		ch_reg = &tdc->ch_regs;
tdc               767 drivers/dma/tegra210-adma.c 		tdma_ch_write(tdc, ADMA_CH_TC, ch_reg->tc);
tdc               768 drivers/dma/tegra210-adma.c 		tdma_ch_write(tdc, ADMA_CH_LOWER_SRC_ADDR, ch_reg->src_addr);
tdc               769 drivers/dma/tegra210-adma.c 		tdma_ch_write(tdc, ADMA_CH_LOWER_TRG_ADDR, ch_reg->trg_addr);
tdc               770 drivers/dma/tegra210-adma.c 		tdma_ch_write(tdc, ADMA_CH_CTRL, ch_reg->ctrl);
tdc               771 drivers/dma/tegra210-adma.c 		tdma_ch_write(tdc, ADMA_CH_FIFO_CTRL, ch_reg->fifo_ctrl);
tdc               772 drivers/dma/tegra210-adma.c 		tdma_ch_write(tdc, ADMA_CH_CONFIG, ch_reg->config);
tdc               773 drivers/dma/tegra210-adma.c 		tdma_ch_write(tdc, ADMA_CH_CMD, ch_reg->cmd);
tdc               853 drivers/dma/tegra210-adma.c 		struct tegra_adma_chan *tdc = &tdma->channels[i];
tdc               855 drivers/dma/tegra210-adma.c 		tdc->chan_addr = tdma->base_addr + cdata->ch_base_offset
tdc               858 drivers/dma/tegra210-adma.c 		tdc->irq = of_irq_get(pdev->dev.of_node, i);
tdc               859 drivers/dma/tegra210-adma.c 		if (tdc->irq <= 0) {
tdc               860 drivers/dma/tegra210-adma.c 			ret = tdc->irq ?: -ENXIO;
tdc               864 drivers/dma/tegra210-adma.c 		vchan_init(&tdc->vc, &tdma->dma_dev);
tdc               865 drivers/dma/tegra210-adma.c 		tdc->vc.desc_free = tegra_adma_desc_free;
tdc               866 drivers/dma/tegra210-adma.c 		tdc->tdma = tdma;
tdc               691 drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.c 			adev->pm.dpm.dyn_state.cac_tdp_table->tdc = le16_to_cpu(pt->usTDC);
tdc               199 drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.h 	u16 tdc;
tdc               338 drivers/gpu/drm/radeon/ci_dpm.c 	tdc_limit = rdev->pm.dpm.dyn_state.cac_tdp_table->tdc * 256;
tdc              1283 drivers/gpu/drm/radeon/r600_dpm.c 			rdev->pm.dpm.dyn_state.cac_tdp_table->tdc = le16_to_cpu(pt->usTDC);
tdc              1461 drivers/gpu/drm/radeon/radeon.h 	u16 tdc;
tdc               105 drivers/infiniband/hw/qib/qib_diag.c 	struct qib_diag_client *tdc, *rdc;
tdc               112 drivers/infiniband/hw/qib/qib_diag.c 		tdc = dc->dd->diag_client;
tdc               113 drivers/infiniband/hw/qib/qib_diag.c 		while (tdc) {
tdc               114 drivers/infiniband/hw/qib/qib_diag.c 			if (dc == tdc->next) {
tdc               115 drivers/infiniband/hw/qib/qib_diag.c 				tdc->next = dc->next;
tdc               119 drivers/infiniband/hw/qib/qib_diag.c 			tdc = tdc->next;
tdc              2498 drivers/md/bcache/super.c 	struct cached_dev *dc, *tdc;
tdc              2503 drivers/md/bcache/super.c 	list_for_each_entry_safe(dc, tdc, &uncached_devices, list) {
tdc              2548 drivers/md/bcache/super.c 		struct cached_dev *dc, *tdc;
tdc              2588 drivers/md/bcache/super.c 		list_for_each_entry_safe(dc, tdc, &uncached_devices, list)
tdc               660 drivers/net/can/ifi_canfd/ifi_canfd.c 	u16 brp, sjw, tseg1, tseg2, tdc;
tdc               685 drivers/net/can/ifi_canfd/ifi_canfd.c 	tdc = dbt->brp * (dbt->prop_seg + dbt->phase_seg1);
tdc               686 drivers/net/can/ifi_canfd/ifi_canfd.c 	tdc &= IFI_CANFD_TDELAY_MASK;
tdc               687 drivers/net/can/ifi_canfd/ifi_canfd.c 	writel(IFI_CANFD_TDELAY_EN | tdc, priv->base + IFI_CANFD_TDELAY);
tdc              1237 drivers/platform/x86/intel_ips.c 	int tdp, tdc;
tdc              1242 drivers/platform/x86/intel_ips.c 	tdc = (int)((turbo_override & TURBO_TDC_MASK) >> TURBO_TDC_SHIFT);
tdc              1246 drivers/platform/x86/intel_ips.c 	tdc = tdc * 10 / 8;
tdc              1250 drivers/platform/x86/intel_ips.c 		   tdc / 10, tdc % 10);
tdc              1324 fs/f2fs/segment.c 		struct discard_cmd *tdc = NULL;
tdc              1351 fs/f2fs/segment.c 			tdc = prev_dc;
tdc              1364 fs/f2fs/segment.c 			if (tdc)
tdc              1365 fs/f2fs/segment.c 				__remove_discard_cmd(sbi, tdc);