提交 84b37df4 编写于 作者: L Linus Torvalds

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
...@@ -83,8 +83,8 @@ config SND_SOC_ALL_CODECS ...@@ -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) ...@@ -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), ...@@ -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, ...@@ -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, ...@@ -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, ...@@ -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");
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册