linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/6] sound/pci/hda: CX20549 cleanup/fixes
@ 2012-04-05 13:29 Michael Karcher
  2012-04-05 14:27 ` Takashi Iwai
  0 siblings, 1 reply; 15+ messages in thread
From: Michael Karcher @ 2012-04-05 13:29 UTC (permalink / raw)
  To: Jaroslav Kysela, Takashi Iwai, alsa-devel, linux-kernel

This series of patches fixes recording on a Gigabyte W551N laptop that
seems to be identical to the BenW R55E. The Audio Codec uses the same
subsystem ID, which is assigned to Quanta. The Gigabyte laptop is based
on the Quanta TW3 ODM.

(for the whole series)
Signed-Off-By: Michael Karcher <kernel@mkarcher.dialup.fu-berlin.de>



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

* Re: [PATCH 0/6] sound/pci/hda: CX20549 cleanup/fixes
  2012-04-05 13:29 [PATCH 0/6] sound/pci/hda: CX20549 cleanup/fixes Michael Karcher
@ 2012-04-05 14:27 ` Takashi Iwai
  2012-04-05 14:28   ` Takashi Iwai
  0 siblings, 1 reply; 15+ messages in thread
From: Takashi Iwai @ 2012-04-05 14:27 UTC (permalink / raw)
  To: Michael Karcher; +Cc: Jaroslav Kysela, alsa-devel, linux-kernel

At Thu, 05 Apr 2012 15:29:37 +0200,
Michael Karcher wrote:
> 
> This series of patches fixes recording on a Gigabyte W551N laptop that
> seems to be identical to the BenW R55E. The Audio Codec uses the same
> subsystem ID, which is assigned to Quanta. The Gigabyte laptop is based
> on the Quanta TW3 ODM.

Thanks for the patch.
I'll review and give comments back for each.

> (for the whole series)
> Signed-Off-By: Michael Karcher <kernel@mkarcher.dialup.fu-berlin.de>

Please give your sign-off in each patch changelog, so that I can apply
the patches directly via git-am.

Also, the subject lines should be with ALSA: prefix.  Take a look at
other git commits to that file as an example.


Takashi

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

* Re: [PATCH 0/6] sound/pci/hda: CX20549 cleanup/fixes
  2012-04-05 14:27 ` Takashi Iwai
@ 2012-04-05 14:28   ` Takashi Iwai
  2012-04-06 13:01     ` Michael Karcher
  2012-04-06 13:34     ` [PATCH 0/6] ALSA: hda - " Michael Karcher
  0 siblings, 2 replies; 15+ messages in thread
From: Takashi Iwai @ 2012-04-05 14:28 UTC (permalink / raw)
  To: Michael Karcher; +Cc: Jaroslav Kysela, alsa-devel, linux-kernel

At Thu, 05 Apr 2012 16:27:01 +0200,
Takashi Iwai wrote:
> 
> At Thu, 05 Apr 2012 15:29:37 +0200,
> Michael Karcher wrote:
> > 
> > This series of patches fixes recording on a Gigabyte W551N laptop that
> > seems to be identical to the BenW R55E. The Audio Codec uses the same
> > subsystem ID, which is assigned to Quanta. The Gigabyte laptop is based
> > on the Quanta TW3 ODM.
> 
> Thanks for the patch.
> I'll review and give comments back for each.
> 
> > (for the whole series)
> > Signed-Off-By: Michael Karcher <kernel@mkarcher.dialup.fu-berlin.de>
> 
> Please give your sign-off in each patch changelog, so that I can apply
> the patches directly via git-am.
> 
> Also, the subject lines should be with ALSA: prefix.  Take a look at
> other git commits to that file as an example.

BTW, did you try model=auto option to enable the auto-parser?
If it doesn't work well for you, let me know.

In anyway, give alsa-info.sh output (run with --no-upload option) for
better checks.


thanks,

Takashi

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

* Re: [PATCH 0/6] sound/pci/hda: CX20549 cleanup/fixes
  2012-04-05 14:28   ` Takashi Iwai
