[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <87ed387ioq.wl-tiwai@suse.de>
Date: Mon, 18 Nov 2024 14:52:37 +0100
From: Takashi Iwai <tiwai@...e.de>
To: Hridesh MG <hridesh699@...il.com>
Cc: Takashi Iwai <tiwai@...e.de>,
Jaroslav Kysela <perex@...ex.cz>,
Takashi Iwai <tiwai@...e.com>,
Jonathan Corbet <corbet@....net>,
Stefan Binding <sbinding@...nsource.cirrus.com>,
Kailang Yang <kailang@...ltek.com>,
Simon Trimmer <simont@...nsource.cirrus.com>,
Joshua Grisham <josh@...huagrisham.com>,
Richard Fitzgerald <rf@...nsource.cirrus.com>,
linux-sound@...r.kernel.org,
linux-kernel@...r.kernel.org,
linux-doc@...r.kernel.org
Subject: Re: [PATCH 1/2] ALSA: hda/realtek: Fix headset mic on Acer Nitro 5
On Sun, 17 Nov 2024 21:24:45 +0100,
Hridesh MG wrote:
>
> > > + [ALC_287_FIXUP_ACER_NITRO_HEADSET_MIC_VERBS] = {
> > > + .type = HDA_FIXUP_VERBS,
> > > + .v.verbs = (const struct hda_verb[]) {
> > > + { 0x20, AC_VERB_SET_COEF_INDEX, 0x45 },
> > > + { 0x20, AC_VERB_SET_PROC_COEF, 0xD689 },
> >
> > This is a generic setup for the headset input in CTIA mode.
> > Do you really need this explicity? Usually it's set up at
> > alc_headset_mode_ctia() when the iPhone type is connected.
> Yeah, the mic wont pick up input without it. I did have a feeling that
> it's supposed to be set up automatically rather than being set as a
> verb but I couldn't figure out which part of the code I'm supposed to
> modify to make that happen. I've tried running it with dynamic
> debugging turned on but I don't see the output of codec_dbg from
> alc_headset_mode_ctia() :(
Is alc_fixup_headset_mode() called by the quirk chain?
When this is set up via quirks, alc_update_headset_mode() gets called
at initialization and this should detect the headset type. At that
point, alc_headset_mode_ctia() would be called if the proper type gets
detected.
> > > static const struct snd2_pci_quirk alc269_fixup_tbl[] = {
> > > @@ -10201,6 +10220,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
> > > SND_PCI_QUIRK(0x1025, 0x1466, "Acer Aspire A515-56", ALC255_FIXUP_ACER_HEADPHONE_AND_MIC),
> > > SND_PCI_QUIRK(0x1025, 0x1534, "Acer Predator PH315-54", ALC255_FIXUP_ACER_MIC_NO_PRESENCE),
> > > SND_PCI_QUIRK(0x1025, 0x169a, "Acer Swift SFG16", ALC256_FIXUP_ACER_SFG16_MICMUTE_LED),
> > > + SND_PCI_QUIRK(0x1025, 0x159c, "Acer Nitro 5 AN515-58", ALC_287_FIXUP_ACER_NITRO_HEADSET_MIC_PIN),
> >
> > The table is sorted in PCI SSID order. Please put at the right
> > place.
> Will do, thanks.
>
> > > + {.id = ALC_287_FIXUP_ACER_NITRO_HEADSET_MIC_PIN, .name = "alc287-fixup-acer-nitro-headset-mic"},
> >
> > Nowadays the less need for a new model name string. You can specify
> > the model with an alias of SSID if any other device needs to apply the
> > same quirk, too. So, unless it's mandatory, better to drop.
> I added the model name string to make debugging easier for users. When
> troubleshooting this issue, I followed many guides that recommended
> the 'Codec-Specific Models' document, but no entry existed for the
> ALC287. I thought that adding a model name would help users quickly
> identify and apply the correct quirk without needing kernel expertise.
> However, if this goes against the current standards, I’m happy to
> adjust.
We used to add static model names in the past, but since some years ago
the driver can accept a style like model=1025:169a option, so there is
no longer need for the explicit new model name string.
thanks,
Takashi
Powered by blists - more mailing lists