Skip to content

Commit 5f93393

Browse files
committed
Merge tag 'sound-5.4-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound fixes from Takashi Iwai: "Just a few small fixes for the usual suspect, HD- and USB-audio: enablement of runtime PM for Nvidia due to the recent PCI changes, a fix for potential hangs with recent HD-audio platforms, and the rest device-specific quirks" * tag 'sound-5.4-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: ALSA: hda - Force runtime PM on Nvidia HDMI codecs ALSA: hda/realtek - Enable headset mic on Asus MJ401TA ALSA: usb-audio: Disable quirks for BOSS Katana amplifiers ALSA: hdac: clear link output stream mapping ALSA: hda/realtek: Reduce the Headphone static noise on XPS 9350/9360
2 parents adca4ce + 94989e3 commit 5f93393

File tree

5 files changed

+45
-3
lines changed

5 files changed

+45
-3
lines changed

include/sound/hda_register.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,9 @@ enum { SDI0, SDI1, SDI2, SDI3, SDO0, SDO1, SDO2, SDO3 };
264264
#define AZX_REG_ML_LOUTPAY 0x20
265265
#define AZX_REG_ML_LINPAY 0x30
266266

267+
/* bit0 is reserved, with BIT(1) mapping to stream1 */
268+
#define ML_LOSIDV_STREAM_MASK 0xFFFE
269+
267270
#define ML_LCTL_SCF_MASK 0xF
268271
#define AZX_MLCTL_SPA (0x1 << 16)
269272
#define AZX_MLCTL_CPA (0x1 << 23)