@ 2012-04-06 13:01     ` Michael Karcher
  2012-04-07 10:34       ` Takashi Iwai
  2012-04-06 13:34     ` [PATCH 0/6] ALSA: hda - " Michael Karcher
  1 sibling, 1 reply; 15+ messages in thread
From: Michael Karcher @ 2012-04-06 13:01 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: Jaroslav Kysela, alsa-devel, linux-kernel

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

On Thu, 2012-04-05 at 16:28 +0200, Takashi Iwai wrote:
> BTW, did you try model=auto option to enable the auto-parser?
> If it doesn't work well for you, let me know.

I tried the model=auto option, too. It works mostly, but the mixer node
seems to not be utilized correctly/at all. The capture source list does
not contain "mixer" anymore, and there are no playback controls for
Internal Mic/Mic/Line. The Capture setup seems to be built correctly
(except for the missing mixer). The auto setup adds two extra input
devices for jack sense.

> In anyway, give alsa-info.sh output (run with --no-upload option) for
> better checks.

alsa-info for the revised patch-set (mailed soon) with and without
model=auto is attached. Information I consider irrelevant (non-sound
modules and dmesg context not relating to sound) has been edited out.

BTW: I seem to have encountered an ALSA user-space bug: The codec
provides a "master capture switch", i.e. the "mute" of the adc in amp.
It also provides a "capture source selection enum", i.e. the "Connection
Select" of the adc widget. The enum provides mutually exclusive capture
sources that have no volume control, whilst the master capture switch is
coupled with the capture volume control, and should not be related to
the source enumeration. But if I play around with capture sources in
alsamixer, the "Capture Switch" is turned off as soon as I switch the
source from the first item in the Mux list to something else.

This happens with both the patched hard-coded "BenQ" configuration and
the auto configuration.

Regards,
  Michael Karcher


[-- Attachment #2: Type: text/plain, Size: 16521 bytes --]

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

!!Script ran on: Fri Apr  6 12:31:13 UTC 2012


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

Debian GNU/Linux wheezy/sid \n \l


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

Manufacturer:      GIGABYTE
Product Name:      W551
Product Version:   Not Applicable


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

Kernel release:    3.3.0-trunk-amd64
Operating System:  GNU/Linux
Architecture:      x86_64
Processor:         unknown
SMP Enabled:       Yes


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

Driver version:     1.0.24
Library version:    1.0.25
Utilities version:  1.0.25


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

snd_hda_intel


!!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 [Intel          ]: HDA-Intel - HDA Intel
                      HDA Intel at 0xde300000 irq 46


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

00:1b.0 Audio device: Intel Corporation N10/ICH 7 Family High Definition Audio Controller (rev 02)


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

00:1b.0 0403: 8086:27d8 (rev 02)
	Subsystem: 152d:0753


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

!!Module: snd_hda_intel
	align_buffer_size : Y
	bdl_pos_adj : 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
	beep_mode : 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
	enable : Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y
	enable_msi : -1
	id : (null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null)
	index : -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
	model : auto,(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null)
	patch : (null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null)
	position_fix : 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
	power_save : 0
	power_save_controller : Y
	probe_mask : -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
	probe_only : 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
	single_cmd : N
	snoop : Y


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

Codec: Conexant CX20549 (Venice)
Address: 0
AFG Function Id: 0x1 (unsol 0)
MFG Function Id: 0x2 (unsol 1)
Vendor Id: 0x14f15045
Subsystem Id: 0x152d0753
Revision Id: 0x100100
Modem Function Group: 0x2
Default PCM:
    rates [0x140]: 48000 96000
    bits [0xe]: 16 20 24
    formats [0x1]: PCM
Default Amp-In caps: N/A
Default Amp-Out caps: N/A
GPIO: io=0, o=0, i=0, unsolicited=0, wake=0
Node 0x10 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out
  Control: name="Master Playback Volume", index=0, device=0
    ControlAmp: chs=3, dir=Out, idx=0, ofs=0
  Control: name="Master Playback Switch", index=0, device=0
    ControlAmp: chs=3, dir=Out, idx=0, ofs=0
  Amp-Out caps: ofs=0x2b, nsteps=0x2b, stepsize=0x05, mute=1
  Amp-Out vals:  [0x80 0x80]
  Pincap 0x00010014: OUT EAPD Detect
  EAPD 0x2: EAPD
  Pin Default 0x951701f0: [Fixed] Speaker at Int Top
    Conn = Analog, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x40: OUT
  Unsolicited: tag=00, enabled=0
  Power states:  D0 D1 D2 D3
  Power: setting=D0, actual=D0
  Connection: 2
     0x19* 0x17
Node 0x11 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out
  Control: name="Line Jack", index=0, device=0
  Amp-Out caps: ofs=0x2b, nsteps=0x2b, stepsize=0x05, mute=1
  Amp-Out vals:  [0x26 0x26]
  Pincap 0x0000113c: IN OUT HP Detect
    Vref caps: HIZ 80
  Pin Default 0x02813011: [Jack] Line In at Ext Front
    Conn = 1/8, Color = Blue
    DefAssociation = 0x1, Sequence = 0x1
  Pin-ctls: 0x20: IN VREF_HIZ
  Unsolicited: tag=02, enabled=1
  Power states:  D0 D1 D2 D3
  Power: setting=D0, actual=D0
  Connection: 2
     0x19 0x17*
Node 0x12 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out
  Control: name="Mic Jack", index=0, device=0
  Amp-Out caps: ofs=0x2b, nsteps=0x2b, stepsize=0x05, mute=1
  Amp-Out vals:  [0xab 0xab]
  Pincap 0x0000113c: IN OUT HP Detect
    Vref caps: HIZ 80
  Pin Default 0x02a19010: [Jack] Mic at Ext Front
    Conn = 1/8, Color = Pink
    DefAssociation = 0x1, Sequence = 0x0
  Pin-ctls: 0x24: IN VREF_80
  Unsolicited: tag=01, enabled=1
  Power states:  D0 D1 D2 D3
  Power: setting=D0, actual=D0
  Connection: 2
     0x19* 0x17
Node 0x13 [Pin Complex] wcaps 0x400301: Stereo Digital
  Pincap 0x00000010: OUT
  Pin Default 0x22454130: [Jack] SPDIF Out at Sep Front
    Conn = Optical, Color = Green
    DefAssociation = 0x3, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x40: OUT
  Connection: 1
     0x18
Node 0x14 [Pin Complex] wcaps 0x400081: Stereo
  Pincap 0x00001124: IN Detect
    Vref caps: HIZ 80
  Pin Default 0x95a7011e: [Fixed] Mic at Int Top
    Conn = Analog, Color = Unknown
    DefAssociation = 0x1, Sequence = 0xe
    Misc = NO_PRESENCE
  Pin-ctls: 0x24: IN VREF_80
  Unsolicited: tag=00, enabled=0
Node 0x15 [Pin Complex] wcaps 0x400001: Stereo
  Pincap 0x00000020: IN
  Pin Default 0x400001f0: [N/A] Line Out at Ext N/A
    Conn = Unknown, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x00:
Node 0x16 [Beep Generator Widget] wcaps 0x70000c: Mono Amp-Out
  Control: name="Beep Playback Volume", index=0, device=0
    ControlAmp: chs=1, dir=Out, idx=0, ofs=0
  Control: name="Beep Playback Switch", index=0, device=0
    ControlAmp: chs=1, dir=Out, idx=0, ofs=0
  Amp-Out caps: ofs=0x07, nsteps=0x07, stepsize=0x0b, mute=1
  Amp-Out vals:  [0x06]
Node 0x17 [Audio Mixer] wcaps 0x20050b: Stereo Amp-In
  Amp-In caps: ofs=0x14, nsteps=0x2b, stepsize=0x05, mute=1
  Amp-In vals:  [0x94 0x94] [0x94 0x94] [0x94 0x94] [0x94 0x94] [0x94 0x94]
  Power states:  D0 D1 D2 D3
  Power: setting=D0, actual=D0
  Connection: 5
     0x19 0x14 0x12 0x11 0x15
Node 0x18 [Audio Output] wcaps 0x211: Stereo 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
  Control: name="IEC958 Default PCM Playback Switch", index=0, device=0
  Device: name="Conexant Digital", type="SPDIF", device=1
  Converter: stream=0, channel=0
  Digital:
  Digital category: 0x0
  PCM:
    rates [0x40]: 48000
    bits [0x6]: 16 20
    formats [0x5]: PCM AC3
Node 0x19 [Audio Output] wcaps 0xc11: Stereo R/L
  Device: name="CONEXANT Analog", type="Audio", device=0
  Converter: stream=0, channel=0
  PCM:
    rates [0x540]: 48000 96000 192000
    bits [0xe]: 16 20 24
    formats [0x1]: PCM
  Power states:  D0 D1 D2 D3
  Power: setting=D0, actual=D0
Node 0x1a [Audio Input] wcaps 0x100d0b: Stereo Amp-In R/L
  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="CONEXANT Analog", type="Audio", device=0
  Amp-In caps: ofs=0x00, nsteps=0x17, stepsize=0x05, mute=1
  Amp-In vals:  [0x80 0x80]
  Converter: stream=0, channel=0
  SDI-Select: 0
  Power states:  D0 D1 D2 D3
  Power: setting=D0, actual=D0
  Connection: 5
     0x17 0x14 0x12* 0x11 0x15
Node 0x1b [Vendor Defined Widget] wcaps 0xf00000: Mono
--endcollapse--


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

crw-rw---T  1 root audio 116,  6 Apr  6 14:30 /dev/snd/controlC0
crw-rw---T  1 root audio 116,  5 Apr  6 14:30 /dev/snd/hwC0D0
crw-rw---T  1 root audio 116,  4 Apr  6 14:30 /dev/snd/pcmC0D0c
crw-rw---T  1 root audio 116,  3 Apr  6 14:30 /dev/snd/pcmC0D0p
crw-rw---T  1 root audio 116,  2 Apr  6 14:30 /dev/snd/pcmC0D1p
crw-rw---T+ 1 root audio 116,  1 Apr  5 10:25 /dev/snd/seq
crw-rw---T+ 1 root audio 116, 33 Apr  5 10:25 /dev/snd/timer

/dev/snd/by-path:
total 0
drwxr-xr-x 2 root root  60 Apr  6 14:30 .
drwxr-xr-x 3 root root 200 Apr  6 14:30 ..
lrwxrwxrwx 1 root root  12 Apr  6 14:30 pci-0000:00:1b.0 -> ../controlC0


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

APLAY

**** List of PLAYBACK Hardware Devices ****
card 0: Intel [HDA Intel], device 0: CONEXANT Analog [CONEXANT Analog]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 1: Conexant Digital [Conexant Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

ARECORD

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

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

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

Card hw:0 'Intel'/'HDA Intel at 0xde300000 irq 46'
  Mixer name	: 'Conexant CX20549 (Venice)'
  Components	: 'HDA:14f15045,152d0753,00100100'
  Controls      : 15
  Simple ctrls  : 9
Simple mixer control 'Master',0
  Capabilities: pvolume pswitch penum
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 43
  Mono:
  Front Left: Playback 15 [35%] [-42.00dB] [on]
  Front Right: Playback 15 [35%] [-42.00dB] [on]
Simple mixer control 'PCM',0
  Capabilities: pvolume penum
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 255
  Mono:
  Front Left: Playback 255 [100%] [0.00dB]
  Front Right: Playback 255 [100%] [0.00dB]
Simple mixer control 'Line',0
  Capabilities: cswitch cswitch-joined cswitch-exclusive penum
  Capture exclusive group: 0
  Capture channels: Mono
  Mono: Capture [off]
Simple mixer control 'Mic',0
  Capabilities: cswitch cswitch-joined cswitch-exclusive penum
  Capture exclusive group: 0
  Capture channels: Mono
  Mono: Capture [on]
Simple mixer control 'IEC958',0
  Capabilities: pswitch pswitch-joined penum
  Playback channels: Mono
  Mono: Playback [on]
Simple mixer control 'IEC958 Default PCM',0
  Capabilities: pswitch pswitch-joined penum
  Playback channels: Mono
  Mono: Playback [on]
Simple mixer control 'Beep',0
  Capabilities: pvolume pvolume-joined pswitch pswitch-joined penum
  Playback channels: Mono
  Limits: Playback 0 - 7
  Mono: Playback 6 [86%] [-3.00dB] [on]
Simple mixer control 'Capture',0
  Capabilities: cvolume cswitch penum
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 23
  Front Left: Capture 23 [100%] [34.50dB] [off]
  Front Right: Capture 23 [100%] [34.50dB] [off]
Simple mixer control 'Internal Mic',0
  Capabilities: cswitch cswitch-joined cswitch-exclusive penum
  Capture exclusive group: 0
  Capture channels: Mono
  Mono: Capture [off]


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

--startcollapse--
state.Intel {
	control.1 {
		iface MIXER
		name 'Master Playback Volume'
		value.0 15
		value.1 15
		comment {
			access 'read write'
			type INTEGER
			count 2
			range '0 - 43'
			dbmin -6450
			dbmax 0
			dbvalue.0 -4200
			dbvalue.1 -4200
		}
	}
	control.2 {
		iface MIXER
		name 'Master Playback Switch'
		value.0 true
		value.1 true
		comment {
			access 'read write'
			type BOOLEAN
			count 2
		}
	}
	control.3 {
		iface MIXER
		name 'Capture Volume'
		value.0 23
		value.1 23
		comment {
			access 'read write'
			type INTEGER
			count 2
			range '0 - 23'
			dbmin 0
			dbmax 3450
			dbvalue.0 3450
			dbvalue.1 3450
		}
	}
	control.4 {
		iface MIXER
		name 'Capture Switch'
		value.0 false
		value.1 false
		comment {
			access 'read write'
			type BOOLEAN
			count 2
		}
	}
	control.5 {
		iface MIXER
		name 'Capture Source'
		value Mic
		comment {
			access 'read write'
			type ENUMERATED
			count 1
			item.0 Mic
			item.1 'Internal Mic'
			item.2 Line
		}
	}
	control.6 {
		iface MIXER
		name 'IEC958 Playback Con Mask'
		value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access read
			type IEC958
			count 1
		}
	}
	control.7 {
		iface MIXER
		name 'IEC958 Playback Pro Mask'
		value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access read
			type IEC958
			count 1
		}
	}
	control.8 {
		iface MIXER
		name 'IEC958 Playback Default'
		value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access 'read write'
			type IEC958
			count 1
		}
	}
	control.9 {
		iface MIXER
		name 'IEC958 Playback Switch'
		value true
		comment {
			access 'read write'
			type BOOLEAN
			count 1
		}
	}
	control.10 {
		iface MIXER
		name 'IEC958 Default PCM Playback Switch'
		value true
		comment {
			access 'read write'
			type BOOLEAN
			count 1
		}
	}
	control.11 {
		iface MIXER
		name 'Beep Playback Volume'
		value 6
		comment {
			access 'read write'
			type INTEGER
			count 1
			range '0 - 7'
			dbmin -2100
			dbmax 0
			dbvalue.0 -300
		}
	}
	control.12 {
		iface MIXER
		name 'Beep Playback Switch'
		value true
		comment {
			access 'read write'
			type BOOLEAN
			count 1
		}
	}
	control.13 {
		iface CARD
		name 'Mic Jack'
		value false
		comment {
			access read
			type BOOLEAN
			count 1
		}
	}
	control.14 {
		iface CARD
		name 'Line Jack'
		value false
		comment {
			access read
			type BOOLEAN
			count 1
		}
	}
	control.15 {
		iface MIXER
		name 'PCM Playback Volume'
		value.0 255
		value.1 255
		comment {
			access 'read write user'
			type INTEGER
			count 2
			range '0 - 255'
			tlv '0000000100000008ffffec1400000014'
			dbmin -5100
			dbmax 0
			dbvalue.0 0
			dbvalue.1 0
		}
	}
}
--endcollapse--


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

Module
(limited to sound modules)
snd_hda_intel
snd_hda_codec_conexant
snd_hda_codec
snd_hwdep
snd_hrtimer
snd_pcm_oss
snd_mixer_oss
snd_pcm
snd_page_alloc
snd_seq_midi
snd_seq_midi_event
snd_rawmidi
snd_seq
snd_seq_device
snd_timer
snd
soundcore


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

/sys/class/sound/hwC0D0/init_pin_configs:
0x10 0x951701f0
0x11 0x02813011
0x12 0x02a19010
0x13 0x22454130
0x14 0x95a7011e
0x15 0x400001f0

/sys/class/sound/hwC0D0/driver_pin_configs:

/sys/class/sound/hwC0D0/user_pin_configs:

/sys/class/sound/hwC0D0/init_verbs:


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

(irrelevant context removed)
[    8.617779] snd_hda_intel 0000:00:1b.0: irq 46 for MSI/MSI-X
[    8.727179] input: HDA Digital PCBeep as /devices/pci0000:00/0000:00:1b.0/input/input8
--
[13552.526261] snd_hda_intel 0000:00:1b.0: irq 46 for MSI/MSI-X
--
[16815.941187] hda-intel: IRQ timing workaround is activated for card #0. Suggest a bigger bdl_pos_adj.
[21013.152341] snd_hda_intel 0000:00:1b.0: irq 46 for MSI/MSI-X
[21013.191274] input: HDA Digital PCBeep as /devices/pci0000:00/0000:00:1b.0/input/input12
[21855.192698] snd_hda_intel 0000:00:1b.0: irq 46 for MSI/MSI-X
[21855.226590] hda_codec: CX20549 (Venice): BIOS auto-probing.
[21855.227567] input: HDA Digital PCBeep as /devices/pci0000:00/0000:00:1b.0/input/input13
[21855.228977] input: HDA Intel Line as /devices/pci0000:00/0000:00:1b.0/sound/card0/input14
[21855.231842] input: HDA Intel Mic as /devices/pci0000:00/0000:00:1b.0/sound/card0/input15



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

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

!!Script ran on: Fri Apr  6 12:25:42 UTC 2012


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

Debian GNU/Linux wheezy/sid \n \l


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

Manufacturer:      GIGABYTE
Product Name:      W551
Product Version:   Not Applicable


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

Kernel release:    3.3.0-trunk-amd64
Operating System:  GNU/Linux
Architecture:      x86_64
Processor:         unknown
SMP Enabled:       Yes


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

Driver version:     1.0.24
Library version:    1.0.25
Utilities version:  1.0.25


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

snd_hda_intel


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

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

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


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

 0 [Intel          ]: HDA-Intel - HDA Intel
                      HDA Intel at 0xde300000 irq 46


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

00:1b.0 Audio device: Intel Corporation N10/ICH 7 Family High Definition Audio Controller (rev 02)
05:01.2 Mass storage controller: Texas Instruments 5-in-1 Multimedia Card Reader (SD/MMC/MS/MS PRO/xD)


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

00:1b.0 0403: 8086:27d8 (rev 02)
	Subsystem: 152d:0753


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

!!Module: snd_hda_intel
	align_buffer_size : Y
	bdl_pos_adj : 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
	beep_mode : 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
	enable : Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y
	enable_msi : -1
	id : (null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null)
	index : -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
	model : (null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null)
	patch : (null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null)
	position_fix : 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
	power_save : 0
	power_save_controller : Y
	probe_mask : -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
	probe_only : 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
	single_cmd : N
	snoop : Y


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

Codec: Conexant CX20549 (Venice)
Address: 0
AFG Function Id: 0x1 (unsol 0)
MFG Function Id: 0x2 (unsol 1)
Vendor Id: 0x14f15045
Subsystem Id: 0x152d0753
Revision Id: 0x100100
Modem Function Group: 0x2
Default PCM:
    rates [0x140]: 48000 96000
    bits [0xe]: 16 20 24
    formats [0x1]: PCM
Default Amp-In caps: N/A
Default Amp-Out caps: N/A
GPIO: io=0, o=0, i=0, unsolicited=0, wake=0
Node 0x10 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out
  Amp-Out caps: ofs=0x2b, nsteps=0x2b, stepsize=0x05, mute=1
  Amp-Out vals:  [0x26 0x26]
  Pincap 0x00010014: OUT EAPD Detect
  EAPD 0x2: EAPD
  Pin Default 0x951701f0: [Fixed] Speaker at Int Top
    Conn = Analog, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x40: OUT
  Unsolicited: tag=00, enabled=0
  Power states:  D0 D1 D2 D3
  Power: setting=D0, actual=D0
  Connection: 2
     0x19 0x17*
Node 0x11 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out
  Amp-Out caps: ofs=0x2b, nsteps=0x2b, stepsize=0x05, mute=1
  Amp-Out vals:  [0x26 0x26]
  Pincap 0x0000113c: IN OUT HP Detect
    Vref caps: HIZ 80
  Pin Default 0x02813011: [Jack] Line In at Ext Front
    Conn = 1/8, Color = Blue
    DefAssociation = 0x1, Sequence = 0x1
  Pin-ctls: 0x20: IN VREF_HIZ
  Unsolicited: tag=00, enabled=0
  Power states:  D0 D1 D2 D3
  Power: setting=D0, actual=D0
  Connection: 2
     0x19 0x17*
Node 0x12 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out
  Amp-Out caps: ofs=0x2b, nsteps=0x2b, stepsize=0x05, mute=1
  Amp-Out vals:  [0xab 0xab]
  Pincap 0x0000113c: IN OUT HP Detect
    Vref caps: HIZ 80
  Pin Default 0x02a19010: [Jack] Mic at Ext Front
    Conn = 1/8, Color = Pink
    DefAssociation = 0x1, Sequence = 0x0
  Pin-ctls: 0x24: IN VREF_80
  Unsolicited: tag=00, enabled=0
  Power states:  D0 D1 D2 D3
  Power: setting=D0, actual=D0
  Connection: 2
     0x19* 0x17
Node 0x13 [Pin Complex] wcaps 0x400301: Stereo Digital
  Pincap 0x00000010: OUT
  Pin Default 0x22454130: [Jack] SPDIF Out at Sep Front
    Conn = Optical, Color = Green
    DefAssociation = 0x3, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x40: OUT
  Connection: 1
     0x18
Node 0x14 [Pin Complex] wcaps 0x400081: Stereo
  Pincap 0x00001124: IN Detect
    Vref caps: HIZ 80
  Pin Default 0x95a7011e: [Fixed] Mic at Int Top
    Conn = Analog, Color = Unknown
    DefAssociation = 0x1, Sequence = 0xe
    Misc = NO_PRESENCE
  Pin-ctls: 0x24: IN VREF_80
  Unsolicited: tag=00, enabled=0
Node 0x15 [Pin Complex] wcaps 0x400001: Stereo
  Pincap 0x00000020: IN
  Pin Default 0x400001f0: [N/A] Line Out at Ext N/A
    Conn = Unknown, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x00:
Node 0x16 [Beep Generator Widget] wcaps 0x70000c: Mono Amp-Out
  Control: name="Beep Playback Volume", index=0, device=0
    ControlAmp: chs=1, dir=Out, idx=0, ofs=0
  Control: name="Beep Playback Switch", index=0, device=0
    ControlAmp: chs=1, dir=Out, idx=0, ofs=0
  Amp-Out caps: ofs=0x07, nsteps=0x07, stepsize=0x0b, mute=1
  Amp-Out vals:  [0x06]
Node 0x17 [Audio Mixer] wcaps 0x20050b: Stereo Amp-In
  Control: name="PCM Playback Volume", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=0, ofs=0
  Control: name="PCM 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=1, ofs=0
  Control: name="Internal Mic Playback Switch", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=1, ofs=0
  Control: name="Mic Playback Volume", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=2, ofs=0
  Control: name="Mic Playback Switch", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=2, ofs=0
  Control: name="Line Playback Volume", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=3, ofs=0
  Control: name="Line Playback Switch", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=3, ofs=0
  Amp-In caps: ofs=0x14, nsteps=0x2b, stepsize=0x05, mute=1
  Amp-In vals:  [0x14 0x14] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80]
  Power states:  D0 D1 D2 D3
  Power: setting=D0, actual=D0
  Connection: 5
     0x19 0x14 0x12 0x11 0x15
Node 0x18 [Audio Output] wcaps 0x211: Stereo 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
  Control: name="IEC958 Default PCM Playback Switch", index=0, device=0
  Device: name="Conexant Digital", type="SPDIF", device=1
  Converter: stream=8, channel=0
  Digital: Enabled
  Digital category: 0x0
  PCM:
    rates [0x40]: 48000
    bits [0x6]: 16 20
    formats [0x5]: PCM AC3
Node 0x19 [Audio Output] wcaps 0xc11: Stereo R/L
  Device: name="CONEXANT Analog", type="Audio", device=0
  Converter: stream=8, channel=0
  PCM:
    rates [0x540]: 48000 96000 192000
    bits [0xe]: 16 20 24
    formats [0x1]: PCM
  Power states:  D0 D1 D2 D3
  Power: setting=D0, actual=D0
Node 0x1a [Audio Input] wcaps 0x100d0b: Stereo Amp-In R/L
  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="CONEXANT Analog", type="Audio", device=0
  Amp-In caps: ofs=0x00, nsteps=0x17, stepsize=0x05, mute=1
  Amp-In vals:  [0x97 0x97]
  Converter: stream=4, channel=0
  SDI-Select: 0
  Power states:  D0 D1 D2 D3
  Power: setting=D0, actual=D0
  Connection: 5
     0x17* 0x14 0x12 0x11 0x15
Node 0x1b [Vendor Defined Widget] wcaps 0xf00000: Mono
--endcollapse--


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

crw-rw---T+ 1 root audio 116,  6 Apr  6 14:16 /dev/snd/controlC0
crw-rw---T+ 1 root audio 116,  5 Apr  6 14:16 /dev/snd/hwC0D0
crw-rw---T+ 1 root audio 116,  4 Apr  6 14:17 /dev/snd/pcmC0D0c
crw-rw---T+ 1 root audio 116,  3 Apr  6 14:17 /dev/snd/pcmC0D0p
crw-rw---T+ 1 root audio 116,  2 Apr  6 14:17 /dev/snd/pcmC0D1p
crw-rw---T+ 1 root audio 116,  1 Apr  5 10:25 /dev/snd/seq
crw-rw---T+ 1 root audio 116, 33 Apr  5 10:25 /dev/snd/timer

/dev/snd/by-path:
total 0
drwxr-xr-x 2 root root  60 Apr  6 14:16 .
drwxr-xr-x 3 root root 200 Apr  6 14:16 ..
lrwxrwxrwx 1 root root  12 Apr  6 14:16 pci-0000:00:1b.0 -> ../controlC0


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

APLAY

**** List of PLAYBACK Hardware Devices ****
card 0: Intel [HDA Intel], device 0: CONEXANT Analog [CONEXANT Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 1: Conexant Digital [Conexant Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

ARECORD

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

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

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

Card hw:0 'Intel'/'HDA Intel at 0xde300000 irq 46'
  Mixer name	: 'Conexant CX20549 (Venice)'
  Components	: 'HDA:14f15045,152d0753,00100100'
  Controls      : 20
  Simple ctrls  : 10
Simple mixer control 'Master',0
  Capabilities: pvolume pswitch pswitch-joined penum
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 43
  Mono:
  Front Left: Playback 38 [88%] [-7.50dB] [on]
  Front Right: Playback 38 [88%] [-7.50dB] [on]
Simple mixer control 'PCM',0
  Capabilities: pvolume pswitch penum
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 43
  Mono:
  Front Left: Playback 20 [47%] [0.00dB] [on]
  Front Right: Playback 20 [47%] [0.00dB] [on]
Simple mixer control 'Line',0
  Capabilities: pvolume pswitch cswitch cswitch-joined cswitch-exclusive penum
  Capture exclusive group: 0
  Playback channels: Front Left - Front Right
  Capture channels: Mono
  Limits: Playback 0 - 43
  Mono: Capture [off]
  Front Left: Playback 0 [0%] [-30.00dB] [off]
  Front Right: Playback 0 [0%] [-30.00dB] [off]
Simple mixer control 'Mic',0
  Capabilities: pvolume pswitch cswitch cswitch-joined cswitch-exclusive penum
  Capture exclusive group: 0
  Playback channels: Front Left - Front Right
  Capture channels: Mono
  Limits: Playback 0 - 43
  Mono: Capture [off]
  Front Left: Playback 0 [0%] [-30.00dB] [off]
  Front Right: Playback 0 [0%] [-30.00dB] [off]
Simple mixer control 'IEC958',0
  Capabilities: pswitch pswitch-joined penum
  Playback channels: Mono
  Mono: Playback [on]
Simple mixer control 'IEC958 Default PCM',0
  Capabilities: pswitch pswitch-joined penum
  Playback channels: Mono
  Mono: Playback [on]
Simple mixer control 'Beep',0
  Capabilities: pvolume pvolume-joined pswitch pswitch-joined penum
  Playback channels: Mono
  Limits: Playback 0 - 7
  Mono: Playback 6 [86%] [-3.00dB] [on]
Simple mixer control 'Capture',0
  Capabilities: cvolume cswitch penum
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 23
  Front Left: Capture 23 [100%] [34.50dB] [off]
  Front Right: Capture 23 [100%] [34.50dB] [off]
Simple mixer control 'Mixer',0
  Capabilities: cswitch cswitch-joined cswitch-exclusive penum
  Capture exclusive group: 0
  Capture channels: Mono
  Mono: Capture [on]
Simple mixer control 'Internal Mic',0
  Capabilities: pvolume pswitch cswitch cswitch-joined cswitch-exclusive penum
  Capture exclusive group: 0
  Playback channels: Front Left - Front Right
  Capture channels: Mono
  Limits: Playback 0 - 43
  Mono: Capture [off]
  Front Left: Playback 0 [0%] [-30.00dB] [off]
  Front Right: Playback 0 [0%] [-30.00dB] [off]


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

--startcollapse--
state.Intel {
	control.1 {
		iface MIXER
		name 'Capture Volume'
		value.0 23
		value.1 23
		comment {
			access 'read write'
			type INTEGER
			count 2
			range '0 - 23'
			dbmin 0
			dbmax 3450
			dbvalue.0 3450
			dbvalue.1 3450
		}
	}
	control.2 {
		iface MIXER
		name 'Capture Switch'
		value.0 false
		value.1 false
		comment {
			access 'read write'
			type BOOLEAN
			count 2
		}
	}
	control.3 {
		iface MIXER
		name 'PCM Playback Volume'
		value.0 20
		value.1 20
		comment {
			access 'read write'
			type INTEGER
			count 2
			range '0 - 43'
			dbmin -3000
			dbmax 3450
			dbvalue.0 0
			dbvalue.1 0
		}
	}
	control.4 {
		iface MIXER
		name 'PCM Playback Switch'
		value.0 true
		value.1 true
		comment {
			access 'read write'
			type BOOLEAN
			count 2
		}
	}
	control.5 {
		iface MIXER
		name 'Internal Mic Playback Volume'
		value.0 0
		value.1 0
		comment {
			access 'read write'
			type INTEGER
			count 2
			range '0 - 43'
			dbmin -3000
			dbmax 3450
			dbvalue.0 -3000
			dbvalue.1 -3000
		}
	}
	control.6 {
		iface MIXER
		name 'Internal Mic Playback Switch'
		value.0 false
		value.1 false
		comment {
			access 'read write'
			type BOOLEAN
			count 2
		}
	}
	control.7 {
		iface MIXER
		name 'Mic Playback Volume'
		value.0 0
		value.1 0
		comment {
			access 'read write'
			type INTEGER
			count 2
			range '0 - 43'
			dbmin -3000
			dbmax 3450
			dbvalue.0 -3000
			dbvalue.1 -3000
		}
	}
	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 'Master Playback Volume'
		value.0 38
		value.1 38
		comment {
			access 'read write'
			type INTEGER
			count 2
			range '0 - 43'
			dbmin -6450
			dbmax 0
			dbvalue.0 -750
			dbvalue.1 -750
		}
	}
	control.10 {
		iface MIXER
		name 'Master Playback Switch'
		value true
		comment {
			access 'read write'
			type BOOLEAN
			count 1
		}
	}
	control.11 {
		iface MIXER
		name 'Line Playback Volume'
		value.0 0
		value.1 0
		comment {
			access 'read write'
			type INTEGER
			count 2
			range '0 - 43'
			dbmin -3000
			dbmax 3450
			dbvalue.0 -3000
			dbvalue.1 -3000
		}
	}
	control.12 {
		iface MIXER
		name 'Line Playback Switch'
		value.0 false
		value.1 false
		comment {
			access 'read write'
			type BOOLEAN
			count 2
		}
	}
	control.13 {
		iface MIXER
		name 'IEC958 Playback Con Mask'
		value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access read
			type IEC958
			count 1
		}
	}
	control.14 {
		iface MIXER
		name 'IEC958 Playback Pro Mask'
		value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access read
			type IEC958
			count 1
		}
	}
	control.15 {
		iface MIXER
		name 'IEC958 Playback Default'
		value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access 'read write'
			type IEC958
			count 1
		}
	}
	control.16 {
		iface MIXER
		name 'IEC958 Playback Switch'
		value true
		comment {
			access 'read write'
			type BOOLEAN
			count 1
		}
	}
	control.17 {
		iface MIXER
		name 'IEC958 Default PCM Playback Switch'
		value true
		comment {
			access 'read write'
			type BOOLEAN
			count 1
		}
	}
	control.18 {
		iface MIXER
		name 'Capture Source'
		value Mixer
		comment {
			access 'read write'
			type ENUMERATED
			count 1
			item.0 'Internal Mic'
			item.1 Mic
			item.2 Line
			item.3 Mixer
		}
	}
	control.19 {
		iface MIXER
		name 'Beep Playback Volume'
		value 6
		comment {
			access 'read write'
			type INTEGER
			count 1
			range '0 - 7'
			dbmin -2100
			dbmax 0
			dbvalue.0 -300
		}
	}
	control.20 {
		iface MIXER
		name 'Beep Playback Switch'
		value true
		comment {
			access 'read write'
			type BOOLEAN
			count 1
		}
	}
}
--endcollapse--


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

Module
(limited to sound modules)
snd_hda_codec_conexant
snd_hda_intel
snd_hda_codec
snd_hwdep
snd_hrtimer
snd_pcm_oss
snd_mixer_oss
snd_pcm
snd_page_alloc
snd_seq_midi
snd_seq_midi_event
snd_rawmidi
snd_seq
snd_seq_device
snd_timer
snd
soundcore


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

/sys/class/sound/hwC0D0/init_pin_configs:
0x10 0x951701f0
0x11 0x02813011
0x12 0x02a19010
0x13 0x22454130
0x14 0x95a7011e
0x15 0x400001f0

/sys/class/sound/hwC0D0/driver_pin_configs:

/sys/class/sound/hwC0D0/user_pin_configs:

/sys/class/sound/hwC0D0/init_verbs:


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

(irrelevant context removed)
[    8.617779] snd_hda_intel 0000:00:1b.0: irq 46 for MSI/MSI-X
[    8.727179] input: HDA Digital PCBeep as /devices/pci0000:00/0000:00:1b.0/input/input8
--
[13552.526261] snd_hda_intel 0000:00:1b.0: irq 46 for MSI/MSI-X
--
[16815.941187] hda-intel: IRQ timing workaround is activated for card #0. Suggest a bigger bdl_pos_adj.
[21013.152341] snd_hda_intel 0000:00:1b.0: irq 46 for MSI/MSI-X
[21013.191274] input: HDA Digital PCBeep as /devices/pci0000:00/0000:00:1b.0/input/input12



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

* [PATCH 0/6] ALSA: hda - CX20549 cleanup/fixes
  2012-04-05 14:28   ` Takashi Iwai
  2012-04-06 13:01     ` Michael Karcher
@ 2012-04-06 13:34     ` Michael Karcher
  2012-04-06 13:34       ` [PATCH 1/6] ALSA: hda - Fix proc output for ADC amp values of CX20549 Michael Karcher
                         ` (6 more replies)
  1 sibling, 7 replies; 15+ messages in thread
