All of lore.kernel.org
 help / color / mirror / Atom feed
From: Julian Sikorski <belegdol@gmail.com>
To: alsa-devel@alsa-project.org
Subject: Re: Clevo P170HM / Sager NP8170 audio
Date: Thu, 24 Nov 2011 10:20:46 +0100	[thread overview]
Message-ID: <jal29f$6dt$1@dough.gmane.org> (raw)
In-Reply-To: <CAOUOUDyXhM8WiKOBouRV6_Es6_9rvHLGrjvywQT5foE=uW7eUw@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 1852 bytes --]

W dniu 20.08.2011 09:33, Andrew Mahone pisze:
> This laptop is detected as ALC892 audio (and by the codec ID this
> seems to be valid), but none of the configurations for it quite match
> this device. I've been working on documenting the connections with HDA
> Analyzer.
> 
> alsa-info output:
> http://www.alsa-project.org/db/?f=b86e4c6447867fbd129a36d8a63e2f5caa836c52
> 
> The laptop has built-in 5.1, and 5.1 or 7.1 output via jacks.
> 
> DAC NIDs:
> 0x02 front
> 0x03 rear
> 0x04 clfe
> 0x05 side
> 
> internal mixers:
> 0x0c front
> 0x0d rear
> 0x0e clfe
> 0x0f side
> 
> internal speaker pins:
> 0x14 front
> 0x15 "rear" (front of laptop)
> 0x16 clfe
> 
> external ports:
> fixed route:
> 0x17 side
> 
> can select any output:
> 0x18 mic / output
> 0x1a line-in / output
> 0x1b headphone
> 
> I've been experimenting with patch_realtek.c to add the extra DAC NID,
> and have had some success with a 6-channel mode for the built-in
> speakers and an 8-channel mode that mutes all internal speakers and
> sets the jacks up for output. I still need to manually connect pins
> 0x18, 0x1a, 0x1b to the correct internal mixers for 7.1 to work, and
> headphone plugin does not mute internal speakers in 5.1 mode. I have
> not added a plain stereo mode for internal speakers, although it
> appears that i can probably configure the codec to mix the front
> channels to center and LFE.
> 
> Are there any suggestions for what to do next? My current state as a
> patch against the linux-3.0.y repository is at
> http://pastie.org/2400649
> 
I tried this patch (attached a version ported to 3.1.x kernel) with
P150HM and I was still unable to get sound out of the subwoofer when on
6 channel mode, could nonexisting rear be interfering?
As Andrew said, 8 channel mode works once you manually unmute and
reattach mixers using hda-analyzer.

Regards,
Julian

[-- Attachment #2: clevo-p170hm-quirk.patch --]
[-- Type: text/x-patch, Size: 3117 bytes --]

--- vanilla-3.1/sound/pci/hda/alc662_quirks.c	2011-10-24 09:10:05.000000000 +0200
+++ linux-3.1.x86_64/sound/pci/hda/alc662_quirks.c	2011-11-24 08:29:00.443842837 +0100
@@ -29,15 +29,16 @@
 	ALC272_DELL,
 	ALC272_DELL_ZM1,
 	ALC272_SAMSUNG_NC10,
+	ALC892_CLEVO_P170HM,
 	ALC662_MODEL_LAST,
 };
 
 #define ALC662_DIGOUT_NID	0x06
 #define ALC662_DIGIN_NID	0x0a
 
-static const hda_nid_t alc662_dac_nids[3] = {
-	/* front, rear, clfe */
-	0x02, 0x03, 0x04
+static const hda_nid_t alc662_dac_nids[4] = {
+	/* front, rear, clfe, side */
+	0x02, 0x03, 0x04, 0x05
 };
 
 static const hda_nid_t alc272_dac_nids[2] = {
@@ -172,6 +173,39 @@
 	{ 6, alc662_sixstack_ch8_init },
 };
 
+/*
+ * 6ch mode
+ */
+static const struct hda_verb alc892_clevo_p170hm_ch6_init[] = {
+	{ 0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x00 },
+	{ 0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN },
+	{ 0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN },
+	{ 0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x00 },
+	{ 0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT },
+	{ 0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT },
+	{ 0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT },
+	{ } /* end */
+};
+
+/*
+ * 8ch mode
+ */
+static const struct hda_verb alc892_clevo_p170hm_ch8_init[] = {
+	{ 0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x00 },
+	{ 0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x00 },
+	{ 0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x00 },
+	{ 0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT },
+	{ 0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT },
+	{ 0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT },
+	{ 0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT },
+	{ } /* end */
+};
+
+static const struct hda_channel_mode alc892_clevo_p170hm_modes[2] = {
+	{ 6, alc892_clevo_p170hm_ch6_init },
+	{ 8, alc892_clevo_p170hm_ch8_init },
+};
+
 /* Pin assignment: Front=0x14, Rear=0x15, CLFE=0x16, Side=0x17
  *                 Mic=0x18, Front Mic=0x19, Line-In=0x1a, HP=0x1b
  */
@@ -547,6 +581,12 @@
 	{}
 };
 
