aacirun           180 sound/arm/aaci.c aaci_chan_wait_ready(struct aaci_runtime *aacirun, unsigned long mask)
aacirun           187 sound/arm/aaci.c 		val = readl(aacirun->base + AACI_SR);
aacirun           209 sound/arm/aaci.c 		struct aaci_runtime *aacirun = &aaci->capture;
aacirun           213 sound/arm/aaci.c 		if (!aacirun->substream || !aacirun->start) {
aacirun           215 sound/arm/aaci.c 			writel(0, aacirun->base + AACI_IE);
aacirun           219 sound/arm/aaci.c 		spin_lock(&aacirun->lock);
aacirun           221 sound/arm/aaci.c 		ptr = aacirun->ptr;
aacirun           223 sound/arm/aaci.c 			unsigned int len = aacirun->fifo_bytes;
aacirun           226 sound/arm/aaci.c 			if (aacirun->bytes <= 0) {
aacirun           227 sound/arm/aaci.c 				aacirun->bytes += aacirun->period;
aacirun           230 sound/arm/aaci.c 			if (!(aacirun->cr & CR_EN))
aacirun           233 sound/arm/aaci.c 			val = readl(aacirun->base + AACI_SR);
aacirun           239 sound/arm/aaci.c 			aacirun->bytes -= len;
aacirun           247 sound/arm/aaci.c 					: "r" (aacirun->fifo)
aacirun           250 sound/arm/aaci.c 				if (ptr >= aacirun->end)
aacirun           251 sound/arm/aaci.c 					ptr = aacirun->start;
aacirun           255 sound/arm/aaci.c 		aacirun->ptr = ptr;
aacirun           257 sound/arm/aaci.c 		spin_unlock(&aacirun->lock);
aacirun           260 sound/arm/aaci.c 			snd_pcm_period_elapsed(aacirun->substream);
aacirun           269 sound/arm/aaci.c 		struct aaci_runtime *aacirun = &aaci->playback;
aacirun           273 sound/arm/aaci.c 		if (!aacirun->substream || !aacirun->start) {
aacirun           275 sound/arm/aaci.c 			writel(0, aacirun->base + AACI_IE);
aacirun           279 sound/arm/aaci.c 		spin_lock(&aacirun->lock);
aacirun           281 sound/arm/aaci.c 		ptr = aacirun->ptr;
aacirun           283 sound/arm/aaci.c 			unsigned int len = aacirun->fifo_bytes;
aacirun           286 sound/arm/aaci.c 			if (aacirun->bytes <= 0) {
aacirun           287 sound/arm/aaci.c 				aacirun->bytes += aacirun->period;
aacirun           290 sound/arm/aaci.c 			if (!(aacirun->cr & CR_EN))
aacirun           293 sound/arm/aaci.c 			val = readl(aacirun->base + AACI_SR);
aacirun           299 sound/arm/aaci.c 			aacirun->bytes -= len;
aacirun           307 sound/arm/aaci.c 					: "r" (aacirun->fifo)
aacirun           310 sound/arm/aaci.c 				if (ptr >= aacirun->end)
aacirun           311 sound/arm/aaci.c 					ptr = aacirun->start;
aacirun           315 sound/arm/aaci.c 		aacirun->ptr = ptr;
aacirun           317 sound/arm/aaci.c 		spin_unlock(&aacirun->lock);
aacirun           320 sound/arm/aaci.c 			snd_pcm_period_elapsed(aacirun->substream);
aacirun           403 sound/arm/aaci.c 	struct aaci_runtime *aacirun;
aacirun           407 sound/arm/aaci.c 		aacirun = &aaci->playback;
aacirun           409 sound/arm/aaci.c 		aacirun = &aaci->capture;
aacirun           412 sound/arm/aaci.c 	aacirun->substream = substream;
aacirun           413 sound/arm/aaci.c 	runtime->private_data = aacirun;
aacirun           415 sound/arm/aaci.c 	runtime->hw.rates = aacirun->pcm->rates;
aacirun           429 sound/arm/aaci.c 		if (aacirun->pcm->r[1].slots)
aacirun           459 sound/arm/aaci.c 	struct aaci_runtime *aacirun = substream->runtime->private_data;
aacirun           461 sound/arm/aaci.c 	WARN_ON(aacirun->cr & CR_EN);
aacirun           463 sound/arm/aaci.c 	aacirun->substream = NULL;
aacirun           475 sound/arm/aaci.c 	struct aaci_runtime *aacirun = substream->runtime->private_data;
aacirun           480 sound/arm/aaci.c 	WARN_ON(aacirun->cr & CR_EN);
aacirun           482 sound/arm/aaci.c 	if (aacirun->pcm_open)
aacirun           483 sound/arm/aaci.c 		snd_ac97_pcm_close(aacirun->pcm);
aacirun           484 sound/arm/aaci.c 	aacirun->pcm_open = 0;
aacirun           504 sound/arm/aaci.c 	struct aaci_runtime *aacirun = substream->runtime->private_data;
aacirun           511 sound/arm/aaci.c 	if (aacirun->pcm_open) {
aacirun           512 sound/arm/aaci.c 		snd_ac97_pcm_close(aacirun->pcm);
aacirun           513 sound/arm/aaci.c 		aacirun->pcm_open = 0;
aacirun           525 sound/arm/aaci.c 		err = snd_ac97_pcm_open(aacirun->pcm, rate, channels,
aacirun           526 sound/arm/aaci.c 					aacirun->pcm->r[dbl].slots);
aacirun           528 sound/arm/aaci.c 		aacirun->pcm_open = err == 0;
aacirun           529 sound/arm/aaci.c 		aacirun->cr = CR_FEN | CR_COMPACT | CR_SZ16;
aacirun           530 sound/arm/aaci.c 		aacirun->cr |= channels_to_slotmask[channels + dbl * 2];
aacirun           537 sound/arm/aaci.c 		aacirun->fifo_bytes = aaci->fifo_depth * 4 / 2;
aacirun           546 sound/arm/aaci.c 	struct aaci_runtime *aacirun = runtime->private_data;
aacirun           548 sound/arm/aaci.c 	aacirun->period	= snd_pcm_lib_period_bytes(substream);
aacirun           549 sound/arm/aaci.c 	aacirun->start	= runtime->dma_area;
aacirun           550 sound/arm/aaci.c 	aacirun->end	= aacirun->start + snd_pcm_lib_buffer_bytes(substream);
aacirun           551 sound/arm/aaci.c 	aacirun->ptr	= aacirun->start;
aacirun           552 sound/arm/aaci.c 	aacirun->bytes	= aacirun->period;
aacirun           560 sound/arm/aaci.c 	struct aaci_runtime *aacirun = runtime->private_data;
aacirun           561 sound/arm/aaci.c 	ssize_t bytes = aacirun->ptr - aacirun->start;
aacirun           570 sound/arm/aaci.c static void aaci_pcm_playback_stop(struct aaci_runtime *aacirun)
aacirun           574 sound/arm/aaci.c 	ie = readl(aacirun->base + AACI_IE);
aacirun           576 sound/arm/aaci.c 	writel(ie, aacirun->base + AACI_IE);
aacirun           577 sound/arm/aaci.c 	aacirun->cr &= ~CR_EN;
aacirun           578 sound/arm/aaci.c 	aaci_chan_wait_ready(aacirun, SR_TXB);
aacirun           579 sound/arm/aaci.c 	writel(aacirun->cr, aacirun->base + AACI_TXCR);
aacirun           582 sound/arm/aaci.c static void aaci_pcm_playback_start(struct aaci_runtime *aacirun)
aacirun           586 sound/arm/aaci.c 	aaci_chan_wait_ready(aacirun, SR_TXB);
aacirun           587 sound/arm/aaci.c 	aacirun->cr |= CR_EN;
aacirun           589 sound/arm/aaci.c 	ie = readl(aacirun->base + AACI_IE);
aacirun           591 sound/arm/aaci.c 	writel(ie, aacirun->base + AACI_IE);
aacirun           592 sound/arm/aaci.c 	writel(aacirun->cr, aacirun->base + AACI_TXCR);
aacirun           597 sound/arm/aaci.c 	struct aaci_runtime *aacirun = substream->runtime->private_data;
aacirun           601 sound/arm/aaci.c 	spin_lock_irqsave(&aacirun->lock, flags);
aacirun           605 sound/arm/aaci.c 		aaci_pcm_playback_start(aacirun);
aacirun           609 sound/arm/aaci.c 		aaci_pcm_playback_start(aacirun);
aacirun           613 sound/arm/aaci.c 		aaci_pcm_playback_stop(aacirun);
aacirun           617 sound/arm/aaci.c 		aaci_pcm_playback_stop(aacirun);
aacirun           630 sound/arm/aaci.c 	spin_unlock_irqrestore(&aacirun->lock, flags);
aacirun           646 sound/arm/aaci.c static void aaci_pcm_capture_stop(struct aaci_runtime *aacirun)
aacirun           650 sound/arm/aaci.c 	aaci_chan_wait_ready(aacirun, SR_RXB);
aacirun           652 sound/arm/aaci.c 	ie = readl(aacirun->base + AACI_IE);
aacirun           654 sound/arm/aaci.c 	writel(ie, aacirun->base+AACI_IE);
aacirun           656 sound/arm/aaci.c 	aacirun->cr &= ~CR_EN;
aacirun           658 sound/arm/aaci.c 	writel(aacirun->cr, aacirun->base + AACI_RXCR);
aacirun           661 sound/arm/aaci.c static void aaci_pcm_capture_start(struct aaci_runtime *aacirun)
aacirun           665 sound/arm/aaci.c 	aaci_chan_wait_ready(aacirun, SR_RXB);
aacirun           669 sound/arm/aaci.c 	aacirun->cr |= 0xf << 17;
aacirun           672 sound/arm/aaci.c 	aacirun->cr |= CR_EN;
aacirun           673 sound/arm/aaci.c 	writel(aacirun->cr, aacirun->base + AACI_RXCR);
aacirun           675 sound/arm/aaci.c 	ie = readl(aacirun->base + AACI_IE);
aacirun           677 sound/arm/aaci.c 	writel(ie, aacirun->base + AACI_IE);
aacirun           682 sound/arm/aaci.c 	struct aaci_runtime *aacirun = substream->runtime->private_data;
aacirun           686 sound/arm/aaci.c 	spin_lock_irqsave(&aacirun->lock, flags);
aacirun           690 sound/arm/aaci.c 		aaci_pcm_capture_start(aacirun);
aacirun           694 sound/arm/aaci.c 		aaci_pcm_capture_start(aacirun);
aacirun           698 sound/arm/aaci.c 		aaci_pcm_capture_stop(aacirun);
aacirun           702 sound/arm/aaci.c 		aaci_pcm_capture_stop(aacirun);
aacirun           715 sound/arm/aaci.c 	spin_unlock_irqrestore(&aacirun->lock, flags);
aacirun           950 sound/arm/aaci.c 	struct aaci_runtime *aacirun = &aaci->playback;
aacirun           957 sound/arm/aaci.c 	writel(CR_FEN | CR_SZ16 | CR_EN, aacirun->base + AACI_TXCR);
aacirun           959 sound/arm/aaci.c 	for (i = 0; !(readl(aacirun->base + AACI_SR) & SR_TXFF) && i < 4096; i++)
aacirun           960 sound/arm/aaci.c 		writel(0, aacirun->fifo);
aacirun           962 sound/arm/aaci.c 	writel(0, aacirun->base + AACI_TXCR);