All of lore.kernel.org
 help / color / mirror / Atom feed
* regression: from 3.8 to 3.9: headphones output no sound on Intel HDA, codec VIA VT1802
@ 2013-05-12  9:53 Alex Riesen
  2013-05-12  9:58 ` Fwd: " Alex Riesen
  2013-05-13 15:26 ` Takashi Iwai
  0 siblings, 2 replies; 34+ messages in thread
From: Alex Riesen @ 2013-05-12  9:53 UTC (permalink / raw)
  To: alsa-devel; +Cc: Linux Kernel Mailing List, Takashi Iwai

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

Hi,

I just noticed (use the headphones rarely) that the headphones on this
System76 Lemur Ultra (lemu4) stopped working. There is absolutely no
output.

I tried reverting all changes to patch_via.c since v3.8, and
have the sound back, but there wasn't much to revert:

Revert "ALSA: hda - Rearrange INPUT_PIN_ATTR_*"
Revert "ALSA: hda - Use generic parser for VIA codec driver"
Revert "ALSA: hda - Enable parsing the independent HP mode as default
for VIA codecs"
Revert "ALSA: hda/via - Fix wrong checks of power state bits"
Revert "ALSA: hda - Fix phantom jacks on VT1708"
Revert "ALSA: hda - detect jacks on VT1708 even when no streams are active"
Revert "ALSA: hda - Use generic array for loopback list management"

and one change (which I indeed suspect) is large: the use of generic parser.

The problem is also present in 3.10-rc1. The output of alsa-info.sh attached,
for 3.8.12 and 3.9.2 respectively.

Regards,
Alex Riesen

