Re: Fwd: [Bug 217440] New: ALC236 audio disappears from HP 15z-fc000 on warm boot

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 15 Aug 2023 10:08:48 +0200,
Kailang wrote:
> 
> Hi Takashi,
> 
> I think maybe attach patch is what you want.

Looks good.  Let's ask the reporter to test with it.


Thanks!

Takashi

> 
> > -----Original Message-----
> > From: Joseph C. Sible <josephcsible@xxxxxxxxx>
> > Sent: Friday, August 4, 2023 10:35 PM
> > To: Takashi Iwai <tiwai@xxxxxxx>
> > Cc: Kailang <kailang@xxxxxxxxxxx>; Bagas Sanjaya <bagasdotme@xxxxxxxxx>;
> > regressions@xxxxxxxxxxxxxxx; perex@xxxxxxxx; tiwai@xxxxxxxx;
> > alsa-devel@xxxxxxxxxxxxxxxx
> > Subject: Re: Fwd: [Bug 217440] New: ALC236 audio disappears from HP
> > 15z-fc000 on warm boot
> > 
> > 
> > External mail.
> > 
> > 
> > 
> > On Mon, Jul 31, 2023 at 12:14 PM Takashi Iwai <tiwai@xxxxxxx> wrote:
> > >
> > > ... and now we receive a regression report due to this change :-<
> > >   https://bugzilla.kernel.org/show_bug.cgi?id=217732
> > >
> > > I believe the problem is that the patch disabled the 3kpull-low
> > > behavior too much while some codecs still need it.
> > >
> > > The patch changes like:
> > >
> > > @@ -3638,8 +3640,7 @@ static void alc256_shutup(struct hda_codec
> > *codec)
> > >         /* If disable 3k pulldown control for alc257, the Mic detection will
> > not work correctly
> > >          * when booting with headset plugged. So skip setting it for the
> > codec alc257
> > >          */
> > > -       if (codec->core.vendor_id != 0x10ec0236 &&
> > > -           codec->core.vendor_id != 0x10ec0257)
> > > +       if (spec->en_3kpull_low)
> > >                 alc_update_coef_idx(codec, 0x46, 0, 3 << 12);
> > >
> > >         if (!spec->no_shutup_pins)
> > >
> > > ... while the only place setting spec->en_3kpull_low is:
> > >
> > > @@ -10682,6 +10683,8 @@ static int patch_alc269(struct hda_codec
> > *codec)
> > >                 spec->shutup = alc256_shutup;
> > >                 spec->init_hook = alc256_init;
> > >                 spec->gen.mixer_nid = 0; /* ALC256 does not have any
> > > loopback mixer path */
> > > +               if (codec->bus->pci->vendor == PCI_VENDOR_ID_AMD)
> > > +                       spec->en_3kpull_low = true;
> > >                 break;
> > >         case 0x10ec0257:
> > >                 spec->codec_variant = ALC269_TYPE_ALC257;
> > >
> > > Since spec->3n_3kpull_low is false as default, it means that, except
> > > for ALC230/236/256 and PCI vendor AMD, the flag is never set, hence
> > > it's no longer called.
> > >
> > > Shouldn't spec->en_3kpull_low be enabled rather as default?  Or which
> > > models can set it?
> > 
> > In both my original bug and this new bug, the problem was that we're not
> > calling it when we should be. Given that, wouldn't a simple fix be to call it if
> > either the old condition or the new condition is true?
> > E.g., something like this:
> > 
> > if ((codec->core.vendor_id != 0x10ec0236 && codec->core.vendor_id !=
> > 0x10ec0257) || spec->en_3kpull_low)
> > 
> > Joseph C. Sible
> > 
> > ------Please consider the environment before printing this e-mail.
> 
> 



[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Pulse Audio]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux