[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