FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Debian > Debian Kernel

 
 
LinkBack Thread Tools
 
Old 02-22-2012, 06:44 AM
Takashi Iwai
 
Default Bug#660111: multiple, non-physically accesible, HDMI devices listed for Intel IbexPeak ALC269VB

At Wed, 22 Feb 2012 01:43:44 -0500,
Andres Cimmarusti wrote:
>
> [1 <text/plain; UTF-8 (7bit)>]
> Dear Mr. Warren,
>
> I recently upgraded my laptop to Debian testing (from Debian stable +
> the longterm stable 3.0.x kernel). The newer kernel 3.2.x came with a
> regression that git bisect has traced down to one of your commits in
> the early 3.1.x kernel development stage (git bisect output and git
> bisect log attached).
>
> Under kernel 3.0.x HDMI sound works out-of-the-box as tested with
> pulse audio (choosing the option Digital
> Stereo (HDMI) Output) and by the command:
>
> $ aplay -D plughw:0,3 /usr/share/sounds/alsa/Front_Center.wav
>
> Alsa's device list reveals:
>
> $ aplay -l
> **** List of PLAYBACK Hardware Devices ****
> card 0: Intel [HDA Intel], device 0: ALC269VB Analog [ALC269VB Analog]
> Subdevices: 0/1
> Subdevice #0: subdevice #0
> card 0: Intel [HDA Intel], device 3: HDMI 0 [HDMI 0]
> Subdevices: 1/1
> Subdevice #0: subdevice #0
>
> Unfortunately with kernel 3.2.x and 3.1.x I get no sound out choosing the same
> configuration in pulseaudio. Device is advertised correctly but
> there's a bizarre multiplicity advertised:
>
> $ aplay -l
> **** List of PLAYBACK Hardware Devices ****
> card 0: Intel [HDA Intel], device 0: ALC269VB Analog [ALC269VB Analog]
> Subdevices: 1/1
> Subdevice #0: subdevice #0
> card 0: Intel [HDA Intel], device 3: HDMI 0 [HDMI 0]
> Subdevices: 1/1
> Subdevice #0: subdevice #0
> card 0: Intel [HDA Intel], device 7: HDMI 1 [HDMI 1]
> Subdevices: 1/1
> Subdevice #0: subdevice #0
> card 0: Intel [HDA Intel], device 8: HDMI 2 [HDMI 2]
> Subdevices: 1/1
> Subdevice #0: subdevice #0
>
> Using aplay with device 3 says device is busy. Device 7 works
> correctly (but is not available in pulseaudio unless forced by
> default, which then renders internal speakers disabled) and device 8
> produces no sound out.
>
> This appears to be a regression in the kernel about this device,
> advertising non-physically connected HDMI sound devices that cause
> pulse audio to get
> confused (Pulseaudio only seems to be able to handle one HDMI output
> by default device 0,3).

The biggest problem is that PA checks only the first HDMI device.
In that sense, this is no regression in the kernel side, although I
know it's annoying.

If the new two pins can be never used, i.e. physically unreachable,
we may disable these pins by giving the proper default pin-config
values. Usually it's a job of BIOS. But if BIOS doesn't do it, user
need to do it manually.

Build your kernel with CONFIG_SND_HDA_HWDEP=y,
CONFIG_SND_HDA_RECONFIG=y, CONFIG_SND_HDA_PATCH_LOADER=y.
I guess most of distro kernels are built with them.
Then create a file containing below in /lib/firmware, such as,
/lib/firmware/ibx-hdmi:

================================================== ==============
[codec]
0x80862804 0x80860101 3
[pincfg]
0x04 0x411111f0
0x06 0x411111f0
================================================== ==============

Now pass this file to "patch" module option for snd-hda-intel.
For example, create a file in /etc/modprobe.d/,
e.g. /etc/modprobe.d/50-hdmi.conf, containing the line

options snd-hda-intel patch="ibx-hdmi"

Then reload the driver or reboot. This will disable pins 0x04 and
0x06 so that only the pin 0x05 will be used.


Takashi