+static const struct hda_verb alc892_clevo_p170hm_init_verbs[] = {
+	{0x18, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | ALC_MIC_EVENT},
+	{0x1b, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | ALC_HP_EVENT},
+	{}
+};
+
 /* Set Unsolicited Event*/
 static const struct hda_verb alc662_eeepc_ep20_sue_init_verbs[] = {
 	{0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT},
@@ -987,6 +1027,7 @@
 	[ALC272_DELL]		= "dell",
 	[ALC272_DELL_ZM1]	= "dell-zm1",
 	[ALC272_SAMSUNG_NC10]	= "samsung-nc10",
+	[ALC892_CLEVO_P170HM]   = "clevo-p170hm",
 	[ALC662_AUTO]		= "auto",
 };
 
@@ -1403,6 +1444,18 @@
 		.setup = alc663_mode4_setup,
 		.init_hook = alc_inithook,
 	},
+	[ALC892_CLEVO_P170HM] = {
+		.mixers = { alc662_base_mixer, alc662_chmode_mixer },
+		.init_verbs = { alc662_init_verbs, alc662_eapd_init_verbs, alc892_clevo_p170hm_init_verbs },
+		.num_dacs = ARRAY_SIZE(alc662_dac_nids),
+		.dac_nids = alc662_dac_nids,
+		.dig_out_nid = ALC662_DIGOUT_NID,
+		.dig_in_nid = ALC662_DIGIN_NID,
+		.num_channel_mode = ARRAY_SIZE(alc892_clevo_p170hm_modes),
+		.channel_mode = alc892_clevo_p170hm_modes,
+		.input_mux = &alc662_capture_source,
+		.init_hook = alc_inithook,
+	},
 };
 
 

[-- Attachment #3: Type: text/plain, Size: 0 bytes --]



  parent reply	other threads:[~2011-11-24  9:21 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-08-20  7:33 Clevo P170HM / Sager NP8170 audio Andrew Mahone
2011-11-08  5:42 ` Julian Sikorski
2011-11-16 13:08   ` Raymond Yau
2011-11-16 15:15     ` Julian Sikorski
2011-11-17  2:08       ` Raymond Yau
2011-11-17  8:46         ` Julian Sikorski
2011-11-17  8:55           ` Julian Sikorski
2011-11-19  2:31             ` Raymond Yau
2011-11-19  9:11               ` Julian Sikorski
2011-11-21  6:47                 ` Raymond Yau
2011-11-21 11:39                   ` Julian Sikorski
2011-11-22  5:17                     ` Raymond Yau
2011-11-22 12:45                       ` Julian Sikorski
2011-11-25  6:39                         ` Raymond Yau
2011-11-25 12:10                           ` Julian Sikorski
2011-11-28  0:42                             ` Raymond Yau
2011-11-28 10:27                               ` Julian Sikorski
2011-11-28 11:46                                 ` Raymond Yau
2011-11-28 12:02                                   ` Julian Sikorski
2011-11-28 12:34                               ` Julian Sikorski
2011-11-28 23:45                                 ` Raymond Yau
2011-11-29 10:25                                   ` Julian Sikorski
2011-12-01 16:35                                     ` Julian Sikorski
2011-12-02  0:52                                       ` Raymond Yau
2011-12-02 15:41                                         ` Julian Sikorski
2011-12-03 23:59                                           ` Raymond Yau
2011-12-04 12:41                                             ` Julian Sikorski
2011-11-24  9:20 ` Julian Sikorski [this message]
2011-11-24 10:03   ` Julian Sikorski
2011-11-24 10:30     ` Julian Sikorski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='jal29f$6dt$1@dough.gmane.org' \
    --to=belegdol@gmail.com \
    --cc=alsa-devel@alsa-project.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.