[ALSA] soc - ASoC 0.13 generic AC97 codec
authorLiam Girdwood <lg@opensource.wolfsonmicro.com>
Fri, 2 Feb 2007 16:16:41 +0000 (17:16 +0100)
committerJaroslav Kysela <perex@suse.cz>
Fri, 9 Feb 2007 08:03:41 +0000 (09:03 +0100)
This patch updates the AC97 codec driver to the new API in ASoC 0.13.
Changes:-
o Removed DAI capabilities matching code in favour of manual matching in
the machine drivers.

Signed-off-by: Liam Girdwood <lg@opensource.wolfsonmicro.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
sound/soc/codecs/ac97.c

index dd1a9f5..55bc55e 100644 (file)
 #include <sound/initval.h>
 #include <sound/soc.h>
 
-#define AC97_VERSION "0.5"
-
-#define AC97_DIR \
-       (SND_SOC_DAIDIR_PLAYBACK | SND_SOC_DAIDIR_CAPTURE)
-
-#define AC97_RATES \
-       (SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 | SNDRV_PCM_RATE_16000 | \
-       SNDRV_PCM_RATE_22050 | SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 | \
-       SNDRV_PCM_RATE_48000)
-
-/* may need to expand this */
-static struct snd_soc_dai_mode soc_ac97[] = {
-       {0, 0,  SNDRV_PCM_FMTBIT_S16_LE,        AC97_RATES},
-       {0, 0,  SNDRV_PCM_FMTBIT_S18_3LE,       AC97_RATES},
-       {0, 0,  SNDRV_PCM_FMTBIT_S20_3LE,       AC97_RATES},
-};
+#define AC97_VERSION "0.6"
 
 static int ac97_prepare(struct snd_pcm_substream *substream)
 {
@@ -55,21 +40,25 @@ static int ac97_prepare(struct snd_pcm_substream *substream)
        return snd_ac97_set_rate(codec->ac97, reg, runtime->rate);
 }
 
+#define STD_AC97_RATES (SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 |\
+               SNDRV_PCM_RATE_22050 | SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000)
+
 static struct snd_soc_codec_dai ac97_dai = {
        .name = "AC97 HiFi",
        .playback = {
                .stream_name = "AC97 Playback",
                .channels_min = 1,
-               .channels_max = 2,},
+               .channels_max = 2,
+               .rates = STD_AC97_RATES,
+               .formats = SNDRV_PCM_FMTBIT_S16_LE,},
        .capture = {
                .stream_name = "AC97 Capture",
                .channels_min = 1,
-               .channels_max = 2,},
+               .channels_max = 2,
+               .rates = STD_AC97_RATES,
+               .formats = SNDRV_PCM_FMTBIT_S16_LE,},
        .ops = {
                .prepare = ac97_prepare,},
-       .caps = {
-               .num_modes = ARRAY_SIZE(soc_ac97),
-               .mode = soc_ac97,},
 };
 
 static unsigned int ac97_read(struct snd_soc_codec *codec,