>
> Output of the alsa-info script for kernel 3.0.20 and 3.2.4 is attached.
>
> Can you please advice how to fix this problem? I see there was a patch
> about the same time meant to address the multiplicity of port
> advertised and restrict to the ones being used, but this doesn't seem
> to be working here (see
> http://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=commit;h=0b6c49b59fb272c1a20f79202693 ed1072e9548c)
>
> For reference, this is the original Debian bug report:
> http://bugs.debian.org/660111
>
> Best Regards,
>
> Andres Cimmarusti
> [2 git_bisect_1st_bad.txt <text/plain; US-ASCII (base64)>]
> 384a48d71520ca569a63f1e61e51a538bedb16df is the first bad commit
> commit 384a48d71520ca569a63f1e61e51a538bedb16df
> Author: Stephen Warren <swarren@nvidia.com>
> Date: Wed Jun 1 11:14:21 2011 -0600
>
> ALSA: hda: HDMI: Support codecs with fewer cvts than pins
>
> The general concept of this change is to create a PCM device for each
> pin widget instead of each converter widget. Whenever a PCM is opened,
> a converter is dynamically selected to drive that pin based on those
> available for muxing into the pin.
>
> The one thing this model doesn't support is a single PCM/converter
> sending audio to multiple pin widgets at once.
>
> Note that this means that a struct hda_pcm_stream's nid variable is
> set to 0 except between a stream's open and cleanup calls. The dynamic
> de-assignment of converters to PCMs occurs within cleanup, not close,
> in order for it to co-incide with when controller stream IDs are
> cleaned up from converters.
>
> While the PCM for a pin is not open, the pin is disabled (its widget
> control's PIN_OUT bit is cleared) so that if the currently routed
> converter is used to drive a different PCM/pin, that audio does not
> leak out over a disabled pin.
>
> We use the recently added SPDIF virtualization feature in order to
> create SPDIF controls for each pin widget instead of each converter
> widget, so that state is specific to a PCM.
>
> In order to support this, a number of more mechanical changes are made:
>
> * s/nid/pin_nid/ or s/nid/cvt_nid/ in many places in order to make it
> clear exactly what the code is dealing with.
>
> * We now have per_pin and per_cvt arrays in hdmi_spec to store relevant
> data. In particular, we store a converter's capabilities in the per_cvt
> entry, rather than relying on a combination of codec_pcm_pars and
> the struct hda_pcm_stream.
>
> * ELD-related workarounds were removed from hdmi_channel_allocation
> into hdmi_instrinsic in order to simplifiy infoframe calculations and
> remove HW dependencies.
>
> * Various functions only apply to a single pin, since there is now
> only 1 pin per PCM. For example, hdmi_setup_infoframe,
> hdmi_setup_stream.
>
> * hdmi_add_pin and hdmi_add_cvt are more oriented at pure codec parsing
> and data retrieval, rather than determining which pins/converters
> are to be used for creating PCMs.
>
> This is quite a large change; it may be appropriate to simply read the
> result of the patch rather than the diffs. Some small parts of the change
> might be separable into different patches, but I think the bulk of the
> change will probably always be one large patch. Hopefully the change
> isn't too opaque!
>
> This has been tested on:
>
> * NVIDIA GeForce 400 series discrete graphics card. This model has the
> classical 1:1:1 codec:convertercm widget model. Tested stereo PCM
> audio to a PC monitor that supports audio.
>
> * NVIDIA GeForce 520 discrete graphics card. This model is the new
> 1 codec n converters m pins m>n model. Tested stereo PCM audio to a
> PC monitor that supports audio.
>
> * NVIDIA GeForce 400 series laptop graphics chip. This model has the
> classical 1:1:1 codec:convertercm widget model. Tested stereo PCM,
> multi-channel PCM, and AC3 pass-through to an AV receiver.
>
> * Intel Ibex Peak laptop. This model is the new 1 codec n converters m
> pins m>n model. Tested stereo PCM, multi-channel PCM, and AC3 pass-
> through to an AV receiver.
>
> Note that I'm not familiar at all with AC3 pass-through. Hence, I may
> not have covered all possible mechanisms that are applicable here. I do
> know that my receiver definitely received AC3, not decoded PCM. I tested
> with mplayer's "-afm hwac3" and/or "-af lavcac3enc" options, and alsa a
> WAV file that I believe has AC3 content rather than PCM.
>
> I also tested:
> * Play a stream
> * Mute while playing
> * Stop stream
> * Play some other streams to re-assign the converter to a different
> pin, PCM, set of SPDIF controls, ... hence hopefully triggering
> cleanup for the original PCM.
> * Unmute original stream while not playing
> * Play a stream on the original pin/PCM.
>
> This was to test SPDIF control virtualization.
>
> Signed-off-by: Stephen Warren <swarren@nvidia.com>
> Signed-off-by: Takashi Iwai <tiwai@suse.de>
>
> :040000 040000 894370c6534b1bf03df9a8a8c7d85c2eeffc7555 98cb8a73a0ed46f034e25bd35002930bc22376ef M sound
> [3 git_bisect_log.txt <text/plain; US-ASCII (base64)>]
> git bisect log
> git bisect start
> # bad: [76531d4166fb620375ff3c1ac24753265216d579] Merge branch 'topic/hda' into for-linus
> git bisect bad 76531d4166fb620375ff3c1ac24753265216d579
> # good: [7d339ae99758bc21033d4a19bcd4f7b55f96e24e] Merge branch 'topic/misc' into for-linus
> git bisect good 7d339ae99758bc21033d4a19bcd4f7b55f96e24e
> # bad: [39fa84e94a7df64a6ba27669ef98b51994fb6894] ALSA: hda - Simplify EAPD control in patch_realtek.c
> git bisect bad 39fa84e94a7df64a6ba27669ef98b51994fb6894
> # bad: [096a885494f6b89a9962c6faf18e1c6092e7919c] ALSA: hda - Initialize input-path dynamically in patch_via.c
> git bisect bad 096a885494f6b89a9962c6faf18e1c6092e7919c
> # bad: [e06e5a297474c8027beffe10541981845ca0c98b] ALSA: hda - Defer mixer element creation to the right time in patch_via.c
> git bisect bad e06e5a297474c8027beffe10541981845ca0c98b
> # bad: [b4a655e81d4d1d12abc92d29dfb7550e66a08799] ALSA: hda - Judge playback stream from stream id in azx_via_get_position()
> git bisect bad b4a655e81d4d1d12abc92d29dfb7550e66a08799
> # good: [3aaf898025b1f75f30457e00e890c9f7c43567ab] ALSA: hda: Separate generic and non-generic implementations
> git bisect good 3aaf898025b1f75f30457e00e890c9f7c43567ab
> # bad: [384a48d71520ca569a63f1e61e51a538bedb16df] ALSA: hda: HDMI: Support codecs with fewer cvts than pins
> git bisect bad 384a48d71520ca569a63f1e61e51a538bedb16df
> # good: [2def8172c6611f2577260287ebf5dd3b63f7ef55] ALSA: hda: hdmi_eld_update_pcm_info: update a stream in place
> git bisect good 2def8172c6611f2577260287ebf5dd3b63f7ef55
> [4 alsa-info_3.0.20.txt <text/plain; US-ASCII (base64)>]
> !!################################
> !!ALSA Information Script v 0.4.60
> !!################################
>
> !!Script ran on: Thu Feb 16 05:24:37 UTC 2012
>
>
> !!Linux Distribution
> !!------------------
>
> Debian GNU/Linux wheezy/sid
l
>
>
> !!DMI Information
> !!---------------
>
> Manufacturer: To be filled by O.E.M.
> Product Name: To be filled by O.E.M.
> Product Version: AC5G3N-S8_F6
>
>
> !!Kernel Information
> !!------------------
>
> Kernel release: 3.0.20-c2d.1-amd64
> Operating System: GNU/Linux
> Architecture: x86_64
> Processor: unknown
> SMP Enabled: Yes
>
>
> !!ALSA Version
> !!------------
>
> Driver version: 1.0.24
> Library version: 1.0.24.1
> Utilities version: 1.0.24.2
>
>
> !!Loaded ALSA modules
> !!-------------------
>
> snd_hda_intel
>
>
> !!Sound Servers on this system
> !!----------------------------
>
> Pulseaudio:
> Installed - Yes (/usr/bin/pulseaudio)
> Running - Yes
>
> ESound Daemon:
> Installed - Yes (/usr/bin/esd)
> Running - No
>
>
> !!Soundcards recognised by ALSA
> !!-----------------------------
>
> 0 [Intel ]: HDA-Intel - HDA Intel
> HDA Intel at 0xfe500000 irq 46
>
>
> !!PCI Soundcards installed in the system
> !!--------------------------------------
>
> 00:1b.0 Audio device: Intel Corporation 5 Series/3400 Series Chipset
> High Definition Audio (rev 06)
>
>
> !!Advanced information - PCI Vendor/Device/Subsystem ID's
> !!--------------------------------------------------------
>
> 00:1b.0 0403: 8086:3b56 (rev 06)
> Subsystem: 1458:a950
>
>
> !!Modprobe options (Sound related)
> !!--------------------------------
>
> snd-atiixp-modem: index=-2
> snd-intel8x0m: index=-2
> snd-via82xx-modem: index=-2
> snd-pcsp: index=-2
> snd-usb-audio: index=-2
>
>
> !!Loaded sound module options
> !!--------------------------
>
> !!Module: snd_hda_intel
> bdl_pos_adj : 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
> beep_mode : 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1
> enable : Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y, Y,Y,Y,Y,Y,Y,Y
> enable_msi : -1
> id : (null),(null),(null),(null),(null),(null),(null),( null),(null),(null),(null),(null),(null),(null),(n ull),(null),(null),(null),(null),(null),(null),(nu ll),(null),(null),(null),(null),(null),(null),(nul l),(null),(null),(null)
> index : -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
> model : (null),(null),(null),(null),(null),(null),(null),( null),(null),(null),(null),(null),(null),(null),(n ull),(null),(null),(null),(null),(null),(null),(nu ll),(null),(null),(null),(null),(null),(null),(nul l),(null),(null),(null)
> patch : (null),(null),(null),(null),(null),(null),(null),( null),(null),(null),(null),(null),(null),(null),(n ull),(null),(null),(null),(null),(null),(null),(nu ll),(null),(null),(null),(null),(null),(null),(nul l),(null),(null),(null)
> position_fix : 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0
> power_save : 0
> power_save_controller : Y
> probe_mask : -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
> probe_only : 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0
> single_cmd : N
>
>
> !!HDA-Intel Codec information
> !!---------------------------
> --startcollapse--
>
> Codec: Realtek ALC269VB
> Address: 0
> AFG Function Id: 0x1 (unsol 1)
> Vendor Id: 0x10ec0269
> Subsystem Id: 0x1458a950
> Revision Id: 0x100100
> No Modem Function Group found
> Default PCM:
> rates [0x560]: 44100 48000 96000 192000
> bits [0xe]: 16 20 24
> formats [0x1]: PCM
> Default Amp-In caps: N/A
> Default Amp-Out caps: N/A
> GPIO: io=2, o=0, i=0, unsolicited=1, wake=0
> IO[0]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
> IO[1]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
> Node 0x02 [Audio Output] wcaps 0x1d: Stereo Amp-Out
> Control: name="Speaker Playback Volume", index=0, device=0
> ControlAmp: chs=3, dir=Out, idx=0, ofs=0
> Amp-Out caps: ofs=0x57, nsteps=0x57, stepsize=0x02, mute=0
> Amp-Out vals: [0x50 0x50]
> Converter: stream=5, channel=0
> PCM:
> rates [0x560]: 44100 48000 96000 192000
> bits [0xe]: 16 20 24
> formats [0x1]: PCM
> Node 0x03 [Audio Output] wcaps 0x1d: Stereo Amp-Out
> Control: name="Front Playback Volume", index=0, device=0
> ControlAmp: chs=3, dir=Out, idx=0, ofs=0
> Device: name="ALC269VB Analog", type="Audio", device=0
> Amp-Out caps: ofs=0x57, nsteps=0x57, stepsize=0x02, mute=0
> Amp-Out vals: [0x50 0x50]
> Converter: stream=5, channel=0
> PCM:
> rates [0x560]: 44100 48000 96000 192000
> bits [0xe]: 16 20 24
> formats [0x1]: PCM
> Node 0x04 [Vendor Defined Widget] wcaps 0xf00000: Mono
> Node 0x05 [Vendor Defined Widget] wcaps 0xf00000: Mono
> Node 0x06 [Audio Output] wcaps 0x211: Stereo Digital
> Converter: stream=0, channel=0
> Digital:
> Digital category: 0x0
> PCM:
> rates [0x5e0]: 44100 48000 88200 96000 192000
> bits [0xe]: 16 20 24
> formats [0x1]: PCM
> Node 0x07 [Vendor Defined Widget] wcaps 0xf00000: Mono
> Node 0x08 [Audio Input] wcaps 0x10011b: Stereo Amp-In
> Amp-In caps: ofs=0x0b, nsteps=0x1f, stepsize=0x05, mute=1
> Amp-In vals: [0x8b 0x8b]
> Converter: stream=0, channel=0
> SDI-Select: 0
> PCM:
> rates [0x560]: 44100 48000 96000 192000
> bits [0xe]: 16 20 24
> formats [0x1]: PCM
> Connection: 1
> 0x23
> Node 0x09 [Audio Input] wcaps 0x10011b: Stereo Amp-In
> Control: name="Capture Switch", index=0, device=0
> Control: name="Capture Volume", index=0, device=0
> Device: name="ALC269VB Analog", type="Audio", device=0
> Amp-In caps: ofs=0x0b, nsteps=0x1f, stepsize=0x05, mute=1
> Amp-In vals: [0x8f 0x8f]
> Converter: stream=1, channel=0
> SDI-Select: 0
> PCM:
> rates [0x560]: 44100 48000 96000 192000
> bits [0xe]: 16 20 24
> formats [0x1]: PCM
> Connection: 1
> 0x22
> Node 0x0a [Vendor Defined Widget] wcaps 0xf00000: Mono
> Node 0x0b [Audio Mixer] wcaps 0x20010b: Stereo Amp-In
> Control: name="Beep Playback Volume", index=0, device=0
> ControlAmp: chs=3, dir=In, idx=4, ofs=0
> Control: name="Beep Playback Switch", index=0, device=0
> ControlAmp: chs=3, dir=In, idx=4, ofs=0
> Amp-In caps: ofs=0x17, nsteps=0x1f, stepsize=0x05, mute=1
> Amp-In vals: [0x97 0x97] [0x97 0x97] [0x97 0x97] [0x97 0x97] [0x97 0x97]
> Connection: 5
> 0x18 0x19 0x1a 0x1b 0x1d
> Node 0x0c [Audio Mixer] wcaps 0x20010b: Stereo Amp-In
> Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
> Amp-In vals: [0x00 0x00] [0x00 0x00]
> Connection: 2
> 0x02 0x0b
> Node 0x0d [Audio Mixer] wcaps 0x20010b: Stereo Amp-In
> Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
> Amp-In vals: [0x00 0x00] [0x00 0x00]
> Connection: 2
> 0x03 0x0b
> Node 0x0e [Vendor Defined Widget] wcaps 0xf00000: Mono
> Node 0x0f [Audio Mixer] wcaps 0x20010a: Mono Amp-In
> Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
> Amp-In vals: [0x00] [0x00]
> Connection: 2
> 0x02 0x0b
> Node 0x10 [Vendor Defined Widget] wcaps 0xf00000: Mono
> Node 0x11 [Vendor Defined Widget] wcaps 0xf00000: Mono
> Node 0x12 [Pin Complex] wcaps 0x40000b: Stereo Amp-In
> Control: name="Internal Mic Boost Volume", index=0, device=0
> ControlAmp: chs=3, dir=In, idx=0, ofs=0
> Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0
> Amp-In vals: [0x03 0x03]
> Pincap 0x00000020: IN
> Pin Default 0x99a30940: [Fixed] Mic at Int ATAPI
> Conn = ATAPI, Color = Unknown
> DefAssociation = 0x4, Sequence = 0x0
> Misc = NO_PRESENCE
> Pin-ctls: 0x20: IN
> Node 0x13 [Vendor Defined Widget] wcaps 0xf00000: Mono
> Node 0x14 [Pin Complex] wcaps 0x40018d: Stereo Amp-Out
> Control: name="Speaker Playback Switch", index=0, device=0
> ControlAmp: chs=3, dir=Out, idx=0, ofs=0
> Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
> Amp-Out vals: [0x00 0x00]
> Pincap 0x00010014: OUT EAPD Detect
> EAPD 0x2: EAPD
> Pin Default 0x99130110: [Fixed] Speaker at Int ATAPI
> Conn = ATAPI, Color = Unknown
> DefAssociation = 0x1, Sequence = 0x0
> Misc = NO_PRESENCE
> Pin-ctls: 0x40: OUT
> Unsolicited: tag=00, enabled=0
> Connection: 2
> 0x0c* 0x0d
> Node 0x15 [Vendor Defined Widget] wcaps 0xf00000: Mono
> Node 0x16 [Vendor Defined Widget] wcaps 0xf00000: Mono
> Node 0x17 [Pin Complex] wcaps 0x40010c: Mono Amp-Out
> Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
> Amp-Out vals: [0x80]
> Pincap 0x00000010: OUT
> Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
> Conn = 1/8, Color = Black
> DefAssociation = 0xf, Sequence = 0x0
> Misc = NO_PRESENCE
> Pin-ctls: 0x00:
> Connection: 1
> 0x0f
> Node 0x18 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out
> Control: name="Rear Mic Boost Volume", index=0, device=0
> ControlAmp: chs=3, dir=In, idx=0, ofs=0
> Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0
> Amp-In vals: [0x02 0x02]
> Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
> Amp-Out vals: [0x80 0x80]
> Pincap 0x00001734: IN OUT Detect
> Vref caps: HIZ 50 GRD 80
> Pin Default 0x01a11830: [Jack] Mic at Ext Rear
> Conn = 1/8, Color = Black
> DefAssociation = 0x3, Sequence = 0x0
> Pin-ctls: 0x24: IN VREF_80
> Unsolicited: tag=00, enabled=0
> Connection: 1
> 0x0d
> Node 0x19 [Pin Complex] wcaps 0x40008b: Stereo Amp-In
> Control: name="Front Mic Boost Volume", index=0, device=0
> ControlAmp: chs=3, dir=In, idx=0, ofs=0
> Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0
> Amp-In vals: [0x00 0x00]
> Pincap 0x00001724: IN Detect
> Vref caps: HIZ 50 GRD 80
> Pin Default 0x02a1183f: [Jack] Mic at Ext Front
> Conn = 1/8, Color = Black
> DefAssociation = 0x3, Sequence = 0xf
> Pin-ctls: 0x24: IN VREF_80
> Unsolicited: tag=00, enabled=0
> Node 0x1a [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out
> Control: name="Front Playback Switch", index=0, device=0
> ControlAmp: chs=3, dir=Out, idx=0, ofs=0
> Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0
> Amp-In vals: [0x00 0x00]
> Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
> Amp-Out vals: [0x00 0x00]
> Pincap 0x0000003c: IN OUT HP Detect
> Pin Default 0x02211020: [Jack] HP Out at Ext Front
> Conn = 1/8, Color = Black
> DefAssociation = 0x2, Sequence = 0x0
> Pin-ctls: 0x40: OUT
> Unsolicited: tag=01, enabled=1
> Connection: 2
> 0x0c 0x0d*
> Node 0x1b [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out
> Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0
> Amp-In vals: [0x00 0x00]
> Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
> Amp-Out vals: [0x80 0x80]
> Pincap 0x00000034: IN OUT Detect
> Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
> Conn = 1/8, Color = Black
> DefAssociation = 0xf, Sequence = 0x0
> Misc = NO_PRESENCE
> Pin-ctls: 0x20: IN
> Unsolicited: tag=00, enabled=0
> Connection: 2
> 0x0c* 0x0d
> Node 0x1c [Vendor Defined Widget] wcaps 0xf00000: Mono
> Node 0x1d [Pin Complex] wcaps 0x400000: Mono
> Pincap 0x00000020: IN
> Pin Default 0x598301f0: [N/A] Line In at Int ATAPI
> Conn = ATAPI, Color = Unknown
> DefAssociation = 0xf, Sequence = 0x0
> Misc = NO_PRESENCE
> Pin-ctls: 0x20: IN
> Node 0x1e [Pin Complex] wcaps 0x400381: Stereo Digital
> Pincap 0x00000014: OUT Detect
> Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
> Conn = 1/8, Color = Black
> DefAssociation = 0xf, Sequence = 0x0
> Misc = NO_PRESENCE
> Pin-ctls: 0x40: OUT
> Unsolicited: tag=00, enabled=0
> Connection: 1
> 0x06
> Node 0x1f [Vendor Defined Widget] wcaps 0xf00000: Mono
> Node 0x20 [Vendor Defined Widget] wcaps 0xf00040: Mono
> Processing caps: benign=0, ncoeff=25
> Node 0x21 [Pin Complex] wcaps 0x40018d: Stereo Amp-Out
> Control: name="Headphone Playback Switch", index=0, device=0
> ControlAmp: chs=3, dir=Out, idx=0, ofs=0
> Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
> Amp-Out vals: [0x00 0x00]
> Pincap 0x0000001c: OUT HP Detect
> Pin Default 0x0121101f: [Jack] HP Out at Ext Rear
> Conn = 1/8, Color = Black
> DefAssociation = 0x1, Sequence = 0xf
> Pin-ctls: 0xc0: OUT HP
> Unsolicited: tag=04, enabled=1
> Connection: 2
> 0x0c 0x0d*
> Node 0x22 [Audio Selector] wcaps 0x30010b: Stereo Amp-In
> Control: name="Input Source", index=0, device=0
> Amp-In caps: N/A
> Amp-In vals: [0x00 0x00] [0x00 0x00] [0x00 0x00] [0x00 0x00] [0x00
> 0x00] [0x00 0x00] [0x00 0x00]
> Connection: 7
> 0x18* 0x19 0x1a 0x1b 0x1d 0x0b 0x12
> Node 0x23 [Audio Mixer] wcaps 0x20010b: Stereo Amp-In
> Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
> Amp-In vals: [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80
> 0x80] [0x80 0x80]
> Connection: 6
> 0x18 0x19 0x1a 0x1b 0x1d 0x0b
> Codec: Intel IbexPeak HDMI
> Address: 3
> AFG Function Id: 0x1 (unsol 0)
> Vendor Id: 0x80862804
> Subsystem Id: 0x80860101
> Revision Id: 0x100000
> No Modem Function Group found
> Default PCM:
> rates [0x0]:
> bits [0x0]:
> formats [0x0]:
> Default Amp-In caps: N/A
> Default Amp-Out caps: N/A
> GPIO: io=0, o=0, i=0, unsolicited=0, wake=0
> Node 0x02 [Audio Output] wcaps 0x6611: 8-Channels Digital
> Control: name="IEC958 Playback Con Mask", index=0, device=0
> Control: name="IEC958 Playback Pro Mask", index=0, device=0
> Control: name="IEC958 Playback Default", index=0, device=0
> Control: name="IEC958 Playback Switch", index=0, device=0
> Device: name="HDMI 0", type="HDMI", device=3
> Converter: stream=8, channel=0
> Digital: Enabled
> Digital category: 0x0
> PCM:
> rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000
> bits [0x1e]: 16 20 24 32
> formats [0x5]: PCM AC3
> Power states: D0 D3
> Power: setting=D0, actual=D0
> Node 0x03 [Audio Output] wcaps 0x6611: 8-Channels Digital
> Converter: stream=0, channel=0
> Digital: Enabled
> Digital category: 0x0
> PCM:
> rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000
> bits [0x1e]: 16 20 24 32
> formats [0x5]: PCM AC3
> Power states: D0 D3
> Power: setting=D0, actual=D0
> Node 0x04 [Pin Complex] wcaps 0x40778d: 8-Channels Digital Amp-Out CP
> Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
> Amp-Out vals: [0x00 0x00]
> Pincap 0x09000094: OUT Detect HBR HDMI DP
> Pin Default 0x18560010: [Jack] Digital Out at Int HDMI
> Conn = Digital, Color = Unknown
> DefAssociation = 0x1, Sequence = 0x0
> Pin-ctls: 0x40: OUT
> Unsolicited: tag=04, enabled=1
> Power states: D0 D3
> Power: setting=D0, actual=D0
> Connection: 2
> 0x02* 0x03
> Node 0x05 [Pin Complex] wcaps 0x40778d: 8-Channels Digital Amp-Out CP
> Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
> Amp-Out vals: [0x00 0x00]
> Pincap 0x09000094: OUT Detect HBR HDMI DP
> Pin Default 0x18560010: [Jack] Digital Out at Int HDMI
> Conn = Digital, Color = Unknown
> DefAssociation = 0x1, Sequence = 0x0
> Pin-ctls: 0x40: OUT
> Unsolicited: tag=05, enabled=1
> Power states: D0 D3
> Power: setting=D0, actual=D0
> Connection: 2
> 0x02* 0x03
> Node 0x06 [Pin Complex] wcaps 0x40778d: 8-Channels Digital Amp-Out CP
> Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
> Amp-Out vals: [0x00 0x00]
> Pincap 0x09000094: OUT Detect HBR HDMI DP
> Pin Default 0x18560010: [Jack] Digital Out at Int HDMI
> Conn = Digital, Color = Unknown
> DefAssociation = 0x1, Sequence = 0x0
> Pin-ctls: 0x40: OUT
> Unsolicited: tag=06, enabled=1
> Power states: D0 D3
> Power: setting=D0, actual=D0
> Connection: 2
> 0x02* 0x03
> Node 0x07 [Vendor Defined Widget] wcaps 0xf00000: Mono
> --endcollapse--
>
> [5 alsa-info_3.2.4.txt <text/plain; US-ASCII (base64)>]
> !!################################
> !!ALSA Information Script v 0.4.60
> !!################################
>
> !!Script ran on: Thu Feb 16 05:29:09 UTC 2012
>
>
> !!Linux Distribution
> !!------------------
>
> Debian GNU/Linux wheezy/sid
l
>
>
> !!DMI Information
> !!---------------
>
> Manufacturer: To be filled by O.E.M.
> Product Name: To be filled by O.E.M.
> Product Version: AC5G3N-S8_F6
>
>
> !!Kernel Information
> !!------------------
>
> Kernel release: 3.2.0-1-amd64
> Operating System: GNU/Linux
> Architecture: x86_64
> Processor: unknown
> SMP Enabled: Yes
>
>
> !!ALSA Version
> !!------------
>
> Driver version: 1.0.24
> Library version: 1.0.24.1
> Utilities version: 1.0.24.2
>
>
> !!Loaded ALSA modules
> !!-------------------
>
> snd_hda_intel
>
>
> !!Sound Servers on this system
> !!----------------------------
>
> Pulseaudio:
> Installed - Yes (/usr/bin/pulseaudio)
> Running - Yes
>
> ESound Daemon:
> Installed - Yes (/usr/bin/esd)
> Running - No
>
>
> !!Soundcards recognised by ALSA
> !!-----------------------------
>
> 0 [Intel ]: HDA-Intel - HDA Intel
> HDA Intel at 0xfe500000 irq 46
>
>
> !!PCI Soundcards installed in the system
> !!--------------------------------------
>
> 00:1b.0 Audio device: Intel Corporation 5 Series/3400 Series Chipset
> High Definition Audio (rev 06)
>
>
> !!Advanced information - PCI Vendor/Device/Subsystem ID's
> !!--------------------------------------------------------
>
> 00:1b.0 0403: 8086:3b56 (rev 06)
> Subsystem: 1458:a950
>
>
> !!Modprobe options (Sound related)
> !!--------------------------------
>
> snd-atiixp-modem: index=-2
> snd-intel8x0m: index=-2
> snd-via82xx-modem: index=-2
> snd-pcsp: index=-2
> snd-usb-audio: index=-2
>
>
> !!Loaded sound module options
> !!--------------------------
>
> !!Module: snd_hda_intel
> align_buffer_size : Y
> bdl_pos_adj : 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
> beep_mode : 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1
> enable : Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y, Y,Y,Y,Y,Y,Y,Y
> enable_msi : -1
> id : (null),(null),(null),(null),(null),(null),(null),( null),(null),(null),(null),(null),(null),(null),(n ull),(null),(null),(null),(null),(null),(null),(nu ll),(null),(null),(null),(null),(null),(null),(nul l),(null),(null),(null)
> index : -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
> model : (null),(null),(null),(null),(null),(null),(null),( null),(null),(null),(null),(null),(null),(null),(n ull),(null),(null),(null),(null),(null),(null),(nu ll),(null),(null),(null),(null),(null),(null),(nul l),(null),(null),(null)
> patch : (null),(null),(null),(null),(null),(null),(null),( null),(null),(null),(null),(null),(null),(null),(n ull),(null),(null),(null),(null),(null),(null),(nu ll),(null),(null),(null),(null),(null),(null),(nul l),(null),(null),(null)
> position_fix : 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0
> power_save : 0
> power_save_controller : Y
> probe_mask : -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
> probe_only : 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0
> single_cmd : N
> snoop : Y
>
>
> !!HDA-Intel Codec information
> !!---------------------------
> --startcollapse--
>
> Codec: Realtek ALC269VB
> Address: 0
> AFG Function Id: 0x1 (unsol 1)
> Vendor Id: 0x10ec0269
> Subsystem Id: 0x1458a950
> Revision Id: 0x100100
> No Modem Function Group found
> Default PCM:
> rates [0x560]: 44100 48000 96000 192000
> bits [0xe]: 16 20 24
> formats [0x1]: PCM
> Default Amp-In caps: N/A
> Default Amp-Out caps: N/A
> GPIO: io=2, o=0, i=0, unsolicited=1, wake=0
> IO[0]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
> IO[1]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
> Node 0x02 [Audio Output] wcaps 0x1d: Stereo Amp-Out
> Control: name="PCM Playback Volume", index=0, device=0
> ControlAmp: chs=3, dir=Out, idx=0, ofs=0
> Device: name="ALC269VB Analog", type="Audio", device=0
> Amp-Out caps: ofs=0x57, nsteps=0x57, stepsize=0x02, mute=0
> Amp-Out vals: [0x50 0x50]
> Converter: stream=8, channel=0
> PCM:
> rates [0x560]: 44100 48000 96000 192000
> bits [0xe]: 16 20 24
> formats [0x1]: PCM
> Node 0x03 [Audio Output] wcaps 0x1d: Stereo Amp-Out
> Control: name="Headphone Playback Volume", index=0, device=0
> ControlAmp: chs=3, dir=Out, idx=0, ofs=0
> Amp-Out caps: ofs=0x57, nsteps=0x57, stepsize=0x02, mute=0
> Amp-Out vals: [0x50 0x50]
> Converter: stream=8, channel=0
> PCM:
> rates [0x560]: 44100 48000 96000 192000
> bits [0xe]: 16 20 24
> formats [0x1]: PCM
> Node 0x04 [Vendor Defined Widget] wcaps 0xf00000: Mono
> Node 0x05 [Vendor Defined Widget] wcaps 0xf00000: Mono
> Node 0x06 [Audio Output] wcaps 0x211: Stereo Digital
> Converter: stream=0, channel=0
> Digital:
> Digital category: 0x0
> PCM:
> rates [0x5e0]: 44100 48000 88200 96000 192000
> bits [0xe]: 16 20 24
> formats [0x1]: PCM
> Node 0x07 [Vendor Defined Widget] wcaps 0xf00000: Mono
> Node 0x08 [Audio Input] wcaps 0x10011b: Stereo Amp-In
> Amp-In caps: ofs=0x0b, nsteps=0x1f, stepsize=0x05, mute=1
> Amp-In vals: [0x8b 0x8b]
> Converter: stream=0, channel=0
> SDI-Select: 0
> PCM:
> rates [0x560]: 44100 48000 96000 192000
> bits [0xe]: 16 20 24
> formats [0x1]: PCM
> Connection: 1
> 0x23
> Node 0x09 [Audio Input] wcaps 0x10011b: Stereo Amp-In
> Control: name="Capture Switch", index=0, device=0
> Control: name="Capture Volume", index=0, device=0
> Device: name="ALC269VB Analog", type="Audio", device=0
> Amp-In caps: ofs=0x0b, nsteps=0x1f, stepsize=0x05, mute=1
> Amp-In vals: [0x8f 0x8f]
> Converter: stream=4, channel=0
> SDI-Select: 0
> PCM:
> rates [0x560]: 44100 48000 96000 192000
> bits [0xe]: 16 20 24
> formats [0x1]: PCM
> Connection: 1
> 0x22
> Node 0x0a [Vendor Defined Widget] wcaps 0xf00000: Mono
> Node 0x0b [Audio Mixer] wcaps 0x20010b: Stereo Amp-In
> Control: name="Rear Mic Playback Volume", index=0, device=0
> ControlAmp: chs=3, dir=In, idx=0, ofs=0
> Control: name="Rear Mic Playback Switch", index=0, device=0
> ControlAmp: chs=3, dir=In, idx=0, ofs=0
> Control: name="Front Mic Playback Volume", index=0, device=0
> ControlAmp: chs=3, dir=In, idx=1, ofs=0
> Control: name="Front Mic Playback Switch", index=0, device=0
> ControlAmp: chs=3, dir=In, idx=1, ofs=0
> Control: name="Beep Playback Volume", index=0, device=0
> ControlAmp: chs=3, dir=In, idx=4, ofs=0
> Control: name="Beep Playback Switch", index=0, device=0
> ControlAmp: chs=3, dir=In, idx=4, ofs=0
> Amp-In caps: ofs=0x17, nsteps=0x1f, stepsize=0x05, mute=1
> Amp-In vals: [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x97 0x97]
> Connection: 5
> 0x18 0x19 0x1a 0x1b 0x1d
> Node 0x0c [Audio Mixer] wcaps 0x20010b: Stereo Amp-In
> Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
> Amp-In vals: [0x00 0x00] [0x00 0x00]
> Connection: 2
> 0x02 0x0b
> Node 0x0d [Audio Mixer] wcaps 0x20010b: Stereo Amp-In
> Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
> Amp-In vals: [0x00 0x00] [0x00 0x00]
> Connection: 2
> 0x03 0x0b
> Node 0x0e [Vendor Defined Widget] wcaps 0xf00000: Mono
> Node 0x0f [Audio Mixer] wcaps 0x20010a: Mono Amp-In
> Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
> Amp-In vals: [0x00] [0x80]
> Connection: 2
> 0x02 0x0b
> Node 0x10 [Vendor Defined Widget] wcaps 0xf00000: Mono
> Node 0x11 [Vendor Defined Widget] wcaps 0xf00000: Mono
> Node 0x12 [Pin Complex] wcaps 0x40000b: Stereo Amp-In
> Control: name="Internal Mic Boost Volume", index=0, device=0
> ControlAmp: chs=3, dir=In, idx=0, ofs=0
> Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0
> Amp-In vals: [0x03 0x03]
> Pincap 0x00000020: IN
> Pin Default 0x99a30940: [Fixed] Mic at Int ATAPI
> Conn = ATAPI, Color = Unknown
> DefAssociation = 0x4, Sequence = 0x0
> Misc = NO_PRESENCE
> Pin-ctls: 0x20: IN
> Node 0x13 [Vendor Defined Widget] wcaps 0xf00000: Mono
> Node 0x14 [Pin Complex] wcaps 0x40018d: Stereo Amp-Out
> Control: name="Speaker Playback Switch", index=0, device=0
> ControlAmp: chs=3, dir=Out, idx=0, ofs=0
> Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
> Amp-Out vals: [0x00 0x00]
> Pincap 0x00010014: OUT EAPD Detect
> EAPD 0x2: EAPD
> Pin Default 0x99130110: [Fixed] Speaker at Int ATAPI
> Conn = ATAPI, Color = Unknown
> DefAssociation = 0x1, Sequence = 0x0
> Misc = NO_PRESENCE
> Pin-ctls: 0x40: OUT
> Unsolicited: tag=00, enabled=0
> Connection: 2
> 0x0c* 0x0d
> Node 0x15 [Vendor Defined Widget] wcaps 0xf00000: Mono
> Node 0x16 [Vendor Defined Widget] wcaps 0xf00000: Mono
> Node 0x17 [Pin Complex] wcaps 0x40010c: Mono Amp-Out
> Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
> Amp-Out vals: [0x80]
> Pincap 0x00000010: OUT
> Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
> Conn = 1/8, Color = Black
> DefAssociation = 0xf, Sequence = 0x0
> Misc = NO_PRESENCE
> Pin-ctls: 0x00:
> Connection: 1
> 0x0f
> Node 0x18 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out
> Control: name="Rear Mic Boost Volume", index=0, device=0
> ControlAmp: chs=3, dir=In, idx=0, ofs=0
> Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0
> Amp-In vals: [0x02 0x02]
> Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
> Amp-Out vals: [0x80 0x80]
> Pincap 0x00001734: IN OUT Detect
> Vref caps: HIZ 50 GRD 80
> Pin Default 0x01a11830: [Jack] Mic at Ext Rear
> Conn = 1/8, Color = Black
> DefAssociation = 0x3, Sequence = 0x0
> Pin-ctls: 0x24: IN VREF_80
> Unsolicited: tag=00, enabled=0
> Connection: 1
> 0x0d
> Node 0x19 [Pin Complex] wcaps 0x40008b: Stereo Amp-In
> Control: name="Front Mic Boost Volume", index=0, device=0
> ControlAmp: chs=3, dir=In, idx=0, ofs=0
> Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0
> Amp-In vals: [0x00 0x00]
> Pincap 0x00001724: IN Detect
> Vref caps: HIZ 50 GRD 80
> Pin Default 0x02a1183f: [Jack] Mic at Ext Front
> Conn = 1/8, Color = Black
> DefAssociation = 0x3, Sequence = 0xf
> Pin-ctls: 0x24: IN VREF_80
> Unsolicited: tag=00, enabled=0
> Node 0x1a [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out
> Control: name="PCM Playback Switch", index=0, device=0
> ControlAmp: chs=3, dir=Out, idx=0, ofs=0
> Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0
> Amp-In vals: [0x00 0x00]
> Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
> Amp-Out vals: [0x00 0x00]
> Pincap 0x0000003c: IN OUT HP Detect
> Pin Default 0x02211020: [Jack] HP Out at Ext Front
> Conn = 1/8, Color = Black
> DefAssociation = 0x2, Sequence = 0x0
> Pin-ctls: 0x40: OUT
> Unsolicited: tag=01, enabled=1
> Connection: 2
> 0x0c* 0x0d
> Node 0x1b [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out
> Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0
> Amp-In vals: [0x00 0x00]
> Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
> Amp-Out vals: [0x80 0x80]
> Pincap 0x00000034: IN OUT Detect
> Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
> Conn = 1/8, Color = Black
> DefAssociation = 0xf, Sequence = 0x0
> Misc = NO_PRESENCE
> Pin-ctls: 0x20: IN
> Unsolicited: tag=00, enabled=0
> Connection: 2
> 0x0c* 0x0d
> Node 0x1c [Vendor Defined Widget] wcaps 0xf00000: Mono
> Node 0x1d [Pin Complex] wcaps 0x400000: Mono
> Pincap 0x00000020: IN
> Pin Default 0x598301f0: [N/A] Line In at Int ATAPI
> Conn = ATAPI, Color = Unknown
> DefAssociation = 0xf, Sequence = 0x0
> Misc = NO_PRESENCE
> Pin-ctls: 0x20: IN
> Node 0x1e [Pin Complex] wcaps 0x400381: Stereo Digital
> Pincap 0x00000014: OUT Detect
> Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
> Conn = 1/8, Color = Black
> DefAssociation = 0xf, Sequence = 0x0
> Misc = NO_PRESENCE
> Pin-ctls: 0x40: OUT
> Unsolicited: tag=00, enabled=0
> Connection: 1
> 0x06
> Node 0x1f [Vendor Defined Widget] wcaps 0xf00000: Mono
> Node 0x20 [Vendor Defined Widget] wcaps 0xf00040: Mono
> Processing caps: benign=0, ncoeff=25
> Node 0x21 [Pin Complex] wcaps 0x40018d: Stereo Amp-Out
> Control: name="Headphone Playback Switch", index=0, device=0
> ControlAmp: chs=3, dir=Out, idx=0, ofs=0
> Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
> Amp-Out vals: [0x00 0x00]
> Pincap 0x0000001c: OUT HP Detect
> Pin Default 0x0121101f: [Jack] HP Out at Ext Rear
> Conn = 1/8, Color = Black
> DefAssociation = 0x1, Sequence = 0xf
> Pin-ctls: 0xc0: OUT HP
> Unsolicited: tag=04, enabled=1
> Connection: 2
> 0x0c 0x0d*
> Node 0x22 [Audio Selector] wcaps 0x30010b: Stereo Amp-In
> Control: name="Input Source", index=0, device=0
> Amp-In caps: N/A
> Amp-In vals: [0x00 0x00] [0x00 0x00] [0x00 0x00] [0x00 0x00] [0x00
> 0x00] [0x00 0x00] [0x00 0x00]
> Connection: 7
> 0x18* 0x19 0x1a 0x1b 0x1d 0x0b 0x12
> Node 0x23 [Audio Mixer] wcaps 0x20010b: Stereo Amp-In
> Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
> Amp-In vals: [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80
> 0x80] [0x80 0x80]
> Connection: 6
> 0x18 0x19 0x1a 0x1b 0x1d 0x0b
> Codec: Intel IbexPeak HDMI
> Address: 3
> AFG Function Id: 0x1 (unsol 0)
> Vendor Id: 0x80862804
> Subsystem Id: 0x80860101
> Revision Id: 0x100000
> No Modem Function Group found
> Default PCM:
> rates [0x0]:
> bits [0x0]:
> formats [0x0]:
> Default Amp-In caps: N/A
> Default Amp-Out caps: N/A
> GPIO: io=0, o=0, i=0, unsolicited=0, wake=0
> Node 0x02 [Audio Output] wcaps 0x6611: 8-Channels Digital
> Converter: stream=0, channel=0
> Digital: Enabled GenLevel
> Digital category: 0x2
> PCM:
> rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000
> bits [0x1e]: 16 20 24 32
> formats [0x5]: PCM AC3
> Power states: D0 D3
> Power: setting=D0, actual=D0
> Node 0x03 [Audio Output] wcaps 0x6611: 8-Channels Digital
> Converter: stream=0, channel=0
> Digital: Enabled
> Digital category: 0x0
> PCM:
> rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000
> bits [0x1e]: 16 20 24 32
> formats [0x5]: PCM AC3
> Power states: D0 D3
> Power: setting=D0, actual=D0
> Node 0x04 [Pin Complex] wcaps 0x40778d: 8-Channels Digital Amp-Out CP
> Control: name="IEC958 Playback Con Mask", index=0, device=0
> Control: name="IEC958 Playback Pro Mask", index=0, device=0
> Control: name="IEC958 Playback Default", index=0, device=0
> Control: name="IEC958 Playback Switch", index=0, device=0
> Control: name="ELD", index=0, device=3
> Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
> Amp-Out vals: [0x00 0x00]
> Pincap 0x09000094: OUT Detect HBR HDMI DP
> Pin Default 0x18560010: [Jack] Digital Out at Int HDMI
> Conn = Digital, Color = Unknown
> DefAssociation = 0x1, Sequence = 0x0
> Pin-ctls: 0x00:
> Unsolicited: tag=04, enabled=1
> Power states: D0 D3
> Power: setting=D0, actual=D0
> Connection: 2
> 0x02* 0x03
> Node 0x05 [Pin Complex] wcaps 0x40778d: 8-Channels Digital Amp-Out CP
> Control: name="IEC958 Playback Con Mask", index=1, device=0
> Control: name="IEC958 Playback Pro Mask", index=1, device=0
> Control: name="IEC958 Playback Default", index=1, device=0
> Control: name="IEC958 Playback Switch", index=1, device=0
> Control: name="ELD", index=0, device=7
> Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
> Amp-Out vals: [0x00 0x00]
> Pincap 0x09000094: OUT Detect HBR HDMI DP
> Pin Default 0x18560010: [Jack] Digital Out at Int HDMI
> Conn = Digital, Color = Unknown
> DefAssociation = 0x1, Sequence = 0x0
> Pin-ctls: 0x00:
> Unsolicited: tag=05, enabled=1
> Power states: D0 D3
> Power: setting=D0, actual=D0
> Connection: 2
> 0x02* 0x03
> Node 0x06 [Pin Complex] wcaps 0x40778d: 8-Channels Digital Amp-Out CP
> Control: name="IEC958 Playback Con Mask", index=2, device=0
> Control: name="IEC958 Playback Pro Mask", index=2, device=0
> Control: name="IEC958 Playback Default", index=2, device=0
> Control: name="IEC958 Playback Switch", index=2, device=0
> Control: name="ELD", index=0, device=8
> Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
> Amp-Out vals: [0x00 0x00]
> Pincap 0x09000094: OUT Detect HBR HDMI DP
> Pin Default 0x18560010: [Jack] Digital Out at Int HDMI
> Conn = Digital, Color = Unknown
> DefAssociation = 0x1, Sequence = 0x0
> Pin-ctls: 0x00:
> Unsolicited: tag=06, enabled=1
> Power states: D0 D3
> Power: setting=D0, actual=D0
> Connection: 2
> 0x02* 0x03
> Node 0x07 [Vendor Defined Widget] wcaps 0xf00000: Mono
> --endcollapse--
>



--
To UNSUBSCRIBE, email to debian-kernel-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Archive: s5hwr7f48jd.wl%tiwai@suse.de">http://lists.debian.org/s5hwr7f48jd.wl%tiwai@suse.de
 
Old 02-22-2012, 03:45 PM
Stephen Warren
 
Default Bug#660111: multiple, non-physically accesible, HDMI devices listed for Intel IbexPeak ALC269VB

Andres Cimmarusti wrote at Tuesday, February 21, 2012 11:44 PM:
...
> Unfortunately with kernel 3.2.x and 3.1.x I get no sound out choosing the same
> configuration in pulseaudio. Device is advertised correctly but
> there's a bizarre multiplicity advertised:
>
> $ aplay -l
> **** List of PLAYBACK Hardware Devices ****
> card 0: Intel [HDA Intel], device 0: ALC269VB Analog [ALC269VB Analog]
> Subdevices: 1/1
> Subdevice #0: subdevice #0
> card 0: Intel [HDA Intel], device 3: HDMI 0 [HDMI 0]
> Subdevices: 1/1
> Subdevice #0: subdevice #0
> card 0: Intel [HDA Intel], device 7: HDMI 1 [HDMI 1]
> Subdevices: 1/1
> Subdevice #0: subdevice #0
> card 0: Intel [HDA Intel], device 8: HDMI 2 [HDMI 2]
> Subdevices: 1/1
> Subdevice #0: subdevice #0
>
> Using aplay with device 3 says device is busy.

pulseaudio probably has that device open, hence aplay can't open it
again. To validate this, run the following:

pasuspender bash

Then, run your aplay within that bash. At least aplay should run now,
even if you still can't hear audio; it's possible you don't (or can't)
have anything hooked up to that audio output

> Device 7 works
> correctly (but is not available in pulseaudio unless forced by
> default, which then renders internal speakers disabled)

There are ways to configure pulseaudio to allow the user to select which
PCM device to use on a given sound card. David Henningsson made this work
for NVIDIA GPUs at least in Ubuntu, and I imagine the same technique
could be applied to Intel devices too.

In the meantime, the WAR that Takashi mentioned in his response sounds
like it'd work very well, albeit it's a bit manual to set up.

> and device 8 produces no sound out.

It's plausible that isn't connected, or is connected to a graphics port
you simply don't have hooked up to a monitor or audio-capable monitor.

As Takashi mentions, from a kernel perspective, this isn't really a
regression at all, but simply exposing all the features of the HW that
were previously hidden. Without that change, others can't use some HW
usefully at all. Unfortunately, pulseaudio makes some rather simplistic
assumptions about how HW works by default, and can be confused by the
additional features that are exposed.

Sorry this caused problems for you.

--
nvpublic
 
Old 02-22-2012, 08:52 PM
Jonathan Nieder
 
Default Bug#660111: multiple, non-physically accesible, HDMI devices listed for Intel IbexPeak ALC269VB

Stephen Warren wrote:

> As Takashi mentions, from a kernel perspective, this isn't really a
> regression at all, but simply exposing all the features of the HW that
> were previously hidden. Without that change, others can't use some HW
> usefully at all. Unfortunately, pulseaudio makes some rather simplistic
> assumptions about how HW works by default, and can be confused by the
> additional features that are exposed.

>From a distro perspective, it's a regression that happens to be
bundled with a feature. Though from a distro perspective working
around this in pulseaudio and making sure even old releases get the
fix might be okay.

I thought that "no regressions" meant that the first sentence and not
the second sentence of the previous paragraph apply from a kernel
perspective. No? So I would be happiest if there is some way to
teach the kernel about this quirk until everyone already has had a
fixed pulseaudio for a year or two.

Jonathan



--
To UNSUBSCRIBE, email to debian-kernel-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Archive: 20120222215206.GA3517@burratino">http://lists.debian.org/20120222215206.GA3517@burratino
 
Old 02-22-2012, 11:01 PM
Andres Cimmarusti
 
Default Bug#660111: multiple, non-physically accesible, HDMI devices listed for Intel IbexPeak ALC269VB

First of all, thank you for your feedback. It's been quite helpful / insightful

> The biggest problem is that PA checks only the first HDMI device.
> In that sense, this is no regression in the kernel side, although I
> know it's annoying.

I agree this seems more like a shortcoming of pulseaudio. Else it's my
BIOS' fault, which doesn't surprise me, seeing at this notebook is
manufactured by some "unknown" OEM in Taiwan for other vendors and all
they care is if Windows runs ok on it. In fact, I currently have many
unsupported ACPI keys events because of it.

> If the new two pins can be never used, i.e. physically unreachable,
> we may disable these pins by giving the proper default pin-config
> values. Usually it's a job of BIOS. But if BIOS doesn't do it, user
> need to do it manually.
>
> Build your kernel with CONFIG_SND_HDA_HWDEP=y,
> CONFIG_SND_HDA_RECONFIG=y, CONFIG_SND_HDA_PATCH_LOADER=y.
> I guess most of distro kernels are built with them.
> Then create a file containing below in /lib/firmware, such as,
> /lib/firmware/ibx-hdmi:
>
> ================================================== ==============
> [codec]
> 0x80862804 0x80860101 3
> [pincfg]
> 0x04 0x411111f0
> 0x06 0x411111f0
> ================================================== ==============
>
> Now pass this file to "patch" module option for snd-hda-intel.
> For example, create a file in /etc/modprobe.d/,
> e.g. /etc/modprobe.d/50-hdmi.conf, containing the line
>
> options snd-hda-intel patch="ibx-hdmi"
>
> Then reload the driver or reboot. This will disable pins 0x04 and
> 0x06 so that only the pin 0x05 will be used.

I've tested this workaround and it works well. I don't suppose this
could be added as a quirk to the kernel for this particular device?
(when and only if there's only one physically accessible HDMI
connector).

> There are ways to configure pulseaudio to allow the user to select which
> PCM device to use on a given sound card. David Henningsson made this work
> for NVIDIA GPUs at least in Ubuntu, and I imagine the same technique
> could be applied to Intel devices too.

Mmm.. just in Ubuntu? was this work submitted upstream? It appears
there are some related fixes shown in the Ubuntu pulseaudio changelog:

http://changelogs.ubuntu.com/changelogs/pool/main/p/pulseaudio/pulseaudio_1.1-0ubuntu9/changelog

I found a thread related to this issue here:
http://www.mail-archive.com/pulseaudio-discuss@mail.0pointer.de/msg07433.html
Started by yourself Stephen Warren! but it doesn't seem like it got anywhere...

> As Takashi mentions, from a kernel perspective, this isn't really a
> regression at all, but simply exposing all the features of the HW that
> were previously hidden. Without that change, others can't use some HW
> usefully at all. Unfortunately, pulseaudio makes some rather simplistic
> assumptions about how HW works by default, and can be confused by the
> additional features that are exposed.

Agreed. But in the case of laptops, I don't think I've ever seen one
that actually has more than one physical connector. I'm a little
puzzled as to how all these outputs (in my case 3) make sense for my
hardware...

> I thought that "no regressions" meant that the first sentence and not
> the second sentence of the previous paragraph apply from a kernel
> perspective. *No? *So I would be happiest if there is some way to
> teach the kernel about this quirk until everyone already has had a
> fixed pulseaudio for a year or two.

I agree fixing pulseaudio is ideal, but a kernel quirk can be
backported more easily from a distribution perspective.

Anyways, thank you for your support

Best Regards,

Andres



--
To UNSUBSCRIBE, email to debian-kernel-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Archive: CAH=dYrGuG0WfBFAMVmJdT28pckZ3TXutRq61-K++ui5VXSr+YQ@mail.gmail.com">http://lists.debian.org/CAH=dYrGuG0WfBFAMVmJdT28pckZ3TXutRq61-K++ui5VXSr+YQ@mail.gmail.com
 
Old 02-22-2012, 11:39 PM
Stephen Warren
 
Default Bug#660111: multiple, non-physically accesible, HDMI devices listed for Intel IbexPeak ALC269VB

Andres Cimmarusti wrote at Wednesday, February 22, 2012 5:02 PM:
> First of all, thank you for your feedback. It's been quite helpful / insightful
...
> > There are ways to configure pulseaudio to allow the user to select which
> > PCM device to use on a given sound card. David Henningsson made this work
> > for NVIDIA GPUs at least in Ubuntu, and I imagine the same technique
> > could be applied to Intel devices too.
>
> Mmm.. just in Ubuntu? was this work submitted upstream? It appears
> there are some related fixes shown in the Ubuntu pulseaudio changelog:

I think the following Ubuntu bug covers the patch:

https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/716371
See the patch in comment #2.

Hopefully David will chime in on upstreaming status etc.

The following might be interesting; at least some of it will apply to
non-NVIDIA graphics cards:

ftp://download.nvidia.com/XFree86/gpu-hdmi-audio-document/gpu-hdmi-audio.html

--
nvpublic
 
Old 02-23-2012, 05:46 AM
David Henningsson
 
Default Bug#660111: multiple, non-physically accesible, HDMI devices listed for Intel IbexPeak ALC269VB

On 02/22/2012 08:44 AM, Takashi Iwai wrote:

At Wed, 22 Feb 2012 01:43:44 -0500,
Andres Cimmarusti wrote:


[1<text/plain; UTF-8 (7bit)>]
Dear Mr. Warren,

I recently upgraded my laptop to Debian testing (from Debian stable +
the longterm stable 3.0.x kernel). The newer kernel 3.2.x came with a
regression that git bisect has traced down to one of your commits in
the early 3.1.x kernel development stage (git bisect output and git
bisect log attached).

Under kernel 3.0.x HDMI sound works out-of-the-box as tested with
pulse audio (choosing the option Digital
Stereo (HDMI) Output) and by the command:

$ aplay -D plughw:0,3 /usr/share/sounds/alsa/Front_Center.wav

Alsa's device list reveals:

$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Intel [HDA Intel], device 0: ALC269VB Analog [ALC269VB Analog]
Subdevices: 0/1
Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0

Unfortunately with kernel 3.2.x and 3.1.x I get no sound out choosing the same
configuration in pulseaudio. Device is advertised correctly but
there's a bizarre multiplicity advertised:

$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Intel [HDA Intel], device 0: ALC269VB Analog [ALC269VB Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 7: HDMI 1 [HDMI 1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 8: HDMI 2 [HDMI 2]
Subdevices: 1/1
Subdevice #0: subdevice #0

Using aplay with device 3 says device is busy. Device 7 works
correctly (but is not available in pulseaudio unless forced by
default, which then renders internal speakers disabled) and device 8
produces no sound out.

This appears to be a regression in the kernel about this device,
advertising non-physically connected HDMI sound devices that cause
pulse audio to get
confused (Pulseaudio only seems to be able to handle one HDMI output
by default device 0,3).


The biggest problem is that PA checks only the first HDMI device.
In that sense, this is no regression in the kernel side, although I
know it's annoying.


There is active work going on in this area. In fact, I just posted a
patch to the PA mailinglist [1]. And yes, we already have it in Ubuntu
11.10 (to probe multiple hdmi devices for Intel and NVidia), and the
main reason it took until now to upstream that patch, was the decision
to switch jack detection method from input devices to kcontrols.



If the new two pins can be never used, i.e. physically unreachable,
we may disable these pins by giving the proper default pin-config
values. Usually it's a job of BIOS. But if BIOS doesn't do it, user
need to do it manually.

Build your kernel with CONFIG_SND_HDA_HWDEP=y,
CONFIG_SND_HDA_RECONFIG=y, CONFIG_SND_HDA_PATCH_LOADER=y.
I guess most of distro kernels are built with them.
Then create a file containing below in /lib/firmware, such as,
/lib/firmware/ibx-hdmi:

================================================== ==============
[codec]
0x80862804 0x80860101 3
[pincfg]
0x04 0x411111f0
0x06 0x411111f0
================================================== ==============

Now pass this file to "patch" module option for snd-hda-intel.
For example, create a file in /etc/modprobe.d/,
e.g. /etc/modprobe.d/50-hdmi.conf, containing the line

options snd-hda-intel patch="ibx-hdmi"

Then reload the driver or reboot. This will disable pins 0x04 and
0x06 so that only the pin 0x05 will be used.


Let me also push for the hda-jack-retask [2] application, which is an
easy-to-use GUI for creating these types of firmware files. I advertised
it here a while ago [3] but it seems to have gone unnoticed.


--
David Henningsson, Canonical Ltd.
http://launchpad.net/~diwic

[1]
http://lists.freedesktop.org/archives/pulseaudio-discuss/2012-February/012872.html


[2]
http://voices.canonical.com/david.henningsson/2011/11/29/turn-your-mic-jack-into-a-headphone-jack/


[3]
http://mailman.alsa-project.org/pipermail/alsa-devel/2011-December/046778.html




--
To UNSUBSCRIBE, email to debian-kernel-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Archive: 4F45E0CD.3020009@canonical.com">http://lists.debian.org/4F45E0CD.3020009@canonical.com
 
Old 02-23-2012, 07:30 AM
David Henningsson
 
Default Bug#660111: multiple, non-physically accesible, HDMI devices listed for Intel IbexPeak ALC269VB

On 02/23/2012 01:01 AM, Andres Cimmarusti wrote:

If the new two pins can be never used, i.e. physically unreachable,
we may disable these pins by giving the proper default pin-config
values. Usually it's a job of BIOS. But if BIOS doesn't do it, user
need to do it manually.

Build your kernel with CONFIG_SND_HDA_HWDEP=y,
CONFIG_SND_HDA_RECONFIG=y, CONFIG_SND_HDA_PATCH_LOADER=y.
I guess most of distro kernels are built with them.
Then create a file containing below in /lib/firmware, such as,
/lib/firmware/ibx-hdmi:

================================================== ==============
[codec]
0x80862804 0x80860101 3
[pincfg]
0x04 0x411111f0
0x06 0x411111f0
================================================== ==============

Now pass this file to "patch" module option for snd-hda-intel.
For example, create a file in /etc/modprobe.d/,
e.g. /etc/modprobe.d/50-hdmi.conf, containing the line

options snd-hda-intel patch="ibx-hdmi"

Then reload the driver or reboot. This will disable pins 0x04 and
0x06 so that only the pin 0x05 will be used.


I've tested this workaround and it works well. I don't suppose this
could be added as a quirk to the kernel for this particular device?
(when and only if there's only one physically accessible HDMI
connector).


Stephen, could you comment on this? Are we guaranteed a certain board
configuration (i e which pins are physically connected or not) given a
PCI SSID, or anything else that can be used as a key to a quirk table? I
think I've asked you before and that the answer was "no", but my memory
could be failing me.



There are ways to configure pulseaudio to allow the user to select which
PCM device to use on a given sound card. David Henningsson made this work
for NVIDIA GPUs at least in Ubuntu, and I imagine the same technique
could be applied to Intel devices too.


Mmm.. just in Ubuntu? was this work submitted upstream? It appears
there are some related fixes shown in the Ubuntu pulseaudio changelog:

http://changelogs.ubuntu.com/changelogs/pool/main/p/pulseaudio/pulseaudio_1.1-0ubuntu9/changelog

I found a thread related to this issue here:
http://www.mail-archive.com/pulseaudio-discuss@mail.0pointer.de/msg07433.html
Started by yourself Stephen Warren! but it doesn't seem like it got anywhere...


As Takashi mentions, from a kernel perspective, this isn't really a
regression at all, but simply exposing all the features of the HW that
were previously hidden. Without that change, others can't use some HW
usefully at all. Unfortunately, pulseaudio makes some rather simplistic
assumptions about how HW works by default, and can be confused by the
additional features that are exposed.


Agreed. But in the case of laptops, I don't think I've ever seen one
that actually has more than one physical connector. I'm a little
puzzled as to how all these outputs (in my case 3) make sense for my
hardware...


Even if there is only one HDMI output, it's it not that uncommon,
actually. Many DVI outputs can output HDMI audio as well (when connected
through an HDMI monitor through DVI->HDMI adapter), and DisplayPort also
has audio support.


--
David Henningsson, Canonical Ltd.
http://launchpad.net/~diwic



--
To UNSUBSCRIBE, email to debian-kernel-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Archive: 4F45F934.7040409@canonical.com">http://lists.debian.org/4F45F934.7040409@canonical.com
 
Old 02-23-2012, 03:17 PM
Stephen Warren
 
Default Bug#660111: multiple, non-physically accesible, HDMI devices listed for Intel IbexPeak ALC269VB

David Henningsson wrote at Thursday, February 23, 2012 1:31 AM:
> On 02/23/2012 01:01 AM, Andres Cimmarusti wrote:
> >> If the new two pins can be never used, i.e. physically unreachable,
> >> we may disable these pins by giving the proper default pin-config
> >> values. Usually it's a job of BIOS. But if BIOS doesn't do it, user
> >> need to do it manually.
> >>
> >> Build your kernel with CONFIG_SND_HDA_HWDEP=y,
> >> CONFIG_SND_HDA_RECONFIG=y, CONFIG_SND_HDA_PATCH_LOADER=y.
> >> I guess most of distro kernels are built with them.
> >> Then create a file containing below in /lib/firmware, such as,
> >> /lib/firmware/ibx-hdmi:
> >>
> >> ================================================== ==============
> >> [codec]
> >> 0x80862804 0x80860101 3
> >> [pincfg]
> >> 0x04 0x411111f0
> >> 0x06 0x411111f0
> >> ================================================== ==============
> >>
> >> Now pass this file to "patch" module option for snd-hda-intel.
> >> For example, create a file in /etc/modprobe.d/,
> >> e.g. /etc/modprobe.d/50-hdmi.conf, containing the line
> >>
> >> options snd-hda-intel patch="ibx-hdmi"
> >>
> >> Then reload the driver or reboot. This will disable pins 0x04 and
> >> 0x06 so that only the pin 0x05 will be used.
> >
> > I've tested this workaround and it works well. I don't suppose this
> > could be added as a quirk to the kernel for this particular device?
> > (when and only if there's only one physically accessible HDMI
> > connector).
>
> Stephen, could you comment on this? Are we guaranteed a certain board
> configuration (i e which pins are physically connected or not) given a
> PCI SSID, or anything else that can be used as a key to a quirk table? I
> think I've asked you before and that the answer was "no", but my memory
> could be failing me.

Any quirks would definitely have to include the PCI subsystem vendor ID
and subsystem device ID to stand any chance of working; the main dev and
vendor IDs certainly aren't enough.

For NVIDIA GPUs, my expectation is that matching on all 4 IDs would often
provide a unique key that determines which quirks to apply. However, the
subsystem IDs are assigned by OEMs, and I have no idea whether they re-
use the same IDs for different boards sometimes (I believe they shouldn't,
but that doesn't necessarily mean anything). I assume the situation is
identical for Intel graphics chips, but I can't really comment there at
all!

In summary: Our GPUs have a bunch of output port pins, and it's up to the
individual board design which of those to use for which ports. There
should be a 1:1 mapping between the 4-part PCI ID and the set of ports
used and what for, but there's no way to guarantee that's true across all
boards.

Finally, if we did start quirking this, a complete table would end up
being potentially enormous; an entry for every graphics board or mother-
board with integrated graphics ever made...

--
nvpublic
 
Old 03-03-2012, 10:36 PM
Andres Cimmarusti
 
Default Bug#660111: multiple, non-physically accesible, HDMI devices listed for Intel IbexPeak ALC269VB

> There is active work going on in this area. In fact, I just posted a patch
> to the PA mailinglist [1]. And yes, we already have it in Ubuntu 11.10 (to
> probe multiple hdmi devices for Intel and NVidia), and the main reason it
> took until now to upstream that patch, was the decision to switch jack
> detection method from input devices to kcontrols.

Thank you for all the references you provided and your work in fixing
this issue for all users. I just looked at the git repository for the
source code of pulseaudio, but I see your patches have not been
included yet. Do you have any estimate of when they will be merged? if
so, do you think they'll be included in the next release (do you know
when this will be?) ?

I'm considering reassigning this bug to pulseaudio in debian and
asking them to include the appropriate patches. Which ones would
actually be needed (say, to apply them to pulseaudio 1.1)? would your
6 patches announced on the mailing list in February be enough?

>> If the new two pins can be never used, i.e. physically unreachable,
>> we may disable these pins by giving the proper default pin-config
>> values. *Usually it's a job of BIOS. *But if BIOS doesn't do it, user
>> need to do it manually.
>>
>> Build your kernel with CONFIG_SND_HDA_HWDEP=y,
>> CONFIG_SND_HDA_RECONFIG=y, CONFIG_SND_HDA_PATCH_LOADER=y.
>> I guess most of distro kernels are built with them.
>> Then create a file containing below in /lib/firmware, such as,
>> /lib/firmware/ibx-hdmi:
>>
>> ================================================== ==============
>> [codec]
>> 0x80862804 0x80860101 3
>> [pincfg]
>> 0x04 0x411111f0
>> 0x06 0x411111f0
>> ================================================== ==============
>>
>> Now pass this file to "patch" module option for snd-hda-intel.
>> For example, create a file in /etc/modprobe.d/,
>> e.g. /etc/modprobe.d/50-hdmi.conf, containing the line
>>
>> options snd-hda-intel patch="ibx-hdmi"
>>
>> Then reload the driver or reboot. *This will disable pins 0x04 and
>> 0x06 so that only the pin 0x05 will be used.
>
> Let me also push for the hda-jack-retask [2] application, which is an
> easy-to-use GUI for creating these types of firmware files. I advertised it
> here a while ago [3] but it seems to have gone unnoticed.

This sounds like a good tool for making this happen. I will submit a
Request For Package in Debian... but this can take time. Would you
consider packaging it there? then it would easily flow into Ubuntu.

I've encountered other hardware with the same issue recently. It's an
NVIDIA card HDA MCP89 on a Macbook Pro 7,1. Is there a method I can
follow for crafting my own "patches"? I'm afraid I don't understand
how to find the appropriate HEX values that need to go in the [codec]
and [pincfg] section.

Thanks all for your help.

Cheers,

Andres



--
To UNSUBSCRIBE, email to debian-kernel-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Archive: CAH=dYrEXDb_eXYr01pfq8LmNKxduKq8eLRLuenGBVj8zF_VL8 A@mail.gmail.com">http://lists.debian.org/CAH=dYrEXDb_eXYr01pfq8LmNKxduKq8eLRLuenGBVj8zF_VL8 A@mail.gmail.com
 
Old 03-04-2012, 01:43 AM
David Henningsson
 
Default Bug#660111: multiple, non-physically accesible, HDMI devices listed for Intel IbexPeak ALC269VB

On 03/04/2012 12:36 AM, Andres Cimmarusti wrote:

There is active work going on in this area. In fact, I just posted a patch
to the PA mailinglist [1]. And yes, we already have it in Ubuntu 11.10 (to
probe multiple hdmi devices for Intel and NVidia), and the main reason it
took until now to upstream that patch, was the decision to switch jack
detection method from input devices to kcontrols.


Thank you for all the references you provided and your work in fixing
this issue for all users. I just looked at the git repository for the
source code of pulseaudio, but I see your patches have not been
included yet. Do you have any estimate of when they will be merged? if
so, do you think they'll be included in the next release (do you know
when this will be?) ?


I hope they'll be in PulseAudio 2.0, as they are currently waiting for
review. For next release, see [2], but judging from the PulseAudio 1.0
release process - no, I don't know when this will be ;-)



I'm considering reassigning this bug to pulseaudio in debian and
asking them to include the appropriate patches. Which ones would
actually be needed (say, to apply them to pulseaudio 1.1)? would your
6 patches announced on the mailing list in February be enough?


If you want them to apply to PulseAudio 1.1, you can have a look at [1].
The patches currently posted apply to git head. You'll need all of the
06* patches (as well as Linux 3.3 for the kcontrols).


A more light-weight version could be what I did in Ubuntu 11.04, where
there was no jack detection, but I just exposed all four devices in
PulseAudio and let the user choose manually, like this [4]. (I later
renamed that file from "nvidia.conf" to "extra-hdmi.conf", and added the
same file to be used for Intel chips.)



Let me also push for the hda-jack-retask [2] application, which is an
easy-to-use GUI for creating these types of firmware files. I advertised it
here a while ago [3] but it seems to have gone unnoticed.


This sounds like a good tool for making this happen. I will submit a
Request For Package in Debian... but this can take time. Would you
consider packaging it there? then it would easily flow into Ubuntu.


Certainly, if there is interest from the Debian side to have it.

I would also not mind if it became a part of upstream ALSA, I think it
would make a nice addition to the hda-analyzer, hda-verb etc tool set.



I've encountered other hardware with the same issue recently. It's an
NVIDIA card HDA MCP89 on a Macbook Pro 7,1. Is there a method I can
follow for crafting my own "patches"? I'm afraid I don't understand
how to find the appropriate HEX values that need to go in the [codec]
and [pincfg] section.


I think the easiest way is just to download the hda-jack-retask
application and build it yourself. Otherwise, [3].



Thanks all for your help.


You're welcome.

--
David Henningsson, Canonical Ltd.
http://launchpad.net/~diwic

[1]
http://bazaar.launchpad.net/~ubuntu-audio-dev/pulseaudio/ubuntu.precise/files/head:/debian/patches/


[2] http://pulseaudio.org/wiki/ReleasePlanning

[3] http://www.kernel.org/doc/Documentation/sound/alsa/HD-Audio.txt

[4]
http://bazaar.launchpad.net/~ubuntu-audio-dev/pulseaudio/ubuntu.natty/view/head:/debian/patches/0001-alsa-mixer-Add-separate-profile-for-Nvidia.patch




--
To UNSUBSCRIBE, email to debian-kernel-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Archive: 4F52D6C8.9020105@canonical.com">http://lists.debian.org/4F52D6C8.9020105@canonical.com
 

Thread Tools




All times are GMT. The time now is 11:00 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org