Merge branch 'fix/asoc' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6
* 'fix/asoc' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: ASoC: Select wm_hubs automatically for WM8994 ASoC: Remove duplicate AUX definition from WM8776 ASoC:: remove a redundant snd_soc_unregister_codec call in wm8988_register ASoC: wm8727: add a missing return in wm8727_platform_probe ASoC: fsi: fixup wrong value setting order of TDM ASoC: fsi: fixup clock inversion operation
This commit is contained in:
@@ -83,8 +83,8 @@ config SND_SOC_ALL_CODECS
|
|||||||
|
|
||||||
config SND_SOC_WM_HUBS
|
config SND_SOC_WM_HUBS
|
||||||
tristate
|
tristate
|
||||||
default y if SND_SOC_WM8993=y
|
default y if SND_SOC_WM8993=y || SND_SOC_WM8994=y
|
||||||
default m if SND_SOC_WM8993=m
|
default m if SND_SOC_WM8993=m || SND_SOC_WM8994=m
|
||||||
|
|
||||||
config SND_SOC_AC97_CODEC
|
config SND_SOC_AC97_CODEC
|
||||||
tristate
|
tristate
|
||||||
|
@@ -127,6 +127,8 @@ static __devinit int wm8727_platform_probe(struct platform_device *pdev)
|
|||||||
goto err_codec;
|
goto err_codec;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
|
||||||
err_codec:
|
err_codec:
|
||||||
snd_soc_unregister_codec(codec);
|
snd_soc_unregister_codec(codec);
|
||||||
err:
|
err:
|
||||||
|
@@ -94,7 +94,6 @@ SOC_DAPM_SINGLE("Bypass Switch", WM8776_OUTMUX, 2, 1, 0),
|
|||||||
|
|
||||||
static const struct snd_soc_dapm_widget wm8776_dapm_widgets[] = {
|
static const struct snd_soc_dapm_widget wm8776_dapm_widgets[] = {
|
||||||
SND_SOC_DAPM_INPUT("AUX"),
|
SND_SOC_DAPM_INPUT("AUX"),
|
||||||
SND_SOC_DAPM_INPUT("AUX"),
|
|
||||||
|
|
||||||
SND_SOC_DAPM_INPUT("AIN1"),
|
SND_SOC_DAPM_INPUT("AIN1"),
|
||||||
SND_SOC_DAPM_INPUT("AIN2"),
|
SND_SOC_DAPM_INPUT("AIN2"),
|
||||||
|
@@ -885,7 +885,6 @@ static int wm8988_register(struct wm8988_priv *wm8988,
|
|||||||
ret = snd_soc_register_dai(&wm8988_dai);
|
ret = snd_soc_register_dai(&wm8988_dai);
|
||||||
if (ret != 0) {
|
if (ret != 0) {
|
||||||
dev_err(codec->dev, "Failed to register DAI: %d\n", ret);
|
dev_err(codec->dev, "Failed to register DAI: %d\n", ret);
|
||||||
snd_soc_unregister_codec(codec);
|
|
||||||
goto err_codec;
|
goto err_codec;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -683,20 +683,15 @@ static int fsi_dai_startup(struct snd_pcm_substream *substream,
|
|||||||
|
|
||||||
/* clock inversion (CKG2) */
|
/* clock inversion (CKG2) */
|
||||||
data = 0;
|
data = 0;
|
||||||
switch (SH_FSI_INVERSION_MASK & flags) {
|
if (SH_FSI_LRM_INV & flags)
|
||||||
case SH_FSI_LRM_INV:
|
data |= 1 << 12;
|
||||||
data = 1 << 12;
|
if (SH_FSI_BRM_INV & flags)
|
||||||
break;
|
data |= 1 << 8;
|
||||||
case SH_FSI_BRM_INV:
|
if (SH_FSI_LRS_INV & flags)
|
||||||
data = 1 << 8;
|
data |= 1 << 4;
|
||||||
break;
|
if (SH_FSI_BRS_INV & flags)
|
||||||
case SH_FSI_LRS_INV:
|
data |= 1 << 0;
|
||||||
data = 1 << 4;
|
|
||||||
break;
|
|
||||||
case SH_FSI_BRS_INV:
|
|
||||||
data = 1 << 0;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
fsi_reg_write(fsi, CKG2, data);
|
fsi_reg_write(fsi, CKG2, data);
|
||||||
|
|
||||||
/* do fmt, di fmt */
|
/* do fmt, di fmt */
|
||||||
@@ -726,15 +721,15 @@ static int fsi_dai_startup(struct snd_pcm_substream *substream,
|
|||||||
break;
|
break;
|
||||||
case SH_FSI_FMT_TDM:
|
case SH_FSI_FMT_TDM:
|
||||||
msg = "TDM";
|
msg = "TDM";
|
||||||
data = CR_FMT(CR_TDM) | (fsi->chan - 1);
|
|
||||||
fsi->chan = is_play ?
|
fsi->chan = is_play ?
|
||||||
SH_FSI_GET_CH_O(flags) : SH_FSI_GET_CH_I(flags);
|
SH_FSI_GET_CH_O(flags) : SH_FSI_GET_CH_I(flags);
|
||||||
|
data = CR_FMT(CR_TDM) | (fsi->chan - 1);
|
||||||
break;
|
break;
|
||||||
case SH_FSI_FMT_TDM_DELAY:
|
case SH_FSI_FMT_TDM_DELAY:
|
||||||
msg = "TDM Delay";
|
msg = "TDM Delay";
|
||||||
data = CR_FMT(CR_TDM_D) | (fsi->chan - 1);
|
|
||||||
fsi->chan = is_play ?
|
fsi->chan = is_play ?
|
||||||
SH_FSI_GET_CH_O(flags) : SH_FSI_GET_CH_I(flags);
|
SH_FSI_GET_CH_O(flags) : SH_FSI_GET_CH_I(flags);
|
||||||
|
data = CR_FMT(CR_TDM_D) | (fsi->chan - 1);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
dev_err(dai->dev, "unknown format.\n");
|
dev_err(dai->dev, "unknown format.\n");
|
||||||
|
Reference in New Issue
Block a user