[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: Liam Girdwood <lg@opensource.wolfsonmicro.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
This commit is contained in:
parent
4422b606bc
commit
cbe83b1795
|
@ -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)
|
||||||
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);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue