Check /sys/modules/snd_hda_intel/parameters/model whether you really
passed the correct value.
> I found that with SND_HDA_CODEC_INTELHDMI selected, SND_DYNAMIC_MINORS
> will be enabled by default which won't work in my case as I'm not using
> udev. Here's a patch to take away the default so non-udev will still
> works.
Wow, what's a conservative system :)
> Do I really need udev to get mic to work?
No, in your case, simply disable CONFIG_SND_CODEC_INTELHDMI.
Takashi
> Thanks,
> Jeff
>
>
>
>
> --- lx/sound/pci/hda/Kconfig.org 2010-09-14 16:34:52.000000000 +0800
> +++ lx/sound/pci/hda/Kconfig 2010-09-14 16:35:09.000000000 +0800
> @@ -145,7 +145,6 @@
>
> config SND_HDA_CODEC_INTELHDMI
> bool "Build INTEL HDMI HD-audio codec support"
> - select SND_DYNAMIC_MINORS
> default y
> help
> Say Y here to include INTEL HDMI HD-audio codec support in
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majo...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
On Tue, Sep 28, 2010 at 9:42 PM, Takashi Iwai <ti...@suse.de> wrote:
> Enable all CONFIG_SND_HDA_*.
Done that. Still no mic.
On Tue, Sep 28, 2010 at 9:42 PM, Wu Fengguang <fenggu...@intel.com>
wrote:
> It's easier to enable all of them. They are small modules.
Tried just about everything, still no mic. Sounds works in all cases.
I found that with SND_HDA_CODEC_INTELHDMI selected, SND_DYNAMIC_MINORS
will be enabled by default which won't work in my case as I'm not using
udev. Here's a patch to take away the default so non-udev will still
works.
Do I really need udev to get mic to work?
Thanks,
Intel HDMI audio selects SND_DYNAMIC_MINORS because it runs out of the
static minor numbers. I initially proposed an extended static
allocation scheme here:
http://comments.gmane.org/gmane.linux.alsa.devel/72916 however the
idea was rejected.
> Do I really need udev to get mic to work?
You can disable SND_HDA_CODEC_INTELHDMI for now. You don't need it.
Thanks,
Fengguang
> Check /sys/modules/snd_hda_intel/parameters/model whether you really
> passed the correct value.
# cat /sys/module/snd_hda_intel/parameters/model
lenovo-x200,(null),(null),(null),(null),(null),(null),(null)
>> in my case as I'm not using udev. Here's a patch to take away the default so non-udev will still
>> works.
>
> Wow, what's a conservative system :)
Keeping things simple :) and my / root filesystem is mounted read-only.
Thanks,
Jeff
Would you run http://www.alsa-project.org/alsa-info.sh and show us the
collected info?
> >> in my case as I'm not using udev. Here's a patch to take away the default so non-udev will still
> >> works.
> >
> > Wow, what's a conservative system :)
>
> Keeping things simple :) and my / root filesystem is mounted read-only.
Sounds more like "sophisticated immune" than "simple" :)
Thanks,
Fengguang
OK, and did you get the corresponding kernel message?
> >> in my case as I'm not using udev. Here's a patch to take away the default so non-udev will still
> >> works.
> >
> > Wow, what's a conservative system :)
>
> Keeping things simple :) and my / root filesystem is mounted read-only.
Nowadays /dev is mostly tmpfs or its variant.
Takashi
> Intel HDMI audio selects SND_DYNAMIC_MINORS because it runs out of the
> static minor numbers. I initially proposed an extended static
> allocation scheme here:
> http://comments.gmane.org/gmane.linux.alsa.devel/72916 however the
> idea was rejected.
>
>> Do I really need udev to get mic to work?
>
> You can disable SND_HDA_CODEC_INTELHDMI for now. You don't need it.
Does not make sense to force everyone to use udev. Any chance to make
it work without udev?
Thanks,
Jeff
Otherwise you can't handle enough PCM devices.
> Any chance to make it work without udev?
The minor numbers are almost static as long as you don't change the
configuration. So, you can recreate /dev/snd/* files appropriately,
if needed. Or just simply patch as you did :)
Takashi
As a kindly reminder, these verbose options are pretty useful:
CONFIG_SND_VERBOSE_PROCFS=y
CONFIG_SND_VERBOSE_PRINTK=y
CONFIG_SND_DEBUG=y
CONFIG_SND_DEBUG_VERBOSE=y
Thanks,
Fengguang
>> # cat /sys/module/snd_hda_intel/parameters/model
>> lenovo-x200,(null),(null),(null),(null),(null),(null),(null)
>
> OK, and did you get the corresponding kernel message?
HDA Intel 0000:00:1b.0: PCI INT B -> GSI 17 (level, low) -> IRQ 17
HDA Intel 0000:00:1b.0: irq 45 for MSI/MSI-X
HDA Intel 0000:00:1b.0: setting latency timer to 64
ALSA device list:
#0: HDA Intel at 0xf2520000 irq 45
Thanks,
Jeff.
Jeff, this should make your mic work.
Thanks,
Fengguang
diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c
index a6c68cb..c0c2b33 100644
--- a/sound/pci/hda/patch_conexant.c
+++ b/sound/pci/hda/patch_conexant.c
@@ -3110,6 +3110,7 @@ static struct snd_pci_quirk cxt5066_cfg_tbl[] = {
SND_PCI_QUIRK(0x17aa, 0x21b2, "Thinkpad X100e", CXT5066_IDEAPAD),
SND_PCI_QUIRK(0x17aa, 0x21b3, "Thinkpad Edge 13 (197)", CXT5066_IDEAPAD),
SND_PCI_QUIRK(0x17aa, 0x21b4, "Thinkpad Edge", CXT5066_IDEAPAD),
+ SND_PCI_QUIRK(0x17aa, 0x2156, "Lenovo X201s", CXT5066_THINKPAD),
SND_PCI_QUIRK(0x17aa, 0x215e, "Lenovo Thinkpad", CXT5066_THINKPAD),
SND_PCI_QUIRK(0x17aa, 0x38af, "Lenovo G series", CXT5066_IDEAPAD),
SND_PCI_QUIRK(0x17aa, 0x390a, "Lenovo S10-3t", CXT5066_IDEAPAD),
Jeff, give always alsa-info.sh output when you want someone else
looking into your HD-audio problem. Without it, it's very hard to
follow what is wrong.
> HDA Intel 0000:00:1b.0: PCI INT B -> GSI 17 (level, low) -> IRQ 17
> HDA Intel 0000:00:1b.0: irq 42 for MSI/MSI-X
> HDA Intel 0000:00:1b.0: setting latency timer to 64
> ALSA sound/pci/hda/hda_intel.c:2518: chipset global capabilities = 0x4401
> ALSA sound/pci/hda/hda_intel.c:908: codec_mask = 0x9
> ALSA sound/pci/hda/hda_intel.c:1346: codec #0 probed OK
> ALSA sound/pci/hda/hda_intel.c:1346: codec #3 probed OK
> ALSA sound/pci/hda/hda_codec.c:3720: hda_codec: model 'thinkpad' is
> selected for config 17aa:215e (Lenovo Thinkpad)
> ALSA sound/pci/hda/hda_generic.c:683: hda_generic: no proper input path found
> ALSA sound/pci/hda/hda_generic.c:288: Skip Digital OUT node 2
> ALSA sound/pci/hda/hda_generic.c:288: Skip Digital OUT node 3
> ALSA sound/pci/hda/hda_generic.c:431: hda_generic: no proper output path found
> ALSA sound/pci/hda/hda_generic.c:1036: hda_generic: no PCM found
> ALSA sound/pci/hda/patch_conexant.c:3032: CXT5066: init
> ALSA sound/pci/hda/patch_conexant.c:2374: CXT5066: hp automute portA=0
> portD=0 present=0
> ALSA sound/pci/hda/patch_conexant.c:2110: CXT5066: update speaker, hp_present=0
> ALSA sound/pci/hda/patch_conexant.c:2354: CXT5066: external microphone absent
> ALSA device list:
> #0: HDA Intel at 0xf2520000 irq 42
>
> ALSA sound/pci/hda/patch_conexant.c:2110: CXT5066: update speaker, hp_present=0
> ALSA sound/pci/hda/patch_conexant.c:3032: CXT5066: init
> ALSA sound/pci/hda/patch_conexant.c:2374: CXT5066: hp automute portA=0
> portD=0 present=0
> ALSA sound/pci/hda/patch_conexant.c:2110: CXT5066: update speaker, hp_present=0
> ALSA sound/pci/hda/patch_conexant.c:2354: CXT5066: external microphone absent
> ALSA sound/pci/hda/hda_intel.c:1670: azx_pcm_prepare: bufsize=0x10000,
> format=0x11
> ALSA sound/pci/hda/hda_codec.c:1226: hda_codec_setup_stream: NID=0x10,
> stream=0x5, channel=0, format=0x11
> ALSA sound/pci/hda/hda_codec.c:1284: hda_codec_cleanup_stream: NID=0x10
> ALSA sound/pci/hda/hda_codec.c:1284: hda_codec_cleanup_stream: NID=0x10
> ALSA sound/pci/hda/hda_intel.c:1670: azx_pcm_prepare: bufsize=0x10000,
> format=0x11
> ALSA sound/pci/hda/hda_codec.c:1226: hda_codec_setup_stream: NID=0x10,
> stream=0x5, channel=0, format=0x11
> ALSA sound/pci/hda/hda_codec.c:1284: hda_codec_cleanup_stream: NID=0x10
> ALSA sound/pci/hda/hda_codec.c:1284: hda_codec_cleanup_stream: NID=0x10
> ALSA sound/pci/hda/patch_conexant.c:3032: CXT5066: init
> ALSA sound/pci/hda/patch_conexant.c:2374: CXT5066: hp automute portA=0
> portD=0 present=0
> ALSA sound/pci/hda/patch_conexant.c:2110: CXT5066: update speaker, hp_present=0
> ALSA sound/pci/hda/patch_conexant.c:2354: CXT5066: external microphone absent
> ALSA sound/pci/hda/patch_conexant.c:3032: CXT5066: init
> ALSA sound/pci/hda/patch_conexant.c:2374: CXT5066: hp automute portA=1
> portD=0 present=1
> ALSA sound/pci/hda/patch_conexant.c:2110: CXT5066: update speaker, hp_present=1
> ALSA sound/pci/hda/patch_conexant.c:2348: CXT5066: external microphone detected
> ALSA sound/pci/hda/hda_intel.c:1670: azx_pcm_prepare: bufsize=0x10000,
> format=0x31
> ALSA sound/pci/hda/hda_codec.c:1226: hda_codec_setup_stream: NID=0x14,
> stream=0x1, channel=0, format=0x31
> ALSA sound/pci/hda/hda_intel.c:701: azx_get_response timeout, polling
> the codec once: last cmd=0x014a0000
> ALSA sound/pci/hda/hda_codec.c:1284: hda_codec_cleanup_stream: NID=0x14
> ALSA sound/pci/hda/hda_intel.c:1670: azx_pcm_prepare: bufsize=0x10000,
> format=0x31
> ALSA sound/pci/hda/hda_codec.c:1226: hda_codec_setup_stream: NID=0x10,
> stream=0x5, channel=0, format=0x31
> ALSA sound/pci/hda/hda_codec.c:1284: hda_codec_cleanup_stream: NID=0x10
> ALSA sound/pci/hda/patch_conexant.c:3032: CXT5066: init
> ALSA sound/pci/hda/patch_conexant.c:2374: CXT5066: hp automute portA=1
> portD=0 present=1
> ALSA sound/pci/hda/patch_conexant.c:2110: CXT5066: update speaker, hp_present=1
> ALSA sound/pci/hda/patch_conexant.c:2348: CXT5066: external microphone detected
> ALSA sound/pci/hda/patch_conexant.c:2110: CXT5066: update speaker, hp_present=1
> ALSA sound/pci/hda/patch_conexant.c:3032: CXT5066: init
> ALSA sound/pci/hda/patch_conexant.c:2374: CXT5066: hp automute portA=1
> portD=0 present=1
> ALSA sound/pci/hda/patch_conexant.c:2110: CXT5066: update speaker, hp_present=1
> ALSA sound/pci/hda/patch_conexant.c:2348: CXT5066: external microphone detected
> ALSA sound/pci/hda/patch_conexant.c:2110: CXT5066: update speaker, hp_present=1
> ALSA sound/pci/hda/patch_conexant.c:3032: CXT5066: init
> ALSA sound/pci/hda/patch_conexant.c:2374: CXT5066: hp automute portA=1
> portD=0 present=1
> ALSA sound/pci/hda/patch_conexant.c:2110: CXT5066: update speaker, hp_present=1
> ALSA sound/pci/hda/patch_conexant.c:2348: CXT5066: external microphone detected
So, the mic is detected. I guess you didn't set up the capture mixer
and else properly.
Takashi
> Jeff, this should make your mic work.
>
> diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c
> index a6c68cb..c0c2b33 100644
> --- a/sound/pci/hda/patch_conexant.c
> +++ b/sound/pci/hda/patch_conexant.c
> @@ -3110,6 +3110,7 @@ static struct snd_pci_quirk cxt5066_cfg_tbl[] = {
> SND_PCI_QUIRK(0x17aa, 0x21b2, "Thinkpad X100e", CXT5066_IDEAPAD),
> SND_PCI_QUIRK(0x17aa, 0x21b3, "Thinkpad Edge 13 (197)", CXT5066_IDEAPAD),
> SND_PCI_QUIRK(0x17aa, 0x21b4, "Thinkpad Edge", CXT5066_IDEAPAD),
> + SND_PCI_QUIRK(0x17aa, 0x2156, "Lenovo X201s", CXT5066_THINKPAD),
> SND_PCI_QUIRK(0x17aa, 0x215e, "Lenovo Thinkpad", CXT5066_THINKPAD),
> SND_PCI_QUIRK(0x17aa, 0x38af, "Lenovo G series", CXT5066_IDEAPAD),
> SND_PCI_QUIRK(0x17aa, 0x390a, "Lenovo S10-3t", CXT5066_IDEAPAD),
Getting closer, but mic still not working.
Thanks,
Jeff.
I just want to update you all now that I finally got the mic to work
on my X201s. It's the settings in the BIOS. Unlike earlier Thinkpad
models, the X201s BIOS has a special setting to enable/disable the
mic. Bios setup: F1 -> Security -> I/O Ports -> Microphone -> Enable.
Since I trashed Windows on the X201s as soon as I power up the first
time that could have disabled the mic by default.
Now, it's all working.
Thanks for all you help!
Jeff.