提交 cbe83b17 编写于 作者: L Liam Girdwood 提交者: Jaroslav Kysela

[ALSA] soc - ASoC 0.13 WM9712 codec driver

This patch updates the WM9712 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.
o Added DAI operations for codec and CPU interfaces.
o Removed config_sysclk() function and struct snd_soc_clock_info. No
longer needed as clocking is now configured manually in the machine
drivers. Also removed other clocking data from structures.
Signed-off-by: NLiam Girdwood <lg@opensource.wolfsonmicro.com>
Signed-off-by: NTakashi Iwai <tiwai@suse.de>
Signed-off-by: NJaroslav Kysela <perex@suse.cz>
上级 4422b606
...@@ -34,23 +34,6 @@ static unsigned int ac97_read(struct snd_soc_codec *codec, ...@@ -34,23 +34,6 @@ static unsigned int ac97_read(struct snd_soc_codec *codec,
static int ac97_write(struct snd_soc_codec *codec, static int ac97_write(struct snd_soc_codec *codec,
unsigned int reg, unsigned int val); unsigned int reg, unsigned int val);
#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 ac97_modes[] = {
{
.pcmfmt = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S18_3LE,
.pcmrate = AC97_RATES,
.pcmdir = AC97_DIR,
},
};
/* /*
* WM9712 register cache * WM9712 register cache
*/ */
...@@ -554,35 +537,38 @@ static int ac97_aux_prepare(struct snd_pcm_substream *substream) ...@@ -554,35 +537,38 @@ static int ac97_aux_prepare(struct snd_pcm_substream *substream)
return ac97_write(codec, AC97_PCM_SURR_DAC_RATE, runtime->rate); return ac97_write(codec, AC97_PCM_SURR_DAC_RATE, runtime->rate);
} }
#define WM9712_AC97_RATES (SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 |\
SNDRV_PCM_RATE_22050 | SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000)
struct snd_soc_codec_dai wm9712_dai[] = { struct snd_soc_codec_dai wm9712_dai[] = {
{ {
.name = "AC97 HiFi", .name = "AC97 HiFi",
.playback = { .playback = {
.stream_name = "HiFi Playback", .stream_name = "HiFi Playback",
.channels_min = 1, .channels_min = 1,
.channels_max = 2,}, .channels_max = 2,
.rates = WM9712_AC97_RATES,
.formats = SNDRV_PCM_FMTBIT_S16_LE,},
.capture = { .capture = {
.stream_name = "HiFi Capture", .stream_name = "HiFi Capture",
.channels_min = 1, .channels_min = 1,
.channels_max = 2,}, .channels_max = 2,
.rates = WM9712_AC97_RATES,
.formats = SNDRV_PCM_FMTBIT_S16_LE,},
.ops = { .ops = {
.prepare = ac97_prepare,}, .prepare = ac97_prepare,},
.caps = { },
.num_modes = ARRAY_SIZE(ac97_modes), {
.mode = ac97_modes,},
},
{
.name = "AC97 Aux", .name = "AC97 Aux",
.playback = { .playback = {
.stream_name = "Aux Playback", .stream_name = "Aux Playback",
.channels_min = 1, .channels_min = 1,
.channels_max = 1,}, .channels_max = 1,
.rates = WM9712_AC97_RATES,
.formats = SNDRV_PCM_FMTBIT_S16_LE,},
.ops = { .ops = {
.prepare = ac97_aux_prepare,}, .prepare = ac97_aux_prepare,},
.caps = { }
.num_modes = ARRAY_SIZE(ac97_modes),
.mode = ac97_modes,},
},
}; };
EXPORT_SYMBOL_GPL(wm9712_dai); EXPORT_SYMBOL_GPL(wm9712_dai);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册