[-- Attachment #2: 3.8.12.alsa --]
[-- Type: application/octet-stream, Size: 29929 bytes --]

upload=true&script=true&cardinfo=
!!################################
!!ALSA Information Script v 0.4.61
!!################################

!!Script ran on: Sun May 12 09:43:27 UTC 2013


!!Linux Distribution
!!------------------

Debian GNU/Linux 7.0 \n \l PRETTY_NAME="Debian GNU/Linux 7.0 (wheezy)" NAME="Debian GNU/Linux" ID=debian HOME_URL="http://www.debian.org/" SUPPORT_URL="http://www.debian.org/support/" BUG_REPORT_URL="http://bugs.debian.org/"


!!DMI Information
!!---------------

Manufacturer:      System76, Inc.                  
Product Name:      Lemur Ultra                     
Product Version:   lemu4                           
Firmware Version:  4.6.5


!!Kernel Information
!!------------------

Kernel release:    3.8.12
Operating System:  GNU/Linux
Architecture:      x86_64
Processor:         unknown
SMP Enabled:       Yes


!!ALSA Version
!!------------

Driver version:     k3.8.12
Library version:    1.0.25
Utilities version:  1.0.25


!!Loaded ALSA modules
!!-------------------



!!Sound Servers on this system
!!----------------------------

Pulseaudio:
      Installed - Yes (/usr/bin/pulseaudio)
      Running - No

ESound Daemon:
      Installed - Yes (/usr/bin/esd)
      Running - No


!!Soundcards recognised by ALSA
!!-----------------------------

 0 [PCH            ]: HDA-Intel - HDA Intel PCH
                      HDA Intel PCH at 0xf7e10000 irq 43


!!PCI Soundcards installed in the system
!!--------------------------------------

00:1b.0 Audio device: Intel Corporation 7 Series/C210 Series Chipset Family High Definition Audio Controller (rev 04)


!!Advanced information - PCI Vendor/Device/Subsystem ID's
!!-------------------------------------------------------

00:1b.0 0403: 8086:1e20 (rev 04)
	Subsystem: 1558:0240


!!Modprobe options (Sound related)
!!--------------------------------

snd_pcsp: index=-2
snd_usb_audio: index=-2
snd_atiixp_modem: index=-2
snd_intel8x0m: index=-2
snd_via82xx_modem: index=-2


!!Loaded sound module options
!!---------------------------


!!HDA-Intel Codec information
!!---------------------------
--startcollapse--

Codec: VIA VT1802
Address: 0
AFG Function Id: 0x1 (unsol 0)
Vendor Id: 0x11068446
Subsystem Id: 0x15580240
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 0x08 [Audio Output] wcaps 0x41d: Stereo Amp-Out
  Control: name="Speaker Playback Volume", index=0, device=0
    ControlAmp: chs=3, dir=Out, idx=0, ofs=0
  Device: name="VT1802 Analog", type="Audio", device=0
  Amp-Out caps: ofs=0x2a, nsteps=0x2a, stepsize=0x05, mute=0
  Amp-Out vals:  [0x17 0x17]
  Converter: stream=8, channel=0
  PCM:
    rates [0x5e0]: 44100 48000 88200 96000 192000
    bits [0xe]: 16 20 24
    formats [0x1]: PCM
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x09 [Audio Output] wcaps 0x41d: Stereo Amp-Out
  Control: name="Headphone Playback Volume", index=0, device=0
    ControlAmp: chs=3, dir=Out, idx=0, ofs=0
  Device: name="VT1802 HP", type="Audio", device=2
  Amp-Out caps: ofs=0x2a, nsteps=0x2a, stepsize=0x05, mute=0
  Amp-Out vals:  [0x17 0x17]
  Converter: stream=8, channel=0
  PCM:
    rates [0x5e0]: 44100 48000 88200 96000 192000
    bits [0xe]: 16 20 24
    formats [0x1]: PCM
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x0a [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x0b [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x0c [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x0d [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x0e [Audio Output] wcaps 0x611: Stereo Digital
  Converter: stream=0, channel=0
  Digital:
  Digital category: 0x0
  IEC Coding Type: 0x0
  PCM:
    rates [0x5e0]: 44100 48000 88200 96000 192000
    bits [0xe]: 16 20 24
    formats [0x1]: PCM
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x0f [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x10 [Audio Input] wcaps 0x10051b: Stereo Amp-In
  Control: name="Capture Volume", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=0, ofs=0
  Control: name="Capture Switch", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=0, ofs=0
  Device: name="VT1802 Analog", type="Audio", device=0
  Amp-In caps: ofs=0x0b, nsteps=0x1f, stepsize=0x05, mute=1
  Amp-In vals:  [0x00 0x00]
  Converter: stream=4, channel=0
  SDI-Select: 0
  PCM:
    rates [0x560]: 44100 48000 96000 192000
    bits [0xe]: 16 20 24
    formats [0x1]: PCM
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 1
     0x1e
Node 0x11 [Audio Input] wcaps 0x10051b: Stereo Amp-In
  Control: name="Capture Volume", index=1, device=0
    ControlAmp: chs=3, dir=In, idx=0, ofs=0
  Control: name="Capture Switch", index=1, device=0
    ControlAmp: chs=3, dir=In, idx=0, ofs=0
  Amp-In caps: ofs=0x0b, nsteps=0x1f, stepsize=0x05, mute=1
  Amp-In vals:  [0x00 0x00]
  Converter: stream=0, channel=0
  SDI-Select: 0
  PCM:
    rates [0x560]: 44100 48000 96000 192000
    bits [0xe]: 16 20 24
    formats [0x1]: PCM
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 1
     0x1f
Node 0x12 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x13 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x14 [Audio Mixer] wcaps 0x20050b: Stereo Amp-In
  Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-In vals:  [0x00 0x00] [0x80 0x80]
  Power states:  D0 D1 D2 D3
  Power: setting=D3, actual=D3
  Connection: 2
     0x34 0x21
Node 0x15 [Audio Mixer] wcaps 0x20050b: Stereo Amp-In
  Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-In vals:  [0x00 0x00] [0x80 0x80]
  Power states:  D0 D1 D2 D3
  Power: setting=D0, actual=D0
  Connection: 2
     0x35 0x21
Node 0x16 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x17 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x18 [Audio Mixer] wcaps 0x20050b: Stereo Amp-In
  Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-In vals:  [0x80 0x80] [0x80 0x80]
  Power states:  D0 D1 D2 D3
  Power: setting=D3, actual=D3
  Connection: 2
     0x38 0x21
Node 0x19 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x1a [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x1b [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x1c [Audio Mixer] wcaps 0x20050b: Stereo Amp-In
  Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-In vals:  [0x80 0x80] [0x80 0x80]
  Power states:  D0 D1 D2 D3
  Power: setting=D0, actual=D0
  Connection: 2
     0x3c 0x21
Node 0x1d [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x1e [Audio Selector] wcaps 0x300501: Stereo
  Control: name="Input Source", index=0, device=0
  Power states:  D0 D1 D2 D3
  Power: setting=D0, actual=D0
  Connection: 5
     0x2b 0x2a 0x29* 0x21 0x30
Node 0x1f [Audio Selector] wcaps 0x300501: Stereo
  Control: name="Input Source", index=1, device=0
  Power states:  D0 D1 D2 D3
  Power: setting=D0, actual=D0
  Connection: 5
     0x2b* 0x2a 0x29 0x21 0x30
Node 0x20 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x21 [Audio Mixer] wcaps 0x20050b: Stereo Amp-In
  Control: name="PCM Loopback Playback Volume", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=3, ofs=0
  Control: name="PCM Loopback Playback Switch", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=3, ofs=0
  Control: name="Mic Playback Volume", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=0, ofs=0
  Control: name="Mic Playback Switch", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=0, ofs=0
  Control: name="Internal Mic Playback Volume", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=2, ofs=0
  Control: name="Internal Mic Playback Switch", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=2, ofs=0
  Amp-In caps: ofs=0x17, nsteps=0x1f, stepsize=0x05, mute=1
  Amp-In vals:  [0x97 0x97] [0x80 0x80] [0x97 0x97]
  Power states:  D0 D1 D2 D3
  Power: setting=D3, actual=D3
  Connection: 3
     0x2b 0x2a 0x29
Node 0x22 [Beep Generator Widget] wcaps 0x70040c: Mono Amp-Out
  Amp-Out caps: ofs=0x0a, nsteps=0x12, stepsize=0x05, mute=1
  Amp-Out vals:  [0x00]
  Power states:  D0 D1 D2 D3
  Power: setting=D0, actual=D0
Node 0x23 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x24 [Pin Complex] wcaps 0x40050d: Stereo Amp-Out
  Control: name="Speaker Playback Switch", index=0, device=0
    ControlAmp: chs=3, dir=Out, idx=0, ofs=0
  Control: name="Speaker Phantom Jack", index=0, device=0
  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-Out vals:  [0x00 0x00]
  Pincap 0x00010050: OUT EAPD Balanced
  EAPD 0x3: BALANCED EAPD
  Pin Default 0x90170110: [Fixed] Speaker at Int N/A
    Conn = Analog, Color = Unknown
    DefAssociation = 0x1, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x00:
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 2
     0x14* 0x3e
Node 0x25 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out
  Control: name="Headphone Playback Switch", index=0, device=0
    ControlAmp: chs=3, dir=Out, idx=0, ofs=0
  Control: name="Independent HP", index=0, device=0
  Control: name="Front Headphone Jack", index=0, device=0
  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-Out vals:  [0x00 0x00]
  Pincap 0x0001001c: OUT HP EAPD Detect
  EAPD 0x2: EAPD
  Pin Default 0x0221401f: [Jack] HP Out at Ext Front
    Conn = 1/8, Color = Green
    DefAssociation = 0x1, Sequence = 0xf
  Pin-ctls: 0xc0: OUT HP
  Unsolicited: tag=01, enabled=1
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 1
     0x15
Node 0x26 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x27 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x28 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out
  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-Out vals:  [0x80 0x80]
  Pincap 0x0000001c: OUT HP Detect
  Pin Default 0x422140f0: [N/A] HP Out at Ext Front
    Conn = 1/8, Color = Green
    DefAssociation = 0xf, Sequence = 0x0
  Pin-ctls: 0x00:
  Unsolicited: tag=00, enabled=0
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D3, actual=D3
  Connection: 1
     0x18
Node 0x29 [Pin Complex] wcaps 0x400481: Stereo
  Control: name="Internal Mic Boost Volume", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=0, ofs=0
  Control: name="Internal Mic Phantom Jack", index=0, device=0
  Pincap 0x00002324: IN Detect
    Vref caps: HIZ 50 100
  Pin Default 0x90a70137: [Fixed] Mic at Int N/A
    Conn = Analog, Color = Unknown
    DefAssociation = 0x3, Sequence = 0x7
    Misc = NO_PRESENCE
  Pin-ctls: 0x21: IN VREF_50
  Unsolicited: tag=00, enabled=0
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x2a [Pin Complex] wcaps 0x400481: Stereo
  Pincap 0x00002324: IN Detect
    Vref caps: HIZ 50 100
  Pin Default 0x418130f8: [N/A] Line In at Ext Rear
    Conn = 1/8, Color = Blue
    DefAssociation = 0xf, Sequence = 0x8
  Pin-ctls: 0x00: VREF_HIZ
  Unsolicited: tag=00, enabled=0
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D3, actual=D3
Node 0x2b [Pin Complex] wcaps 0x400481: Stereo
  Control: name="Mic Boost Volume", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=0, ofs=0
  Control: name="Mic Jack", index=0, device=0
  Pincap 0x00002324: IN Detect
    Vref caps: HIZ 50 100
  Pin Default 0x01a1903e: [Jack] Mic at Ext Rear
    Conn = 1/8, Color = Pink
    DefAssociation = 0x3, Sequence = 0xe
  Pin-ctls: 0x21: IN VREF_50
  Unsolicited: tag=02, enabled=1
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x2c [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x2d [Pin Complex] wcaps 0x400701: Stereo Digital
  Pincap 0x00000010: OUT
  Pin Default 0x474410f0: [N/A] SPDIF Out at Ext Rear Panel
    Conn = RCA, Color = Black
    DefAssociation = 0xf, Sequence = 0x0
  Pin-ctls: 0x00:
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 1
     0x0e
Node 0x2e [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x2f [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x30 [Pin Complex] wcaps 0x40040b: Stereo Amp-In
  Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0
  Amp-In vals:  [0x00 0x00]
  Pincap 0x00000020: IN
  Pin Default 0x50a600f0: [N/A] Mic at Int N/A
    Conn = Digital, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0
  Pin-ctls: 0x00:
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x31 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x32 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x33 [Pin Complex] wcaps 0x40050c: Mono Amp-Out
  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-Out vals:  [0x00]
  Pincap 0x00000010: OUT
  Pin Default 0x501701f0: [N/A] Speaker at Int N/A
    Conn = Analog, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x00:
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 1
     0x3e
Node 0x34 [Audio Selector] wcaps 0x300501: Stereo
  Power states:  D0 D1 D2 D3
  Power: setting=D3, actual=D3
  Connection: 2
     0x08* 0x09
Node 0x35 [Audio Selector] wcaps 0x300501: Stereo
  Power states:  D0 D1 D2 D3
  Power: setting=D0, actual=D0
  Connection: 2
     0x08 0x09*
Node 0x36 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x37 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x38 [Audio Selector] wcaps 0x300501: Stereo
  Power states:  D0 D1 D2 D3
  Power: setting=D3, actual=D3
  Connection: 2
     0x08* 0x09
Node 0x39 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x3a [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x3b [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x3c [Audio Selector] wcaps 0x300501: Stereo
  Power states:  D0 D1 D2 D3
  Power: setting=D0, actual=D0
  Connection: 2
     0x08* 0x09
Codec: Intel ID 2806
Address: 3
AFG Function Id: 0x1 (unsol 0)
Vendor Id: 0x80862806
Subsystem Id: 0x15580240
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
  Digital category: 0x0
  IEC Coding Type: 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 EPSS
  Power: setting=D0, actual=D0
Node 0x03 [Audio Output] wcaps 0x6611: 8-Channels Digital
  Converter: stream=0, channel=0
  Digital: Enabled
  Digital category: 0x0
  IEC Coding Type: 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 EPSS
  Power: setting=D0, actual=D0
Node 0x04 [Audio Output] wcaps 0x6611: 8-Channels Digital
  Converter: stream=0, channel=0
  Digital: Enabled
  Digital category: 0x0
  IEC Coding Type: 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 EPSS
  Power: setting=D0, actual=D0
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 0x80]
  Pincap 0x09000094: OUT Detect HBR HDMI DP
  Pin Default 0x58560010: [N/A] Digital Out at Int HDMI
    Conn = Digital, Color = Unknown
    DefAssociation = 0x1, Sequence = 0x0
  Pin-ctls: 0x40: OUT
  Unsolicited: tag=00, enabled=0
  Power states:  D0 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 1
     0x02
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 0x80]
  Pincap 0x09000094: OUT Detect HBR HDMI DP
  Pin Default 0x18560020: [Jack] Digital Out at Int HDMI
    Conn = Digital, Color = Unknown
    DefAssociation = 0x2, Sequence = 0x0
  Pin-ctls: 0x40: OUT
  Unsolicited: tag=00, enabled=0
  Power states:  D0 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 1
     0x03
Node 0x07 [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 0x80]
  Pincap 0x09000094: OUT Detect HBR HDMI DP
  Pin Default 0x58560030: [N/A] Digital Out at Int HDMI
    Conn = Digital, Color = Unknown
    DefAssociation = 0x3, Sequence = 0x0
  Pin-ctls: 0x40: OUT
  Unsolicited: tag=00, enabled=0
  Power states:  D0 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 1
     0x04
Node 0x08 [Vendor Defined Widget] wcaps 0xf00000: Mono
--endcollapse--


!!ALSA Device nodes
!!-----------------

crw-rw---T 1 root audio 116,  7 May 12 11:41 /dev/snd/controlC0
crw-rw---T 1 root audio 116,  6 May 12 11:41 /dev/snd/hwC0D0
crw-rw---T 1 root audio 116,  5 May 12 11:41 /dev/snd/hwC0D3
crw-rw---T 1 root audio 116,  4 May 12 11:42 /dev/snd/pcmC0D0c
crw-rw---T 1 root audio 116,  3 May 12 11:42 /dev/snd/pcmC0D0p
crw-rw---T 1 root audio 116,  2 May 12 11:41 /dev/snd/pcmC0D2p
crw------T 1 root root  116,  1 May 12 11:41 /dev/snd/seq
crw-rw---T 1 root audio 116, 33 May 12 11:41 /dev/snd/timer

/dev/snd/by-path:
total 0
drwxr-xr-x 2 root root  60 May 12 11:41 .
drwxr-xr-x 3 root root 220 May 12 11:41 ..
lrwxrwxrwx 1 root root  12 May 12 11:41 pci-0000:00:1b.0 -> ../controlC0


!!ALSA configuration files
!!------------------------

!!User specific config file (~/.asoundrc)

# ALSA library configuration file

# Include settings that are under the control of asoundconf(1).
# (To disable these settings, comment out this line.)
#</home/raa/.asoundrc.asoundconf>

#pcm.multi_send {
#    type plug
#    ttable.0.0 1
#    ttable.0.1 1
#    slave.pcm front
#}

# ~/.asoundrc

pcm_slave.purefi48 {
   pcm front:Mobile
   format S16_LE
   rate 48000
}

pcm.purefi {
   type plug
   slave purefi48
}

#pcm.!default front:Headset
#pcm.!default front:"HDA Intel"
#pcm.!default front:Mobile
#pcm.!default purefi


!!asoundconf-generated config file

# ALSA library configuration file managed by asoundconf(1).
#
# MANUAL CHANGES TO THIS FILE WILL BE OVERWRITTEN!
#
# Manual changes to the ALSA library configuration should be implemented
# by editing the ~/.asoundrc file, not by editing this file.
pcm.!default { type pulse }
ctl.!default { type pulse }


!!Aplay/Arecord output
!!--------------------

APLAY

**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: VT1802 Analog [VT1802 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 2: VT1802 HP [VT1802 HP]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

ARECORD

**** List of CAPTURE Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: VT1802 Analog [VT1802 Analog]
  Subdevices: 2/2
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1

!!Amixer output
!!-------------

!!-------Mixer controls for card 0 [PCH]

Card hw:0 'PCH'/'HDA Intel PCH at 0xf7e10000 irq 43'
  Mixer name	: 'Intel ID 2806'
  Components	: 'HDA:11068446,15580240,00100000 HDA:80862806,15580240,00100000'
  Controls      : 32
  Simple ctrls  : 16
Simple mixer control 'Master',0
  Capabilities: pvolume pvolume-joined pswitch pswitch-joined penum
  Playback channels: Mono
  Limits: Playback 0 - 42
  Mono: Playback 23 [55%] [-28.50dB] [on]
Simple mixer control 'Headphone',0
  Capabilities: pvolume pswitch penum
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 42
  Mono:
  Front Left: Playback 42 [100%] [0.00dB] [on]
  Front Right: Playback 42 [100%] [0.00dB] [on]
Simple mixer control 'Speaker',0
  Capabilities: pvolume pswitch penum
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 42
  Mono:
  Front Left: Playback 42 [100%] [0.00dB] [on]
  Front Right: Playback 42 [100%] [0.00dB] [on]
Simple mixer control 'PCM',0
  Capabilities: pvolume penum
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 255
  Mono:
  Front Left: Playback 253 [99%] [0.40dB]
  Front Right: Playback 253 [99%] [0.40dB]
Simple mixer control 'PCM Loopback',0
  Capabilities: pvolume pswitch penum
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 31
  Mono:
  Front Left: Playback 23 [74%] [0.00dB] [off]
  Front Right: Playback 23 [74%] [0.00dB] [off]
Simple mixer control 'Mic',0
  Capabilities: pvolume pswitch penum
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 31
  Mono:
  Front Left: Playback 23 [74%] [0.00dB] [off]
  Front Right: Playback 23 [74%] [0.00dB] [off]
Simple mixer control 'Mic Boost',0
  Capabilities: volume penum
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: 0 - 3
  Front Left: 0 [0%] [0.00dB]
  Front Right: 0 [0%] [0.00dB]
Simple mixer control 'Capture',0
  Capabilities: cvolume cswitch penum
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 31
  Front Left: Capture 0 [0%] [-16.50dB] [on]
  Front Right: Capture 0 [0%] [-16.50dB] [on]
Simple mixer control 'Capture',1
  Capabilities: cvolume cswitch penum
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 31
  Front Left: Capture 0 [0%] [-16.50dB] [on]
  Front Right: Capture 0 [0%] [-16.50dB] [on]
Simple mixer control 'Dynamic Power-Control',0
  Capabilities: enum
  Items: 'Disabled' 'Enabled'
  Item0: 'Disabled'
Simple mixer control 'Independent HP',0
  Capabilities: enum
  Items: 'OFF' 'ON'
  Item0: 'OFF'
Simple mixer control 'Input Source',0
  Capabilities: cenum
  Items: 'Mic' 'Internal Mic' 'Stereo Mixer'
  Item0: 'Internal Mic'
Simple mixer control 'Input Source',1
  Capabilities: cenum
  Items: 'Mic' 'Internal Mic' 'Stereo Mixer'
  Item0: 'Mic'
Simple mixer control 'Internal Mic',0
  Capabilities: pvolume pswitch penum
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 31
  Mono:
  Front Left: Playback 23 [74%] [0.00dB] [off]
  Front Right: Playback 23 [74%] [0.00dB] [off]
Simple mixer control 'Internal Mic Boost',0
  Capabilities: volume penum
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: 0 - 3
  Front Left: 0 [0%] [0.00dB]
  Front Right: 0 [0%] [0.00dB]
Simple mixer control 'Loopback Mixing',0
  Capabilities: enum
  Items: 'Disabled' 'Enabled'
  Item0: 'Disabled'


!!Alsactl output
!!--------------

--startcollapse--
state.PCH {
	control.1 {
		iface MIXER
		name 'Speaker Playback Volume'
		value.0 42
		value.1 42
		comment {
			access 'read write'
			type INTEGER
			count 2
			range '0 - 42'
			dbmin -6300
			dbmax 0
			dbvalue.0 0
			dbvalue.1 0
		}
	}
	control.2 {
		iface MIXER
		name 'Speaker Playback Switch'
		value.0 true
		value.1 true
		comment {
			access 'read write'
			type BOOLEAN
			count 2
		}
	}
	control.3 {
		iface MIXER
		name 'PCM Loopback Playback Volume'
		value.0 23
		value.1 23
		comment {
			access 'read write'
			type INTEGER
			count 2
			range '0 - 31'
			dbmin -3450
			dbmax 1200
			dbvalue.0 0
			dbvalue.1 0
		}
	}
	control.4 {
		iface MIXER
		name 'PCM Loopback Playback Switch'
		value.0 false
		value.1 false
		comment {
			access 'read write'
			type BOOLEAN
			count 2
		}
	}
	control.5 {
		iface MIXER
		name 'Headphone Playback Volume'
		value.0 42
		value.1 42
		comment {
			access 'read write'
			type INTEGER
			count 2
			range '0 - 42'
			dbmin -6300
			dbmax 0
			dbvalue.0 0
			dbvalue.1 0
		}
	}
	control.6 {
		iface MIXER
		name 'Headphone Playback Switch'
		value.0 true
		value.1 true
		comment {
			access 'read write'
			type BOOLEAN
			count 2
		}
	}
	control.7 {
		iface MIXER
		name 'Loopback Mixing'
		value Disabled
		comment {
			access 'read write'
			type ENUMERATED
			count 1
			item.0 Disabled
			item.1 Enabled
		}
	}
	control.8 {
		iface MIXER
		name 'Capture Volume'
		value.0 0
		value.1 0
		comment {
			access 'read write'
			type INTEGER
			count 2
			range '0 - 31'
			dbmin -1650
			dbmax 3000
			dbvalue.0 -1650
			dbvalue.1 -1650
		}
	}
	control.9 {
		iface MIXER
		name 'Capture Switch'
		value.0 true
		value.1 true
		comment {
			access 'read write'
			type BOOLEAN
			count 2
		}
	}
	control.10 {
		iface MIXER
		name 'Capture Volume'
		index 1
		value.0 0
		value.1 0
		comment {
			access 'read write'
			type INTEGER
			count 2
			range '0 - 31'
			dbmin -1650
			dbmax 3000
			dbvalue.0 -1650
			dbvalue.1 -1650
		}
	}
	control.11 {
		iface MIXER
		name 'Capture Switch'
		index 1
		value.0 true
		value.1 true
		comment {
			access 'read write'
			type BOOLEAN
			count 2
		}
	}
	control.12 {
		iface MIXER
		name 'Input Source'
		value 'Internal Mic'
		comment {
			access 'read write'
			type ENUMERATED
			count 1
			item.0 Mic
			item.1 'Internal Mic'
			item.2 'Stereo Mixer'
		}
	}
	control.13 {
		iface MIXER
		name 'Input Source'
		index 1
		value Mic
		comment {
			access 'read write'
			type ENUMERATED
			count 1
			item.0 Mic
			item.1 'Internal Mic'
			item.2 'Stereo Mixer'
		}
	}
	control.14 {
		iface MIXER
		name 'Mic Playback Volume'
		value.0 23
		value.1 23
		comment {
			access 'read write'
			type INTEGER
			count 2
			range '0 - 31'
			dbmin -3450
			dbmax 1200
			dbvalue.0 0
			dbvalue.1 0
		}
	}
	control.15 {
		iface MIXER
		name 'Mic Playback Switch'
		value.0 false
		value.1 false
		comment {
			access 'read write'
			type BOOLEAN
			count 2
		}
	}
	control.16 {
		iface MIXER
		name 'Internal Mic Playback Volume'
		value.0 23
		value.1 23
		comment {
			access 'read write'
			type INTEGER
			count 2
			range '0 - 31'
			dbmin -3450
			dbmax 1200
			dbvalue.0 0
			dbvalue.1 0
		}
	}
	control.17 {
		iface MIXER
		name 'Internal Mic Playback Switch'
		value.0 false
		value.1 false
		comment {
			access 'read write'
			type BOOLEAN
			count 2
		}
	}
	control.18 {
		iface MIXER
		name 'Mic Boost Volume'
		value.0 0
		value.1 0
		comment {
			access 'read write'
			type INTEGER
			count 2
			range '0 - 3'
			dbmin 0
			dbmax 3075
			dbvalue.0 0
			dbvalue.1 0
		}
	}
	control.19 {
		iface MIXER
		name 'Internal Mic Boost Volume'
		value.0 0
		value.1 0
		comment {
			access 'read write'
			type INTEGER
			count 2
			range '0 - 3'
			dbmin 0
			dbmax 3075
			dbvalue.0 0
			dbvalue.1 0
		}
	}
	control.20 {
		iface MIXER
		name 'Independent HP'
		value OFF
		comment {
			access 'read write'
			type ENUMERATED
			count 1
			item.0 OFF
			item.1 ON
		}
	}
	control.21 {
		iface MIXER
		name 'Dynamic Power-Control'
		value Disabled
		comment {
			access 'read write'
			type ENUMERATED
			count 1
			item.0 Disabled
			item.1 Enabled
		}
	}
	control.22 {
		iface MIXER
		name 'Master Playback Volume'
		value 23
		comment {
			access 'read write'
			type INTEGER
			count 1
			range '0 - 42'
			dbmin -6300
			dbmax 0
			dbvalue.0 -2850
		}
	}
	control.23 {
		iface MIXER
		name 'Master Playback Switch'
		value true
		comment {
			access 'read write'
			type BOOLEAN
			count 1
		}
	}
	control.24 {
		iface CARD
		name 'Speaker Phantom Jack'
		value true
		comment {
			access read
			type BOOLEAN
			count 1
		}
	}
	control.25 {
		iface CARD
		name 'Front Headphone Jack'
		value true
		comment {
			access read
			type BOOLEAN
			count 1
		}
	}
	control.26 {
		iface CARD
		name 'Mic Jack'
		value false
		comment {
			access read
			type BOOLEAN
			count 1
		}
	}
	control.27 {
		iface CARD
		name 'Internal Mic Phantom Jack'
		value true
		comment {
			access read
			type BOOLEAN
			count 1
		}
	}
	control.28 {
		iface PCM
		name 'Playback Channel Map'
		value.0 0
		value.1 0
		comment {
			access read
			type INTEGER
			count 2
			range '0 - 36'
		}
	}
	control.29 {
		iface PCM
		name 'Capture Channel Map'
		value.0 0
		value.1 0
		comment {
			access read
			type INTEGER
			count 2
			range '0 - 36'
		}
	}
	control.30 {
		iface PCM
		name 'Capture Channel Map'
		index 1
		value.0 0
		value.1 0
		comment {
			access read
			type INTEGER
			count 2
			range '0 - 36'
		}
	}
	control.31 {
		iface PCM
		device 2
		name 'Playback Channel Map'
		value.0 0
		value.1 0
		comment {
			access read
			type INTEGER
			count 2
			range '0 - 36'
		}
	}
	control.32 {
		iface MIXER
		name 'PCM Playback Volume'
		value.0 253
		value.1 253
		comment {
			access 'read write user'
			type INTEGER
			count 2
			range '0 - 255'
			tlv '0000000100000008ffffec1400000014'
			dbmin -5100
			dbmax 0
			dbvalue.0 -40
			dbvalue.1 -40
		}
	}
}
--endcollapse--


!!All Loaded Modules
!!------------------

Module
kvm_intel
kvm
iwldvm
ghash_clmulni_intel
aesni_intel
aes_x86_64
xts
lrw
gf128mul
ablk_helper
cryptd
uvcvideo
videobuf2_vmalloc
iwlwifi
videobuf2_memops
videobuf2_core
r8169
serio_raw
rtsx_pci


!!Sysfs Files
!!-----------

/sys/class/sound/hwC0D0/init_pin_configs:
0x24 0x90170110
0x25 0x0221401f
0x28 0x422140f0
0x29 0x90a70137
0x2a 0x418130f8
0x2b 0x01a1903e
0x2d 0x474410f0
0x30 0x50a600f0
0x33 0x501701f0

/sys/class/sound/hwC0D0/driver_pin_configs:

/sys/class/sound/hwC0D0/user_pin_configs:

/sys/class/sound/hwC0D0/init_verbs:

/sys/class/sound/hwC0D3/init_pin_configs:
0x05 0x58560010
0x06 0x18560020
0x07 0x58560030

/sys/class/sound/hwC0D3/driver_pin_configs:

/sys/class/sound/hwC0D3/user_pin_configs:

/sys/class/sound/hwC0D3/init_verbs:


!!ALSA/HDA dmesg
!!--------------

[    2.787194] usbhid: USB HID core driver
[    2.788208] snd_hda_intel 0000:00:1b.0: irq 43 for MSI/MSI-X
[    2.802018] ehci-pci 0000:00:1a.0: GetStatus port:1 status 001803 0  ACK POWER sig=j CSC CONNECT
[    2.802022] hub 1-0:1.0: port 1: status 0501 change 0001
[    2.803049] input: HDA Intel PCH Mic as /devices/pci0000:00/0000:00:1b.0/sound/card0/input6
[    2.804223] input: HDA Intel PCH Front Headphone as /devices/pci0000:00/0000:00:1b.0/sound/card0/input7
[    2.805808] oprofile: using NMI interrupt.
--
[    4.340645] EDD information not available.
[    4.342794] ALSA device list:
[    4.344839]   #0: HDA Intel PCH at 0xf7e10000 irq 43
[    4.348099] EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null)



[-- Attachment #3: 3.9.2.alsa --]
[-- Type: application/octet-stream, Size: 30824 bytes --]

upload=true&script=true&cardinfo=
!!################################
!!ALSA Information Script v 0.4.61
!!################################

!!Script ran on: Sun May 12 09:46:15 UTC 2013


!!Linux Distribution
!!------------------

Debian GNU/Linux 7.0 \n \l PRETTY_NAME="Debian GNU/Linux 7.0 (wheezy)" NAME="Debian GNU/Linux" ID=debian HOME_URL="http://www.debian.org/" SUPPORT_URL="http://www.debian.org/support/" BUG_REPORT_URL="http://bugs.debian.org/"


!!DMI Information
!!---------------

Manufacturer:      System76, Inc.                  
Product Name:      Lemur Ultra                     
Product Version:   lemu4                           
Firmware Version:  4.6.5


!!Kernel Information
!!------------------

Kernel release:    3.9.2
Operating System:  GNU/Linux
Architecture:      x86_64
Processor:         unknown
SMP Enabled:       Yes


!!ALSA Version
!!------------

Driver version:     k3.9.2
Library version:    1.0.25
Utilities version:  1.0.25


!!Loaded ALSA modules
!!-------------------



!!Sound Servers on this system
!!----------------------------

Pulseaudio:
      Installed - Yes (/usr/bin/pulseaudio)
      Running - No

ESound Daemon:
      Installed - Yes (/usr/bin/esd)
      Running - No


!!Soundcards recognised by ALSA
!!-----------------------------

 0 [PCH            ]: HDA-Intel - HDA Intel PCH
                      HDA Intel PCH at 0xf7e10000 irq 46


!!PCI Soundcards installed in the system
!!--------------------------------------

00:1b.0 Audio device: Intel Corporation 7 Series/C210 Series Chipset Family High Definition Audio Controller (rev 04)


!!Advanced information - PCI Vendor/Device/Subsystem ID's
!!-------------------------------------------------------

00:1b.0 0403: 8086:1e20 (rev 04)
	Subsystem: 1558:0240


!!Modprobe options (Sound related)
!!--------------------------------

snd_pcsp: index=-2
snd_usb_audio: index=-2
snd_atiixp_modem: index=-2
snd_intel8x0m: index=-2
snd_via82xx_modem: index=-2


!!Loaded sound module options
!!---------------------------


!!HDA-Intel Codec information
!!---------------------------
--startcollapse--

Codec: VIA VT1802
Address: 0
AFG Function Id: 0x1 (unsol 0)
Vendor Id: 0x11068446
Subsystem Id: 0x15580240
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
State of AFG node 0x01:
  Power states:  D0 D1 D2 D3
  Power: setting=D0, actual=D0
GPIO: io=0, o=0, i=0, unsolicited=0, wake=0
Node 0x08 [Audio Output] wcaps 0x41d: Stereo Amp-Out
  Control: name="Headphone Playback Volume", index=0, device=0
    ControlAmp: chs=3, dir=Out, idx=0, ofs=0
  Device: name="VT1802 Analog", type="Audio", device=0
  Device: name="VT1802 Alt Analog", type="Audio", device=2
  Amp-Out caps: ofs=0x2a, nsteps=0x2a, stepsize=0x05, mute=0
  Amp-Out vals:  [0x17 0x17]
  Converter: stream=8, channel=0
  PCM:
    rates [0x5e0]: 44100 48000 88200 96000 192000
    bits [0xe]: 16 20 24
    formats [0x1]: PCM
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x09 [Audio Output] wcaps 0x41d: 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=0x2a, nsteps=0x2a, stepsize=0x05, mute=0
  Amp-Out vals:  [0x17 0x17]
  Converter: stream=8, channel=0
  PCM:
    rates [0x5e0]: 44100 48000 88200 96000 192000
    bits [0xe]: 16 20 24
    formats [0x1]: PCM
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x0a [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x0b [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x0c [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x0d [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x0e [Audio Output] wcaps 0x611: Stereo Digital
  Converter: stream=0, channel=0
  Digital:
  Digital category: 0x0
  IEC Coding Type: 0x0
  PCM:
    rates [0x5e0]: 44100 48000 88200 96000 192000
    bits [0xe]: 16 20 24
    formats [0x1]: PCM
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x0f [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x10 [Audio Input] wcaps 0x10051b: Stereo Amp-In
  Control: name="Capture Volume", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=0, ofs=0
  Control: name="Capture Switch", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=0, ofs=0
  Device: name="VT1802 Analog", type="Audio", device=0
  Amp-In caps: ofs=0x0b, nsteps=0x1f, stepsize=0x05, mute=1
  Amp-In vals:  [0x13 0x13]
  Converter: stream=4, channel=0
  SDI-Select: 0
  PCM:
    rates [0x560]: 44100 48000 96000 192000
    bits [0xe]: 16 20 24
    formats [0x1]: PCM
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 1
     0x1e
Node 0x11 [Audio Input] wcaps 0x10051b: 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
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 1
     0x1f
Node 0x12 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x13 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x14 [Audio Mixer] wcaps 0x20050b: Stereo Amp-In
  Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-In vals:  [0x00 0x00] [0x80 0x80]
  Power states:  D0 D1 D2 D3
  Power: setting=D0, actual=D0
  Connection: 2
     0x34 0x21
Node 0x15 [Audio Mixer] wcaps 0x20050b: Stereo Amp-In
  Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-In vals:  [0x00 0x00] [0x80 0x80]
  Power states:  D0 D1 D2 D3
  Power: setting=D0, actual=D0
  Connection: 2
     0x35 0x21
Node 0x16 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x17 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x18 [Audio Mixer] wcaps 0x20050b: Stereo Amp-In
  Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-In vals:  [0x80 0x80] [0x80 0x80]
  Power states:  D0 D1 D2 D3
  Power: setting=D0, actual=D0
  Connection: 2
     0x38 0x21
Node 0x19 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x1a [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x1b [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x1c [Audio Mixer] wcaps 0x20050b: Stereo Amp-In
  Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-In vals:  [0x80 0x80] [0x80 0x80]
  Power states:  D0 D1 D2 D3
  Power: setting=D0, actual=D0
  Connection: 2
     0x3c 0x21
Node 0x1d [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x1e [Audio Selector] wcaps 0x300501: Stereo
  Power states:  D0 D1 D2 D3
  Power: setting=D0, actual=D0
  Connection: 5
     0x2b 0x2a 0x29* 0x21 0x30
Node 0x1f [Audio Selector] wcaps 0x300501: Stereo
  Power states:  D0 D1 D2 D3
  Power: setting=D0, actual=D0
  Connection: 5
     0x2b* 0x2a 0x29 0x21 0x30
Node 0x20 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x21 [Audio Mixer] wcaps 0x20050b: Stereo Amp-In
  Control: name="Mic Playback Volume", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=0, ofs=0
  Control: name="Mic Playback Switch", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=0, ofs=0
  Control: name="Internal Mic Playback Volume", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=2, ofs=0
  Control: name="Internal Mic Playback Switch", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=2, ofs=0
  Amp-In caps: ofs=0x17, nsteps=0x1f, stepsize=0x05, mute=1
  Amp-In vals:  [0x97 0x97] [0x80 0x80] [0x97 0x97]
  Power states:  D0 D1 D2 D3
  Power: setting=D0, actual=D0
  Connection: 3
     0x2b 0x2a 0x29
Node 0x22 [Beep Generator Widget] wcaps 0x70040c: Mono Amp-Out
  Amp-Out caps: ofs=0x0a, nsteps=0x12, stepsize=0x05, mute=1
  Amp-Out vals:  [0x0a]
  Power states:  D0 D1 D2 D3
  Power: setting=D0, actual=D0
Node 0x23 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x24 [Pin Complex] wcaps 0x40050d: Stereo Amp-Out
  Control: name="Speaker Playback Switch", index=0, device=0
    ControlAmp: chs=3, dir=Out, idx=0, ofs=0
  Control: name="Speaker Phantom Jack", index=0, device=0
  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-Out vals:  [0x00 0x00]
  Pincap 0x00010050: OUT EAPD Balanced
  EAPD 0x1: BALANCED
  Pin Default 0x90170110: [Fixed] Speaker at Int N/A
    Conn = Analog, Color = Unknown
    DefAssociation = 0x1, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x00:
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 2
     0x14* 0x3e
Node 0x25 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out
  Control: name="Headphone Playback Switch", index=0, device=0
    ControlAmp: chs=3, dir=Out, idx=0, ofs=0
  Control: name="Front Headphone Jack", index=0, device=0
  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-Out vals:  [0x00 0x00]
  Pincap 0x0001001c: OUT HP EAPD Detect
  EAPD 0x0:
  Pin Default 0x0221401f: [Jack] HP Out at Ext Front
    Conn = 1/8, Color = Green
    DefAssociation = 0x1, Sequence = 0xf
  Pin-ctls: 0x00:
  Unsolicited: tag=01, enabled=1
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 1
     0x15
Node 0x26 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x27 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x28 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out
  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-Out vals:  [0x80 0x80]
  Pincap 0x0000001c: OUT HP Detect
  Pin Default 0x422140f0: [N/A] HP Out at Ext Front
    Conn = 1/8, Color = Green
    DefAssociation = 0xf, Sequence = 0x0
  Pin-ctls: 0x00:
  Unsolicited: tag=00, enabled=0
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 1
     0x18
Node 0x29 [Pin Complex] wcaps 0x400481: Stereo
  Control: name="Internal Mic Phantom Jack", index=0, device=0
  Pincap 0x00002324: IN Detect
    Vref caps: HIZ 50 100
  Pin Default 0x90a70137: [Fixed] Mic at Int N/A
    Conn = Analog, Color = Unknown
    DefAssociation = 0x3, Sequence = 0x7
    Misc = NO_PRESENCE
  Pin-ctls: 0x21: IN VREF_50
  Unsolicited: tag=00, enabled=0
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x2a [Pin Complex] wcaps 0x400481: Stereo
  Pincap 0x00002324: IN Detect
    Vref caps: HIZ 50 100
  Pin Default 0x418130f8: [N/A] Line In at Ext Rear
    Conn = 1/8, Color = Blue
    DefAssociation = 0xf, Sequence = 0x8
  Pin-ctls: 0x00: VREF_HIZ
  Unsolicited: tag=00, enabled=0
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x2b [Pin Complex] wcaps 0x400481: Stereo
  Control: name="Mic Jack", index=0, device=0
  Pincap 0x00002324: IN Detect
    Vref caps: HIZ 50 100
  Pin Default 0x01a1903e: [Jack] Mic at Ext Rear
    Conn = 1/8, Color = Pink
    DefAssociation = 0x3, Sequence = 0xe
  Pin-ctls: 0x21: IN VREF_50
  Unsolicited: tag=02, enabled=1
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x2c [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x2d [Pin Complex] wcaps 0x400701: Stereo Digital
  Pincap 0x00000010: OUT
  Pin Default 0x474410f0: [N/A] SPDIF Out at Ext Rear Panel
    Conn = RCA, Color = Black
    DefAssociation = 0xf, Sequence = 0x0
  Pin-ctls: 0x00:
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 1
     0x0e
Node 0x2e [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x2f [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x30 [Pin Complex] wcaps 0x40040b: Stereo Amp-In
  Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0
  Amp-In vals:  [0x00 0x00]
  Pincap 0x00000020: IN
  Pin Default 0x50a600f0: [N/A] Mic at Int N/A
    Conn = Digital, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0
  Pin-ctls: 0x00:
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x31 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x32 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x33 [Pin Complex] wcaps 0x40050c: Mono Amp-Out
  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-Out vals:  [0x80]
  Pincap 0x00000010: OUT
  Pin Default 0x501701f0: [N/A] Speaker at Int N/A
    Conn = Analog, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x00:
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 1
     0x3e
Node 0x34 [Audio Selector] wcaps 0x300501: Stereo
  Power states:  D0 D1 D2 D3
  Power: setting=D0, actual=D0
  Connection: 2
     0x08 0x09*
Node 0x35 [Audio Selector] wcaps 0x300501: Stereo
  Power states:  D0 D1 D2 D3
  Power: setting=D0, actual=D0
  Connection: 2
     0x08* 0x09
Node 0x36 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x37 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x38 [Audio Selector] wcaps 0x300501: Stereo
  Power states:  D0 D1 D2 D3
  Power: setting=D0, actual=D0
  Connection: 2
     0x08* 0x09
Node 0x39 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x3a [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x3b [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x3c [Audio Selector] wcaps 0x300501: Stereo
  Power states:  D0 D1 D2 D3
  Power: setting=D0, actual=D0
  Connection: 2
     0x08* 0x09
Codec: Intel ID 2806
Address: 3
AFG Function Id: 0x1 (unsol 0)
Vendor Id: 0x80862806
Subsystem Id: 0x15580240
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
State of AFG node 0x01:
  Power states:  D0 D3 CLKSTOP EPSS
  Power: setting=D0, actual=D0, Clock-stop-OK
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
  Digital category: 0x0
  IEC Coding Type: 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 EPSS
  Power: setting=D0, actual=D0
Node 0x03 [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="ID 2806 Digital", type="HDMI", device=3
  Converter: stream=0, channel=0
  Digital:
  Digital category: 0x0
  IEC Coding Type: 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 EPSS
  Power: setting=D0, actual=D0
Node 0x04 [Audio Output] wcaps 0x6611: 8-Channels Digital
  Converter: stream=0, channel=0
  Digital: Enabled
  Digital category: 0x0
  IEC Coding Type: 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 EPSS
  Power: setting=D0, actual=D0
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 0x80]
  Pincap 0x09000094: OUT Detect HBR HDMI DP
  Pin Default 0x58560010: [N/A] Digital Out at Int HDMI
    Conn = Digital, Color = Unknown
    DefAssociation = 0x1, Sequence = 0x0
  Pin-ctls: 0x40: OUT
  Unsolicited: tag=00, enabled=0
  Power states:  D0 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 1
     0x02
Node 0x06 [Pin Complex] wcaps 0x40778d: 8-Channels Digital Amp-Out CP
  Control: name="HDMI Jack", index=0, device=0
  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 0x18560020: [Jack] Digital Out at Int HDMI
    Conn = Digital, Color = Unknown
    DefAssociation = 0x2, Sequence = 0x0
  Pin-ctls: 0x40: OUT
  Unsolicited: tag=01, enabled=1
  Power states:  D0 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 1
     0x03
Node 0x07 [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 0x80]
  Pincap 0x09000094: OUT Detect HBR HDMI DP
  Pin Default 0x58560030: [N/A] Digital Out at Int HDMI
    Conn = Digital, Color = Unknown
    DefAssociation = 0x3, Sequence = 0x0
  Pin-ctls: 0x40: OUT
  Unsolicited: tag=00, enabled=0
  Power states:  D0 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 1
     0x04
Node 0x08 [Vendor Defined Widget] wcaps 0xf00000: Mono
--endcollapse--


!!ALSA Device nodes
!!-----------------

crw-rw---T 1 root audio 116,  8 May 12 11:44 /dev/snd/controlC0
crw-rw---T 1 root audio 116,  7 May 12 11:44 /dev/snd/hwC0D0
crw-rw---T 1 root audio 116,  6 May 12 11:44 /dev/snd/hwC0D3
crw-rw---T 1 root audio 116,  5 May 12 11:45 /dev/snd/pcmC0D0c
crw-rw---T 1 root audio 116,  4 May 12 11:45 /dev/snd/pcmC0D0p
crw-rw---T 1 root audio 116,  3 May 12 11:44 /dev/snd/pcmC0D2p
crw-rw---T 1 root audio 116,  2 May 12 11:45 /dev/snd/pcmC0D3p
crw------T 1 root root  116,  1 May 12 11:44 /dev/snd/seq
crw-rw---T 1 root audio 116, 33 May 12 11:44 /dev/snd/timer

/dev/snd/by-path:
total 0
drwxr-xr-x 2 root root  60 May 12 11:44 .
drwxr-xr-x 3 root root 240 May 12 11:44 ..
lrwxrwxrwx 1 root root  12 May 12 11:44 pci-0000:00:1b.0 -> ../controlC0


!!ALSA configuration files
!!------------------------

!!User specific config file (~/.asoundrc)

# ALSA library configuration file

# Include settings that are under the control of asoundconf(1).
# (To disable these settings, comment out this line.)
#</home/raa/.asoundrc.asoundconf>

#pcm.multi_send {
#    type plug
#    ttable.0.0 1
#    ttable.0.1 1
#    slave.pcm front
#}

# ~/.asoundrc

pcm_slave.purefi48 {
   pcm front:Mobile
   format S16_LE
   rate 48000
}

pcm.purefi {
   type plug
   slave purefi48
}

#pcm.!default front:Headset
#pcm.!default front:"HDA Intel"
#pcm.!default front:Mobile
#pcm.!default purefi


!!asoundconf-generated config file

# ALSA library configuration file managed by asoundconf(1).
#
# MANUAL CHANGES TO THIS FILE WILL BE OVERWRITTEN!
#
# Manual changes to the ALSA library configuration should be implemented
# by editing the ~/.asoundrc file, not by editing this file.
pcm.!default { type pulse }
ctl.!default { type pulse }


!!Aplay/Arecord output
!!--------------------

APLAY

**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: VT1802 Analog [VT1802 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 2: VT1802 Alt Analog [VT1802 Alt Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 3: ID 2806 Digital [ID 2806 Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

ARECORD

**** List of CAPTURE Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: VT1802 Analog [VT1802 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

!!Amixer output
!!-------------

!!-------Mixer controls for card 0 [PCH]

Card hw:0 'PCH'/'HDA Intel PCH at 0xf7e10000 irq 46'
  Mixer name	: 'Intel ID 2806'
  Components	: 'HDA:11068446,15580240,00100000 HDA:80862806,15580240,00100000'
  Controls      : 30
  Simple ctrls  : 12
Simple mixer control 'Master',0
  Capabilities: pvolume pvolume-joined pswitch pswitch-joined penum
  Playback channels: Mono
  Limits: Playback 0 - 42
  Mono: Playback 23 [55%] [-28.50dB] [on]
Simple mixer control 'Headphone',0
  Capabilities: pvolume pswitch penum
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 42
  Mono:
  Front Left: Playback 42 [100%] [0.00dB] [on]
  Front Right: Playback 42 [100%] [0.00dB] [on]
Simple mixer control 'Speaker',0
  Capabilities: pvolume pswitch penum
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 42
  Mono:
  Front Left: Playback 42 [100%] [0.00dB] [on]
  Front Right: Playback 42 [100%] [0.00dB] [on]
Simple mixer control 'PCM',0
  Capabilities: pvolume penum
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 255
  Mono:
  Front Left: Playback 253 [99%] [0.40dB]
  Front Right: Playback 253 [99%] [0.40dB]
Simple mixer control 'Mic',0
  Capabilities: pvolume pswitch penum
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 31
  Mono:
  Front Left: Playback 23 [74%] [0.00dB] [off]
  Front Right: Playback 23 [74%] [0.00dB] [off]
Simple mixer control 'IEC958',0
  Capabilities: pswitch pswitch-joined penum
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'Capture',0
  Capabilities: cvolume cswitch penum
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 31
  Front Left: Capture 19 [61%] [12.00dB] [on]
  Front Right: Capture 19 [61%] [12.00dB] [on]
Simple mixer control 'Auto-Mute Mode',0
  Capabilities: enum
  Items: 'Disabled' 'Enabled'
  Item0: 'Enabled'
Simple mixer control 'Dynamic Power-Control',0
  Capabilities: enum
  Items: 'Disabled' 'Enabled'
  Item0: 'Disabled'
Simple mixer control 'Independent HP',0
  Capabilities: enum
  Items: 'Disabled' 'Enabled'
  Item0: 'Disabled'
Simple mixer control 'Internal Mic',0
  Capabilities: pvolume pswitch penum
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 31
  Mono:
  Front Left: Playback 23 [74%] [0.00dB] [off]
  Front Right: Playback 23 [74%] [0.00dB] [off]
Simple mixer control 'Loopback Mixing',0
  Capabilities: enum
  Items: 'Disabled' 'Enabled'
  Item0: 'Disabled'


!!Alsactl output
!!--------------

--startcollapse--
state.PCH {
	control.1 {
		iface MIXER
		name 'Headphone Playback Volume'
		value.0 42
		value.1 42
		comment {
			access 'read write'
			type INTEGER
			count 2
			range '0 - 42'
			dbmin -6300
			dbmax 0
			dbvalue.0 0
			dbvalue.1 0
		}
	}
	control.2 {
		iface MIXER
		name 'Headphone Playback Switch'
		value.0 true
		value.1 true
		comment {
			access 'read write'
			type BOOLEAN
			count 2
		}
	}
	control.3 {
		iface MIXER
		name 'Speaker Playback Volume'
		value.0 42
		value.1 42
		comment {
			access 'read write'
			type INTEGER
			count 2
			range '0 - 42'
			dbmin -6300
			dbmax 0
			dbvalue.0 0
			dbvalue.1 0
		}
	}
	control.4 {
		iface MIXER
		name 'Speaker Playback Switch'
		value.0 true
		value.1 true
		comment {
			access 'read write'
			type BOOLEAN
			count 2
		}
	}
	control.5 {
		iface MIXER
		name 'Independent HP'
		value Disabled
		comment {
			access 'read write'
			type ENUMERATED
			count 1
			item.0 Disabled
			item.1 Enabled
		}
	}
	control.6 {
		iface MIXER
		name 'Loopback Mixing'
		value Disabled
		comment {
			access 'read write'
			type ENUMERATED
			count 1
			item.0 Disabled
			item.1 Enabled
		}
	}
	control.7 {
		iface MIXER
		name 'Mic Playback Volume'
		value.0 23
		value.1 23
		comment {
			access 'read write'
			type INTEGER
			count 2
			range '0 - 31'
			dbmin -3450
			dbmax 1200
			dbvalue.0 0
			dbvalue.1 0
		}
	}
	control.8 {
		iface MIXER
		name 'Mic Playback Switch'
		value.0 false
		value.1 false
		comment {
			access 'read write'
			type BOOLEAN
			count 2
		}
	}
	control.9 {
		iface MIXER
		name 'Internal Mic Playback Volume'
		value.0 23
		value.1 23
		comment {
			access 'read write'
			type INTEGER
			count 2
			range '0 - 31'
			dbmin -3450
			dbmax 1200
			dbvalue.0 0
			dbvalue.1 0
		}
	}
	control.10 {
		iface MIXER
		name 'Internal Mic Playback Switch'
		value.0 false
		value.1 false
		comment {
			access 'read write'
			type BOOLEAN
			count 2
		}
	}
	control.11 {
		iface MIXER
		name 'Auto-Mute Mode'
		value Enabled
		comment {
			access 'read write'
			type ENUMERATED
			count 1
			item.0 Disabled
			item.1 Enabled
		}
	}
	control.12 {
		iface MIXER
		name 'Capture Volume'
		value.0 19
		value.1 19
		comment {
			access 'read write'
			type INTEGER
			count 2
			range '0 - 31'
			dbmin -1650
			dbmax 3000
			dbvalue.0 1200
			dbvalue.1 1200
		}
	}
	control.13 {
		iface MIXER
		name 'Capture Switch'
		value.0 true
		value.1 true
		comment {
			access 'read write'
			type BOOLEAN
			count 2
		}
	}
	control.14 {
		iface MIXER
		name 'Master Playback Volume'
		value 23
		comment {
			access 'read write'
			type INTEGER
			count 1
			range '0 - 42'
			dbmin -6300
			dbmax 0
			dbvalue.0 -2850
		}
	}
	control.15 {
		iface MIXER
		name 'Master Playback Switch'
		value true
		comment {
			access 'read write'
			type BOOLEAN
			count 1
		}
	}
	control.16 {
		iface CARD
		name 'Front Headphone Jack'
		value true
		comment {
			access read
			type BOOLEAN
			count 1
		}
	}
	control.17 {
		iface CARD
		name 'Speaker Phantom Jack'
		value true
		comment {
			access read
			type BOOLEAN
			count 1
		}
	}
	control.18 {
		iface CARD
		name 'Mic Jack'
		value false
		comment {
			access read
			type BOOLEAN
			count 1
		}
	}
	control.19 {
		iface CARD
		name 'Internal Mic Phantom Jack'
		value true
		comment {
			access read
			type BOOLEAN
			count 1
		}
	}
	control.20 {
		iface MIXER
		name 'Dynamic Power-Control'
		value Disabled
		comment {
			access 'read write'
			type ENUMERATED
			count 1
			item.0 Disabled
			item.1 Enabled
		}
	}
	control.21 {
		iface PCM
		name 'Playback Channel Map'
		value.0 0
		value.1 0
		comment {
			access read
			type INTEGER
			count 2
			range '0 - 36'
		}
	}
	control.22 {
		iface PCM
		name 'Capture Channel Map'
		value.0 0
		value.1 0
		comment {
			access read
			type INTEGER
			count 2
			range '0 - 36'
		}
	}
	control.23 {
		iface PCM
		device 2
		name 'Playback Channel Map'
		value.0 0
		value.1 0
		comment {
			access read
			type INTEGER
			count 2
			range '0 - 36'
		}
	}
	control.24 {
		iface MIXER
		name 'IEC958 Playback Con Mask'
		value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access read
			type IEC958
			count 1
		}
	}
	control.25 {
		iface MIXER
		name 'IEC958 Playback Pro Mask'
		value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access read
			type IEC958
			count 1
		}
	}
	control.26 {
		iface MIXER
		name 'IEC958 Playback Default'
		value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access 'read write'
			type IEC958
			count 1
		}
	}
	control.27 {
		iface MIXER
		name 'IEC958 Playback Switch'
		value false
		comment {
			access 'read write'
			type BOOLEAN
			count 1
		}
	}
	control.28 {
		iface CARD
		name 'HDMI Jack'
		value false
		comment {
			access read
			type BOOLEAN
			count 1
		}
	}
	control.29 {
		iface PCM
		device 3
		name 'Playback Channel Map'
		value.0 0
		value.1 0
		comment {
			access read
			type INTEGER
			count 2
			range '0 - 36'
		}
	}
	control.30 {
		iface MIXER
		name 'PCM Playback Volume'
		value.0 253
		value.1 253
		comment {
			access 'read write user'
			type INTEGER
			count 2
			range '0 - 255'
			tlv '0000000100000008ffffec1400000014'
			dbmin -5100
			dbmax 0
			dbvalue.0 -40
			dbvalue.1 -40
		}
	}
}
--endcollapse--


!!All Loaded Modules
!!------------------

Module
snd_hda_codec_via
iwldvm
rtsx_pci_sdmmc
mmc_core
snd_hda_intel
snd_hda_codec
snd_hwdep
snd_pcm_oss
snd_mixer_oss
kvm_intel
snd_pcm
uvcvideo
kvm
videobuf2_vmalloc
snd_page_alloc
videobuf2_memops
iwlwifi
snd_timer
r8169
videobuf2_core
serio_raw
rtsx_pci


!!Sysfs Files
!!-----------

/sys/class/sound/hwC0D0/init_pin_configs:
0x24 0x90170110
0x25 0x0221401f
0x28 0x422140f0
0x29 0x90a70137
0x2a 0x418130f8
0x2b 0x01a1903e
0x2d 0x474410f0
0x30 0x50a600f0
0x33 0x501701f0

/sys/class/sound/hwC0D0/driver_pin_configs:

/sys/class/sound/hwC0D0/user_pin_configs:

/sys/class/sound/hwC0D0/init_verbs:

/sys/class/sound/hwC0D3/init_pin_configs:
0x05 0x58560010
0x06 0x18560020
0x07 0x58560030

/sys/class/sound/hwC0D3/driver_pin_configs:

/sys/class/sound/hwC0D3/user_pin_configs:

/sys/class/sound/hwC0D3/init_verbs:


!!ALSA/HDA dmesg
!!--------------

[    4.227997] EDD information not available.
[    4.229287] ALSA device list:
[    4.230048]   No soundcards found.
[    4.233321] EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null)
--
[    4.452959] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[    4.453132] snd_hda_intel 0000:00:1b.0: irq 46 for MSI/MSI-X
[    4.453723] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
--
[    4.464925] iwlwifi 0000:02:00.0: CONFIG_IWLWIFI_P2P disabled
[    4.465123] ALSA sound/pci/hda/hda_auto_parser.c:335 autoconfig: line_outs=1 (0x24/0x0/0x0/0x0/0x0) type:speaker
[    4.465124] ALSA sound/pci/hda/hda_auto_parser.c:339    speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
[    4.465125] ALSA sound/pci/hda/hda_auto_parser.c:343    hp_outs=1 (0x25/0x0/0x0/0x0/0x0)
[    4.465125] ALSA sound/pci/hda/hda_auto_parser.c:344    mono: mono_out=0x0
[    4.465126] ALSA sound/pci/hda/hda_auto_parser.c:348    inputs:
[    4.465127] ALSA sound/pci/hda/hda_auto_parser.c:352      Mic=0x2b
[    4.465128] ALSA sound/pci/hda/hda_auto_parser.c:352      Internal Mic=0x29
[    4.465618] iwlwifi 0000:02:00.0: Detected Intel(R) Centrino(R) Advanced-N 6235 AGN, REV=0xB0
[    4.466409] iwlwifi 0000:02:00.0: L1 Disabled; Enabling L0S
[    4.468355] ALSA sound/pci/hda/hda_auto_parser.c:335 autoconfig: line_outs=0 (0x0/0x0/0x0/0x0/0x0) type:line
[    4.468359] ALSA sound/pci/hda/hda_auto_parser.c:339    speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
[    4.468361] ALSA sound/pci/hda/hda_auto_parser.c:343    hp_outs=0 (0x0/0x0/0x0/0x0/0x0)
[    4.468363] ALSA sound/pci/hda/hda_auto_parser.c:344    mono: mono_out=0x0
[    4.468365] ALSA sound/pci/hda/hda_auto_parser.c:347    dig-out=0x6/0x0
[    4.468366] ALSA sound/pci/hda/hda_auto_parser.c:348    inputs:
[    4.483378] cfg80211: Ignoring regulatory request Set by core since the driver uses its own custom regulatory domain
[    4.483491] ieee80211 phy0: Selected rate control algorithm 'iwl-agn-rs'
[    4.484316] input: HDA Intel PCH HDMI as /devices/pci0000:00/0000:00:1b.0/sound/card0/input8
[    4.485209] input: HDA Intel PCH Mic as /devices/pci0000:00/0000:00:1b.0/sound/card0/input9
[    4.486101] input: HDA Intel PCH Front Headphone as /devices/pci0000:00/0000:00:1b.0/sound/card0/input10
[    4.525354] ehci-pci 0000:00:1a.0: hcd_pci_runtime_suspend: 0



^ permalink raw reply	[flat|nested] 34+ messages in thread

* Fwd: regression: from 3.8 to 3.9: headphones output no sound on Intel HDA, codec VIA VT1802
  2013-05-12  9:53 regression: from 3.8 to 3.9: headphones output no sound on Intel HDA, codec VIA VT1802 Alex Riesen
@ 2013-05-12  9:58 ` Alex Riesen
  2013-05-13 15:26 ` Takashi Iwai
  1 sibling, 0 replies; 34+ messages in thread
From: Alex Riesen @ 2013-05-12  9:58 UTC (permalink / raw)
  To: alsa-devel

The original message is being held hostage by moderator approval.
The attachments (alsa-info output) can be found here:

  http://marc.info/?l=linux-kernel&m=136835246706699&w=2

---------- Forwarded message ----------

Hi,

I just noticed (use the headphones rarely) that the headphones on this
System76 Lemur Ultra (lemu4) stopped working. There is absolutely no
output.

I tried reverting all changes to patch_via.c since v3.8, and
have the sound back, but there wasn't much to revert:

Revert "ALSA: hda - Rearrange INPUT_PIN_ATTR_*"
Revert "ALSA: hda - Use generic parser for VIA codec driver"
Revert "ALSA: hda - Enable parsing the independent HP mode as default
for VIA codecs"
Revert "ALSA: hda/via - Fix wrong checks of power state bits"
Revert "ALSA: hda - Fix phantom jacks on VT1708"
Revert "ALSA: hda - detect jacks on VT1708 even when no streams are active"
Revert "ALSA: hda - Use generic array for loopback list management"

and one change (which I indeed suspect) is large: the use of generic parser.

The problem is also present in 3.10-rc1. The output of alsa-info.sh attached,
for 3.8.12 and 3.9.2 respectively.

Regards,
Alex Riesen

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: regression: from 3.8 to 3.9: headphones output no sound on Intel HDA, codec VIA VT1802
  2013-05-12  9:53 regression: from 3.8 to 3.9: headphones output no sound on Intel HDA, codec VIA VT1802 Alex Riesen
  2013-05-12  9:58 ` Fwd: " Alex Riesen
@ 2013-05-13 15:26 ` Takashi Iwai
  2013-05-13 15:53   ` Takashi Iwai
  1 sibling, 1 reply; 34+ messages in thread
From: Takashi Iwai @ 2013-05-13 15:26 UTC (permalink / raw)
  To: Alex Riesen; +Cc: alsa-devel, Linux Kernel Mailing List

At Sun, 12 May 2013 11:53:41 +0200,
Alex Riesen wrote:
> 
> Hi,
> 
> I just noticed (use the headphones rarely) that the headphones on this
> System76 Lemur Ultra (lemu4) stopped working. There is absolutely no
> output.
> 
> I tried reverting all changes to patch_via.c since v3.8, and
> have the sound back, but there wasn't much to revert:
> 
> Revert "ALSA: hda - Rearrange INPUT_PIN_ATTR_*"
> Revert "ALSA: hda - Use generic parser for VIA codec driver"
> Revert "ALSA: hda - Enable parsing the independent HP mode as default
> for VIA codecs"
> Revert "ALSA: hda/via - Fix wrong checks of power state bits"
> Revert "ALSA: hda - Fix phantom jacks on VT1708"
> Revert "ALSA: hda - detect jacks on VT1708 even when no streams are active"
> Revert "ALSA: hda - Use generic array for loopback list management"
> 
> and one change (which I indeed suspect) is large: the use of generic parser.
> 
> The problem is also present in 3.10-rc1. The output of alsa-info.sh attached,
> for 3.8.12 and 3.9.2 respectively.

It's strange that the pin 0x25 shows EAPD 0x00 and pin-control 0x00.
They should be 0x02 and 0xc0 constantly.  Is it taken at the moment
the headphone is plugged, right?  Please give alsa-info.sh outputs at
both the headphone plugged and unplugged.

Could you check whether changing them makes the headphone output
working?  For example, get hda-verb program (see
Documentation/sound/alsa/HD-Audio.txt) and run it like

	hda-verb /dev/snd/hwC0D0 0x25 SET_PIN_WID 0xc0
	hda-verb /dev/snd/hwC0D0 0x25 SET_EAPD 0x02


thanks,

Takashi

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: regression: from 3.8 to 3.9: headphones output no sound on Intel HDA, codec VIA VT1802
  2013-05-13 15:26 ` Takashi Iwai
@ 2013-05-13 15:53   ` Takashi Iwai
  2013-05-13 18:24       ` Alex Riesen
  0 siblings, 1 reply; 34+ messages in thread
From: Takashi Iwai @ 2013-05-13 15:53 UTC (permalink / raw)
  To: Alex Riesen; +Cc: alsa-devel, Linux Kernel Mailing List

At Mon, 13 May 2013 17:26:04 +0200,
Takashi Iwai wrote:
> 
> At Sun, 12 May 2013 11:53:41 +0200,
> Alex Riesen wrote:
> > 
> > Hi,
> > 
> > I just noticed (use the headphones rarely) that the headphones on this
> > System76 Lemur Ultra (lemu4) stopped working. There is absolutely no
> > output.
> > 
> > I tried reverting all changes to patch_via.c since v3.8, and
> > have the sound back, but there wasn't much to revert:
> > 
> > Revert "ALSA: hda - Rearrange INPUT_PIN_ATTR_*"
> > Revert "ALSA: hda - Use generic parser for VIA codec driver"
> > Revert "ALSA: hda - Enable parsing the independent HP mode as default
> > for VIA codecs"
> > Revert "ALSA: hda/via - Fix wrong checks of power state bits"
> > Revert "ALSA: hda - Fix phantom jacks on VT1708"
> > Revert "ALSA: hda - detect jacks on VT1708 even when no streams are active"
> > Revert "ALSA: hda - Use generic array for loopback list management"
> > 
> > and one change (which I indeed suspect) is large: the use of generic parser.
> > 
> > The problem is also present in 3.10-rc1. The output of alsa-info.sh attached,
> > for 3.8.12 and 3.9.2 respectively.
> 
> It's strange that the pin 0x25 shows EAPD 0x00 and pin-control 0x00.
> They should be 0x02 and 0xc0 constantly.  Is it taken at the moment
> the headphone is plugged, right?  Please give alsa-info.sh outputs at
> both the headphone plugged and unplugged.
> 
> Could you check whether changing them makes the headphone output
> working?  For example, get hda-verb program (see
> Documentation/sound/alsa/HD-Audio.txt) and run it like
> 
> 	hda-verb /dev/snd/hwC0D0 0x25 SET_PIN_WID 0xc0
> 	hda-verb /dev/snd/hwC0D0 0x25 SET_EAPD 0x02

Also, what happens if you apply the patch below?


thanks,

Takashi

---
diff --git a/sound/pci/hda/patch_via.c b/sound/pci/hda/patch_via.c
index e0dadcf..13ed791 100644
--- a/sound/pci/hda/patch_via.c
+++ b/sound/pci/hda/patch_via.c
@@ -1561,7 +1561,7 @@ static int patch_vt2002P(struct hda_codec *codec)
 
 	codec->patch_ops = via_patch_ops;
 
-	spec->set_widgets_power_state =  set_widgets_power_state_vt2002P;
+	//spec->set_widgets_power_state =  set_widgets_power_state_vt2002P;
 	return 0;
 }
 

^ permalink raw reply related	[flat|nested] 34+ messages in thread

* Re: regression: from 3.8 to 3.9: headphones output no sound on Intel HDA, codec VIA VT1802
  2013-05-13 15:53   ` Takashi Iwai
@ 2013-05-13 18:24       ` Alex Riesen
  0 siblings, 0 replies; 34+ messages in thread
From: Alex Riesen @ 2013-05-13 18:24 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel, Linux Kernel Mailing List

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

On Mon, May 13, 2013 at 5:53 PM, Takashi Iwai <tiwai@suse.de> wrote:
> At Mon, 13 May 2013 17:26:04 +0200, Takashi Iwai wrote:
>> At Sun, 12 May 2013 11:53:41 +0200, Alex Riesen wrote:
>> >
>> > I just noticed (use the headphones rarely) that the headphones on this
>> > System76 Lemur Ultra (lemu4) stopped working. There is absolutely no
>> > output.
>> >
>>
>> It's strange that the pin 0x25 shows EAPD 0x00 and pin-control 0x00.
>> They should be 0x02 and 0xc0 constantly.  Is it taken at the moment
>> the headphone is plugged, right?  Please give alsa-info.sh outputs at
>> both the headphone plugged and unplugged.

Attached. Sorry for gzipping, the alsa-devel rejects two at a time: too large.

>> Could you check whether changing them makes the headphone output
>> working?  For example, get hda-verb program (see
>> Documentation/sound/alsa/HD-Audio.txt) and run it like
>>
>>       hda-verb /dev/snd/hwC0D0 0x25 SET_PIN_WID 0xc0
>>       hda-verb /dev/snd/hwC0D0 0x25 SET_EAPD 0x02

It helps, headphones start working.

> Also, what happens if you apply the patch below?
> -       spec->set_widgets_power_state =  set_widgets_power_state_vt2002P;
> +       //spec->set_widgets_power_state =  set_widgets_power_state_vt2002P;

This helps as well. Yay!
Thanks :) Whatever the outcome, I have them back more or less (more,
for me) properly.

Probably unrelated, but I better mention it anyway: the "Auto-Mute Mode"
works strangely, it never mutes anything but headphones. It might work
as designed, but it is useless in this case: one still has to mute the
speaker manually when plugging headphones (or do something with input
events, which I failed to get to work).

And "Independent HP" has absolutely no effect, which is probably as it
should be on this laptop.

[-- Attachment #2: 3.9.2-w-headphone.alsa.gz --]
[-- Type: application/x-gzip, Size: 5526 bytes --]

[-- Attachment #3: 3.9.2-wo-headphone.alsa.gz --]
[-- Type: application/x-gzip, Size: 5534 bytes --]

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: regression: from 3.8 to 3.9: headphones output no sound on Intel HDA, codec VIA VT1802
@ 2013-05-13 18:24       ` Alex Riesen
  0 siblings, 0 replies; 34+ messages in thread
From: Alex Riesen @ 2013-05-13 18:24 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel, Linux Kernel Mailing List

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

On Mon, May 13, 2013 at 5:53 PM, Takashi Iwai <tiwai@suse.de> wrote:
> At Mon, 13 May 2013 17:26:04 +0200, Takashi Iwai wrote:
>> At Sun, 12 May 2013 11:53:41 +0200, Alex Riesen wrote:
>> >
>> > I just noticed (use the headphones rarely) that the headphones on this
>> > System76 Lemur Ultra (lemu4) stopped working. There is absolutely no
>> > output.
>> >
>>
>> It's strange that the pin 0x25 shows EAPD 0x00 and pin-control 0x00.
>> They should be 0x02 and 0xc0 constantly.  Is it taken at the moment
>> the headphone is plugged, right?  Please give alsa-info.sh outputs at
>> both the headphone plugged and unplugged.

Attached. Sorry for gzipping, the alsa-devel rejects two at a time: too large.

>> Could you check whether changing them makes the headphone output
>> working?  For example, get hda-verb program (see
>> Documentation/sound/alsa/HD-Audio.txt) and run it like
>>
>>       hda-verb /dev/snd/hwC0D0 0x25 SET_PIN_WID 0xc0
>>       hda-verb /dev/snd/hwC0D0 0x25 SET_EAPD 0x02

It helps, headphones start working.

> Also, what happens if you apply the patch below?
> -       spec->set_widgets_power_state =  set_widgets_power_state_vt2002P;
> +       //spec->set_widgets_power_state =  set_widgets_power_state_vt2002P;

This helps as well. Yay!
Thanks :) Whatever the outcome, I have them back more or less (more,
for me) properly.

Probably unrelated, but I better mention it anyway: the "Auto-Mute Mode"
works strangely, it never mutes anything but headphones. It might work
as designed, but it is useless in this case: one still has to mute the
speaker manually when plugging headphones (or do something with input
events, which I failed to get to work).

And "Independent HP" has absolutely no effect, which is probably as it
should be on this laptop.

[-- Attachment #2: 3.9.2-w-headphone.alsa.gz --]
[-- Type: application/x-gzip, Size: 5526 bytes --]

[-- Attachment #3: 3.9.2-wo-headphone.alsa.gz --]
[-- Type: application/x-gzip, Size: 5534 bytes --]

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



^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: regression: from 3.8 to 3.9: headphones output no sound on Intel HDA, codec VIA VT1802
  2013-05-13 18:24       ` Alex Riesen
  (?)
@ 2013-05-14  5:59       ` Takashi Iwai
  2013-05-14 10:58         ` Takashi Iwai
  2013-05-14 19:54         ` Alex Riesen
  -1 siblings, 2 replies; 34+ messages in thread
From: Takashi Iwai @ 2013-05-14  5:59 UTC (permalink / raw)
  To: Alex Riesen; +Cc: alsa-devel, Linux Kernel Mailing List

At Mon, 13 May 2013 20:24:42 +0200,
Alex Riesen wrote:
> 
> On Mon, May 13, 2013 at 5:53 PM, Takashi Iwai <tiwai@suse.de> wrote:
> > At Mon, 13 May 2013 17:26:04 +0200, Takashi Iwai wrote:
> >> At Sun, 12 May 2013 11:53:41 +0200, Alex Riesen wrote:
> >> >
> >> > I just noticed (use the headphones rarely) that the headphones on this
> >> > System76 Lemur Ultra (lemu4) stopped working. There is absolutely no
> >> > output.
> >> >
> >>
> >> It's strange that the pin 0x25 shows EAPD 0x00 and pin-control 0x00.
> >> They should be 0x02 and 0xc0 constantly.  Is it taken at the moment
> >> the headphone is plugged, right?  Please give alsa-info.sh outputs at
> >> both the headphone plugged and unplugged.
> 
> Attached. Sorry for gzipping, the alsa-devel rejects two at a time: too large.
> 
> >> Could you check whether changing them makes the headphone output
> >> working?  For example, get hda-verb program (see
> >> Documentation/sound/alsa/HD-Audio.txt) and run it like
> >>
> >>       hda-verb /dev/snd/hwC0D0 0x25 SET_PIN_WID 0xc0
> >>       hda-verb /dev/snd/hwC0D0 0x25 SET_EAPD 0x02
> 
> It helps, headphones start working.
> 
> > Also, what happens if you apply the patch below?
> > -       spec->set_widgets_power_state =  set_widgets_power_state_vt2002P;
> > +       //spec->set_widgets_power_state =  set_widgets_power_state_vt2002P;
> 
> This helps as well. Yay!
> Thanks :) Whatever the outcome, I have them back more or less (more,
> for me) properly.

OK, then we know the place to fix now.
Try the patch below instead.  Does it fix the problem as well?

> Probably unrelated, but I better mention it anyway: the "Auto-Mute Mode"
> works strangely, it never mutes anything but headphones. It might work
> as designed, but it is useless in this case: one still has to mute the
> speaker manually when plugging headphones (or do something with input
> events, which I failed to get to work).

Does the problem still happen with the patch?

> And "Independent HP" has absolutely no effect, which is probably as it
> should be on this laptop.

With the independent HP turned on, there should be no output to the
headphone through the normal PCM.  There is a secondary PCM device,
and this is routed to the headphone when the independent HP is on.


thanks,

Takashi

---
diff --git a/sound/pci/hda/patch_via.c b/sound/pci/hda/patch_via.c
index e0dadcf..09fd395 100644
--- a/sound/pci/hda/patch_via.c
+++ b/sound/pci/hda/patch_via.c
@@ -1410,6 +1410,7 @@ static void set_widgets_power_state_vt2002P(struct hda_codec *codec)
 	/* outputs */
 	/* AOW0 (8h)*/
 	update_power_state(codec, 0x8, parm);
+	update_power_state(codec, 0x9, parm);
 
 	if (spec->codec_type == VT1802) {
 		/* PW4 (28h), MW4 (18h), MUX4(38h) */
@@ -1439,16 +1440,14 @@ static void set_widgets_power_state_vt2002P(struct hda_codec *codec)
 		update_power_state(codec, 0x35, parm);
 	}
 
-	if (spec->gen.indep_hp_enabled)
-		update_power_state(codec, 0x9, AC_PWRST_D0);
-
 	/* Class-D */
 	/* PW0 (24h), MW0(18h/14h), MUX0(34h) */
 	present = snd_hda_jack_detect(codec, 0x25);
 
 	parm = AC_PWRST_D3;
 	set_pin_power_state(codec, 0x24, &parm);
-	parm = present ? AC_PWRST_D3 : AC_PWRST_D0;
+	if (parm == AC_PWRST_D0)
+		parm = present ? AC_PWRST_D3 : AC_PWRST_D0;
 	if (spec->codec_type == VT1802)
 		update_power_state(codec, 0x14, parm);
 	else

^ permalink raw reply related	[flat|nested] 34+ messages in thread

* Re: regression: from 3.8 to 3.9: headphones output no sound on Intel HDA, codec VIA VT1802
  2013-05-14  5:59       ` Takashi Iwai
@ 2013-05-14 10:58         ` Takashi Iwai
  2013-05-14 19:55           ` Alex Riesen
  2013-05-14 19:54         ` Alex Riesen
  1 sibling, 1 reply; 34+ messages in thread
From: Takashi Iwai @ 2013-05-14 10:58 UTC (permalink / raw)
  To: Alex Riesen; +Cc: alsa-devel, Linux Kernel Mailing List

At Tue, 14 May 2013 07:59:07 +0200,
Takashi Iwai wrote:
> 
> At Mon, 13 May 2013 20:24:42 +0200,
> Alex Riesen wrote:
> > 
> > On Mon, May 13, 2013 at 5:53 PM, Takashi Iwai <tiwai@suse.de> wrote:
> > > At Mon, 13 May 2013 17:26:04 +0200, Takashi Iwai wrote:
> > >> At Sun, 12 May 2013 11:53:41 +0200, Alex Riesen wrote:
> > >> >
> > >> > I just noticed (use the headphones rarely) that the headphones on this
> > >> > System76 Lemur Ultra (lemu4) stopped working. There is absolutely no
> > >> > output.
> > >> >
> > >>
> > >> It's strange that the pin 0x25 shows EAPD 0x00 and pin-control 0x00.
> > >> They should be 0x02 and 0xc0 constantly.  Is it taken at the moment
> > >> the headphone is plugged, right?  Please give alsa-info.sh outputs at
> > >> both the headphone plugged and unplugged.
> > 
> > Attached. Sorry for gzipping, the alsa-devel rejects two at a time: too large.
> > 
> > >> Could you check whether changing them makes the headphone output
> > >> working?  For example, get hda-verb program (see
> > >> Documentation/sound/alsa/HD-Audio.txt) and run it like
> > >>
> > >>       hda-verb /dev/snd/hwC0D0 0x25 SET_PIN_WID 0xc0
> > >>       hda-verb /dev/snd/hwC0D0 0x25 SET_EAPD 0x02
> > 
> > It helps, headphones start working.
> > 
> > > Also, what happens if you apply the patch below?
> > > -       spec->set_widgets_power_state =  set_widgets_power_state_vt2002P;
> > > +       //spec->set_widgets_power_state =  set_widgets_power_state_vt2002P;
> > 
> > This helps as well. Yay!
> > Thanks :) Whatever the outcome, I have them back more or less (more,
> > for me) properly.
> 
> OK, then we know the place to fix now.
> Try the patch below instead.  Does it fix the problem as well?

The below is the revised patch, fixing not only for VT1802 but other
VIA codecs, too.  Please let me know if it works.


thanks,

Takashi

---
From: Takashi Iwai <tiwai@suse.de>
Subject: [PATCH] ALSA: hda - Fix wrong power setup for HP paths of VIA codecs

The set_widgets_power_state_*() callbacks in patch_via.c are converted
to evaluate spec->gen.indep_hp_enabled when the codec parser was
switched to use the generic parser.  However, the generic parser takes
the headphone paths in a different way as the original VIA parser; it
tries the paths with individual DACs as much as possible.  This ended
up with the incorrect check of the power status in the HP paths,
resulting in the silent output from the headphones.

This patch removes the invalid check of indep_hp_enabled flag and sets
the proper power status for those paths.

Reported-by: Alex Riesen <raa.lkml@gmail.com>
Cc: <stable@vger.kernel.org> [v3.9+]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
 sound/pci/hda/patch_via.c | 41 +++++++++++++++--------------------------
 1 file changed, 15 insertions(+), 26 deletions(-)

diff --git a/sound/pci/hda/patch_via.c b/sound/pci/hda/patch_via.c
index e0dadcf..c74e1a1 100644
--- a/sound/pci/hda/patch_via.c
+++ b/sound/pci/hda/patch_via.c
@@ -856,7 +856,7 @@ static void set_widgets_power_state_vt1708B(struct hda_codec *codec)
 	if (is_8ch) {
 		update_power_state(codec, 0x25, parm);
 		update_power_state(codec, 0x27, parm);
-	} else if (codec->vendor_id == 0x11064397 && spec->gen.indep_hp_enabled)
+	} else if (codec->vendor_id == 0x11064397)
 		update_power_state(codec, 0x25, parm);
 }
 
@@ -1042,7 +1042,6 @@ static const struct hda_verb vt1718S_init_verbs[] = {
 
 static void set_widgets_power_state_vt1718S(struct hda_codec *codec)
 {
-	struct via_spec *spec = codec->spec;
 	int imux_is_smixer;
 	unsigned int parm, parm2;
 	/* MUX6 (1eh) = stereo mixer */
@@ -1079,10 +1078,9 @@ static void set_widgets_power_state_vt1718S(struct hda_codec *codec)
 	/* PW0 (24h), AOW0 (8h) */
 	parm = AC_PWRST_D3;
 	set_pin_power_state(codec, 0x24, &parm);
-	if (!spec->gen.indep_hp_enabled) /* check for redirected HP */
-		set_pin_power_state(codec, 0x28, &parm);
+	set_pin_power_state(codec, 0x28, &parm);
 	update_power_state(codec, 0x8, parm);
-	if (!spec->gen.indep_hp_enabled && parm2 != AC_PWRST_D3)
+	if (parm2 != AC_PWRST_D3)
 		parm = parm2;
 	update_power_state(codec, 0xb, parm);
 	/* MW9 (21h), Mw2 (1ah), AOW0 (8h) */
@@ -1095,14 +1093,12 @@ static void set_widgets_power_state_vt1718S(struct hda_codec *codec)
 		set_pin_power_state(codec, 0x2a, &parm);
 	update_power_state(codec, 0x9, parm);
 
-	if (spec->gen.indep_hp_enabled) {
-		/* PW4 (28h), MW3 (1bh), MUX1(34h), AOW4 (ch) */
-		parm = AC_PWRST_D3;
-		set_pin_power_state(codec, 0x28, &parm);
-		update_power_state(codec, 0x1b, parm);
-		update_power_state(codec, 0x34, parm);
-		update_power_state(codec, 0xc, parm);
-	}
+	/* PW4 (28h), MW3 (1bh), MUX1(34h), AOW4 (ch) */
+	parm = AC_PWRST_D3;
+	set_pin_power_state(codec, 0x28, &parm);
+	update_power_state(codec, 0x1b, parm);
+	update_power_state(codec, 0x34, parm);
+	update_power_state(codec, 0xc, parm);
 }
 
 /* Add a connection to the primary DAC from AA-mixer for some codecs
@@ -1307,7 +1303,7 @@ static void set_widgets_power_state_vt1716S(struct hda_codec *codec)
 		mono_out = 0;
 	else {
 		present = snd_hda_jack_detect(codec, 0x1d);
-		if (!spec->gen.indep_hp_enabled && present)
+		if (present)
 			mono_out = 0;
 		else
 			mono_out = 1;
@@ -1321,9 +1317,7 @@ static void set_widgets_power_state_vt1716S(struct hda_codec *codec)
 	parm = AC_PWRST_D3;
 	set_pin_power_state(codec, 0x1c, &parm);
 	set_pin_power_state(codec, 0x1d, &parm);
-	/* HP Independent Mode, power on AOW3 */
-	if (spec->gen.indep_hp_enabled)
-		update_power_state(codec, 0x25, parm);
+	update_power_state(codec, 0x25, parm);
 
 	/* force to D0 for internal Speaker */
 	/* MW0 (16h), AOW0 (10h) */
@@ -1410,6 +1404,7 @@ static void set_widgets_power_state_vt2002P(struct hda_codec *codec)
 	/* outputs */
 	/* AOW0 (8h)*/
 	update_power_state(codec, 0x8, parm);
+	update_power_state(codec, 0x9, parm);
 
 	if (spec->codec_type == VT1802) {
 		/* PW4 (28h), MW4 (18h), MUX4(38h) */
@@ -1439,9 +1434,6 @@ static void set_widgets_power_state_vt2002P(struct hda_codec *codec)
 		update_power_state(codec, 0x35, parm);
 	}
 
-	if (spec->gen.indep_hp_enabled)
-		update_power_state(codec, 0x9, AC_PWRST_D0);
-
 	/* Class-D */
 	/* PW0 (24h), MW0(18h/14h), MUX0(34h) */
 	present = snd_hda_jack_detect(codec, 0x25);
@@ -1577,7 +1569,6 @@ static const struct hda_verb vt1812_init_verbs[] = {
 
 static void set_widgets_power_state_vt1812(struct hda_codec *codec)
 {
-	struct via_spec *spec = codec->spec;
 	unsigned int parm;
 	unsigned int present;
 	/* inputs */
@@ -1596,6 +1587,7 @@ static void set_widgets_power_state_vt1812(struct hda_codec *codec)
 	/* outputs */
 	/* AOW0 (8h)*/
 	update_power_state(codec, 0x8, AC_PWRST_D0);
+	update_power_state(codec, 0x9, AC_PWRST_D0);
 
 	/* PW4 (28h), MW4 (18h), MUX4(38h) */
 	parm = AC_PWRST_D3;
@@ -1608,8 +1600,6 @@ static void set_widgets_power_state_vt1812(struct hda_codec *codec)
 	set_pin_power_state(codec, 0x25, &parm);
 	update_power_state(codec, 0x15, parm);
 	update_power_state(codec, 0x35, parm);
-	if (spec->gen.indep_hp_enabled)
-		update_power_state(codec, 0x9, AC_PWRST_D0);
 
 	/* Internal Speaker */
 	/* PW0 (24h), MW0(14h), MUX0(34h) */
@@ -1756,15 +1746,14 @@ static void set_widgets_power_state_vt3476(struct hda_codec *codec)
 	set_pin_power_state(codec, 0x28, &parm);
 	update_power_state(codec, 0x38, parm);
 	update_power_state(codec, 0x18, parm);
-	if (spec->gen.indep_hp_enabled)
-		update_conv_power_state(codec, 0xb, parm, 3);
+	update_conv_power_state(codec, 0xb, parm, 3);
 	parm2 = parm; /* for pin 0x0b */
 
 	/* PW0 (24h), MW0(34h), MW9(3fh), AOW0 (8h) */
 	parm = AC_PWRST_D3;
 	set_pin_power_state(codec, 0x24, &parm);
 	update_power_state(codec, 0x34, parm);
-	if (!spec->gen.indep_hp_enabled && parm2 != AC_PWRST_D3)
+	if (parm2 != AC_PWRST_D3)
 		parm = parm2;
 	update_conv_power_state(codec, 0x8, parm, 0);
 	/* MW9 (21h), Mw2 (1ah), AOW0 (8h) */
-- 
1.8.2.1


^ permalink raw reply related	[flat|nested] 34+ messages in thread

* Re: regression: from 3.8 to 3.9: headphones output no sound on Intel HDA, codec VIA VT1802
  2013-05-14  5:59       ` Takashi Iwai
  2013-05-14 10:58         ` Takashi Iwai
@ 2013-05-14 19:54         ` Alex Riesen
  1 sibling, 0 replies; 34+ messages in thread
From: Alex Riesen @ 2013-05-14 19:54 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel, Linux Kernel Mailing List

On Tue, May 14, 2013 at 7:59 AM, Takashi Iwai <tiwai@suse.de> wrote:
>> > Also, what happens if you apply the patch below?
>> > -       spec->set_widgets_power_state =  set_widgets_power_state_vt2002P;
>> > +       //spec->set_widgets_power_state =  set_widgets_power_state_vt2002P;
>>
>> This helps as well. Yay!
>> Thanks :) Whatever the outcome, I have them back more or less (more,
>> for me) properly.
>
> OK, then we know the place to fix now.
> Try the patch below instead.  Does it fix the problem as well?

Sadly, no. Now there is no headphone output at all. Not even to the
alternate PCM.

>> Probably unrelated, but I better mention it anyway: the "Auto-Mute Mode"
>> works strangely, it never mutes anything but headphones. It might work
>> as designed, but it is useless in this case: one still has to mute the
>> speaker manually when plugging headphones (or do something with input
>> events, which I failed to get to work).
>
> Does the problem still happen with the patch?
>

Well... Kind of no. As I said, there is no headphone output, BUT the laptop
built-in speakers ARE muted when the headphones plugged in.

>> And "Independent HP" has absolutely no effect, which is probably as it
>> should be on this laptop.
>
> With the independent HP turned on, there should be no output to the
> headphone through the normal PCM.  There is a secondary PCM device,
> and this is routed to the headphone when the independent HP is on.

Ah. I misunderstood (miscounted?) the playback PCMs: this card has three
(VT1802 Analog, VT1802 Alt Analog and ID 2806 Digital), the last one being
HDMI (just deconfigured, while I was trying to figure the headphones out).
The first two named appropriately (if one looks at them), and when tried
(hw:0,2. Strangely, there is no hw:0,1) it indeed works (with the revised
patch. Not with this one).

Regards,
Alex

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: regression: from 3.8 to 3.9: headphones output no sound on Intel HDA, codec VIA VT1802
  2013-05-14 10:58         ` Takashi Iwai
@ 2013-05-14 19:55           ` Alex Riesen
  2013-05-15  5:20             ` Takashi Iwai
  0 siblings, 1 reply; 34+ messages in thread
From: Alex Riesen @ 2013-05-14 19:55 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel, Linux Kernel Mailing List

On Tue, May 14, 2013 at 12:58 PM, Takashi Iwai <tiwai@suse.de> wrote:
>> OK, then we know the place to fix now.
>> Try the patch below instead.  Does it fix the problem as well?
>
> The below is the revised patch, fixing not only for VT1802 but other
> VIA codecs, too.  Please let me know if it works.

With this patch headphones work, but Auto-Mute is inverted, as it was before.

Regards,
Alex

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: regression: from 3.8 to 3.9: headphones output no sound on Intel HDA, codec VIA VT1802
  2013-05-14 19:55           ` Alex Riesen
@ 2013-05-15  5:20             ` Takashi Iwai
  2013-05-15 20:17               ` Alex Riesen
  0 siblings, 1 reply; 34+ messages in thread
From: Takashi Iwai @ 2013-05-15  5:20 UTC (permalink / raw)
  To: Alex Riesen; +Cc: alsa-devel, Linux Kernel Mailing List

At Tue, 14 May 2013 21:55:43 +0200,
Alex Riesen wrote:
> 
> On Tue, May 14, 2013 at 12:58 PM, Takashi Iwai <tiwai@suse.de> wrote:
> >> OK, then we know the place to fix now.
> >> Try the patch below instead.  Does it fix the problem as well?
> >
> > The below is the revised patch, fixing not only for VT1802 but other
> > VIA codecs, too.  Please let me know if it works.
> 
> With this patch headphones work, but Auto-Mute is inverted, as it was before.

OK, could you give again alsa-info.sh outputs at HP plugged and
unplugged?


thanks,

Takashi

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: regression: from 3.8 to 3.9: headphones output no sound on Intel HDA, codec VIA VT1802
  2013-05-15  5:20             ` Takashi Iwai
@ 2013-05-15 20:17               ` Alex Riesen
  2013-05-16 11:00                 ` Takashi Iwai
  0 siblings, 1 reply; 34+ messages in thread
From: Alex Riesen @ 2013-05-15 20:17 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel, Linux Kernel Mailing List

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

On Wed, May 15, 2013 at 7:20 AM, Takashi Iwai <tiwai@suse.de> wrote:
>> > The below is the revised patch, fixing not only for VT1802 but other
>> > VIA codecs, too.  Please let me know if it works.
>>
>> With this patch headphones work, but Auto-Mute is inverted, as it was before.
>
> OK, could you give again alsa-info.sh outputs at HP plugged and
> unplugged?

Attached.

Sadly, I must have made a mistake when testing last time (either that,
or it broke all by itself): the revised patch also does not work, same
as the previous: no output at all, even on the alternate PCM.

Regards,
Alex

[-- Attachment #2: 3.9.2-wo-headphone.alsa.gz --]
[-- Type: application/x-gzip, Size: 5814 bytes --]

[-- Attachment #3: 3.9.2-w-headphone.alsa.gz --]
[-- Type: application/x-gzip, Size: 5807 bytes --]

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: regression: from 3.8 to 3.9: headphones output no sound on Intel HDA, codec VIA VT1802
  2013-05-15 20:17               ` Alex Riesen
@ 2013-05-16 11:00                 ` Takashi Iwai
  2013-05-16 20:10                     ` Alex Riesen
  0 siblings, 1 reply; 34+ messages in thread
From: Takashi Iwai @ 2013-05-16 11:00 UTC (permalink / raw)
  To: Alex Riesen; +Cc: alsa-devel, Linux Kernel Mailing List

At Wed, 15 May 2013 22:17:23 +0200,
Alex Riesen wrote:
> 
> On Wed, May 15, 2013 at 7:20 AM, Takashi Iwai <tiwai@suse.de> wrote:
> >> > The below is the revised patch, fixing not only for VT1802 but other
> >> > VIA codecs, too.  Please let me know if it works.
> >>
> >> With this patch headphones work, but Auto-Mute is inverted, as it was before.
> >
> > OK, could you give again alsa-info.sh outputs at HP plugged and
> > unplugged?
> 
> Attached.
> 
> Sadly, I must have made a mistake when testing last time (either that,
> or it broke all by itself): the revised patch also does not work, same
> as the previous: no output at all, even on the alternate PCM.

Ah, then the attached files are basically useless, unfortunately.

So, we need to disable the widgets power control in patch_via.c
completely as a quick workaround.  Could you check whether the patch
below is OK (except for the possible headphone mute issue)?
 
Regarding the headphone mute: after confirming the headphone itself
is working with the patch, please give alsa-info.sh outputs again
with and without the headphone plug.

Then, at the headphone plugged (and the speaker is still audible
wrongly), take a look at /proc/asound/card0/codec#0 file.
Look for "Node 0x24", and check whether Pin-ctls item shows 0x00.
If 0x00, it means that the driver behaves correctly, but the
hardware reacts unexpectedly -- it produces the sound even though
the pin control is cleared.
OTOH, if it's 0x40, then the driver didn't do it right.

In the former case (0x00), try to run like:

   hda-verb /dev/snd/hwC0D0 0x24 SET_EAPD 0x01

Does it mute the speaker?  If not, make it back via

   hda-verb /dev/snd/hwC0D0 0x24 SET_EAPD 0x03

then turn to D3 via

   hda-verb /dev/snd/hwC0D0 0x24 SET_POWER 0x03

Does this mute?  In return, after unplug, it may still be muted.
In that case, try to power up the pin again via

   hda-verb /dev/snd/hwC0D0 0x24 SET_POWER 0x00


thanks,

Takashi

---
From: Takashi Iwai <tiwai@suse.de>
Subject: [PATCH] ALSA: hda - Disable broken PM setup for VIA codecs

The set_widgets_power_state_*() callbacks in patch_via.c are converted
to evaluate spec->gen.indep_hp_enabled when the codec parser was
switched to use the generic parser.  However, the generic parser takes
the headphone paths in a different way as the original VIA parser; it
tries the paths with individual DACs as much as possible.  This ended
up with the incorrect check of the power status in the HP paths,
resulting in the silent output from the headphones.

As a band-aid fix, temporarily disable the callback calls.

Reported-by: Alex Riesen <raa.lkml@gmail.com>
Cc: <stable@vger.kernel.org> [v3.9+]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
 sound/pci/hda/patch_via.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/sound/pci/hda/patch_via.c b/sound/pci/hda/patch_via.c
index e0dadcf..7ee44a2 100644
--- a/sound/pci/hda/patch_via.c
+++ b/sound/pci/hda/patch_via.c
@@ -231,9 +231,11 @@ static void vt1708_update_hp_work(struct hda_codec *codec)
 
 static void set_widgets_power_state(struct hda_codec *codec)
 {
+#if 0 /* FIXME: mismatching with the mapping by the generic parser */
 	struct via_spec *spec = codec->spec;
 	if (spec->set_widgets_power_state)
 		spec->set_widgets_power_state(codec);
+#endif
 }
 
 static void update_power_state(struct hda_codec *codec, hda_nid_t nid,
-- 
1.8.2.1


^ permalink raw reply related	[flat|nested] 34+ messages in thread

* Re: regression: from 3.8 to 3.9: headphones output no sound on Intel HDA, codec VIA VT1802
  2013-05-16 11:00                 ` Takashi Iwai
@ 2013-05-16 20:10                     ` Alex Riesen
  0 siblings, 0 replies; 34+ messages in thread
From: Alex Riesen @ 2013-05-16 20:10 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel, Linux Kernel Mailing List

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

On Thu, May 16, 2013 at 1:00 PM, Takashi Iwai <tiwai@suse.de> wrote:
> So, we need to disable the widgets power control in patch_via.c
> completely as a quick workaround.  Could you check whether the patch
> below is OK (except for the possible headphone mute issue)?

Well... It seems that something went unnoticed. This command seems
to be essential for this (and the revised) patch to get the headphone
output at all:

        hda-verb /dev/snd/hwC0D0 0x25 SET_PIN_WID 0xc0

I also used to run the other command after unplugging and re-plugging
(without it, the headphone is muted after re-plugging):

        hda-verb /dev/snd/hwC0D0 0x25 SET_EAPD 0x02

But running

        hda-verb /dev/snd/hwC0D0 0x24 SET_EAPD 0x03

also helps to restore the headphone output after re-plugging.

> Regarding the headphone mute: after confirming the headphone itself
> is working with the patch, please give alsa-info.sh outputs again
> with and without the headphone plug.

Attached.

> Then, at the headphone plugged (and the speaker is still audible
> wrongly), take a look at /proc/asound/card0/codec#0 file.
> Look for "Node 0x24", and check whether Pin-ctls item shows 0x00.

It does. And there is no output from the speakers.

> In the former case (0x00), try to run like:
>
>    hda-verb /dev/snd/hwC0D0 0x24 SET_EAPD 0x01
>
> Does it mute the speaker?  If not, make it back via

The speaker is muted with this patch, when I plug the headphone.

>    hda-verb /dev/snd/hwC0D0 0x24 SET_EAPD 0x03

And this command will turn it on, but only if I also activate
"Independent Headphone".

> then turn to D3 via
>
>    hda-verb /dev/snd/hwC0D0 0x24 SET_POWER 0x03
>
> Does this mute?  In return, after unplug, it may still be muted.

These command seem to have no effect at all.

Regards,
Alex

[-- Attachment #2: 3.9.2-wo-headphone.alsa.gz --]
[-- Type: application/x-gzip, Size: 5809 bytes --]

[-- Attachment #3: 3.9.2-w-headphone.alsa.gz --]
[-- Type: application/x-gzip, Size: 5803 bytes --]

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: regression: from 3.8 to 3.9: headphones output no sound on Intel HDA, codec VIA VT1802
@ 2013-05-16 20:10                     ` Alex Riesen
  0 siblings, 0 replies; 34+ messages in thread
From: Alex Riesen @ 2013-05-16 20:10 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel, Linux Kernel Mailing List

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

On Thu, May 16, 2013 at 1:00 PM, Takashi Iwai <tiwai@suse.de> wrote:
> So, we need to disable the widgets power control in patch_via.c
> completely as a quick workaround.  Could you check whether the patch
> below is OK (except for the possible headphone mute issue)?

Well... It seems that something went unnoticed. This command seems
to be essential for this (and the revised) patch to get the headphone
output at all:

        hda-verb /dev/snd/hwC0D0 0x25 SET_PIN_WID 0xc0

I also used to run the other command after unplugging and re-plugging
(without it, the headphone is muted after re-plugging):

        hda-verb /dev/snd/hwC0D0 0x25 SET_EAPD 0x02

But running

        hda-verb /dev/snd/hwC0D0 0x24 SET_EAPD 0x03

also helps to restore the headphone output after re-plugging.

> Regarding the headphone mute: after confirming the headphone itself
> is working with the patch, please give alsa-info.sh outputs again
> with and without the headphone plug.

Attached.

> Then, at the headphone plugged (and the speaker is still audible
> wrongly), take a look at /proc/asound/card0/codec#0 file.
> Look for "Node 0x24", and check whether Pin-ctls item shows 0x00.

It does. And there is no output from the speakers.

> In the former case (0x00), try to run like:
>
>    hda-verb /dev/snd/hwC0D0 0x24 SET_EAPD 0x01
>
> Does it mute the speaker?  If not, make it back via

The speaker is muted with this patch, when I plug the headphone.

>    hda-verb /dev/snd/hwC0D0 0x24 SET_EAPD 0x03

And this command will turn it on, but only if I also activate
"Independent Headphone".

> then turn to D3 via
>
>    hda-verb /dev/snd/hwC0D0 0x24 SET_POWER 0x03
>
> Does this mute?  In return, after unplug, it may still be muted.

These command seem to have no effect at all.

Regards,
Alex

[-- Attachment #2: 3.9.2-wo-headphone.alsa.gz --]
[-- Type: application/x-gzip, Size: 5809 bytes --]

[-- Attachment #3: 3.9.2-w-headphone.alsa.gz --]
[-- Type: application/x-gzip, Size: 5803 bytes --]

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



^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: regression: from 3.8 to 3.9: headphones output no sound on Intel HDA, codec VIA VT1802
  2013-05-16 20:10                     ` Alex Riesen
  (?)
@ 2013-05-17  6:04                     ` Takashi Iwai
  2013-05-18 20:29                         ` Alex Riesen
  -1 siblings, 1 reply; 34+ messages in thread
From: Takashi Iwai @ 2013-05-17  6:04 UTC (permalink / raw)
  To: Alex Riesen; +Cc: alsa-devel, Linux Kernel Mailing List

At Thu, 16 May 2013 22:10:47 +0200,
Alex Riesen wrote:
> 
> On Thu, May 16, 2013 at 1:00 PM, Takashi Iwai <tiwai@suse.de> wrote:
> > So, we need to disable the widgets power control in patch_via.c
> > completely as a quick workaround.  Could you check whether the patch
> > below is OK (except for the possible headphone mute issue)?
> 
> Well... It seems that something went unnoticed. This command seems
> to be essential for this (and the revised) patch to get the headphone
> output at all:
> 
>         hda-verb /dev/snd/hwC0D0 0x25 SET_PIN_WID 0xc0

Do you mean that the headphone doesn't work without this even after
the patch?  It's weird that the alsa-info.sh output you attached below
already contains it, i.e. 0x25 showing 0xc0.

Or, is the attached output the result after you ran hda-verb like the
above?

> I also used to run the other command after unplugging and re-plugging
> (without it, the headphone is muted after re-plugging):
> 
>         hda-verb /dev/snd/hwC0D0 0x25 SET_EAPD 0x02
> 
> But running
> 
>         hda-verb /dev/snd/hwC0D0 0x24 SET_EAPD 0x03
> 
> also helps to restore the headphone output after re-plugging.
> 
> > Regarding the headphone mute: after confirming the headphone itself
> > is working with the patch, please give alsa-info.sh outputs again
> > with and without the headphone plug.
> 
> Attached.
>
> > Then, at the headphone plugged (and the speaker is still audible
> > wrongly), take a look at /proc/asound/card0/codec#0 file.
> > Look for "Node 0x24", and check whether Pin-ctls item shows 0x00.
> 
> It does. And there is no output from the speakers.

Hmm.  I'm confused.  I thought you mentioned that the speaker is
unmuted?

- Use the patched kernel, play without headphone, confirm that the
  speaker works.  Get alsa-info.sh output at this point.

- Plug the headphone, play, and check whether the headphone works and
  the speaker is muted.
  Again, get alsa-info.sh output at this point, no matter whether the
  headphone works or not.

If something is wrong at this point, try hda-verb things.  Basically,
giving some verbs to 0x25 is to work on the headphone, and 0x24 for
the speaker.  You can check the previous value by the corresponding
GET_* verb.  For example, if you want to change the pin control of
0x25 to 0xc0, check the current value by

	hda-verb /dev/snd/hwC0D0 0x25 GET_PIN_WID 0

(the GET_* takes the last argument 0), then

	hda-verb /dev/snd/hwC0D0 0x25 SET_PIN_WID 0xc0

I'm asking it because, in the case above, if the previous value shows
0xc0 and the headphone doesn't work, and if setting the same value
again fixes the headphone output, it must be new behavior I've never
seen.

In anyway, if you make things working, please give exactly what you
did, and take again alsa-info.sh output, too.


thanks,

Takashi

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: regression: from 3.8 to 3.9: headphones output no sound on Intel HDA, codec VIA VT1802
  2013-05-17  6:04                     ` Takashi Iwai
@ 2013-05-18 20:29                         ` Alex Riesen
  0 siblings, 0 replies; 34+ messages in thread
From: Alex Riesen @ 2013-05-18 20:29 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel, Linux Kernel Mailing List

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

Sorry for delayed replies. I have not much time for this lately.

On Fri, May 17, 2013 at 8:04 AM, Takashi Iwai <tiwai@suse.de> wrote:
>> Well... It seems that something went unnoticed. This command seems
>> to be essential for this (and the revised) patch to get the headphone
>> output at all:
>>
>>         hda-verb /dev/snd/hwC0D0 0x25 SET_PIN_WID 0xc0
>
> Do you mean that the headphone doesn't work without this even after
> the patch?  It's weird that the alsa-info.sh output you attached below
> already contains it, i.e. 0x25 showing 0xc0.

Yes. It is after the latest patch.

> Or, is the attached output the result after you ran hda-verb like the
> above?

Er, yes.

>> It does. And there is no output from the speakers.
>
> Hmm.  I'm confused.  I thought you mentioned that the speaker is
> unmuted?

I think I am as confused as you, if not more. I redid the tests
but recorded everything this time with script(1). It is without
timing information (would be boring anyway, with me figuring
the arguments), so just cat it. Just in case: it sets xterm title.
The transcript is in headphone.gz.

> - Use the patched kernel, play without headphone, confirm that the
>   speaker works.  Get alsa-info.sh output at this point.

That's 3.9.2-wo-headphone.alsa.gz

> - Plug the headphone, play, and check whether the headphone works and
>   the speaker is muted.
>   Again, get alsa-info.sh output at this point, no matter whether the
>   headphone works or not.

That's 3.9.2-w-headphone.alsa.gz. Headphone not working, speakers
correctly muted.

> In anyway, if you make things working, please give exactly what you
> did, and take again alsa-info.sh output, too.

3.9.2-w-headphone-working.alsa.gz. The working state is lost after
unplugging and replugging the headphones. It is different to the
case when the alternate channel is used (Independent HP): replugging
does not break the output than.

Sorry for confusion and thanks!

Regards,
Alex

[-- Attachment #2: headphone.gz --]
[-- Type: application/x-gzip, Size: 1115 bytes --]

[-- Attachment #3: 3.9.2-wo-headphone.alsa.gz --]
[-- Type: application/x-gzip, Size: 5958 bytes --]

[-- Attachment #4: 3.9.2-w-headphone.alsa.gz --]
[-- Type: application/x-gzip, Size: 5949 bytes --]

[-- Attachment #5: 3.9.2-w-headphone-working.alsa.gz --]
[-- Type: application/x-gzip, Size: 5967 bytes --]

[-- Attachment #6: 3.9.2-headphone-replugs-w-altchannel.alsa.gz --]
[-- Type: application/x-gzip, Size: 5976 bytes --]

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: regression: from 3.8 to 3.9: headphones output no sound on Intel HDA, codec VIA VT1802
@ 2013-05-18 20:29                         ` Alex Riesen
  0 siblings, 0 replies; 34+ messages in thread
From: Alex Riesen @ 2013-05-18 20:29 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel, Linux Kernel Mailing List

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

Sorry for delayed replies. I have not much time for this lately.

On Fri, May 17, 2013 at 8:04 AM, Takashi Iwai <tiwai@suse.de> wrote:
>> Well... It seems that something went unnoticed. This command seems
>> to be essential for this (and the revised) patch to get the headphone
>> output at all:
>>
>>         hda-verb /dev/snd/hwC0D0 0x25 SET_PIN_WID 0xc0
>
> Do you mean that the headphone doesn't work without this even after
> the patch?  It's weird that the alsa-info.sh output you attached below
> already contains it, i.e. 0x25 showing 0xc0.

Yes. It is after the latest patch.

> Or, is the attached output the result after you ran hda-verb like the
> above?

Er, yes.

>> It does. And there is no output from the speakers.
>
> Hmm.  I'm confused.  I thought you mentioned that the speaker is
> unmuted?

I think I am as confused as you, if not more. I redid the tests
but recorded everything this time with script(1). It is without
timing information (would be boring anyway, with me figuring
the arguments), so just cat it. Just in case: it sets xterm title.
The transcript is in headphone.gz.

> - Use the patched kernel, play without headphone, confirm that the
>   speaker works.  Get alsa-info.sh output at this point.

That's 3.9.2-wo-headphone.alsa.gz

> - Plug the headphone, play, and check whether the headphone works and
>   the speaker is muted.
>   Again, get alsa-info.sh output at this point, no matter whether the
>   headphone works or not.

That's 3.9.2-w-headphone.alsa.gz. Headphone not working, speakers
correctly muted.

> In anyway, if you make things working, please give exactly what you
> did, and take again alsa-info.sh output, too.

3.9.2-w-headphone-working.alsa.gz. The working state is lost after
unplugging and replugging the headphones. It is different to the
case when the alternate channel is used (Independent HP): replugging
does not break the output than.

Sorry for confusion and thanks!

Regards,
Alex

[-- Attachment #2: headphone.gz --]
[-- Type: application/x-gzip, Size: 1115 bytes --]

[-- Attachment #3: 3.9.2-wo-headphone.alsa.gz --]
[-- Type: application/x-gzip, Size: 5958 bytes --]

[-- Attachment #4: 3.9.2-w-headphone.alsa.gz --]
[-- Type: application/x-gzip, Size: 5949 bytes --]

[-- Attachment #5: 3.9.2-w-headphone-working.alsa.gz --]
[-- Type: application/x-gzip, Size: 5967 bytes --]

[-- Attachment #6: 3.9.2-headphone-replugs-w-altchannel.alsa.gz --]
[-- Type: application/x-gzip, Size: 5976 bytes --]

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



^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: regression: from 3.8 to 3.9: headphones output no sound on Intel HDA, codec VIA VT1802
  2013-05-18 20:29                         ` Alex Riesen
  (?)
@ 2013-05-22 21:06                         ` Alex Riesen
  2013-05-23 16:34                           ` Takashi Iwai
  -1 siblings, 1 reply; 34+ messages in thread
From: Alex Riesen @ 2013-05-22 21:06 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel, Linux Kernel Mailing List

Ping? Can I do something for you?

Regards,
Alex

On Sat, May 18, 2013 at 10:29 PM, Alex Riesen <raa.lkml@gmail.com> wrote:
> Sorry for delayed replies. I have not much time for this lately.
>
> On Fri, May 17, 2013 at 8:04 AM, Takashi Iwai <tiwai@suse.de> wrote:
>>> Well... It seems that something went unnoticed. This command seems
>>> to be essential for this (and the revised) patch to get the headphone
>>> output at all:
>>>
>>>         hda-verb /dev/snd/hwC0D0 0x25 SET_PIN_WID 0xc0
>>
>> Do you mean that the headphone doesn't work without this even after
>> the patch?  It's weird that the alsa-info.sh output you attached below
>> already contains it, i.e. 0x25 showing 0xc0.
>
> Yes. It is after the latest patch.
>
>> Or, is the attached output the result after you ran hda-verb like the
>> above?
>
> Er, yes.
>
>>> It does. And there is no output from the speakers.
>>
>> Hmm.  I'm confused.  I thought you mentioned that the speaker is
>> unmuted?
>
> I think I am as confused as you, if not more. I redid the tests
> but recorded everything this time with script(1). It is without
> timing information (would be boring anyway, with me figuring
> the arguments), so just cat it. Just in case: it sets xterm title.
> The transcript is in headphone.gz.
>
>> - Use the patched kernel, play without headphone, confirm that the
>>   speaker works.  Get alsa-info.sh output at this point.
>
> That's 3.9.2-wo-headphone.alsa.gz
>
>> - Plug the headphone, play, and check whether the headphone works and
>>   the speaker is muted.
>>   Again, get alsa-info.sh output at this point, no matter whether the
>>   headphone works or not.
>
> That's 3.9.2-w-headphone.alsa.gz. Headphone not working, speakers
> correctly muted.
>
>> In anyway, if you make things working, please give exactly what you
>> did, and take again alsa-info.sh output, too.
>
> 3.9.2-w-headphone-working.alsa.gz. The working state is lost after
> unplugging and replugging the headphones. It is different to the
> case when the alternate channel is used (Independent HP): replugging
> does not break the output than.
>
> Sorry for confusion and thanks!
>
> Regards,
> Alex

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: regression: from 3.8 to 3.9: headphones output no sound on Intel HDA, codec VIA VT1802
  2013-05-22 21:06                         ` Alex Riesen
@ 2013-05-23 16:34                           ` Takashi Iwai
  2013-05-23 18:38                             ` Alex Riesen
  0 siblings, 1 reply; 34+ messages in thread
From: Takashi Iwai @ 2013-05-23 16:34 UTC (permalink / raw)
  To: Alex Riesen; +Cc: alsa-devel, Linux Kernel Mailing List

At Wed, 22 May 2013 23:06:53 +0200,
Alex Riesen wrote:
> 
> Ping? Can I do something for you?

Sorry, no time for now.  I'll take a look at this again tomorrow or in
the next week.


Takashi

> 
> Regards,
> Alex
> 
> On Sat, May 18, 2013 at 10:29 PM, Alex Riesen <raa.lkml@gmail.com> wrote:
> > Sorry for delayed replies. I have not much time for this lately.
> >
> > On Fri, May 17, 2013 at 8:04 AM, Takashi Iwai <tiwai@suse.de> wrote:
> >>> Well... It seems that something went unnoticed. This command seems
> >>> to be essential for this (and the revised) patch to get the headphone
> >>> output at all:
> >>>
> >>>         hda-verb /dev/snd/hwC0D0 0x25 SET_PIN_WID 0xc0
> >>
> >> Do you mean that the headphone doesn't work without this even after
> >> the patch?  It's weird that the alsa-info.sh output you attached below
> >> already contains it, i.e. 0x25 showing 0xc0.
> >
> > Yes. It is after the latest patch.
> >
> >> Or, is the attached output the result after you ran hda-verb like the
> >> above?
> >
> > Er, yes.
> >
> >>> It does. And there is no output from the speakers.
> >>
> >> Hmm.  I'm confused.  I thought you mentioned that the speaker is
> >> unmuted?
> >
> > I think I am as confused as you, if not more. I redid the tests
> > but recorded everything this time with script(1). It is without
> > timing information (would be boring anyway, with me figuring
> > the arguments), so just cat it. Just in case: it sets xterm title.
> > The transcript is in headphone.gz.
> >
> >> - Use the patched kernel, play without headphone, confirm that the
> >>   speaker works.  Get alsa-info.sh output at this point.
> >
> > That's 3.9.2-wo-headphone.alsa.gz
> >
> >> - Plug the headphone, play, and check whether the headphone works and
> >>   the speaker is muted.
> >>   Again, get alsa-info.sh output at this point, no matter whether the
> >>   headphone works or not.
> >
> > That's 3.9.2-w-headphone.alsa.gz. Headphone not working, speakers
> > correctly muted.
> >
> >> In anyway, if you make things working, please give exactly what you
> >> did, and take again alsa-info.sh output, too.
> >
> > 3.9.2-w-headphone-working.alsa.gz. The working state is lost after
> > unplugging and replugging the headphones. It is different to the
> > case when the alternate channel is used (Independent HP): replugging
> > does not break the output than.
> >
> > Sorry for confusion and thanks!
> >
> > Regards,
> > Alex
> 

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: regression: from 3.8 to 3.9: headphones output no sound on Intel HDA, codec VIA VT1802
  2013-05-23 16:34                           ` Takashi Iwai
@ 2013-05-23 18:38                             ` Alex Riesen
  0 siblings, 0 replies; 34+ messages in thread
From: Alex Riesen @ 2013-05-23 18:38 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel, Linux Kernel Mailing List

On Thu, May 23, 2013 at 6:34 PM, Takashi Iwai <tiwai@suse.de> wrote:
> At Wed, 22 May 2013 23:06:53 +0200,
> Alex Riesen wrote:
>>
>> Ping? Can I do something for you?
>
> Sorry, no time for now.  I'll take a look at this again tomorrow or in
> the next week.

Ah, ok. I can understand.

Regards,
Alex

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: regression: from 3.8 to 3.9: headphones output no sound on Intel HDA, codec VIA VT1802
  2013-05-18 20:29                         ` Alex Riesen
  (?)
  (?)
@ 2013-05-24 13:29                         ` Takashi Iwai
  2013-05-24 16:36                           ` Alex Riesen
  -1 siblings, 1 reply; 34+ messages in thread
From: Takashi Iwai @ 2013-05-24 13:29 UTC (permalink / raw)
  To: Alex Riesen; +Cc: alsa-devel, Linux Kernel Mailing List

At Sat, 18 May 2013 22:29:57 +0200,
Alex Riesen wrote:
> 
> Sorry for delayed replies. I have not much time for this lately.
> 
> On Fri, May 17, 2013 at 8:04 AM, Takashi Iwai <tiwai@suse.de> wrote:
> >> Well... It seems that something went unnoticed. This command seems
> >> to be essential for this (and the revised) patch to get the headphone
> >> output at all:
> >>
> >>         hda-verb /dev/snd/hwC0D0 0x25 SET_PIN_WID 0xc0
> >
> > Do you mean that the headphone doesn't work without this even after
> > the patch?  It's weird that the alsa-info.sh output you attached below
> > already contains it, i.e. 0x25 showing 0xc0.
> 
> Yes. It is after the latest patch.
> 
> > Or, is the attached output the result after you ran hda-verb like the
> > above?
> 
> Er, yes.
> 
> >> It does. And there is no output from the speakers.
> >
> > Hmm.  I'm confused.  I thought you mentioned that the speaker is
> > unmuted?
> 
> I think I am as confused as you, if not more. I redid the tests
> but recorded everything this time with script(1). It is without
> timing information (would be boring anyway, with me figuring
> the arguments), so just cat it. Just in case: it sets xterm title.
> The transcript is in headphone.gz.
> 
> > - Use the patched kernel, play without headphone, confirm that the
> >   speaker works.  Get alsa-info.sh output at this point.
> 
> That's 3.9.2-wo-headphone.alsa.gz
> 
> > - Plug the headphone, play, and check whether the headphone works and
> >   the speaker is muted.
> >   Again, get alsa-info.sh output at this point, no matter whether the
> >   headphone works or not.
> 
> That's 3.9.2-w-headphone.alsa.gz. Headphone not working, speakers
> correctly muted.
> 
> > In anyway, if you make things working, please give exactly what you
> > did, and take again alsa-info.sh output, too.
> 
> 3.9.2-w-headphone-working.alsa.gz. The working state is lost after
> unplugging and replugging the headphones. It is different to the
> case when the alternate channel is used (Independent HP): replugging
> does not break the output than.
> 
> Sorry for confusion and thanks!

Looking at the outputs above, it seems that turning on/off EAPD on VT
codecs triggers the automatic power up/down of the pin, which leads to
the unexpected result.

Could you try the patch below?


thanks,

Takashi

---
diff --git a/sound/pci/hda/hda_generic.c b/sound/pci/hda/hda_generic.c
index ae85bbd2..ce5446b 100644
--- a/sound/pci/hda/hda_generic.c
+++ b/sound/pci/hda/hda_generic.c
@@ -788,6 +788,8 @@ static void set_pin_eapd(struct hda_codec *codec, hda_nid_t pin, bool enable)
 		return;
 	if (codec->inv_eapd)
 		enable = !enable;
+	if (spec->keep_eapd_on && !enable)
+		return;
 	snd_hda_codec_update_cache(codec, pin, 0,
 				   AC_VERB_SET_EAPD_BTLENABLE,
 				   enable ? 0x02 : 0x00);
diff --git a/sound/pci/hda/hda_generic.h b/sound/pci/hda/hda_generic.h
index 54e6651..7620031 100644
--- a/sound/pci/hda/hda_generic.h
+++ b/sound/pci/hda/hda_generic.h
@@ -222,6 +222,7 @@ struct hda_gen_spec {
 	unsigned int multi_cap_vol:1; /* allow multiple capture xxx volumes */
 	unsigned int inv_dmic_split:1; /* inverted dmic w/a for conexant */
 	unsigned int own_eapd_ctl:1; /* set EAPD by own function */
+	unsigned int keep_eapd_on:1; /* don't turn off EAPD automatically */
 	unsigned int vmaster_mute_enum:1; /* add vmaster mute mode enum */
 	unsigned int indep_hp:1; /* independent HP supported */
 	unsigned int prefer_hp_amp:1; /* enable HP amp for speaker if any */
diff --git a/sound/pci/hda/patch_via.c b/sound/pci/hda/patch_via.c
index e0dadcf..33de744 100644
--- a/sound/pci/hda/patch_via.c
+++ b/sound/pci/hda/patch_via.c
@@ -136,6 +136,7 @@ static struct via_spec *via_new_spec(struct hda_codec *codec)
 		spec->codec_type = VT1708S;
 	spec->no_pin_power_ctl = 1;
 	spec->gen.indep_hp = 1;
+	spec->gen.keep_eapd_on = 1;
 	spec->gen.pcm_playback_hook = via_playback_pcm_hook;
 	return spec;
 }

^ permalink raw reply related	[flat|nested] 34+ messages in thread

* Re: regression: from 3.8 to 3.9: headphones output no sound on Intel HDA, codec VIA VT1802
  2013-05-24 13:29                         ` Takashi Iwai
@ 2013-05-24 16:36                           ` Alex Riesen
  2013-05-24 17:22                             ` Takashi Iwai
  0 siblings, 1 reply; 34+ messages in thread
From: Alex Riesen @ 2013-05-24 16:36 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel, Linux Kernel Mailing List

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

On Fri, May 24, 2013 at 3:29 PM, Takashi Iwai <tiwai@suse.de> wrote:
>> On Fri, May 17, 2013 at 8:04 AM, Takashi Iwai <tiwai@suse.de> wrote:
>> >> Well... It seems that something went unnoticed. This command seems
>> >> to be essential for this (and the revised) patch to get the headphone
>> >> output at all:
>> >>
>> >>         hda-verb /dev/snd/hwC0D0 0x25 SET_PIN_WID 0xc0
>> >
>
> Looking at the outputs above, it seems that turning on/off EAPD on VT
> codecs triggers the automatic power up/down of the pin, which leads to
> the unexpected result.

I may be wrong here, but why the patch touches EAPD handling, but not WID?

> Could you try the patch below?

I did, it does not work. Transcript and alsa-info before and after
hda-verb attached.

Regards,
Alex

[-- Attachment #2: 3.9.2-headphone-cleanboot-noaudio.alsa.gz --]
[-- Type: application/x-gzip, Size: 5975 bytes --]

[-- Attachment #3: 3.9.2-headphone-audio.alsa.gz --]
[-- Type: application/x-gzip, Size: 5976 bytes --]

[-- Attachment #4: headphone-transcript.gz --]
[-- Type: application/x-gzip, Size: 634 bytes --]

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: regression: from 3.8 to 3.9: headphones output no sound on Intel HDA, codec VIA VT1802
  2013-05-24 16:36                           ` Alex Riesen
@ 2013-05-24 17:22                             ` Takashi Iwai
  2013-05-24 21:32                               ` Alex Riesen
  0 siblings, 1 reply; 34+ messages in thread
From: Takashi Iwai @ 2013-05-24 17:22 UTC (permalink / raw)
  To: Alex Riesen; +Cc: alsa-devel, Linux Kernel Mailing List

At Fri, 24 May 2013 18:36:14 +0200,
Alex Riesen wrote:
> 
> On Fri, May 24, 2013 at 3:29 PM, Takashi Iwai <tiwai@suse.de> wrote:
> >> On Fri, May 17, 2013 at 8:04 AM, Takashi Iwai <tiwai@suse.de> wrote:
> >> >> Well... It seems that something went unnoticed. This command seems
> >> >> to be essential for this (and the revised) patch to get the headphone
> >> >> output at all:
> >> >>
> >> >>         hda-verb /dev/snd/hwC0D0 0x25 SET_PIN_WID 0xc0
> >> >
> >
> > Looking at the outputs above, it seems that turning on/off EAPD on VT
> > codecs triggers the automatic power up/down of the pin, which leads to
> > the unexpected result.
> 
> I may be wrong here, but why the patch touches EAPD handling, but not WID?

Well, I assumed that the EAPD off triggers the pin widget off by the
hardware, too.  But it seems wrong.  By some reason, the hardware
clears the pin automatically.  Hmm.

Could you try to trace the verbs while plugging the headphone?
Check whether you have /sys/kernel/debug/tracing directory.  If not,
make sure that you enabled the kernel tracing capability.

Then, just before plugging the headphone, run below:

  # echo 1 > /sys/kernel/debug/tracing/events/hda/enable

This will start the logging HD-audio verbs.  Then plug the headphone,
and get the trace via

  # cat /sys/kernel/debug/tracing/trace > trace.log

then disable tracing again

  # echo 0 > /sys/kernel/debug/tracing/events/hda/enable

And attach trace.log.  Then we can see whether the driver touches the
pin widget at all.

> > Could you try the patch below?
> 
> I did, it does not work. Transcript and alsa-info before and after
> hda-verb attached.

OK, I'll cook up the new patch later.


thanks,

Takashi

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: regression: from 3.8 to 3.9: headphones output no sound on Intel HDA, codec VIA VT1802
  2013-05-24 17:22                             ` Takashi Iwai
@ 2013-05-24 21:32                               ` Alex Riesen
  2013-05-29 15:42                                 ` Takashi Iwai
  0 siblings, 1 reply; 34+ messages in thread
From: Alex Riesen @ 2013-05-24 21:32 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel, Linux Kernel Mailing List

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

On Fri, May 24, 2013 at 7:22 PM, Takashi Iwai <tiwai@suse.de> wrote:
>
> Well, I assumed that the EAPD off triggers the pin widget off by the
> hardware, too.  But it seems wrong.  By some reason, the hardware
> clears the pin automatically.  Hmm.
>
> Could you try to trace the verbs while plugging the headphone?

Attached, it's ~70k, so compressed again.

>> I did, it does not work. Transcript and alsa-info before and after
>> hda-verb attached.
>
> OK, I'll cook up the new patch later.

I'm sorry to say that I will not be able to test it in the next
8 or so days: I'll be traveling and without this particular laptop
with me. I hope someone with similar model (Sytem76 Lemur lemu4, i7)
can provide some testing in the meantime. Otherwise, I'll test
it as soon as I get back.

[-- Attachment #2: trace.log.gz --]
[-- Type: application/x-gzip, Size: 4015 bytes --]

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: regression: from 3.8 to 3.9: headphones output no sound on Intel HDA, codec VIA VT1802
  2013-05-24 21:32                               ` Alex Riesen
@ 2013-05-29 15:42                                 ` Takashi Iwai
  2013-05-31 10:31                                   ` Alex Riesen
  0 siblings, 1 reply; 34+ messages in thread
From: Takashi Iwai @ 2013-05-29 15:42 UTC (permalink / raw)
  To: Alex Riesen; +Cc: alsa-devel, Linux Kernel Mailing List

At Fri, 24 May 2013 23:32:14 +0200,
Alex Riesen wrote:
> 
> On Fri, May 24, 2013 at 7:22 PM, Takashi Iwai <tiwai@suse.de> wrote:
> >
> > Well, I assumed that the EAPD off triggers the pin widget off by the
> > hardware, too.  But it seems wrong.  By some reason, the hardware
> > clears the pin automatically.  Hmm.
> >
> > Could you try to trace the verbs while plugging the headphone?
> 
> Attached, it's ~70k, so compressed again.

Thanks.

Looking at this, surprisingly there is a verb to set the pinctl to
0x00 indeed.  This didn't happen on the emulator I checked.  So we
need to figure out from where this came.

> >> I did, it does not work. Transcript and alsa-info before and after
> >> hda-verb attached.
> >
> > OK, I'll cook up the new patch later.
> 
> I'm sorry to say that I will not be able to test it in the next
> 8 or so days: I'll be traveling and without this particular laptop
> with me. I hope someone with similar model (Sytem76 Lemur lemu4, i7)
> can provide some testing in the meantime. Otherwise, I'll test
> it as soon as I get back.

Don't worry, the bug is more difficult than I thought :)
We can fix it quickly but it's no real fix.  Better to know the real
culprit.

When you back, could you try the following and give the outputs?

0. Build the kernel with the patch below.  Discard previous patches.
   Also, make sure that your kernel has CONFIG_SND_HDA_HWDEP=y and
   CONFIG_SND_HDA_RECONFIG=y.
   
1. Blacklist snd-hda-intel module in /etc/modprobe.d/* file,
   and reboot to runlevel 3.

2. Load snd-hda-intel manually with probe_only=1 option
   # modprobe snd-hda-intel probe_only=1

3. Run "alsa-info.sh --no-upload" at this moment, and save it.

4. Enable the tracing.
   # echo 1 > /sys/kernel/debug/tracing/events/hda/enable

5. Configure the codec via below (don't plug in HP yet):
   # echo 1 > /sys/class/sound/hwC0D0/reconfig

   Copy the tracing output to somewhere
   # cp /sys/kernel/debug/tracing/trace /tmp/init-trace

   then clear the trace buffer.
   # echo > /sys/kernel/debug/tracing/trace

6. Now you should have the normal sound operation.
   Try to play something, and confirm the speaker output is working.
   Get alsa-info.sh output at this state.

   Again copy the trace buffer and clear
   # cp /sys/kernel/debug/tracing/trace /tmp/speaker-trace
   # echo > /sys/kernel/debug/tracing/trace

7. Plug the headphone, and copy the trace.

   # cp /sys/kernel/debug/tracing/trace /tmp/headphone-trace
   # echo > /sys/kernel/debug/tracing/trace

   Check whether the playback doesn't work on the headphone at this
   moment.  Get alsa-info.sh output again.

8. Run some hda-verb to enable EAPD and pin-control, confirm the
   headphone is working now, and get alsa-info.sh output.


So, you'll get 4 alsa-info.sh outputs (step 3, 6, 7 and 8), and 4
trace logs (step 5, 6 and 7).


thanks,

Takashi

---
diff --git a/sound/pci/hda/hda_generic.c b/sound/pci/hda/hda_generic.c
index ae85bbd2..5ca6655 100644
--- a/sound/pci/hda/hda_generic.c
+++ b/sound/pci/hda/hda_generic.c
@@ -5092,7 +5092,7 @@ int snd_hda_gen_init(struct hda_codec *codec)
 
 	snd_hda_apply_verbs(codec);
 
-	codec->cached_write = 1;
+	// codec->cached_write = 1;
 
 	init_multi_out(codec);
 	init_extra_out(codec);
diff --git a/sound/pci/hda/patch_via.c b/sound/pci/hda/patch_via.c
index e0dadcf..8d861c3 100644
--- a/sound/pci/hda/patch_via.c
+++ b/sound/pci/hda/patch_via.c
@@ -231,9 +231,11 @@ static void vt1708_update_hp_work(struct hda_codec *codec)
 
 static void set_widgets_power_state(struct hda_codec *codec)
 {
+#if 0
 	struct via_spec *spec = codec->spec;
 	if (spec->set_widgets_power_state)
 		spec->set_widgets_power_state(codec);
+#endif
 }
 
 static void update_power_state(struct hda_codec *codec, hda_nid_t nid,

^ permalink raw reply related	[flat|nested] 34+ messages in thread

* Re: regression: from 3.8 to 3.9: headphones output no sound on Intel HDA, codec VIA VT1802
  2013-05-29 15:42                                 ` Takashi Iwai
@ 2013-05-31 10:31                                   ` Alex Riesen
  2013-05-31 13:05                                     ` Takashi Iwai
  0 siblings, 1 reply; 34+ messages in thread
From: Alex Riesen @ 2013-05-31 10:31 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel, Linux Kernel Mailing List

On Wed, May 29, 2013 at 5:42 PM, Takashi Iwai <tiwai@suse.de> wrote:
> At Fri, 24 May 2013 23:32:14 +0200, Alex Riesen wrote:
>> I'm sorry to say that I will not be able to test it in the next
>> 8 or so days: I'll be traveling and without this particular laptop
>> with me. I hope someone with similar model (Sytem76 Lemur lemu4, i7)
>> can provide some testing in the meantime. Otherwise, I'll test
>> it as soon as I get back.
>
> Don't worry, the bug is more difficult than I thought :)

I was afraid you will say that sooner or later :)

> When you back, could you try the following and give the outputs?
> ...
> So, you'll get 4 alsa-info.sh outputs (step 3, 6, 7 and 8), and 4
> trace logs (step 5, 6 and 7).

Done. That's a lot of data, so please download it from here:

  http://familie-riesen.de/~raa/public/test/no-cached-write-test.tar.bz2

The system boot is in linuxrc-safemode, and the test itself in test.sh.
The logs and transcript in report/.

Regards,
Alex

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: regression: from 3.8 to 3.9: headphones output no sound on Intel HDA, codec VIA VT1802
  2013-05-31 10:31                                   ` Alex Riesen
@ 2013-05-31 13:05                                     ` Takashi Iwai
  2013-05-31 15:32                                       ` Alex Riesen
  0 siblings, 1 reply; 34+ messages in thread
From: Takashi Iwai @ 2013-05-31 13:05 UTC (permalink / raw)
  To: Alex Riesen; +Cc: alsa-devel, Linux Kernel Mailing List

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

At Fri, 31 May 2013 12:31:19 +0200,
Alex Riesen wrote:
> 
> On Wed, May 29, 2013 at 5:42 PM, Takashi Iwai <tiwai@suse.de> wrote:
> > At Fri, 24 May 2013 23:32:14 +0200, Alex Riesen wrote:
> >> I'm sorry to say that I will not be able to test it in the next
> >> 8 or so days: I'll be traveling and without this particular laptop
> >> with me. I hope someone with similar model (Sytem76 Lemur lemu4, i7)
> >> can provide some testing in the meantime. Otherwise, I'll test
> >> it as soon as I get back.
> >
> > Don't worry, the bug is more difficult than I thought :)
> 
> I was afraid you will say that sooner or later :)

Better than too late, no? ;)

> > When you back, could you try the following and give the outputs?
> > ...
> > So, you'll get 4 alsa-info.sh outputs (step 3, 6, 7 and 8), and 4
> > trace logs (step 5, 6 and 7).
> 
> Done. That's a lot of data, so please download it from here:
> 
>   http://familie-riesen.de/~raa/public/test/no-cached-write-test.tar.bz2
> 
> The system boot is in linuxrc-safemode, and the test itself in test.sh.
> The logs and transcript in report/.

Thanks a lot.  Strangely, in these logs, I see no trace of setting the
pin 0x25 with control 0x00.  Also EAPD isn't changed.  So, I have to
conclude again that it's the hardware who resets these controls.

Below is a series of patches.  For simplicity, I just attach them, not
inlining to the mail.  They should be applicable cleanly to 3.9.4 as
well.  Let me know if this works.  If this still doesn't work, I need
to rewrite the patch to correct the pin-ctl / EAPD of the headphone
pin after changing the speaker pin.


Takashi


[-- Attachment #2: 0001-ALSA-hda-via-Disable-broken-dynamic-power-control.patch --]
[-- Type: application/octet-stream, Size: 1852 bytes --]

>From 8ea5cb2a2a2a5cb6ba07cf6df5cf42f98489897f Mon Sep 17 00:00:00 2001
From: Takashi Iwai <tiwai@suse.de>
Date: Fri, 31 May 2013 13:54:10 +0200
Subject: [PATCH 1/3] ALSA: hda/via - Disable broken dynamic power control

Since the transition to the generic parser, the actual routes used
there don't match always with the assumed static paths in some
set_widgets_power_state callbacks.  This results in the wrong power
setup in the end.  As a temporary workaround, we need to disable the
calls together with the non-functional dynamic power control enum.

Reported-by: Alex Riesen <raa.lkml@gmail.com>
Cc: <stable@vger.kernel.org> [v3.9]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
 sound/pci/hda/patch_via.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/sound/pci/hda/patch_via.c b/sound/pci/hda/patch_via.c
index e0dadcf..2f16605 100644
--- a/sound/pci/hda/patch_via.c
+++ b/sound/pci/hda/patch_via.c
@@ -231,9 +231,14 @@ static void vt1708_update_hp_work(struct hda_codec *codec)
 
 static void set_widgets_power_state(struct hda_codec *codec)
 {
+#if 0 /* FIXME: the assumed connections don't match always with the
+       * actual routes by the generic parser, so better to disable
+       * the control for safety.
+       */
 	struct via_spec *spec = codec->spec;
 	if (spec->set_widgets_power_state)
 		spec->set_widgets_power_state(codec);
+#endif
 }
 
 static void update_power_state(struct hda_codec *codec, hda_nid_t nid,
@@ -435,8 +440,10 @@ static int via_build_controls(struct hda_codec *codec)
 	if (err < 0)
 		return err;
 
+#if 0	/* FIXME: no dynamic power control, see set_widgets_power_state() */
 	if (spec->set_widgets_power_state)
 		spec->mixers[spec->num_mixers++] = via_pin_power_ctl_enum;
+#endif
 
 	for (i = 0; i < spec->num_mixers; i++) {
 		err = snd_hda_add_new_ctls(codec, spec->mixers[i]);
-- 
1.8.3


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



[-- Attachment #4: 0002-ALSA-hda-Allow-setting-automute-automic-hooks-after-.patch --]
[-- Type: application/octet-stream, Size: 3413 bytes --]

>From 5c7a129c62145fb21ee353b325506117a5696d27 Mon Sep 17 00:00:00 2001
From: Takashi Iwai <tiwai@suse.de>
Date: Fri, 31 May 2013 14:10:03 +0200
Subject: [PATCH 2/3] ALSA: hda - Allow setting automute/automic hooks after
 parsing

Some codec drivers (VIA codecs and some Realtek fixups) set the
automute and automic hooks after calling
snd_hda_gen_parse_auto_config().  In the current code, the hook
pointers are referred only in snd_hda_gen_parse_auto_config() and
passed to snd_hda_jack_detect_enable_callback(), thus changing the
hook values won't change the actually called callbacks properly.

This patch fixes this bug by setting the static functions as the
primary callback functions for the jack detection, and let them
calling the appropriate hooks dynamically.

Cc: <stable@vger.kernel.org> [v3.9]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
 sound/pci/hda/hda_generic.c | 42 +++++++++++++++++++++++++++++++++---------
 1 file changed, 33 insertions(+), 9 deletions(-)

diff --git a/sound/pci/hda/hda_generic.c b/sound/pci/hda/hda_generic.c
index ae85bbd2..fbc10b6 100644
--- a/sound/pci/hda/hda_generic.c
+++ b/sound/pci/hda/hda_generic.c
@@ -3875,6 +3875,36 @@ static void update_automute_all(struct hda_codec *codec)
 		snd_hda_gen_mic_autoswitch(codec, NULL);
 }
 
+/* call appropriate hooks */
+static void call_hp_automute(struct hda_codec *codec, struct hda_jack_tbl *jack)
+{
+	struct hda_gen_spec *spec = codec->spec;
+	if (spec->hp_automute_hook)
+		spec->hp_automute_hook(codec, jack);
+	else
+		snd_hda_gen_hp_automute(codec, jack);
+}
+
+static void call_line_automute(struct hda_codec *codec,
+			       struct hda_jack_tbl *jack)
+{
+	struct hda_gen_spec *spec = codec->spec;
+	if (spec->line_automute_hook)
+		spec->line_automute_hook(codec, jack);
+	else
+		snd_hda_gen_line_automute(codec, jack);
+}
+
+static void call_mic_autoswitch(struct hda_codec *codec,
+				struct hda_jack_tbl *jack)
+{
+	struct hda_gen_spec *spec = codec->spec;
+	if (spec->mic_autoswitch_hook)
+		spec->mic_autoswitch_hook(codec, jack);
+	else
+		snd_hda_gen_mic_autoswitch(codec, jack);
+}
+
 /*
  * Auto-Mute mode mixer enum support
  */
@@ -4009,9 +4039,7 @@ static int check_auto_mute_availability(struct hda_codec *codec)
 		snd_printdd("hda-codec: Enable HP auto-muting on NID 0x%x\n",
 			    nid);
 		snd_hda_jack_detect_enable_callback(codec, nid, HDA_GEN_HP_EVENT,
-						    spec->hp_automute_hook ?
-						    spec->hp_automute_hook :
-						    snd_hda_gen_hp_automute);
+						    call_hp_automute);
 		spec->detect_hp = 1;
 	}
 
@@ -4024,9 +4052,7 @@ static int check_auto_mute_availability(struct hda_codec *codec)
 				snd_printdd("hda-codec: Enable Line-Out auto-muting on NID 0x%x\n", nid);
 				snd_hda_jack_detect_enable_callback(codec, nid,
 								    HDA_GEN_FRONT_EVENT,
-								    spec->line_automute_hook ?
-								    spec->line_automute_hook :
-								    snd_hda_gen_line_automute);
+								    call_line_automute);
 				spec->detect_lo = 1;
 			}
 		spec->automute_lo_possible = spec->detect_hp;
@@ -4068,9 +4094,7 @@ static bool auto_mic_check_imux(struct hda_codec *codec)
 		snd_hda_jack_detect_enable_callback(codec,
 						    spec->am_entry[i].pin,
 						    HDA_GEN_MIC_EVENT,
-						    spec->mic_autoswitch_hook ?
-						    spec->mic_autoswitch_hook :
-						    snd_hda_gen_mic_autoswitch);
+						    call_mic_autoswitch);
 	return true;
 }
 
-- 
1.8.3


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



[-- Attachment #6: 0003-ALSA-hda-Add-volatile_pin_ctl-flag-to-generic-parser.patch --]
[-- Type: application/octet-stream, Size: 3681 bytes --]

>From 83aca44cf2ef21b4dd57e92d667331e323f08a31 Mon Sep 17 00:00:00 2001
From: Takashi Iwai <tiwai@suse.de>
Date: Fri, 31 May 2013 14:24:26 +0200
Subject: [PATCH 3/3] ALSA: hda - Add volatile_pin_ctl flag to generic parser

It turned out that some VIA codecs handle the pin control value and
EAPD dynamically in the hardware level even if you change the values
explicitly in the driver.  The driver assumes that the values are
static until the driver changes the value itself, and this
inconsistency resulted in unexpected surprises like the missing
headphone outputs.

This patch adds a flag to hda_gen_spec indicating that the codec may
reset pins dynamically, so that the init and the automute functions
will write the pin control and EAPD at each time even if it's same as
the cached value.

Reported-by: Alex Riesen <raa.lkml@gmail.com>
Cc: <stable@vger.kernel.org> [v3.9]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
 sound/pci/hda/hda_generic.c | 20 +++++++++++++++-----
 sound/pci/hda/hda_generic.h |  1 +
 sound/pci/hda/patch_via.c   |  1 +
 3 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/sound/pci/hda/hda_generic.c b/sound/pci/hda/hda_generic.c
index fbc10b6..29c9d00 100644
--- a/sound/pci/hda/hda_generic.c
+++ b/sound/pci/hda/hda_generic.c
@@ -175,13 +175,24 @@ static void parse_user_hints(struct hda_codec *codec)
 		spec->mixer_nid = val;
 }
 
+/* write the cached verb; if volatile_pin_ctl is set, don't trust caches */
+static void update_pin_verb(struct hda_codec *codec, hda_nid_t nid,
+			    int verb, int val)
+{
+	struct hda_gen_spec *spec = codec->spec;
+
+	if (spec->volatile_pin_ctl)
+		snd_hda_codec_write_cache(codec, nid, 0, verb, val);
+	else
+		snd_hda_codec_update_cache(codec, nid, 0, verb, val);
+}
+
 /*
  * pin control value accesses
  */
 
 #define update_pin_ctl(codec, pin, val) \
-	snd_hda_codec_update_cache(codec, pin, 0, \
-				   AC_VERB_SET_PIN_WIDGET_CONTROL, val)
+	update_pin_verb(codec, pin, AC_VERB_SET_PIN_WIDGET_CONTROL, val)
 
 /* restore the pinctl based on the cached value */
 static inline void restore_pin_ctl(struct hda_codec *codec, hda_nid_t pin)
@@ -788,9 +799,8 @@ static void set_pin_eapd(struct hda_codec *codec, hda_nid_t pin, bool enable)
 		return;
 	if (codec->inv_eapd)
 		enable = !enable;
-	snd_hda_codec_update_cache(codec, pin, 0,
-				   AC_VERB_SET_EAPD_BTLENABLE,
-				   enable ? 0x02 : 0x00);
+	update_pin_verb(codec, pin, AC_VERB_SET_EAPD_BTLENABLE,
+			enable ? 0x02 : 0x00);
 }
 
 /* re-initialize the path specified by the given path index */
diff --git a/sound/pci/hda/hda_generic.h b/sound/pci/hda/hda_generic.h
index 54e6651..2d70a7d0 100644
--- a/sound/pci/hda/hda_generic.h
+++ b/sound/pci/hda/hda_generic.h
@@ -222,6 +222,7 @@ struct hda_gen_spec {
 	unsigned int multi_cap_vol:1; /* allow multiple capture xxx volumes */
 	unsigned int inv_dmic_split:1; /* inverted dmic w/a for conexant */
 	unsigned int own_eapd_ctl:1; /* set EAPD by own function */
+	unsigned int volatile_pin_ctl:1; /* pin contrl&EAPDs are volatile */
 	unsigned int vmaster_mute_enum:1; /* add vmaster mute mode enum */
 	unsigned int indep_hp:1; /* independent HP supported */
 	unsigned int prefer_hp_amp:1; /* enable HP amp for speaker if any */
diff --git a/sound/pci/hda/patch_via.c b/sound/pci/hda/patch_via.c
index 2f16605..4bbd4f3 100644
--- a/sound/pci/hda/patch_via.c
+++ b/sound/pci/hda/patch_via.c
@@ -136,6 +136,7 @@ static struct via_spec *via_new_spec(struct hda_codec *codec)
 		spec->codec_type = VT1708S;
 	spec->no_pin_power_ctl = 1;
 	spec->gen.indep_hp = 1;
+	spec->gen.volatile_pin_ctl = 1;
 	spec->gen.pcm_playback_hook = via_playback_pcm_hook;
 	return spec;
 }
-- 
1.8.3


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



^ permalink raw reply related	[flat|nested] 34+ messages in thread

* Re: regression: from 3.8 to 3.9: headphones output no sound on Intel HDA, codec VIA VT1802
  2013-05-31 13:05                                     ` Takashi Iwai
@ 2013-05-31 15:32                                       ` Alex Riesen
  2013-05-31 18:00                                         ` Takashi Iwai
  0 siblings, 1 reply; 34+ messages in thread
From: Alex Riesen @ 2013-05-31 15:32 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel, Linux Kernel Mailing List

On Fri, May 31, 2013 at 3:05 PM, Takashi Iwai <tiwai@suse.de> wrote:
> Below is a series of patches.  For simplicity, I just attach them, not
> inlining to the mail.  They should be applicable cleanly to 3.9.4 as
> well.  Let me know if this works.  If this still doesn't work, I need
> to rewrite the patch to correct the pin-ctl / EAPD of the headphone
> pin after changing the speaker pin.

Still does not work. The results are for 3.9.4 + patches:

  http://familie-riesen.de/~raa/public/test/dpc-automute-vol-pinctl.tar.bz2

I tried patched 3.9.2, with the same result.

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: regression: from 3.8 to 3.9: headphones output no sound on Intel HDA, codec VIA VT1802
  2013-05-31 15:32                                       ` Alex Riesen
@ 2013-05-31 18:00                                         ` Takashi Iwai
  2013-05-31 19:36                                           ` Alex Riesen
  0 siblings, 1 reply; 34+ messages in thread
From: Takashi Iwai @ 2013-05-31 18:00 UTC (permalink / raw)
  To: Alex Riesen; +Cc: alsa-devel, Linux Kernel Mailing List

At Fri, 31 May 2013 17:32:16 +0200,
Alex Riesen wrote:
> 
> On Fri, May 31, 2013 at 3:05 PM, Takashi Iwai <tiwai@suse.de> wrote:
> > Below is a series of patches.  For simplicity, I just attach them, not
> > inlining to the mail.  They should be applicable cleanly to 3.9.4 as
> > well.  Let me know if this works.  If this still doesn't work, I need
> > to rewrite the patch to correct the pin-ctl / EAPD of the headphone
> > pin after changing the speaker pin.
> 
> Still does not work. The results are for 3.9.4 + patches:
> 
>   http://familie-riesen.de/~raa/public/test/dpc-automute-vol-pinctl.tar.bz2
> 
> I tried patched 3.9.2, with the same result.

Grrr, EAPD on 0x25 seems reset by EAPD on 0x24 being turned off.
We need to apply the patch of the last week again in the end.
The revised one is below.  Please apply it on the top of the previous
three patches.


thanks,

Takashi

---
From: Takashi Iwai <tiwai@suse.de>
Subject: [PATCH] ALSA: hda - Add keep_eapd_on flag to generic parser

VT1802 codec seems to reset EAPD of other pins in the hardware level,
and this was another reason of the silent headphone output on some
machines.  As a workaround, introduce a new flag indicating to keep
the EPAD on to the generic parser, and set it in patch_via.c.

Reported-by: Alex Riesen <raa.lkml@gmail.com>
Cc: <stable@vger.kernel.org> [v3.9]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
 sound/pci/hda/hda_generic.c | 2 ++
 sound/pci/hda/hda_generic.h | 1 +
 sound/pci/hda/patch_via.c   | 1 +
 3 files changed, 4 insertions(+)

diff --git a/sound/pci/hda/hda_generic.c b/sound/pci/hda/hda_generic.c
index 396fcce..59fe077 100644
--- a/sound/pci/hda/hda_generic.c
+++ b/sound/pci/hda/hda_generic.c
@@ -799,6 +799,8 @@ static void set_pin_eapd(struct hda_codec *codec, hda_nid_t pin, bool enable)
 		return;
 	if (codec->inv_eapd)
 		enable = !enable;
+	if (spec->keep_eapd_on && !enable)
+		return;
 	update_pin_verb(codec, pin, AC_VERB_SET_EAPD_BTLENABLE,
 			enable ? 0x02 : 0x00);
 }
diff --git a/sound/pci/hda/hda_generic.h b/sound/pci/hda/hda_generic.h
index 2d70a7d0..57f5ca4 100644
--- a/sound/pci/hda/hda_generic.h
+++ b/sound/pci/hda/hda_generic.h
@@ -223,6 +223,7 @@ struct hda_gen_spec {
 	unsigned int inv_dmic_split:1; /* inverted dmic w/a for conexant */
 	unsigned int own_eapd_ctl:1; /* set EAPD by own function */
 	unsigned int volatile_pin_ctl:1; /* pin contrl&EAPDs are volatile */
+	unsigned int keep_eapd_on:1; /* don't turn off EAPD automatically */
 	unsigned int vmaster_mute_enum:1; /* add vmaster mute mode enum */
 	unsigned int indep_hp:1; /* independent HP supported */
 	unsigned int prefer_hp_amp:1; /* enable HP amp for speaker if any */
diff --git a/sound/pci/hda/patch_via.c b/sound/pci/hda/patch_via.c
index 4bbd4f3..924dad6 100644
--- a/sound/pci/hda/patch_via.c
+++ b/sound/pci/hda/patch_via.c
@@ -137,6 +137,7 @@ static struct via_spec *via_new_spec(struct hda_codec *codec)
 	spec->no_pin_power_ctl = 1;
 	spec->gen.indep_hp = 1;
 	spec->gen.volatile_pin_ctl = 1;
+	spec->gen.keep_eapd_on = 1;
 	spec->gen.pcm_playback_hook = via_playback_pcm_hook;
 	return spec;
 }
-- 
1.8.3


^ permalink raw reply related	[flat|nested] 34+ messages in thread

* Re: regression: from 3.8 to 3.9: headphones output no sound on Intel HDA, codec VIA VT1802
  2013-05-31 18:00                                         ` Takashi Iwai
@ 2013-05-31 19:36                                           ` Alex Riesen
  2013-06-03 10:05                                             ` Takashi Iwai
  0 siblings, 1 reply; 34+ messages in thread
From: Alex Riesen @ 2013-05-31 19:36 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel, Linux Kernel Mailing List

On Fri, May 31, 2013 at 8:00 PM, Takashi Iwai <tiwai@suse.de> wrote:
> At Fri, 31 May 2013 17:32:16 +0200, Alex Riesen wrote:
>> On Fri, May 31, 2013 at 3:05 PM, Takashi Iwai <tiwai@suse.de> wrote:
>> > Below is a series of patches.  For simplicity, I just attach them, not
>> > inlining to the mail.  They should be applicable cleanly to 3.9.4 as
>> > well.  Let me know if this works.  If this still doesn't work, I need
>> > to rewrite the patch to correct the pin-ctl / EAPD of the headphone
>> > pin after changing the speaker pin.
>>
>> Still does not work. The results are for 3.9.4 + patches:
>>
>>   http://familie-riesen.de/~raa/public/test/dpc-automute-vol-pinctl.tar.bz2
>>
>
> Grrr, EAPD on 0x25 seems reset by EAPD on 0x24 being turned off.
> We need to apply the patch of the last week again in the end.
> The revised one is below.  Please apply it on the top of the previous
> three patches.

Nope. Logs:

  http://familie-riesen.de/~raa/public/test/keep_eapd_on.tar.bz2

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: regression: from 3.8 to 3.9: headphones output no sound on Intel HDA, codec VIA VT1802
  2013-05-31 19:36                                           ` Alex Riesen
@ 2013-06-03 10:05                                             ` Takashi Iwai
  2013-06-03 18:49                                               ` Alex Riesen
  0 siblings, 1 reply; 34+ messages in thread
From: Takashi Iwai @ 2013-06-03 10:05 UTC (permalink / raw)
  To: Alex Riesen; +Cc: alsa-devel, Linux Kernel Mailing List

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

At Fri, 31 May 2013 21:36:45 +0200,
Alex Riesen wrote:
> 
> On Fri, May 31, 2013 at 8:00 PM, Takashi Iwai <tiwai@suse.de> wrote:
> > At Fri, 31 May 2013 17:32:16 +0200, Alex Riesen wrote:
> >> On Fri, May 31, 2013 at 3:05 PM, Takashi Iwai <tiwai@suse.de> wrote:
> >> > Below is a series of patches.  For simplicity, I just attach them, not
> >> > inlining to the mail.  They should be applicable cleanly to 3.9.4 as
> >> > well.  Let me know if this works.  If this still doesn't work, I need
> >> > to rewrite the patch to correct the pin-ctl / EAPD of the headphone
> >> > pin after changing the speaker pin.
> >>
> >> Still does not work. The results are for 3.9.4 + patches:
> >>
> >>   http://familie-riesen.de/~raa/public/test/dpc-automute-vol-pinctl.tar.bz2
> >>
> >
> > Grrr, EAPD on 0x25 seems reset by EAPD on 0x24 being turned off.
> > We need to apply the patch of the last week again in the end.
> > The revised one is below.  Please apply it on the top of the previous
> > three patches.
> 
> Nope. Logs:
> 
>   http://familie-riesen.de/~raa/public/test/keep_eapd_on.tar.bz2

Thanks.  I think I found the culprit of the problem with the pin ctl
value now.  This happens only when the power save is used or
suspended, and it happens only on VT1802.  That's why I couldn't
reproduce the issue with the emulator, and it wasn't reported from
users of other VIA codecs.

In anyway, the patch series below are the fixes.  Scratch the whole
previous patches and apply them on clean 3.9 (or 3.10-rc) tree.
Hopefully we sorted out all issues now.


thanks,

Takashi


[-- Attachment #2: 0001-ALSA-hda-via-Disable-broken-dynamic-power-control.patch --]
[-- Type: application/octet-stream, Size: 1459 bytes --]

>From 087c2e3b4e062573dbbc8a50b9208992e3768dcf Mon Sep 17 00:00:00 2001
From: Takashi Iwai <tiwai@suse.de>
Date: Fri, 31 May 2013 13:54:10 +0200
Subject: [PATCH 1/4] ALSA: hda/via - Disable broken dynamic power control

Since the transition to the generic parser, the actual routes used
there don't match always with the assumed static paths in some
set_widgets_power_state callbacks.  This results in the wrong power
setup in the end.  As a temporary workaround, we need to disable the
calls together with the non-functional dynamic power control enum.

Reported-by: Alex Riesen <raa.lkml@gmail.com>
Cc: <stable@vger.kernel.org> [v3.9]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
 sound/pci/hda/patch_via.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/sound/pci/hda/patch_via.c b/sound/pci/hda/patch_via.c
index e0dadcf..75fdb51 100644
--- a/sound/pci/hda/patch_via.c
+++ b/sound/pci/hda/patch_via.c
@@ -231,9 +231,14 @@ static void vt1708_update_hp_work(struct hda_codec *codec)
 
 static void set_widgets_power_state(struct hda_codec *codec)
 {
+#if 0 /* FIXME: the assumed connections don't match always with the
+       * actual routes by the generic parser, so better to disable
+       * the control for safety.
+       */
 	struct via_spec *spec = codec->spec;
 	if (spec->set_widgets_power_state)
 		spec->set_widgets_power_state(codec);
+#endif
 }
 
 static void update_power_state(struct hda_codec *codec, hda_nid_t nid,
-- 
1.8.3


[-- Attachment #3: 0002-ALSA-hda-Allow-setting-automute-automic-hooks-after-.patch --]
[-- Type: application/octet-stream, Size: 3413 bytes --]

>From 77afe0e94884ae40de29cd813a1fb7ddee583591 Mon Sep 17 00:00:00 2001
From: Takashi Iwai <tiwai@suse.de>
Date: Fri, 31 May 2013 14:10:03 +0200
Subject: [PATCH 2/4] ALSA: hda - Allow setting automute/automic hooks after
 parsing

Some codec drivers (VIA codecs and some Realtek fixups) set the
automute and automic hooks after calling
snd_hda_gen_parse_auto_config().  In the current code, the hook
pointers are referred only in snd_hda_gen_parse_auto_config() and
passed to snd_hda_jack_detect_enable_callback(), thus changing the
hook values won't change the actually called callbacks properly.

This patch fixes this bug by setting the static functions as the
primary callback functions for the jack detection, and let them
calling the appropriate hooks dynamically.

Cc: <stable@vger.kernel.org> [v3.9]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
 sound/pci/hda/hda_generic.c | 42 +++++++++++++++++++++++++++++++++---------
 1 file changed, 33 insertions(+), 9 deletions(-)

diff --git a/sound/pci/hda/hda_generic.c b/sound/pci/hda/hda_generic.c
index ae85bbd2..fbc10b6 100644
--- a/sound/pci/hda/hda_generic.c
+++ b/sound/pci/hda/hda_generic.c
@@ -3875,6 +3875,36 @@ static void update_automute_all(struct hda_codec *codec)
 		snd_hda_gen_mic_autoswitch(codec, NULL);
 }
 
+/* call appropriate hooks */
+static void call_hp_automute(struct hda_codec *codec, struct hda_jack_tbl *jack)
+{
+	struct hda_gen_spec *spec = codec->spec;
+	if (spec->hp_automute_hook)
+		spec->hp_automute_hook(codec, jack);
+	else
+		snd_hda_gen_hp_automute(codec, jack);
+}
+
+static void call_line_automute(struct hda_codec *codec,
+			       struct hda_jack_tbl *jack)
+{
+	struct hda_gen_spec *spec = codec->spec;
+	if (spec->line_automute_hook)
+		spec->line_automute_hook(codec, jack);
+	else
+		snd_hda_gen_line_automute(codec, jack);
+}
+
+static void call_mic_autoswitch(struct hda_codec *codec,
+				struct hda_jack_tbl *jack)
+{
+	struct hda_gen_spec *spec = codec->spec;
+	if (spec->mic_autoswitch_hook)
+		spec->mic_autoswitch_hook(codec, jack);
+	else
+		snd_hda_gen_mic_autoswitch(codec, jack);
+}
+
 /*
  * Auto-Mute mode mixer enum support
  */
@@ -4009,9 +4039,7 @@ static int check_auto_mute_availability(struct hda_codec *codec)
 		snd_printdd("hda-codec: Enable HP auto-muting on NID 0x%x\n",
 			    nid);
 		snd_hda_jack_detect_enable_callback(codec, nid, HDA_GEN_HP_EVENT,
-						    spec->hp_automute_hook ?
-						    spec->hp_automute_hook :
-						    snd_hda_gen_hp_automute);
+						    call_hp_automute);
 		spec->detect_hp = 1;
 	}
 
@@ -4024,9 +4052,7 @@ static int check_auto_mute_availability(struct hda_codec *codec)
 				snd_printdd("hda-codec: Enable Line-Out auto-muting on NID 0x%x\n", nid);
 				snd_hda_jack_detect_enable_callback(codec, nid,
 								    HDA_GEN_FRONT_EVENT,
-								    spec->line_automute_hook ?
-								    spec->line_automute_hook :
-								    snd_hda_gen_line_automute);
+								    call_line_automute);
 				spec->detect_lo = 1;
 			}
 		spec->automute_lo_possible = spec->detect_hp;
@@ -4068,9 +4094,7 @@ static bool auto_mic_check_imux(struct hda_codec *codec)
 		snd_hda_jack_detect_enable_callback(codec,
 						    spec->am_entry[i].pin,
 						    HDA_GEN_MIC_EVENT,
-						    spec->mic_autoswitch_hook ?
-						    spec->mic_autoswitch_hook :
-						    snd_hda_gen_mic_autoswitch);
+						    call_mic_autoswitch);
 	return true;
 }
 
-- 
1.8.3


[-- Attachment #4: 0003-ALSA-hda-Add-keep_eapd_on-flag-to-generic-parser.patch --]
[-- Type: application/octet-stream, Size: 2368 bytes --]

>From 05909d5c679cf7c9a8a5bc663677c066a546894f Mon Sep 17 00:00:00 2001
From: Takashi Iwai <tiwai@suse.de>
Date: Fri, 31 May 2013 19:55:54 +0200
Subject: [PATCH 3/4] ALSA: hda - Add keep_eapd_on flag to generic parser

VT1802 codec seems to reset EAPD of other pins in the hardware level,
and this was another reason of the silent headphone output on some
machines.  As a workaround, introduce a new flag indicating to keep
the EPAD on to the generic parser, and set it in patch_via.c.

Reported-by: Alex Riesen <raa.lkml@gmail.com>
Cc: <stable@vger.kernel.org> [v3.9]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
 sound/pci/hda/hda_generic.c | 2 ++
 sound/pci/hda/hda_generic.h | 1 +
 sound/pci/hda/patch_via.c   | 1 +
 3 files changed, 4 insertions(+)

diff --git a/sound/pci/hda/hda_generic.c b/sound/pci/hda/hda_generic.c
index fbc10b6..cfdb917 100644
--- a/sound/pci/hda/hda_generic.c
+++ b/sound/pci/hda/hda_generic.c
@@ -788,6 +788,8 @@ static void set_pin_eapd(struct hda_codec *codec, hda_nid_t pin, bool enable)
 		return;
 	if (codec->inv_eapd)
 		enable = !enable;
+	if (spec->keep_eapd_on && !enable)
+		return;
 	snd_hda_codec_update_cache(codec, pin, 0,
 				   AC_VERB_SET_EAPD_BTLENABLE,
 				   enable ? 0x02 : 0x00);
diff --git a/sound/pci/hda/hda_generic.h b/sound/pci/hda/hda_generic.h
index 54e6651..7620031 100644
--- a/sound/pci/hda/hda_generic.h
+++ b/sound/pci/hda/hda_generic.h
@@ -222,6 +222,7 @@ struct hda_gen_spec {
 	unsigned int multi_cap_vol:1; /* allow multiple capture xxx volumes */
 	unsigned int inv_dmic_split:1; /* inverted dmic w/a for conexant */
 	unsigned int own_eapd_ctl:1; /* set EAPD by own function */
+	unsigned int keep_eapd_on:1; /* don't turn off EAPD automatically */
 	unsigned int vmaster_mute_enum:1; /* add vmaster mute mode enum */
 	unsigned int indep_hp:1; /* independent HP supported */
 	unsigned int prefer_hp_amp:1; /* enable HP amp for speaker if any */
diff --git a/sound/pci/hda/patch_via.c b/sound/pci/hda/patch_via.c
index 75fdb51..a6c3856 100644
--- a/sound/pci/hda/patch_via.c
+++ b/sound/pci/hda/patch_via.c
@@ -136,6 +136,7 @@ static struct via_spec *via_new_spec(struct hda_codec *codec)
 		spec->codec_type = VT1708S;
 	spec->no_pin_power_ctl = 1;
 	spec->gen.indep_hp = 1;
+	spec->gen.keep_eapd_on = 1;
 	spec->gen.pcm_playback_hook = via_playback_pcm_hook;
 	return spec;
 }
-- 
1.8.3


[-- Attachment #5: 0004-ALSA-hda-via-Fix-wrongly-cleared-pins-after-suspend-.patch --]
[-- Type: application/octet-stream, Size: 1472 bytes --]

>From 5a6f294e87974e6ec68d7113553ffd975d83bf15 Mon Sep 17 00:00:00 2001
From: Takashi Iwai <tiwai@suse.de>
Date: Mon, 3 Jun 2013 11:17:38 +0200
Subject: [PATCH 4/4] ALSA: hda/via - Fix wrongly cleared pins after suspend on
 VT1802

VIA driver has a special suspend handling only for VT1802 to reduce
the pop noise.  During the transition to the generic parser, the
behavior of snd_hda_set_pin_ctl() was also changed to modify the
cached values, too.  And this caused a regression where the pin is
still cleared even after the resume (including the resume from power
save), resulting in the silent output.

The fix is simply to replace snd_hda_set_pin_ctl() with the explicit
call of snd_hda_codec_write() again.

Reported-by: Alex Riesen <raa.lkml@gmail.com>
Cc: <stable@vger.kernel.org> [v3.9]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
 sound/pci/hda/patch_via.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/sound/pci/hda/patch_via.c b/sound/pci/hda/patch_via.c
index a6c3856..e524554 100644
--- a/sound/pci/hda/patch_via.c
+++ b/sound/pci/hda/patch_via.c
@@ -484,7 +484,9 @@ static int via_suspend(struct hda_codec *codec)
 		/* Fix pop noise on headphones */
 		int i;
 		for (i = 0; i < spec->gen.autocfg.hp_outs; i++)
-			snd_hda_set_pin_ctl(codec, spec->gen.autocfg.hp_pins[i], 0);
+			snd_hda_codec_write(codec, spec->gen.autocfg.hp_pins[i],
+					    0, AC_VERB_SET_PIN_WIDGET_CONTROL,
+					    0x00);
 	}
 
 	return 0;
-- 
1.8.3


^ permalink raw reply related	[flat|nested] 34+ messages in thread

* Re: regression: from 3.8 to 3.9: headphones output no sound on Intel HDA, codec VIA VT1802
  2013-06-03 10:05                                             ` Takashi Iwai
@ 2013-06-03 18:49                                               ` Alex Riesen
  2013-06-04  9:48                                                 ` Takashi Iwai
  0 siblings, 1 reply; 34+ messages in thread
From: Alex Riesen @ 2013-06-03 18:49 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel, Linux Kernel Mailing List

On Mon, Jun 3, 2013 at 12:05 PM, Takashi Iwai <tiwai@suse.de> wrote:
> Thanks.  I think I found the culprit of the problem with the pin ctl
> value now.  This happens only when the power save is used or
> suspended, and it happens only on VT1802.  That's why I couldn't
> reproduce the issue with the emulator, and it wasn't reported from
> users of other VIA codecs.
>
> In anyway, the patch series below are the fixes.  Scratch the whole
> previous patches and apply them on clean 3.9 (or 3.10-rc) tree.
> Hopefully we sorted out all issues now.

Bingo, it works! In case you want to review the test, logs:

  http://familie-riesen.de/~raa/public/test/via-fix-cleared-pins.tar.bz2

I'm going to run this kernel from now on. I shall report if I see
something else.

Thanks!
Alex

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: regression: from 3.8 to 3.9: headphones output no sound on Intel HDA, codec VIA VT1802
  2013-06-03 18:49                                               ` Alex Riesen
@ 2013-06-04  9:48                                                 ` Takashi Iwai
  0 siblings, 0 replies; 34+ messages in thread
From: Takashi Iwai @ 2013-06-04  9:48 UTC (permalink / raw)
  To: Alex Riesen; +Cc: alsa-devel, Linux Kernel Mailing List

At Mon, 3 Jun 2013 20:49:45 +0200,
Alex Riesen wrote:
> 
> On Mon, Jun 3, 2013 at 12:05 PM, Takashi Iwai <tiwai@suse.de> wrote:
> > Thanks.  I think I found the culprit of the problem with the pin ctl
> > value now.  This happens only when the power save is used or
> > suspended, and it happens only on VT1802.  That's why I couldn't
> > reproduce the issue with the emulator, and it wasn't reported from
> > users of other VIA codecs.
> >
> > In anyway, the patch series below are the fixes.  Scratch the whole
> > previous patches and apply them on clean 3.9 (or 3.10-rc) tree.
> > Hopefully we sorted out all issues now.
> 
> Bingo, it works! In case you want to review the test, logs:
> 
>   http://familie-riesen.de/~raa/public/test/via-fix-cleared-pins.tar.bz2
> 
> I'm going to run this kernel from now on. I shall report if I see
> something else.

OK, I'll queue these fixes now.  Thanks for your patient testing!


Takashi

^ permalink raw reply	[flat|nested] 34+ messages in thread

end of thread, other threads:[~2013-06-04  9:48 UTC | newest]

Thread overview: 34+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-05-12  9:53 regression: from 3.8 to 3.9: headphones output no sound on Intel HDA, codec VIA VT1802 Alex Riesen
2013-05-12  9:58 ` Fwd: " Alex Riesen
2013-05-13 15:26 ` Takashi Iwai
2013-05-13 15:53   ` Takashi Iwai
2013-05-13 18:24     ` Alex Riesen
2013-05-13 18:24       ` Alex Riesen
2013-05-14  5:59       ` Takashi Iwai
2013-05-14 10:58         ` Takashi Iwai
2013-05-14 19:55           ` Alex Riesen
2013-05-15  5:20             ` Takashi Iwai
2013-05-15 20:17               ` Alex Riesen
2013-05-16 11:00                 ` Takashi Iwai
2013-05-16 20:10                   ` Alex Riesen
2013-05-16 20:10                     ` Alex Riesen
2013-05-17  6:04                     ` Takashi Iwai
2013-05-18 20:29                       ` Alex Riesen
2013-05-18 20:29                         ` Alex Riesen
2013-05-22 21:06                         ` Alex Riesen
2013-05-23 16:34                           ` Takashi Iwai
2013-05-23 18:38                             ` Alex Riesen
2013-05-24 13:29                         ` Takashi Iwai
2013-05-24 16:36                           ` Alex Riesen
2013-05-24 17:22                             ` Takashi Iwai
2013-05-24 21:32                               ` Alex Riesen
2013-05-29 15:42                                 ` Takashi Iwai
2013-05-31 10:31                                   ` Alex Riesen
2013-05-31 13:05                                     ` Takashi Iwai
2013-05-31 15:32                                       ` Alex Riesen
2013-05-31 18:00                                         ` Takashi Iwai
2013-05-31 19:36                                           ` Alex Riesen
2013-06-03 10:05                                             ` Takashi Iwai
2013-06-03 18:49                                               ` Alex Riesen
2013-06-04  9:48                                                 ` Takashi Iwai
2013-05-14 19:54         ` Alex Riesen

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.