Re: HDA headset button support

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

 



Hi Takashi,

Intel Chrome team agree the patch and test passed.
I told them, it didn't need to show the headphone and MIC present event in BTN key function.
Patch for patch_realtek.c that I change the COEF index 0x48's value to 0xd011. Please use attach 0003-* to apply. Thanks.
So, it could apply it to upstream now.

+	case HDA_FIXUP_ACT_INIT:
+		switch (codec->core.vendor_id) {
+		case 0x10ec0225:
+		case 0x10ec0295:
+		case 0x10ec0299:
+			alc_write_coef_idx(codec, 0x48, 0xd011);
+			alc_update_coef_idx(codec, 0x49, 0x007f, 0x0045);
+			alc_update_coef_idx(codec, 0x44, 0x007f << 8, 0x0045 << 8);
+			break;
+		case 0x10ec0236:
+		case 0x10ec0256:
+			alc_write_coef_idx(codec, 0x48, 0xd011);
+			alc_update_coef_idx(codec, 0x49, 0x007f, 0x0045);
+			break;
+		}
+		break;
+	}

BR,
Kailang

-----Original Message-----
From: Takashi Iwai <tiwai@xxxxxxx> 
Sent: Tuesday, December 4, 2018 12:34 AM
To: Kailang <kailang@xxxxxxxxxxx>
Cc: (alsa-devel@xxxxxxxxxxxxxxxx) <alsa-devel@xxxxxxxxxxxxxxxx>
Subject: Re: HDA headset button support

On Fri, 30 Nov 2018 07:45:04 +0100,
Kailang wrote:
> 
> Hi Takashi,
> 
> Intel say .... it was not show headset plug and unplug.
> Is that necessary to show headphone and MIC plug and unplug {Event type 5 (EV_SW)}?

If so, it means that the unsol events aren't set up for the proper pins.


Takashi


> Supported events:
>   Event type 0 (EV_SYN)
>   Event type 1 (EV_KEY)
>     Event code 114 (KEY_VOLUMEDOWN)
>     Event code 115 (KEY_VOLUMEUP)
>     Event code 164 (KEY_PLAYPAUSE)
>     Event code 582 (?)
>   Event type 5 (EV_SW)
>     Event code 2 (SW_HEADPHONE_INSERT)
>     Event code 4 (SW_MICROPHONE_INSERT)
> Properties:
> Testing ... (interrupt to exit)
> ***Following block of events is for one single event: pressing one of 
> the buttons on headset***
> Event: time 1543528786.148227, type 1 (EV_KEY), code 115 
> (KEY_VOLUMEUP), value 1
> Event: time 1543528786.148227, -------------- SYN_REPORT ------------
> Event: time 1543528786.148249, type 1 (EV_KEY), code 115 
> (KEY_VOLUMEUP), value 0
> Event: time 1543528786.148249, -------------- SYN_REPORT ------------ 
> ***No events show on evtest when plug or unplug jack***
> 
> BR,
> Kailang
> 
> -----Original Message-----
> From: Takashi Iwai <tiwai@xxxxxxx>
> Sent: Thursday, November 29, 2018 4:28 PM
> To: Kailang <kailang@xxxxxxxxxxx>
> Cc: (alsa-devel@xxxxxxxxxxxxxxxx) <alsa-devel@xxxxxxxxxxxxxxxx>
> Subject: Re: HDA headset button support
> 
> On Thu, 29 Nov 2018 09:21:51 +0100,
> Kailang wrote:
> > 
> > Hi Takashi,
> > 
> > It looks no issue now.
> > Could I need to generate new patch for you?
> 
> You can fold into mine.  I'll need to resubmit to ML in anyway before merging.
> 
> > I will send this patch to Intel to do the test.
> 
> OK, let me know the results (and preferably tested-by tag or such).
> 
> 
> thanks,
> 
> Takashi
> 
> 
> > 
> > BR,
> > Kailang
> > 
> > -----Original Message-----
> > From: Takashi Iwai <tiwai@xxxxxxx>
> > Sent: Thursday, November 29, 2018 3:45 PM
> > To: Kailang <kailang@xxxxxxxxxxx>
> > Cc: (alsa-devel@xxxxxxxxxxxxxxxx) <alsa-devel@xxxxxxxxxxxxxxxx>
> > Subject: Re: HDA headset button support
> > 
> > On Thu, 29 Nov 2018 08:22:39 +0100,
> > Kailang wrote:
> > > 
> > > Hi Takashi,
> > > 
> > > I test the patch.
> > > It will go to Max or Min volume when I press HS button up or down.
> > > 
> > > +			state = jack->button_state;
> > > +			if (get_jack_plug_state(jack->pin_sense))
> > > +				state |= jack->type;
> > > +			snd_jack_report(jack->jack, state);
> > > 			If (jack->nid == 0x55)
> > > 				snd_jack_report(jack->jack, 0); ==> Add this will solve keep volume up and down.
> > > 
> > > If the pin sense active, it will update Mic and Headphone state. 
> > > (Upper code) But it still had chance to update 0x55 during unplug and plug state.
> > > So, Maybe need to clear the Button state. I guess.
> > 
> > As we don't receive button-release events, it makes sense to send the button clear at each time, yes.
> > 
> > For the one-shot button event, you can handle like below.
> > 
> > --- a/sound/pci/hda/hda_jack.c
> > +++ b/sound/pci/hda/hda_jack.c
> > @@ -343,6 +343,11 @@ void snd_hda_jack_report_sync(struct hda_codec *codec)
> >  			if (get_jack_plug_state(jack->pin_sense))
> >  				state |= jack->type;
> >  			snd_jack_report(jack->jack, state);
> > +			if (jack->button_state) {
> > +				snd_jack_report(jack->jack,
> > +						state & ~jack->button_state);
> > +				jack->button_state = 0; /* button released */
> > +			}
> >  		}
> >  }
> >  EXPORT_SYMBOL_GPL(snd_hda_jack_report_sync);
> > 
> > 
> > thanks,
> > 
> > Takashi
> > 
> > > 
> > > BR,
> > > Kailang
> > > 
> > > -----Original Message-----
> > > From: Takashi Iwai <tiwai@xxxxxxx>
> > > Sent: Wednesday, November 28, 2018 10:05 PM
> > > To: Kailang <kailang@xxxxxxxxxxx>
> > > Cc: (alsa-devel@xxxxxxxxxxxxxxxx) <alsa-devel@xxxxxxxxxxxxxxxx>
> > > Subject: Re: HDA headset button support
> > > 
> > > On Wed, 28 Nov 2018 13:03:58 +0100, Kailang wrote:
> > > > 
> > > > Hi Takashi,
> > > > 
> > > > >I'd rather like to extend snd_hda_jack_add_kctl() with the key 
> > > > >support (maybe adding a new function).  You can pass there the 
> > > > >combination of SND_JACK_BTN_X with KEY_XXX in an array.
> > > > 
> > > > Do you mean create new function like below?
> > > > snd_hda_jack_add_key_kctl()
> > > > 
> > > > It couldn't use snd_hda_jack_add_kctl() directly.
> > > > Because it had report pin state and get type from NID.
> > > > 
> > > > 	type = get_input_jack_type(codec, nid);
> > > >         .....
> > > >         .....
> > > >  	state = snd_hda_jack_detect(codec, nid);
> > > > 	snd_jack_report(jack->jack, state ? jack->type : 0);
> > > > 
> > > > So, to create a new function in hda_jack.c was better.
> > > 
> > > Well, this seems more deeper than I thought.
> > > 
> > > Below is my quick attempt to add the infrastructure.  This adds more flexibility but still easiness for other possible button implementations, hopefully.
> > > 
> > > Could you check the series below?
> > > 
> > > 
> > > thanks,
> > > 
> > > Takashi
> > > 
> > > 
> > > ------Please consider the environment before printing this e-mail.
> > > 
> > 
> 

Attachment: 0001-ALSA-hda-jack-button-support.patch
Description: 0001-ALSA-hda-jack-button-support.patch

Attachment: 0003-ALSA-hda-realtek-Enable-headset-button-support-for-n.patch
Description: 0003-ALSA-hda-realtek-Enable-headset-button-support-for-n.patch

_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

[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