Commit c447064d authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'sound-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound

Pull sound fixes from Takashi Iwai:
 "Nothing exciting here: just a few regression fixes for HD-audio and
  ASoC, also the support of missing 32bit compat ioctl for HDSPM."

* tag 'sound-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
  ALSA: hdspm - Provide ioctl_compat
  ALSA: hda/realtek - Apply the coef-setup only to ALC269VB
  ALSA: hda - add quirk to detect CD input on Gigabyte EP45-DS3
  ASoC: neo1973: fix neo1973 wm8753 initialization
parents 8cd5c866 8de5d6f1
...@@ -2068,12 +2068,16 @@ static int alc_build_controls(struct hda_codec *codec) ...@@ -2068,12 +2068,16 @@ static int alc_build_controls(struct hda_codec *codec)
*/ */
static void alc_init_special_input_src(struct hda_codec *codec); static void alc_init_special_input_src(struct hda_codec *codec);
static int alc269_fill_coef(struct hda_codec *codec);
static int alc_init(struct hda_codec *codec) static int alc_init(struct hda_codec *codec)
{ {
struct alc_spec *spec = codec->spec; struct alc_spec *spec = codec->spec;
unsigned int i; unsigned int i;
if (codec->vendor_id == 0x10ec0269)
alc269_fill_coef(codec);
alc_fix_pll(codec); alc_fix_pll(codec);
alc_auto_init_amp(codec, spec->init_amp); alc_auto_init_amp(codec, spec->init_amp);
...@@ -4367,6 +4371,7 @@ enum { ...@@ -4367,6 +4371,7 @@ enum {
ALC882_FIXUP_PB_M5210, ALC882_FIXUP_PB_M5210,
ALC882_FIXUP_ACER_ASPIRE_7736, ALC882_FIXUP_ACER_ASPIRE_7736,
ALC882_FIXUP_ASUS_W90V, ALC882_FIXUP_ASUS_W90V,
ALC889_FIXUP_CD,
ALC889_FIXUP_VAIO_TT, ALC889_FIXUP_VAIO_TT,
ALC888_FIXUP_EEE1601, ALC888_FIXUP_EEE1601,
ALC882_FIXUP_EAPD, ALC882_FIXUP_EAPD,
...@@ -4494,6 +4499,13 @@ static const struct alc_fixup alc882_fixups[] = { ...@@ -4494,6 +4499,13 @@ static const struct alc_fixup alc882_fixups[] = {
{ } { }
} }
}, },
[ALC889_FIXUP_CD] = {
.type = ALC_FIXUP_PINS,
.v.pins = (const struct alc_pincfg[]) {
{ 0x1c, 0x993301f0 }, /* CD */
{ }
}
},
[ALC889_FIXUP_VAIO_TT] = { [ALC889_FIXUP_VAIO_TT] = {
.type = ALC_FIXUP_PINS, .type = ALC_FIXUP_PINS,
.v.pins = (const struct alc_pincfg[]) { .v.pins = (const struct alc_pincfg[]) {
...@@ -4650,6 +4662,7 @@ static const struct snd_pci_quirk alc882_fixup_tbl[] = { ...@@ -4650,6 +4662,7 @@ static const struct snd_pci_quirk alc882_fixup_tbl[] = {
SND_PCI_QUIRK(0x1071, 0x8258, "Evesham Voyaeger", ALC882_FIXUP_EAPD), SND_PCI_QUIRK(0x1071, 0x8258, "Evesham Voyaeger", ALC882_FIXUP_EAPD),
SND_PCI_QUIRK_VENDOR(0x1462, "MSI", ALC882_FIXUP_GPIO3), SND_PCI_QUIRK_VENDOR(0x1462, "MSI", ALC882_FIXUP_GPIO3),
SND_PCI_QUIRK(0x1458, 0xa002, "Gigabyte EP45-DS3", ALC889_FIXUP_CD),
SND_PCI_QUIRK(0x147b, 0x107a, "Abit AW9D-MAX", ALC882_FIXUP_ABIT_AW9D_MAX), SND_PCI_QUIRK(0x147b, 0x107a, "Abit AW9D-MAX", ALC882_FIXUP_ABIT_AW9D_MAX),
SND_PCI_QUIRK_VENDOR(0x1558, "Clevo laptop", ALC882_FIXUP_EAPD), SND_PCI_QUIRK_VENDOR(0x1558, "Clevo laptop", ALC882_FIXUP_EAPD),
SND_PCI_QUIRK(0x161f, 0x2054, "Medion laptop", ALC883_FIXUP_EAPD), SND_PCI_QUIRK(0x161f, 0x2054, "Medion laptop", ALC883_FIXUP_EAPD),
...@@ -5467,8 +5480,12 @@ static const struct alc_model_fixup alc269_fixup_models[] = { ...@@ -5467,8 +5480,12 @@ static const struct alc_model_fixup alc269_fixup_models[] = {
static int alc269_fill_coef(struct hda_codec *codec) static int alc269_fill_coef(struct hda_codec *codec)
{ {
struct alc_spec *spec = codec->spec;
int val; int val;
if (spec->codec_variant != ALC269_TYPE_ALC269VB)
return 0;
if ((alc_get_coef0(codec) & 0x00ff) < 0x015) { if ((alc_get_coef0(codec) & 0x00ff) < 0x015) {
alc_write_coef_idx(codec, 0xf, 0x960b); alc_write_coef_idx(codec, 0xf, 0x960b);
alc_write_coef_idx(codec, 0xe, 0x8817); alc_write_coef_idx(codec, 0xe, 0x8817);
......
...@@ -6333,6 +6333,7 @@ static int __devinit snd_hdspm_create_hwdep(struct snd_card *card, ...@@ -6333,6 +6333,7 @@ static int __devinit snd_hdspm_create_hwdep(struct snd_card *card,
hw->ops.open = snd_hdspm_hwdep_dummy_op; hw->ops.open = snd_hdspm_hwdep_dummy_op;
hw->ops.ioctl = snd_hdspm_hwdep_ioctl; hw->ops.ioctl = snd_hdspm_hwdep_ioctl;
hw->ops.ioctl_compat = snd_hdspm_hwdep_ioctl;
hw->ops.release = snd_hdspm_hwdep_dummy_op; hw->ops.release = snd_hdspm_hwdep_dummy_op;
return 0; return 0;
......
...@@ -367,7 +367,7 @@ static struct snd_soc_dai_link neo1973_dai[] = { ...@@ -367,7 +367,7 @@ static struct snd_soc_dai_link neo1973_dai[] = {
.platform_name = "samsung-audio", .platform_name = "samsung-audio",
.cpu_dai_name = "s3c24xx-iis", .cpu_dai_name = "s3c24xx-iis",
.codec_dai_name = "wm8753-hifi", .codec_dai_name = "wm8753-hifi",
.codec_name = "wm8753-codec.0-001a", .codec_name = "wm8753.0-001a",
.init = neo1973_wm8753_init, .init = neo1973_wm8753_init,
.ops = &neo1973_hifi_ops, .ops = &neo1973_hifi_ops,
}, },
...@@ -376,7 +376,7 @@ static struct snd_soc_dai_link neo1973_dai[] = { ...@@ -376,7 +376,7 @@ static struct snd_soc_dai_link neo1973_dai[] = {
.stream_name = "Voice", .stream_name = "Voice",
.cpu_dai_name = "dfbmcs320-pcm", .cpu_dai_name = "dfbmcs320-pcm",
.codec_dai_name = "wm8753-voice", .codec_dai_name = "wm8753-voice",
.codec_name = "wm8753-codec.0-001a", .codec_name = "wm8753.0-001a",
.ops = &neo1973_voice_ops, .ops = &neo1973_voice_ops,
}, },
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment