Lines Matching refs:codec

44  *  - builtin AC97 conformant codec (SNR over 80dB)
57 * modem card which might reveal the Aztech-specific codec ID which
253 spinlock_t *lock; /* TODO: convert to our own per-codec lock member */
338 snd_azf3328_codec_outb(const struct snd_azf3328_codec_data *codec,
343 outb(value, codec->io_base + reg);
347 snd_azf3328_codec_inb(const struct snd_azf3328_codec_data *codec, unsigned reg)
349 return inb(codec->io_base + reg);
353 snd_azf3328_codec_outw(const struct snd_azf3328_codec_data *codec,
358 outw(value, codec->io_base + reg);
362 snd_azf3328_codec_inw(const struct snd_azf3328_codec_data *codec, unsigned reg)
364 return inw(codec->io_base + reg);
368 snd_azf3328_codec_outl(const struct snd_azf3328_codec_data *codec,
373 outl(value, codec->io_base + reg);
377 snd_azf3328_codec_outl_multi(const struct snd_azf3328_codec_data *codec,
381 unsigned long addr = codec->io_base + reg;
392 snd_azf3328_codec_inl(const struct snd_azf3328_codec_data *codec, unsigned reg)
394 return inl(codec->io_base + reg);
1209 snd_azf3328_codec_setfmt(struct snd_azf3328_codec_data *codec,
1258 spin_lock_irqsave(codec->lock, flags);
1261 snd_azf3328_codec_outw(codec, IDX_IO_CODEC_SOUNDFORMAT, val);
1271 if (codec->type != AZF_CODEC_CAPTURE)
1272 snd_azf3328_codec_outw(codec, IDX_IO_CODEC_DMA_FLAGS,
1273 snd_azf3328_codec_inw(codec, IDX_IO_CODEC_DMA_FLAGS) |
1281 spin_unlock_irqrestore(codec->lock, flags);
1285 snd_azf3328_codec_setfmt_lowpower(struct snd_azf3328_codec_data *codec
1292 snd_azf3328_codec_setfmt(codec, AZF_FREQ_4000, 8, 1);
1329 struct snd_azf3328_codec_data *codec = &chip->codecs[codec_type];
1330 bool need_change = (codec->running != enable);
1333 "codec_activity: %s codec, enable %d, need_change %d\n",
1334 codec->name, enable, need_change
1347 /* if enable codec, call enable_codecs func
1348 to enable codec supply... */
1367 snd_azf3328_codec_setfmt_lowpower(codec);
1368 codec->running = enable;
1374 struct snd_azf3328_codec_data *codec,
1384 if (!codec->running) {
1419 spin_lock_irqsave(codec->lock, flags);
1421 codec, IDX_IO_CODEC_DMA_START_1, &setup_io, 3
1423 spin_unlock_irqrestore(codec->lock, flags);
1431 struct snd_azf3328_codec_data *codec = runtime->private_data;
1437 codec->dma_base = runtime->dma_addr;
1440 snd_azf3328_codec_setfmt(codec,
1444 snd_azf3328_codec_setdmaa(chip, codec,
1455 struct snd_azf3328_codec_data *codec = runtime->private_data;
1459 bool is_main_mixer_playback_codec = (AZF_CODEC_PLAYBACK == codec->type);
1463 dev_dbg(chip->card->dev, "START PCM %s\n", codec->name);
1473 snd_azf3328_codec_setfmt(codec,
1478 spin_lock(codec->lock);
1480 flags1 = snd_azf3328_codec_inw(codec, IDX_IO_CODEC_DMA_FLAGS);
1484 snd_azf3328_codec_outw(codec, IDX_IO_CODEC_DMA_FLAGS, flags1);
1487 snd_azf3328_codec_outw(codec, IDX_IO_CODEC_IRQTYPE, 0xffff);
1488 spin_unlock(codec->lock);
1490 snd_azf3328_codec_setdmaa(chip, codec, runtime->dma_addr,
1495 spin_lock(codec->lock);
1499 snd_azf3328_codec_outw(codec, IDX_IO_CODEC_DMA_FLAGS, flags1);
1504 snd_azf3328_codec_outw(codec, IDX_IO_CODEC_DMA_FLAGS, flags1);
1506 snd_azf3328_codec_outw(codec, IDX_IO_CODEC_DMA_FLAGS,
1508 snd_azf3328_codec_outw(codec, IDX_IO_CODEC_DMA_FLAGS,
1510 snd_azf3328_codec_outw(codec, IDX_IO_CODEC_DMA_FLAGS,
1513 snd_azf3328_codec_outw(codec, IDX_IO_CODEC_DMA_FLAGS,
1519 spin_unlock(codec->lock);
1520 snd_azf3328_ctrl_codec_activity(chip, codec->type, 1);
1530 dev_dbg(chip->card->dev, "PCM STARTED %s\n", codec->name);
1533 dev_dbg(chip->card->dev, "PCM RESUME %s\n", codec->name);
1534 /* resume codec if we were active */
1535 spin_lock(codec->lock);
1536 if (codec->running)
1537 snd_azf3328_codec_outw(codec, IDX_IO_CODEC_DMA_FLAGS,
1539 codec, IDX_IO_CODEC_DMA_FLAGS
1542 spin_unlock(codec->lock);
1545 dev_dbg(chip->card->dev, "PCM STOP %s\n", codec->name);
1555 spin_lock(codec->lock);
1557 flags1 = snd_azf3328_codec_inw(codec, IDX_IO_CODEC_DMA_FLAGS);
1561 snd_azf3328_codec_outw(codec, IDX_IO_CODEC_DMA_FLAGS, flags1);
1566 snd_azf3328_codec_outw(codec, IDX_IO_CODEC_DMA_FLAGS, flags1);
1569 snd_azf3328_codec_outw(codec, IDX_IO_CODEC_DMA_FLAGS, flags1);
1570 spin_unlock(codec->lock);
1571 snd_azf3328_ctrl_codec_activity(chip, codec->type, 0);
1581 dev_dbg(chip->card->dev, "PCM STOPPED %s\n", codec->name);
1584 dev_dbg(chip->card->dev, "PCM SUSPEND %s\n", codec->name);
1585 /* make sure codec is stopped */
1586 snd_azf3328_codec_outw(codec, IDX_IO_CODEC_DMA_FLAGS,
1588 codec, IDX_IO_CODEC_DMA_FLAGS
1610 const struct snd_azf3328_codec_data *codec =
1615 result = snd_azf3328_codec_inl(codec, IDX_IO_CODEC_DMA_CURRPOS);
1619 result -= snd_azf3328_codec_inl(codec, IDX_IO_CODEC_DMA_START_1);
1621 result -= codec->dma_base;
1625 jiffies, codec->name, result, frmres);
1867 const struct snd_azf3328_codec_data *codec = first_codec;
1871 ++codec_type, ++codec) {
1873 /* skip codec if there's no interrupt for it */
1877 spin_lock(codec->lock);
1878 which = snd_azf3328_codec_inb(codec, IDX_IO_CODEC_IRQTYPE);
1880 snd_azf3328_codec_outb(codec, IDX_IO_CODEC_IRQTYPE, which);
1881 spin_unlock(codec->lock);
1883 if (codec->substream) {
1884 snd_pcm_period_elapsed(codec->substream);
1886 codec->name,
1889 codec, IDX_IO_CODEC_DMA_CURRPOS));
2021 struct snd_azf3328_codec_data *codec = &chip->codecs[codec_type];
2023 codec->substream = substream;
2030 runtime->private_data = codec;
2056 struct snd_azf3328_codec_data *codec =
2059 codec->substream = NULL;
2440 /* standard codec init stuff */
2446 struct snd_azf3328_codec_data *codec =
2451 codec->running = 1;
2454 spin_lock_irq(codec->lock);
2455 snd_azf3328_codec_outb(codec, IDX_IO_CODEC_DMA_FLAGS,
2457 spin_unlock_irq(codec->lock);