aaci 37 sound/arm/aaci.c static void aaci_ac97_select_codec(struct aaci *aaci, struct snd_ac97 *ac97) aaci 39 sound/arm/aaci.c u32 v, maincr = aaci->maincr | MAINCR_SCRA(ac97->num); aaci 44 sound/arm/aaci.c v = readl(aaci->base + AACI_SLFR); aaci 46 sound/arm/aaci.c readl(aaci->base + AACI_SL2RX); aaci 48 sound/arm/aaci.c readl(aaci->base + AACI_SL1RX); aaci 50 sound/arm/aaci.c if (maincr != readl(aaci->base + AACI_MAINCR)) { aaci 51 sound/arm/aaci.c writel(maincr, aaci->base + AACI_MAINCR); aaci 52 sound/arm/aaci.c readl(aaci->base + AACI_MAINCR); aaci 69 sound/arm/aaci.c struct aaci *aaci = ac97->private_data; aaci 76 sound/arm/aaci.c mutex_lock(&aaci->ac97_sem); aaci 78 sound/arm/aaci.c aaci_ac97_select_codec(aaci, ac97); aaci 84 sound/arm/aaci.c writel(val << 4, aaci->base + AACI_SL2TX); aaci 85 sound/arm/aaci.c writel(reg << 12, aaci->base + AACI_SL1TX); aaci 94 sound/arm/aaci.c v = readl(aaci->base + AACI_SLFR); aaci 98 sound/arm/aaci.c dev_err(&aaci->dev->dev, aaci 101 sound/arm/aaci.c mutex_unlock(&aaci->ac97_sem); aaci 109 sound/arm/aaci.c struct aaci *aaci = ac97->private_data; aaci 116 sound/arm/aaci.c mutex_lock(&aaci->ac97_sem); aaci 118 sound/arm/aaci.c aaci_ac97_select_codec(aaci, ac97); aaci 123 sound/arm/aaci.c writel((reg << 12) | (1 << 19), aaci->base + AACI_SL1TX); aaci 132 sound/arm/aaci.c v = readl(aaci->base + AACI_SLFR); aaci 136 sound/arm/aaci.c dev_err(&aaci->dev->dev, "timeout on slot 1 TX busy\n"); aaci 149 sound/arm/aaci.c v = readl(aaci->base + AACI_SLFR) & (SLFR_1RXV|SLFR_2RXV); aaci 153 sound/arm/aaci.c dev_err(&aaci->dev->dev, "timeout on RX valid\n"); aaci 159 sound/arm/aaci.c v = readl(aaci->base + AACI_SL1RX) >> 12; aaci 161 sound/arm/aaci.c v = readl(aaci->base + AACI_SL2RX) >> 4; aaci 164 sound/arm/aaci.c dev_warn(&aaci->dev->dev, aaci 168 sound/arm/aaci.c dev_warn(&aaci->dev->dev, aaci 175 sound/arm/aaci.c mutex_unlock(&aaci->ac97_sem); aaci 196 sound/arm/aaci.c static void aaci_fifo_irq(struct aaci *aaci, int channel, u32 mask) aaci 199 sound/arm/aaci.c dev_warn(&aaci->dev->dev, "RX overrun on chan %d\n", channel); aaci 200 sound/arm/aaci.c writel(ICLR_RXOEC1 << channel, aaci->base + AACI_INTCLR); aaci 204 sound/arm/aaci.c dev_warn(&aaci->dev->dev, "RX timeout on chan %d\n", channel); aaci 205 sound/arm/aaci.c writel(ICLR_RXTOFEC1 << channel, aaci->base + AACI_INTCLR); aaci 209 sound/arm/aaci.c struct aaci_runtime *aacirun = &aaci->capture; aaci 214 sound/arm/aaci.c dev_warn(&aaci->dev->dev, "RX interrupt???\n"); aaci 264 sound/arm/aaci.c dev_dbg(&aaci->dev->dev, "TX underrun on chan %d\n", channel); aaci 265 sound/arm/aaci.c writel(ICLR_TXUEC1 << channel, aaci->base + AACI_INTCLR); aaci 269 sound/arm/aaci.c struct aaci_runtime *aacirun = &aaci->playback; aaci 274 sound/arm/aaci.c dev_warn(&aaci->dev->dev, "TX interrupt???\n"); aaci 326 sound/arm/aaci.c struct aaci *aaci = devid; aaci 330 sound/arm/aaci.c mask = readl(aaci->base + AACI_ALLINTS); aaci 335 sound/arm/aaci.c aaci_fifo_irq(aaci, i, m); aaci 384 sound/arm/aaci.c struct aaci *aaci = rule->private; aaci 388 sound/arm/aaci.c slots = aaci->ac97_bus->pcms[0].r[0].slots; aaci 402 sound/arm/aaci.c struct aaci *aaci = substream->private_data; aaci 407 sound/arm/aaci.c aacirun = &aaci->playback; aaci 409 sound/arm/aaci.c aacirun = &aaci->capture; aaci 424 sound/arm/aaci.c aaci_rule_channels, aaci, aaci 438 sound/arm/aaci.c runtime->hw.fifo_size = aaci->fifo_depth * 2; aaci 440 sound/arm/aaci.c mutex_lock(&aaci->irq_lock); aaci 441 sound/arm/aaci.c if (!aaci->users++) { aaci 442 sound/arm/aaci.c ret = request_irq(aaci->dev->irq[0], aaci_irq, aaci 443 sound/arm/aaci.c IRQF_SHARED, DRIVER_NAME, aaci); aaci 445 sound/arm/aaci.c aaci->users--; aaci 447 sound/arm/aaci.c mutex_unlock(&aaci->irq_lock); aaci 458 sound/arm/aaci.c struct aaci *aaci = substream->private_data; aaci 465 sound/arm/aaci.c mutex_lock(&aaci->irq_lock); aaci 466 sound/arm/aaci.c if (!--aaci->users) aaci 467 sound/arm/aaci.c free_irq(aaci->dev->irq[0], aaci); aaci 468 sound/arm/aaci.c mutex_unlock(&aaci->irq_lock); aaci 523 sound/arm/aaci.c struct aaci *aaci = substream->private_data; aaci 537 sound/arm/aaci.c aacirun->fifo_bytes = aaci->fifo_depth * 4 / 2; aaci 723 sound/arm/aaci.c struct aaci *aaci = substream->private_data; aaci 728 sound/arm/aaci.c aaci_ac97_write(aaci->ac97, AC97_EXTENDED_STATUS, 0x0001); /* VRA */ aaci 729 sound/arm/aaci.c aaci_ac97_write(aaci->ac97, AC97_PCM_LR_ADC_RATE, runtime->rate); aaci 730 sound/arm/aaci.c aaci_ac97_write(aaci->ac97, AC97_PCM_MIC_ADC_RATE, runtime->rate); aaci 733 sound/arm/aaci.c aaci_ac97_write(aaci->ac97, AC97_REC_SEL, 0x0404); aaci 755 sound/arm/aaci.c struct aaci *aaci = card->private_data; aaci 831 sound/arm/aaci.c static int aaci_probe_ac97(struct aaci *aaci) aaci 841 sound/arm/aaci.c writel(0, aaci->base + AACI_RESET); aaci 843 sound/arm/aaci.c writel(RESET_NRST, aaci->base + AACI_RESET); aaci 851 sound/arm/aaci.c ret = snd_ac97_bus(aaci->card, 0, &aaci_bus_ops, aaci, &ac97_bus); aaci 856 sound/arm/aaci.c aaci->ac97_bus = ac97_bus; aaci 859 sound/arm/aaci.c ac97_template.private_data = aaci; aaci 866 sound/arm/aaci.c aaci->ac97 = ac97; aaci 878 sound/arm/aaci.c aaci->playback.pcm = &ac97_bus->pcms[0]; aaci 879 sound/arm/aaci.c aaci->capture.pcm = &ac97_bus->pcms[1]; aaci 887 sound/arm/aaci.c struct aaci *aaci = card->private_data; aaci 889 sound/arm/aaci.c iounmap(aaci->base); aaci 892 sound/arm/aaci.c static struct aaci *aaci_init_card(struct amba_device *dev) aaci 894 sound/arm/aaci.c struct aaci *aaci; aaci 899 sound/arm/aaci.c THIS_MODULE, sizeof(struct aaci), &card); aaci 912 sound/arm/aaci.c aaci = card->private_data; aaci 913 sound/arm/aaci.c mutex_init(&aaci->ac97_sem); aaci 914 sound/arm/aaci.c mutex_init(&aaci->irq_lock); aaci 915 sound/arm/aaci.c aaci->card = card; aaci 916 sound/arm/aaci.c aaci->dev = dev; aaci 919 sound/arm/aaci.c aaci->maincr = MAINCR_IE | MAINCR_SL1RXEN | MAINCR_SL1TXEN | aaci 922 sound/arm/aaci.c return aaci; aaci 925 sound/arm/aaci.c static int aaci_init_pcm(struct aaci *aaci) aaci 930 sound/arm/aaci.c ret = snd_pcm_new(aaci->card, "AACI AC'97", 0, 1, 1, &pcm); aaci 932 sound/arm/aaci.c aaci->pcm = pcm; aaci 933 sound/arm/aaci.c pcm->private_data = aaci; aaci 941 sound/arm/aaci.c aaci->card->dev, aaci 948 sound/arm/aaci.c static unsigned int aaci_size_fifo(struct aaci *aaci) aaci 950 sound/arm/aaci.c struct aaci_runtime *aacirun = &aaci->playback; aaci 969 sound/arm/aaci.c writel(aaci->maincr & ~MAINCR_IE, aaci->base + AACI_MAINCR); aaci 970 sound/arm/aaci.c readl(aaci->base + AACI_MAINCR); aaci 972 sound/arm/aaci.c writel(aaci->maincr, aaci->base + AACI_MAINCR); aaci 987 sound/arm/aaci.c struct aaci *aaci; aaci 994 sound/arm/aaci.c aaci = aaci_init_card(dev); aaci 995 sound/arm/aaci.c if (!aaci) { aaci 1000 sound/arm/aaci.c aaci->base = ioremap(dev->res.start, resource_size(&dev->res)); aaci 1001 sound/arm/aaci.c if (!aaci->base) { aaci 1009 sound/arm/aaci.c spin_lock_init(&aaci->playback.lock); aaci 1010 sound/arm/aaci.c aaci->playback.base = aaci->base + AACI_CSCH1; aaci 1011 sound/arm/aaci.c aaci->playback.fifo = aaci->base + AACI_DR1; aaci 1016 sound/arm/aaci.c spin_lock_init(&aaci->capture.lock); aaci 1017 sound/arm/aaci.c aaci->capture.base = aaci->base + AACI_CSCH1; aaci 1018 sound/arm/aaci.c aaci->capture.fifo = aaci->base + AACI_DR1; aaci 1021 sound/arm/aaci.c void __iomem *base = aaci->base + i * 0x14; aaci 1028 sound/arm/aaci.c writel(0x1fff, aaci->base + AACI_INTCLR); aaci 1029 sound/arm/aaci.c writel(aaci->maincr, aaci->base + AACI_MAINCR); aaci 1034 sound/arm/aaci.c readl(aaci->base + AACI_CSCH1); aaci 1035 sound/arm/aaci.c ret = aaci_probe_ac97(aaci); aaci 1043 sound/arm/aaci.c aaci->fifo_depth = aaci_size_fifo(aaci); aaci 1044 sound/arm/aaci.c if (aaci->fifo_depth & 15) { aaci 1046 sound/arm/aaci.c aaci->fifo_depth); aaci 1051 sound/arm/aaci.c ret = aaci_init_pcm(aaci); aaci 1055 sound/arm/aaci.c ret = snd_card_register(aaci->card); aaci 1057 sound/arm/aaci.c dev_info(&dev->dev, "%s\n", aaci->card->longname); aaci 1058 sound/arm/aaci.c dev_info(&dev->dev, "FIFO %u entries\n", aaci->fifo_depth); aaci 1059 sound/arm/aaci.c amba_set_drvdata(dev, aaci->card); aaci 1064 sound/arm/aaci.c if (aaci) aaci 1065 sound/arm/aaci.c snd_card_free(aaci->card); aaci 1075 sound/arm/aaci.c struct aaci *aaci = card->private_data; aaci 1076 sound/arm/aaci.c writel(0, aaci->base + AACI_MAINCR);