[alsa-devel] No sound on Quanta KN1 with kernel 3.4

Takashi Iwai tiwai at suse.de
Wed Apr 18 12:32:26 CEST 2012


At Wed, 18 Apr 2012 12:27:09 +0200,
Takashi Iwai wrote:
> 
> At Wed, 18 Apr 2012 11:55:45 +0200,
> Uros Vampl wrote:
> > 
> > On 18.04.12 10:05, Takashi Iwai wrote:
> > > > > It's a laptop. There's no sound, not from internal speakers, not from 
> > > > > headphone out. There is a mild crackling sound when the module is 
> > > > > loaded, but that's it. The patch does not change things.
> > > > 
> > > > OK, I'll send another patch tomorrow.  But the previous patch should
> > > > work, still.  Make sure that you adjusted and unmuted the mixer
> > > > elements after applying the patch.  There should be some new mixer
> > > > elements.
> > > > 
> > > > If it still doesn't work after the mixer adjustment, give alsa-info.sh
> > > > output again.
> > > 
> > > Also, there are many bogus input pins on your device.
> > > Which physical inputs are on the machine?  BIOS advertises that there
> > > are front-mic, rear-mic, line-in, aux-in and CD.  Do all these work
> > > properly?  You can choose it from "Input Source" mixer enum.
> > > 
> > > Also, it also advertises SPDIF input and output.  Are really both on
> > > your machine?
> > 
> > The only physical input is mic-in. But there's also an integrated 
> > microphone. In kernel 3.3 the intergrated mic is simply "Mic" and works 
> > for both playback and capture. I don't have an external mic to test.
> 
> You can use even a headphone although the recording level is low.
> Just plug your headphone into the mic jack and shout.
> 
> > In kernel 3.4 I still don't have sound, even with the patch (I unmuted 
> > everything there was to unmute, then muted SPDIF, nothing produced 
> > sound), so I could only test capture - "Rear Mic" captures from the 
> > integrated microphone.
> 
> OK.
> 
> > I assume "Front Mic" would work for an external microphone, and maybe CD 
> > is for listening to audio CDs? The CD drive broke a few years back, so I 
> > can't test it.
> 
> On most of laptops, it's already deprecated.  So we can drop it.
> 
> > No idea about SPDIF-in,
> 
> If it has no jack, then we can drop it.
> 
> > but headphone-out doubles as SPDIF-out. There's 
> > a red light inside the jack, and if I unmute SPDIF, the light goes on. I 
> > remember it was like that also in Windows. I don't have appropriate 
> > hardware to test if it actually works.
> 
> OK, then it must be kept.
> 
> > Attached is a alsa-info.txt with the patch. There are some differences 
> > compared to without patch, but like I said above, still no sound.
> 
> Then the speaker pin is not 0x0f but 0x11.
> 
> I'll cook up the test patch based on the current information and post
> it later.

Below is the test patch.  Again, adjust the mixer volumes after
applying the patch.  Now you should have "Headphone" and "Speaker"
volumes & switches.

Also, the speaker is muted automatically when the headphone is plugged.
For testing the speaker, unplug the headphone.


Takashi

---
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 2508f81..1231a17 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -4861,6 +4861,7 @@ enum {
 	ALC260_FIXUP_GPIO1_TOGGLE,
 	ALC260_FIXUP_REPLACER,
 	ALC260_FIXUP_HP_B1900,
+	ALC260_FIXUP_KN1,
 };
 
 static void alc260_gpio1_automute(struct hda_codec *codec)
@@ -4938,7 +4939,25 @@ static const struct alc_fixup alc260_fixups[] = {
 		.v.func = alc260_fixup_gpio1_toggle,
 		.chained = true,
 		.chain_id = ALC260_FIXUP_COEF,
-	}
+	},
+	[ALC260_FIXUP_KN1] = {
+		.type = ALC_FIXUP_PINS,
+		.v.pins = (const struct alc_pincfg[]) {
+			{ 0x10, 0x02214000 }, /* HP */
+			{ 0x11, 0x99130110 }, /* speaker */
+			{ 0x12, 0x90a60160 }, /* int mic */
+			{ 0x13, 0x02a19000 }, /* ext mic */
+			{ 0x18, 0x01446000 }, /* SPDIF out */
+			/* disable bogus I/O pins */
+			{ 0x0f, 0x411111f0 },
+			{ 0x14, 0x411111f0 },
+			{ 0x15, 0x411111f0 },
+			{ 0x16, 0x411111f0 },
+			{ 0x17, 0x411111f0 },
+			{ 0x19, 0x411111f0 },
+			{ }
+		}
+	},
 };
 
 static const struct snd_pci_quirk alc260_fixup_tbl[] = {
@@ -4948,6 +4967,7 @@ static const struct snd_pci_quirk alc260_fixup_tbl[] = {
 	SND_PCI_QUIRK(0x103c, 0x280a, "HP dc5750", ALC260_FIXUP_HP_DC5750),
 	SND_PCI_QUIRK(0x103c, 0x30ba, "HP Presario B1900", ALC260_FIXUP_HP_B1900),
 	SND_PCI_QUIRK(0x1509, 0x4540, "Favorit 100XS", ALC260_FIXUP_GPIO1),
+	SND_PCI_QUIRK(0x152d, 0x0729, "Quanta KN1", ALC260_FIXUP_KN1),
 	SND_PCI_QUIRK(0x161f, 0x2057, "Replacer 672V", ALC260_FIXUP_REPLACER),
 	SND_PCI_QUIRK(0x1631, 0xc017, "PB V7900", ALC260_FIXUP_COEF),
 	{}


More information about the Alsa-devel mailing list