mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
ALSA: hda/realtek: Drop unneeded DAC override for HONOR MagicBook Pro 16 2024
Commit1e3e378d63("ALSA: hda/realtek: Enable bass speakers on HONOR MagicBook Pro 16 2024") restricted the speaker pin 0x1b to DAC 0x02, on the assumption that the second speaker pair would otherwise end up on DAC 0x03, as channels 3/4 that a stereo stream never reaches. That assumption was wrong: without the override, pin 0x1b is still connected to DAC 0x02, the only DAC that pin 0x14 can use, so the override changes nothing. With and without it the codec routing is identical and the speakers behave the same with nothing plugged in, with headphones and with a CTIA headset inserted; without it they also keep working after suspend/resume. That commit also got the speaker roles the wrong way round. Pin 0x1b, which the BIOS does configure, drives the bottom speakers, which carry the low and mid frequencies; pin 0x14 drives the tweeters next to the keyboard, and those are the speakers that stay silent without the quirk. Measured with the internal microphones, enabling one pin at a time: at 1 kHz the 0x14 pair alone is more than 30 dB below the 0x1b pair alone, while at 6 kHz the two are within 10 dB of each other. Drop the DAC override and correct the pin comment, so the quirk only sets pin configurations, like the one for the sibling M1020 board (HONOR MRB-XXX). Fixes:1e3e378d63("ALSA: hda/realtek: Enable bass speakers on HONOR MagicBook Pro 16 2024") Assisted-by: LLM Signed-off-by: Denis Yakovlev <mfthesun@vivaldi.net> Link: https://patch.msgid.link/20261005203836.11074-1-mfthesun@vivaldi.net Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
8acd6469f4
commit
5cc1749b5f
|
|
@ -2763,17 +2763,6 @@ static void alc294_fixup_bass_speaker_15(struct hda_codec *codec,
|
|||
}
|
||||
}
|
||||
|
||||
/* route Speaker (0x1b) to DAC 0x02, the only DAC reachable from Bass Speaker (0x14) */
|
||||
static void alc256_fixup_honor_dra_xx_share_dac(struct hda_codec *codec,
|
||||
const struct hda_fixup *fix, int action)
|
||||
{
|
||||
if (action == HDA_FIXUP_ACT_PRE_PROBE) {
|
||||
static const hda_nid_t conn[] = { 0x02 };
|
||||
|
||||
snd_hda_override_conn_list(codec, 0x1b, ARRAY_SIZE(conn), conn);
|
||||
}
|
||||
}
|
||||
|
||||
/* Hook to update amp GPIO4 for automute */
|
||||
static void alc280_hp_gpio4_automute_hook(struct hda_codec *codec,
|
||||
struct hda_jack_callback *jack)
|
||||
|
|
@ -4477,7 +4466,6 @@ enum {
|
|||
ALC236_FIXUP_HP_DMIC,
|
||||
ALC256_FIXUP_HONOR_MRB_XXX_M1020_AUDIO,
|
||||
ALC256_FIXUP_HONOR_DRA_XX_SPEAKERS,
|
||||
ALC256_FIXUP_HONOR_DRA_XX_SHARE_DAC,
|
||||
ALC256_FIXUP_HONOR_DRA_XX_HEADSET_MODE,
|
||||
ALC245_FIXUP_HP_ENVY_X360_15_FH0XXX,
|
||||
ALC287_FIXUP_ACER_MICMUTE_LED,
|
||||
|
|
@ -7227,17 +7215,11 @@ static const struct hda_fixup alc269_fixups[] = {
|
|||
[ALC256_FIXUP_HONOR_DRA_XX_SPEAKERS] = {
|
||||
.type = HDA_FIXUP_PINS,
|
||||
.v.pins = (const struct hda_pintbl[]) {
|
||||
{ 0x14, 0x90170111 }, /* bass speakers */
|
||||
{ 0x14, 0x90170111 }, /* tweeters (top speakers) */
|
||||
{ 0x19, 0x03a1113c }, /* headset mic, without its own jack detect */
|
||||
{ }
|
||||
},
|
||||
.chained = true,
|
||||
.chain_id = ALC256_FIXUP_HONOR_DRA_XX_SHARE_DAC
|
||||
},
|
||||
[ALC256_FIXUP_HONOR_DRA_XX_SHARE_DAC] = {
|
||||
.type = HDA_FIXUP_FUNC,
|
||||
.v.func = alc256_fixup_honor_dra_xx_share_dac,
|
||||
.chained = true,
|
||||
.chain_id = ALC256_FIXUP_HONOR_DRA_XX_HEADSET_MODE
|
||||
},
|
||||
[ALC256_FIXUP_HONOR_DRA_XX_HEADSET_MODE] = {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user