From: Michael Karcher @ 2012-04-06 13:34 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: Jaroslav Kysela, alsa-devel, linux-kernel

This is the revised patch series for the CX20549 (and related stuff)

Changes:
 Patch 1/6:
  - spec->single_adc_amp has been moved to codec->single_adc_amp
    to fix printing in /proc.
 Patch 2/6: 
  - "Line In" has been changed to "Line".
  - This change has also been performed on the Mixer Labels.
 Patch 4/6:
  - .num_items has been adjusted, too.
  - A comment about physical testing has been added to the commit message.
 Patch 5/6:
  - pin_amp_workaround is not set for CX20549 in auto-setup, too


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

* [PATCH 1/6] ALSA: hda - Fix proc output for ADC amp values of CX20549
  2012-04-06 13:34     ` [PATCH 0/6] ALSA: hda - " Michael Karcher
@ 2012-04-06 13:34       ` Michael Karcher
  2012-04-06 13:34       ` [PATCH 2/6] ALSA: hda - Rename capture sources of CX20549 to match common conventions Michael Karcher
                         ` (5 subsequent siblings)
  6 siblings, 0 replies; 15+ messages in thread
From: Michael Karcher @ 2012-04-06 13:34 UTC (permalink / raw)
  To: Takashi Iwai, Jaroslav Kysela, Stephen Warren, Vitaliy Kulikov,
	David Henningsson, alsa-devel, linux-kernel

