Lines Matching defs:codec
44 * - builtin AC97 conformant codec (SNR over 80dB)
57 * modem card which might reveal the Aztech-specific codec ID which
252 spinlock_t *lock; /* TODO: convert to our own per-codec lock member */
337 snd_azf3328_codec_outb(const struct snd_azf3328_codec_data *codec,
342 outb(value, codec->io_base + reg);
346 snd_azf3328_codec_inb(const struct snd_azf3328_codec_data *codec, unsigned reg)
348 return inb(codec->io_base + reg);
352 snd_azf3328_codec_outw(const struct snd_azf3328_codec_data *codec,
357 outw(value, codec->io_base + reg);
361 snd_azf3328_codec_inw(const struct snd_azf3328_codec_data *codec, unsigned reg)
363 return inw(codec->io_base + reg);
367 snd_azf3328_codec_outl_multi(const struct snd_azf3328_codec_data *codec,
371 unsigned long addr = codec->io_base + reg;
382 snd_azf3328_codec_inl(const struct snd_azf3328_codec_data *codec, unsigned reg)
384 return inl(codec->io_base + reg);
1200 snd_azf3328_codec_setfmt(struct snd_azf3328_codec_data *codec,
1249 spin_lock_irqsave(codec->lock, flags);
1252 snd_azf3328_codec_outw(codec, IDX_IO_CODEC_SOUNDFORMAT, val);
1262 if (codec->type != AZF_CODEC_CAPTURE)
1263 snd_azf3328_codec_outw(codec, IDX_IO_CODEC_DMA_FLAGS,
1264 snd_azf3328_codec_inw(codec, IDX_IO_CODEC_DMA_FLAGS) |
1272 spin_unlock_irqrestore(codec->lock, flags);
1276 snd_azf3328_codec_setfmt_lowpower(struct snd_azf3328_codec_data *codec
1283 snd_azf3328_codec_setfmt(codec, AZF_FREQ_4000, 8, 1);
1320 struct snd_azf3328_codec_data *codec = &chip->codecs[codec_type];
1321 bool need_change = (codec->running != enable);
1324 "codec_activity: %s codec, enable %d, need_change %d\n",
1325 codec->name, enable, need_change
1338 /* if enable codec, call enable_codecs func
1339 to enable codec supply... */
1358 snd_azf3328_codec_setfmt_lowpower(codec);
1359 codec->running = enable;
1365 struct snd_azf3328_codec_data *codec,
1375 if (!codec->running) {
1410 spin_lock_irqsave(codec->lock, flags);
1412 codec, IDX_IO_CODEC_DMA_START_1, &setup_io, 3
1414 spin_unlock_irqrestore(codec->lock, flags);
1422 struct snd_azf3328_codec_data *codec = runtime->private_data;
1428 codec->dma_base = runtime->dma_addr;
1431 snd_azf3328_codec_setfmt(codec,
1435 snd_azf3328_codec_setdmaa(chip, codec,
1446 struct snd_azf3328_codec_data *codec = runtime->private_data;
1450 bool is_main_mixer_playback_codec = (AZF_CODEC_PLAYBACK == codec->type);
1454 dev_dbg(chip->card->dev, "START PCM %s\n", codec->name);
1464 snd_azf3328_codec_setfmt(codec,
1469 spin_lock(codec->lock);
1471 flags1 = snd_azf3328_codec_inw(codec, IDX_IO_CODEC_DMA_FLAGS);
1475 snd_azf3328_codec_outw(codec, IDX_IO_CODEC_DMA_FLAGS, flags1);
1478 snd_azf3328_codec_outw(codec, IDX_IO_CODEC_IRQTYPE, 0xffff);
1479 spin_unlock(codec->lock);
1481 snd_azf3328_codec_setdmaa(chip, codec, runtime->dma_addr,
1486 spin_lock(codec->lock);
1490 snd_azf3328_codec_outw(codec, IDX_IO_CODEC_DMA_FLAGS, flags1);
1495 snd_azf3328_codec_outw(codec, IDX_IO_CODEC_DMA_FLAGS, flags1);
1497 snd_azf3328_codec_outw(codec, IDX_IO_CODEC_DMA_FLAGS,
1499 snd_azf3328_codec_outw(codec, IDX_IO_CODEC_DMA_FLAGS,
1501 snd_azf3328_codec_outw(codec, IDX_IO_CODEC_DMA_FLAGS,
1504 snd_azf3328_codec_outw(codec, IDX_IO_CODEC_DMA_FLAGS,
1510 spin_unlock(codec->lock);
1511 snd_azf3328_ctrl_codec_activity(chip, codec->type, 1);
1521 dev_dbg(chip->card->dev, "PCM STARTED %s\n", codec->name);
1524 dev_dbg(chip->card->dev, "PCM RESUME %s\n", codec->name);
1525 /* resume codec if we were active */
1526 spin_lock(codec->lock);
1527 if (codec->running)
1528 snd_azf3328_codec_outw(codec, IDX_IO_CODEC_DMA_FLAGS,
1530 codec, IDX_IO_CODEC_DMA_FLAGS
1533 spin_unlock(codec->lock);
1536 dev_dbg(chip->card->dev, "PCM STOP %s\n", codec->name);
1546 spin_lock(codec->lock);
1548 flags1 = snd_azf3328_codec_inw(codec, IDX_IO_CODEC_DMA_FLAGS);
1552 snd_azf3328_codec_outw(codec, IDX_IO_CODEC_DMA_FLAGS, flags1);
1557 snd_azf3328_codec_outw(codec, IDX_IO_CODEC_DMA_FLAGS, flags1);
1560 snd_azf3328_codec_outw(codec, IDX_IO_CODEC_DMA_FLAGS, flags1);
1561 spin_unlock(codec->lock);
1562 snd_azf3328_ctrl_codec_activity(chip, codec->type, 0);
1572 dev_dbg(chip->card->dev, "PCM STOPPED %s\n", codec->name);
1575 dev_dbg(chip->card->dev, "PCM SUSPEND %s\n", codec->name);
1576 /* make sure codec is stopped */
1577 snd_azf3328_codec_outw(codec, IDX_IO_CODEC_DMA_FLAGS,
1579 codec, IDX_IO_CODEC_DMA_FLAGS
1601 const struct snd_azf3328_codec_data *codec =
1606 result = snd_azf3328_codec_inl(codec, IDX_IO_CODEC_DMA_CURRPOS);
1610 result -= snd_azf3328_codec_inl(codec, IDX_IO_CODEC_DMA_START_1);
1612 result -= codec->dma_base;
1616 jiffies, codec->name, result, frmres);
1858 const struct snd_azf3328_codec_data *codec = first_codec;
1862 ++codec_type, ++codec) {
1864 /* skip codec if there's no interrupt for it */
1868 spin_lock(codec->lock);
1869 which = snd_azf3328_codec_inb(codec, IDX_IO_CODEC_IRQTYPE);
1871 snd_azf3328_codec_outb(codec, IDX_IO_CODEC_IRQTYPE, which);
1872 spin_unlock(codec->lock);
1874 if (codec->substream) {
1875 snd_pcm_period_elapsed(codec->substream);
1877 codec->name,
1880 codec, IDX_IO_CODEC_DMA_CURRPOS));
2012 struct snd_azf3328_codec_data *codec = &chip->codecs[codec_type];
2014 codec->substream = substream;
2021 runtime->private_data = codec;
2047 struct snd_azf3328_codec_data *codec =
2050 codec->substream = NULL;
2397 /* standard codec init stuff */
2403 struct snd_azf3328_codec_data *codec =
2408 codec->running = true;
2411 spin_lock_irq(codec->lock);
2412 snd_azf3328_codec_outb(codec, IDX_IO_CODEC_DMA_FLAGS,
2414 spin_unlock_irq(codec->lock);