diff options
author | Jaroslav Kysela <perex@suse.cz> | 2004-05-17 19:26:10 +0200 |
---|---|---|
committer | Jaroslav Kysela <perex@suse.cz> | 2004-05-17 19:26:10 +0200 |
commit | 7e5f13f2ba1b07e19ed27046844f45a1ff16944c (patch) | |
tree | 8946f52015106781988dad8aebdc234b11ed79a3 /sound | |
parent | aaffb2af2736f9c6e014a44432500bd2dd158cbe (diff) | |
download | history-7e5f13f2ba1b07e19ed27046844f45a1ff16944c.tar.gz |
ALSA CVS update - Takashi Iwai <tiwai@suse.de>
ATIIXP driver
- fixed the direct SPDIF playback mode. (still experimental)
- use the different driver id name for the direct spdif mode, so that
alsa-lib can read another corresponding configuration.
Diffstat (limited to 'sound')
-rw-r--r-- | sound/pci/atiixp.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/sound/pci/atiixp.c b/sound/pci/atiixp.c index de0e5067e33dbb..4b92e7bdc9569e 100644 --- a/sound/pci/atiixp.c +++ b/sound/pci/atiixp.c @@ -862,9 +862,7 @@ static int snd_atiixp_spdif_prepare(snd_pcm_substream_t *substream) ATI_REG_CMD_INTERLEAVE_OUT : 0); } else { atiixp_update(chip, CMD, ATI_REG_CMD_SPDF_CONFIG_MASK, 0); - atiixp_update(chip, CMD, ATI_REG_CMD_INTERLEAVE_SPDF, - substream->runtime->format == SNDRV_PCM_FORMAT_S16_LE ? - ATI_REG_CMD_INTERLEAVE_SPDF : 0); + atiixp_update(chip, CMD, ATI_REG_CMD_INTERLEAVE_SPDF, 0); } spin_unlock(&chip->reg_lock); return 0; @@ -1024,9 +1022,8 @@ static int snd_atiixp_pcm_open(snd_pcm_substream_t *substream, atiixp_dma_t *dma runtime->hw.rates = chip->pcms[pcm_type]->rates; snd_pcm_limit_hw_rates(runtime); } else { - /* SPDIF */ - runtime->hw.rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_32000; - runtime->hw.rate_min = 32000; + /* direct SPDIF */ + runtime->hw.formats = SNDRV_PCM_FMTBIT_IEC958_SUBFRAME_LE; } if ((err = snd_pcm_hw_constraint_integer(runtime, SNDRV_PCM_HW_PARAM_PERIODS)) < 0) return err; @@ -1277,7 +1274,10 @@ static int __devinit snd_atiixp_pcm_new(atiixp_t *chip) return err; snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &snd_atiixp_spdif_ops); pcm->private_data = chip; - strcpy(pcm->name, "ATI IXP IEC958"); + if (chip->spdif_over_aclink) + strcpy(pcm->name, "ATI IXP IEC958 (AC97)"); + else + strcpy(pcm->name, "ATI IXP IEC958 (Direct)"); chip->pcmdevs[1] = pcm; snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV, @@ -1584,7 +1584,7 @@ static int __devinit snd_atiixp_probe(struct pci_dev *pci, pci_read_config_byte(pci, PCI_REVISION_ID, &revision); - strcpy(card->driver, "ATIIXP"); + strcpy(card->driver, spdif_aclink[dev] ? "ATIIXP" : "ATIIXP-SPDMA"); strcpy(card->shortname, "ATI IXP"); if ((err = snd_atiixp_create(card, pci, &chip)) < 0) goto __error; |