sound/hda/ext/hdac_ext_controller.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,11 @@ int snd_hdac_ext_bus_link_get(struct hdac_bus *bus,
270270

271271
ret = snd_hdac_ext_bus_link_power_up(link);
272272

273+
/*
274+
* clear the register to invalidate all the output streams
275+
*/
276+
snd_hdac_updatew(link->ml_addr, AZX_REG_ML_LOSIDV,
277+
ML_LOSIDV_STREAM_MASK, 0);
273278
/*
274279
* wait for 521usec for codec to report status
275280
* HDA spec section 4.3 - Codec Discovery

sound/pci/hda/patch_hdmi.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3474,6 +3474,8 @@ static int patch_nvhdmi(struct hda_codec *codec)
34743474
nvhdmi_chmap_cea_alloc_validate_get_type;
34753475
spec->chmap.ops.chmap_validate = nvhdmi_chmap_validate;
34763476

3477+
codec->link_down_at_suspend = 1;
3478+
34773479
generic_acomp_init(codec, &nvhdmi_audio_ops, nvhdmi_port2pin);
34783480

34793481
return 0;

sound/pci/hda/patch_realtek.c

Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5358,6 +5358,17 @@ static void alc271_hp_gate_mic_jack(struct hda_codec *codec,
53585358
}
53595359
}
53605360

5361+
static void alc256_fixup_dell_xps_13_headphone_noise2(struct hda_codec *codec,
5362+
const struct hda_fixup *fix,
5363+
int action)
5364+
{
5365+
if (action != HDA_FIXUP_ACT_PRE_PROBE)
5366+
return;
5367+
5368+
snd_hda_codec_amp_stereo(codec, 0x1a, HDA_INPUT, 0, HDA_AMP_VOLMASK, 1);
5369+
snd_hda_override_wcaps(codec, 0x1a, get_wcaps(codec, 0x1a) & ~AC_WCAP_IN_AMP);
5370+
}
5371+
53615372
static void alc269_fixup_limit_int_mic_boost(struct hda_codec *codec,
53625373
const struct hda_fixup *fix,
53635374
int action)
@@ -5822,6 +5833,7 @@ enum {
58225833
ALC298_FIXUP_DELL_AIO_MIC_NO_PRESENCE,
58235834
ALC275_FIXUP_DELL_XPS,
58245835
ALC256_FIXUP_DELL_XPS_13_HEADPHONE_NOISE,
5836+
ALC256_FIXUP_DELL_XPS_13_HEADPHONE_NOISE2,
58255837
ALC293_FIXUP_LENOVO_SPK_NOISE,
58265838
ALC233_FIXUP_LENOVO_LINE2_MIC_HOTKEY,
58275839
ALC255_FIXUP_DELL_SPK_NOISE,
@@ -5869,6 +5881,7 @@ enum {
58695881
ALC225_FIXUP_WYSE_AUTO_MUTE,
58705882
ALC225_FIXUP_WYSE_DISABLE_MIC_VREF,
58715883
ALC286_FIXUP_ACER_AIO_HEADSET_MIC,
5884+
ALC256_FIXUP_ASUS_HEADSET_MIC,
58725885
ALC256_FIXUP_ASUS_MIC_NO_PRESENCE,
58735886
ALC299_FIXUP_PREDATOR_SPK,
58745887
ALC294_FIXUP_ASUS_INTSPK_HEADSET_MIC,
@@ -6558,6 +6571,12 @@ static const struct hda_fixup alc269_fixups[] = {
65586571
.chained = true,
65596572
.chain_id = ALC255_FIXUP_DELL1_MIC_NO_PRESENCE
65606573
},
6574+
[ALC256_FIXUP_DELL_XPS_13_HEADPHONE_NOISE2] = {
6575+
.type = HDA_FIXUP_FUNC,
6576+
.v.func = alc256_fixup_dell_xps_13_headphone_noise2,
6577+
.chained = true,
6578+
.chain_id = ALC256_FIXUP_DELL_XPS_13_HEADPHONE_NOISE
6579+
},
65616580
[ALC293_FIXUP_LENOVO_SPK_NOISE] = {
65626581
.type = HDA_FIXUP_FUNC,
65636582
.v.func = alc_fixup_disable_aamix,
@@ -6912,6 +6931,15 @@ static const struct hda_fixup alc269_fixups[] = {
69126931
.chained = true,
69136932
.chain_id = ALC286_FIXUP_ACER_AIO_MIC_NO_PRESENCE
69146933
},
6934+
[ALC256_FIXUP_ASUS_HEADSET_MIC] = {
6935+
.type = HDA_FIXUP_PINS,
6936+
.v.pins = (const struct hda_pintbl[]) {
6937+
{ 0x19, 0x03a11020 }, /* headset mic with jack detect */
6938+
{ }
6939+
},
6940+
.chained = true,
6941+
.chain_id = ALC256_FIXUP_ASUS_HEADSET_MODE
6942+
},
69156943
[ALC256_FIXUP_ASUS_MIC_NO_PRESENCE] = {
69166944
.type = HDA_FIXUP_PINS,
69176945
.v.pins = (const struct hda_pintbl[]) {
@@ -7001,17 +7029,17 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
70017029
SND_PCI_QUIRK(0x1028, 0x06de, "Dell", ALC293_FIXUP_DISABLE_AAMIX_MULTIJACK),
70027030
SND_PCI_QUIRK(0x1028, 0x06df, "Dell", ALC293_FIXUP_DISABLE_AAMIX_MULTIJACK),
70037031
SND_PCI_QUIRK(0x1028, 0x06e0, "Dell", ALC293_FIXUP_DISABLE_AAMIX_MULTIJACK),
7004-
SND_PCI_QUIRK(0x1028, 0x0704, "Dell XPS 13 9350", ALC256_FIXUP_DELL_XPS_13_HEADPHONE_NOISE),
7032+
SND_PCI_QUIRK(0x1028, 0x0704, "Dell XPS 13 9350", ALC256_FIXUP_DELL_XPS_13_HEADPHONE_NOISE2),
70057033
SND_PCI_QUIRK(0x1028, 0x0706, "Dell Inspiron 7559", ALC256_FIXUP_DELL_INSPIRON_7559_SUBWOOFER),
70067034
SND_PCI_QUIRK(0x1028, 0x0725, "Dell Inspiron 3162", ALC255_FIXUP_DELL_SPK_NOISE),
70077035
SND_PCI_QUIRK(0x1028, 0x0738, "Dell Precision 5820", ALC269_FIXUP_NO_SHUTUP),
7008-
SND_PCI_QUIRK(0x1028, 0x075b, "Dell XPS 13 9360", ALC256_FIXUP_DELL_XPS_13_HEADPHONE_NOISE),
7036+
SND_PCI_QUIRK(0x1028, 0x075b, "Dell XPS 13 9360", ALC256_FIXUP_DELL_XPS_13_HEADPHONE_NOISE2),
70097037
SND_PCI_QUIRK(0x1028, 0x075c, "Dell XPS 27 7760", ALC298_FIXUP_SPK_VOLUME),
70107038
SND_PCI_QUIRK(0x1028, 0x075d, "Dell AIO", ALC298_FIXUP_SPK_VOLUME),
70117039
SND_PCI_QUIRK(0x1028, 0x07b0, "Dell Precision 7520", ALC295_FIXUP_DISABLE_DAC3),
70127040
SND_PCI_QUIRK(0x1028, 0x0798, "Dell Inspiron 17 7000 Gaming", ALC256_FIXUP_DELL_INSPIRON_7559_SUBWOOFER),
70137041
SND_PCI_QUIRK(0x1028, 0x080c, "Dell WYSE", ALC225_FIXUP_DELL_WYSE_MIC_NO_PRESENCE),
7014-
SND_PCI_QUIRK(0x1028, 0x082a, "Dell XPS 13 9360", ALC256_FIXUP_DELL_XPS_13_HEADPHONE_NOISE),
7042+
SND_PCI_QUIRK(0x1028, 0x082a, "Dell XPS 13 9360", ALC256_FIXUP_DELL_XPS_13_HEADPHONE_NOISE2),
70157043
SND_PCI_QUIRK(0x1028, 0x084b, "Dell", ALC274_FIXUP_DELL_AIO_LINEOUT_VERB),
70167044
SND_PCI_QUIRK(0x1028, 0x084e, "Dell", ALC274_FIXUP_DELL_AIO_LINEOUT_VERB),
70177045
SND_PCI_QUIRK(0x1028, 0x0871, "Dell Precision 3630", ALC255_FIXUP_DELL_HEADSET_MIC),
@@ -7108,6 +7136,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
71087136
SND_PCI_QUIRK(0x1043, 0x1517, "Asus Zenbook UX31A", ALC269VB_FIXUP_ASUS_ZENBOOK_UX31A),
71097137
SND_PCI_QUIRK(0x1043, 0x16e3, "ASUS UX50", ALC269_FIXUP_STEREO_DMIC),
71107138
SND_PCI_QUIRK(0x1043, 0x17d1, "ASUS UX431FL", ALC294_FIXUP_ASUS_INTSPK_HEADSET_MIC),
7139+
SND_PCI_QUIRK(0x1043, 0x18b1, "Asus MJ401TA", ALC256_FIXUP_ASUS_HEADSET_MIC),
71117140
SND_PCI_QUIRK(0x1043, 0x1a13, "Asus G73Jw", ALC269_FIXUP_ASUS_G73JW),
71127141
SND_PCI_QUIRK(0x1043, 0x1a30, "ASUS X705UD", ALC256_FIXUP_ASUS_MIC),
71137142
SND_PCI_QUIRK(0x1043, 0x1b13, "Asus U41SV", ALC269_FIXUP_INV_DMIC),

sound/usb/pcm.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -348,6 +348,9 @@ static int set_sync_ep_implicit_fb_quirk(struct snd_usb_substream *subs,
348348
ep = 0x84;
349349
ifnum = 0;
350350
goto add_sync_ep_from_ifnum;
351+
case USB_ID(0x0582, 0x01d8): /* BOSS Katana */
352+
/* BOSS Katana amplifiers do not need quirks */
353+
return 0;
351354
}
352355

353356
if (attr == USB_ENDPOINT_SYNC_ASYNC &&

0 commit comments

Comments
 (0)