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);