[alsa-devel] HDA Intel ALC889A optical spdif input on MacBooks
Hi,
recently I wanted to connect my low noise mic pre-amp via optical spdif to a spare "10 year” old MacBook or MacBookPro. Those indeed have a optical input in the 3.5mm headphone jack. On macOS this also works and works as expected.
On Linux, however, no matter what I do I only get zeros when recording the -D iec958.
In /proc I see 3 capture sub-devices, where the 2nd is labeled:
# cat /proc/asound/card0/pcm1c/info ... id: ALC889A Digital name: ALC889A Digital ...
The behavior is the same on booth the MacBook as well as the MacBook Pro with either of those PCI devices:
00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 02) 00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 03)
I have the feeling there could be some auto sensing be involved, as in the macOS system preferences I see the input switching from Mic to Optical Input as soon as I plugin in an active fibre.
As I’m not familiar with this Intel HD stuff, any hint how to start analyzing and poking this mystery would be highly appreciated.
Best regards, René
Hello again,
so I checked the MacBook schematics and it looks like the optical input should be directly connected to pin 47 (GPIO3/SPDIFIN)
Maybe EAPD get’s accidentally / wrongly enabled? - Maybe someone can point me how to double check this in ALSA?
For the record - I try to record: # arecord -D iec958 -f dat -c 2 > rec.wav Recording WAVE 'stdin' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
but only get zeros:
# hexdump rec.wav 0000000 4952 4646 0024 8000 4157 4556 6d66 2074 0000010 0010 0000 0001 0002 bb80 0000 ee00 0002 0000020 0004 0010 6164 6174 0000 8000 0000 0000 0000030 0000 0000 0000 0000 0000 0000 0000 0000 * 0304020 0000 0000 0000 0000 0000 0000 030402c
As far as I can see the right sub-device is running:
# cat /proc/asound/card0/pcm1c/info card: 0 device: 1 subdevice: 0 stream: CAPTURE id: ALC889A Digital name: ALC889A Digital subname: subdevice #0 class: 0 subclass: 0 subdevices_count: 1 subdevices_avail: 0 bash-4.2# cat /proc/asound/card0/pcm1c/sub0/status state: RUNNING owner_pid : 25617 trigger_time: 2735.340360836 tstamp : 0.000000000 delay : 3415 avail : 3415 avail_max : 4095 ----- hw_ptr : 2047320 appl_ptr : 2043905
# cat /proc/asound/card0/codec#0 Codec: Realtek ALC889A Address: 0 AFG Function Id: 0x1 (unsol 1) Vendor Id: 0x10ec0885 Subsystem Id: 0x106b2c00 Revision Id: 0x100103 No Modem Function Group found Default PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Default Amp-In caps: N/A Default Amp-Out caps: N/A State of AFG node 0x01: Power states: D0 D1 D2 D3 Power: setting=D0, actual=D0 GPIO: io=2, o=0, i=0, unsolicited=1, wake=0 IO[0]: enable=1, dir=1, wake=0, sticky=0, data=1, unsol=0 IO[1]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0 Node 0x02 [Audio Output] wcaps 0x11: Stereo Device: name="ALC889A Analog", type="Audio", device=0 Converter: stream=0, channel=0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Node 0x03 [Audio Output] wcaps 0x11: Stereo Converter: stream=0, channel=0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Node 0x04 [Audio Output] wcaps 0x11: Stereo Converter: stream=0, channel=0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Node 0x05 [Audio Output] wcaps 0x11: Stereo Converter: stream=0, channel=0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Node 0x06 [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="ALC889A Digital", type="SPDIF", device=1 Converter: stream=0, channel=0 Digital: Enabled Digital category: 0x0 IEC Coding Type: 0x0 PCM: rates [0x5e0]: 44100 48000 88200 96000 192000 bits [0x1e]: 16 20 24 32 formats [0x1]: PCM Node 0x07 [Audio Input] wcaps 0x10011b: Stereo Amp-In Control: name="Capture Volume", index=0, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Control: name="Capture Switch", index=0, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Device: name="ALC889A Analog", type="Audio", device=0 Amp-In caps: ofs=0x10, nsteps=0x2e, stepsize=0x03, mute=1 Amp-In vals: [0x10 0x10] Converter: stream=0, channel=0 SDI-Select: 0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Connection: 1 0x24 Node 0x08 [Audio Input] wcaps 0x10011b: Stereo Amp-In Control: name="Capture Volume", index=1, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Control: name="Capture Switch", index=1, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Device: name="ALC889A Alt Analog", type="Audio", device=2 Amp-In caps: ofs=0x10, nsteps=0x2e, stepsize=0x03, mute=1 Amp-In vals: [0x90 0x90] Converter: stream=0, channel=0 SDI-Select: 0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Connection: 1 0x23 Node 0x09 [Audio Input] wcaps 0x10011b: Stereo Amp-In Control: name="Capture Volume", index=2, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Control: name="Capture Switch", index=2, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Amp-In caps: ofs=0x10, nsteps=0x2e, stepsize=0x03, mute=1 Amp-In vals: [0x90 0x90] Converter: stream=0, channel=0 SDI-Select: 0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Connection: 1 0x22 Node 0x0a [Audio Input] wcaps 0x100391: Stereo Digital Control: name="IEC958 Capture Switch", index=0, device=0 Control: name="IEC958 Capture Default", index=0, device=0 Device: name="ALC889A Digital", type="SPDIF", device=1 Converter: stream=1, channel=0 SDI-Select: 0 Digital: Enabled Digital category: 0x0 IEC Coding Type: 0x0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0x1e]: 16 20 24 32 formats [0x1]: PCM Unsolicited: tag=00, enabled=0 Connection: 1 0x1f Node 0x0b [Audio Mixer] wcaps 0x20010b: Stereo Amp-In Control: name="Mic Playback Volume", index=0, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Control: name="Mic Playback Switch", index=0, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Control: name="Line Playback Volume", index=0, device=0 ControlAmp: chs=3, dir=In, idx=2, ofs=0 Control: name="Line Playback Switch", index=0, device=0 ControlAmp: chs=3, dir=In, idx=2, ofs=0 Amp-In caps: ofs=0x17, nsteps=0x1f, stepsize=0x05, mute=1 Amp-In vals: [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] Connection: 10 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x14 0x15 0x16 0x17 Node 0x0c [Audio Mixer] wcaps 0x20010f: Stereo Amp-In Amp-Out Control: name="Headphone Playback Volume", index=0, device=0 ControlAmp: chs=3, dir=Out, idx=0, ofs=0 Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-In vals: [0x00 0x00] [0x80 0x80] Amp-Out caps: ofs=0x40, nsteps=0x40, stepsize=0x03, mute=0 Amp-Out vals: [0x34 0x34] Connection: 2 0x02 0x0b Node 0x0d [Audio Mixer] wcaps 0x20010f: Stereo Amp-In Amp-Out Control: name="Speaker Playback Volume", index=0, device=0 ControlAmp: chs=3, dir=Out, idx=0, ofs=0 Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-In vals: [0x00 0x00] [0x80 0x80] Amp-Out caps: ofs=0x40, nsteps=0x40, stepsize=0x03, mute=0 Amp-Out vals: [0x34 0x34] Connection: 2 0x03 0x0b Node 0x0e [Audio Mixer] wcaps 0x20010f: Stereo Amp-In Amp-Out Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-In vals: [0x00 0x00] [0x80 0x80] Amp-Out caps: ofs=0x40, nsteps=0x40, stepsize=0x03, mute=0 Amp-Out vals: [0x40 0x40] Connection: 2 0x04 0x0b Node 0x0f [Audio Mixer] wcaps 0x20010f: Stereo Amp-In Amp-Out Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-In vals: [0x00 0x00] [0x80 0x80] Amp-Out caps: ofs=0x40, nsteps=0x40, stepsize=0x03, mute=0 Amp-Out vals: [0x40 0x40] Connection: 2 0x05 0x0b Node 0x10 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x11 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x12 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x13 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x14 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out Control: name="Speaker Playback Switch", index=0, device=0 ControlAmp: chs=3, dir=Out, idx=0, ofs=0 Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x00 0x00] Pincap 0x0000373c: IN OUT HP Detect Vref caps: HIZ 50 GRD 80 100 Pin Default 0x90100140: [Fixed] Speaker at Int N/A Conn = Unknown, Color = Unknown DefAssociation = 0x4, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x40: OUT VREF_HIZ Unsolicited: tag=00, enabled=0 Connection: 5 0x0c 0x0d* 0x0e 0x0f 0x26 Node 0x15 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out Control: name="Headphone Playback Switch", index=0, device=0 ControlAmp: chs=3, dir=Out, idx=0, ofs=0 Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x00 0x00] Pincap 0x0000373c: IN OUT HP Detect Vref caps: HIZ 50 GRD 80 100 Pin Default 0x012b4050: [Jack] HP Out at Ext Rear Conn = Comb, Color = Green DefAssociation = 0x5, Sequence = 0x0 Pin-ctls: 0xc4: OUT HP VREF_80 Unsolicited: tag=01, enabled=1 Connection: 5 0x0c* 0x0d 0x0e 0x0f 0x26 Node 0x16 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Pincap 0x0000003c: IN OUT HP Detect Pin Default 0x400000f0: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Pin-ctls: 0x20: IN Unsolicited: tag=00, enabled=0 Connection: 5 0x0c 0x0d 0x0e* 0x0f 0x26 Node 0x17 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Pincap 0x0000003c: IN OUT HP Detect Pin Default 0x400000f0: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Pin-ctls: 0x20: IN Unsolicited: tag=00, enabled=0 Connection: 5 0x0c 0x0d 0x0e 0x0f* 0x26 Node 0x18 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out Control: name="Mic Boost Volume", index=0, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Pincap 0x0000373c: IN OUT HP Detect Vref caps: HIZ 50 GRD 80 100 Pin Default 0x90a00110: [Fixed] Mic at Int N/A Conn = Unknown, Color = Unknown DefAssociation = 0x1, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x24: IN VREF_80 Unsolicited: tag=00, enabled=0 Connection: 5 0x0c* 0x0d 0x0e 0x0f 0x26 Node 0x19 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Pincap 0x0000373c: IN OUT HP Detect Vref caps: HIZ 50 GRD 80 100 Pin Default 0x400000f0: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Pin-ctls: 0x20: IN VREF_HIZ Unsolicited: tag=00, enabled=0 Connection: 5 0x0c* 0x0d 0x0e 0x0f 0x26 Node 0x1a [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out Control: name="Line Boost Volume", index=0, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Pincap 0x0000373c: IN OUT HP Detect Vref caps: HIZ 50 GRD 80 100 Pin Default 0x018b3020: [Jack] Line In at Ext Rear Conn = Comb, Color = Blue DefAssociation = 0x2, Sequence = 0x0 Pin-ctls: 0x20: IN VREF_HIZ Unsolicited: tag=03, enabled=1 Connection: 5 0x0c* 0x0d 0x0e 0x0f 0x26 Node 0x1b [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Pincap 0x0000373c: IN OUT HP Detect Vref caps: HIZ 50 GRD 80 100 Pin Default 0x400000f0: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Pin-ctls: 0x20: IN VREF_HIZ Unsolicited: tag=00, enabled=0 Connection: 5 0x0c* 0x0d 0x0e 0x0f 0x26 Node 0x1c [Pin Complex] wcaps 0x400001: Stereo Pincap 0x00000020: IN Pin Default 0x400000f0: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Pin-ctls: 0x20: IN Node 0x1d [Pin Complex] wcaps 0x400000: Mono Pincap 0x00000020: IN Pin Default 0x400000f0: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Pin-ctls: 0x20: IN Node 0x1e [Pin Complex] wcaps 0x400300: Mono Digital Pincap 0x00000010: OUT Pin Default 0x014be060: [Jack] SPDIF Out at Ext Rear Conn = Comb, Color = White DefAssociation = 0x6, Sequence = 0x0 Pin-ctls: 0x40: OUT Connection: 1 0x06 Node 0x1f [Pin Complex] wcaps 0x400200: Mono Digital Pincap 0x00000020: IN Pin Default 0x01cbe030: [Jack] SPDIF In at Ext Rear Conn = Comb, Color = White DefAssociation = 0x3, Sequence = 0x0 Pin-ctls: 0x20: IN Node 0x20 [Vendor Defined Widget] wcaps 0xf00040: Mono Processing caps: benign=0, ncoeff=17 Node 0x21 [Volume Knob Widget] wcaps 0x600080: Mono Volume-Knob: delta=0, steps=32, direct=0, val=63 Unsolicited: tag=00, enabled=0 Connection: 0 Node 0x22 [Audio Mixer] wcaps 0x20010b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-In vals: [0x00 0x00] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] Connection: 11 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x14 0x15 0x16 0x17 0x0b Node 0x23 [Audio Mixer] wcaps 0x20010b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-In vals: [0x80 0x80] [0x80 0x80] [0x00 0x00] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] Connection: 11 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x14 0x15 0x16 0x17 0x0b Node 0x24 [Audio Mixer] wcaps 0x20010b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-In vals: [0x00 0x00] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] Connection: 11 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x14 0x15 0x16 0x17 0x0b Node 0x25 [Audio Output] wcaps 0x11: Stereo Converter: stream=0, channel=0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Node 0x26 [Audio Mixer] wcaps 0x20010f: Stereo Amp-In Amp-Out Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-In vals: [0x00 0x00] [0x80 0x80] Amp-Out caps: ofs=0x40, nsteps=0x40, stepsize=0x03, mute=0 Amp-Out vals: [0x40 0x40] Connection: 2 0x25 0x0b
On Apr 5, 2017, at 0:02, René Rebe rene@exactcode.de wrote:
Hi,
recently I wanted to connect my low noise mic pre-amp via optical spdif to a spare "10 year” old MacBook or MacBookPro. Those indeed have a optical input in the 3.5mm headphone jack. On macOS this also works and works as expected.
On Linux, however, no matter what I do I only get zeros when recording the -D iec958.
In /proc I see 3 capture sub-devices, where the 2nd is labeled:
# cat /proc/asound/card0/pcm1c/info ... id: ALC889A Digital name: ALC889A Digital ...
The behavior is the same on booth the MacBook as well as the MacBook Pro with either of those PCI devices:
00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 02) 00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 03)
I have the feeling there could be some auto sensing be involved, as in the macOS system preferences I see the input switching from Mic to Optical Input as soon as I plugin in an active fibre.
As I’m not familiar with this Intel HD stuff, any hint how to start analyzing and poking this mystery would be highly appreciated.
Best regards, René
-- ExactCODE GmbH, Lietzenburger Str. 42, DE-10789 Berlin http://exactcode.com | http://exactscan.com | http://ocrkit.com | http://t2-project.org | http://rene.rebe.de _______________________________________________ Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
On Apr 21, 2017, at 18:37, René Rebe rene@exactcode.de wrote:
Hello again,
so I checked the MacBook schematics and it looks like the optical input should be directly connected to pin 47 (GPIO3/SPDIFIN)
Maybe EAPD get’s accidentally / wrongly enabled? - Maybe someone can point me how to double check this in ALSA?
I the meantime I finally figured out how this debug verb setting should work via:
# hda-verb /dev/snd/hwC0D0 0x14 0x70C 0 nid = 0x14, verb = 0x70c, param = 0x0 value = 0x0 # hda-verb /dev/snd/hwC0D0 0x15 0x70C 0 nid = 0x15, verb = 0x70c, param = 0x0 value = 0x0
which made no difference either, and the ALC889 spec reads “when pin widget SPDIF-IN is not connected via the programming configuration register.”
Could that be a missing bit?
Any pointer or verbs I should poke welcome :-/
René
For the record - I try to record: # arecord -D iec958 -f dat -c 2 > rec.wav Recording WAVE 'stdin' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
but only get zeros:
# hexdump rec.wav 0000000 4952 4646 0024 8000 4157 4556 6d66 2074 0000010 0010 0000 0001 0002 bb80 0000 ee00 0002 0000020 0004 0010 6164 6174 0000 8000 0000 0000 0000030 0000 0000 0000 0000 0000 0000 0000 0000
0304020 0000 0000 0000 0000 0000 0000 030402c
As far as I can see the right sub-device is running:
# cat /proc/asound/card0/pcm1c/info card: 0 device: 1 subdevice: 0 stream: CAPTURE id: ALC889A Digital name: ALC889A Digital subname: subdevice #0 class: 0 subclass: 0 subdevices_count: 1 subdevices_avail: 0 bash-4.2# cat /proc/asound/card0/pcm1c/sub0/status state: RUNNING owner_pid : 25617 trigger_time: 2735.340360836 tstamp : 0.000000000 delay : 3415 avail : 3415 avail_max : 4095
hw_ptr : 2047320 appl_ptr : 2043905
# cat /proc/asound/card0/codec#0 Codec: Realtek ALC889A Address: 0 AFG Function Id: 0x1 (unsol 1) Vendor Id: 0x10ec0885 Subsystem Id: 0x106b2c00 Revision Id: 0x100103 No Modem Function Group found Default PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Default Amp-In caps: N/A Default Amp-Out caps: N/A State of AFG node 0x01: Power states: D0 D1 D2 D3 Power: setting=D0, actual=D0 GPIO: io=2, o=0, i=0, unsolicited=1, wake=0 IO[0]: enable=1, dir=1, wake=0, sticky=0, data=1, unsol=0 IO[1]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0 Node 0x02 [Audio Output] wcaps 0x11: Stereo Device: name="ALC889A Analog", type="Audio", device=0 Converter: stream=0, channel=0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Node 0x03 [Audio Output] wcaps 0x11: Stereo Converter: stream=0, channel=0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Node 0x04 [Audio Output] wcaps 0x11: Stereo Converter: stream=0, channel=0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Node 0x05 [Audio Output] wcaps 0x11: Stereo Converter: stream=0, channel=0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Node 0x06 [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="ALC889A Digital", type="SPDIF", device=1 Converter: stream=0, channel=0 Digital: Enabled Digital category: 0x0 IEC Coding Type: 0x0 PCM: rates [0x5e0]: 44100 48000 88200 96000 192000 bits [0x1e]: 16 20 24 32 formats [0x1]: PCM Node 0x07 [Audio Input] wcaps 0x10011b: Stereo Amp-In Control: name="Capture Volume", index=0, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Control: name="Capture Switch", index=0, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Device: name="ALC889A Analog", type="Audio", device=0 Amp-In caps: ofs=0x10, nsteps=0x2e, stepsize=0x03, mute=1 Amp-In vals: [0x10 0x10] Converter: stream=0, channel=0 SDI-Select: 0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Connection: 1 0x24 Node 0x08 [Audio Input] wcaps 0x10011b: Stereo Amp-In Control: name="Capture Volume", index=1, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Control: name="Capture Switch", index=1, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Device: name="ALC889A Alt Analog", type="Audio", device=2 Amp-In caps: ofs=0x10, nsteps=0x2e, stepsize=0x03, mute=1 Amp-In vals: [0x90 0x90] Converter: stream=0, channel=0 SDI-Select: 0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Connection: 1 0x23 Node 0x09 [Audio Input] wcaps 0x10011b: Stereo Amp-In Control: name="Capture Volume", index=2, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Control: name="Capture Switch", index=2, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Amp-In caps: ofs=0x10, nsteps=0x2e, stepsize=0x03, mute=1 Amp-In vals: [0x90 0x90] Converter: stream=0, channel=0 SDI-Select: 0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Connection: 1 0x22 Node 0x0a [Audio Input] wcaps 0x100391: Stereo Digital Control: name="IEC958 Capture Switch", index=0, device=0 Control: name="IEC958 Capture Default", index=0, device=0 Device: name="ALC889A Digital", type="SPDIF", device=1 Converter: stream=1, channel=0 SDI-Select: 0 Digital: Enabled Digital category: 0x0 IEC Coding Type: 0x0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0x1e]: 16 20 24 32 formats [0x1]: PCM Unsolicited: tag=00, enabled=0 Connection: 1 0x1f Node 0x0b [Audio Mixer] wcaps 0x20010b: Stereo Amp-In Control: name="Mic Playback Volume", index=0, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Control: name="Mic Playback Switch", index=0, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Control: name="Line Playback Volume", index=0, device=0 ControlAmp: chs=3, dir=In, idx=2, ofs=0 Control: name="Line Playback Switch", index=0, device=0 ControlAmp: chs=3, dir=In, idx=2, ofs=0 Amp-In caps: ofs=0x17, nsteps=0x1f, stepsize=0x05, mute=1 Amp-In vals: [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] Connection: 10 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x14 0x15 0x16 0x17 Node 0x0c [Audio Mixer] wcaps 0x20010f: Stereo Amp-In Amp-Out Control: name="Headphone Playback Volume", index=0, device=0 ControlAmp: chs=3, dir=Out, idx=0, ofs=0 Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-In vals: [0x00 0x00] [0x80 0x80] Amp-Out caps: ofs=0x40, nsteps=0x40, stepsize=0x03, mute=0 Amp-Out vals: [0x34 0x34] Connection: 2 0x02 0x0b Node 0x0d [Audio Mixer] wcaps 0x20010f: Stereo Amp-In Amp-Out Control: name="Speaker Playback Volume", index=0, device=0 ControlAmp: chs=3, dir=Out, idx=0, ofs=0 Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-In vals: [0x00 0x00] [0x80 0x80] Amp-Out caps: ofs=0x40, nsteps=0x40, stepsize=0x03, mute=0 Amp-Out vals: [0x34 0x34] Connection: 2 0x03 0x0b Node 0x0e [Audio Mixer] wcaps 0x20010f: Stereo Amp-In Amp-Out Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-In vals: [0x00 0x00] [0x80 0x80] Amp-Out caps: ofs=0x40, nsteps=0x40, stepsize=0x03, mute=0 Amp-Out vals: [0x40 0x40] Connection: 2 0x04 0x0b Node 0x0f [Audio Mixer] wcaps 0x20010f: Stereo Amp-In Amp-Out Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-In vals: [0x00 0x00] [0x80 0x80] Amp-Out caps: ofs=0x40, nsteps=0x40, stepsize=0x03, mute=0 Amp-Out vals: [0x40 0x40] Connection: 2 0x05 0x0b Node 0x10 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x11 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x12 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x13 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x14 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out Control: name="Speaker Playback Switch", index=0, device=0 ControlAmp: chs=3, dir=Out, idx=0, ofs=0 Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x00 0x00] Pincap 0x0000373c: IN OUT HP Detect Vref caps: HIZ 50 GRD 80 100 Pin Default 0x90100140: [Fixed] Speaker at Int N/A Conn = Unknown, Color = Unknown DefAssociation = 0x4, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x40: OUT VREF_HIZ Unsolicited: tag=00, enabled=0 Connection: 5 0x0c 0x0d* 0x0e 0x0f 0x26 Node 0x15 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out Control: name="Headphone Playback Switch", index=0, device=0 ControlAmp: chs=3, dir=Out, idx=0, ofs=0 Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x00 0x00] Pincap 0x0000373c: IN OUT HP Detect Vref caps: HIZ 50 GRD 80 100 Pin Default 0x012b4050: [Jack] HP Out at Ext Rear Conn = Comb, Color = Green DefAssociation = 0x5, Sequence = 0x0 Pin-ctls: 0xc4: OUT HP VREF_80 Unsolicited: tag=01, enabled=1 Connection: 5 0x0c* 0x0d 0x0e 0x0f 0x26 Node 0x16 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Pincap 0x0000003c: IN OUT HP Detect Pin Default 0x400000f0: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Pin-ctls: 0x20: IN Unsolicited: tag=00, enabled=0 Connection: 5 0x0c 0x0d 0x0e* 0x0f 0x26 Node 0x17 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Pincap 0x0000003c: IN OUT HP Detect Pin Default 0x400000f0: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Pin-ctls: 0x20: IN Unsolicited: tag=00, enabled=0 Connection: 5 0x0c 0x0d 0x0e 0x0f* 0x26 Node 0x18 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out Control: name="Mic Boost Volume", index=0, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Pincap 0x0000373c: IN OUT HP Detect Vref caps: HIZ 50 GRD 80 100 Pin Default 0x90a00110: [Fixed] Mic at Int N/A Conn = Unknown, Color = Unknown DefAssociation = 0x1, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x24: IN VREF_80 Unsolicited: tag=00, enabled=0 Connection: 5 0x0c* 0x0d 0x0e 0x0f 0x26 Node 0x19 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Pincap 0x0000373c: IN OUT HP Detect Vref caps: HIZ 50 GRD 80 100 Pin Default 0x400000f0: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Pin-ctls: 0x20: IN VREF_HIZ Unsolicited: tag=00, enabled=0 Connection: 5 0x0c* 0x0d 0x0e 0x0f 0x26 Node 0x1a [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out Control: name="Line Boost Volume", index=0, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Pincap 0x0000373c: IN OUT HP Detect Vref caps: HIZ 50 GRD 80 100 Pin Default 0x018b3020: [Jack] Line In at Ext Rear Conn = Comb, Color = Blue DefAssociation = 0x2, Sequence = 0x0 Pin-ctls: 0x20: IN VREF_HIZ Unsolicited: tag=03, enabled=1 Connection: 5 0x0c* 0x0d 0x0e 0x0f 0x26 Node 0x1b [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Pincap 0x0000373c: IN OUT HP Detect Vref caps: HIZ 50 GRD 80 100 Pin Default 0x400000f0: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Pin-ctls: 0x20: IN VREF_HIZ Unsolicited: tag=00, enabled=0 Connection: 5 0x0c* 0x0d 0x0e 0x0f 0x26 Node 0x1c [Pin Complex] wcaps 0x400001: Stereo Pincap 0x00000020: IN Pin Default 0x400000f0: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Pin-ctls: 0x20: IN Node 0x1d [Pin Complex] wcaps 0x400000: Mono Pincap 0x00000020: IN Pin Default 0x400000f0: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Pin-ctls: 0x20: IN Node 0x1e [Pin Complex] wcaps 0x400300: Mono Digital Pincap 0x00000010: OUT Pin Default 0x014be060: [Jack] SPDIF Out at Ext Rear Conn = Comb, Color = White DefAssociation = 0x6, Sequence = 0x0 Pin-ctls: 0x40: OUT Connection: 1 0x06 Node 0x1f [Pin Complex] wcaps 0x400200: Mono Digital Pincap 0x00000020: IN Pin Default 0x01cbe030: [Jack] SPDIF In at Ext Rear Conn = Comb, Color = White DefAssociation = 0x3, Sequence = 0x0 Pin-ctls: 0x20: IN Node 0x20 [Vendor Defined Widget] wcaps 0xf00040: Mono Processing caps: benign=0, ncoeff=17 Node 0x21 [Volume Knob Widget] wcaps 0x600080: Mono Volume-Knob: delta=0, steps=32, direct=0, val=63 Unsolicited: tag=00, enabled=0 Connection: 0 Node 0x22 [Audio Mixer] wcaps 0x20010b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-In vals: [0x00 0x00] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] Connection: 11 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x14 0x15 0x16 0x17 0x0b Node 0x23 [Audio Mixer] wcaps 0x20010b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-In vals: [0x80 0x80] [0x80 0x80] [0x00 0x00] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] Connection: 11 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x14 0x15 0x16 0x17 0x0b Node 0x24 [Audio Mixer] wcaps 0x20010b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-In vals: [0x00 0x00] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] Connection: 11 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x14 0x15 0x16 0x17 0x0b Node 0x25 [Audio Output] wcaps 0x11: Stereo Converter: stream=0, channel=0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Node 0x26 [Audio Mixer] wcaps 0x20010f: Stereo Amp-In Amp-Out Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-In vals: [0x00 0x00] [0x80 0x80] Amp-Out caps: ofs=0x40, nsteps=0x40, stepsize=0x03, mute=0 Amp-Out vals: [0x40 0x40] Connection: 2 0x25 0x0b
On Apr 5, 2017, at 0:02, René Rebe rene@exactcode.de wrote:
Hi,
recently I wanted to connect my low noise mic pre-amp via optical spdif to a spare "10 year” old MacBook or MacBookPro. Those indeed have a optical input in the 3.5mm headphone jack. On macOS this also works and works as expected.
On Linux, however, no matter what I do I only get zeros when recording the -D iec958.
In /proc I see 3 capture sub-devices, where the 2nd is labeled:
# cat /proc/asound/card0/pcm1c/info ... id: ALC889A Digital name: ALC889A Digital ...
The behavior is the same on booth the MacBook as well as the MacBook Pro with either of those PCI devices:
00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 02) 00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 03)
I have the feeling there could be some auto sensing be involved, as in the macOS system preferences I see the input switching from Mic to Optical Input as soon as I plugin in an active fibre.
As I’m not familiar with this Intel HD stuff, any hint how to start analyzing and poking this mystery would be highly appreciated.
Best regards, René
-- ExactCODE GmbH, Lietzenburger Str. 42, DE-10789 Berlin http://exactcode.com | http://exactscan.com | http://ocrkit.com | http://t2-project.org | http://rene.rebe.de _______________________________________________ Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
-- ExactCODE GmbH, Lietzenburger Str. 42, DE-10789 Berlin http://exactcode.com | http://exactscan.com | http://ocrkit.com | http://t2-project.org | http://rene.rebe.de
Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
On Fri, 21 Apr 2017 19:22:16 +0200, René Rebe wrote:
On Apr 21, 2017, at 18:37, René Rebe rene@exactcode.de wrote:
Hello again,
so I checked the MacBook schematics and it looks like the optical input should be directly connected to pin 47 (GPIO3/SPDIFIN)
Maybe EAPD get’s accidentally / wrongly enabled? - Maybe someone can point me how to double check this in ALSA?
I the meantime I finally figured out how this debug verb setting should work via:
# hda-verb /dev/snd/hwC0D0 0x14 0x70C 0 nid = 0x14, verb = 0x70c, param = 0x0 value = 0x0 # hda-verb /dev/snd/hwC0D0 0x15 0x70C 0 nid = 0x15, verb = 0x70c, param = 0x0 value = 0x0
which made no difference either, and the ALC889 spec reads “when pin widget SPDIF-IN is not connected via the programming configuration register.”
Could that be a missing bit?
Any pointer or verbs I should poke welcome :-/
Well, from the codec POV, the SPDIF in is straightly connected from the pin to the audio in widget, so there should be no special thing there. The possibly missing setup is the vendor-specific things, and Apple has been implementing the stuff always in a wild manner, e.g. doing via VREF, GPIO or whatever.
Takashi
René
For the record - I try to record: # arecord -D iec958 -f dat -c 2 > rec.wav Recording WAVE 'stdin' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
but only get zeros:
# hexdump rec.wav 0000000 4952 4646 0024 8000 4157 4556 6d66 2074 0000010 0010 0000 0001 0002 bb80 0000 ee00 0002 0000020 0004 0010 6164 6174 0000 8000 0000 0000 0000030 0000 0000 0000 0000 0000 0000 0000 0000
0304020 0000 0000 0000 0000 0000 0000 030402c
As far as I can see the right sub-device is running:
# cat /proc/asound/card0/pcm1c/info card: 0 device: 1 subdevice: 0 stream: CAPTURE id: ALC889A Digital name: ALC889A Digital subname: subdevice #0 class: 0 subclass: 0 subdevices_count: 1 subdevices_avail: 0 bash-4.2# cat /proc/asound/card0/pcm1c/sub0/status state: RUNNING owner_pid : 25617 trigger_time: 2735.340360836 tstamp : 0.000000000 delay : 3415 avail : 3415 avail_max : 4095
hw_ptr : 2047320 appl_ptr : 2043905
# cat /proc/asound/card0/codec#0 Codec: Realtek ALC889A Address: 0 AFG Function Id: 0x1 (unsol 1) Vendor Id: 0x10ec0885 Subsystem Id: 0x106b2c00 Revision Id: 0x100103 No Modem Function Group found Default PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Default Amp-In caps: N/A Default Amp-Out caps: N/A State of AFG node 0x01: Power states: D0 D1 D2 D3 Power: setting=D0, actual=D0 GPIO: io=2, o=0, i=0, unsolicited=1, wake=0 IO[0]: enable=1, dir=1, wake=0, sticky=0, data=1, unsol=0 IO[1]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0 Node 0x02 [Audio Output] wcaps 0x11: Stereo Device: name="ALC889A Analog", type="Audio", device=0 Converter: stream=0, channel=0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Node 0x03 [Audio Output] wcaps 0x11: Stereo Converter: stream=0, channel=0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Node 0x04 [Audio Output] wcaps 0x11: Stereo Converter: stream=0, channel=0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Node 0x05 [Audio Output] wcaps 0x11: Stereo Converter: stream=0, channel=0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Node 0x06 [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="ALC889A Digital", type="SPDIF", device=1 Converter: stream=0, channel=0 Digital: Enabled Digital category: 0x0 IEC Coding Type: 0x0 PCM: rates [0x5e0]: 44100 48000 88200 96000 192000 bits [0x1e]: 16 20 24 32 formats [0x1]: PCM Node 0x07 [Audio Input] wcaps 0x10011b: Stereo Amp-In Control: name="Capture Volume", index=0, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Control: name="Capture Switch", index=0, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Device: name="ALC889A Analog", type="Audio", device=0 Amp-In caps: ofs=0x10, nsteps=0x2e, stepsize=0x03, mute=1 Amp-In vals: [0x10 0x10] Converter: stream=0, channel=0 SDI-Select: 0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Connection: 1 0x24 Node 0x08 [Audio Input] wcaps 0x10011b: Stereo Amp-In Control: name="Capture Volume", index=1, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Control: name="Capture Switch", index=1, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Device: name="ALC889A Alt Analog", type="Audio", device=2 Amp-In caps: ofs=0x10, nsteps=0x2e, stepsize=0x03, mute=1 Amp-In vals: [0x90 0x90] Converter: stream=0, channel=0 SDI-Select: 0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Connection: 1 0x23 Node 0x09 [Audio Input] wcaps 0x10011b: Stereo Amp-In Control: name="Capture Volume", index=2, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Control: name="Capture Switch", index=2, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Amp-In caps: ofs=0x10, nsteps=0x2e, stepsize=0x03, mute=1 Amp-In vals: [0x90 0x90] Converter: stream=0, channel=0 SDI-Select: 0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Connection: 1 0x22 Node 0x0a [Audio Input] wcaps 0x100391: Stereo Digital Control: name="IEC958 Capture Switch", index=0, device=0 Control: name="IEC958 Capture Default", index=0, device=0 Device: name="ALC889A Digital", type="SPDIF", device=1 Converter: stream=1, channel=0 SDI-Select: 0 Digital: Enabled Digital category: 0x0 IEC Coding Type: 0x0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0x1e]: 16 20 24 32 formats [0x1]: PCM Unsolicited: tag=00, enabled=0 Connection: 1 0x1f Node 0x0b [Audio Mixer] wcaps 0x20010b: Stereo Amp-In Control: name="Mic Playback Volume", index=0, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Control: name="Mic Playback Switch", index=0, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Control: name="Line Playback Volume", index=0, device=0 ControlAmp: chs=3, dir=In, idx=2, ofs=0 Control: name="Line Playback Switch", index=0, device=0 ControlAmp: chs=3, dir=In, idx=2, ofs=0 Amp-In caps: ofs=0x17, nsteps=0x1f, stepsize=0x05, mute=1 Amp-In vals: [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] Connection: 10 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x14 0x15 0x16 0x17 Node 0x0c [Audio Mixer] wcaps 0x20010f: Stereo Amp-In Amp-Out Control: name="Headphone Playback Volume", index=0, device=0 ControlAmp: chs=3, dir=Out, idx=0, ofs=0 Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-In vals: [0x00 0x00] [0x80 0x80] Amp-Out caps: ofs=0x40, nsteps=0x40, stepsize=0x03, mute=0 Amp-Out vals: [0x34 0x34] Connection: 2 0x02 0x0b Node 0x0d [Audio Mixer] wcaps 0x20010f: Stereo Amp-In Amp-Out Control: name="Speaker Playback Volume", index=0, device=0 ControlAmp: chs=3, dir=Out, idx=0, ofs=0 Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-In vals: [0x00 0x00] [0x80 0x80] Amp-Out caps: ofs=0x40, nsteps=0x40, stepsize=0x03, mute=0 Amp-Out vals: [0x34 0x34] Connection: 2 0x03 0x0b Node 0x0e [Audio Mixer] wcaps 0x20010f: Stereo Amp-In Amp-Out Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-In vals: [0x00 0x00] [0x80 0x80] Amp-Out caps: ofs=0x40, nsteps=0x40, stepsize=0x03, mute=0 Amp-Out vals: [0x40 0x40] Connection: 2 0x04 0x0b Node 0x0f [Audio Mixer] wcaps 0x20010f: Stereo Amp-In Amp-Out Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-In vals: [0x00 0x00] [0x80 0x80] Amp-Out caps: ofs=0x40, nsteps=0x40, stepsize=0x03, mute=0 Amp-Out vals: [0x40 0x40] Connection: 2 0x05 0x0b Node 0x10 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x11 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x12 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x13 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x14 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out Control: name="Speaker Playback Switch", index=0, device=0 ControlAmp: chs=3, dir=Out, idx=0, ofs=0 Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x00 0x00] Pincap 0x0000373c: IN OUT HP Detect Vref caps: HIZ 50 GRD 80 100 Pin Default 0x90100140: [Fixed] Speaker at Int N/A Conn = Unknown, Color = Unknown DefAssociation = 0x4, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x40: OUT VREF_HIZ Unsolicited: tag=00, enabled=0 Connection: 5 0x0c 0x0d* 0x0e 0x0f 0x26 Node 0x15 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out Control: name="Headphone Playback Switch", index=0, device=0 ControlAmp: chs=3, dir=Out, idx=0, ofs=0 Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x00 0x00] Pincap 0x0000373c: IN OUT HP Detect Vref caps: HIZ 50 GRD 80 100 Pin Default 0x012b4050: [Jack] HP Out at Ext Rear Conn = Comb, Color = Green DefAssociation = 0x5, Sequence = 0x0 Pin-ctls: 0xc4: OUT HP VREF_80 Unsolicited: tag=01, enabled=1 Connection: 5 0x0c* 0x0d 0x0e 0x0f 0x26 Node 0x16 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Pincap 0x0000003c: IN OUT HP Detect Pin Default 0x400000f0: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Pin-ctls: 0x20: IN Unsolicited: tag=00, enabled=0 Connection: 5 0x0c 0x0d 0x0e* 0x0f 0x26 Node 0x17 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Pincap 0x0000003c: IN OUT HP Detect Pin Default 0x400000f0: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Pin-ctls: 0x20: IN Unsolicited: tag=00, enabled=0 Connection: 5 0x0c 0x0d 0x0e 0x0f* 0x26 Node 0x18 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out Control: name="Mic Boost Volume", index=0, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Pincap 0x0000373c: IN OUT HP Detect Vref caps: HIZ 50 GRD 80 100 Pin Default 0x90a00110: [Fixed] Mic at Int N/A Conn = Unknown, Color = Unknown DefAssociation = 0x1, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x24: IN VREF_80 Unsolicited: tag=00, enabled=0 Connection: 5 0x0c* 0x0d 0x0e 0x0f 0x26 Node 0x19 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Pincap 0x0000373c: IN OUT HP Detect Vref caps: HIZ 50 GRD 80 100 Pin Default 0x400000f0: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Pin-ctls: 0x20: IN VREF_HIZ Unsolicited: tag=00, enabled=0 Connection: 5 0x0c* 0x0d 0x0e 0x0f 0x26 Node 0x1a [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out Control: name="Line Boost Volume", index=0, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Pincap 0x0000373c: IN OUT HP Detect Vref caps: HIZ 50 GRD 80 100 Pin Default 0x018b3020: [Jack] Line In at Ext Rear Conn = Comb, Color = Blue DefAssociation = 0x2, Sequence = 0x0 Pin-ctls: 0x20: IN VREF_HIZ Unsolicited: tag=03, enabled=1 Connection: 5 0x0c* 0x0d 0x0e 0x0f 0x26 Node 0x1b [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Pincap 0x0000373c: IN OUT HP Detect Vref caps: HIZ 50 GRD 80 100 Pin Default 0x400000f0: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Pin-ctls: 0x20: IN VREF_HIZ Unsolicited: tag=00, enabled=0 Connection: 5 0x0c* 0x0d 0x0e 0x0f 0x26 Node 0x1c [Pin Complex] wcaps 0x400001: Stereo Pincap 0x00000020: IN Pin Default 0x400000f0: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Pin-ctls: 0x20: IN Node 0x1d [Pin Complex] wcaps 0x400000: Mono Pincap 0x00000020: IN Pin Default 0x400000f0: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Pin-ctls: 0x20: IN Node 0x1e [Pin Complex] wcaps 0x400300: Mono Digital Pincap 0x00000010: OUT Pin Default 0x014be060: [Jack] SPDIF Out at Ext Rear Conn = Comb, Color = White DefAssociation = 0x6, Sequence = 0x0 Pin-ctls: 0x40: OUT Connection: 1 0x06 Node 0x1f [Pin Complex] wcaps 0x400200: Mono Digital Pincap 0x00000020: IN Pin Default 0x01cbe030: [Jack] SPDIF In at Ext Rear Conn = Comb, Color = White DefAssociation = 0x3, Sequence = 0x0 Pin-ctls: 0x20: IN Node 0x20 [Vendor Defined Widget] wcaps 0xf00040: Mono Processing caps: benign=0, ncoeff=17 Node 0x21 [Volume Knob Widget] wcaps 0x600080: Mono Volume-Knob: delta=0, steps=32, direct=0, val=63 Unsolicited: tag=00, enabled=0 Connection: 0 Node 0x22 [Audio Mixer] wcaps 0x20010b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-In vals: [0x00 0x00] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] Connection: 11 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x14 0x15 0x16 0x17 0x0b Node 0x23 [Audio Mixer] wcaps 0x20010b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-In vals: [0x80 0x80] [0x80 0x80] [0x00 0x00] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] Connection: 11 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x14 0x15 0x16 0x17 0x0b Node 0x24 [Audio Mixer] wcaps 0x20010b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-In vals: [0x00 0x00] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] Connection: 11 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x14 0x15 0x16 0x17 0x0b Node 0x25 [Audio Output] wcaps 0x11: Stereo Converter: stream=0, channel=0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Node 0x26 [Audio Mixer] wcaps 0x20010f: Stereo Amp-In Amp-Out Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-In vals: [0x00 0x00] [0x80 0x80] Amp-Out caps: ofs=0x40, nsteps=0x40, stepsize=0x03, mute=0 Amp-Out vals: [0x40 0x40] Connection: 2 0x25 0x0b
On Apr 5, 2017, at 0:02, René Rebe rene@exactcode.de wrote:
Hi,
recently I wanted to connect my low noise mic pre-amp via optical spdif to a spare "10 year” old MacBook or MacBookPro. Those indeed have a optical input in the 3.5mm headphone jack. On macOS this also works and works as expected.
On Linux, however, no matter what I do I only get zeros when recording the -D iec958.
In /proc I see 3 capture sub-devices, where the 2nd is labeled:
# cat /proc/asound/card0/pcm1c/info ... id: ALC889A Digital name: ALC889A Digital ...
The behavior is the same on booth the MacBook as well as the MacBook Pro with either of those PCI devices:
00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 02) 00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 03)
I have the feeling there could be some auto sensing be involved, as in the macOS system preferences I see the input switching from Mic to Optical Input as soon as I plugin in an active fibre.
As I’m not familiar with this Intel HD stuff, any hint how to start analyzing and poking this mystery would be highly appreciated.
Best regards, René
-- ExactCODE GmbH, Lietzenburger Str. 42, DE-10789 Berlin http://exactcode.com | http://exactscan.com | http://ocrkit.com | http://t2-project.org | http://rene.rebe.de _______________________________________________ Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
-- ExactCODE GmbH, Lietzenburger Str. 42, DE-10789 Berlin http://exactcode.com | http://exactscan.com | http://ocrkit.com | http://t2-project.org | http://rene.rebe.de
Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
-- ExactCODE GmbH, Lietzenburger Str. 42, DE-10789 Berlin http://exactcode.com | http://exactscan.com | http://ocrkit.com | http://t2-project.org | http://rene.rebe.de
Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
Hi,
On Apr 21, 2017, at 20:01, Takashi Iwai tiwai@suse.de wrote:
On Fri, 21 Apr 2017 19:22:16 +0200, René Rebe wrote:
On Apr 21, 2017, at 18:37, René Rebe rene@exactcode.de wrote:
Hello again,
so I checked the MacBook schematics and it looks like the optical input should be directly connected to pin 47 (GPIO3/SPDIFIN)
Maybe EAPD get’s accidentally / wrongly enabled? - Maybe someone can point me how to double check this in ALSA?
I the meantime I finally figured out how this debug verb setting should work via:
# hda-verb /dev/snd/hwC0D0 0x14 0x70C 0 nid = 0x14, verb = 0x70c, param = 0x0 value = 0x0 # hda-verb /dev/snd/hwC0D0 0x15 0x70C 0 nid = 0x15, verb = 0x70c, param = 0x0 value = 0x0
which made no difference either, and the ALC889 spec reads “when pin widget SPDIF-IN is not connected via the programming configuration register.”
Could that be a missing bit?
Any pointer or verbs I should poke welcome :-/
Well, from the codec POV, the SPDIF in is straightly connected from the pin to the audio in widget, so there should be no special thing there. The possibly missing setup is the vendor-specific things, and Apple has been implementing the stuff always in a wild manner, e.g. doing via VREF, GPIO or whatever.
Did you check anything in this proc file codec setup I posted?
As far as I can see on schematics for the MacBook (e.g.. google returned a APPLE_M42C_FA522_Macbook.pdf) the optical module RX output seems to be “directly" attached to the codec’s spdif-in pin.
Yet on both, the MacBook as well on the MacBook Pro I found no way to get any digital input captured. The same setup works when booted in macOS, as well as when I plug in my digital audio source into my aging maudio delta 1010, with Linux, which, however, I do not want to continuously use for this setup, …
It’s a pity, I don’t think there are so many other laptops with optical input :-/
René
Hi, On Apr 21, 2017, at 22:29, René Rebe rene@exactcode.de wrote:
Hi,
On Apr 21, 2017, at 20:01, Takashi Iwai tiwai@suse.de wrote:
On Fri, 21 Apr 2017 19:22:16 +0200, René Rebe wrote:
On Apr 21, 2017, at 18:37, René Rebe rene@exactcode.de wrote:
Hello again,
so I checked the MacBook schematics and it looks like the optical input should be directly connected to pin 47 (GPIO3/SPDIFIN)
Maybe EAPD get’s accidentally / wrongly enabled? - Maybe someone can point me how to double check this in ALSA?
I the meantime I finally figured out how this debug verb setting should work via:
# hda-verb /dev/snd/hwC0D0 0x14 0x70C 0 nid = 0x14, verb = 0x70c, param = 0x0 value = 0x0 # hda-verb /dev/snd/hwC0D0 0x15 0x70C 0 nid = 0x15, verb = 0x70c, param = 0x0 value = 0x0
which made no difference either, and the ALC889 spec reads “when pin widget SPDIF-IN is not connected via the programming configuration register.”
Could that be a missing bit?
Any pointer or verbs I should poke welcome :-/
Well, from the codec POV, the SPDIF in is straightly connected from the pin to the audio in widget, so there should be no special thing there. The possibly missing setup is the vendor-specific things, and Apple has been implementing the stuff always in a wild manner, e.g. doing via VREF, GPIO or whatever.
Did you check anything in this proc file codec setup I posted?
As far as I can see on schematics for the MacBook (e.g.. google returned a APPLE_M42C_FA522_Macbook.pdf) the optical module RX output seems to be “directly" attached to the codec’s spdif-in pin.
Yet on both, the MacBook as well on the MacBook Pro I found no way to get any digital input captured. The same setup works when booted in macOS, as well as when I plug in my digital audio source into my aging maudio delta 1010, with Linux, which, however, I do not want to continuously use for this setup, …
It’s a pity, I don’t think there are so many other laptops with optical input :-/
For the MacBook Pro I googled the i/o board schematics (820-2273 LIO.pdf) - unfortunately some lines are crippled / strange rectangles. However, it most likely spdif-in is directly connected like in the MacBook. The schematic calls the codec a ALC885 instead of the ALC889A as indicated by ALSA, … And the schematic labels the codec spdif innput pin SPDIFI/EAPD/MIDI-I/DMIC-R. However, the public ALC885 spec has a footnote “MIDI function is not supported as pins 46 and 48 are assigned as S/PDIF IO” and for the DMIC: “pin 47 can be configured to support a secondary digital mic input (DMIC-R). It is supported via a customized Realtek driver”
It is not getting better, …
:-/
Hello again,
as it is Sunday I thought it is a good time to further play with this annoying optical in issue. I plugged the fibre into a MacPro2,1 that we otherwise use as file server and such. Unfortunately ALSA indicates the same Realtek codec is used on it:
Chip: Realtek ALC889A
And, no surprise, capturing something on it:
arecord -D iec958 -f dat > rec.wav
yields nothing useful. Interestingly it yields not zeros, but another static pattern:
# hexdump -C rec.wav 00000000 52 49 46 46 24 00 00 80 57 41 56 45 66 6d 74 20 |RIFF$...WAVEfmt | 00000010 10 00 00 00 01 00 02 00 80 bb 00 00 00 ee 02 00 |................| 00000020 04 00 10 00 64 61 74 61 00 00 00 80 1b 08 1b 91 |....data........| 00000030 1b 08 1b 91 1b 08 1b 91 1b 08 1b 91 1b 08 1b 91 |................| * 00088020 1b 08 1b 91 1b 08 1b 91 1b 08 1b 91 |............| 0008802c
As I said before, according to the slightly mangled MacBook schematics the spdif pin at least on those looks directly connected with the optical receiver module.
Any tip of to debug this in the Linux driver would be welcome!
Also, I powered up the G5, to my surprise the ALSA sound-by-layout module does not even have spdif capture controls for that at all, (yes, the G5 also has optical in and out) … :-/
So in total about everything I could find around me has non working optical input with the ALSA drivers, …
René
On Apr 22, 2017, at 0:04, René Rebe rene@exactcode.de wrote:
Hi, On Apr 21, 2017, at 22:29, René Rebe rene@exactcode.de wrote:
Hi,
On Apr 21, 2017, at 20:01, Takashi Iwai tiwai@suse.de wrote:
On Fri, 21 Apr 2017 19:22:16 +0200, René Rebe wrote:
On Apr 21, 2017, at 18:37, René Rebe rene@exactcode.de wrote:
Hello again,
so I checked the MacBook schematics and it looks like the optical input should be directly connected to pin 47 (GPIO3/SPDIFIN)
Maybe EAPD get’s accidentally / wrongly enabled? - Maybe someone can point me how to double check this in ALSA?
I the meantime I finally figured out how this debug verb setting should work via:
# hda-verb /dev/snd/hwC0D0 0x14 0x70C 0 nid = 0x14, verb = 0x70c, param = 0x0 value = 0x0 # hda-verb /dev/snd/hwC0D0 0x15 0x70C 0 nid = 0x15, verb = 0x70c, param = 0x0 value = 0x0
which made no difference either, and the ALC889 spec reads “when pin widget SPDIF-IN is not connected via the programming configuration register.”
Could that be a missing bit?
Any pointer or verbs I should poke welcome :-/
Well, from the codec POV, the SPDIF in is straightly connected from the pin to the audio in widget, so there should be no special thing there. The possibly missing setup is the vendor-specific things, and Apple has been implementing the stuff always in a wild manner, e.g. doing via VREF, GPIO or whatever.
Did you check anything in this proc file codec setup I posted?
As far as I can see on schematics for the MacBook (e.g.. google returned a APPLE_M42C_FA522_Macbook.pdf) the optical module RX output seems to be “directly" attached to the codec’s spdif-in pin.
Yet on both, the MacBook as well on the MacBook Pro I found no way to get any digital input captured. The same setup works when booted in macOS, as well as when I plug in my digital audio source into my aging maudio delta 1010, with Linux, which, however, I do not want to continuously use for this setup, …
It’s a pity, I don’t think there are so many other laptops with optical input :-/
For the MacBook Pro I googled the i/o board schematics (820-2273 LIO.pdf) - unfortunately some lines are crippled / strange rectangles. However, it most likely spdif-in is directly connected like in the MacBook. The schematic calls the codec a ALC885 instead of the ALC889A as indicated by ALSA, … And the schematic labels the codec spdif innput pin SPDIFI/EAPD/MIDI-I/DMIC-R. However, the public ALC885 spec has a footnote “MIDI function is not supported as pins 46 and 48 are assigned as S/PDIF IO” and for the DMIC: “pin 47 can be configured to support a secondary digital mic input (DMIC-R). It is supported via a customized Realtek driver”
It is not getting better, …
:-/
-- ExactCODE GmbH, Lietzenburger Str. 42, DE-10789 Berlin http://exactcode.com | http://exactscan.com | http://ocrkit.com | http://t2-project.org | http://rene.rebe.de
Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
Hi there,
I noticed digital input would not show up at all on my PowerMac G5 11,2, I see this in dmesg:
[ 15.719952] snd-aoa-fabric-layout: Using PMF GPIOs [ 15.720519] snd-aoa-fabric-layout: can use this codec [ 15.760567] snd-aoa-codec-onyx: attached to onyx codec via i2c [ 15.760745] snd-aoa-fabric-layout: platform-onyx-codec-ref doesn't match! [ 15.760748] snd-aoa: fabric didn't like codec onyx
and poking around a bit more I found a “topaz” codec apparently some Crystal Semiconductor CS84xx “Topaz” (S/PDIF digital input) showing up nowhere in the ALSA sources.
Am I overlooking something, or was this lost in merging? Any hint would be appreciated.
René
Hi,
I noticed digital input would not show up at all on my PowerMac G5 11,2, I see this in dmesg:
[ 15.719952] snd-aoa-fabric-layout: Using PMF GPIOs [ 15.720519] snd-aoa-fabric-layout: can use this codec [ 15.760567] snd-aoa-codec-onyx: attached to onyx codec via i2c [ 15.760745] snd-aoa-fabric-layout: platform-onyx-codec-ref doesn't match! [ 15.760748] snd-aoa: fabric didn't like codec onyx
and poking around a bit more I found a “topaz” codec apparently some Crystal Semiconductor CS84xx “Topaz” (S/PDIF digital input) showing up nowhere in the ALSA sources.
Am I overlooking something, or was this lost in merging? Any hint would be appreciated.
Neither, it was simply never implemented.
I believe that in the past ~11 years since this got merged I *still* haven't gotten any other hardware that had optical output, so I don't think I could possibly test it :)
Also, it's not as simple as output because there has to be clock recovery etc. and I never could understand how alsa would handle that.
Anyway, that's all I remember. I still have the G5 powermac, but it's never powered on any more (I used to still use it for big endian testing, but our latest HW generation makes the PCI-E bus in the system unhappy enough that it won't even boot).
johannes
Hi,
On May 22, 2017, at 8:15, Johannes Berg johannes@sipsolutions.net wrote:
Hi,
I noticed digital input would not show up at all on my PowerMac G5 11,2, I see this in dmesg:
[ 15.719952] snd-aoa-fabric-layout: Using PMF GPIOs [ 15.720519] snd-aoa-fabric-layout: can use this codec [ 15.760567] snd-aoa-codec-onyx: attached to onyx codec via i2c [ 15.760745] snd-aoa-fabric-layout: platform-onyx-codec-ref doesn't match! [ 15.760748] snd-aoa: fabric didn't like codec onyx
and poking around a bit more I found a “topaz” codec apparently some Crystal Semiconductor CS84xx “Topaz” (S/PDIF digital input) showing up nowhere in the ALSA sources.
Am I overlooking something, or was this lost in merging? Any hint would be appreciated.
Neither, it was simply never implemented.
I believe that in the past ~11 years since this got merged I *still* haven't gotten any other hardware that had optical output, so I don't think I could possibly test it :)
Also, it's not as simple as output because there has to be clock recovery etc. and I never could understand how alsa would handle that.
Anyway, that's all I remember. I still have the G5 powermac, but it's never powered on any more (I used to still use it for big endian testing, but our latest HW generation makes the PCI-E bus in the system unhappy enough that it won't even boot).
Ouhm, a pity. Guess that it took ~11 years for someone to notice is an indicator of the percentage of users using the digital in ;-)
You could plug a cable from the output to the input for testing, no?
As I’m not familiar with the ALSA driver I guess I would rather spend a whole month or so trying to copy and paste something together, …
René
On Mon, 2017-05-22 at 10:12 +0200, René Rebe wrote:
Ouhm, a pity. Guess that it took ~11 years for someone to notice is an indicator of the percentage of users using the digital in ;-)
I think two or three people may have noticed before ;-)
You could plug a cable from the output to the input for testing, no?
I don't think it can - the whole clock stuff would probably not work right. If you're using the input then the whole thing must be synchronized to the input clock, and then the output also uses that clocking IIRC, so if you hook them together you don't really test the whole thing.
As I’m not familiar with the ALSA driver I guess I would rather spend a whole month or so trying to copy and paste something together, …
me too :) I don't even remember the specs of these chips etc.
johannes
participants (3)
-
Johannes Berg
-
René Rebe
-
Takashi Iwai