psc_dma 32 sound/soc/fsl/mpc5200_dma.c struct psc_dma *psc_dma = _psc_dma; psc_dma 33 sound/soc/fsl/mpc5200_dma.c struct mpc52xx_psc __iomem *regs = psc_dma->psc_regs; psc_dma 39 sound/soc/fsl/mpc5200_dma.c if (psc_dma->playback.active && (isr & MPC52xx_PSC_IMR_TXEMP)) psc_dma 40 sound/soc/fsl/mpc5200_dma.c psc_dma->stats.underrun_count++; psc_dma 43 sound/soc/fsl/mpc5200_dma.c if (psc_dma->capture.active && (isr & MPC52xx_PSC_IMR_ORERR)) psc_dma 44 sound/soc/fsl/mpc5200_dma.c psc_dma->stats.overrun_count++; psc_dma 80 sound/soc/fsl/mpc5200_dma.c spin_lock(&s->psc_dma->lock); psc_dma 91 sound/soc/fsl/mpc5200_dma.c spin_unlock(&s->psc_dma->lock); psc_dma 116 sound/soc/fsl/mpc5200_dma.c struct psc_dma *psc_dma = snd_soc_dai_get_drvdata(rtd->cpu_dai); psc_dma 118 sound/soc/fsl/mpc5200_dma.c struct psc_dma_stream *s = to_psc_dma_stream(substream, psc_dma); psc_dma 119 sound/soc/fsl/mpc5200_dma.c struct mpc52xx_psc __iomem *regs = psc_dma->psc_regs; psc_dma 126 sound/soc/fsl/mpc5200_dma.c dev_dbg(psc_dma->dev, "START: stream=%i fbits=%u ps=%u #p=%u\n", psc_dma 140 sound/soc/fsl/mpc5200_dma.c spin_lock_irqsave(&psc_dma->lock, flags); psc_dma 152 sound/soc/fsl/mpc5200_dma.c spin_unlock_irqrestore(&psc_dma->lock, flags); psc_dma 159 sound/soc/fsl/mpc5200_dma.c dev_dbg(psc_dma->dev, "STOP: stream=%i periods_count=%i\n", psc_dma 163 sound/soc/fsl/mpc5200_dma.c spin_lock_irqsave(&psc_dma->lock, flags); psc_dma 169 sound/soc/fsl/mpc5200_dma.c spin_unlock_irqrestore(&psc_dma->lock, flags); psc_dma 174 sound/soc/fsl/mpc5200_dma.c dev_dbg(psc_dma->dev, "unhandled trigger: stream=%i cmd=%i\n", psc_dma 181 sound/soc/fsl/mpc5200_dma.c if (psc_dma->playback.active) psc_dma 183 sound/soc/fsl/mpc5200_dma.c if (psc_dma->capture.active) psc_dma 185 sound/soc/fsl/mpc5200_dma.c out_be16(®s->isr_imr.imr, psc_dma->imr | imr); psc_dma 217 sound/soc/fsl/mpc5200_dma.c struct psc_dma *psc_dma = snd_soc_dai_get_drvdata(rtd->cpu_dai); psc_dma 221 sound/soc/fsl/mpc5200_dma.c dev_dbg(psc_dma->dev, "psc_dma_open(substream=%p)\n", substream); psc_dma 224 sound/soc/fsl/mpc5200_dma.c s = &psc_dma->capture; psc_dma 226 sound/soc/fsl/mpc5200_dma.c s = &psc_dma->playback; psc_dma 244 sound/soc/fsl/mpc5200_dma.c struct psc_dma *psc_dma = snd_soc_dai_get_drvdata(rtd->cpu_dai); psc_dma 247 sound/soc/fsl/mpc5200_dma.c dev_dbg(psc_dma->dev, "psc_dma_close(substream=%p)\n", substream); psc_dma 250 sound/soc/fsl/mpc5200_dma.c s = &psc_dma->capture; psc_dma 252 sound/soc/fsl/mpc5200_dma.c s = &psc_dma->playback; psc_dma 254 sound/soc/fsl/mpc5200_dma.c if (!psc_dma->playback.active && psc_dma 255 sound/soc/fsl/mpc5200_dma.c !psc_dma->capture.active) { psc_dma 258 sound/soc/fsl/mpc5200_dma.c out_be16(&psc_dma->psc_regs->isr_imr.imr, psc_dma->imr); psc_dma 259 sound/soc/fsl/mpc5200_dma.c out_8(&psc_dma->psc_regs->command, 4 << 4); /* reset error */ psc_dma 269 sound/soc/fsl/mpc5200_dma.c struct psc_dma *psc_dma = snd_soc_dai_get_drvdata(rtd->cpu_dai); psc_dma 274 sound/soc/fsl/mpc5200_dma.c s = &psc_dma->capture; psc_dma 276 sound/soc/fsl/mpc5200_dma.c s = &psc_dma->playback; psc_dma 373 sound/soc/fsl/mpc5200_dma.c struct psc_dma *psc_dma; psc_dma 393 sound/soc/fsl/mpc5200_dma.c psc_dma = kzalloc(sizeof *psc_dma, GFP_KERNEL); psc_dma 394 sound/soc/fsl/mpc5200_dma.c if (!psc_dma) { psc_dma 406 sound/soc/fsl/mpc5200_dma.c spin_lock_init(&psc_dma->lock); psc_dma 407 sound/soc/fsl/mpc5200_dma.c mutex_init(&psc_dma->mutex); psc_dma 408 sound/soc/fsl/mpc5200_dma.c psc_dma->id = be32_to_cpu(*prop); psc_dma 409 sound/soc/fsl/mpc5200_dma.c psc_dma->irq = irq; psc_dma 410 sound/soc/fsl/mpc5200_dma.c psc_dma->psc_regs = regs; psc_dma 411 sound/soc/fsl/mpc5200_dma.c psc_dma->fifo_regs = regs + sizeof *psc_dma->psc_regs; psc_dma 412 sound/soc/fsl/mpc5200_dma.c psc_dma->dev = &op->dev; psc_dma 413 sound/soc/fsl/mpc5200_dma.c psc_dma->playback.psc_dma = psc_dma; psc_dma 414 sound/soc/fsl/mpc5200_dma.c psc_dma->capture.psc_dma = psc_dma; psc_dma 415 sound/soc/fsl/mpc5200_dma.c snprintf(psc_dma->name, sizeof psc_dma->name, "PSC%u", psc_dma->id); psc_dma 420 sound/soc/fsl/mpc5200_dma.c psc_dma->capture.bcom_task = psc_dma 421 sound/soc/fsl/mpc5200_dma.c bcom_psc_gen_bd_rx_init(psc_dma->id, 10, fifo, 512); psc_dma 422 sound/soc/fsl/mpc5200_dma.c psc_dma->playback.bcom_task = psc_dma 423 sound/soc/fsl/mpc5200_dma.c bcom_psc_gen_bd_tx_init(psc_dma->id, 10, fifo); psc_dma 424 sound/soc/fsl/mpc5200_dma.c if (!psc_dma->capture.bcom_task || psc_dma 425 sound/soc/fsl/mpc5200_dma.c !psc_dma->playback.bcom_task) { psc_dma 432 sound/soc/fsl/mpc5200_dma.c out_be16(&psc_dma->psc_regs->isr_imr.imr, psc_dma->imr); psc_dma 434 sound/soc/fsl/mpc5200_dma.c out_8(&psc_dma->psc_regs->command, MPC52xx_PSC_RST_RX); psc_dma 436 sound/soc/fsl/mpc5200_dma.c out_8(&psc_dma->psc_regs->command, MPC52xx_PSC_RST_TX); psc_dma 438 sound/soc/fsl/mpc5200_dma.c out_8(&psc_dma->psc_regs->command, MPC52xx_PSC_RST_ERR_STAT); psc_dma 440 sound/soc/fsl/mpc5200_dma.c out_8(&psc_dma->psc_regs->command, MPC52xx_PSC_SEL_MODE_REG_1); psc_dma 446 sound/soc/fsl/mpc5200_dma.c out_8(&psc_dma->psc_regs->mode, 0); psc_dma 447 sound/soc/fsl/mpc5200_dma.c out_8(&psc_dma->psc_regs->mode, 0); psc_dma 450 sound/soc/fsl/mpc5200_dma.c out_be16(&psc_dma->fifo_regs->rfalarm, 0x100); psc_dma 451 sound/soc/fsl/mpc5200_dma.c out_8(&psc_dma->fifo_regs->rfcntl, 0x4); psc_dma 452 sound/soc/fsl/mpc5200_dma.c out_be16(&psc_dma->fifo_regs->tfalarm, 0x100); psc_dma 453 sound/soc/fsl/mpc5200_dma.c out_8(&psc_dma->fifo_regs->tfcntl, 0x7); psc_dma 456 sound/soc/fsl/mpc5200_dma.c psc_dma->playback.irq = psc_dma 457 sound/soc/fsl/mpc5200_dma.c bcom_get_task_irq(psc_dma->playback.bcom_task); psc_dma 458 sound/soc/fsl/mpc5200_dma.c psc_dma->capture.irq = psc_dma 459 sound/soc/fsl/mpc5200_dma.c bcom_get_task_irq(psc_dma->capture.bcom_task); psc_dma 461 sound/soc/fsl/mpc5200_dma.c rc = request_irq(psc_dma->irq, &psc_dma_status_irq, IRQF_SHARED, psc_dma 462 sound/soc/fsl/mpc5200_dma.c "psc-dma-status", psc_dma); psc_dma 463 sound/soc/fsl/mpc5200_dma.c rc |= request_irq(psc_dma->capture.irq, &psc_dma_bcom_irq, IRQF_SHARED, psc_dma 464 sound/soc/fsl/mpc5200_dma.c "psc-dma-capture", &psc_dma->capture); psc_dma 465 sound/soc/fsl/mpc5200_dma.c rc |= request_irq(psc_dma->playback.irq, &psc_dma_bcom_irq, IRQF_SHARED, psc_dma 466 sound/soc/fsl/mpc5200_dma.c "psc-dma-playback", &psc_dma->playback); psc_dma 473 sound/soc/fsl/mpc5200_dma.c dev_set_drvdata(&op->dev, psc_dma); psc_dma 479 sound/soc/fsl/mpc5200_dma.c free_irq(psc_dma->irq, psc_dma); psc_dma 480 sound/soc/fsl/mpc5200_dma.c free_irq(psc_dma->capture.irq, &psc_dma->capture); psc_dma 481 sound/soc/fsl/mpc5200_dma.c free_irq(psc_dma->playback.irq, &psc_dma->playback); psc_dma 483 sound/soc/fsl/mpc5200_dma.c kfree(psc_dma); psc_dma 492 sound/soc/fsl/mpc5200_dma.c struct psc_dma *psc_dma = dev_get_drvdata(&op->dev); psc_dma 496 sound/soc/fsl/mpc5200_dma.c bcom_gen_bd_rx_release(psc_dma->capture.bcom_task); psc_dma 497 sound/soc/fsl/mpc5200_dma.c bcom_gen_bd_tx_release(psc_dma->playback.bcom_task); psc_dma 500 sound/soc/fsl/mpc5200_dma.c free_irq(psc_dma->irq, psc_dma); psc_dma 501 sound/soc/fsl/mpc5200_dma.c free_irq(psc_dma->capture.irq, &psc_dma->capture); psc_dma 502 sound/soc/fsl/mpc5200_dma.c free_irq(psc_dma->playback.irq, &psc_dma->playback); psc_dma 504 sound/soc/fsl/mpc5200_dma.c iounmap(psc_dma->psc_regs); psc_dma 505 sound/soc/fsl/mpc5200_dma.c kfree(psc_dma); psc_dma 25 sound/soc/fsl/mpc5200_dma.h struct psc_dma *psc_dma; psc_dma 78 sound/soc/fsl/mpc5200_dma.h to_psc_dma_stream(struct snd_pcm_substream *substream, struct psc_dma *psc_dma) psc_dma 81 sound/soc/fsl/mpc5200_dma.h return &psc_dma->capture; psc_dma 82 sound/soc/fsl/mpc5200_dma.h return &psc_dma->playback; psc_dma 28 sound/soc/fsl/mpc5200_psc_ac97.c static struct psc_dma *psc_dma; psc_dma 35 sound/soc/fsl/mpc5200_psc_ac97.c mutex_lock(&psc_dma->mutex); psc_dma 38 sound/soc/fsl/mpc5200_psc_ac97.c status = spin_event_timeout(!(in_be16(&psc_dma->psc_regs->sr_csr.status) & psc_dma 42 sound/soc/fsl/mpc5200_psc_ac97.c mutex_unlock(&psc_dma->mutex); psc_dma 47 sound/soc/fsl/mpc5200_psc_ac97.c in_be32(&psc_dma->psc_regs->ac97_data); psc_dma 50 sound/soc/fsl/mpc5200_psc_ac97.c out_be32(&psc_dma->psc_regs->ac97_cmd, (1<<31) | ((reg & 0x7f) << 24)); psc_dma 53 sound/soc/fsl/mpc5200_psc_ac97.c status = spin_event_timeout((in_be16(&psc_dma->psc_regs->sr_csr.status) & psc_dma 57 sound/soc/fsl/mpc5200_psc_ac97.c in_be16(&psc_dma->psc_regs->sr_csr.status)); psc_dma 58 sound/soc/fsl/mpc5200_psc_ac97.c mutex_unlock(&psc_dma->mutex); psc_dma 62 sound/soc/fsl/mpc5200_psc_ac97.c val = in_be32(&psc_dma->psc_regs->ac97_data); psc_dma 65 sound/soc/fsl/mpc5200_psc_ac97.c mutex_unlock(&psc_dma->mutex); psc_dma 70 sound/soc/fsl/mpc5200_psc_ac97.c mutex_unlock(&psc_dma->mutex); psc_dma 79 sound/soc/fsl/mpc5200_psc_ac97.c mutex_lock(&psc_dma->mutex); psc_dma 82 sound/soc/fsl/mpc5200_psc_ac97.c status = spin_event_timeout(!(in_be16(&psc_dma->psc_regs->sr_csr.status) & psc_dma 89 sound/soc/fsl/mpc5200_psc_ac97.c out_be32(&psc_dma->psc_regs->ac97_cmd, psc_dma 93 sound/soc/fsl/mpc5200_psc_ac97.c mutex_unlock(&psc_dma->mutex); psc_dma 98 sound/soc/fsl/mpc5200_psc_ac97.c struct mpc52xx_psc __iomem *regs = psc_dma->psc_regs; psc_dma 100 sound/soc/fsl/mpc5200_psc_ac97.c mutex_lock(&psc_dma->mutex); psc_dma 102 sound/soc/fsl/mpc5200_psc_ac97.c out_be32(®s->sicr, psc_dma->sicr | MPC52xx_PSC_SICR_AWR); psc_dma 104 sound/soc/fsl/mpc5200_psc_ac97.c out_be32(®s->sicr, psc_dma->sicr); psc_dma 106 sound/soc/fsl/mpc5200_psc_ac97.c mutex_unlock(&psc_dma->mutex); psc_dma 111 sound/soc/fsl/mpc5200_psc_ac97.c struct mpc52xx_psc __iomem *regs = psc_dma->psc_regs; psc_dma 113 sound/soc/fsl/mpc5200_psc_ac97.c mutex_lock(&psc_dma->mutex); psc_dma 114 sound/soc/fsl/mpc5200_psc_ac97.c dev_dbg(psc_dma->dev, "cold reset\n"); psc_dma 116 sound/soc/fsl/mpc5200_psc_ac97.c mpc5200_psc_ac97_gpio_reset(psc_dma->id); psc_dma 119 sound/soc/fsl/mpc5200_psc_ac97.c out_be32(®s->sicr, psc_dma->sicr | MPC52xx_PSC_SICR_ACRB); psc_dma 124 sound/soc/fsl/mpc5200_psc_ac97.c mutex_unlock(&psc_dma->mutex); psc_dma 141 sound/soc/fsl/mpc5200_psc_ac97.c struct psc_dma *psc_dma = snd_soc_dai_get_drvdata(cpu_dai); psc_dma 142 sound/soc/fsl/mpc5200_psc_ac97.c struct psc_dma_stream *s = to_psc_dma_stream(substream, psc_dma); psc_dma 144 sound/soc/fsl/mpc5200_psc_ac97.c dev_dbg(psc_dma->dev, "%s(substream=%p) p_size=%i p_bytes=%i" psc_dma 164 sound/soc/fsl/mpc5200_psc_ac97.c struct psc_dma *psc_dma = snd_soc_dai_get_drvdata(cpu_dai); psc_dma 166 sound/soc/fsl/mpc5200_psc_ac97.c dev_dbg(psc_dma->dev, "%s(substream=%p)\n", __func__, substream); psc_dma 169 sound/soc/fsl/mpc5200_psc_ac97.c out_be32(&psc_dma->psc_regs->ac97_slots, 0x01000000); psc_dma 171 sound/soc/fsl/mpc5200_psc_ac97.c out_be32(&psc_dma->psc_regs->ac97_slots, 0x03000000); psc_dma 179 sound/soc/fsl/mpc5200_psc_ac97.c struct psc_dma *psc_dma = snd_soc_dai_get_drvdata(dai); psc_dma 180 sound/soc/fsl/mpc5200_psc_ac97.c struct psc_dma_stream *s = to_psc_dma_stream(substream, psc_dma); psc_dma 184 sound/soc/fsl/mpc5200_psc_ac97.c dev_dbg(psc_dma->dev, "AC97 START: stream=%i\n", psc_dma 188 sound/soc/fsl/mpc5200_psc_ac97.c psc_dma->slots |= s->ac97_slot_bits; psc_dma 189 sound/soc/fsl/mpc5200_psc_ac97.c out_be32(&psc_dma->psc_regs->ac97_slots, psc_dma->slots); psc_dma 193 sound/soc/fsl/mpc5200_psc_ac97.c dev_dbg(psc_dma->dev, "AC97 STOP: stream=%i\n", psc_dma 197 sound/soc/fsl/mpc5200_psc_ac97.c psc_dma->slots &= ~(s->ac97_slot_bits); psc_dma 198 sound/soc/fsl/mpc5200_psc_ac97.c out_be32(&psc_dma->psc_regs->ac97_slots, psc_dma->slots); psc_dma 206 sound/soc/fsl/mpc5200_psc_ac97.c struct psc_dma *psc_dma = snd_soc_dai_get_drvdata(cpu_dai); psc_dma 207 sound/soc/fsl/mpc5200_psc_ac97.c struct mpc52xx_psc __iomem *regs = psc_dma->psc_regs; psc_dma 300 sound/soc/fsl/mpc5200_psc_ac97.c psc_dma = dev_get_drvdata(&op->dev); psc_dma 301 sound/soc/fsl/mpc5200_psc_ac97.c regs = psc_dma->psc_regs; psc_dma 303 sound/soc/fsl/mpc5200_psc_ac97.c psc_dma->imr = 0; psc_dma 304 sound/soc/fsl/mpc5200_psc_ac97.c out_be16(&psc_dma->psc_regs->isr_imr.imr, psc_dma->imr); psc_dma 307 sound/soc/fsl/mpc5200_psc_ac97.c psc_dma->sicr = MPC52xx_PSC_SICR_SIM_AC97 | MPC52xx_PSC_SICR_ENAC97; psc_dma 308 sound/soc/fsl/mpc5200_psc_ac97.c out_be32(®s->sicr, psc_dma->sicr); psc_dma 42 sound/soc/fsl/mpc5200_psc_i2s.c struct psc_dma *psc_dma = snd_soc_dai_get_drvdata(rtd->cpu_dai); psc_dma 45 sound/soc/fsl/mpc5200_psc_i2s.c dev_dbg(psc_dma->dev, "%s(substream=%p) p_size=%i p_bytes=%i" psc_dma 65 sound/soc/fsl/mpc5200_psc_i2s.c dev_dbg(psc_dma->dev, "invalid format\n"); psc_dma 68 sound/soc/fsl/mpc5200_psc_i2s.c out_be32(&psc_dma->psc_regs->sicr, psc_dma->sicr | mode); psc_dma 90 sound/soc/fsl/mpc5200_psc_i2s.c struct psc_dma *psc_dma = snd_soc_dai_get_drvdata(cpu_dai); psc_dma 91 sound/soc/fsl/mpc5200_psc_i2s.c dev_dbg(psc_dma->dev, "psc_i2s_set_sysclk(cpu_dai=%p, dir=%i)\n", psc_dma 109 sound/soc/fsl/mpc5200_psc_i2s.c struct psc_dma *psc_dma = snd_soc_dai_get_drvdata(cpu_dai); psc_dma 110 sound/soc/fsl/mpc5200_psc_i2s.c dev_dbg(psc_dma->dev, "psc_i2s_set_fmt(cpu_dai=%p, format=%i)\n", psc_dma 162 sound/soc/fsl/mpc5200_psc_i2s.c struct psc_dma *psc_dma; psc_dma 176 sound/soc/fsl/mpc5200_psc_i2s.c psc_dma = dev_get_drvdata(&op->dev); psc_dma 177 sound/soc/fsl/mpc5200_psc_i2s.c regs = psc_dma->psc_regs; psc_dma 180 sound/soc/fsl/mpc5200_psc_i2s.c psc_dma->sicr = MPC52xx_PSC_SICR_DTS1 | MPC52xx_PSC_SICR_I2S | psc_dma 182 sound/soc/fsl/mpc5200_psc_i2s.c out_be32(&psc_dma->psc_regs->sicr, psc_dma 183 sound/soc/fsl/mpc5200_psc_i2s.c psc_dma->sicr | MPC52xx_PSC_SICR_SIM_CODEC_8); psc_dma 205 sound/soc/fsl/mpc5200_psc_i2s.c out_8(&psc_dma->psc_regs->command,