The CX20549 has only one single input amp on it's input converter
widget. Fix printing of values in the codec file in /proc/asound.

Signed-off-by: Michael Karcher <kernel@mkarcher.dialup.fu-berlin.de>
---
 sound/pci/hda/hda_codec.h      |    3 +++
 sound/pci/hda/hda_proc.c       |   13 ++++++++++---
 sound/pci/hda/patch_conexant.c |    8 ++++----
 3 files changed, 17 insertions(+), 7 deletions(-)

diff --git a/sound/pci/hda/hda_codec.h b/sound/pci/hda/hda_codec.h
index 9a9f372..56b4f74 100644
--- a/sound/pci/hda/hda_codec.h
+++ b/sound/pci/hda/hda_codec.h
@@ -851,6 +851,9 @@ struct hda_codec {
 	unsigned int pin_amp_workaround:1; /* pin out-amp takes index
 					    * (e.g. Conexant codecs)
 					    */
+	unsigned int single_adc_amp:1; /* adc in-amp takes no index
+					* (e.g. CX20549 codec)
+					*/
 	unsigned int no_sticky_stream:1; /* no sticky-PCM stream assignment */
 	unsigned int pins_shutup:1;	/* pins are shut up */
 	unsigned int no_trigger_sense:1; /* don't trigger at pin-sensing */
diff --git a/sound/pci/hda/hda_proc.c b/sound/pci/hda/hda_proc.c
index 254ab52..8c1715a 100644
--- a/sound/pci/hda/hda_proc.c
+++ b/sound/pci/hda/hda_proc.c
@@ -651,9 +651,16 @@ static void print_codec_info(struct snd_info_entry *entry,
 			snd_iprintf(buffer, "  Amp-In caps: ");
 			print_amp_caps(buffer, codec, nid, HDA_INPUT);
 			snd_iprintf(buffer, "  Amp-In vals: ");
-			print_amp_vals(buffer, codec, nid, HDA_INPUT,
-				       wid_caps & AC_WCAP_STEREO,
-				       wid_type == AC_WID_PIN ? 1 : conn_len);
+			if (wid_type == AC_WID_PIN ||
+			    (codec->single_adc_amp &&
+			     wid_type == AC_WID_AUD_IN))
+                                print_amp_vals(buffer, codec, nid, HDA_INPUT,
+                                               wid_caps & AC_WCAP_STEREO,
+                                               1);
+                        else
+                                print_amp_vals(buffer, codec, nid, HDA_INPUT,
+                                               wid_caps & AC_WCAP_STEREO,
+                                               conn_len);
 		}
 		if (wid_caps & AC_WCAP_OUT_AMP) {
 			snd_iprintf(buffer, "  Amp-Out caps: ");
diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c
index 8c6523b..60890ef 100644
--- a/sound/pci/hda/patch_conexant.c
+++ b/sound/pci/hda/patch_conexant.c
@@ -141,7 +141,6 @@ struct conexant_spec {
 	unsigned int hp_laptop:1;
 	unsigned int asus:1;
 	unsigned int pin_eapd_ctrls:1;
-	unsigned int single_adc_amp:1;
 
 	unsigned int adc_switching:1;
 
@@ -1111,6 +1110,7 @@ static int patch_cxt5045(struct hda_codec *codec)
 		return -ENOMEM;
 	codec->spec = spec;
 	codec->pin_amp_workaround = 1;
+	codec->single_adc_amp = 1;
 
 	spec->multiout.max_channels = 2;
 	spec->multiout.num_dacs = ARRAY_SIZE(cxt5045_dac_nids);
@@ -4220,7 +4220,7 @@ static int cx_auto_add_capture_volume(struct hda_codec *codec, hda_nid_t nid,
 		int idx = get_input_connection(codec, adc_nid, nid);
 		if (idx < 0)
 			continue;
-		if (spec->single_adc_amp)
+		if (codec->single_adc_amp)
 			idx = 0;
 		return cx_auto_add_volume_idx(codec, label, pfx,
 					      cidx, adc_nid, HDA_INPUT, idx);
@@ -4275,7 +4275,7 @@ static int cx_auto_build_input_controls(struct hda_codec *codec)
 		if (cidx < 0)
 			continue;
 		input_conn[i] = spec->imux_info[i].adc;
-		if (!spec->single_adc_amp)
+		if (!codec->single_adc_amp)
 			input_conn[i] |= cidx << 8;
 		if (i > 0 && input_conn[i] != input_conn[0])
 			multi_connection = 1;
@@ -4470,7 +4470,7 @@ static int patch_conexant_auto(struct hda_codec *codec)
 
 	switch (codec->vendor_id) {
 	case 0x14f15045:
-		spec->single_adc_amp = 1;
+		codec->single_adc_amp = 1;
 		break;
 	case 0x14f15051:
 		add_cx5051_fake_mutes(codec);
-- 
1.7.9.1


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

* [PATCH 2/6] ALSA: hda - Rename capture sources of CX20549 to match common conventions
  2012-04-06 13:34     ` [PATCH 0/6] ALSA: hda - " Michael Karcher
  2012-04-06 13:34       ` [PATCH 1/6] ALSA: hda - Fix proc output for ADC amp values of CX20549 Michael Karcher
@ 2012-04-06 13:34       ` Michael Karcher
  2012-04-06 13:34       ` [PATCH 3/6] ALSA: hda - fix record volume controls of CX20459 ("Venice") Michael Karcher
                         ` (4 subsequent siblings)
  6 siblings, 0 replies; 15+ messages in thread
From: Michael Karcher @ 2012-04-06 13:34 UTC (permalink / raw)
  To: Takashi Iwai, Jaroslav Kysela, David Henningsson, alsa-devel,
	linux-kernel

This includes renaming "Line In" to line, also in the mixer settings.

Signed-off-by: Michael Karcher <kernel@mkarcher.dialup.fu-berlin.de>
---
 sound/pci/hda/patch_conexant.c |   26 +++++++++++++-------------
 1 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c
index 60890ef..ab2cf5c 100644
--- a/sound/pci/hda/patch_conexant.c
+++ b/sound/pci/hda/patch_conexant.c
@@ -686,27 +686,27 @@ static const struct hda_channel_mode cxt5045_modes[1] = {
 static const struct hda_input_mux cxt5045_capture_source = {
 	.num_items = 2,
 	.items = {
-		{ "IntMic", 0x1 },
-		{ "ExtMic", 0x2 },
+		{ "Internal Mic", 0x1 },
+		{ "Mic",          0x2 },
 	}
 };
 
 static const struct hda_input_mux cxt5045_capture_source_benq = {
 	.num_items = 5,
 	.items = {
-		{ "IntMic", 0x1 },
-		{ "ExtMic", 0x2 },
-		{ "LineIn", 0x3 },
-		{ "CD",     0x4 },
-		{ "Mixer",  0x0 },
+		{ "CD",           0x4 },
+		{ "Internal Mic", 0x1 },
+		{ "Mic",          0x2 },
+		{ "Line",         0x3 },
+		{ "Mixer",        0x0 },
 	}
 };
 
 static const struct hda_input_mux cxt5045_capture_source_hp530 = {
 	.num_items = 2,
 	.items = {
-		{ "ExtMic", 0x1 },
-		{ "IntMic", 0x2 },
+		{ "Mic",          0x1 },
+		{ "Internal Mic", 0x2 },
 	}
 };
 
@@ -826,10 +826,10 @@ static const struct snd_kcontrol_new cxt5045_benq_mixers[] = {
 	HDA_CODEC_VOLUME("CD Playback Volume", 0x17, 0x4, HDA_INPUT),
 	HDA_CODEC_MUTE("CD Playback Switch", 0x17, 0x4, HDA_INPUT),
 
-	HDA_CODEC_VOLUME("Line In Capture Volume", 0x1a, 0x03, HDA_INPUT),
-	HDA_CODEC_MUTE("Line In Capture Switch", 0x1a, 0x03, HDA_INPUT),
-	HDA_CODEC_VOLUME("Line In Playback Volume", 0x17, 0x3, HDA_INPUT),
-	HDA_CODEC_MUTE("Line In Playback Switch", 0x17, 0x3, HDA_INPUT),
+	HDA_CODEC_VOLUME("Line Capture Volume", 0x1a, 0x03, HDA_INPUT),
+	HDA_CODEC_MUTE("Line Capture Switch", 0x1a, 0x03, HDA_INPUT),
+	HDA_CODEC_VOLUME("Line Playback Volume", 0x17, 0x3, HDA_INPUT),
+	HDA_CODEC_MUTE("Line Playback Switch", 0x17, 0x3, HDA_INPUT),
 
 	HDA_CODEC_VOLUME("Mixer Capture Volume", 0x1a, 0x0, HDA_INPUT),
 	HDA_CODEC_MUTE("Mixer Capture Switch", 0x1a, 0x0, HDA_INPUT),
-- 
1.7.9.1


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

* [PATCH 3/6] ALSA: hda - fix record volume controls of CX20459 ("Venice")
  2012-04-06 13:34     ` [PATCH 0/6] ALSA: hda - " Michael Karcher
  2012-04-06 13:34       ` [PATCH 1/6] ALSA: hda - Fix proc output for ADC amp values of CX20549 Michael Karcher
  2012-04-06 13:34       ` [PATCH 2/6] ALSA: hda - Rename capture sources of CX20549 to match common conventions Michael Karcher
@ 2012-04-06 13:34       ` Michael Karcher
  2012-04-06 13:34       ` [PATCH 4/6] ALSA: hda - Remove CD control from model=benq for CX20549 Michael Karcher
                         ` (3 subsequent siblings)
  6 siblings, 0 replies; 15+ messages in thread
From: Michael Karcher @ 2012-04-06 13:34 UTC (permalink / raw)
  To: Takashi Iwai, Jaroslav Kysela, David Henningsson, alsa-devel,
	linux-kernel

The "input converter" widget of the CX20459 has only one input amplifier,
expose that one as "Capture Volume/Capture Switch". The actual record
source selection is already exposed through the separately installed
input mux.

Signed-off-by: Michael Karcher <kernel@mkarcher.dialup.fu-berlin.de>
---
 sound/pci/hda/patch_conexant.c |   31 ++++++-------------------------
 1 files changed, 6 insertions(+), 25 deletions(-)

diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c
index ab2cf5c..c36441c 100644
--- a/sound/pci/hda/patch_conexant.c
+++ b/sound/pci/hda/patch_conexant.c
@@ -797,10 +797,8 @@ static void cxt5045_hp_unsol_event(struct hda_codec *codec,
 }
 
 static const struct snd_kcontrol_new cxt5045_mixers[] = {
-	HDA_CODEC_VOLUME("Internal Mic Capture Volume", 0x1a, 0x01, HDA_INPUT),
-	HDA_CODEC_MUTE("Internal Mic Capture Switch", 0x1a, 0x01, HDA_INPUT),
-	HDA_CODEC_VOLUME("Mic Capture Volume", 0x1a, 0x02, HDA_INPUT),
-	HDA_CODEC_MUTE("Mic Capture Switch", 0x1a, 0x02, HDA_INPUT),
+	HDA_CODEC_VOLUME("Capture Volume", 0x1a, 0x00, HDA_INPUT),
+	HDA_CODEC_MUTE("Capture Switch", 0x1a, 0x0, HDA_INPUT),
 	HDA_CODEC_VOLUME("PCM Playback Volume", 0x17, 0x0, HDA_INPUT),
 	HDA_CODEC_MUTE("PCM Playback Switch", 0x17, 0x0, HDA_INPUT),
 	HDA_CODEC_VOLUME("Internal Mic Playback Volume", 0x17, 0x1, HDA_INPUT),
@@ -821,27 +819,18 @@ static const struct snd_kcontrol_new cxt5045_mixers[] = {
 };
 
 static const struct snd_kcontrol_new cxt5045_benq_mixers[] = {
-	HDA_CODEC_VOLUME("CD Capture Volume", 0x1a, 0x04, HDA_INPUT),
-	HDA_CODEC_MUTE("CD Capture Switch", 0x1a, 0x04, HDA_INPUT),
 	HDA_CODEC_VOLUME("CD Playback Volume", 0x17, 0x4, HDA_INPUT),
 	HDA_CODEC_MUTE("CD Playback Switch", 0x17, 0x4, HDA_INPUT),
 
-	HDA_CODEC_VOLUME("Line Capture Volume", 0x1a, 0x03, HDA_INPUT),
-	HDA_CODEC_MUTE("Line Capture Switch", 0x1a, 0x03, HDA_INPUT),
 	HDA_CODEC_VOLUME("Line Playback Volume", 0x17, 0x3, HDA_INPUT),
 	HDA_CODEC_MUTE("Line Playback Switch", 0x17, 0x3, HDA_INPUT),
 
-	HDA_CODEC_VOLUME("Mixer Capture Volume", 0x1a, 0x0, HDA_INPUT),
-	HDA_CODEC_MUTE("Mixer Capture Switch", 0x1a, 0x0, HDA_INPUT),
-
 	{}
 };
 
 static const struct snd_kcontrol_new cxt5045_mixers_hp530[] = {
-	HDA_CODEC_VOLUME("Internal Mic Capture Volume", 0x1a, 0x02, HDA_INPUT),
-	HDA_CODEC_MUTE("Internal Mic Capture Switch", 0x1a, 0x02, HDA_INPUT),
-	HDA_CODEC_VOLUME("Mic Capture Volume", 0x1a, 0x01, HDA_INPUT),
-	HDA_CODEC_MUTE("Mic Capture Switch", 0x1a, 0x01, HDA_INPUT),
+	HDA_CODEC_VOLUME("Capture Volume", 0x1a, 0x00, HDA_INPUT),
+	HDA_CODEC_MUTE("Capture Switch", 0x1a, 0x0, HDA_INPUT),
 	HDA_CODEC_VOLUME("PCM Playback Volume", 0x17, 0x0, HDA_INPUT),
 	HDA_CODEC_MUTE("PCM Playback Switch", 0x17, 0x0, HDA_INPUT),
 	HDA_CODEC_VOLUME("Internal Mic Playback Volume", 0x17, 0x2, HDA_INPUT),
@@ -977,16 +966,8 @@ static const struct snd_kcontrol_new cxt5045_test_mixer[] = {
 		.put = conexant_mux_enum_put,
 	},
 	/* Audio input controls */
-	HDA_CODEC_VOLUME("Input-1 Volume", 0x1a, 0x0, HDA_INPUT),
-	HDA_CODEC_MUTE("Input-1 Switch", 0x1a, 0x0, HDA_INPUT),
-	HDA_CODEC_VOLUME("Input-2 Volume", 0x1a, 0x1, HDA_INPUT),
-	HDA_CODEC_MUTE("Input-2 Switch", 0x1a, 0x1, HDA_INPUT),
-	HDA_CODEC_VOLUME("Input-3 Volume", 0x1a, 0x2, HDA_INPUT),
-	HDA_CODEC_MUTE("Input-3 Switch", 0x1a, 0x2, HDA_INPUT),
-	HDA_CODEC_VOLUME("Input-4 Volume", 0x1a, 0x3, HDA_INPUT),
-	HDA_CODEC_MUTE("Input-4 Switch", 0x1a, 0x3, HDA_INPUT),
-	HDA_CODEC_VOLUME("Input-5 Volume", 0x1a, 0x4, HDA_INPUT),
-	HDA_CODEC_MUTE("Input-5 Switch", 0x1a, 0x4, HDA_INPUT),
+	HDA_CODEC_VOLUME("Capture Volume", 0x1a, 0x0, HDA_INPUT),
+	HDA_CODEC_MUTE("Capture Switch", 0x1a, 0x0, HDA_INPUT),
 	{ } /* end */
 };
 
-- 
1.7.9.1


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

* [PATCH 4/6] ALSA: hda - Remove CD control from model=benq for CX20549
  2012-04-06 13:34     ` [PATCH 0/6] ALSA: hda - " Michael Karcher
                         ` (2 preceding siblings ...)
  2012-04-06 13:34       ` [PATCH 3/6] ALSA: hda - fix record volume controls of CX20459 ("Venice") Michael Karcher
@ 2012-04-06 13:34       ` Michael Karcher
  2012-04-06 13:34       ` [PATCH 5/6] ALSA: hda - CX20549 doesn't need pin_amp_workaround Michael Karcher
                         ` (2 subsequent siblings)
  6 siblings, 0 replies; 15+ messages in thread
From: Michael Karcher @ 2012-04-06 13:34 UTC (permalink / raw)
  To: Takashi Iwai, Jaroslav Kysela, David Henningsson, alsa-devel,
	linux-kernel

The ID used for detection of the BenQ R55E actually identifies the
Quanta TW3 ODM design, which is also used for the Gigabyte W551 laptop
series. Schematics on the internet clearly indicate that the "Port C"
(analog input connected to record source #4 and mixer input #4) is
unconnected.

Playing an audio CD through analog playback (using cdplay from cdtools)
produces no sound, even with the mixer input labelled "CD" enabled, and
the volume control in the CD drive set to maximum. This indicates the
connection is really not present.

Signed-off-by: Michael Karcher <kernel@mkarcher.dialup.fu-berlin.de>
---
 sound/pci/hda/patch_conexant.c |    6 +-----
 1 files changed, 1 insertions(+), 5 deletions(-)

diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c
index c36441c..ad5da16 100644
--- a/sound/pci/hda/patch_conexant.c
+++ b/sound/pci/hda/patch_conexant.c
@@ -692,9 +692,8 @@ static const struct hda_input_mux cxt5045_capture_source = {
 };
 
 static const struct hda_input_mux cxt5045_capture_source_benq = {
-	.num_items = 5,
+	.num_items = 4,
 	.items = {
-		{ "CD",           0x4 },
 		{ "Internal Mic", 0x1 },
 		{ "Mic",          0x2 },
 		{ "Line",         0x3 },
@@ -819,9 +818,6 @@ static const struct snd_kcontrol_new cxt5045_mixers[] = {
 };
 
 static const struct snd_kcontrol_new cxt5045_benq_mixers[] = {
-	HDA_CODEC_VOLUME("CD Playback Volume", 0x17, 0x4, HDA_INPUT),
-	HDA_CODEC_MUTE("CD Playback Switch", 0x17, 0x4, HDA_INPUT),
-
 	HDA_CODEC_VOLUME("Line Playback Volume", 0x17, 0x3, HDA_INPUT),
 	HDA_CODEC_MUTE("Line Playback Switch", 0x17, 0x3, HDA_INPUT),
 
-- 
1.7.9.1


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

* [PATCH 5/6] ALSA: hda - CX20549 doesn't need pin_amp_workaround.
  2012-04-06 13:34     ` [PATCH 0/6] ALSA: hda - " Michael Karcher
                         ` (3 preceding siblings ...)
  2012-04-06 13:34       ` [PATCH 4/6] ALSA: hda - Remove CD control from model=benq for CX20549 Michael Karcher
@ 2012-04-06 13:34       ` Michael Karcher
  2012-04-06 13:34       ` [PATCH 6/6] ALSA: hda - clean up CX20549 test mixer setup Michael Karcher
  2012-04-07 10:36       ` [PATCH 0/6] ALSA: hda - CX20549 cleanup/fixes Takashi Iwai
  6 siblings, 0 replies; 15+ messages in thread
From: Michael Karcher @ 2012-04-06 13:34 UTC (permalink / raw)
  To: Takashi Iwai, Jaroslav Kysela, David Henningsson, alsa-devel,
	linux-kernel

CX20549 (ctx5045) doesn't accept data on index 1 for output pins,
as shown in the following hda-var transaction:

  $ hda-verb /dev/snd/hwC0D0 0x10 set_amp_gain 0xb126
  nid = 0x10, verb = 0x300, param = 0xb126
  value = 0x0
  $ hda-verb /dev/snd/hwC0D0 0x10 get_amp_gain 0x8001
  nid = 0x10, verb = 0xb00, param = 0x8001
  value = 0x0

Signed-off-by: Michael Karcher <kernel@mkarcher.dialup.fu-berlin.de>
---
 sound/pci/hda/patch_conexant.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c
index ad5da16..8fe9f9d 100644
--- a/sound/pci/hda/patch_conexant.c
+++ b/sound/pci/hda/patch_conexant.c
@@ -1086,7 +1086,6 @@ static int patch_cxt5045(struct hda_codec *codec)
 	if (!spec)
 		return -ENOMEM;
 	codec->spec = spec;
-	codec->pin_amp_workaround = 1;
 	codec->single_adc_amp = 1;
 
 	spec->multiout.max_channels = 2;
@@ -4443,7 +4442,6 @@ static int patch_conexant_auto(struct hda_codec *codec)
 	if (!spec)
 		return -ENOMEM;
 	codec->spec = spec;
-	codec->pin_amp_workaround = 1;
 
 	switch (codec->vendor_id) {
 	case 0x14f15045:
@@ -4451,7 +4449,10 @@ static int patch_conexant_auto(struct hda_codec *codec)
 		break;
 	case 0x14f15051:
 		add_cx5051_fake_mutes(codec);
+		codec->pin_amp_workaround = 1;
 		break;
+	default:
+		codec->pin_amp_workaround = 1;
 	}
 
 	apply_pin_fixup(codec, cxt_fixups, cxt_pincfg_tbl);
-- 
1.7.9.1


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

* [PATCH 6/6] ALSA: hda - clean up CX20549 test mixer setup
  2012-04-06 13:34     ` [PATCH 0/6] ALSA: hda - " Michael Karcher
                         ` (4 preceding siblings ...)
  2012-04-06 13:34       ` [PATCH 5/6] ALSA: hda - CX20549 doesn't need pin_amp_workaround Michael Karcher
@ 2012-04-06 13:34       ` Michael Karcher
  2012-04-10  6:54         ` David Henningsson
  2012-04-07 10:36       ` [PATCH 0/6] ALSA: hda - CX20549 cleanup/fixes Takashi Iwai
  6 siblings, 1 reply; 15+ messages in thread
From: Michael Karcher @ 2012-04-06 13:34 UTC (permalink / raw)
  To: Takashi Iwai, Jaroslav Kysela, David Henningsson, alsa-devel,
	linux-kernel

name pins consistently (MIC1/LINE1/HP-OUT/CD) on all controls
affecting those pins.

remove duplicate SET_AMP_GAIN_MUTE to 0x17/index 0 and 0x17/index 1

really select MIC1, not Mixer out for recording

"Mixer out" for recording is not a "pin", adjust comment

Signed-off-by: Michael Karcher <kernel@mkarcher.dialup.fu-berlin.de>
---
 sound/pci/hda/patch_conexant.c |   38 +++++++++++++++++---------------------
 1 files changed, 17 insertions(+), 21 deletions(-)

diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c
index 8fe9f9d..a36488d 100644
--- a/sound/pci/hda/patch_conexant.c
+++ b/sound/pci/hda/patch_conexant.c
@@ -930,10 +930,10 @@ static const struct snd_kcontrol_new cxt5045_test_mixer[] = {
 	/* Output controls */
 	HDA_CODEC_VOLUME("Speaker Playback Volume", 0x10, 0x0, HDA_OUTPUT),
 	HDA_CODEC_MUTE("Speaker Playback Switch", 0x10, 0x0, HDA_OUTPUT),
-	HDA_CODEC_VOLUME("Node 11 Playback Volume", 0x11, 0x0, HDA_OUTPUT),
-	HDA_CODEC_MUTE("Node 11 Playback Switch", 0x11, 0x0, HDA_OUTPUT),
-	HDA_CODEC_VOLUME("Node 12 Playback Volume", 0x12, 0x0, HDA_OUTPUT),
-	HDA_CODEC_MUTE("Node 12 Playback Switch", 0x12, 0x0, HDA_OUTPUT),
+	HDA_CODEC_VOLUME("HP-OUT Playback Volume", 0x11, 0x0, HDA_OUTPUT),
+	HDA_CODEC_MUTE("HP-OUT Playback Switch", 0x11, 0x0, HDA_OUTPUT),
+	HDA_CODEC_VOLUME("LINE1 Playback Volume", 0x12, 0x0, HDA_OUTPUT),
+	HDA_CODEC_MUTE("LINE1 Playback Switch", 0x12, 0x0, HDA_OUTPUT),
 	
 	/* Modes for retasking pin widgets */
 	CXT_PIN_MODE("HP-OUT pin mode", 0x11, CXT_PIN_DIR_INOUT),
@@ -944,16 +944,16 @@ static const struct snd_kcontrol_new cxt5045_test_mixer[] = {
 
 	/* Loopback mixer controls */
 
-	HDA_CODEC_VOLUME("Mixer-1 Volume", 0x17, 0x0, HDA_INPUT),
-	HDA_CODEC_MUTE("Mixer-1 Switch", 0x17, 0x0, HDA_INPUT),
-	HDA_CODEC_VOLUME("Mixer-2 Volume", 0x17, 0x1, HDA_INPUT),
-	HDA_CODEC_MUTE("Mixer-2 Switch", 0x17, 0x1, HDA_INPUT),
-	HDA_CODEC_VOLUME("Mixer-3 Volume", 0x17, 0x2, HDA_INPUT),
-	HDA_CODEC_MUTE("Mixer-3 Switch", 0x17, 0x2, HDA_INPUT),
-	HDA_CODEC_VOLUME("Mixer-4 Volume", 0x17, 0x3, HDA_INPUT),
-	HDA_CODEC_MUTE("Mixer-4 Switch", 0x17, 0x3, HDA_INPUT),
-	HDA_CODEC_VOLUME("Mixer-5 Volume", 0x17, 0x4, HDA_INPUT),
-	HDA_CODEC_MUTE("Mixer-5 Switch", 0x17, 0x4, HDA_INPUT),
+	HDA_CODEC_VOLUME("PCM Volume", 0x17, 0x0, HDA_INPUT),
+	HDA_CODEC_MUTE("PCM Switch", 0x17, 0x0, HDA_INPUT),
+	HDA_CODEC_VOLUME("MIC1 pin Volume", 0x17, 0x1, HDA_INPUT),
+	HDA_CODEC_MUTE("MIC1 pin Switch", 0x17, 0x1, HDA_INPUT),
+	HDA_CODEC_VOLUME("LINE1 pin Volume", 0x17, 0x2, HDA_INPUT),
+	HDA_CODEC_MUTE("LINE1 pin Switch", 0x17, 0x2, HDA_INPUT),
+	HDA_CODEC_VOLUME("HP-OUT pin Volume", 0x17, 0x3, HDA_INPUT),
+	HDA_CODEC_MUTE("HP-OUT pin Switch", 0x17, 0x3, HDA_INPUT),
+	HDA_CODEC_VOLUME("CD pin Volume", 0x17, 0x4, HDA_INPUT),
+	HDA_CODEC_MUTE("CD pin Switch", 0x17, 0x4, HDA_INPUT),
 	{
 		.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
 		.name = "Input Source",
@@ -985,10 +985,6 @@ static const struct hda_verb cxt5045_test_init_verbs[] = {
 	{0x13, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT},
 	{0x18, AC_VERB_SET_DIGI_CONVERT_1, 0},
 
-	/* Start with output sum widgets muted and their output gains at min */
-	{0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)},
-	{0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)},
-
 	/* Unmute retasking pin widget output buffers since the default
 	 * state appears to be output.  As the pin mode is changed by the
 	 * user the pin mode control will take care of enabling the pin's
@@ -1003,11 +999,11 @@ static const struct hda_verb cxt5045_test_init_verbs[] = {
 	/* Set ADC connection select to match default mixer setting (mic1
 	 * pin)
 	 */
-	{0x1a, AC_VERB_SET_CONNECT_SEL, 0x00},
-	{0x17, AC_VERB_SET_CONNECT_SEL, 0x00},
+	{0x1a, AC_VERB_SET_CONNECT_SEL, 0x01},
+	{0x17, AC_VERB_SET_CONNECT_SEL, 0x01},
 
 	/* Mute all inputs to mixer widget (even unconnected ones) */
-	{0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, /* Mixer pin */
+	{0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, /* Mixer */
 	{0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)}, /* Mic1 pin */
 	{0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(2)}, /* Line pin */
 	{0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(3)}, /* HP pin */
-- 
1.7.9.1


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

* Re: [PATCH 0/6] sound/pci/hda: CX20549 cleanup/fixes
  2012-04-06 13:01     ` Michael Karcher
@ 2012-04-07 10:34       ` Takashi Iwai
  0 siblings, 0 replies; 15+ messages in thread
From: Takashi Iwai @ 2012-04-07 10:34 UTC (permalink / raw)
  To: Michael Karcher; +Cc: Jaroslav Kysela, alsa-devel, linux-kernel

At Fri, 06 Apr 2012 15:01:47 +0200,
Michael Karcher wrote:
> 
> On Thu, 2012-04-05 at 16:28 +0200, Takashi Iwai wrote:
> > BTW, did you try model=auto option to enable the auto-parser?
> > If it doesn't work well for you, let me know.
> 
> I tried the model=auto option, too. It works mostly, but the mixer node
> seems to not be utilized correctly/at all. The capture source list does
> not contain "mixer" anymore, and there are no playback controls for
> Internal Mic/Mic/Line.

Right, the analog loopback is dropped in the auto-parser for
simplicity.

> The Capture setup seems to be built correctly
> (except for the missing mixer). The auto setup adds two extra input
> devices for jack sense.
> 
> > In anyway, give alsa-info.sh output (run with --no-upload option) for
> > better checks.
> 
> alsa-info for the revised patch-set (mailed soon) with and without
> model=auto is attached. Information I consider irrelevant (non-sound
> modules and dmesg context not relating to sound) has been edited out.

Thanks.

> BTW: I seem to have encountered an ALSA user-space bug: The codec
> provides a "master capture switch", i.e. the "mute" of the adc in amp.
> It also provides a "capture source selection enum", i.e. the "Connection
> Select" of the adc widget. The enum provides mutually exclusive capture
> sources that have no volume control, whilst the master capture switch is
> coupled with the capture volume control, and should not be related to
> the source enumeration. But if I play around with capture sources in
> alsamixer, the "Capture Switch" is turned off as soon as I switch the
> source from the first item in the Mux list to something else.

This sounds like a bug in alsa-lib mixer abstraction.
There is a known shortcomings in the "capture source" enum, e.g. it
can't take more than one ADCs.

> This happens with both the patched hard-coded "BenQ" configuration and
> the auto configuration.

OK, I'll check it in the next week.


thanks,

Takashi

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

* Re: [PATCH 0/6] ALSA: hda - CX20549 cleanup/fixes
  2012-04-06 13:34     ` [PATCH 0/6] ALSA: hda - " Michael Karcher
                         ` (5 preceding siblings ...)
  2012-04-06 13:34       ` [PATCH 6/6] ALSA: hda - clean up CX20549 test mixer setup Michael Karcher
@ 2012-04-07 10:36       ` Takashi Iwai
  6 siblings, 0 replies; 15+ messages in thread
From: Takashi Iwai @ 2012-04-07 10:36 UTC (permalink / raw)
  To: Michael Karcher; +Cc: Jaroslav Kysela, alsa-devel, linux-kernel

At Fri,  6 Apr 2012 15:34:14 +0200,
Michael Karcher wrote:
> 
> This is the revised patch series for the CX20549 (and related stuff)
> 
> Changes:
>  Patch 1/6:
>   - spec->single_adc_amp has been moved to codec->single_adc_amp
>     to fix printing in /proc.
>  Patch 2/6: 
>   - "Line In" has been changed to "Line".
>   - This change has also been performed on the Mixer Labels.
>  Patch 4/6:
>   - .num_items has been adjusted, too.
>   - A comment about physical testing has been added to the commit message.
>  Patch 5/6:
>   - pin_amp_workaround is not set for CX20549 in auto-setup, too

Thanks, applied all patches now.

(BTW, the first patch caused a few obvious warnings from
 checkpatch.pl, so I fixed manually.  At the next time, please run
 checkpatch.pl once before submission.)


Takashi

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

* Re: [PATCH 6/6] ALSA: hda - clean up CX20549 test mixer setup
  2012-04-06 13:34       ` [PATCH 6/6] ALSA: hda - clean up CX20549 test mixer setup Michael Karcher
@ 2012-04-10  6:54         ` David Henningsson
  2012-04-10 12:59           ` Takashi Iwai
  0 siblings, 1 reply; 15+ messages in thread
From: David Henningsson @ 2012-04-10  6:54 UTC (permalink / raw)
  To: Michael Karcher; +Cc: Takashi Iwai, Jaroslav Kysela, alsa-devel, linux-kernel

On 04/06/2012 03:34 PM, Michael Karcher wrote:
> name pins consistently (MIC1/LINE1/HP-OUT/CD) on all controls
> affecting those pins.

If this is a test mixer only, so maybe it does not matter that much, but 
anyway:

Loopback controls are usually labeled

"Line Playback Volume"
"Mic Playback Volume"

And outputs:

"Headphone Playback Volume"

For line outputs, I'm not sure if the right thing is

"Front Playback Volume",
"Line-Out Playback Volume", or
"Line Out Playback Volume"


> remove duplicate SET_AMP_GAIN_MUTE to 0x17/index 0 and 0x17/index 1
>
> really select MIC1, not Mixer out for recording
>
> "Mixer out" for recording is not a "pin", adjust comment
>
> Signed-off-by: Michael Karcher<kernel@mkarcher.dialup.fu-berlin.de>
> ---
>   sound/pci/hda/patch_conexant.c |   38 +++++++++++++++++---------------------
>   1 files changed, 17 insertions(+), 21 deletions(-)
>
> diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c
> index 8fe9f9d..a36488d 100644
> --- a/sound/pci/hda/patch_conexant.c
> +++ b/sound/pci/hda/patch_conexant.c
> @@ -930,10 +930,10 @@ static const struct snd_kcontrol_new cxt5045_test_mixer[] = {
>   	/* Output controls */
>   	HDA_CODEC_VOLUME("Speaker Playback Volume", 0x10, 0x0, HDA_OUTPUT),
>   	HDA_CODEC_MUTE("Speaker Playback Switch", 0x10, 0x0, HDA_OUTPUT),
> -	HDA_CODEC_VOLUME("Node 11 Playback Volume", 0x11, 0x0, HDA_OUTPUT),
> -	HDA_CODEC_MUTE("Node 11 Playback Switch", 0x11, 0x0, HDA_OUTPUT),
> -	HDA_CODEC_VOLUME("Node 12 Playback Volume", 0x12, 0x0, HDA_OUTPUT),
> -	HDA_CODEC_MUTE("Node 12 Playback Switch", 0x12, 0x0, HDA_OUTPUT),
> +	HDA_CODEC_VOLUME("HP-OUT Playback Volume", 0x11, 0x0, HDA_OUTPUT),
> +	HDA_CODEC_MUTE("HP-OUT Playback Switch", 0x11, 0x0, HDA_OUTPUT),
> +	HDA_CODEC_VOLUME("LINE1 Playback Volume", 0x12, 0x0, HDA_OUTPUT),
> +	HDA_CODEC_MUTE("LINE1 Playback Switch", 0x12, 0x0, HDA_OUTPUT),
>   	
>   	/* Modes for retasking pin widgets */
>   	CXT_PIN_MODE("HP-OUT pin mode", 0x11, CXT_PIN_DIR_INOUT),
> @@ -944,16 +944,16 @@ static const struct snd_kcontrol_new cxt5045_test_mixer[] = {
>
>   	/* Loopback mixer controls */
>
> -	HDA_CODEC_VOLUME("Mixer-1 Volume", 0x17, 0x0, HDA_INPUT),
> -	HDA_CODEC_MUTE("Mixer-1 Switch", 0x17, 0x0, HDA_INPUT),
> -	HDA_CODEC_VOLUME("Mixer-2 Volume", 0x17, 0x1, HDA_INPUT),
> -	HDA_CODEC_MUTE("Mixer-2 Switch", 0x17, 0x1, HDA_INPUT),
> -	HDA_CODEC_VOLUME("Mixer-3 Volume", 0x17, 0x2, HDA_INPUT),
> -	HDA_CODEC_MUTE("Mixer-3 Switch", 0x17, 0x2, HDA_INPUT),
> -	HDA_CODEC_VOLUME("Mixer-4 Volume", 0x17, 0x3, HDA_INPUT),
> -	HDA_CODEC_MUTE("Mixer-4 Switch", 0x17, 0x3, HDA_INPUT),
> -	HDA_CODEC_VOLUME("Mixer-5 Volume", 0x17, 0x4, HDA_INPUT),
> -	HDA_CODEC_MUTE("Mixer-5 Switch", 0x17, 0x4, HDA_INPUT),
> +	HDA_CODEC_VOLUME("PCM Volume", 0x17, 0x0, HDA_INPUT),
> +	HDA_CODEC_MUTE("PCM Switch", 0x17, 0x0, HDA_INPUT),
> +	HDA_CODEC_VOLUME("MIC1 pin Volume", 0x17, 0x1, HDA_INPUT),
> +	HDA_CODEC_MUTE("MIC1 pin Switch", 0x17, 0x1, HDA_INPUT),
> +	HDA_CODEC_VOLUME("LINE1 pin Volume", 0x17, 0x2, HDA_INPUT),
> +	HDA_CODEC_MUTE("LINE1 pin Switch", 0x17, 0x2, HDA_INPUT),
> +	HDA_CODEC_VOLUME("HP-OUT pin Volume", 0x17, 0x3, HDA_INPUT),
> +	HDA_CODEC_MUTE("HP-OUT pin Switch", 0x17, 0x3, HDA_INPUT),

Eh, is there a loopback control from the headphone?

> +	HDA_CODEC_VOLUME("CD pin Volume", 0x17, 0x4, HDA_INPUT),
> +	HDA_CODEC_MUTE("CD pin Switch", 0x17, 0x4, HDA_INPUT),
>   	{
>   		.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
>   		.name = "Input Source",
> @@ -985,10 +985,6 @@ static const struct hda_verb cxt5045_test_init_verbs[] = {
>   	{0x13, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT},
>   	{0x18, AC_VERB_SET_DIGI_CONVERT_1, 0},
>
> -	/* Start with output sum widgets muted and their output gains at min */
> -	{0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)},
> -	{0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)},
> -
>   	/* Unmute retasking pin widget output buffers since the default
>   	 * state appears to be output.  As the pin mode is changed by the
>   	 * user the pin mode control will take care of enabling the pin's
> @@ -1003,11 +999,11 @@ static const struct hda_verb cxt5045_test_init_verbs[] = {
>   	/* Set ADC connection select to match default mixer setting (mic1
>   	 * pin)
>   	 */
> -	{0x1a, AC_VERB_SET_CONNECT_SEL, 0x00},
> -	{0x17, AC_VERB_SET_CONNECT_SEL, 0x00},
> +	{0x1a, AC_VERB_SET_CONNECT_SEL, 0x01},
> +	{0x17, AC_VERB_SET_CONNECT_SEL, 0x01},
>
>   	/* Mute all inputs to mixer widget (even unconnected ones) */
> -	{0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, /* Mixer pin */
> +	{0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, /* Mixer */
>   	{0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)}, /* Mic1 pin */
>   	{0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(2)}, /* Line pin */
>   	{0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(3)}, /* HP pin */



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

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

* Re: [PATCH 6/6] ALSA: hda - clean up CX20549 test mixer setup
  2012-04-10  6:54         ` David Henningsson
@ 2012-04-10 12:59           ` Takashi Iwai
  0 siblings, 0 replies; 15+ messages in thread
From: Takashi Iwai @ 2012-04-10 12:59 UTC (permalink / raw)
  To: David Henningsson
  Cc: Michael Karcher, Jaroslav Kysela, alsa-devel, linux-kernel

At Tue, 10 Apr 2012 08:54:19 +0200,
David Henningsson wrote:
> 
> On 04/06/2012 03:34 PM, Michael Karcher wrote:
> > name pins consistently (MIC1/LINE1/HP-OUT/CD) on all controls
> > affecting those pins.
> 
> If this is a test mixer only, so maybe it does not matter that much, but 
> anyway:
> 
> Loopback controls are usually labeled
> 
> "Line Playback Volume"
> "Mic Playback Volume"
> 
> And outputs:
> 
> "Headphone Playback Volume"
> 
> For line outputs, I'm not sure if the right thing is
> 
> "Front Playback Volume",
> "Line-Out Playback Volume", or
> "Line Out Playback Volume"

Yeah, in general, the strings like these would be better.
But it's a test-only mode, which should be turned on by the user at
own risk, so I didn't want to be too picky.


> > remove duplicate SET_AMP_GAIN_MUTE to 0x17/index 0 and 0x17/index 1
> >
> > really select MIC1, not Mixer out for recording
> >
> > "Mixer out" for recording is not a "pin", adjust comment
> >
> > Signed-off-by: Michael Karcher<kernel@mkarcher.dialup.fu-berlin.de>
> > ---
> >   sound/pci/hda/patch_conexant.c |   38 +++++++++++++++++---------------------
> >   1 files changed, 17 insertions(+), 21 deletions(-)
> >
> > diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c
> > index 8fe9f9d..a36488d 100644
> > --- a/sound/pci/hda/patch_conexant.c
> > +++ b/sound/pci/hda/patch_conexant.c
> > @@ -930,10 +930,10 @@ static const struct snd_kcontrol_new cxt5045_test_mixer[] = {
> >   	/* Output controls */
> >   	HDA_CODEC_VOLUME("Speaker Playback Volume", 0x10, 0x0, HDA_OUTPUT),
> >   	HDA_CODEC_MUTE("Speaker Playback Switch", 0x10, 0x0, HDA_OUTPUT),
> > -	HDA_CODEC_VOLUME("Node 11 Playback Volume", 0x11, 0x0, HDA_OUTPUT),
> > -	HDA_CODEC_MUTE("Node 11 Playback Switch", 0x11, 0x0, HDA_OUTPUT),
> > -	HDA_CODEC_VOLUME("Node 12 Playback Volume", 0x12, 0x0, HDA_OUTPUT),
> > -	HDA_CODEC_MUTE("Node 12 Playback Switch", 0x12, 0x0, HDA_OUTPUT),
> > +	HDA_CODEC_VOLUME("HP-OUT Playback Volume", 0x11, 0x0, HDA_OUTPUT),
> > +	HDA_CODEC_MUTE("HP-OUT Playback Switch", 0x11, 0x0, HDA_OUTPUT),
> > +	HDA_CODEC_VOLUME("LINE1 Playback Volume", 0x12, 0x0, HDA_OUTPUT),
> > +	HDA_CODEC_MUTE("LINE1 Playback Switch", 0x12, 0x0, HDA_OUTPUT),
> >   	
> >   	/* Modes for retasking pin widgets */
> >   	CXT_PIN_MODE("HP-OUT pin mode", 0x11, CXT_PIN_DIR_INOUT),
> > @@ -944,16 +944,16 @@ static const struct snd_kcontrol_new cxt5045_test_mixer[] = {
> >
> >   	/* Loopback mixer controls */
> >
> > -	HDA_CODEC_VOLUME("Mixer-1 Volume", 0x17, 0x0, HDA_INPUT),
> > -	HDA_CODEC_MUTE("Mixer-1 Switch", 0x17, 0x0, HDA_INPUT),
> > -	HDA_CODEC_VOLUME("Mixer-2 Volume", 0x17, 0x1, HDA_INPUT),
> > -	HDA_CODEC_MUTE("Mixer-2 Switch", 0x17, 0x1, HDA_INPUT),
> > -	HDA_CODEC_VOLUME("Mixer-3 Volume", 0x17, 0x2, HDA_INPUT),
> > -	HDA_CODEC_MUTE("Mixer-3 Switch", 0x17, 0x2, HDA_INPUT),
> > -	HDA_CODEC_VOLUME("Mixer-4 Volume", 0x17, 0x3, HDA_INPUT),
> > -	HDA_CODEC_MUTE("Mixer-4 Switch", 0x17, 0x3, HDA_INPUT),
> > -	HDA_CODEC_VOLUME("Mixer-5 Volume", 0x17, 0x4, HDA_INPUT),
> > -	HDA_CODEC_MUTE("Mixer-5 Switch", 0x17, 0x4, HDA_INPUT),
> > +	HDA_CODEC_VOLUME("PCM Volume", 0x17, 0x0, HDA_INPUT),
> > +	HDA_CODEC_MUTE("PCM Switch", 0x17, 0x0, HDA_INPUT),
> > +	HDA_CODEC_VOLUME("MIC1 pin Volume", 0x17, 0x1, HDA_INPUT),
> > +	HDA_CODEC_MUTE("MIC1 pin Switch", 0x17, 0x1, HDA_INPUT),
> > +	HDA_CODEC_VOLUME("LINE1 pin Volume", 0x17, 0x2, HDA_INPUT),
> > +	HDA_CODEC_MUTE("LINE1 pin Switch", 0x17, 0x2, HDA_INPUT),
> > +	HDA_CODEC_VOLUME("HP-OUT pin Volume", 0x17, 0x3, HDA_INPUT),
> > +	HDA_CODEC_MUTE("HP-OUT pin Switch", 0x17, 0x3, HDA_INPUT),
> 
> Eh, is there a loopback control from the headphone?

The HP pin can be used as an input on many codecs indeed.


Takashi

> > +	HDA_CODEC_VOLUME("CD pin Volume", 0x17, 0x4, HDA_INPUT),
> > +	HDA_CODEC_MUTE("CD pin Switch", 0x17, 0x4, HDA_INPUT),
> >   	{
> >   		.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
> >   		.name = "Input Source",
> > @@ -985,10 +985,6 @@ static const struct hda_verb cxt5045_test_init_verbs[] = {
> >   	{0x13, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT},
> >   	{0x18, AC_VERB_SET_DIGI_CONVERT_1, 0},
> >
> > -	/* Start with output sum widgets muted and their output gains at min */
> > -	{0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)},
> > -	{0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)},
> > -
> >   	/* Unmute retasking pin widget output buffers since the default
> >   	 * state appears to be output.  As the pin mode is changed by the
> >   	 * user the pin mode control will take care of enabling the pin's
> > @@ -1003,11 +999,11 @@ static const struct hda_verb cxt5045_test_init_verbs[] = {
> >   	/* Set ADC connection select to match default mixer setting (mic1
> >   	 * pin)
> >   	 */
> > -	{0x1a, AC_VERB_SET_CONNECT_SEL, 0x00},
> > -	{0x17, AC_VERB_SET_CONNECT_SEL, 0x00},
> > +	{0x1a, AC_VERB_SET_CONNECT_SEL, 0x01},
> > +	{0x17, AC_VERB_SET_CONNECT_SEL, 0x01},
> >
> >   	/* Mute all inputs to mixer widget (even unconnected ones) */
> > -	{0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, /* Mixer pin */
> > +	{0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, /* Mixer */
> >   	{0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)}, /* Mic1 pin */
> >   	{0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(2)}, /* Line pin */
> >   	{0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(3)}, /* HP pin */
> 
> 
> 
> -- 
> David Henningsson, Canonical Ltd.
> http://launchpad.net/~diwic
> 

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

end of thread, other threads:[~2012-04-10 12:59 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-04-05 13:29 [PATCH 0/6] sound/pci/hda: CX20549 cleanup/fixes Michael Karcher
2012-04-05 14:27 ` Takashi Iwai
2012-04-05 14:28   ` Takashi Iwai
2012-04-06 13:01     ` Michael Karcher
2012-04-07 10:34       ` Takashi Iwai
2012-04-06 13:34     ` [PATCH 0/6] ALSA: hda - " Michael Karcher
2012-04-06 13:34       ` [PATCH 1/6] ALSA: hda - Fix proc output for ADC amp values of CX20549 Michael Karcher
2012-04-06 13:34       ` [PATCH 2/6] ALSA: hda - Rename capture sources of CX20549 to match common conventions Michael Karcher
2012-04-06 13:34       ` [PATCH 3/6] ALSA: hda - fix record volume controls of CX20459 ("Venice") Michael Karcher
2012-04-06 13:34       ` [PATCH 4/6] ALSA: hda - Remove CD control from model=benq for CX20549 Michael Karcher
2012-04-06 13:34       ` [PATCH 5/6] ALSA: hda - CX20549 doesn't need pin_amp_workaround Michael Karcher
2012-04-06 13:34       ` [PATCH 6/6] ALSA: hda - clean up CX20549 test mixer setup Michael Karcher
2012-04-10  6:54         ` David Henningsson
2012-04-10 12:59           ` Takashi Iwai
2012-04-07 10:36       ` [PATCH 0/6] ALSA: hda - CX20549 cleanup/fixes Takashi Iwai

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).