* ALSA: HDA ad1989 on Intel SCH interrupt issues
[not found] <mailman.13951.1297102081.2074.alsa-devel@alsa-project.org>
@ 2011-02-07 19:39 ` Aleksandar Mihaylov
0 siblings, 0 replies; only message in thread
From: Aleksandar Mihaylov @ 2011-02-07 19:39 UTC (permalink / raw)
To: alsa-devel
[-- Attachment #1.1.1: Type: text/plain, Size: 2280 bytes --]
Hello,
I have been working on a custom audio interface, utilizing the Intel
SCH and an ad1989 codec. the goal is to provide 1 stereo headphone
output and 3 stereo microphone inputs. As the Intel SCH only provides
two DMA engines per direction my first question will be: How do i setup
interleaving of the 3 stereo ADCs provided by the ad1989, through the
two DMA engines.
Additionally the more intriguing problem involves interrupt handling
during capture(using APIC). Upon boot (or module reload) playback works
just fine, however recording fails with "ALSA pcm_lib.c:1787: capture
write error (DMA or IRQ trouble?)". This behaviour is consistent if one
tries to continuously record form one stereo channel and is applicable
to all 3 PCM-substreams as long as they are accessed one at a time.
However if i try to record from 2 or more PCM substreams simultaneously,
after a few failed attempts(same issue as above: DMA/IRQ trouble) one of
the channels will engage, after which any subsequent recording request
will start without any problems.
The above issues arise when i force the HDA controller in APIC mode. If
the controller is left in the default MSI interrupt mode then the kernel
receives no interrupts on that IRQ, resulting in playback only playing
the first buffer repetitively, until timing out with "DMA or IRQ
trouble?". However recording exhibits a similar behaviour to above,
where after a few attempts it successfully begins to record, inspection
of /proc/interrupts still returns 0 for the assigned IRQ line.
The same behaviour is exhibited when i use the default patch_analog.c
module (snd-hda-codec-analog). Playback and recording through other
media such as usb seem to work fine.
Attached i am sending the alsa-info outputs immediately upon boot, and
after the capture streams have begun recording properly, i have included
detailed lspci output at the end of each file. Additionally i am sending
the patch for alsa-driver 1.0.24 that contains the code for the new
module as well as the PCI_QUIRKS i have added to hda_intel.c. My working
directory is available through at:
git://github.com/sashkosnail/AD1989_HDA.git
I will much appreciate any input on the problem.
--
Aleksandar Mihaylov, EIT
[-- Attachment #1.1.2: after_boot.txt --]
[-- Type: text/plain, Size: 30721 bytes --]
ALSA-INFO dump:
upload=true&script=true&cardinfo=
!!################################
!!ALSA Information Script v 0.4.59
!!################################
!!Script ran on: Mon Feb 7 19:07:16 UTC 2011
!!Linux Distribution
!!------------------
Fedora release 14 (Laughlin) Fedora release 14 (Laughlin) Fedora release 14 (Laughlin) Fedora release 14 (Laughlin)
!!DMI Information
!!---------------
Manufacturer: Eurotech, Inc.
Product Name: Catalyst
!!Kernel Information
!!------------------
Kernel release: 2.6.37.hda1
Operating System: GNU/Linux
Architecture: i686
Processor: i686
SMP Enabled: Yes
!!ALSA Version
!!------------
Driver version: 1.0.24
Library version: 1.0.24.1
Utilities version: 1.0.24.2
!!Loaded ALSA modules
!!-------------------
snd_hda_intel
!!Sound Servers on this system
!!----------------------------
Pulseaudio:
Installed - Yes (/usr/bin/pulseaudio)
Running - No
Jack:
Installed - Yes (/usr/bin/jackd)
Running - No
!!Soundcards recognised by ALSA
!!-----------------------------
0 [MID ]: HDA-Intel - HDA Intel MID
HDA Intel MID at 0x942c0000 irq 16
!!PCI Soundcards installed in the system
!!--------------------------------------
00:1b.0 Audio device: Intel Corporation System Controller Hub (SCH Poulsbo) HD Audio Controller (rev 07)
!!Advanced information - PCI Vendor/Device/Susbsystem ID's
!!--------------------------------------------------------
00:1b.0 0403: 8086:811b (rev 07)
Subsystem: 8086:8119
!!Loaded sound module options
!!--------------------------
!!Module: snd_hda_intel
bdl_pos_adj : 32,-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 : 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
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
!!HDA-Intel Codec information
!!---------------------------
--startcollapse--
Codec: Analog Devices AD1989A
Address: 1
AFG Function Id: 0x1 (unsol 0)
Vendor Id: 0x11d4989a
Subsystem Id: 0xbfd80000
Revision Id: 0x100300
No Modem Function Group found
Default PCM:
rates [0x7ff]: 8000 11025 16000 22050 32000 44100 48000 88200 96000 176400 192000
bits [0xe]: 16 20 24
formats [0x1]: PCM
Default Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
Default Amp-Out caps: ofs=0x27, nsteps=0x27, stepsize=0x05, mute=0
GPIO: io=3, o=0, i=0, unsolicited=1, wake=0
IO[0]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
IO[1]: enable=0, dir=0, wake=0, sticky=0, data=1, unsol=0
IO[2]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
Node 0x02 [Audio Output] wcaps 0x30211: Stereo Digital
Converter: stream=0, channel=0
Digital:
Digital category: 0x0
PCM:
rates [0x7e0]: 44100 48000 88200 96000 176400 192000
bits [0xe]: 16 20 24
formats [0x5]: PCM AC3
Delay: 3 samples
Node 0x03 [Audio Output] wcaps 0x405: Stereo Amp-Out
Control: name="Headphone Playback Volume", index=0, device=0
ControlAmp: chs=3, dir=Out, idx=0, ofs=0
Device: name="AD1989 EuroPCM", type="Audio", device=0
Amp-Out caps: ofs=0x27, nsteps=0x27, stepsize=0x05, mute=0
Amp-Out vals: [0x19 0x19]
Converter: stream=0, channel=0
Power states: D0 D3
Power: setting=D0, actual=D0
Node 0x04 [Audio Output] wcaps 0x405: Stereo Amp-Out
Amp-Out caps: ofs=0x27, nsteps=0x27, stepsize=0x05, mute=0
Amp-Out vals: [0x27 0x27]
Converter: stream=0, channel=0
Power states: D0 D3
Power: setting=D3, actual=D3
Node 0x05 [Audio Output] wcaps 0x405: Stereo Amp-Out
Amp-Out caps: ofs=0x27, nsteps=0x27, stepsize=0x05, mute=0
Amp-Out vals: [0x27 0x27]
Converter: stream=0, channel=0
Power states: D0 D3
Power: setting=D3, actual=D3
Node 0x06 [Audio Output] wcaps 0x405: Stereo Amp-Out
Amp-Out caps: ofs=0x27, nsteps=0x27, stepsize=0x05, mute=0
Amp-Out vals: [0x27 0x27]
Converter: stream=0, channel=0
Power states: D0 D3
Power: setting=D3, actual=D3
Node 0x07 [Audio Input] wcaps 0x130391: Stereo Digital
Converter: stream=0, channel=0
SDI-Select: 0
Digital:
Digital category: 0x0
PCM:
rates [0x7e0]: 44100 48000 88200 96000 176400 192000
bits [0xe]: 16 20 24
formats [0x5]: PCM AC3
Unsolicited: tag=00, enabled=0
Delay: 3 samples
Connection: 1
0x1c
Node 0x08 [Audio Input] wcaps 0x100501: Stereo
Converter: stream=0, channel=0
SDI-Select: 0
Power states: D0 D3
Power: setting=D0, actual=D0
Connection: 1
0x0c
Node 0x09 [Audio Input] wcaps 0x100501: Stereo
Device: name="AD1989 EuroPCM", type="Audio", device=0
Converter: stream=0, channel=0
SDI-Select: 0
Power states: D0 D3
Power: setting=D0, actual=D0
Connection: 1
0x0d
Node 0x0a [Audio Output] wcaps 0x405: Stereo Amp-Out
Amp-Out caps: ofs=0x27, nsteps=0x27, stepsize=0x05, mute=0
Amp-Out vals: [0x27 0x27]
Converter: stream=0, channel=0
Power states: D0 D3
Power: setting=D3, actual=D3
Node 0x0b [Audio Output] wcaps 0x30211: Stereo Digital
Converter: stream=0, channel=0
Digital:
Digital category: 0x0
PCM:
rates [0x7e0]: 44100 48000 88200 96000 176400 192000
bits [0xe]: 16 20 24
formats [0x5]: PCM AC3
Delay: 3 samples
Node 0x0c [Audio Selector] wcaps 0x30010d: Stereo Amp-Out
Control: name="Microphone 1 Capture Volume", index=0, device=0
ControlAmp: chs=3, dir=Out, idx=0, ofs=0
Amp-Out caps: ofs=0x27, nsteps=0x36, stepsize=0x05, mute=1
Amp-Out vals: [0x00 0x00]
Connection: 11
0x38 0x39* 0x3a 0x3b 0x3c 0x18 0x24 0x25 0x3d 0x20 0x1f
Node 0x0d [Audio Selector] wcaps 0x30010d: Stereo Amp-Out
Control: name="Microphone 2 Capture Volume", index=0, device=0
ControlAmp: chs=3, dir=Out, idx=0, ofs=0
Amp-Out caps: ofs=0x27, nsteps=0x36, stepsize=0x05, mute=1
Amp-Out vals: [0x00 0x00]
Connection: 10
0x38 0x39 0x3a* 0x3b 0x3c 0x18 0x24 0x25 0x3d 0x20
Node 0x0e [Audio Selector] wcaps 0x30010d: Stereo Amp-Out
Control: name="Microphone 3 Capture Volume", index=0, device=0
ControlAmp: chs=3, dir=Out, idx=0, ofs=0
Amp-Out caps: ofs=0x27, nsteps=0x36, stepsize=0x05, mute=1
Amp-Out vals: [0x00 0x00]
Connection: 10
0x38 0x39 0x3a 0x3b 0x3c* 0x18 0x24 0x25 0x3d 0x20
Node 0x0f [Audio Input] wcaps 0x100501: Stereo
Converter: stream=0, channel=0
SDI-Select: 0
Power states: D0 D3
Power: setting=D0, actual=D0
Connection: 1
0x0e
Node 0x10 [Beep Generator Widget] wcaps 0x70000c: Mono Amp-Out
Amp-Out caps: ofs=0x0f, nsteps=0x0f, stepsize=0x0b, mute=1
Amp-Out vals: [0x00]
Node 0x11 [Pin Complex] wcaps 0x40018d: Stereo Amp-Out
Control: name="Headphone Playback Switch", index=0, device=0
ControlAmp: chs=3, dir=Out, idx=0, ofs=0
Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
Amp-Out vals: [0x00 0x00]
Pincap 0x0000373f: IN OUT HP Detect Trigger ImpSense
Vref caps: HIZ 50 GRD 80 100
Pin Default 0x02214110: [Jack] HP Out at Ext Front
Conn = 1/8, Color = Green
DefAssociation = 0x1, Sequence = 0x0
Misc = NO_PRESENCE
Pin-ctls: 0xc0: OUT HP VREF_HIZ
Unsolicited: tag=00, enabled=0
Connection: 1
0x22
Node 0x12 [Pin Complex] wcaps 0x40018d: Stereo Amp-Out
Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
Amp-Out vals: [0x80 0x80]
Pincap 0x0000373f: IN OUT HP Detect Trigger ImpSense
Vref caps: HIZ 50 GRD 80 100
Pin Default 0x01014010: [Jack] Line Out at Ext Rear
Conn = 1/8, Color = Green
DefAssociation = 0x1, Sequence = 0x0
Pin-ctls: 0x00: VREF_HIZ
Unsolicited: tag=00, enabled=0
Connection: 1
0x29
Node 0x13 [Pin Complex] wcaps 0x40010c: Mono Amp-Out
Amp-Out caps: ofs=0x1f, nsteps=0x1f, stepsize=0x05, mute=1
Amp-Out vals: [0x00]
Pincap 0x00000010: OUT
Pin Default 0x991301f0: [Fixed] Speaker at Int ATAPI
Conn = ATAPI, Color = Unknown
DefAssociation = 0xf, Sequence = 0x0
Misc = NO_PRESENCE
Pin-ctls: 0x00:
Connection: 1
0x2d
Node 0x14 [Pin Complex] wcaps 0x40018d: Stereo Amp-Out
Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
Amp-Out vals: [0x00 0x00]
Pincap 0x0000373f: IN OUT HP Detect Trigger ImpSense
Vref caps: HIZ 50 GRD 80 100
Pin Default 0x02a19120: [Jack] Mic at Ext Front
Conn = 1/8, Color = Pink
DefAssociation = 0x2, Sequence = 0x0
Misc = NO_PRESENCE
Pin-ctls: 0x24: IN VREF_80
Unsolicited: tag=00, enabled=0
Connection: 1
0x2b
Node 0x15 [Pin Complex] wcaps 0x40018d: Stereo Amp-Out
Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
Amp-Out vals: [0x00 0x00]
Pincap 0x00003737: IN OUT Detect Trigger ImpSense
Vref caps: HIZ 50 GRD 80 100
Pin Default 0x02a19121: [Jack] Mic at Ext Front
Conn = 1/8, Color = Pink
DefAssociation = 0x2, Sequence = 0x1
Misc = NO_PRESENCE
Pin-ctls: 0x24: IN VREF_80
Unsolicited: tag=00, enabled=0
Connection: 1
0x2c
Node 0x16 [Pin Complex] wcaps 0x40018d: Stereo Amp-Out
Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
Amp-Out vals: [0x80 0x80]
Pincap 0x00000037: IN OUT Detect Trigger ImpSense
Pin Default 0x01011012: [Jack] Line Out at Ext Rear
Conn = 1/8, Color = Black
DefAssociation = 0x1, Sequence = 0x2
Pin-ctls: 0x00:
Unsolicited: tag=00, enabled=0
Connection: 1
0x2a
Node 0x17 [Pin Complex] wcaps 0x40098d: Stereo Amp-Out R/L
Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
Amp-Out vals: [0x00 0x00]
Pincap 0x00003737: IN OUT Detect Trigger ImpSense
Vref caps: HIZ 50 GRD 80 100
Pin Default 0x02a19122: [Jack] Mic at Ext Front
Conn = 1/8, Color = Pink
DefAssociation = 0x2, Sequence = 0x2
Misc = NO_PRESENCE
Pin-ctls: 0x24: IN VREF_80
Unsolicited: tag=00, enabled=0
Connection: 1
0x26
Node 0x18 [Pin Complex] wcaps 0x400081: Stereo
Pincap 0x00000024: IN Detect
Pin Default 0x9933012e: [Fixed] CD at Int ATAPI
Conn = ATAPI, Color = Unknown
DefAssociation = 0x2, Sequence = 0xe
Misc = NO_PRESENCE
Pin-ctls: 0x00:
Unsolicited: tag=00, enabled=0
Node 0x19 [Power Widget] wcaps 0x500500: Mono
Power states: D0 D3
Power: setting=D0, actual=D0
Connection: 2
0x20 0x21
Node 0x1a [Pin Complex] wcaps 0x400000: Mono
Pincap 0x00000020: IN
Pin Default 0x99f301f0: [Fixed] Other at Int ATAPI
Conn = ATAPI, Color = Unknown
DefAssociation = 0xf, Sequence = 0x0
Misc = NO_PRESENCE
Pin-ctls: 0x20: IN
Node 0x1b [Pin Complex] wcaps 0x40030d: Stereo Digital Amp-Out
Amp-Out caps: ofs=0x27, nsteps=0x27, stepsize=0x05, mute=1
Amp-Out vals: [0xa7 0xa7]
Pincap 0x00000010: OUT
Pin Default 0x014511f0: [Jack] SPDIF Out at Ext Rear
Conn = Optical, Color = Black
DefAssociation = 0xf, Sequence = 0x0
Misc = NO_PRESENCE
Pin-ctls: 0x00:
Connection: 1
0x02
Node 0x1c [Pin Complex] wcaps 0x40020b: Stereo Digital Amp-In
Amp-In caps: ofs=0x17, nsteps=0x1f, stepsize=0x05, mute=1
Amp-In vals: [0x97 0x97]
Pincap 0x00000020: IN
Pin Default 0x01c511f0: [Jack] SPDIF In at Ext Rear
Conn = Optical, Color = Black
DefAssociation = 0xf, Sequence = 0x0
Misc = NO_PRESENCE
Pin-ctls: 0x20: IN
Node 0x1d [Pin Complex] wcaps 0x40030d: Stereo Digital Amp-Out
Amp-Out caps: ofs=0x27, nsteps=0x27, stepsize=0x05, mute=1
Amp-Out vals: [0xa7 0xa7]
Pincap 0x00000010: OUT
Pin Default 0x985601f0: [Fixed] Digital Out at Int HDMI
Conn = Digital, Color = Unknown
DefAssociation = 0xf, Sequence = 0x0
Misc = NO_PRESENCE
Pin-ctls: 0x00:
Connection: 1
0x0b
Node 0x1e [Audio Mixer] wcaps 0x200103: Stereo Amp-In
Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
Amp-In vals: [0x80 0x80] [0x80 0x80]
Connection: 2
0x36 0x21
Node 0x1f [Pin Complex] wcaps 0x40000b: Stereo Amp-In
Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x17, mute=0
Amp-In vals: [0x00 0x00]
Pincap 0x00000020: IN
Pin Default 0x97a601f0: [Fixed] Mic at Int Riser
Conn = Digital, Color = Unknown
DefAssociation = 0xf, Sequence = 0x0
Misc = NO_PRESENCE
Pin-ctls: 0x14:
Node 0x20 [Audio Mixer] wcaps 0x20010b: Stereo Amp-In
Amp-In caps: ofs=0x17, nsteps=0x1f, stepsize=0x05, mute=1
Amp-In vals: [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80]
Connection: 8
0x39 0x33 0x38 0x3d 0x34 0x3b 0x18 0x1a
Node 0x21 [Audio Selector] wcaps 0x30010d: Stereo Amp-Out
Amp-Out caps: ofs=0x1f, nsteps=0x1f, stepsize=0x05, mute=1
Amp-Out vals: [0x80 0x80]
Connection: 1
0x20
Node 0x22 [Audio Mixer] wcaps 0x200103: Stereo Amp-In
Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
Amp-In vals: [0x00 0x00] [0x80 0x80]
Connection: 2
0x37 0x21
Node 0x23 [Vendor Defined Widget] wcaps 0xf00100: Mono
Connection: 18
0x11* 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x24 0x25 0x38 0x39 0x3a 0x3b 0x3c 0x3d 0x20 0x21
Node 0x24 [Pin Complex] wcaps 0x40098d: Stereo Amp-Out R/L
Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
Amp-Out vals: [0x80 0x80]
Pincap 0x00000037: IN OUT Detect Trigger ImpSense
Pin Default 0x01016011: [Jack] Line Out at Ext Rear
Conn = 1/8, Color = Orange
DefAssociation = 0x1, Sequence = 0x1
Pin-ctls: 0x00:
Unsolicited: tag=00, enabled=0
Connection: 1
0x27
Node 0x25 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x26 [Audio Mixer] wcaps 0x200103: Stereo Amp-In
Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
Amp-In vals: [0x80 0x80] [0x80 0x80]
Connection: 2
0x32 0x21
Node 0x27 [Audio Mixer] wcaps 0x200103: Stereo Amp-In
Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
Amp-In vals: [0x80 0x80] [0x80 0x80]
Connection: 2
0x05 0x21
Node 0x28 [Audio Mixer] wcaps 0x200103: Stereo Amp-In
Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
Amp-In vals: [0x80 0x80] [0x80 0x80]
Connection: 2
0x0a 0x21
Node 0x29 [Audio Mixer] wcaps 0x200103: Stereo Amp-In
Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
Amp-In vals: [0x80 0x80] [0x80 0x80]
Connection: 2
0x04 0x21
Node 0x2a [Audio Mixer] wcaps 0x200103: Stereo Amp-In
Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
Amp-In vals: [0x80 0x80] [0x80 0x80]
Connection: 2
0x06 0x21
Node 0x2b [Audio Mixer] wcaps 0x200103: Stereo Amp-In
Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
Amp-In vals: [0x80 0x80] [0x80 0x80]
Connection: 2
0x30 0x21
Node 0x2c [Audio Mixer] wcaps 0x200103: Stereo Amp-In
Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
Amp-In vals: [0x80 0x80] [0x80 0x80]
Connection: 2
0x31 0x21
Node 0x2d [Audio Mixer] wcaps 0x200100: Mono
Connection: 1
0x1e
Node 0x2e [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x2f [Vendor Defined Widget] wcaps 0xf00100: Mono
Connection: 6
0x11* 0x12 0x14 0x15 0x16 0x17
Node 0x30 [Audio Selector] wcaps 0x300101: Stereo
Connection: 3
0x03* 0x04 0x06
Node 0x31 [Audio Selector] wcaps 0x300101: Stereo
Connection: 2
0x04* 0x0a
Node 0x32 [Audio Selector] wcaps 0x300101: Stereo
Connection: 2
0x05* 0x04
Node 0x33 [Audio Selector] wcaps 0x300101: Stereo
Connection: 3
0x3a* 0x25 0x24
Node 0x34 [Audio Selector] wcaps 0x300101: Stereo
Connection: 3
0x3c* 0x25 0x24
Node 0x35 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x36 [Audio Selector] wcaps 0x300101: Stereo
Connection: 3
0x03* 0x04 0x06
Node 0x37 [Audio Selector] wcaps 0x300101: Stereo
Connection: 3
0x03* 0x04 0x06
Node 0x38 [Audio Selector] wcaps 0x30010d: Stereo Amp-Out
Amp-Out caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
Amp-Out vals: [0x00 0x00]
Connection: 1
0x11
Node 0x39 [Audio Selector] wcaps 0x30010d: Stereo Amp-Out
Control: name="Mic 1 Capture Boost", index=0, device=0
ControlAmp: chs=3, dir=Out, idx=0, ofs=0
Amp-Out caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
Amp-Out vals: [0x00 0x00]
Connection: 1
0x14
Node 0x3a [Audio Selector] wcaps 0x30010d: Stereo Amp-Out
Control: name="Mic 2 Capture Boost", index=0, device=0
ControlAmp: chs=3, dir=Out, idx=0, ofs=0
Amp-Out caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
Amp-Out vals: [0x00 0x00]
Connection: 1
0x15
Node 0x3b [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x3c [Audio Selector] wcaps 0x30010d: Stereo Amp-Out
Control: name="Mic 3 Capture Boost", index=0, device=0
ControlAmp: chs=3, dir=Out, idx=0, ofs=0
Amp-Out caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
Amp-Out vals: [0x00 0x00]
Connection: 1
0x17
Node 0x3d [Audio Selector] wcaps 0x30010d: Stereo Amp-Out
Amp-Out caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
Amp-Out vals: [0x00 0x00]
Connection: 1
0x12
--endcollapse--
!!ALSA Device nodes
!!-----------------
crw-rw---- 1 root audio 116, 5 Feb 7 13:57 /dev/snd/controlC0
crw-rw---- 1 root audio 116, 4 Feb 7 13:57 /dev/snd/hwC0D1
crw-rw---- 1 root audio 116, 3 Feb 7 13:57 /dev/snd/pcmC0D0c
crw-rw---- 1 root audio 116, 2 Feb 7 13:57 /dev/snd/pcmC0D0p
crw-rw---- 1 root audio 116, 1 Feb 7 13:57 /dev/snd/seq
crw-rw---- 1 root audio 116, 33 Feb 7 13:57 /dev/snd/timer
/dev/snd/by-path:
total 0
drwxr-xr-x 2 root root 60 Feb 7 13:57 .
drwxr-xr-x 3 root root 180 Feb 7 13:57 ..
lrwxrwxrwx 1 root root 12 Feb 7 13:57 pci-0000:00:1b.0 -> ../controlC0
!!ALSA configuration files
!!------------------------
!!User specific config file (~/.asoundrc)
#defines the required PCM setup
pcm.Euro_HP {
type hw
card 0
device 0
subdevice 0
}
pcm.Euro_MIC1 {
type hw
card 0
device 0
subdevice 0
}
pcm.Euro_MIC2 {
type hw
card 0
device 0
subdevice 1
}
pcm.Euro_MIC3 {
type hw
card 0
device 0
subdevice 2
}
pcm_slave.stereo_slave {
pcm "hw:0,0"
channels 2
rate 48000
}
pcm.!default {
type plug
slave stereo_slave
}
!!System wide config file (/etc/asound.conf)
#
# Place your global alsa-lib configuration here...
#
@hooks [
{
func load
files [
"/home/user/alsa_mod/confs/asoundrc.conf"
]
errors false
}
]
!!Aplay/Arecord output
!!------------
APLAY
**** List of PLAYBACK Hardware Devices ****
card 0: MID [HDA Intel MID], device 0: AD1989 EuroPCM [AD1989 EuroPCM]
Subdevices: 1/1
Subdevice #0: subdevice #0
ARECORD
**** List of CAPTURE Hardware Devices ****
card 0: MID [HDA Intel MID], device 0: AD1989 EuroPCM [AD1989 EuroPCM]
Subdevices: 3/3
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
!!Amixer output
!!-------------
!!-------Mixer controls for card 0 [MID]
Card hw:0 'MID'/'HDA Intel MID at 0x942c0000 irq 16'
Mixer name : 'Analog Devices AD1989A'
Components : 'HDA:11d4989a,bfd80000,00100300'
Controls : 11
Simple ctrls : 7
Simple mixer control 'Headphone',0
Capabilities: pvolume pswitch penum
Playback channels: Front Left - Front Right
Limits: Playback 0 - 39
Mono:
Front Left: Playback 25 [64%] [-21.00dB] [on]
Front Right: Playback 25 [64%] [-21.00dB] [on]
Simple mixer control 'Mic 1 Capture Boost',0
Capabilities: volume penum
Playback channels: Front Left - Front Right
Capture channels: Front Left - Front Right
Limits: 0 - 3
Front Left: 0 [0%]
Front Right: 0 [0%]
Simple mixer control 'Mic 2 Capture Boost',0
Capabilities: volume penum
Playback channels: Front Left - Front Right
Capture channels: Front Left - Front Right
Limits: 0 - 3
Front Left: 0 [0%]
Front Right: 0 [0%]
Simple mixer control 'Mic 3 Capture Boost',0
Capabilities: volume penum
Playback channels: Front Left - Front Right
Capture channels: Front Left - Front Right
Limits: 0 - 3
Front Left: 0 [0%]
Front Right: 0 [0%]
Simple mixer control 'Microphone 1',0
Capabilities: cvolume cswitch penum
Capture channels: Front Left - Front Right
Limits: Capture 0 - 54
Front Left: Capture 0 [0%] [-58.50dB] [on]
Front Right: Capture 0 [0%] [-58.50dB] [on]
Simple mixer control 'Microphone 2',0
Capabilities: cvolume cswitch penum
Capture channels: Front Left - Front Right
Limits: Capture 0 - 54
Front Left: Capture 0 [0%] [-58.50dB] [on]
Front Right: Capture 0 [0%] [-58.50dB] [on]
Simple mixer control 'Microphone 3',0
Capabilities: cvolume cswitch penum
Capture channels: Front Left - Front Right
Limits: Capture 0 - 54
Front Left: Capture 0 [0%] [-58.50dB] [on]
Front Right: Capture 0 [0%] [-58.50dB] [on]
!!Alsactl output
!!-------------
--startcollapse--
state.MID {
control.1 {
iface MIXER
name 'Headphone Playback Volume'
value.0 25
value.1 25
comment {
access 'read write'
type INTEGER
count 2
range '0 - 39'
dbmin -5850
dbmax 0
dbvalue.0 -2100
dbvalue.1 -2100
}
}
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 'Microphone 1 Capture Volume'
value.0 0
value.1 0
comment {
access 'read write'
type INTEGER
count 2
range '0 - 54'
dbmin -5850
dbmax 2250
dbvalue.0 -5850
dbvalue.1 -5850
}
}
control.4 {
iface MIXER
name 'Microphone 1 Capture Switch'
value.0 true
value.1 true
comment {
access 'read write'
type BOOLEAN
count 2
}
}
control.5 {
iface MIXER
name 'Microphone 2 Capture Volume'
value.0 0
value.1 0
comment {
access 'read write'
type INTEGER
count 2
range '0 - 54'
dbmin -5850
dbmax 2250
dbvalue.0 -5850
dbvalue.1 -5850
}
}
control.6 {
iface MIXER
name 'Microphone 2 Capture Switch'
value.0 true
value.1 true
comment {
access 'read write'
type BOOLEAN
count 2
}
}
control.7 {
iface MIXER
name 'Microphone 3 Capture Volume'
value.0 0
value.1 0
comment {
access 'read write'
type INTEGER
count 2
range '0 - 54'
dbmin -5850
dbmax 2250
dbvalue.0 -5850
dbvalue.1 -5850
}
}
control.8 {
iface MIXER
name 'Microphone 3 Capture Switch'
value.0 true
value.1 true
comment {
access 'read write'
type BOOLEAN
count 2
}
}
control.9 {
iface MIXER
name 'Mic 1 Capture Boost'
value.0 0
value.1 0
comment {
access 'read write'
type INTEGER
count 2
range '0 - 3'
dbmin 0
dbmax 3000
dbvalue.0 0
dbvalue.1 0
}
}
control.10 {
iface MIXER
name 'Mic 2 Capture Boost'
value.0 0
value.1 0
comment {
access 'read write'
type INTEGER
count 2
range '0 - 3'
dbmin 0
dbmax 3000
dbvalue.0 0
dbvalue.1 0
}
}
control.11 {
iface MIXER
name 'Mic 3 Capture Boost'
value.0 0
value.1 0
comment {
access 'read write'
type INTEGER
count 2
range '0 - 3'
dbmin 0
dbmax 3000
dbvalue.0 0
dbvalue.1 0
}
}
}
--endcollapse--
!!All Loaded Modules
!!------------------
Module
sunrpc
cpufreq_ondemand
acpi_cpufreq
mperf
ip6t_REJECT
nf_conntrack_ipv6
nf_defrag_ipv6
ip6table_filter
ip6_tables
ipv6
i2c_isch
i2c_core
microcode
pcspkr
serio_raw
lpc_sch
mfd_core
joydev
e1000e
snd_hda_codec_ad1989
snd_hda_intel
snd_hda_codec
snd_hwdep
video
snd_seq
output
snd_seq_device
snd_pcm
snd_timer
snd
soundcore
snd_page_alloc
pata_acpi
ata_generic
sdhci_pci
pata_sch
sdhci
mmc_core
usb_storage
!!Sysfs Files
!!-----------
/sys/class/sound/hwC0D1/init_pin_configs:
0x11 0x02214110
0x12 0x01014010
0x13 0x991301f0
0x14 0x02a19120
0x15 0x02a19121
0x16 0x01011012
0x17 0x02a19122
0x18 0x9933012e
0x1a 0x99f301f0
0x1b 0x014511f0
0x1c 0x01c511f0
0x1d 0x985601f0
0x1f 0x97a601f0
0x24 0x01016011
/sys/class/sound/hwC0D1/driver_pin_configs:
/sys/class/sound/hwC0D1/user_pin_configs:
/sys/class/sound/hwC0D1/init_verbs:
!!ALSA/HDA dmesg
!!------------------
[ 10.702337] udev[302]: starting version 161
[ 13.156692] HDA Intel 0000:00:1b.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[ 13.156705] hda_intel: msi for device 8086:8119 set to 0
[ 13.156712] hda_intel: position_fix set to 3 for device 8086:8119
[ 13.156719] hda_intel: probe_mask set to 0x102 for device 8086:8119
[ 13.156724] hda_intel: codec_mask forced to 0x2
[ 13.156789] ALSA hda_intel.c:2105: Grabbing IRQ 16, MSI state 0
[ 13.156859] HDA Intel 0000:00:1b.0: setting latency timer to 64
[ 13.156870] ALSA hda_intel.c:2542: chipset global capabilities = 0x2200
[ 13.157194] ALSA hda_intel.c:2097: Init stream 0, offset 80, stream_tag 1
[ 13.157203] ALSA hda_intel.c:2097: Init stream 1, offset a0, stream_tag 2
[ 13.157212] ALSA hda_intel.c:2097: Init stream 2, offset c0, stream_tag 3
[ 13.157220] ALSA hda_intel.c:2097: Init stream 3, offset e0, stream_tag 4
[ 13.157244] ALSA hda_intel.c:1088: HDA snoop disabled, enabling ... OK
[ 13.165353] ALSA hda_intel.c:1353: codec #1 probed OK
[ 13.575790] Apply patch ad1989 to codec @addr 1
.asoundrc:
#defines the required PCM setup
pcm.Euro_HP {
type hw
card 0
device 0
subdevice 0
}
pcm.Euro_MIC1 {
type hw
card 0
device 0
subdevice 0
}
pcm.Euro_MIC2 {
type hw
card 0
device 0
subdevice 1
}
pcm.Euro_MIC3 {
type hw
card 0
device 0
subdevice 2
}
pcm_slave.stereo_slave {
pcm "hw:0,0"
channels 2
rate 48000
}
pcm.!default {
type plug
slave stereo_slave
}
Detailed LSPCI:
00:1b.0 Audio device [0403]: Intel Corporation System Controller Hub (SCH Poulsbo) HD Audio Controller [8086:811b] (rev 07)
Subsystem: Intel Corporation Device [8086:8119]
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 16
Region 0: Memory at 942c0000 (64-bit, non-prefetchable) [size=16K]
Capabilities: <access denied>
Kernel driver in use: HDA Intel
Kernel modules: snd-hda-intel
00: 86 80 1b 81 06 00 10 00 07 00 03 04 00 00 00 00
10: 04 00 2c 94 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 86 80 19 81
30: 00 00 00 00 50 00 00 00 00 00 00 00 0b 01 00 00
00:1c.0 PCI bridge [0604]: Intel Corporation System Controller Hub (SCH Poulsbo) PCI Express Port 1 [8086:8110] (rev 07) (prog-if 00 [Normal decode])
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
I/O behind bridge: 00004000-00004fff
Memory behind bridge: 93200000-941fffff
Prefetchable memory behind bridge: 90000000-90ffffff
Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B-
PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
Capabilities: <access denied>
00: 86 80 10 81 07 00 10 00 07 00 04 06 00 00 81 00
10: 00 00 00 00 00 00 00 00 00 01 01 00 40 40 00 00
20: 20 93 10 94 00 90 f0 90 00 00 00 00 00 00 00 00
30: 00 00 00 00 40 00 00 00 00 00 00 00 0b 01 00 00
00:1c.1 PCI bridge [0604]: Intel Corporation System Controller Hub (SCH Poulsbo) PCI Express Port 2 [8086:8112] (rev 07) (prog-if 00 [Normal decode])
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Bus: primary=00, secondary=02, subordinate=07, sec-latency=0
I/O behind bridge: 00002000-00003fff
Memory behind bridge: 92000000-931fffff
Prefetchable memory behind bridge: 91000000-91ffffff
Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B-
PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
Capabilities: <access denied>
00: 86 80 12 81 07 00 10 00 07 00 04 06 00 00 01 00
10: 00 00 00 00 00 00 00 00 00 02 07 00 20 30 00 00
20: 00 92 10 93 00 91 f0 91 00 00 00 00 00 00 00 00
30: 00 00 00 00 40 00 00 00 00 00 00 00 0b 02 00 00
00:1d.0 USB Controller [0c03]: Intel Corporation System Controller Hub (SCH Poulsbo) USB UHCI #1 [8086:8114] (rev 07) (prog-if 00 [UHCI])
Subsystem: Intel Corporation Device [8086:8119]
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 18
Region 4: I/O ports at 5040 [size=32]
Kernel driver in use: uhci_hcd
00: 86 80 14 81 05 00 00 00 07 00 03 0c 00 00 80 00
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
END
[-- Attachment #1.1.3: after_mic_working.txt --]
[-- Type: text/plain, Size: 34125 bytes --]
ALSA-INFO dump:
upload=true&script=true&cardinfo=
!!################################
!!ALSA Information Script v 0.4.59
!!################################
!!Script ran on: Mon Feb 7 19:08:13 UTC 2011
!!Linux Distribution
!!------------------
Fedora release 14 (Laughlin) Fedora release 14 (Laughlin) Fedora release 14 (Laughlin) Fedora release 14 (Laughlin)
!!DMI Information
!!---------------
Manufacturer: Eurotech, Inc.
Product Name: Catalyst
!!Kernel Information
!!------------------
Kernel release: 2.6.37.hda1
Operating System: GNU/Linux
Architecture: i686
Processor: i686
SMP Enabled: Yes
!!ALSA Version
!!------------
Driver version: 1.0.24
Library version: 1.0.24.1
Utilities version: 1.0.24.2
!!Loaded ALSA modules
!!-------------------
snd_hda_intel
!!Sound Servers on this system
!!----------------------------
Pulseaudio:
Installed - Yes (/usr/bin/pulseaudio)
Running - No
Jack:
Installed - Yes (/usr/bin/jackd)
Running - No
!!Soundcards recognised by ALSA
!!-----------------------------
0 [MID ]: HDA-Intel - HDA Intel MID
HDA Intel MID at 0x942c0000 irq 16
!!PCI Soundcards installed in the system
!!--------------------------------------
00:1b.0 Audio device: Intel Corporation System Controller Hub (SCH Poulsbo) HD Audio Controller (rev 07)
!!Advanced information - PCI Vendor/Device/Susbsystem ID's
!!--------------------------------------------------------
00:1b.0 0403: 8086:811b (rev 07)
Subsystem: 8086:8119
!!Loaded sound module options
!!--------------------------
!!Module: snd_hda_intel
bdl_pos_adj : 32,-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 : 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
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
!!HDA-Intel Codec information
!!---------------------------
--startcollapse--
Codec: Analog Devices AD1989A
Address: 1
AFG Function Id: 0x1 (unsol 0)
Vendor Id: 0x11d4989a
Subsystem Id: 0xbfd80000
Revision Id: 0x100300
No Modem Function Group found
Default PCM:
rates [0x7ff]: 8000 11025 16000 22050 32000 44100 48000 88200 96000 176400 192000
bits [0xe]: 16 20 24
formats [0x1]: PCM
Default Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
Default Amp-Out caps: ofs=0x27, nsteps=0x27, stepsize=0x05, mute=0
GPIO: io=3, o=0, i=0, unsolicited=1, wake=0
IO[0]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
IO[1]: enable=0, dir=0, wake=0, sticky=0, data=1, unsol=0
IO[2]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
Node 0x02 [Audio Output] wcaps 0x30211: Stereo Digital
Converter: stream=0, channel=0
Digital:
Digital category: 0x0
PCM:
rates [0x7e0]: 44100 48000 88200 96000 176400 192000
bits [0xe]: 16 20 24
formats [0x5]: PCM AC3
Delay: 3 samples
Node 0x03 [Audio Output] wcaps 0x405: Stereo Amp-Out
Control: name="Headphone Playback Volume", index=0, device=0
ControlAmp: chs=3, dir=Out, idx=0, ofs=0
Device: name="AD1989 EuroPCM", type="Audio", device=0
Amp-Out caps: ofs=0x27, nsteps=0x27, stepsize=0x05, mute=0
Amp-Out vals: [0x19 0x19]
Converter: stream=0, channel=0
Power states: D0 D3
Power: setting=D0, actual=D0
Node 0x04 [Audio Output] wcaps 0x405: Stereo Amp-Out
Amp-Out caps: ofs=0x27, nsteps=0x27, stepsize=0x05, mute=0
Amp-Out vals: [0x27 0x27]
Converter: stream=0, channel=0
Power states: D0 D3
Power: setting=D3, actual=D3
Node 0x05 [Audio Output] wcaps 0x405: Stereo Amp-Out
Amp-Out caps: ofs=0x27, nsteps=0x27, stepsize=0x05, mute=0
Amp-Out vals: [0x27 0x27]
Converter: stream=0, channel=0
Power states: D0 D3
Power: setting=D3, actual=D3
Node 0x06 [Audio Output] wcaps 0x405: Stereo Amp-Out
Amp-Out caps: ofs=0x27, nsteps=0x27, stepsize=0x05, mute=0
Amp-Out vals: [0x27 0x27]
Converter: stream=0, channel=0
Power states: D0 D3
Power: setting=D3, actual=D3
Node 0x07 [Audio Input] wcaps 0x130391: Stereo Digital
Converter: stream=0, channel=0
SDI-Select: 0
Digital:
Digital category: 0x0
PCM:
rates [0x7e0]: 44100 48000 88200 96000 176400 192000
bits [0xe]: 16 20 24
formats [0x5]: PCM AC3
Unsolicited: tag=00, enabled=0
Delay: 3 samples
Connection: 1
0x1c
Node 0x08 [Audio Input] wcaps 0x100501: Stereo
Converter: stream=2, channel=0
SDI-Select: 0
Power states: D0 D3
Power: setting=D0, actual=D0
Connection: 1
0x0c
Node 0x09 [Audio Input] wcaps 0x100501: Stereo
Device: name="AD1989 EuroPCM", type="Audio", device=0
Converter: stream=1, channel=0
SDI-Select: 0
Power states: D0 D3
Power: setting=D0, actual=D0
Connection: 1
0x0d
Node 0x0a [Audio Output] wcaps 0x405: Stereo Amp-Out
Amp-Out caps: ofs=0x27, nsteps=0x27, stepsize=0x05, mute=0
Amp-Out vals: [0x27 0x27]
Converter: stream=0, channel=0
Power states: D0 D3
Power: setting=D3, actual=D3
Node 0x0b [Audio Output] wcaps 0x30211: Stereo Digital
Converter: stream=0, channel=0
Digital:
Digital category: 0x0
PCM:
rates [0x7e0]: 44100 48000 88200 96000 176400 192000
bits [0xe]: 16 20 24
formats [0x5]: PCM AC3
Delay: 3 samples
Node 0x0c [Audio Selector] wcaps 0x30010d: Stereo Amp-Out
Control: name="Microphone 1 Capture Volume", index=0, device=0
ControlAmp: chs=3, dir=Out, idx=0, ofs=0
Amp-Out caps: ofs=0x27, nsteps=0x36, stepsize=0x05, mute=1
Amp-Out vals: [0x00 0x00]
Connection: 11
0x38 0x39* 0x3a 0x3b 0x3c 0x18 0x24 0x25 0x3d 0x20 0x1f
Node 0x0d [Audio Selector] wcaps 0x30010d: Stereo Amp-Out
Control: name="Microphone 2 Capture Volume", index=0, device=0
ControlAmp: chs=3, dir=Out, idx=0, ofs=0
Amp-Out caps: ofs=0x27, nsteps=0x36, stepsize=0x05, mute=1
Amp-Out vals: [0x00 0x00]
Connection: 10
0x38 0x39 0x3a* 0x3b 0x3c 0x18 0x24 0x25 0x3d 0x20
Node 0x0e [Audio Selector] wcaps 0x30010d: Stereo Amp-Out
Control: name="Microphone 3 Capture Volume", index=0, device=0
ControlAmp: chs=3, dir=Out, idx=0, ofs=0
Amp-Out caps: ofs=0x27, nsteps=0x36, stepsize=0x05, mute=1
Amp-Out vals: [0x00 0x00]
Connection: 10
0x38 0x39 0x3a 0x3b 0x3c* 0x18 0x24 0x25 0x3d 0x20
Node 0x0f [Audio Input] wcaps 0x100501: Stereo
Converter: stream=0, channel=0
SDI-Select: 0
Power states: D0 D3
Power: setting=D0, actual=D0
Connection: 1
0x0e
Node 0x10 [Beep Generator Widget] wcaps 0x70000c: Mono Amp-Out
Amp-Out caps: ofs=0x0f, nsteps=0x0f, stepsize=0x0b, mute=1
Amp-Out vals: [0x00]
Node 0x11 [Pin Complex] wcaps 0x40018d: Stereo Amp-Out
Control: name="Headphone Playback Switch", index=0, device=0
ControlAmp: chs=3, dir=Out, idx=0, ofs=0
Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
Amp-Out vals: [0x00 0x00]
Pincap 0x0000373f: IN OUT HP Detect Trigger ImpSense
Vref caps: HIZ 50 GRD 80 100
Pin Default 0x02214110: [Jack] HP Out at Ext Front
Conn = 1/8, Color = Green
DefAssociation = 0x1, Sequence = 0x0
Misc = NO_PRESENCE
Pin-ctls: 0xc0: OUT HP VREF_HIZ
Unsolicited: tag=00, enabled=0
Connection: 1
0x22
Node 0x12 [Pin Complex] wcaps 0x40018d: Stereo Amp-Out
Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
Amp-Out vals: [0x80 0x80]
Pincap 0x0000373f: IN OUT HP Detect Trigger ImpSense
Vref caps: HIZ 50 GRD 80 100
Pin Default 0x01014010: [Jack] Line Out at Ext Rear
Conn = 1/8, Color = Green
DefAssociation = 0x1, Sequence = 0x0
Pin-ctls: 0x00: VREF_HIZ
Unsolicited: tag=00, enabled=0
Connection: 1
0x29
Node 0x13 [Pin Complex] wcaps 0x40010c: Mono Amp-Out
Amp-Out caps: ofs=0x1f, nsteps=0x1f, stepsize=0x05, mute=1
Amp-Out vals: [0x00]
Pincap 0x00000010: OUT
Pin Default 0x991301f0: [Fixed] Speaker at Int ATAPI
Conn = ATAPI, Color = Unknown
DefAssociation = 0xf, Sequence = 0x0
Misc = NO_PRESENCE
Pin-ctls: 0x00:
Connection: 1
0x2d
Node 0x14 [Pin Complex] wcaps 0x40018d: Stereo Amp-Out
Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
Amp-Out vals: [0x00 0x00]
Pincap 0x0000373f: IN OUT HP Detect Trigger ImpSense
Vref caps: HIZ 50 GRD 80 100
Pin Default 0x02a19120: [Jack] Mic at Ext Front
Conn = 1/8, Color = Pink
DefAssociation = 0x2, Sequence = 0x0
Misc = NO_PRESENCE
Pin-ctls: 0x24: IN VREF_80
Unsolicited: tag=00, enabled=0
Connection: 1
0x2b
Node 0x15 [Pin Complex] wcaps 0x40018d: Stereo Amp-Out
Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
Amp-Out vals: [0x00 0x00]
Pincap 0x00003737: IN OUT Detect Trigger ImpSense
Vref caps: HIZ 50 GRD 80 100
Pin Default 0x02a19121: [Jack] Mic at Ext Front
Conn = 1/8, Color = Pink
DefAssociation = 0x2, Sequence = 0x1
Misc = NO_PRESENCE
Pin-ctls: 0x24: IN VREF_80
Unsolicited: tag=00, enabled=0
Connection: 1
0x2c
Node 0x16 [Pin Complex] wcaps 0x40018d: Stereo Amp-Out
Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
Amp-Out vals: [0x80 0x80]
Pincap 0x00000037: IN OUT Detect Trigger ImpSense
Pin Default 0x01011012: [Jack] Line Out at Ext Rear
Conn = 1/8, Color = Black
DefAssociation = 0x1, Sequence = 0x2
Pin-ctls: 0x00:
Unsolicited: tag=00, enabled=0
Connection: 1
0x2a
Node 0x17 [Pin Complex] wcaps 0x40098d: Stereo Amp-Out R/L
Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
Amp-Out vals: [0x00 0x00]
Pincap 0x00003737: IN OUT Detect Trigger ImpSense
Vref caps: HIZ 50 GRD 80 100
Pin Default 0x02a19122: [Jack] Mic at Ext Front
Conn = 1/8, Color = Pink
DefAssociation = 0x2, Sequence = 0x2
Misc = NO_PRESENCE
Pin-ctls: 0x24: IN VREF_80
Unsolicited: tag=00, enabled=0
Connection: 1
0x26
Node 0x18 [Pin Complex] wcaps 0x400081: Stereo
Pincap 0x00000024: IN Detect
Pin Default 0x9933012e: [Fixed] CD at Int ATAPI
Conn = ATAPI, Color = Unknown
DefAssociation = 0x2, Sequence = 0xe
Misc = NO_PRESENCE
Pin-ctls: 0x00:
Unsolicited: tag=00, enabled=0
Node 0x19 [Power Widget] wcaps 0x500500: Mono
Power states: D0 D3
Power: setting=D0, actual=D0
Connection: 2
0x20 0x21
Node 0x1a [Pin Complex] wcaps 0x400000: Mono
Pincap 0x00000020: IN
Pin Default 0x99f301f0: [Fixed] Other at Int ATAPI
Conn = ATAPI, Color = Unknown
DefAssociation = 0xf, Sequence = 0x0
Misc = NO_PRESENCE
Pin-ctls: 0x20: IN
Node 0x1b [Pin Complex] wcaps 0x40030d: Stereo Digital Amp-Out
Amp-Out caps: ofs=0x27, nsteps=0x27, stepsize=0x05, mute=1
Amp-Out vals: [0xa7 0xa7]
Pincap 0x00000010: OUT
Pin Default 0x014511f0: [Jack] SPDIF Out at Ext Rear
Conn = Optical, Color = Black
DefAssociation = 0xf, Sequence = 0x0
Misc = NO_PRESENCE
Pin-ctls: 0x00:
Connection: 1
0x02
Node 0x1c [Pin Complex] wcaps 0x40020b: Stereo Digital Amp-In
Amp-In caps: ofs=0x17, nsteps=0x1f, stepsize=0x05, mute=1
Amp-In vals: [0x97 0x97]
Pincap 0x00000020: IN
Pin Default 0x01c511f0: [Jack] SPDIF In at Ext Rear
Conn = Optical, Color = Black
DefAssociation = 0xf, Sequence = 0x0
Misc = NO_PRESENCE
Pin-ctls: 0x20: IN
Node 0x1d [Pin Complex] wcaps 0x40030d: Stereo Digital Amp-Out
Amp-Out caps: ofs=0x27, nsteps=0x27, stepsize=0x05, mute=1
Amp-Out vals: [0xa7 0xa7]
Pincap 0x00000010: OUT
Pin Default 0x985601f0: [Fixed] Digital Out at Int HDMI
Conn = Digital, Color = Unknown
DefAssociation = 0xf, Sequence = 0x0
Misc = NO_PRESENCE
Pin-ctls: 0x00:
Connection: 1
0x0b
Node 0x1e [Audio Mixer] wcaps 0x200103: Stereo Amp-In
Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
Amp-In vals: [0x80 0x80] [0x80 0x80]
Connection: 2
0x36 0x21
Node 0x1f [Pin Complex] wcaps 0x40000b: Stereo Amp-In
Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x17, mute=0
Amp-In vals: [0x00 0x00]
Pincap 0x00000020: IN
Pin Default 0x97a601f0: [Fixed] Mic at Int Riser
Conn = Digital, Color = Unknown
DefAssociation = 0xf, Sequence = 0x0
Misc = NO_PRESENCE
Pin-ctls: 0x14:
Node 0x20 [Audio Mixer] wcaps 0x20010b: Stereo Amp-In
Amp-In caps: ofs=0x17, nsteps=0x1f, stepsize=0x05, mute=1
Amp-In vals: [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80]
Connection: 8
0x39 0x33 0x38 0x3d 0x34 0x3b 0x18 0x1a
Node 0x21 [Audio Selector] wcaps 0x30010d: Stereo Amp-Out
Amp-Out caps: ofs=0x1f, nsteps=0x1f, stepsize=0x05, mute=1
Amp-Out vals: [0x80 0x80]
Connection: 1
0x20
Node 0x22 [Audio Mixer] wcaps 0x200103: Stereo Amp-In
Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
Amp-In vals: [0x00 0x00] [0x80 0x80]
Connection: 2
0x37 0x21
Node 0x23 [Vendor Defined Widget] wcaps 0xf00100: Mono
Connection: 18
0x11* 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x24 0x25 0x38 0x39 0x3a 0x3b 0x3c 0x3d 0x20 0x21
Node 0x24 [Pin Complex] wcaps 0x40098d: Stereo Amp-Out R/L
Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
Amp-Out vals: [0x80 0x80]
Pincap 0x00000037: IN OUT Detect Trigger ImpSense
Pin Default 0x01016011: [Jack] Line Out at Ext Rear
Conn = 1/8, Color = Orange
DefAssociation = 0x1, Sequence = 0x1
Pin-ctls: 0x00:
Unsolicited: tag=00, enabled=0
Connection: 1
0x27
Node 0x25 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x26 [Audio Mixer] wcaps 0x200103: Stereo Amp-In
Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
Amp-In vals: [0x80 0x80] [0x80 0x80]
Connection: 2
0x32 0x21
Node 0x27 [Audio Mixer] wcaps 0x200103: Stereo Amp-In
Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
Amp-In vals: [0x80 0x80] [0x80 0x80]
Connection: 2
0x05 0x21
Node 0x28 [Audio Mixer] wcaps 0x200103: Stereo Amp-In
Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
Amp-In vals: [0x80 0x80] [0x80 0x80]
Connection: 2
0x0a 0x21
Node 0x29 [Audio Mixer] wcaps 0x200103: Stereo Amp-In
Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
Amp-In vals: [0x80 0x80] [0x80 0x80]
Connection: 2
0x04 0x21
Node 0x2a [Audio Mixer] wcaps 0x200103: Stereo Amp-In
Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
Amp-In vals: [0x80 0x80] [0x80 0x80]
Connection: 2
0x06 0x21
Node 0x2b [Audio Mixer] wcaps 0x200103: Stereo Amp-In
Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
Amp-In vals: [0x80 0x80] [0x80 0x80]
Connection: 2
0x30 0x21
Node 0x2c [Audio Mixer] wcaps 0x200103: Stereo Amp-In
Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
Amp-In vals: [0x80 0x80] [0x80 0x80]
Connection: 2
0x31 0x21
Node 0x2d [Audio Mixer] wcaps 0x200100: Mono
Connection: 1
0x1e
Node 0x2e [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x2f [Vendor Defined Widget] wcaps 0xf00100: Mono
Connection: 6
0x11* 0x12 0x14 0x15 0x16 0x17
Node 0x30 [Audio Selector] wcaps 0x300101: Stereo
Connection: 3
0x03* 0x04 0x06
Node 0x31 [Audio Selector] wcaps 0x300101: Stereo
Connection: 2
0x04* 0x0a
Node 0x32 [Audio Selector] wcaps 0x300101: Stereo
Connection: 2
0x05* 0x04
Node 0x33 [Audio Selector] wcaps 0x300101: Stereo
Connection: 3
0x3a* 0x25 0x24
Node 0x34 [Audio Selector] wcaps 0x300101: Stereo
Connection: 3
0x3c* 0x25 0x24
Node 0x35 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x36 [Audio Selector] wcaps 0x300101: Stereo
Connection: 3
0x03* 0x04 0x06
Node 0x37 [Audio Selector] wcaps 0x300101: Stereo
Connection: 3
0x03* 0x04 0x06
Node 0x38 [Audio Selector] wcaps 0x30010d: Stereo Amp-Out
Amp-Out caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
Amp-Out vals: [0x00 0x00]
Connection: 1
0x11
Node 0x39 [Audio Selector] wcaps 0x30010d: Stereo Amp-Out
Control: name="Mic 1 Capture Boost", index=0, device=0
ControlAmp: chs=3, dir=Out, idx=0, ofs=0
Amp-Out caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
Amp-Out vals: [0x00 0x00]
Connection: 1
0x14
Node 0x3a [Audio Selector] wcaps 0x30010d: Stereo Amp-Out
Control: name="Mic 2 Capture Boost", index=0, device=0
ControlAmp: chs=3, dir=Out, idx=0, ofs=0
Amp-Out caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
Amp-Out vals: [0x00 0x00]
Connection: 1
0x15
Node 0x3b [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x3c [Audio Selector] wcaps 0x30010d: Stereo Amp-Out
Control: name="Mic 3 Capture Boost", index=0, device=0
ControlAmp: chs=3, dir=Out, idx=0, ofs=0
Amp-Out caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
Amp-Out vals: [0x00 0x00]
Connection: 1
0x17
Node 0x3d [Audio Selector] wcaps 0x30010d: Stereo Amp-Out
Amp-Out caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
Amp-Out vals: [0x00 0x00]
Connection: 1
0x12
--endcollapse--
!!ALSA Device nodes
!!-----------------
crw-rw---- 1 root audio 116, 5 Feb 7 13:57 /dev/snd/controlC0
crw-rw---- 1 root audio 116, 4 Feb 7 13:57 /dev/snd/hwC0D1
crw-rw---- 1 root audio 116, 3 Feb 7 14:08 /dev/snd/pcmC0D0c
crw-rw---- 1 root audio 116, 2 Feb 7 13:57 /dev/snd/pcmC0D0p
crw-rw---- 1 root audio 116, 1 Feb 7 13:57 /dev/snd/seq
crw-rw---- 1 root audio 116, 33 Feb 7 13:57 /dev/snd/timer
/dev/snd/by-path:
total 0
drwxr-xr-x 2 root root 60 Feb 7 13:57 .
drwxr-xr-x 3 root root 180 Feb 7 13:57 ..
lrwxrwxrwx 1 root root 12 Feb 7 13:57 pci-0000:00:1b.0 -> ../controlC0
!!ALSA configuration files
!!------------------------
!!User specific config file (~/.asoundrc)
#defines the required PCM setup
pcm.Euro_HP {
type hw
card 0
device 0
subdevice 0
}
pcm.Euro_MIC1 {
type hw
card 0
device 0
subdevice 0
}
pcm.Euro_MIC2 {
type hw
card 0
device 0
subdevice 1
}
pcm.Euro_MIC3 {
type hw
card 0
device 0
subdevice 2
}
pcm_slave.stereo_slave {
pcm "hw:0,0"
channels 2
rate 48000
}
pcm.!default {
type plug
slave stereo_slave
}
!!System wide config file (/etc/asound.conf)
#
# Place your global alsa-lib configuration here...
#
@hooks [
{
func load
files [
"/home/user/alsa_mod/confs/asoundrc.conf"
]
errors false
}
]
!!Aplay/Arecord output
!!------------
APLAY
**** List of PLAYBACK Hardware Devices ****
card 0: MID [HDA Intel MID], device 0: AD1989 EuroPCM [AD1989 EuroPCM]
Subdevices: 1/1
Subdevice #0: subdevice #0
ARECORD
**** List of CAPTURE Hardware Devices ****
card 0: MID [HDA Intel MID], device 0: AD1989 EuroPCM [AD1989 EuroPCM]
Subdevices: 3/3
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
!!Amixer output
!!-------------
!!-------Mixer controls for card 0 [MID]
Card hw:0 'MID'/'HDA Intel MID at 0x942c0000 irq 16'
Mixer name : 'Analog Devices AD1989A'
Components : 'HDA:11d4989a,bfd80000,00100300'
Controls : 11
Simple ctrls : 7
Simple mixer control 'Headphone',0
Capabilities: pvolume pswitch penum
Playback channels: Front Left - Front Right
Limits: Playback 0 - 39
Mono:
Front Left: Playback 25 [64%] [-21.00dB] [on]
Front Right: Playback 25 [64%] [-21.00dB] [on]
Simple mixer control 'Mic 1 Capture Boost',0
Capabilities: volume penum
Playback channels: Front Left - Front Right
Capture channels: Front Left - Front Right
Limits: 0 - 3
Front Left: 0 [0%]
Front Right: 0 [0%]
Simple mixer control 'Mic 2 Capture Boost',0
Capabilities: volume penum
Playback channels: Front Left - Front Right
Capture channels: Front Left - Front Right
Limits: 0 - 3
Front Left: 0 [0%]
Front Right: 0 [0%]
Simple mixer control 'Mic 3 Capture Boost',0
Capabilities: volume penum
Playback channels: Front Left - Front Right
Capture channels: Front Left - Front Right
Limits: 0 - 3
Front Left: 0 [0%]
Front Right: 0 [0%]
Simple mixer control 'Microphone 1',0
Capabilities: cvolume cswitch penum
Capture channels: Front Left - Front Right
Limits: Capture 0 - 54
Front Left: Capture 0 [0%] [-58.50dB] [on]
Front Right: Capture 0 [0%] [-58.50dB] [on]
Simple mixer control 'Microphone 2',0
Capabilities: cvolume cswitch penum
Capture channels: Front Left - Front Right
Limits: Capture 0 - 54
Front Left: Capture 0 [0%] [-58.50dB] [on]
Front Right: Capture 0 [0%] [-58.50dB] [on]
Simple mixer control 'Microphone 3',0
Capabilities: cvolume cswitch penum
Capture channels: Front Left - Front Right
Limits: Capture 0 - 54
Front Left: Capture 0 [0%] [-58.50dB] [on]
Front Right: Capture 0 [0%] [-58.50dB] [on]
!!Alsactl output
!!-------------
--startcollapse--
state.MID {
control.1 {
iface MIXER
name 'Headphone Playback Volume'
value.0 25
value.1 25
comment {
access 'read write'
type INTEGER
count 2
range '0 - 39'
dbmin -5850
dbmax 0
dbvalue.0 -2100
dbvalue.1 -2100
}
}
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 'Microphone 1 Capture Volume'
value.0 0
value.1 0
comment {
access 'read write'
type INTEGER
count 2
range '0 - 54'
dbmin -5850
dbmax 2250
dbvalue.0 -5850
dbvalue.1 -5850
}
}
control.4 {
iface MIXER
name 'Microphone 1 Capture Switch'
value.0 true
value.1 true
comment {
access 'read write'
type BOOLEAN
count 2
}
}
control.5 {
iface MIXER
name 'Microphone 2 Capture Volume'
value.0 0
value.1 0
comment {
access 'read write'
type INTEGER
count 2
range '0 - 54'
dbmin -5850
dbmax 2250
dbvalue.0 -5850
dbvalue.1 -5850
}
}
control.6 {
iface MIXER
name 'Microphone 2 Capture Switch'
value.0 true
value.1 true
comment {
access 'read write'
type BOOLEAN
count 2
}
}
control.7 {
iface MIXER
name 'Microphone 3 Capture Volume'
value.0 0
value.1 0
comment {
access 'read write'
type INTEGER
count 2
range '0 - 54'
dbmin -5850
dbmax 2250
dbvalue.0 -5850
dbvalue.1 -5850
}
}
control.8 {
iface MIXER
name 'Microphone 3 Capture Switch'
value.0 true
value.1 true
comment {
access 'read write'
type BOOLEAN
count 2
}
}
control.9 {
iface MIXER
name 'Mic 1 Capture Boost'
value.0 0
value.1 0
comment {
access 'read write'
type INTEGER
count 2
range '0 - 3'
dbmin 0
dbmax 3000
dbvalue.0 0
dbvalue.1 0
}
}
control.10 {
iface MIXER
name 'Mic 2 Capture Boost'
value.0 0
value.1 0
comment {
access 'read write'
type INTEGER
count 2
range '0 - 3'
dbmin 0
dbmax 3000
dbvalue.0 0
dbvalue.1 0
}
}
control.11 {
iface MIXER
name 'Mic 3 Capture Boost'
value.0 0
value.1 0
comment {
access 'read write'
type INTEGER
count 2
range '0 - 3'
dbmin 0
dbmax 3000
dbvalue.0 0
dbvalue.1 0
}
}
}
--endcollapse--
!!All Loaded Modules
!!------------------
Module
sunrpc
cpufreq_ondemand
acpi_cpufreq
mperf
ip6t_REJECT
nf_conntrack_ipv6
nf_defrag_ipv6
ip6table_filter
ip6_tables
ipv6
i2c_isch
i2c_core
microcode
pcspkr
serio_raw
lpc_sch
mfd_core
joydev
e1000e
snd_hda_codec_ad1989
snd_hda_intel
snd_hda_codec
snd_hwdep
video
snd_seq
output
snd_seq_device
snd_pcm
snd_timer
snd
soundcore
snd_page_alloc
pata_acpi
ata_generic
sdhci_pci
pata_sch
sdhci
mmc_core
usb_storage
!!Sysfs Files
!!-----------
/sys/class/sound/hwC0D1/init_pin_configs:
0x11 0x02214110
0x12 0x01014010
0x13 0x991301f0
0x14 0x02a19120
0x15 0x02a19121
0x16 0x01011012
0x17 0x02a19122
0x18 0x9933012e
0x1a 0x99f301f0
0x1b 0x014511f0
0x1c 0x01c511f0
0x1d 0x985601f0
0x1f 0x97a601f0
0x24 0x01016011
/sys/class/sound/hwC0D1/driver_pin_configs:
/sys/class/sound/hwC0D1/user_pin_configs:
/sys/class/sound/hwC0D1/init_verbs:
!!ALSA/HDA dmesg
!!------------------
[ 10.702337] udev[302]: starting version 161
[ 13.156692] HDA Intel 0000:00:1b.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[ 13.156705] hda_intel: msi for device 8086:8119 set to 0
[ 13.156712] hda_intel: position_fix set to 3 for device 8086:8119
[ 13.156719] hda_intel: probe_mask set to 0x102 for device 8086:8119
[ 13.156724] hda_intel: codec_mask forced to 0x2
[ 13.156789] ALSA hda_intel.c:2105: Grabbing IRQ 16, MSI state 0
[ 13.156859] HDA Intel 0000:00:1b.0: setting latency timer to 64
[ 13.156870] ALSA hda_intel.c:2542: chipset global capabilities = 0x2200
[ 13.157194] ALSA hda_intel.c:2097: Init stream 0, offset 80, stream_tag 1
[ 13.157203] ALSA hda_intel.c:2097: Init stream 1, offset a0, stream_tag 2
[ 13.157212] ALSA hda_intel.c:2097: Init stream 2, offset c0, stream_tag 3
[ 13.157220] ALSA hda_intel.c:2097: Init stream 3, offset e0, stream_tag 4
[ 13.157244] ALSA hda_intel.c:1088: HDA snoop disabled, enabling ... OK
[ 13.165353] ALSA hda_intel.c:1353: codec #1 probed OK
[ 13.575790] Apply patch ad1989 to codec @addr 1
--
[ 36.666119] eth1: no IPv6 routers present
[ 629.904798] ALSA hda_intel.c:1491: Assign Stream: CAPTURE, num_str:2
[ 629.904819] OPENING capture stream
[ 629.920763] ALSA hda_intel.c:1680: azx_pcm_prepare: bufsize=0x10000, format=0x11
[ 629.920790] PREP mic pcm, stream_tag:1, NID:8, format:17
[ 629.921001] ALSA hda_codec.c:1227: hda_codec_setup_stream: NID=0x8, stream=0x1, channel=0, format=0x11
[ 629.933354] ALSA hda_intel.c:1491: Assign Stream: CAPTURE, num_str:2
[ 629.933376] OPENING capture stream
[ 629.948658] ALSA hda_intel.c:1680: azx_pcm_prepare: bufsize=0x10000, format=0x11
[ 629.948677] PREP mic pcm, stream_tag:2, NID:9, format:17
[ 629.948687] ALSA hda_codec.c:1227: hda_codec_setup_stream: NID=0x9, stream=0x2, channel=0, format=0x11
[ 639.435609] CLEANUP mic stream
[ 639.435627] ALSA hda_codec.c:1290: hda_codec_cleanup_stream: NID=0x9
[ 639.436437] CLEANUP mic stream
[ 639.436453] ALSA hda_codec.c:1290: hda_codec_cleanup_stream: NID=0x9
[ 639.436469] CLOSING capture stream
[ 639.438104] CLEANUP mic stream
[ 639.438122] ALSA hda_codec.c:1290: hda_codec_cleanup_stream: NID=0x8
[ 639.439679] CLEANUP mic stream
[ 639.439692] ALSA hda_codec.c:1290: hda_codec_cleanup_stream: NID=0x8
[ 639.439703] CLOSING capture stream
[ 642.642781] ALSA hda_intel.c:1491: Assign Stream: CAPTURE, num_str:2
[ 642.642803] OPENING capture stream
[ 642.654459] ALSA hda_intel.c:1680: azx_pcm_prepare: bufsize=0x10000, format=0x11
[ 642.654486] PREP mic pcm, stream_tag:1, NID:9, format:17
[ 642.654499] ALSA hda_codec.c:1227: hda_codec_setup_stream: NID=0x9, stream=0x1, channel=0, format=0x11
[ 642.661898] ALSA hda_intel.c:1491: Assign Stream: CAPTURE, num_str:2
[ 642.661915] OPENING capture stream
[ 642.673794] ALSA hda_intel.c:1680: azx_pcm_prepare: bufsize=0x10000, format=0x11
[ 642.673818] PREP mic pcm, stream_tag:2, NID:8, format:17
[ 642.673830] ALSA hda_codec.c:1227: hda_codec_setup_stream: NID=0x8, stream=0x2, channel=0, format=0x11
[ 647.145786] CLEANUP mic stream
[ 647.145805] ALSA hda_codec.c:1290: hda_codec_cleanup_stream: NID=0x8
[ 647.146631] CLEANUP mic stream
[ 647.146648] ALSA hda_codec.c:1290: hda_codec_cleanup_stream: NID=0x8
[ 647.146664] CLOSING capture stream
[ 647.147963] CLEANUP mic stream
[ 647.147981] ALSA hda_codec.c:1290: hda_codec_cleanup_stream: NID=0x9
[ 647.149826] CLEANUP mic stream
[ 647.149840] ALSA hda_codec.c:1290: hda_codec_cleanup_stream: NID=0x9
[ 647.149851] CLOSING capture stream
[ 649.399338] ALSA hda_intel.c:1491: Assign Stream: CAPTURE, num_str:2
[ 649.399360] OPENING capture stream
[ 649.401919] ALSA hda_intel.c:1491: Assign Stream: CAPTURE, num_str:2
[ 649.401940] OPENING capture stream
[ 649.410926] ALSA hda_intel.c:1680: azx_pcm_prepare: bufsize=0x10000, format=0x11
[ 649.410953] PREP mic pcm, stream_tag:1, NID:9, format:17
[ 649.410967] ALSA hda_codec.c:1227: hda_codec_setup_stream: NID=0x9, stream=0x1, channel=0, format=0x11
[ 649.417520] ALSA hda_intel.c:1680: azx_pcm_prepare: bufsize=0x10000, format=0x11
[ 649.417540] PREP mic pcm, stream_tag:2, NID:0, format:17
[ 653.016867] CLEANUP mic stream
[ 653.016886] ALSA hda_codec.c:1290: hda_codec_cleanup_stream: NID=0x9
[ 653.018876] CLEANUP mic stream
[ 653.018894] ALSA hda_codec.c:1290: hda_codec_cleanup_stream: NID=0x9
[ 653.018907] CLEANUP mic stream
.asoundrc:
#defines the required PCM setup
pcm.Euro_HP {
type hw
card 0
device 0
subdevice 0
}
pcm.Euro_MIC1 {
type hw
card 0
device 0
subdevice 0
}
pcm.Euro_MIC2 {
type hw
card 0
device 0
subdevice 1
}
pcm.Euro_MIC3 {
type hw
card 0
device 0
subdevice 2
}
pcm_slave.stereo_slave {
pcm "hw:0,0"
channels 2
rate 48000
}
pcm.!default {
type plug
slave stereo_slave
}
Detailed LSPCI:
00:1b.0 Audio device [0403]: Intel Corporation System Controller Hub (SCH Poulsbo) HD Audio Controller [8086:811b] (rev 07)
Subsystem: Intel Corporation Device [8086:8119]
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 16
Region 0: Memory at 942c0000 (64-bit, non-prefetchable) [size=16K]
Capabilities: <access denied>
Kernel driver in use: HDA Intel
Kernel modules: snd-hda-intel
00: 86 80 1b 81 06 00 10 00 07 00 03 04 00 00 00 00
10: 04 00 2c 94 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 86 80 19 81
30: 00 00 00 00 50 00 00 00 00 00 00 00 0b 01 00 00
00:1c.0 PCI bridge [0604]: Intel Corporation System Controller Hub (SCH Poulsbo) PCI Express Port 1 [8086:8110] (rev 07) (prog-if 00 [Normal decode])
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
I/O behind bridge: 00004000-00004fff
Memory behind bridge: 93200000-941fffff
Prefetchable memory behind bridge: 90000000-90ffffff
Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B-
PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
Capabilities: <access denied>
00: 86 80 10 81 07 00 10 00 07 00 04 06 00 00 81 00
10: 00 00 00 00 00 00 00 00 00 01 01 00 40 40 00 00
20: 20 93 10 94 00 90 f0 90 00 00 00 00 00 00 00 00
30: 00 00 00 00 40 00 00 00 00 00 00 00 0b 01 00 00
00:1c.1 PCI bridge [0604]: Intel Corporation System Controller Hub (SCH Poulsbo) PCI Express Port 2 [8086:8112] (rev 07) (prog-if 00 [Normal decode])
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Bus: primary=00, secondary=02, subordinate=07, sec-latency=0
I/O behind bridge: 00002000-00003fff
Memory behind bridge: 92000000-931fffff
Prefetchable memory behind bridge: 91000000-91ffffff
Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B-
PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
Capabilities: <access denied>
00: 86 80 12 81 07 00 10 00 07 00 04 06 00 00 01 00
10: 00 00 00 00 00 00 00 00 00 02 07 00 20 30 00 00
20: 00 92 10 93 00 91 f0 91 00 00 00 00 00 00 00 00
30: 00 00 00 00 40 00 00 00 00 00 00 00 0b 02 00 00
00:1d.0 USB Controller [0c03]: Intel Corporation System Controller Hub (SCH Poulsbo) USB UHCI #1 [8086:8114] (rev 07) (prog-if 00 [UHCI])
Subsystem: Intel Corporation Device [8086:8119]
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 18
Region 4: I/O ports at 5040 [size=32]
Kernel driver in use: uhci_hcd
00: 86 80 14 81 05 00 00 00 07 00 03 0c 00 00 80 00
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
END
[-- Attachment #1.1.4: hda-ad1989-eurotech0.2-kernel2.6.37.patch --]
[-- Type: text/x-patch, Size: 24556 bytes --]
diff -uNrp linux-2.6.37-to_diff/sound/pci/hda/hda_intel.c linux-2.6.37.hda1/sound/pci/hda/hda_intel.c
--- linux-2.6.37-to_diff/sound/pci/hda/hda_intel.c 2011-01-04 19:50:19.000000000 -0500
+++ linux-2.6.37.hda1/sound/pci/hda/hda_intel.c 2011-01-29 10:08:12.714399242 -0500
@@ -2089,12 +2089,15 @@ static int __devinit azx_init_stream(str
azx_dev->index = i;
azx_dev->stream_tag = i + 1;
+ //TODEL
+ snd_printk(KERN_INFO "Init stream %d, offset %x, stream_tag %d", i, 0x20*i+0x80, azx_dev->stream_tag);
}
-
return 0;
}
static int azx_acquire_irq(struct azx *chip, int do_disconnect)
{
+//TODEL
+ snd_printk( KERN_INFO "Grabbing IRQ %d, MSI state %d\n",chip->pci->irq,chip->msi);
if (request_irq(chip->pci->irq, azx_interrupt,
chip->msi ? 0 : IRQF_SHARED,
"hda_intel", chip)) {
@@ -2316,6 +2319,7 @@ static struct snd_pci_quirk position_fix
SND_PCI_QUIRK(0x1849, 0x0888, "775Dual-VSTA", POS_FIX_LPIB),
SND_PCI_QUIRK(0x8086, 0x2503, "DG965OT AAD63733-203", POS_FIX_LPIB),
SND_PCI_QUIRK(0x8086, 0xd601, "eMachines T5212", POS_FIX_LPIB),
+ SND_PCI_QUIRK(0x8086, 0x8119, "Eurotech Catalysis", POS_FIX_VIACOMBO),
{}
};
@@ -2367,6 +2371,7 @@ static struct snd_pci_quirk probe_mask_l
/* forced codec slots */
SND_PCI_QUIRK(0x1043, 0x1262, "ASUS W5Fm", 0x103),
SND_PCI_QUIRK(0x1046, 0x1262, "ASUS W5F", 0x103),
+ SND_PCI_QUIRK(0x8086, 0x8119, "Eurotech Catalysis", 0x102),
{}
};
@@ -2406,6 +2411,7 @@ static struct snd_pci_quirk msi_black_li
SND_PCI_QUIRK(0x1043, 0x822d, "ASUS", 0), /* Athlon64 X2 + nvidia MCP55 */
SND_PCI_QUIRK(0x1849, 0x0888, "ASRock", 0), /* Athlon64 X2 + nvidia */
SND_PCI_QUIRK(0xa0a0, 0x0575, "Aopen MZ915-M", 0), /* ICH6 */
+ SND_PCI_QUIRK(0x8086, 0x8119, "Eurotech Catalysis", 0),
{}
};
diff -uNrp linux-2.6.37-to_diff/sound/pci/hda/Makefile linux-2.6.37.hda1/sound/pci/hda/Makefile
--- linux-2.6.37-to_diff/sound/pci/hda/Makefile 2011-01-04 19:50:19.000000000 -0500
+++ linux-2.6.37.hda1/sound/pci/hda/Makefile 2011-01-29 09:40:28.257893457 -0500
@@ -6,53 +6,32 @@ snd-hda-codec-$(CONFIG_PROC_FS) += hda_p
snd-hda-codec-$(CONFIG_SND_HDA_HWDEP) += hda_hwdep.o
snd-hda-codec-$(CONFIG_SND_HDA_INPUT_BEEP) += hda_beep.o
-snd-hda-codec-realtek-objs := patch_realtek.o
-snd-hda-codec-cmedia-objs := patch_cmedia.o
-snd-hda-codec-analog-objs := patch_analog.o
-snd-hda-codec-idt-objs := patch_sigmatel.o
-snd-hda-codec-si3054-objs := patch_si3054.o
-snd-hda-codec-cirrus-objs := patch_cirrus.o
-snd-hda-codec-ca0110-objs := patch_ca0110.o
-snd-hda-codec-conexant-objs := patch_conexant.o
-snd-hda-codec-via-objs := patch_via.o
-snd-hda-codec-hdmi-objs := patch_hdmi.o hda_eld.o
+#snd-hda-codec-analog-objs := patch_analog.o
+#snd-hda-codec-idt-objs := patch_sigmatel.o
+snd-hda-codec-ad1989-objs := my_ad1989.o
+#snd-hda-codec-realtek-objs := patch_realtek.o
# common driver
obj-$(CONFIG_SND_HDA_INTEL) := snd-hda-codec.o
# codec drivers (note: CONFIG_SND_HDA_CODEC_XXX are booleans)
-ifdef CONFIG_SND_HDA_CODEC_REALTEK
-obj-$(CONFIG_SND_HDA_INTEL) += snd-hda-codec-realtek.o
-endif
-ifdef CONFIG_SND_HDA_CODEC_CMEDIA
-obj-$(CONFIG_SND_HDA_INTEL) += snd-hda-codec-cmedia.o
-endif
ifdef CONFIG_SND_HDA_CODEC_ANALOG
-obj-$(CONFIG_SND_HDA_INTEL) += snd-hda-codec-analog.o
+#obj-$(CONFIG_SND_HDA_INTEL) += snd-hda-codec-analog.o
+obj-$(CONFIG_SND_HDA_INTEL) += snd-hda-codec-ad1989.o
endif
ifdef CONFIG_SND_HDA_CODEC_SIGMATEL
-obj-$(CONFIG_SND_HDA_INTEL) += snd-hda-codec-idt.o
-endif
-ifdef CONFIG_SND_HDA_CODEC_SI3054
-obj-$(CONFIG_SND_HDA_INTEL) += snd-hda-codec-si3054.o
-endif
-ifdef CONFIG_SND_HDA_CODEC_CIRRUS
-obj-$(CONFIG_SND_HDA_INTEL) += snd-hda-codec-cirrus.o
-endif
-ifdef CONFIG_SND_HDA_CODEC_CA0110
-obj-$(CONFIG_SND_HDA_INTEL) += snd-hda-codec-ca0110.o
+#obj-$(CONFIG_SND_HDA_INTEL) += snd-hda-codec-idt.o
endif
-ifdef CONFIG_SND_HDA_CODEC_CONEXANT
-obj-$(CONFIG_SND_HDA_INTEL) += snd-hda-codec-conexant.o
-endif
-ifdef CONFIG_SND_HDA_CODEC_VIA
-obj-$(CONFIG_SND_HDA_INTEL) += snd-hda-codec-via.o
-endif
-ifdef CONFIG_SND_HDA_CODEC_HDMI
-obj-$(CONFIG_SND_HDA_INTEL) += snd-hda-codec-hdmi.o
+ifdef CONFIG_SND_HDA_CODEC_REALTEK
+#obj-$(CONFIG_SND_HDA_INTEL) += snd-hda-codec-realtek.o
endif
-
# this must be the last entry after codec drivers;
# otherwise the codec patches won't be hooked before the PCI probe
# when built in kernel
obj-$(CONFIG_SND_HDA_INTEL) += snd-hda-intel.o
+ifdef HLC
+all:
+ make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
+clean:
+ make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
+endif
diff -uNrp linux-2.6.37-to_diff/sound/pci/hda/my_ad1989.c linux-2.6.37.hda1/sound/pci/hda/my_ad1989.c
--- linux-2.6.37-to_diff/sound/pci/hda/my_ad1989.c 1969-12-31 19:00:00.000000000 -0500
+++ linux-2.6.37.hda1/sound/pci/hda/my_ad1989.c 2011-01-29 09:40:28.253893379 -0500
@@ -0,0 +1,555 @@
+/*
+ * HD audio interface patch for AD1989A,B with models for the
+ * custom hardware implementation on Eurotech v.3
+ *
+ * Copyright (c) 2010-2011 Aleksandar Mihaylov (amihaylo@uwo.ca)
+ *
+ * This driver is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This driver is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include <linux/init.h>
+#include <linux/delay.h>
+#include <linux/slab.h>
+#include <linux/pci.h>
+#include <sound/core.h>
+
+#include "hda_codec.h"
+#include "hda_local.h"
+#include "hda_beep.h" // make sure to setup the beep amp to route out of port A
+
+MODULE_ALIAS("snd-hda-codec-id:11d4989a");//change as conflict with patch_analog
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Aleksandar Mihaylov sashkosnail@gmail.com");
+MODULE_DESCRIPTION("NCA dev. AD1989:EUROTECH");
+MODULE_SUPPORTED_DEVICE("AD1989");
+
+#define set_beep_amp(spec, nid, idx, dir) \
+ ((spec)->beep_amp = HDA_COMPOSE_AMP_VAL(nid, 1, idx, dir)) /* mono */
+
+#define AD1989_VENDORID 0x11D4989A
+#define AD1989_REV3 0x00100300
+#define AD1989_SUBID 0xBFD80000
+
+#define HP_DAC_NID 0x03
+#define MIC1_ADC_NID 0x09
+#define MIC2_ADC_NID 0x08
+#define MIC3_ADC_NID 0x0f
+#define BEEP_AMP_NID 0x10
+//comment to disable debug output
+#define LOCAL_DEBUG
+//comment to disbable beeper
+//#define WITH_BEEP
+/*
+ * Codec spec will hold the rquired configuration
+ * data until it is patch into the caller
+ */
+struct ad1989_spec {
+ struct snd_kcontrol_new *mixers[3];
+ int num_mixers;
+
+ unsigned int beep_amp;
+
+ const struct hda_verb *init_verbs[5];
+ unsigned int num_init_verbs;
+ //capture
+ unsigned int num_adc;
+ hda_nid_t *adc_nids;
+ //const struct hda_input_mux *input_mux; //label and id in hda_input_mux_item
+ const struct hda_channel_mode *channel_mode;
+ //PCM information
+ struct hda_pcm pcm_rec[3]; //name, stream[2]
+ struct snd_array kctls;
+};
+/*
+ * clear controls form memory once setup or if nolonger needed
+ */
+static void ad1989_free_kctls(struct hda_codec *codec)
+{
+ struct ad1989_spec *spec = codec->spec;
+
+ if(spec->kctls.list){
+ struct snd_kcontrol_new *kctl = spec->kctls.list;
+ int i;
+ for(i=0; i< spec->kctls.used; i++)
+ kfree(kctl[i].name);
+ }
+ snd_array_free(&spec->kctls);
+}
+/*
+ * PCM stream callbakcs and initialization: Playback
+ */
+static int ad1989_hp_open(struct hda_pcm_stream *hinfo, struct hda_codec *codec,
+ struct snd_pcm_substream *substream)
+{
+ struct snd_pcm_runtime *runtime = substream->runtime;
+ runtime->hw.channels_max = hinfo->channels_max;
+ runtime->hw.channels_min = hinfo->channels_min;
+ runtime->hw.rates = hinfo->rates;
+ runtime->hw.formats = hinfo->formats;
+#ifdef LOCAL_DEBUG
+ printk( KERN_INFO "OPENING playback stream\n");
+#endif
+ return snd_pcm_hw_constraint_step(substream->runtime, 0,
+ SNDRV_PCM_HW_PARAM_CHANNELS, 2);
+}
+
+static int ad1989_hp_close(struct hda_pcm_stream *info, struct hda_codec *codec,
+ struct snd_pcm_substream *substream)
+{
+#ifdef LOCAL_DEBUG
+ printk( KERN_INFO "CLOSING playback stream\n");
+#endif
+ return 0;//dummy
+}
+
+static int ad1989_hp_prep(struct hda_pcm_stream *hinfo, struct hda_codec *codec,
+ unsigned int stream_tag, unsigned int format,
+ struct snd_pcm_substream *substream)
+{
+#ifdef LOCAL_DEBUG
+ printk( KERN_INFO "PREP pcm playback stream_tag:%d, NID:%d format:%d\n"\
+ , stream_tag, HP_DAC_NID, format);
+#endif
+ snd_hda_codec_setup_stream(codec, HP_DAC_NID, stream_tag, 0, format);
+ return 0;
+}
+
+static int ad1989_hp_clean(struct hda_pcm_stream *hinfo, struct hda_codec *codec,
+ struct snd_pcm_substream *substream)
+{
+#ifdef LOCAL_DEBUG
+ printk( KERN_INFO "CLEANUP playback stream\n");
+#endif
+ snd_hda_codec_cleanup_stream(codec, HP_DAC_NID);
+ return 0;
+}
+
+static struct hda_pcm_stream ad1989_pcm_playback = {
+ .substreams = 1,
+ .channels_min = 2,
+ .channels_max = 2,
+ .nid = HP_DAC_NID,
+ .ops = {
+ .open = ad1989_hp_open,
+ .close = ad1989_hp_close,
+ .prepare = ad1989_hp_prep,
+ .cleanup = ad1989_hp_clean,
+ }
+};
+/*
+ * PCM stream callbacks and initialization: Capture
+ */
+static hda_nid_t ad1989_adc_nids[3] = {
+ MIC1_ADC_NID, MIC2_ADC_NID, MIC3_ADC_NID
+ };
+
+static int ad1989_mic_open(struct hda_pcm_stream *hinfo, struct hda_codec *codec,
+ struct snd_pcm_substream *substream)
+{
+ struct snd_pcm_runtime *runtime = substream->runtime;
+ runtime->hw.channels_max = hinfo->channels_max;
+ runtime->hw.channels_min = hinfo->channels_min;
+ runtime->hw.rates = hinfo->rates;
+ runtime->hw.formats = hinfo->formats;
+
+#ifdef LOCAL_DEBUG
+ printk( KERN_INFO "OPENING capture stream\n");
+#endif
+ return snd_pcm_hw_constraint_step(substream->runtime, 0,
+ SNDRV_PCM_HW_PARAM_CHANNELS, 2);
+}
+
+static int ad1989_mic_close(struct hda_pcm_stream *hinfo, struct hda_codec *codec,
+ struct snd_pcm_substream *substream)
+{
+#ifdef LOCAL_DEBUG
+ printk( KERN_INFO "CLOSING capture stream\n");
+#endif
+ return 0;//dummy
+}
+
+static int ad1989_mic_prep(struct hda_pcm_stream *hinfo, struct hda_codec *codec,
+ unsigned int stream_tag, unsigned int format,
+ struct snd_pcm_substream *substream)
+{
+ struct ad1989_spec *spec = codec->spec;
+#ifdef LOCAL_DEBUG
+ printk( KERN_INFO "PREP mic pcm, stream_tag:%d, NID:%d, format:%d\n",\
+ stream_tag, spec->adc_nids[substream->number],format);
+#endif
+ snd_hda_codec_setup_stream(codec, spec->adc_nids[substream->number],
+ stream_tag, 0, format);
+ return 0;
+}
+
+static int ad1989_mic_clean(struct hda_pcm_stream *hinfo, struct hda_codec *codec,
+ struct snd_pcm_substream *substream)
+{
+ struct ad1989_spec *spec = codec->spec;
+#ifdef LOCAL_DEBUG
+ printk( KERN_INFO "CLEANUP mic stream");
+#endif
+ snd_hda_codec_cleanup_stream(codec, spec->adc_nids[substream->number]);
+ return 0;
+}
+
+static struct hda_pcm_stream ad1989_pcm_capture = {
+ .substreams = 3,
+ .channels_min = 1,
+ .channels_max = 6,
+ .nid = 0, //blank for now
+ .ops = {
+ .open = ad1989_mic_open,
+ .close = ad1989_mic_close,
+ .prepare = ad1989_mic_prep,
+ .cleanup = ad1989_mic_clean,
+ }
+};
+/*
+ * Init verb table
+ */
+static struct hda_verb ad1989_init_verbs[] = {
+/* Mute and disable all pin widgets*/
+ {0x11, AC_VERB_SET_AMP_GAIN_MUTE, 0xF080},
+ {0x11, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x00},
+ {0x12, AC_VERB_SET_AMP_GAIN_MUTE, 0xF080},
+ {0x12, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x00},
+ {0x13, AC_VERB_SET_AMP_GAIN_MUTE, 0xF080},
+ {0x13, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x00},
+ {0x14, AC_VERB_SET_AMP_GAIN_MUTE, 0xF080},
+ {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x00},
+ {0x15, AC_VERB_SET_AMP_GAIN_MUTE, 0xF080},
+ {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x00},
+ {0x16, AC_VERB_SET_AMP_GAIN_MUTE, 0xF080},
+ {0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x00},
+ {0x17, AC_VERB_SET_AMP_GAIN_MUTE, 0xF080},
+ {0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x00},
+ {0x24, AC_VERB_SET_AMP_GAIN_MUTE, 0xF080},
+ {0x24, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x00},
+ {0x25, AC_VERB_SET_AMP_GAIN_MUTE, 0xF080},
+ {0x25, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x00},
+/* Power down all ADC and DAC pairs */
+ {0x03, AC_VERB_SET_POWER_STATE, AC_PWRST_D3},
+ {0x04, AC_VERB_SET_POWER_STATE, AC_PWRST_D3},
+ {0x05, AC_VERB_SET_POWER_STATE, AC_PWRST_D3},
+ {0x06, AC_VERB_SET_POWER_STATE, AC_PWRST_D3},
+ {0x0a, AC_VERB_SET_POWER_STATE, AC_PWRST_D3},
+ {0x08, AC_VERB_SET_POWER_STATE, AC_PWRST_D3},
+ {0x09, AC_VERB_SET_POWER_STATE, AC_PWRST_D3},
+ {0x0f, AC_VERB_SET_POWER_STATE, AC_PWRST_D3},
+/* mute analog mix */
+ {0x20, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)},
+ {0x20, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)},
+ {0x20, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(2)},
+ {0x20, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(3)},
+ {0x20, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(4)},
+ {0x20, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(5)},
+ {0x20, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(6)},
+ {0x20, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(7)},
+/* Analog Mix mute output */
+ {0x21, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE},
+/* Mute Mic Selectors, preload 0.0dB */
+ {0x0C, AC_VERB_SET_AMP_GAIN_MUTE, 0xb0a7},
+ {0x0D, AC_VERB_SET_AMP_GAIN_MUTE, 0xb0a7},
+ {0x0E, AC_VERB_SET_AMP_GAIN_MUTE, 0xb0a7},
+/*
+ * Port-A headphone path
+ * Path: 0x03->0x37->0x22->0x11
+ * Pin Complex: 0x02214110
+ * Pin Control: 0xC0 HP,OUT,Hi-Z
+ */
+ {0x11, AC_VERB_SET_CONFIG_DEFAULT_BYTES_0, 0x10},//Association 1, seq 0
+ {0x11, AC_VERB_SET_CONFIG_DEFAULT_BYTES_1, 0x41},//HP green, no jack detect
+ {0x11, AC_VERB_SET_CONFIG_DEFAULT_BYTES_2, 0x21},//HP jack, 3.5mm
+ {0x11, AC_VERB_SET_CONFIG_DEFAULT_BYTES_3, 0x02},//External jack on front
+ {0x11, AC_VERB_SET_PIN_WIDGET_CONTROL, 0xC0},//HP, OUT enable, HI-z
+ {0x22, AC_VERB_SET_AMP_GAIN_MUTE, 0x7000},//unmute idx0
+ {0x22, AC_VERB_SET_AMP_GAIN_MUTE, 0x7180},//mute idx1
+ {0x37, AC_VERB_SET_CONNECT_SEL, 0x00},//select dac3
+ {0x03, AC_VERB_SET_POWER_STATE, AC_PWRST_D0},//powerup DAC0
+ {0x03, AC_VERB_SET_AMP_GAIN_MUTE, 0xb027},//set gain 0.0dB
+ {0x11, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE},//complete HP path
+/*
+ * Port-B microphone 1 path
+ * Path: 0x14->0x39->0x0c->0x08
+ * Pin Complex: 0x02a19120
+ * Pin Control: 0x24
+ */
+ {0x08, AC_VERB_SET_POWER_STATE, AC_PWRST_D0},//power up ADC0
+ {0x0C, AC_VERB_SET_CONNECT_SEL, 0x01},//select PortB boost, NID 0x38
+ {0x0C, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE},//unmute amp
+ {0x39, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO},//pre-amp @0db
+ {0x14, AC_VERB_SET_CONFIG_DEFAULT_BYTES_0, 0x20},//Association 2, seq 0
+ {0x14, AC_VERB_SET_CONFIG_DEFAULT_BYTES_1, 0x91},//pink, no jack detect
+ {0x14, AC_VERB_SET_CONFIG_DEFAULT_BYTES_2, 0xA1},//mic, 3.5mm
+ {0x14, AC_VERB_SET_CONFIG_DEFAULT_BYTES_3, 0x02},//external, front
+ {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80},//mic bias 80%5V
+ {0x14, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE},//complete Mic1 path
+/*
+ * Port-C microphone 2 path
+ * Path: 0x15->0x3A->0x0D->0x09
+ * Pin Complex: 0x02a19121
+ * Pin Control: 0x24
+ */
+ {0x09, AC_VERB_SET_POWER_STATE, AC_PWRST_D0},//power up ADC1
+ {0x0D, AC_VERB_SET_CONNECT_SEL, 0x02},//select PortC boost, NID 0x39
+ {0x0D, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE},//unmute amp
+ {0x3A, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO},//pre-amp @0db
+ {0x15, AC_VERB_SET_CONFIG_DEFAULT_BYTES_0, 0x21},//Association 2, seq 1
+ {0x15, AC_VERB_SET_CONFIG_DEFAULT_BYTES_1, 0x91},//pink, no jack detect
+ {0x15, AC_VERB_SET_CONFIG_DEFAULT_BYTES_2, 0xA1},//mic, 3.5mm
+ {0x15, AC_VERB_SET_CONFIG_DEFAULT_BYTES_3, 0x02},//external, front
+ {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80},//mic bias 80%5V
+ {0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE},//complete Mic2 path
+/*
+ * Port-E microphone 3 path
+ * Path: 0x17->0x3C->0x0E->0x0F
+ * Pin Complex: 0x02a19122
+ * Pin Control: 0x24
+ */
+ {0x0f, AC_VERB_SET_POWER_STATE, AC_PWRST_D0},//power up ADC2
+ {0x0E, AC_VERB_SET_CONNECT_SEL, 0x04},//select PortE boost, NID 0x3c
+ {0x0E, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE},//unmute amp
+ {0x3C, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO},//pre-amp @0db
+ {0x17, AC_VERB_SET_CONFIG_DEFAULT_BYTES_0, 0x22},//Association 2, seq 1
+ {0x17, AC_VERB_SET_CONFIG_DEFAULT_BYTES_1, 0x91},//pink, no jack detect
+ {0x17, AC_VERB_SET_CONFIG_DEFAULT_BYTES_2, 0xA1},//mic, 3.5mm
+ {0x17, AC_VERB_SET_CONFIG_DEFAULT_BYTES_3, 0x02},//external, front
+ {0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80},//mic bias 80%5V
+ {0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE},//complete Mic3 path
+
+ {}//end
+};
+/*
+ * Mixer setup
+ */
+
+static struct snd_kcontrol_new ad1989_mixers[] = {
+ HDA_CODEC_VOLUME("Headphone Playback Volume", 0x03, 0, HDA_OUTPUT),
+ HDA_CODEC_MUTE("Headphone Playback Switch", 0x11, 0, HDA_OUTPUT),
+ HDA_CODEC_VOLUME("Microphone 1 Capture Volume", 0x0C, 0, HDA_OUTPUT),
+ HDA_CODEC_MUTE("Microphone 1 Capture Switch", 0x14, 0, HDA_OUTPUT),
+ HDA_CODEC_VOLUME("Microphone 2 Capture Volume", 0x0D, 0, HDA_OUTPUT),
+ HDA_CODEC_MUTE("Microphone 2 Capture Switch", 0x15, 0, HDA_OUTPUT),
+ HDA_CODEC_VOLUME("Microphone 3 Capture Volume", 0x0E, 0, HDA_OUTPUT),
+ HDA_CODEC_MUTE("Microphone 3 Capture Switch", 0x17, 0, HDA_OUTPUT),
+ HDA_CODEC_VOLUME("Mic 1 Boost", 0x39, 0 ,HDA_OUTPUT),
+ HDA_CODEC_VOLUME("Mic 2 Boost", 0x3A, 0 ,HDA_OUTPUT),
+ HDA_CODEC_VOLUME("Mic 3 Boost", 0x3C, 0 ,HDA_OUTPUT),
+ {}
+};
+#ifdef WITH_BEEP
+static struct snd_kcontrol_new ad1989_beep_mix[] = {
+ HDA_CODEC_VOLUME("Beep Playback Volume", BEEP_AMP_NID, 0, HDA_OUTPUT),
+ HDA_CODEC_MUTE_BEEP("Beep Playback Switch", BEEP_AMP_NID, 0, HDA_OUTPUT),
+ {}
+};
+#endif
+/*
+ * Patch ops callbacks:
+ */
+static int ad1989_init(struct hda_codec *codec)
+{
+ struct ad1989_spec *spec = codec->spec;
+ int i,j;
+ const struct hda_verb *seq;
+ for(i=0;i<spec->num_init_verbs;i++)
+ {
+ seq=spec->init_verbs[i];
+#ifdef LOCAL_DEBUG
+ printk( KERN_INFO "Sending initialization verb table #%d, first NID:%x\n", i, seq->nid);
+#endif
+ //snd_hda_sequence_write(codec, spec->init_verbs[i]);
+ for (j=0; seq->nid; seq++)
+ {
+#ifdef LOCAL_DEBUG
+ printk( KERN_INFO "%d:\t NID:%x\tVERB:%x\tPARAM:%x\n",j++,seq->nid,seq->verb,seq->param);
+#endif
+ snd_hda_codec_write(codec, seq->nid, 0, seq->verb, seq->param);
+ }
+ }
+ return 0;
+}
+
+static void ad1989_free(struct hda_codec *codec)
+{
+ struct ad1989_spec *spec = codec->spec;
+ if(!spec)
+ return;
+ snd_hda_shutup_pins(codec);
+
+ ad1989_free_kctls(codec);
+
+ kfree(spec);
+#ifdef CONFIG_SND_HDA_INPUT_BEEP
+#ifdef WITH_BEEP
+ snd_hda_detach_beep_device(codec);
+#endif
+#endif
+}
+
+static int ad1989_build_pcm(struct hda_codec *codec)
+{
+ struct ad1989_spec *spec = codec->spec;
+ struct hda_pcm *info = spec->pcm_rec;
+
+ codec->num_pcms = 1;
+ codec->pcm_info = info;
+
+ info->name = "AD1989 EuroPCM";
+ info->stream[SNDRV_PCM_STREAM_PLAYBACK] = ad1989_pcm_playback;
+ info->stream[SNDRV_PCM_STREAM_CAPTURE] = ad1989_pcm_capture;
+ info->stream[SNDRV_PCM_STREAM_PLAYBACK].nid = HP_DAC_NID;
+ info->stream[SNDRV_PCM_STREAM_CAPTURE].nid = ad1989_adc_nids[0];
+
+ return 0;
+//TODO
+}
+
+static int ad1989_build_ctl(struct hda_codec *codec)
+{
+ struct ad1989_spec *spec = codec->spec;
+ int i,err;
+
+ for (i = 0; i < spec->num_mixers; i++) {
+ err=snd_hda_add_new_ctls(codec, spec->mixers[i]);
+ if(err < 0)
+ return err;
+ }
+#ifdef CONFIG_SND_HDA_INPUT_BEEP
+#ifdef WITH_BEEP
+ if(spec->beep_amp) {
+ struct snd_kcontrol_new *kbeep;
+ kbeep = ad1989_beep_mix;
+ for(;kbeep->name;kbeep++) {
+ struct snd_kcontrol *kctl;
+ kctl = snd_ctl_new1(kbeep, codec);
+ if(!kctl)
+ return -ENOMEM;
+ kctl->private_value = spec->beep_amp;
+ err=snd_hda_ctl_add(codec, 0, kctl);
+ if(err < 0)
+ return err;
+ }
+ }
+#endif
+#endif
+//Always ensure that we have a master playback, to avoid having to set it up here
+ ad1989_free_kctls(codec);
+//TODO: include Capture/Input source parsing if needed
+ return 0;
+}
+/*
+ * AD1989 , patch_ops for the eurotech setup
+ */
+struct hda_codec_ops ad1989_patch_ops = {
+ .build_controls = ad1989_build_ctl,
+ .build_pcms = ad1989_build_pcm,
+ .init = ad1989_init,
+ .free = ad1989_free
+};
+/*
+ * Main patch routine
+ * setup codec-pec with the required patch_ops and
+ * init verbs
+ */
+static int patch_ad1989(struct hda_codec *codec)
+{
+ struct ad1989_spec *spec;
+ //int err;
+/*
+ * Initialize a new special codec config
+ * and assign it to the current codec
+ */
+ spec = kzalloc(sizeof(*spec),GFP_KERNEL);
+ if(spec==NULL)
+ return -ENOMEM;
+ codec->spec=spec;
+/*
+ * Initialize codec patch_ops
+ */
+ codec->patch_ops=ad1989_patch_ops;
+
+/*
+ * Print some usefull info to the kernel log
+ */
+#ifdef LOCAL_DEBUG
+ printk( KERN_INFO "Apply patch ad1989 to codec @addr %d\n",codec->addr);
+ printk( KERN_INFO "INFO SECTION\n*******************\n");
+ printk( KERN_INFO "Subsystem ID:%x Vendor ID:%x\n",\
+ codec->subsystem_id, codec->vendor_id);
+ printk( KERN_INFO "Vendor Name: %s Chip Name: %s Model Name: %s\n",\
+ codec->vendor_name, codec->chip_name, codec->modelname);
+ printk( KERN_INFO "*******************\nEND INFO SECTION\n");
+#endif
+
+/*
+ * Install the pc_beep control(NID=BEEP_AMP_NID)
+ */
+#ifdef WITH_BEEP
+ err=snd_hda_attach_beep_device(codec,BEEP_AMP_NID);
+ if( err < 0) {
+ ad1989_free(codec);
+ return err;
+ }
+ set_beep_amp(spec, BEEP_AMP_NID, 0, HDA_OUTPUT);
+#endif
+/*
+ * Apply spec options
+ */
+ spec->num_adc = 3;
+ spec->adc_nids = ad1989_adc_nids;
+ spec->num_init_verbs = 1;
+ spec->init_verbs[0] = ad1989_init_verbs;
+ spec->num_mixers = 1;
+ spec->mixers[0] = ad1989_mixers;
+// spec->pcm_rec = ;
+ spec->beep_amp = BEEP_AMP_NID;
+ //spec->kctls coming from add_control and snd_array_init
+ return 0;
+}
+
+static struct hda_codec_preset snd_hda_preset_analog[] = {
+ { .id = 0x11d4989a, .name = "AD1989A", .patch = patch_ad1989 },
+ { .id = 0x11d4989b, .name = "AD1989B", .patch = patch_ad1989 },
+ {} //list end
+ //TODO add afg members to speed up find_preset()
+};
+
+static struct hda_codec_preset_list my_preset_list = {
+ .owner = THIS_MODULE,
+ .preset = snd_hda_preset_analog,
+};
+/*
+ * Module initialization
+ */
+static int __init my_ad1989_init(void)
+{
+ //printk(KERN_INFO "Loading ad1989 custom module, preset table should be modified");
+ return snd_hda_add_codec_preset(&my_preset_list);
+}
+/*
+ * Module Removal
+ */
+static void __exit my_ad1989_exit(void)
+{
+ //printk(KERN_INFO "Unloading my_ad1989, preset table modified");
+ snd_hda_delete_codec_preset(&my_preset_list);
+};
+/*
+ * Kernel Hooks
+ */
+module_init(my_ad1989_init);
+module_exit(my_ad1989_exit);
diff -uNrp linux-2.6.37-to_diff/sound/pci/hda/patch_analog.c linux-2.6.37.hda1/sound/pci/hda/patch_analog.c
--- linux-2.6.37-to_diff/sound/pci/hda/patch_analog.c 2011-01-04 19:50:19.000000000 -0500
+++ linux-2.6.37.hda1/sound/pci/hda/patch_analog.c 2011-01-29 10:08:27.038671838 -0500
@@ -4791,8 +4791,8 @@ static struct hda_codec_preset snd_hda_p
{ .id = 0x11d41988, .name = "AD1988", .patch = patch_ad1988 },
{ .id = 0x11d4198b, .name = "AD1988B", .patch = patch_ad1988 },
{ .id = 0x11d4882a, .name = "AD1882A", .patch = patch_ad1882 },
- { .id = 0x11d4989a, .name = "AD1989A", .patch = patch_ad1988 },
- { .id = 0x11d4989b, .name = "AD1989B", .patch = patch_ad1988 },
+// { .id = 0x11d4989a, .name = "AD1989A", .patch = patch_ad1988 },
+// { .id = 0x11d4989b, .name = "AD1989B", .patch = patch_ad1988 },
{} /* terminator */
};
[-- Attachment #1.2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 490 bytes --]
[-- Attachment #2: Type: text/plain, Size: 160 bytes --]
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2011-02-07 19:40 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <mailman.13951.1297102081.2074.alsa-devel@alsa-project.org>
2011-02-07 19:39 ` ALSA: HDA ad1989 on Intel SCH interrupt issues Aleksandar Mihaylov
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).