[PATCH] ALSA: hda/realtek: Quirks to enable speaker output for Lenovo Legion 7i 15IMHG05, Yoga 7i 14ITL5/15ITL5, and 13s Gen2 laptops.

Cameron Berkenpas cam at neo-zeon.de
Mon Sep 13 23:23:38 CEST 2021


I figured out the problem. We need to this for HDA_FIXUP_ACT_PRE_PROBE 
rather than HDA_FIXUP_ACT_INIT.

v2 patching coming in soon. I've added a thanks section as a number of 
people helped to test and/or fix up the verbs. I may want to update the 
thank-you list if anyone requests to be added (since I don't remember 
everyone who assisted).

-Cameron


On 9/13/21 5:27 AM, Takashi Iwai wrote:
> On Mon, 13 Sep 2021 13:59:08 +0200,
> Cameron Berkenpas wrote:
>>
>> I'll test this  and re-submit today or tomorrow. Should I re-submit
>> the patch entirely? Ie, a new email thread with a [PATCH v2] subject?
> Yes, a resubmission of a v2 patch would be appreciated.
>
>> Thanks for the fast response! It actually made it to my inbox this time.
> Heh :)
>
>
> thanks,
>
> Takashi
>
>> -Cameron
>>
>> On 9/12/21 10:28 PM, Takashi Iwai wrote:
>>> On Mon, 13 Sep 2021 01:07:16 +0200,
>>> Cameron Berkenpas wrote:
>>>> This patch initializes and enables speaker output on the Lenovo Legion 7i
>>>> 15IMHG05, Yoga 7i 14ITL5/15ITL5, and 13s Gen2 series of laptops using the
>>>> HDA verb sequence specific to each model.
>>>>
>>>> Speaker automute is disabled for the Lenovo Legion 7i 15IMHG05 to avoid
>>>> breaking speaker output on resume and when devices are unplugged from its
>>>> headphone jack.
>>>>
>>>> BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=208555
>>>> Signed-off-by: Cameron Berkenpas <cam at neo-zeon.de>
>>> Thanks for the patch.  This version looks almost good, but just one
>>> thing:
>>>
>>>> +/* Fixup for Lenovo Legion 15IMHg05 speaker output on headset removal. */
>>>> +static void alc287_fixup_legion_15imhg05_speakers(struct hda_codec *codec,
>>>> +						  const struct hda_fixup *fix,
>>>> +						  int action)
>>>> +{
>>>> +	struct alc_spec *spec = codec->spec;
>>>> +
>>>> +	switch (action) {
>>>> +	case HDA_FIXUP_ACT_INIT:
>>>> +		spec->gen.automute_speaker = 0;
>>> This flag is effective only until "Auto-Mute Mode" mixer control is
>>> changed, so it's not persistent.  If you'd need to disable the
>>> auto-mute feature, set spec->gen.suppress_auto_mute=1 instead.
>>>
>>>
>>> thanks,
>>>
>>> Takashi



More information about the Alsa-devel mailing list