sound fixes for 3.15-rc2
Just a copule of HD-audio device/codec-specific quirks, and a trivial replacement of udelay() with mdelay() in the old es18xx driver code. All should be safe to apply. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) iQIcBAABAgAGBQJTUNmgAAoJEGwxgFQ9KSmkO8oQAKhW+VIbK2E5VtESqsrb6K2Z yJBBtJJVYmkXk6uU510fuFOGAdqoBi8Z61zQDrN+HbRZwuF3eaJdsXZrwBNv7ceu uVYu6MqZrfW4oqutupNq0+/1A3JY+uaKTXM3TIzhHnyvNcCRMbkR2Ql2SKZKPNC3 24D87wzH3iAvGs6gm4bIg8a40cySYBUNtdxyegldOULzglaEZULPQGg7cp9pMdSb JdWNZY7b57MdeZm5bYG82ERCrVZBgFO4pWpZ5uGeesbXX6uKmHLN7Z7w8Kv09g5w q6zolpUUdswpXr8073hk6tLUW7SsAHRUlI2Vxk4eL3UhQYg0KcwJWeqf/WKOBox4 Mmq8RLeK3a3EtCBxmTif6DqmPiZ28XfsGgIIgkbOvRh4wqfA77oO9fJC7VRD+Uag +HYJwtC8iYHYN7OpD0ywQ85iurJLXzuTKV9B+g/wRoWGXjBJDjnY3NfQXzbQay4q I1W5aBdiAXKMvDE2XPkiEE4VadzV30Jx2okn1UeET3lj1Qpx4+4KkjBkh3rtNGIr 2LPfQxnQO3Uq7kC++x+WEj7sHO6poVND3LVm6wTzS804M7aJq4NkDQk00LQuRDC7 oJVqp1tuu4ThXQEoDTG2dYyMDfXQauig1uAJRqGcBicTnkFNAHplQ5m5gbFSPjZh vdxdiAd+ruEdJVuxgdlv =mjKH -----END PGP SIGNATURE----- Merge tag 'sound-3.15-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound Pull sound fixes from Takashi Iwai: "Just a copule of HD-audio device/codec-specific quirks, and a trivial replacement of udelay() with mdelay() in the old es18xx driver code. All should be safe to apply" * tag 'sound-3.15-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: ALSA: hda/realtek - Add headset Mic support for Dell machine ALSA: hda - add headset mic detect quirk for a Dell laptop ALSA: es18xx driver should use udelay error ALSA: hda/realtek - Add support of ALC288 codec
This commit is contained in:
commit
2f3e12bd9c
2 changed files with 10 additions and 5 deletions
|
@ -520,7 +520,7 @@ static int snd_es18xx_playback1_trigger(struct snd_es18xx *chip,
|
||||||
snd_es18xx_mixer_write(chip, 0x78, 0x93);
|
snd_es18xx_mixer_write(chip, 0x78, 0x93);
|
||||||
#ifdef AVOID_POPS
|
#ifdef AVOID_POPS
|
||||||
/* Avoid pops */
|
/* Avoid pops */
|
||||||
udelay(100000);
|
mdelay(100);
|
||||||
if (chip->caps & ES18XX_PCM2)
|
if (chip->caps & ES18XX_PCM2)
|
||||||
/* Restore Audio 2 volume */
|
/* Restore Audio 2 volume */
|
||||||
snd_es18xx_mixer_write(chip, 0x7C, chip->audio2_vol);
|
snd_es18xx_mixer_write(chip, 0x7C, chip->audio2_vol);
|
||||||
|
@ -537,7 +537,7 @@ static int snd_es18xx_playback1_trigger(struct snd_es18xx *chip,
|
||||||
/* Stop DMA */
|
/* Stop DMA */
|
||||||
snd_es18xx_mixer_write(chip, 0x78, 0x00);
|
snd_es18xx_mixer_write(chip, 0x78, 0x00);
|
||||||
#ifdef AVOID_POPS
|
#ifdef AVOID_POPS
|
||||||
udelay(25000);
|
mdelay(25);
|
||||||
if (chip->caps & ES18XX_PCM2)
|
if (chip->caps & ES18XX_PCM2)
|
||||||
/* Set Audio 2 volume to 0 */
|
/* Set Audio 2 volume to 0 */
|
||||||
snd_es18xx_mixer_write(chip, 0x7C, 0);
|
snd_es18xx_mixer_write(chip, 0x7C, 0);
|
||||||
|
@ -596,7 +596,7 @@ static int snd_es18xx_capture_prepare(struct snd_pcm_substream *substream)
|
||||||
snd_es18xx_write(chip, 0xA5, count >> 8);
|
snd_es18xx_write(chip, 0xA5, count >> 8);
|
||||||
|
|
||||||
#ifdef AVOID_POPS
|
#ifdef AVOID_POPS
|
||||||
udelay(100000);
|
mdelay(100);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Set format */
|
/* Set format */
|
||||||
|
@ -691,7 +691,7 @@ static int snd_es18xx_playback2_trigger(struct snd_es18xx *chip,
|
||||||
snd_es18xx_write(chip, 0xB8, 0x05);
|
snd_es18xx_write(chip, 0xB8, 0x05);
|
||||||
#ifdef AVOID_POPS
|
#ifdef AVOID_POPS
|
||||||
/* Avoid pops */
|
/* Avoid pops */
|
||||||
udelay(100000);
|
mdelay(100);
|
||||||
/* Enable Audio 1 */
|
/* Enable Audio 1 */
|
||||||
snd_es18xx_dsp_command(chip, 0xD1);
|
snd_es18xx_dsp_command(chip, 0xD1);
|
||||||
#endif
|
#endif
|
||||||
|
@ -705,7 +705,7 @@ static int snd_es18xx_playback2_trigger(struct snd_es18xx *chip,
|
||||||
snd_es18xx_write(chip, 0xB8, 0x00);
|
snd_es18xx_write(chip, 0xB8, 0x00);
|
||||||
#ifdef AVOID_POPS
|
#ifdef AVOID_POPS
|
||||||
/* Avoid pops */
|
/* Avoid pops */
|
||||||
udelay(25000);
|
mdelay(25);
|
||||||
/* Disable Audio 1 */
|
/* Disable Audio 1 */
|
||||||
snd_es18xx_dsp_command(chip, 0xD3);
|
snd_es18xx_dsp_command(chip, 0xD3);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -4621,6 +4621,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
|
||||||
SND_PCI_QUIRK(0x1028, 0x0667, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE),
|
SND_PCI_QUIRK(0x1028, 0x0667, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE),
|
||||||
SND_PCI_QUIRK(0x1028, 0x0668, "Dell", ALC255_FIXUP_DELL2_MIC_NO_PRESENCE),
|
SND_PCI_QUIRK(0x1028, 0x0668, "Dell", ALC255_FIXUP_DELL2_MIC_NO_PRESENCE),
|
||||||
SND_PCI_QUIRK(0x1028, 0x0669, "Dell", ALC255_FIXUP_DELL2_MIC_NO_PRESENCE),
|
SND_PCI_QUIRK(0x1028, 0x0669, "Dell", ALC255_FIXUP_DELL2_MIC_NO_PRESENCE),
|
||||||
|
SND_PCI_QUIRK(0x1028, 0x067f, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE),
|
||||||
SND_PCI_QUIRK(0x1028, 0x15cc, "Dell X5 Precision", ALC269_FIXUP_DELL2_MIC_NO_PRESENCE),
|
SND_PCI_QUIRK(0x1028, 0x15cc, "Dell X5 Precision", ALC269_FIXUP_DELL2_MIC_NO_PRESENCE),
|
||||||
SND_PCI_QUIRK(0x1028, 0x15cd, "Dell X5 Precision", ALC269_FIXUP_DELL2_MIC_NO_PRESENCE),
|
SND_PCI_QUIRK(0x1028, 0x15cd, "Dell X5 Precision", ALC269_FIXUP_DELL2_MIC_NO_PRESENCE),
|
||||||
SND_PCI_QUIRK(0x103c, 0x1586, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC2),
|
SND_PCI_QUIRK(0x103c, 0x1586, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC2),
|
||||||
|
@ -4912,6 +4913,7 @@ static int patch_alc269(struct hda_codec *codec)
|
||||||
spec->codec_variant = ALC269_TYPE_ALC285;
|
spec->codec_variant = ALC269_TYPE_ALC285;
|
||||||
break;
|
break;
|
||||||
case 0x10ec0286:
|
case 0x10ec0286:
|
||||||
|
case 0x10ec0288:
|
||||||
spec->codec_variant = ALC269_TYPE_ALC286;
|
spec->codec_variant = ALC269_TYPE_ALC286;
|
||||||
break;
|
break;
|
||||||
case 0x10ec0255:
|
case 0x10ec0255:
|
||||||
|
@ -5539,6 +5541,8 @@ static const struct snd_pci_quirk alc662_fixup_tbl[] = {
|
||||||
SND_PCI_QUIRK(0x1028, 0x0626, "Dell", ALC668_FIXUP_DELL_MIC_NO_PRESENCE),
|
SND_PCI_QUIRK(0x1028, 0x0626, "Dell", ALC668_FIXUP_DELL_MIC_NO_PRESENCE),
|
||||||
SND_PCI_QUIRK(0x1028, 0x0628, "Dell", ALC668_FIXUP_AUTO_MUTE),
|
SND_PCI_QUIRK(0x1028, 0x0628, "Dell", ALC668_FIXUP_AUTO_MUTE),
|
||||||
SND_PCI_QUIRK(0x1028, 0x064e, "Dell", ALC668_FIXUP_AUTO_MUTE),
|
SND_PCI_QUIRK(0x1028, 0x064e, "Dell", ALC668_FIXUP_AUTO_MUTE),
|
||||||
|
SND_PCI_QUIRK(0x1028, 0x0696, "Dell", ALC668_FIXUP_DELL_MIC_NO_PRESENCE),
|
||||||
|
SND_PCI_QUIRK(0x1028, 0x0698, "Dell", ALC668_FIXUP_DELL_MIC_NO_PRESENCE),
|
||||||
SND_PCI_QUIRK(0x103c, 0x1632, "HP RP5800", ALC662_FIXUP_HP_RP5800),
|
SND_PCI_QUIRK(0x103c, 0x1632, "HP RP5800", ALC662_FIXUP_HP_RP5800),
|
||||||
SND_PCI_QUIRK(0x1043, 0x11cd, "Asus N550", ALC662_FIXUP_BASS_1A),
|
SND_PCI_QUIRK(0x1043, 0x11cd, "Asus N550", ALC662_FIXUP_BASS_1A),
|
||||||
SND_PCI_QUIRK(0x1043, 0x1477, "ASUS N56VZ", ALC662_FIXUP_BASS_MODE4_CHMAP),
|
SND_PCI_QUIRK(0x1043, 0x1477, "ASUS N56VZ", ALC662_FIXUP_BASS_MODE4_CHMAP),
|
||||||
|
@ -5781,6 +5785,7 @@ static const struct hda_codec_preset snd_hda_preset_realtek[] = {
|
||||||
{ .id = 0x10ec0284, .name = "ALC284", .patch = patch_alc269 },
|
{ .id = 0x10ec0284, .name = "ALC284", .patch = patch_alc269 },
|
||||||
{ .id = 0x10ec0285, .name = "ALC285", .patch = patch_alc269 },
|
{ .id = 0x10ec0285, .name = "ALC285", .patch = patch_alc269 },
|
||||||
{ .id = 0x10ec0286, .name = "ALC286", .patch = patch_alc269 },
|
{ .id = 0x10ec0286, .name = "ALC286", .patch = patch_alc269 },
|
||||||
|
{ .id = 0x10ec0288, .name = "ALC288", .patch = patch_alc269 },
|
||||||
{ .id = 0x10ec0290, .name = "ALC290", .patch = patch_alc269 },
|
{ .id = 0x10ec0290, .name = "ALC290", .patch = patch_alc269 },
|
||||||
{ .id = 0x10ec0292, .name = "ALC292", .patch = patch_alc269 },
|
{ .id = 0x10ec0292, .name = "ALC292", .patch = patch_alc269 },
|
||||||
{ .id = 0x10ec0293, .name = "ALC293", .patch = patch_alc269 },
|
{ .id = 0x10ec0293, .name = "ALC293", .patch = patch_alc269 },
|
||||||
|
|
Loading…
Reference in a new issue