diff mbox

ALSA: hda - fix a problem for lineout on a Dell AIO machine

Message ID 1490927500-12672-1-git-send-email-hui.wang@canonical.com (mailing list archive)
State New, archived
Headers show

Commit Message

Hui Wang March 31, 2017, 2:31 a.m. UTC
On this Dell AIO machine, the lineout jack does not work.

We found the pin 0x1a is assigned to lineout on this machine, and in
the past, we applied ALC298_FIXUP_DELL1_MIC_NO_PRESENCE to fix the
heaset-set mic problem for this machine, this fixup will redefine
the pin 0x1a to headphone-mic, as a result the lineout doesn't
work anymore.

After consulting with Dell, they told us this machine doesn't support
microphone via headset jack, so we add a new fixup which only defines
the pin 0x18 as the headset-mic.

Cc: <stable@vger.kernel.org>
Signed-off-by: Hui Wang <hui.wang@canonical.com>
---
 sound/pci/hda/patch_realtek.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

Comments

Takashi Iwai March 31, 2017, 9:03 a.m. UTC | #1
On Fri, 31 Mar 2017 04:31:40 +0200,
Hui Wang wrote:
> 
> On this Dell AIO machine, the lineout jack does not work.
> 
> We found the pin 0x1a is assigned to lineout on this machine, and in
> the past, we applied ALC298_FIXUP_DELL1_MIC_NO_PRESENCE to fix the
> heaset-set mic problem for this machine, this fixup will redefine
> the pin 0x1a to headphone-mic, as a result the lineout doesn't
> work anymore.
> 
> After consulting with Dell, they told us this machine doesn't support
> microphone via headset jack, so we add a new fixup which only defines
> the pin 0x18 as the headset-mic.
> 
> Cc: <stable@vger.kernel.org>
> Signed-off-by: Hui Wang <hui.wang@canonical.com>

I applied this one with some manual modification so that it can be
merged to 4.11 properly.  Also added Fixes tag for a better hint.


thanks,

Takashi


> ---
>  sound/pci/hda/patch_realtek.c | 12 +++++++++++-
>  1 file changed, 11 insertions(+), 1 deletion(-)
> 
> diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
> index 634e64a..1bf3d67 100644
> --- a/sound/pci/hda/patch_realtek.c
> +++ b/sound/pci/hda/patch_realtek.c
> @@ -4878,6 +4878,7 @@ enum {
>  	ALC256_FIXUP_ASUS_AIO_GPIO2,
>  	ALC233_FIXUP_ASUS_MIC_NO_PRESENCE,
>  	ALC233_FIXUP_EAPD_COEF_AND_MIC_NO_PRESENCE,
> +	ALC298_FIXUP_DELL_AIO_MIC_NO_PRESENCE,
>  };
>  
>  static const struct hda_fixup alc269_fixups[] = {
> @@ -5567,7 +5568,7 @@ enum {
>  		.type = HDA_FIXUP_FUNC,
>  		.v.func = alc298_fixup_speaker_volume,
>  		.chained = true,
> -		.chain_id = ALC298_FIXUP_DELL1_MIC_NO_PRESENCE,
> +		.chain_id = ALC298_FIXUP_DELL_AIO_MIC_NO_PRESENCE,
>  	},
>  	[ALC256_FIXUP_DELL_INSPIRON_7559_SUBWOOFER] = {
>  		.type = HDA_FIXUP_PINS,
> @@ -5638,6 +5639,15 @@ enum {
>  		.chained = true,
>  		.chain_id = ALC233_FIXUP_ASUS_MIC_NO_PRESENCE
>  	},
> +	[ALC298_FIXUP_DELL_AIO_MIC_NO_PRESENCE] = {
> +		.type = HDA_FIXUP_PINS,
> +		.v.pins = (const struct hda_pintbl[]) {
> +			{ 0x18, 0x01a1913c }, /* use as headset mic, without its own jack detect */
> +			{ }
> +		},
> +		.chained = true,
> +		.chain_id = ALC269_FIXUP_HEADSET_MODE
> +	},
>  };
>  
>  static const struct snd_pci_quirk alc269_fixup_tbl[] = {
> -- 
> 1.9.1
> 
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel@alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
>
diff mbox

Patch

diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 634e64a..1bf3d67 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -4878,6 +4878,7 @@  enum {
 	ALC256_FIXUP_ASUS_AIO_GPIO2,
 	ALC233_FIXUP_ASUS_MIC_NO_PRESENCE,
 	ALC233_FIXUP_EAPD_COEF_AND_MIC_NO_PRESENCE,
+	ALC298_FIXUP_DELL_AIO_MIC_NO_PRESENCE,
 };
 
 static const struct hda_fixup alc269_fixups[] = {
@@ -5567,7 +5568,7 @@  enum {
 		.type = HDA_FIXUP_FUNC,
 		.v.func = alc298_fixup_speaker_volume,
 		.chained = true,
-		.chain_id = ALC298_FIXUP_DELL1_MIC_NO_PRESENCE,
+		.chain_id = ALC298_FIXUP_DELL_AIO_MIC_NO_PRESENCE,
 	},
 	[ALC256_FIXUP_DELL_INSPIRON_7559_SUBWOOFER] = {
 		.type = HDA_FIXUP_PINS,
@@ -5638,6 +5639,15 @@  enum {
 		.chained = true,
 		.chain_id = ALC233_FIXUP_ASUS_MIC_NO_PRESENCE
 	},
+	[ALC298_FIXUP_DELL_AIO_MIC_NO_PRESENCE] = {
+		.type = HDA_FIXUP_PINS,
+		.v.pins = (const struct hda_pintbl[]) {
+			{ 0x18, 0x01a1913c }, /* use as headset mic, without its own jack detect */
+			{ }
+		},
+		.chained = true,
+		.chain_id = ALC269_FIXUP_HEADSET_MODE
+	},
 };
 
 static const struct snd_pci_quirk alc269_fixup_tbl[] = {