Linux kernel -stable discussions
 help / color / mirror / Atom feed
* Re: [PATCH 1/1] Backport Dell XPS 13 (2015) HDA microphone support to v4.0.y
       [not found] <1429655102-4494-1-git-send-email-mario_limonciello@dell.com>
@ 2015-04-28 16:13 ` Mario Limonciello
  2015-04-28 20:04   ` Greg KH
  0 siblings, 1 reply; 4+ messages in thread
From: Mario Limonciello @ 2015-04-28 16:13 UTC (permalink / raw)
  To: stable, gregkh

On 04/21/2015 05:25 PM, Limonciello, Mario wrote:
> This is a straight cherry pick of these commits:
> e1e62b98ebddc3234f3259019d3236f66fc667f8
> f3b703326541d0c1ce85f5e570f6d2b6bd4296ec
>
> Signed-off-by: Mario Limonciello <mario_limonciello@dell.com>
> ---
>   sound/pci/hda/patch_realtek.c | 144 ++++++++++++++++++++++++++++++++++++++++++
>   1 file changed, 144 insertions(+)
>
> diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
> index f9d12c0..52864c2 100644
> --- a/sound/pci/hda/patch_realtek.c
> +++ b/sound/pci/hda/patch_realtek.c
> @@ -3585,6 +3585,14 @@ static void alc_headset_mode_unplugged(struct hda_codec *codec)
>   		WRITE_COEF(0x32, 0x42a3),
>   		{}
>   	};
> +	static struct coef_fw coef0288[] = {
> +		UPDATE_COEF(0x4f, 0xfcc0, 0xc400),
> +		UPDATE_COEF(0x50, 0x2000, 0x2000),
> +		UPDATE_COEF(0x56, 0x0006, 0x0006),
> +		UPDATE_COEF(0x66, 0x0008, 0),
> +		UPDATE_COEF(0x67, 0x2000, 0),
> +		{}
> +	};
>   	static struct coef_fw coef0292[] = {
>   		WRITE_COEF(0x76, 0x000e),
>   		WRITE_COEF(0x6c, 0x2400),
> @@ -3616,6 +3624,10 @@ static void alc_headset_mode_unplugged(struct hda_codec *codec)
>   	case 0x10ec0283:
>   		alc_process_coef_fw(codec, coef0233);
>   		break;
> +	case 0x10ec0286:
> +	case 0x10ec0288:
> +		alc_process_coef_fw(codec, coef0288);
> +		break;
>   	case 0x10ec0292:
>   		alc_process_coef_fw(codec, coef0292);
>   		break;
> @@ -3645,6 +3657,14 @@ static void alc_headset_mode_mic_in(struct hda_codec *codec, hda_nid_t hp_pin,
>   		WRITE_COEF(0x26, 0x008c),
>   		{}
>   	};
> +	static struct coef_fw coef0288[] = {
> +		UPDATE_COEF(0x50, 0x2000, 0),
> +		UPDATE_COEF(0x56, 0x0006, 0),
> +		UPDATE_COEF(0x4f, 0xfcc0, 0xc400),
> +		UPDATE_COEF(0x66, 0x0008, 0x0008),
> +		UPDATE_COEF(0x67, 0x2000, 0x2000),
> +		{}
> +	};
>   	static struct coef_fw coef0292[] = {
>   		WRITE_COEF(0x19, 0xa208),
>   		WRITE_COEF(0x2e, 0xacf0),
> @@ -3678,6 +3698,13 @@ static void alc_headset_mode_mic_in(struct hda_codec *codec, hda_nid_t hp_pin,
>   		alc_process_coef_fw(codec, coef0233);
>   		snd_hda_set_pin_ctl_cache(codec, mic_pin, PIN_VREF50);
>   		break;
> +	case 0x10ec0286:
> +	case 0x10ec0288:
> +		alc_update_coef_idx(codec, 0x4f, 0x000c, 0);
> +		snd_hda_set_pin_ctl_cache(codec, hp_pin, 0);
> +		alc_process_coef_fw(codec, coef0288);
> +		snd_hda_set_pin_ctl_cache(codec, mic_pin, PIN_VREF50);
> +		break;
>   	case 0x10ec0292:
>   		snd_hda_set_pin_ctl_cache(codec, hp_pin, 0);
>   		alc_process_coef_fw(codec, coef0292);
> @@ -3713,6 +3740,14 @@ static void alc_headset_mode_default(struct hda_codec *codec)
>   		WRITE_COEF(0x32, 0x4ea3),
>   		{}
>   	};
> +	static struct coef_fw coef0288[] = {
> +		UPDATE_COEF(0x4f, 0xfcc0, 0xc400), /* Set to TRS type */
> +		UPDATE_COEF(0x50, 0x2000, 0x2000),
> +		UPDATE_COEF(0x56, 0x0006, 0x0006),
> +		UPDATE_COEF(0x66, 0x0008, 0),
> +		UPDATE_COEF(0x67, 0x2000, 0),
> +		{}
> +	};
>   	static struct coef_fw coef0292[] = {
>   		WRITE_COEF(0x76, 0x000e),
>   		WRITE_COEF(0x6c, 0x2400),
> @@ -3742,6 +3777,11 @@ static void alc_headset_mode_default(struct hda_codec *codec)
>   	case 0x10ec0283:
>   		alc_process_coef_fw(codec, coef0233);
>   		break;
> +	case 0x10ec0286:
> +	case 0x10ec0288:
> +		alc_process_coef_fw(codec, coef0288);
> +		break;
> +		break;
>   	case 0x10ec0292:
>   		alc_process_coef_fw(codec, coef0292);
>   		break;
> @@ -3770,6 +3810,13 @@ static void alc_headset_mode_ctia(struct hda_codec *codec)
>   		WRITE_COEF(0x32, 0x4ea3),
>   		{}
>   	};
> +	static struct coef_fw coef0288[] = {
> +		UPDATE_COEF(0x50, 0x2000, 0x2000),
> +		UPDATE_COEF(0x56, 0x0006, 0x0006),
> +		UPDATE_COEF(0x66, 0x0008, 0),
> +		UPDATE_COEF(0x67, 0x2000, 0),
> +		{}
> +	};
>   	static struct coef_fw coef0292[] = {
>   		WRITE_COEF(0x6b, 0xd429),
>   		WRITE_COEF(0x76, 0x0008),
> @@ -3797,6 +3844,12 @@ static void alc_headset_mode_ctia(struct hda_codec *codec)
>   	case 0x10ec0283:
>   		alc_process_coef_fw(codec, coef0233);
>   		break;
> +	case 0x10ec0286:
> +	case 0x10ec0288:
> +		alc_update_coef_idx(codec, 0x4f, 0xfcc0, 0xd400);
> +		msleep(300);
> +		alc_process_coef_fw(codec, coef0288);
> +		break;
>   	case 0x10ec0292:
>   		alc_process_coef_fw(codec, coef0292);
>   		break;
> @@ -3825,6 +3878,13 @@ static void alc_headset_mode_omtp(struct hda_codec *codec)
>   		WRITE_COEF(0x32, 0x4ea3),
>   		{}
>   	};
> +	static struct coef_fw coef0288[] = {
> +		UPDATE_COEF(0x50, 0x2000, 0x2000),
> +		UPDATE_COEF(0x56, 0x0006, 0x0006),
> +		UPDATE_COEF(0x66, 0x0008, 0),
> +		UPDATE_COEF(0x67, 0x2000, 0),
> +		{}
> +	};
>   	static struct coef_fw coef0292[] = {
>   		WRITE_COEF(0x6b, 0xe429),
>   		WRITE_COEF(0x76, 0x0008),
> @@ -3852,6 +3912,12 @@ static void alc_headset_mode_omtp(struct hda_codec *codec)
>   	case 0x10ec0283:
>   		alc_process_coef_fw(codec, coef0233);
>   		break;
> +	case 0x10ec0286:
> +	case 0x10ec0288:
> +		alc_update_coef_idx(codec, 0x4f, 0xfcc0, 0xe400);
> +		msleep(300);
> +		alc_process_coef_fw(codec, coef0288);
> +		break;
>   	case 0x10ec0292:
>   		alc_process_coef_fw(codec, coef0292);
>   		break;
> @@ -3876,6 +3942,10 @@ static void alc_determine_headset_type(struct hda_codec *codec)
>    conteol) */
>   		{}
>   	};
> +	static struct coef_fw coef0288[] = {
> +		UPDATE_COEF(0x4f, 0xfcc0, 0xd400), /* Check Type */
> +		{}
> +	};
>   	static struct coef_fw coef0293[] = {
>   		UPDATE_COEF(0x4a, 0x000f, 0x0008), /* Combo Jack auto detect */
>   		WRITE_COEF(0x45, 0xD429), /* Set to ctia type */
> @@ -3904,6 +3974,13 @@ static void alc_determine_headset_type(struct hda_codec *codec)
>   		val = alc_read_coef_idx(codec, 0x46);
>   		is_ctia = (val & 0x0070) == 0x0070;
>   		break;
> +	case 0x10ec0286:
> +	case 0x10ec0288:
> +		alc_process_coef_fw(codec, coef0288);
> +		msleep(350);
> +		val = alc_read_coef_idx(codec, 0x50);
> +		is_ctia = (val & 0x0070) == 0x0070;
> +		break;
>   	case 0x10ec0292:
>   		alc_write_coef_idx(codec, 0x6b, 0xd429);
>   		msleep(300);
> @@ -4087,6 +4164,29 @@ static void alc_fixup_headset_mode_alc255_no_hp_mic(struct hda_codec *codec,
>   		alc_fixup_headset_mode(codec, fix, action);
>   }
>   
> +static void alc288_update_headset_jack_cb(struct hda_codec *codec,
> +				       struct hda_jack_callback *jack)
> +{
> +	struct alc_spec *spec = codec->spec;
> +	int present;
> +
> +	alc_update_headset_jack_cb(codec, jack);
> +	/* Headset Mic enable or disable, only for Dell Dino */
> +	present = spec->gen.hp_jack_present ? 0x40 : 0;
> +	snd_hda_codec_write(codec, 0x01, 0, AC_VERB_SET_GPIO_DATA,
> +				present);
> +}
> +
> +static void alc_fixup_headset_mode_dell_alc288(struct hda_codec *codec,
> +				const struct hda_fixup *fix, int action)
> +{
> +	alc_fixup_headset_mode(codec, fix, action);
> +	if (action == HDA_FIXUP_ACT_PROBE) {
> +		struct alc_spec *spec = codec->spec;
> +		spec->gen.hp_automute_hook = alc288_update_headset_jack_cb;
> +	}
> +}
> +
>   static void alc_fixup_auto_mute_via_amp(struct hda_codec *codec,
>   					const struct hda_fixup *fix, int action)
>   {
> @@ -4427,6 +4527,9 @@ enum {
>   	ALC286_FIXUP_HP_GPIO_LED,
>   	ALC280_FIXUP_HP_GPIO2_MIC_HOTKEY,
>   	ALC280_FIXUP_HP_DOCK_PINS,
> +	ALC288_FIXUP_DELL_HEADSET_MODE,
> +	ALC288_FIXUP_DELL1_MIC_NO_PRESENCE,
> +	ALC288_FIXUP_DELL_XPS_13_GPIO6,
>   };
>   
>   static const struct hda_fixup alc269_fixups[] = {
> @@ -4922,6 +5025,33 @@ static const struct hda_fixup alc269_fixups[] = {
>   		.chained = true,
>   		.chain_id = ALC280_FIXUP_HP_GPIO4
>   	},
> +	[ALC288_FIXUP_DELL_HEADSET_MODE] = {
> +		.type = HDA_FIXUP_FUNC,
> +		.v.func = alc_fixup_headset_mode_dell_alc288,
> +		.chained = true,
> +		.chain_id = ALC255_FIXUP_DELL_WMI_MIC_MUTE_LED
> +	},
> +	[ALC288_FIXUP_DELL1_MIC_NO_PRESENCE] = {
> +		.type = HDA_FIXUP_PINS,
> +		.v.pins = (const struct hda_pintbl[]) {
> +			{ 0x18, 0x01a1913c }, /* use as headset mic, without its own jack detect */
> +			{ 0x1a, 0x01a1913d }, /* use as headphone mic, without its own jack detect */
> +			{ }
> +		},
> +		.chained = true,
> +		.chain_id = ALC288_FIXUP_DELL_HEADSET_MODE
> +	},
> +	[ALC288_FIXUP_DELL_XPS_13_GPIO6] = {
> +		.type = HDA_FIXUP_VERBS,
> +		.v.verbs = (const struct hda_verb[]) {
> +			{0x01, AC_VERB_SET_GPIO_MASK, 0x40},
> +			{0x01, AC_VERB_SET_GPIO_DIRECTION, 0x40},
> +			{0x01, AC_VERB_SET_GPIO_DATA, 0x00},
> +			{ }
> +		},
> +		.chained = true,
> +		.chain_id = ALC288_FIXUP_DELL1_MIC_NO_PRESENCE
> +	},
>   };
>   
>   static const struct snd_pci_quirk alc269_fixup_tbl[] = {
> @@ -5149,6 +5279,13 @@ static const struct hda_model_fixup alc269_fixup_models[] = {
>   	{0x1b, 0x411111f0}, \
>   	{0x1e, 0x411111f0}
>   
> +#define ALC288_STANDARD_PINS \
> +	{0x17, 0x411111f0}, \
> +	{0x18, 0x411111f0}, \
> +	{0x19, 0x411111f0}, \
> +	{0x1a, 0x411111f0}, \
> +	{0x1e, 0x411111f0}
> +
>   #define ALC290_STANDARD_PINS \
>   	{0x12, 0x99a30130}, \
>   	{0x13, 0x40000000}, \
> @@ -5344,6 +5481,13 @@ static const struct snd_hda_pin_quirk alc269_pin_fixup_tbl[] = {
>   		{0x19, 0x03a11020},
>   		{0x1d, 0x40e00001},
>   		{0x21, 0x0321101f}),
> +	SND_HDA_PIN_QUIRK(0x10ec0288, 0x1028, "Dell", ALC288_FIXUP_DELL_XPS_13_GPIO6,
> +		ALC288_STANDARD_PINS,
> +		{0x12, 0x90a60120},
> +		{0x13, 0x40000000},
> +		{0x14, 0x90170110},
> +		{0x1d, 0x4076832d},
> +		{0x21, 0x0321101f}),
>   	SND_HDA_PIN_QUIRK(0x10ec0290, 0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1,
>   		ALC290_STANDARD_PINS,
>   		{0x14, 0x411111f0},
Hi,

I didn't see an ACK or NACK on these 3 patches (4.0.y, 3.19.y, and 3.18.y).

Thanks,

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/1] Backport Dell XPS 13 (2015) HDA microphone support to v4.0.y
  2015-04-28 16:13 ` [PATCH 1/1] Backport Dell XPS 13 (2015) HDA microphone support to v4.0.y Mario Limonciello
@ 2015-04-28 20:04   ` Greg KH
  2015-04-28 21:55     ` Mario Limonciello
  0 siblings, 1 reply; 4+ messages in thread
From: Greg KH @ 2015-04-28 20:04 UTC (permalink / raw)
  To: Mario Limonciello; +Cc: stable

On Tue, Apr 28, 2015 at 11:13:28AM -0500, Mario Limonciello wrote:
> I didn't see an ACK or NACK on these 3 patches (4.0.y, 3.19.y, and 3.18.y).

They are behind about 100+ other patches I need to get to for the 4.0
and 3.19 kernels, please be patient.

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/1] Backport Dell XPS 13 (2015) HDA microphone support to v4.0.y
  2015-04-28 20:04   ` Greg KH
@ 2015-04-28 21:55     ` Mario Limonciello
  2015-04-28 22:09       ` Greg KH
  0 siblings, 1 reply; 4+ messages in thread
From: Mario Limonciello @ 2015-04-28 21:55 UTC (permalink / raw)
  To: Greg KH; +Cc: stable@vger.kernel.org



On 04/28/2015 03:04 PM, Greg KH wrote:
> On Tue, Apr 28, 2015 at 11:13:28AM -0500, Mario Limonciello wrote:
>> I didn't see an ACK or NACK on these 3 patches (4.0.y, 3.19.y, and 3.18.y).
> They are behind about 100+ other patches I need to get to for the 4.0
> and 3.19 kernels, please be patient.
>
> thanks,
>
> greg k-h

Oh I didn't realize that.  I was worried since I submitted actual patches rather than submitting commits that I did something wrong.  I'll shut up and wait.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/1] Backport Dell XPS 13 (2015) HDA microphone support to v4.0.y
  2015-04-28 21:55     ` Mario Limonciello
@ 2015-04-28 22:09       ` Greg KH
  0 siblings, 0 replies; 4+ messages in thread
From: Greg KH @ 2015-04-28 22:09 UTC (permalink / raw)
  To: Mario Limonciello; +Cc: stable@vger.kernel.org

On Tue, Apr 28, 2015 at 04:55:14PM -0500, Mario Limonciello wrote:
> 
> 
> On 04/28/2015 03:04 PM, Greg KH wrote:
> >On Tue, Apr 28, 2015 at 11:13:28AM -0500, Mario Limonciello wrote:
> >>I didn't see an ACK or NACK on these 3 patches (4.0.y, 3.19.y, and 3.18.y).
> >They are behind about 100+ other patches I need to get to for the 4.0
> >and 3.19 kernels, please be patient.
> >
> >thanks,
> >
> >greg k-h
> 
> Oh I didn't realize that.  I was worried since I submitted actual patches rather than submitting commits that I did something wrong.  I'll shut up and wait.

Now that you mention that, please don't do backports.  Just submit the
actual commits.  If they don't apply properly, then a backport of the
individual commits is fine, but never mush them together.

And if the commits don't apply as-is, why not?  Do they need some other
patch applied first?  If so, shouldn't we apply that as well?

So please redo these three patches that way, thanks.

greg k-h

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-04-28 22:09 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <1429655102-4494-1-git-send-email-mario_limonciello@dell.com>
2015-04-28 16:13 ` [PATCH 1/1] Backport Dell XPS 13 (2015) HDA microphone support to v4.0.y Mario Limonciello
2015-04-28 20:04   ` Greg KH
2015-04-28 21:55     ` Mario Limonciello
2015-04-28 22:09       ` Greg KH

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox