hsuc               37 drivers/dma/hsu/hsu.c static inline void hsu_chan_disable(struct hsu_dma_chan *hsuc)
hsuc               39 drivers/dma/hsu/hsu.c 	hsu_chan_writel(hsuc, HSU_CH_CR, 0);
hsuc               42 drivers/dma/hsu/hsu.c static inline void hsu_chan_enable(struct hsu_dma_chan *hsuc)
hsuc               46 drivers/dma/hsu/hsu.c 	if (hsuc->direction == DMA_MEM_TO_DEV)
hsuc               48 drivers/dma/hsu/hsu.c 	else if (hsuc->direction == DMA_DEV_TO_MEM)
hsuc               51 drivers/dma/hsu/hsu.c 	hsu_chan_writel(hsuc, HSU_CH_CR, cr);
hsuc               54 drivers/dma/hsu/hsu.c static void hsu_dma_chan_start(struct hsu_dma_chan *hsuc)
hsuc               56 drivers/dma/hsu/hsu.c 	struct dma_slave_config *config = &hsuc->config;
hsuc               57 drivers/dma/hsu/hsu.c 	struct hsu_dma_desc *desc = hsuc->desc;
hsuc               62 drivers/dma/hsu/hsu.c 	if (hsuc->direction == DMA_MEM_TO_DEV) {
hsuc               65 drivers/dma/hsu/hsu.c 	} else if (hsuc->direction == DMA_DEV_TO_MEM) {
hsuc               70 drivers/dma/hsu/hsu.c 	hsu_chan_disable(hsuc);
hsuc               72 drivers/dma/hsu/hsu.c 	hsu_chan_writel(hsuc, HSU_CH_DCR, 0);
hsuc               73 drivers/dma/hsu/hsu.c 	hsu_chan_writel(hsuc, HSU_CH_BSR, bsr);
hsuc               74 drivers/dma/hsu/hsu.c 	hsu_chan_writel(hsuc, HSU_CH_MTSR, mtsr);
hsuc               79 drivers/dma/hsu/hsu.c 		hsu_chan_writel(hsuc, HSU_CH_DxSAR(i), desc->sg[i].addr);
hsuc               80 drivers/dma/hsu/hsu.c 		hsu_chan_writel(hsuc, HSU_CH_DxTSR(i), desc->sg[i].len);
hsuc               92 drivers/dma/hsu/hsu.c 	hsu_chan_writel(hsuc, HSU_CH_DCR, dcr);
hsuc               94 drivers/dma/hsu/hsu.c 	hsu_chan_enable(hsuc);
hsuc               97 drivers/dma/hsu/hsu.c static void hsu_dma_stop_channel(struct hsu_dma_chan *hsuc)
hsuc               99 drivers/dma/hsu/hsu.c 	hsu_chan_disable(hsuc);
hsuc              100 drivers/dma/hsu/hsu.c 	hsu_chan_writel(hsuc, HSU_CH_DCR, 0);
hsuc              103 drivers/dma/hsu/hsu.c static void hsu_dma_start_channel(struct hsu_dma_chan *hsuc)
hsuc              105 drivers/dma/hsu/hsu.c 	hsu_dma_chan_start(hsuc);
hsuc              108 drivers/dma/hsu/hsu.c static void hsu_dma_start_transfer(struct hsu_dma_chan *hsuc)
hsuc              113 drivers/dma/hsu/hsu.c 	vdesc = vchan_next_desc(&hsuc->vchan);
hsuc              115 drivers/dma/hsu/hsu.c 		hsuc->desc = NULL;
hsuc              120 drivers/dma/hsu/hsu.c 	hsuc->desc = to_hsu_dma_desc(vdesc);
hsuc              123 drivers/dma/hsu/hsu.c 	hsu_dma_start_channel(hsuc);
hsuc              146 drivers/dma/hsu/hsu.c 	struct hsu_dma_chan *hsuc;
hsuc              154 drivers/dma/hsu/hsu.c 	hsuc = &chip->hsu->chan[nr];
hsuc              160 drivers/dma/hsu/hsu.c 	spin_lock_irqsave(&hsuc->vchan.lock, flags);
hsuc              161 drivers/dma/hsu/hsu.c 	sr = hsu_chan_readl(hsuc, HSU_CH_SR);
hsuc              162 drivers/dma/hsu/hsu.c 	spin_unlock_irqrestore(&hsuc->vchan.lock, flags);
hsuc              204 drivers/dma/hsu/hsu.c 	struct hsu_dma_chan *hsuc;
hsuc              212 drivers/dma/hsu/hsu.c 	hsuc = &chip->hsu->chan[nr];
hsuc              214 drivers/dma/hsu/hsu.c 	spin_lock_irqsave(&hsuc->vchan.lock, flags);
hsuc              215 drivers/dma/hsu/hsu.c 	desc = hsuc->desc;
hsuc              220 drivers/dma/hsu/hsu.c 			hsu_dma_start_channel(hsuc);
hsuc              224 drivers/dma/hsu/hsu.c 			hsu_dma_start_transfer(hsuc);
hsuc              227 drivers/dma/hsu/hsu.c 	spin_unlock_irqrestore(&hsuc->vchan.lock, flags);
hsuc              263 drivers/dma/hsu/hsu.c 	struct hsu_dma_chan *hsuc = to_hsu_dma_chan(chan);
hsuc              284 drivers/dma/hsu/hsu.c 	return vchan_tx_prep(&hsuc->vchan, &desc->vdesc, flags);
hsuc              289 drivers/dma/hsu/hsu.c 	struct hsu_dma_chan *hsuc = to_hsu_dma_chan(chan);
hsuc              292 drivers/dma/hsu/hsu.c 	spin_lock_irqsave(&hsuc->vchan.lock, flags);
hsuc              293 drivers/dma/hsu/hsu.c 	if (vchan_issue_pending(&hsuc->vchan) && !hsuc->desc)
hsuc              294 drivers/dma/hsu/hsu.c 		hsu_dma_start_transfer(hsuc);
hsuc              295 drivers/dma/hsu/hsu.c 	spin_unlock_irqrestore(&hsuc->vchan.lock, flags);
hsuc              298 drivers/dma/hsu/hsu.c static size_t hsu_dma_active_desc_size(struct hsu_dma_chan *hsuc)
hsuc              300 drivers/dma/hsu/hsu.c 	struct hsu_dma_desc *desc = hsuc->desc;
hsuc              309 drivers/dma/hsu/hsu.c 		bytes += hsu_chan_readl(hsuc, HSU_CH_DxTSR(i));
hsuc              318 drivers/dma/hsu/hsu.c 	struct hsu_dma_chan *hsuc = to_hsu_dma_chan(chan);
hsuc              328 drivers/dma/hsu/hsu.c 	spin_lock_irqsave(&hsuc->vchan.lock, flags);
hsuc              329 drivers/dma/hsu/hsu.c 	vdesc = vchan_find_desc(&hsuc->vchan, cookie);
hsuc              330 drivers/dma/hsu/hsu.c 	if (hsuc->desc && cookie == hsuc->desc->vdesc.tx.cookie) {
hsuc              331 drivers/dma/hsu/hsu.c 		bytes = hsu_dma_active_desc_size(hsuc);
hsuc              333 drivers/dma/hsu/hsu.c 		status = hsuc->desc->status;
hsuc              338 drivers/dma/hsu/hsu.c 	spin_unlock_irqrestore(&hsuc->vchan.lock, flags);
hsuc              346 drivers/dma/hsu/hsu.c 	struct hsu_dma_chan *hsuc = to_hsu_dma_chan(chan);
hsuc              348 drivers/dma/hsu/hsu.c 	memcpy(&hsuc->config, config, sizeof(hsuc->config));
hsuc              355 drivers/dma/hsu/hsu.c 	struct hsu_dma_chan *hsuc = to_hsu_dma_chan(chan);
hsuc              358 drivers/dma/hsu/hsu.c 	spin_lock_irqsave(&hsuc->vchan.lock, flags);
hsuc              359 drivers/dma/hsu/hsu.c 	if (hsuc->desc && hsuc->desc->status == DMA_IN_PROGRESS) {
hsuc              360 drivers/dma/hsu/hsu.c 		hsu_chan_disable(hsuc);
hsuc              361 drivers/dma/hsu/hsu.c 		hsuc->desc->status = DMA_PAUSED;
hsuc              363 drivers/dma/hsu/hsu.c 	spin_unlock_irqrestore(&hsuc->vchan.lock, flags);
hsuc              370 drivers/dma/hsu/hsu.c 	struct hsu_dma_chan *hsuc = to_hsu_dma_chan(chan);
hsuc              373 drivers/dma/hsu/hsu.c 	spin_lock_irqsave(&hsuc->vchan.lock, flags);
hsuc              374 drivers/dma/hsu/hsu.c 	if (hsuc->desc && hsuc->desc->status == DMA_PAUSED) {
hsuc              375 drivers/dma/hsu/hsu.c 		hsuc->desc->status = DMA_IN_PROGRESS;
hsuc              376 drivers/dma/hsu/hsu.c 		hsu_chan_enable(hsuc);
hsuc              378 drivers/dma/hsu/hsu.c 	spin_unlock_irqrestore(&hsuc->vchan.lock, flags);
hsuc              385 drivers/dma/hsu/hsu.c 	struct hsu_dma_chan *hsuc = to_hsu_dma_chan(chan);
hsuc              389 drivers/dma/hsu/hsu.c 	spin_lock_irqsave(&hsuc->vchan.lock, flags);
hsuc              391 drivers/dma/hsu/hsu.c 	hsu_dma_stop_channel(hsuc);
hsuc              392 drivers/dma/hsu/hsu.c 	if (hsuc->desc) {
hsuc              393 drivers/dma/hsu/hsu.c 		hsu_dma_desc_free(&hsuc->desc->vdesc);
hsuc              394 drivers/dma/hsu/hsu.c 		hsuc->desc = NULL;
hsuc              397 drivers/dma/hsu/hsu.c 	vchan_get_all_descriptors(&hsuc->vchan, &head);
hsuc              398 drivers/dma/hsu/hsu.c 	spin_unlock_irqrestore(&hsuc->vchan.lock, flags);
hsuc              399 drivers/dma/hsu/hsu.c 	vchan_dma_desc_free_list(&hsuc->vchan, &head);
hsuc              411 drivers/dma/hsu/hsu.c 	struct hsu_dma_chan *hsuc = to_hsu_dma_chan(chan);
hsuc              413 drivers/dma/hsu/hsu.c 	vchan_synchronize(&hsuc->vchan);
hsuc              439 drivers/dma/hsu/hsu.c 		struct hsu_dma_chan *hsuc = &hsu->chan[i];
hsuc              441 drivers/dma/hsu/hsu.c 		hsuc->vchan.desc_free = hsu_dma_desc_free;
hsuc              442 drivers/dma/hsu/hsu.c 		vchan_init(&hsuc->vchan, &hsu->dma);
hsuc              444 drivers/dma/hsu/hsu.c 		hsuc->direction = (i & 0x1) ? DMA_DEV_TO_MEM : DMA_MEM_TO_DEV;
hsuc              445 drivers/dma/hsu/hsu.c 		hsuc->reg = addr + i * HSU_DMA_CHAN_LENGTH;
hsuc              490 drivers/dma/hsu/hsu.c 		struct hsu_dma_chan *hsuc = &hsu->chan[i];
hsuc              492 drivers/dma/hsu/hsu.c 		tasklet_kill(&hsuc->vchan.task);
hsuc               99 drivers/dma/hsu/hsu.h static inline u32 hsu_chan_readl(struct hsu_dma_chan *hsuc, int offset)
hsuc              101 drivers/dma/hsu/hsu.h 	return readl(hsuc->reg + offset);
hsuc              104 drivers/dma/hsu/hsu.h static inline void hsu_chan_writel(struct hsu_dma_chan *hsuc, int offset,
hsuc              107 drivers/dma/hsu/hsu.h 	writel(value, hsuc->reg + offset);