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), {}