All of lore.kernel.org
 help / color / mirror / Atom feed
* CS8409 Macbook Pro 2016 2017
@ 2018-08-04  2:07 David Ulricht
  2018-08-04  2:18 ` David Ulricht
  2018-08-04  6:48 ` Takashi Iwai
  0 siblings, 2 replies; 17+ messages in thread
From: David Ulricht @ 2018-08-04  2:07 UTC (permalink / raw)
  To: alsa-devel

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

Hello,

Macbook pro models containing CS8409 for sure are:
MBP131 MBP141.I own MBP 14,1 e.g. 2017 model.

I'm attaching working sound configuration from Windows 10 registry (note
that the cs420x might need to be ignored or might be important i don't
really know). I believe what is really used is in the PinConfigOverride
section.

Interesting thing to note is that sound in MacOS is much louder than
Bootcamp Windows, would be nice to hear how loud is on linux.

I did convert PinConfigOverride HEX strings to [pincfg] format in the
attached hda-jack-retask.fw thanks to Takashi's guidance.

I'm attaching also alsamixer ASCII. Only PCM, no Master ?

What I have tried is execute:
hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK 0x@@
hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIRECTION 0x@@
hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x@@
putting @@ from 0x00 to 0x50

Please advise.

[-- Attachment #2: alsamixer.txt --]
[-- Type: text/plain, Size: 2520 bytes --]

┌────────────────────────────── AlsaMixer v1.1.3 ──────────────────────────────┐
│ Card: HDA Intel PCH                                  F1:  Help               │
│ Chip: Cirrus Logic Generic                           F2:  System information │
│ View: F3:[Playback] F4: Capture  F5: All             F6:  Select sound card  │
│ Item: PCM [dB gain: 0,00, 0,00]                      Esc: Exit               │
│                                                                              │
│              ┌──┐                                                            │
│              │▒▒│                                                            │
│              │▒▒│                                                            │
│              │▒▒│                                                            │
│              │▒▒│                                                            │
│              │▒▒│                                                            │
│              │▒▒│                                                            │
│              │▒▒│                                                            │
│              │▒▒│                                                            │
│              │▒▒│                                                            │
│              │▒▒│                                                            │
│              │▒▒│                                                            │
│              └──┘     ┌──┐     ┌──┐     ┌──┐     ┌──┐     ┌──┐               │
│                       │MM│     │OO│     │OO│     │OO│     │OO│               │
│                       └──┘     └──┘     └──┘     └──┘     └──┘               │
│            100<>100                                                          │
│           <  PCM   > S/PDIF  S/PDIF 1 S/PDIF 2 S/PDIF 3 S/PDIF 4             │
└──────────────────────────────────────────────────────────────────────────────┘

[-- Attachment #3: hda-jack-retask.fw.txt --]
[-- Type: text/plain, Size: 586 bytes --]

[codec]
0x10138409 0x106b3300 0

[pincfg]
0x24 0x90100080
0x25 0x90100082
0x26 0x400000f0
0x27 0x400000f0
0x28 0x400000f0
0x29 0x400000f0
0x2a 0x400000f0
0x2b 0x400000f0
0x2c 0x042b20f0
0x2d 0x400000f0
0x2e 0x400000f0
0x2f 0x400000f0
0x30 0x400000f0
0x31 0x400000f0
0x32 0x400000f0
0x33 0x400000f0
0x34 0x400000f0
0x35 0x400000f0
0x36 0x400000f0
0x37 0x400000f0
0x38 0x400000f0
0x39 0x400000f0
0x3a 0x400000f0
0x3b 0x400000f0
0x3c 0x04ab2050
0x3d 0x400000f0
0x3e 0x400000f0
0x3f 0x400000f0
0x40 0x400000f0
0x41 0x400000f0
0x42 0x400000f0
0x43 0x400000f0
0x44 0x90a00070
0x45 0x400000f0

[-- Attachment #4: Windows10Registry.txt --]
[-- Type: text/plain, Size: 110036 bytes --]

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007]
"DisableSetupDiChangeState"=hex:00,00,00,00
"InfPath"="oem38.inf"
"IncludedInfs"=hex(7):68,00,64,00,61,00,75,00,64,00,69,00,6f,00,2e,00,69,00,6e,\
  00,66,00,00,00,00,00
"InfSection"="HDAudio.Cirrus_CONF_0900"
"ProviderName"="Cirrus Logic, Inc."
"DriverDateData"=hex:00,00,cd,74,67,82,d2,01
"DriverDate"="2-9-2017"
"DriverVersion"="6.6001.3.38"
"MatchingDeviceId"="hdaudio\\func_01&ven_1013&dev_8409&subsys_106b3300"
"DriverDesc"="Cirrus Logic CS8409 (AB 51)"
"KS"="1"
"CoInstallers32"=hex(7):57,00,64,00,66,00,43,00,6f,00,49,00,6e,00,73,00,74,00,\
  61,00,6c,00,6c,00,65,00,72,00,30,00,31,00,30,00,31,00,31,00,2e,00,64,00,6c,\
  00,6c,00,2c,00,57,00,64,00,66,00,43,00,6f,00,49,00,6e,00,73,00,74,00,61,00,\
  6c,00,6c,00,65,00,72,00,00,00,00,00
"Driver"="HdAudio.sys"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\cs420x]
"n24PinConfig"=dword:90100080
"n25PinConfig"=dword:90100082
"n2CPinConfig"=dword:042b20f0
"n3CPinConfig"=dword:04ab2050
"n44PinConfig"=dword:90a00070
"InitVerbs"=hex:00,05,17,00,01,03,77,04,00,00,75,04,08,b0,74,04,01,00,75,04,06,\
  00,74,04,02,00,75,04,80,0a,74,04,19,00,75,04,00,08,74,04,1a,00,75,04,20,08,\
  74,04,1b,00,75,04,40,08,74,04,1c,00,75,04,60,08,74,04,29,00,75,04,00,08,74,\
  04,2a,00,75,04,20,08,74,04,49,00,75,04,00,08,74,04,4a,00,75,04,00,08,74,04,\
  03,00,75,04,00,80,74,04,04,00,75,04,ff,28,74,04,05,00,75,04,5a,00,74,04,06,\
  00,75,04,00,80,74,04,07,00,75,04,ff,28,74,04,08,00,75,04,62,00,74,04,09,00,\
  75,04,23,00,74,04,01,00,75,04,66,00,74,04,00,00,75,04,08,90,74,04,82,00,75,\
  04,01,fc,74,04,c0,00,75,04,99,99,74,04,c5,00,75,04,00,00,74,04,c0,00,75,04,\
  00,00,74,04
"Gpio1ExtAmpCfg"=hex:01,00,00,01
"n01SuppBitsRates"=dword:000a0040
"n02WidgetCaps"=dword:00060401
"n03WidgetCaps"=dword:00060401
"n2CWidgetCaps"=dword:00400181
"n2CPinCaps"=dword:0000001c
"n2CJackDetectL83"=dword:00086490
"n2CURHysteresis"=hex:01
"n1AWidgetCaps"=dword:0016010b
"n1AInAmpCaps"=dword:80033f33
"n1AMapAdcVolL83"=dword:00023c90
"n3CWidgetCaps"=dword:0040008b
"n3CPinCaps"=dword:00000024
"n3CInAmpCaps"=dword:004f0101
"n3CHSTypeDetectL83"=dword:1214c790
"n3CURHysteresis"=hex:01
"n44InAmpCaps"=dword:00270202
"n45InAmpCaps"=dword:00270202
"I2CSpeedMode"=dword:00000001
"I2CPolledMode"=dword:00000001
"I2CQuickMode"=dword:00000001
"I2CBusClear"=dword:00000006
"I2CSlave90Config"=dword:01002090
"InitI2C"=hex:01,90,3a,00,10,10,b0,00,1d,01,00,02,06,00,11,07,01,00,10,09,02,\
  07,03,00,12,01,00,08,13,05,ff,06,00,07,20,02,0d,00,2a,02,02,03,00,04,00,05,\
  02,06,00,07,20,08,02,09,00,0a,80,0b,02,0c,00,0d,a0,01,0c,00,29,02,01,03,02,\
  04,00,05,00,01,01,00,11,01,0a,02,84,00,23,01,00,03,00,02,3f,00,20,01,03,00,\
  1b,75,b6,73,c2,00,11,29,01,21,f3,03,20,05,00,12,00,13,80,00,1c,03,c0
"n0AStreamStartI2C"=hex:01,90,02,00,11,01,02
"n0AStreamStopI2C"=hex:01,90,02,00,11,01,0a
"I2CSlave28Config"=dword:00004028
"I2CSlave2AConfig"=dword:0000402a
"I2CSlave2CConfig"=dword:0000402c
"I2CSlave2EConfig"=dword:0000402e
"n02PwrUpI2C"=hex:04,28,2a,2c,2e,07,00,81,01,11,02,32,03,48,04,11,05,10,00,80
"n03PwrUpI2C"=hex:01,28,01,05,00,01,2a,01,05,02,01,2c,01,05,01,01,2e,01,05,03
"ExitI2C"=hex:04,28,2a,2c,2e,01,00,83
"EQ1S1R7"=hex:1e,b2,9a,1a,df,15,c6,f4,11,19,91,ae,c6,f4,11,16,3b,23,16,3b,23,\
  d3,89,b9,1f,88,d9,c0,78,b8
"EQ1S2R7"=hex:16,3d,23,16,3d,23,d3,85,bb,1f,8e,8e,c0,73,03,14,62,da,12,94,45,\
  d9,23,c2,1d,b9,a4,c2,61,3d
"ExitVerbs"=hex:00,05,17,00,01,00,75,04,00,00,74,04,82,00,75,04,00,00,74,04,03,\
  00,75,04,00,80,74,04,04,00,75,04,01,28,74,04,06,00,75,04,00,80,74,04,07,00,\
  75,04,01,28,74,04,65,00,75,04,00,00,74,04,00,03,77,04,03,05,17,00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eAuxIn]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eAuxIn\DeviceParameters]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eAuxIn\DeviceParameters\MSEP]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eAuxIn\DeviceParameters\MSEP\0]
"{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},2"="{00000000-0000-0000-0000-000000000000}"
"{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},7"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eAuxIn\FriendlyNames]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eAuxIn\FriendlyNames\Mixer]
"1"="HD Audio Aux in mixer"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eAuxIn\FriendlyNames\Wave]
"1"="HD Audio Aux in"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eCDIn]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eCDIn\DeviceParameters]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eCDIn\DeviceParameters\MSEP]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eCDIn\DeviceParameters\MSEP\0]
"{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},2"="{00000000-0000-0000-0000-000000000000}"
"{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},7"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eCDIn\FriendlyNames]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eCDIn\FriendlyNames\Mixer]
"1"="HD Audio CD in capture mixer"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eCDIn\FriendlyNames\Wave]
"1"="HD Audio CD in capture"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eDuplicatedHpLineOut]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eDuplicatedHpLineOut\DeviceParameters]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eDuplicatedHpLineOut\DeviceParameters\MSEP]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eDuplicatedHpLineOut\DeviceParameters\MSEP\0]
"{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},2"="{00000000-0000-0000-0000-000000000000}"
"{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},7"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eDuplicatedHpLineOut\DeviceParameters\MSFX]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eDuplicatedHpLineOut\DeviceParameters\MSFX\0]
"{B725F130-47EF-101A-A5F1-02608C9EEBAC},10"="Microsoft Audio Home Theater Effects"
"{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},5"="{62dc1a93-ae24-464c-a43e-452f824c4250}"
"{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},6"="{637c490d-eee3-4c0a-973f-371958802da2}"
"{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},3"="{5860E1C5-F95C-4a7a-8EC8-8AEF24F379A1}"
"{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},0"="{00000000-0000-0000-0000-000000000000}"
"{D3993A3F-99C2-4402-B5EC-A92A0367664B},5"=hex(7):7b,00,43,00,31,00,38,00,45,\
  00,32,00,46,00,37,00,45,00,2d,00,39,00,33,00,33,00,44,00,2d,00,34,00,39,00,\
  36,00,35,00,2d,00,42,00,37,00,44,00,31,00,2d,00,31,00,45,00,45,00,46,00,32,\
  00,32,00,38,00,44,00,32,00,41,00,46,00,33,00,7d,00,00,00,00,00
"{D3993A3F-99C2-4402-B5EC-A92A0367664B},6"=hex(7):7b,00,43,00,31,00,38,00,45,\
  00,32,00,46,00,37,00,45,00,2d,00,39,00,33,00,33,00,44,00,2d,00,34,00,39,00,\
  36,00,35,00,2d,00,42,00,37,00,44,00,31,00,2d,00,31,00,45,00,45,00,46,00,32,\
  00,32,00,38,00,44,00,32,00,41,00,46,00,33,00,7d,00,00,00,00,00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eDuplicatedHpLineOut\FriendlyNames]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eDuplicatedHpLineOut\FriendlyNames\Mixer]
"1"="HD Audio Headphone/Speakers mixer"
"2"="HD Audio Headphone/Speakers mixer 2"
"3"="HD Audio Headphone/Speakers mixer 3"
"4"="HD Audio Headphone/Speakers mixer 4"
"5"="HD Audio Headphone/Speakers mixer 5"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eDuplicatedHpLineOut\FriendlyNames\Wave]
"1"="HD Audio Headphone/Speakers"
"2"="HD Audio Headphone/Speakers 2"
"3"="HD Audio Headphone/Speakers 3"
"4"="HD Audio Headphone/Speakers 4"
"5"="HD Audio Headphone/Speakers 5"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eDuplicatedHpSpeaker]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eDuplicatedHpSpeaker\DeviceParameters]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eDuplicatedHpSpeaker\DeviceParameters\MSEP]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eDuplicatedHpSpeaker\DeviceParameters\MSEP\0]
"{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},2"="{00000000-0000-0000-0000-000000000000}"
"{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},7"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eDuplicatedHpSpeaker\DeviceParameters\MSFX]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eDuplicatedHpSpeaker\DeviceParameters\MSFX\0]
"{B725F130-47EF-101A-A5F1-02608C9EEBAC},10"="Microsoft Audio Home Theater Effects"
"{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},5"="{62dc1a93-ae24-464c-a43e-452f824c4250}"
"{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},6"="{637c490d-eee3-4c0a-973f-371958802da2}"
"{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},3"="{5860E1C5-F95C-4a7a-8EC8-8AEF24F379A1}"
"{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},0"="{00000000-0000-0000-0000-000000000000}"
"{D3993A3F-99C2-4402-B5EC-A92A0367664B},5"=hex(7):7b,00,43,00,31,00,38,00,45,\
  00,32,00,46,00,37,00,45,00,2d,00,39,00,33,00,33,00,44,00,2d,00,34,00,39,00,\
  36,00,35,00,2d,00,42,00,37,00,44,00,31,00,2d,00,31,00,45,00,45,00,46,00,32,\
  00,32,00,38,00,44,00,32,00,41,00,46,00,33,00,7d,00,00,00,00,00
"{D3993A3F-99C2-4402-B5EC-A92A0367664B},6"=hex(7):7b,00,43,00,31,00,38,00,45,\
  00,32,00,46,00,37,00,45,00,2d,00,39,00,33,00,33,00,44,00,2d,00,34,00,39,00,\
  36,00,35,00,2d,00,42,00,37,00,44,00,31,00,2d,00,31,00,45,00,45,00,46,00,32,\
  00,32,00,38,00,44,00,32,00,41,00,46,00,33,00,7d,00,00,00,00,00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eDuplicatedHpSpeaker\FriendlyNames]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eDuplicatedHpSpeaker\FriendlyNames\Mixer]
"1"="HD Audio Headphone/Speakers mixer"
"2"="HD Audio Headphone/Speakers mixer 2"
"3"="HD Audio Headphone/Speakers mixer 3"
"4"="HD Audio Headphone/Speakers mixer 4"
"5"="HD Audio Headphone/Speakers mixer 5"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eDuplicatedHpSpeaker\FriendlyNames\Wave]
"1"="HD Audio Headphone/Speakers"
"2"="HD Audio Headphone/Speakers 2"
"3"="HD Audio Headphone/Speakers 3"
"4"="HD Audio Headphone/Speakers 4"
"5"="HD Audio Headphone/Speakers 5"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eDuplicatedLineOutSpeaker]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eDuplicatedLineOutSpeaker\DeviceParameters]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eDuplicatedLineOutSpeaker\DeviceParameters\MSEP]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eDuplicatedLineOutSpeaker\DeviceParameters\MSEP\0]
"{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},2"="{00000000-0000-0000-0000-000000000000}"
"{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},7"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eDuplicatedLineOutSpeaker\DeviceParameters\MSFX]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eDuplicatedLineOutSpeaker\DeviceParameters\MSFX\0]
"{B725F130-47EF-101A-A5F1-02608C9EEBAC},10"="Microsoft Audio Home Theater Effects"
"{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},5"="{62dc1a93-ae24-464c-a43e-452f824c4250}"
"{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},6"="{637c490d-eee3-4c0a-973f-371958802da2}"
"{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},3"="{5860E1C5-F95C-4a7a-8EC8-8AEF24F379A1}"
"{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},0"="{00000000-0000-0000-0000-000000000000}"
"{D3993A3F-99C2-4402-B5EC-A92A0367664B},5"=hex(7):7b,00,43,00,31,00,38,00,45,\
  00,32,00,46,00,37,00,45,00,2d,00,39,00,33,00,33,00,44,00,2d,00,34,00,39,00,\
  36,00,35,00,2d,00,42,00,37,00,44,00,31,00,2d,00,31,00,45,00,45,00,46,00,32,\
  00,32,00,38,00,44,00,32,00,41,00,46,00,33,00,7d,00,00,00,00,00
"{D3993A3F-99C2-4402-B5EC-A92A0367664B},6"=hex(7):7b,00,43,00,31,00,38,00,45,\
  00,32,00,46,00,37,00,45,00,2d,00,39,00,33,00,33,00,44,00,2d,00,34,00,39,00,\
  36,00,35,00,2d,00,42,00,37,00,44,00,31,00,2d,00,31,00,45,00,45,00,46,00,32,\
  00,32,00,38,00,44,00,32,00,41,00,46,00,33,00,7d,00,00,00,00,00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eDuplicatedLineOutSpeaker\FriendlyNames]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eDuplicatedLineOutSpeaker\FriendlyNames\Mixer]
"1"="HD Audio Int Spkr/Ext LineOut Mixer"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eDuplicatedLineOutSpeaker\FriendlyNames\Wave]
"1"="HD Audio Int Spkr/Ext LineOut"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eDuplicatedSpeakerSpeaker]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eDuplicatedSpeakerSpeaker\DeviceParameters]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eDuplicatedSpeakerSpeaker\DeviceParameters\MSEP]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eDuplicatedSpeakerSpeaker\DeviceParameters\MSEP\0]
"{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},2"="{00000000-0000-0000-0000-000000000000}"
"{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},7"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eDuplicatedSpeakerSpeaker\DeviceParameters\MSFX]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eDuplicatedSpeakerSpeaker\DeviceParameters\MSFX\0]
"{B725F130-47EF-101A-A5F1-02608C9EEBAC},10"="Microsoft Audio Home Theater Effects"
"{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},5"="{62dc1a93-ae24-464c-a43e-452f824c4250}"
"{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},6"="{637c490d-eee3-4c0a-973f-371958802da2}"
"{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},3"="{5860E1C5-F95C-4a7a-8EC8-8AEF24F379A1}"
"{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},0"="{00000000-0000-0000-0000-000000000000}"
"{D3993A3F-99C2-4402-B5EC-A92A0367664B},5"=hex(7):7b,00,43,00,31,00,38,00,45,\
  00,32,00,46,00,37,00,45,00,2d,00,39,00,33,00,33,00,44,00,2d,00,34,00,39,00,\
  36,00,35,00,2d,00,42,00,37,00,44,00,31,00,2d,00,31,00,45,00,45,00,46,00,32,\
  00,32,00,38,00,44,00,32,00,41,00,46,00,33,00,7d,00,00,00,00,00
"{D3993A3F-99C2-4402-B5EC-A92A0367664B},6"=hex(7):7b,00,43,00,31,00,38,00,45,\
  00,32,00,46,00,37,00,45,00,2d,00,39,00,33,00,33,00,44,00,2d,00,34,00,39,00,\
  36,00,35,00,2d,00,42,00,37,00,44,00,31,00,2d,00,31,00,45,00,45,00,46,00,32,\
  00,32,00,38,00,44,00,32,00,41,00,46,00,33,00,7d,00,00,00,00,00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eDuplicatedSpeakerSpeaker\FriendlyNames]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eDuplicatedSpeakerSpeaker\FriendlyNames\Mixer]
"1"="HD Audio Internal/External Spkr Mixer"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eDuplicatedSpeakerSpeaker\FriendlyNames\Wave]
"1"="HD Audio Internal/External Spkr"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eHDMIOut]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eHDMIOut\DeviceParameters]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eHDMIOut\DeviceParameters\MSEP]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eHDMIOut\DeviceParameters\MSEP\0]
"{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},2"="{00000000-0000-0000-0000-000000000000}"
"{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},7"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eHDMIOut\DeviceParameters\MSFX]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eHDMIOut\DeviceParameters\MSFX\0]
"{B725F130-47EF-101A-A5F1-02608C9EEBAC},10"="Microsoft Audio Home Theater Effects"
"{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},5"="{62dc1a93-ae24-464c-a43e-452f824c4250}"
"{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},6"="{637c490d-eee3-4c0a-973f-371958802da2}"
"{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},3"="{5860E1C5-F95C-4a7a-8EC8-8AEF24F379A1}"
"{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},0"="{00000000-0000-0000-0000-000000000000}"
"{D3993A3F-99C2-4402-B5EC-A92A0367664B},5"=hex(7):7b,00,43,00,31,00,38,00,45,\
  00,32,00,46,00,37,00,45,00,2d,00,39,00,33,00,33,00,44,00,2d,00,34,00,39,00,\
  36,00,35,00,2d,00,42,00,37,00,44,00,31,00,2d,00,31,00,45,00,45,00,46,00,32,\
  00,32,00,38,00,44,00,32,00,41,00,46,00,33,00,7d,00,00,00,00,00
"{D3993A3F-99C2-4402-B5EC-A92A0367664B},6"=hex(7):7b,00,43,00,31,00,38,00,45,\
  00,32,00,46,00,37,00,45,00,2d,00,39,00,33,00,33,00,44,00,2d,00,34,00,39,00,\
  36,00,35,00,2d,00,42,00,37,00,44,00,31,00,2d,00,31,00,45,00,45,00,46,00,32,\
  00,32,00,38,00,44,00,32,00,41,00,46,00,33,00,7d,00,00,00,00,00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eHDMIOut\FriendlyNames]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eHDMIOut\FriendlyNames\Mixer]
"1"="HD Audio HDMI out mixer"
"2"="HD Audio HDMI out mixer 2"
"3"="HD Audio HDMI out mixer 3"
"4"="HD Audio HDMI out mixer 4"
"5"="HD Audio HDMI out mixer 5"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eHDMIOut\FriendlyNames\Wave]
"1"="HD Audio HDMI out"
"2"="HD Audio HDMI out 2"
"3"="HD Audio HDMI out 3"
"4"="HD Audio HDMI out 4"
"5"="HD Audio HDMI out 5"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eHeadphone]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eHeadphone\DeviceParameters]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eHeadphone\DeviceParameters\MSEP]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eHeadphone\DeviceParameters\MSEP\0]
"{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},2"="{00000000-0000-0000-0000-000000000000}"
"{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},7"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eHeadphone\DeviceParameters\MSFX]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eHeadphone\DeviceParameters\MSFX\0]
"{B725F130-47EF-101A-A5F1-02608C9EEBAC},10"="Microsoft Audio Home Theater Effects"
"{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},5"="{62dc1a93-ae24-464c-a43e-452f824c4250}"
"{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},6"="{637c490d-eee3-4c0a-973f-371958802da2}"
"{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},3"="{5860E1C5-F95C-4a7a-8EC8-8AEF24F379A1}"
"{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},0"="{00000000-0000-0000-0000-000000000000}"
"{D3993A3F-99C2-4402-B5EC-A92A0367664B},5"=hex(7):7b,00,43,00,31,00,38,00,45,\
  00,32,00,46,00,37,00,45,00,2d,00,39,00,33,00,33,00,44,00,2d,00,34,00,39,00,\
  36,00,35,00,2d,00,42,00,37,00,44,00,31,00,2d,00,31,00,45,00,45,00,46,00,32,\
  00,32,00,38,00,44,00,32,00,41,00,46,00,33,00,7d,00,00,00,00,00
"{D3993A3F-99C2-4402-B5EC-A92A0367664B},6"=hex(7):7b,00,43,00,31,00,38,00,45,\
  00,32,00,46,00,37,00,45,00,2d,00,39,00,33,00,33,00,44,00,2d,00,34,00,39,00,\
  36,00,35,00,2d,00,42,00,37,00,44,00,31,00,2d,00,31,00,45,00,45,00,46,00,32,\
  00,32,00,38,00,44,00,32,00,41,00,46,00,33,00,7d,00,00,00,00,00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eHeadphone\FriendlyNames]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eHeadphone\FriendlyNames\Mixer]
"1"="HD Audio Headphone mixer"
"2"="HD Audio Headphone 2 mixer"
"3"="HD Audio Headphone 3 mixer "
"4"="HD Audio Headphone 4 mixer"
"5"="HD Audio Headphone 5 mixer"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eHeadphone\FriendlyNames\Wave]
"1"="HD Audio Headphone"
"2"="HD Audio Headphone 2"
"3"="HD Audio Headphone 3"
"4"="HD Audio Headphone 4"
"5"="HD Audio Headphone 5"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eLineConnector]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eLineConnector\DeviceParameters]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eLineConnector\DeviceParameters\MSEP]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eLineConnector\DeviceParameters\MSEP\0]
"{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},2"="{00000000-0000-0000-0000-000000000000}"
"{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},7"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eLineConnector\DeviceParameters\MSFX]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eLineConnector\DeviceParameters\MSFX\0]
"{B725F130-47EF-101A-A5F1-02608C9EEBAC},10"="Microsoft Audio Home Theater Effects"
"{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},5"="{62dc1a93-ae24-464c-a43e-452f824c4250}"
"{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},6"="{637c490d-eee3-4c0a-973f-371958802da2}"
"{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},3"="{5860E1C5-F95C-4a7a-8EC8-8AEF24F379A1}"
"{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},0"="{00000000-0000-0000-0000-000000000000}"
"{D3993A3F-99C2-4402-B5EC-A92A0367664B},5"=hex(7):7b,00,43,00,31,00,38,00,45,\
  00,32,00,46,00,37,00,45,00,2d,00,39,00,33,00,33,00,44,00,2d,00,34,00,39,00,\
  36,00,35,00,2d,00,42,00,37,00,44,00,31,00,2d,00,31,00,45,00,45,00,46,00,32,\
  00,32,00,38,00,44,00,32,00,41,00,46,00,33,00,7d,00,00,00,00,00
"{D3993A3F-99C2-4402-B5EC-A92A0367664B},6"=hex(7):7b,00,43,00,31,00,38,00,45,\
  00,32,00,46,00,37,00,45,00,2d,00,39,00,33,00,33,00,44,00,2d,00,34,00,39,00,\
  36,00,35,00,2d,00,42,00,37,00,44,00,31,00,2d,00,31,00,45,00,45,00,46,00,32,\
  00,32,00,38,00,44,00,32,00,41,00,46,00,33,00,7d,00,00,00,00,00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eLineConnector\FriendlyNames]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eLineConnector\FriendlyNames\Mixer]
"1"="HD Audio Line connector mixer"
"2"="HD Audio Line connector mixer 2"
"3"="HD Audio Line connector mixer 3"
"4"="HD Audio Line connector mixer 4"
"5"="HD Audio Line connector mixer 5"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eLineConnector\FriendlyNames\Wave]
"1"="HD Audio Line connector"
"2"="HD Audio Line connector 2"
"3"="HD Audio Line connector 3"
"4"="HD Audio Line connector 4"
"5"="HD Audio Line connector 5"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eLineIn]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eLineIn\DeviceParameters]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eLineIn\DeviceParameters\MSEP]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eLineIn\DeviceParameters\MSEP\0]
"{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},2"="{00000000-0000-0000-0000-000000000000}"
"{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},7"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eLineIn\FriendlyNames]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eLineIn\FriendlyNames\Mixer]
"1"="HD Audio Line in mixer"
"2"="HD Audio Line in mixer 2"
"3"="HD Audio Line in mixer 3"
"4"="HD Audio Line in mixer 4"
"5"="HD Audio Line in mixer 5"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eLineIn\FriendlyNames\Wave]
"1"="HD Audio Line in"
"2"="HD Audio Line in 2"
"3"="HD Audio Line in 3"
"4"="HD Audio Line in 4"
"5"="HD Audio Line in 5"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eLineOut]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eLineOut\DeviceParameters]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eLineOut\DeviceParameters\MSEP]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eLineOut\DeviceParameters\MSEP\0]
"{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},2"="{00000000-0000-0000-0000-000000000000}"
"{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},7"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eLineOut\DeviceParameters\MSFX]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eLineOut\DeviceParameters\MSFX\0]
"{B725F130-47EF-101A-A5F1-02608C9EEBAC},10"="Microsoft Audio Home Theater Effects"
"{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},5"="{62dc1a93-ae24-464c-a43e-452f824c4250}"
"{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},6"="{637c490d-eee3-4c0a-973f-371958802da2}"
"{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},3"="{5860E1C5-F95C-4a7a-8EC8-8AEF24F379A1}"
"{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},0"="{00000000-0000-0000-0000-000000000000}"
"{D3993A3F-99C2-4402-B5EC-A92A0367664B},5"=hex(7):7b,00,43,00,31,00,38,00,45,\
  00,32,00,46,00,37,00,45,00,2d,00,39,00,33,00,33,00,44,00,2d,00,34,00,39,00,\
  36,00,35,00,2d,00,42,00,37,00,44,00,31,00,2d,00,31,00,45,00,45,00,46,00,32,\
  00,32,00,38,00,44,00,32,00,41,00,46,00,33,00,7d,00,00,00,00,00
"{D3993A3F-99C2-4402-B5EC-A92A0367664B},6"=hex(7):7b,00,43,00,31,00,38,00,45,\
  00,32,00,46,00,37,00,45,00,2d,00,39,00,33,00,33,00,44,00,2d,00,34,00,39,00,\
  36,00,35,00,2d,00,42,00,37,00,44,00,31,00,2d,00,31,00,45,00,45,00,46,00,32,\
  00,32,00,38,00,44,00,32,00,41,00,46,00,33,00,7d,00,00,00,00,00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eLineOut\FriendlyNames]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eLineOut\FriendlyNames\Mixer]
"1"="HD Audio Speaker mixer"
"2"="HD Audio Speaker mixer 2"
"3"="HD Audio Speaker mixer 3"
"4"="HD Audio Speaker mixer 4"
"5"="HD Audio Speaker mixer 5"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eLineOut\FriendlyNames\Wave]
"1"="HD Audio Speaker"
"2"="HD Audio Speaker 2"
"3"="HD Audio Speaker 3"
"4"="HD Audio Speaker 4"
"5"="HD Audio Speaker 5"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eMicArray]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eMicArray\DeviceParameters]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eMicArray\DeviceParameters\MSEP]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eMicArray\DeviceParameters\MSEP\0]
"{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},2"="{00000000-0000-0000-0000-000000000000}"
"{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},7"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eMicArray\FriendlyNames]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eMicArray\FriendlyNames\Mixer]
"1"="HD Audio Microphone array mixer"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eMicArray\FriendlyNames\Wave]
"1"="HD Audio Microphone array"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eMicIn]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eMicIn\DeviceParameters]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eMicIn\DeviceParameters\MSEP]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eMicIn\DeviceParameters\MSEP\0]
"{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},2"="{00000000-0000-0000-0000-000000000000}"
"{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},7"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eMicIn\FriendlyNames]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eMicIn\FriendlyNames\Mixer]
"1"="HD Audio Microphone mixer"
"2"="HD Audio Microphone 2 mixer"
"3"="HD Audio Microphone 3 mixer"
"4"="HD Audio Microphone 4 mixer"
"5"="HD Audio Microphone 5 mixer"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eMicIn\FriendlyNames\Wave]
"1"="HD Audio Microphone"
"2"="HD Audio Microphone 2"
"3"="HD Audio Microphone 3"
"4"="HD Audio Microphone 4"
"5"="HD Audio Microphone 5"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eMixedCapture]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eMixedCapture\DeviceParameters]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eMixedCapture\DeviceParameters\MSEP]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eMixedCapture\DeviceParameters\MSEP\0]
"{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},2"="{00000000-0000-0000-0000-000000000000}"
"{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},7"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eMixedCapture\FriendlyNames]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eMixedCapture\FriendlyNames\Mixer]
"1"="HD Audio Mixed capture mixer"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eMixedCapture\FriendlyNames\Wave]
"1"="HD Audio Mixed capture"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eMuxedCapture]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eMuxedCapture\DeviceParameters]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eMuxedCapture\DeviceParameters\MSEP]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eMuxedCapture\DeviceParameters\MSEP\0]
"{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},2"="{00000000-0000-0000-0000-000000000000}"
"{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},7"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eMuxedCapture\FriendlyNames]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eMuxedCapture\FriendlyNames\Mixer]
"1"="HD Audio Muxed capture mixer"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eMuxedCapture\FriendlyNames\Wave]
"1"="HD Audio Muxed capture"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eSpdifIn]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eSpdifIn\DeviceParameters]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eSpdifIn\DeviceParameters\MSEP]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eSpdifIn\DeviceParameters\MSEP\0]
"{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},2"="{00000000-0000-0000-0000-000000000000}"
"{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},7"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eSpdifIn\FriendlyNames]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eSpdifIn\FriendlyNames\Mixer]
"1"="HD Audio Digital in mixer"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eSpdifIn\FriendlyNames\Wave]
"1"="HD Audio Digital in"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eSpdifOut]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eSpdifOut\DeviceParameters]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eSpdifOut\DeviceParameters\MSEP]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eSpdifOut\DeviceParameters\MSEP\0]
"{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},2"="{00000000-0000-0000-0000-000000000000}"
"{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},7"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eSpdifOut\DeviceParameters\MSFX]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eSpdifOut\DeviceParameters\MSFX\0]
"{B725F130-47EF-101A-A5F1-02608C9EEBAC},10"="Microsoft Audio Home Theater Effects"
"{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},5"="{62dc1a93-ae24-464c-a43e-452f824c4250}"
"{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},6"="{637c490d-eee3-4c0a-973f-371958802da2}"
"{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},3"="{5860E1C5-F95C-4a7a-8EC8-8AEF24F379A1}"
"{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},0"="{00000000-0000-0000-0000-000000000000}"
"{D3993A3F-99C2-4402-B5EC-A92A0367664B},5"=hex(7):7b,00,43,00,31,00,38,00,45,\
  00,32,00,46,00,37,00,45,00,2d,00,39,00,33,00,33,00,44,00,2d,00,34,00,39,00,\
  36,00,35,00,2d,00,42,00,37,00,44,00,31,00,2d,00,31,00,45,00,45,00,46,00,32,\
  00,32,00,38,00,44,00,32,00,41,00,46,00,33,00,7d,00,00,00,00,00
"{D3993A3F-99C2-4402-B5EC-A92A0367664B},6"=hex(7):7b,00,43,00,31,00,38,00,45,\
  00,32,00,46,00,37,00,45,00,2d,00,39,00,33,00,33,00,44,00,2d,00,34,00,39,00,\
  36,00,35,00,2d,00,42,00,37,00,44,00,31,00,2d,00,31,00,45,00,45,00,46,00,32,\
  00,32,00,38,00,44,00,32,00,41,00,46,00,33,00,7d,00,00,00,00,00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eSpdifOut\FriendlyNames]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eSpdifOut\FriendlyNames\Mixer]
"1"="HD Audio SPDIF out mixer"
"2"="HD Audio SPDIF out 2 mixer"
"3"="HD Audio SPDIF out 3 mixer"
"4"="HD Audio SPDIF out 4mixer"
"5"="HD Audio SPDIF out 5 mixer"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eSpdifOut\FriendlyNames\Wave]
"1"="HD Audio SPDIF out"
"2"="HD Audio SPDIF out 2"
"3"="HD Audio SPDIF out 3"
"4"="HD Audio SPDIF out 4"
"5"="HD Audio SPDIF out 5"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eSpdifOutLineOut]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eSpdifOutLineOut\DeviceParameters]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eSpdifOutLineOut\DeviceParameters\MSEP]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eSpdifOutLineOut\DeviceParameters\MSEP\0]
"{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},2"="{00000000-0000-0000-0000-000000000000}"
"{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},7"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eSpdifOutLineOut\DeviceParameters\MSFX]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eSpdifOutLineOut\DeviceParameters\MSFX\0]
"{B725F130-47EF-101A-A5F1-02608C9EEBAC},10"="Microsoft Audio Home Theater Effects"
"{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},5"="{62dc1a93-ae24-464c-a43e-452f824c4250}"
"{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},6"="{637c490d-eee3-4c0a-973f-371958802da2}"
"{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},3"="{5860E1C5-F95C-4a7a-8EC8-8AEF24F379A1}"
"{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},0"="{00000000-0000-0000-0000-000000000000}"
"{D3993A3F-99C2-4402-B5EC-A92A0367664B},5"=hex(7):7b,00,43,00,31,00,38,00,45,\
  00,32,00,46,00,37,00,45,00,2d,00,39,00,33,00,33,00,44,00,2d,00,34,00,39,00,\
  36,00,35,00,2d,00,42,00,37,00,44,00,31,00,2d,00,31,00,45,00,45,00,46,00,32,\
  00,32,00,38,00,44,00,32,00,41,00,46,00,33,00,7d,00,00,00,00,00
"{D3993A3F-99C2-4402-B5EC-A92A0367664B},6"=hex(7):7b,00,43,00,31,00,38,00,45,\
  00,32,00,46,00,37,00,45,00,2d,00,39,00,33,00,33,00,44,00,2d,00,34,00,39,00,\
  36,00,35,00,2d,00,42,00,37,00,44,00,31,00,2d,00,31,00,45,00,45,00,46,00,32,\
  00,32,00,38,00,44,00,32,00,41,00,46,00,33,00,7d,00,00,00,00,00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eSpdifOutLineOut\FriendlyNames]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eSpdifOutLineOut\FriendlyNames\Mixer]
"1"="HD Audio Spdif Speaker mixer"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eSpdifOutLineOut\FriendlyNames\Wave]
"1"="HD Audio Spdif Speaker"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eSpdifOutSpeaker]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eSpdifOutSpeaker\DeviceParameters]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eSpdifOutSpeaker\DeviceParameters\MSEP]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eSpdifOutSpeaker\DeviceParameters\MSEP\0]
"{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},2"="{00000000-0000-0000-0000-000000000000}"
"{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},7"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eSpdifOutSpeaker\DeviceParameters\MSFX]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eSpdifOutSpeaker\DeviceParameters\MSFX\0]
"{B725F130-47EF-101A-A5F1-02608C9EEBAC},10"="Microsoft Audio Home Theater Effects"
"{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},5"="{62dc1a93-ae24-464c-a43e-452f824c4250}"
"{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},6"="{637c490d-eee3-4c0a-973f-371958802da2}"
"{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},3"="{5860E1C5-F95C-4a7a-8EC8-8AEF24F379A1}"
"{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},0"="{00000000-0000-0000-0000-000000000000}"
"{D3993A3F-99C2-4402-B5EC-A92A0367664B},5"=hex(7):7b,00,43,00,31,00,38,00,45,\
  00,32,00,46,00,37,00,45,00,2d,00,39,00,33,00,33,00,44,00,2d,00,34,00,39,00,\
  36,00,35,00,2d,00,42,00,37,00,44,00,31,00,2d,00,31,00,45,00,45,00,46,00,32,\
  00,32,00,38,00,44,00,32,00,41,00,46,00,33,00,7d,00,00,00,00,00
"{D3993A3F-99C2-4402-B5EC-A92A0367664B},6"=hex(7):7b,00,43,00,31,00,38,00,45,\
  00,32,00,46,00,37,00,45,00,2d,00,39,00,33,00,33,00,44,00,2d,00,34,00,39,00,\
  36,00,35,00,2d,00,42,00,37,00,44,00,31,00,2d,00,31,00,45,00,45,00,46,00,32,\
  00,32,00,38,00,44,00,32,00,41,00,46,00,33,00,7d,00,00,00,00,00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eSpdifOutSpeaker\FriendlyNames]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eSpdifOutSpeaker\FriendlyNames\Mixer]
"1"="HD Audio Spdif Speaker mixer"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eSpdifOutSpeaker\FriendlyNames\Wave]
"1"="HD Audio Spdif Speaker"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eSpeaker]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eSpeaker\DeviceParameters]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eSpeaker\DeviceParameters\MSEP]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eSpeaker\DeviceParameters\MSEP\0]
"{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},2"="{00000000-0000-0000-0000-000000000000}"
"{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},7"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eSpeaker\DeviceParameters\MSFX]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eSpeaker\DeviceParameters\MSFX\0]
"{B725F130-47EF-101A-A5F1-02608C9EEBAC},10"="Microsoft Audio Home Theater Effects"
"{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},5"="{62dc1a93-ae24-464c-a43e-452f824c4250}"
"{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},6"="{637c490d-eee3-4c0a-973f-371958802da2}"
"{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},3"="{5860E1C5-F95C-4a7a-8EC8-8AEF24F379A1}"
"{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},0"="{00000000-0000-0000-0000-000000000000}"
"{D3993A3F-99C2-4402-B5EC-A92A0367664B},5"=hex(7):7b,00,43,00,31,00,38,00,45,\
  00,32,00,46,00,37,00,45,00,2d,00,39,00,33,00,33,00,44,00,2d,00,34,00,39,00,\
  36,00,35,00,2d,00,42,00,37,00,44,00,31,00,2d,00,31,00,45,00,45,00,46,00,32,\
  00,32,00,38,00,44,00,32,00,41,00,46,00,33,00,7d,00,00,00,00,00
"{D3993A3F-99C2-4402-B5EC-A92A0367664B},6"=hex(7):7b,00,43,00,31,00,38,00,45,\
  00,32,00,46,00,37,00,45,00,2d,00,39,00,33,00,33,00,44,00,2d,00,34,00,39,00,\
  36,00,35,00,2d,00,42,00,37,00,44,00,31,00,2d,00,31,00,45,00,45,00,46,00,32,\
  00,32,00,38,00,44,00,32,00,41,00,46,00,33,00,7d,00,00,00,00,00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eSpeaker\FriendlyNames]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eSpeaker\FriendlyNames\Mixer]
"1"="HD Audio Speaker mixer"
"2"="HD Audio Speaker mixer 2"
"3"="HD Audio Speaker mixer 3"
"4"="HD Audio Speaker mixer 4"
"5"="HD Audio Speaker mixer 5"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\DeviceInterfaces\eSpeaker\FriendlyNames\Wave]
"1"="HD Audio Speaker"
"2"="HD Audio Speaker 2"
"3"="HD Audio Speaker 3"
"4"="HD Audio Speaker 4"
"5"="HD Audio Speaker 5"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\Drivers]
"SubClasses"="wave,midi,mixer,aux"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\Drivers\aux]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\Drivers\aux\wdmaud.drv]
"Driver"="wdmaud.drv"
"Description"="Microsoft 1.1 UAA Function Driver for High Definition Audio"
"Alias"="aux1"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\Drivers\midi]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\Drivers\midi\wdmaud.drv]
"Driver"="wdmaud.drv"
"Description"="Microsoft 1.1 UAA Function Driver for High Definition Audio"
"Alias"="midi1"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\Drivers\mixer]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\Drivers\mixer\wdmaud.drv]
"Driver"="wdmaud.drv"
"Description"="Microsoft 1.1 UAA Function Driver for High Definition Audio"
"Alias"="mixer1"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\Drivers\wave]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\Drivers\wave\wdmaud.drv]
"Driver"="wdmaud.drv"
"Description"="Microsoft 1.1 UAA Function Driver for High Definition Audio"
"Alias"="wave1"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\GlobalSettings]
"DcOffsetWorkaround"=hex:01,00,00,00
"ResetAudioFgOnStart"=hex:01,00,00,00
"SysAudioTopoMiniportWorkaround"=hex:01,00,00,00
"ValidateCodecWrites"=hex:00,00,00,00
"SendFakePcxCfgDefVerbs"=hex:00,00,00,00
"SpdifOutputEchosRearRenderWhenNoAc3"=hex:01,00,00,00
"HpShutsOffRearSpeaker"=hex:00,00,00,00
"HpMode"=hex:01,00,00,00
"EnableDynamicDevices"=hex:01,00,00,00
"SetSpdifVCfg"=hex:01,00,00,00
"EnableWaveRT"=hex:01,00,00,00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\GlobalSettings\SpdifIn]
"SpdifInputBitDepth"=hex:00,00,00,00
"SpdifInputSampleRate"=hex:01,00,00,00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\GlobalSettings\SpdifOut]
"ExternalSpdifReceiverSupportedSampleRates44100"=hex:00,00,00,00
"ExternalSpdifReceiverSupportedSampleRates48000"=hex:01,00,00,00
"ExternalSpdifReceiverSupportedSampleRates96000"=hex:00,00,00,00
"ExternalSpdifReceiverSupportedBitDepths16"=hex:01,00,00,00
"ExternalSpdifReceiverSupportedBitDepths20"=hex:00,00,00,00
"ExternalSpdifReceiverSupportedBitDepths24"=hex:00,00,00,00
"ExternalSpdifReceiverSupportedBitDepths32"=hex:00,00,00,00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\PinConfigOverrideVerbs]
"0000"=hex:80,1c,47,02
"0001"=hex:00,1d,47,02
"0002"=hex:10,1e,47,02
"0003"=hex:90,1f,47,02
"0004"=hex:82,1c,57,02
"0005"=hex:00,1d,57,02
"0006"=hex:10,1e,57,02
"0007"=hex:90,1f,57,02
"0008"=hex:f0,1c,67,02
"0009"=hex:00,1d,67,02
"0010"=hex:00,1e,67,02
"0011"=hex:40,1f,67,02
"0012"=hex:f0,1c,77,02
"0013"=hex:00,1d,77,02
"0014"=hex:00,1e,77,02
"0015"=hex:40,1f,77,02
"0016"=hex:f0,1c,87,02
"0017"=hex:00,1d,87,02
"0018"=hex:00,1e,87,02
"0019"=hex:40,1f,87,02
"0020"=hex:f0,1c,97,02
"0021"=hex:00,1d,97,02
"0022"=hex:00,1e,97,02
"0023"=hex:40,1f,97,02
"0024"=hex:f0,1c,a7,02
"0025"=hex:00,1d,a7,02
"0026"=hex:00,1e,a7,02
"0027"=hex:40,1f,a7,02
"0028"=hex:f0,1c,b7,02
"0029"=hex:00,1d,b7,02
"0030"=hex:00,1e,b7,02
"0031"=hex:40,1f,b7,02
"0032"=hex:f0,1c,c7,02
"0033"=hex:20,1d,c7,02
"0034"=hex:2b,1e,c7,02
"0035"=hex:04,1f,c7,02
"0036"=hex:f0,1c,d7,02
"0037"=hex:00,1d,d7,02
"0038"=hex:00,1e,d7,02
"0039"=hex:40,1f,d7,02
"0040"=hex:f0,1c,e7,02
"0041"=hex:00,1d,e7,02
"0042"=hex:00,1e,e7,02
"0043"=hex:40,1f,e7,02
"0044"=hex:f0,1c,f7,02
"0045"=hex:00,1d,f7,02
"0046"=hex:00,1e,f7,02
"0047"=hex:40,1f,f7,02
"0048"=hex:f0,1c,07,03
"0049"=hex:00,1d,07,03
"0050"=hex:00,1e,07,03
"0051"=hex:40,1f,07,03
"0052"=hex:f0,1c,17,03
"0053"=hex:00,1d,17,03
"0054"=hex:00,1e,17,03
"0055"=hex:40,1f,17,03
"0056"=hex:f0,1c,27,03
"0057"=hex:00,1d,27,03
"0058"=hex:00,1e,27,03
"0059"=hex:40,1f,27,03
"0060"=hex:f0,1c,37,03
"0061"=hex:00,1d,37,03
"0062"=hex:00,1e,37,03
"0063"=hex:40,1f,37,03
"0064"=hex:f0,1c,47,03
"0065"=hex:00,1d,47,03
"0066"=hex:00,1e,47,03
"0067"=hex:40,1f,47,03
"0068"=hex:f0,1c,57,03
"0069"=hex:00,1d,57,03
"0070"=hex:00,1e,57,03
"0071"=hex:40,1f,57,03
"0072"=hex:f0,1c,67,03
"0073"=hex:00,1d,67,03
"0074"=hex:00,1e,67,03
"0075"=hex:40,1f,67,03
"0076"=hex:f0,1c,77,03
"0077"=hex:00,1d,77,03
"0078"=hex:00,1e,77,03
"0079"=hex:40,1f,77,03
"0080"=hex:f0,1c,87,03
"0081"=hex:00,1d,87,03
"0082"=hex:00,1e,87,03
"0083"=hex:40,1f,87,03
"0084"=hex:f0,1c,97,03
"0085"=hex:00,1d,97,03
"0086"=hex:00,1e,97,03
"0087"=hex:40,1f,97,03
"0088"=hex:f0,1c,a7,03
"0089"=hex:00,1d,a7,03
"0090"=hex:00,1e,a7,03
"0091"=hex:40,1f,a7,03
"0092"=hex:f0,1c,b7,03
"0093"=hex:00,1d,b7,03
"0094"=hex:00,1e,b7,03
"0095"=hex:40,1f,b7,03
"0096"=hex:50,1c,c7,03
"0097"=hex:20,1d,c7,03
"0098"=hex:ab,1e,c7,03
"0099"=hex:04,1f,c7,03
"0100"=hex:f0,1c,d7,03
"0101"=hex:00,1d,d7,03
"0102"=hex:00,1e,d7,03
"0103"=hex:40,1f,d7,03
"0104"=hex:f0,1c,e7,03
"0105"=hex:00,1d,e7,03
"0106"=hex:00,1e,e7,03
"0107"=hex:40,1f,e7,03
"0108"=hex:f0,1c,f7,03
"0109"=hex:00,1d,f7,03
"0110"=hex:00,1e,f7,03
"0111"=hex:40,1f,f7,03
"0112"=hex:f0,1c,07,04
"0113"=hex:00,1d,07,04
"0114"=hex:00,1e,07,04
"0115"=hex:40,1f,07,04
"0116"=hex:f0,1c,17,04
"0117"=hex:00,1d,17,04
"0118"=hex:00,1e,17,04
"0119"=hex:40,1f,17,04
"0120"=hex:f0,1c,27,04
"0121"=hex:00,1d,27,04
"0122"=hex:00,1e,27,04
"0123"=hex:40,1f,27,04
"0124"=hex:f0,1c,37,04
"0125"=hex:00,1d,37,04
"0126"=hex:00,1e,37,04
"0127"=hex:40,1f,37,04
"0128"=hex:70,1c,47,04
"0129"=hex:00,1d,47,04
"0130"=hex:a0,1e,47,04
"0131"=hex:90,1f,47,04
"0132"=hex:f0,1c,57,04
"0133"=hex:00,1d,57,04
"0134"=hex:00,1e,57,04
"0135"=hex:40,1f,57,04
"NumVerbs"=hex:88,00,00,00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\PowerSettings]
"ConservationIdleTime"=hex:00,00,00,00
"PerformanceIdleTime"=hex:00,00,00,00
"IdlePowerState"=hex:03,00,00,00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\WaveportSettings]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\WaveportSettings\eHeadphoneWave]
"ActiveSpeakerPositions"=hex:03,00,00,00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\0007\WaveportSettings\eSpeakerWave]
"ActiveSpeakerPositions"=hex:03,00,00,00


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



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

* Re: CS8409 Macbook Pro 2016 2017
  2018-08-04  2:07 CS8409 Macbook Pro 2016 2017 David Ulricht
@ 2018-08-04  2:18 ` David Ulricht
  2018-08-04  6:48 ` Takashi Iwai
  1 sibling, 0 replies; 17+ messages in thread
From: David Ulricht @ 2018-08-04  2:18 UTC (permalink / raw)
  To: alsa-devel

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

alsa-info below

On Sat, Aug 4, 2018 at 5:07 AM, David Ulricht <david.ulricht434@gmail.com>
wrote:

> Hello,
>
> Macbook pro models containing CS8409 for sure are:
> MBP131 MBP141.I own MBP 14,1 e.g. 2017 model.
>
> I'm attaching working sound configuration from Windows 10 registry (note
> that the cs420x might need to be ignored or might be important i don't
> really know). I believe what is really used is in the PinConfigOverride
> section.
>
> Interesting thing to note is that sound in MacOS is much louder than
> Bootcamp Windows, would be nice to hear how loud is on linux.
>
> I did convert PinConfigOverride HEX strings to [pincfg] format in the
> attached hda-jack-retask.fw thanks to Takashi's guidance.
>
> I'm attaching also alsamixer ASCII. Only PCM, no Master ?
>
> What I have tried is execute:
> hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK 0x@@
> hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIRECTION 0x@@
> hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x@@
> putting @@ from 0x00 to 0x50
>
> Please advise.
>
>

[-- Attachment #2: alsa-info.txt --]
[-- Type: text/plain, Size: 45232 bytes --]

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

!!Script ran on: Sat Aug  4 00:55:00 UTC 2018


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

Ubuntu 18.04.1 LTS \n \l DISTRIB_ID=Ubuntu DISTRIB_DESCRIPTION="Ubuntu 18.04.1 LTS" NAME="Ubuntu" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 18.04.1 LTS" HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="https://help.ubuntu.com/" BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" UBUNTU_CODENAME=bionic


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

Manufacturer:      Apple Inc.
Product Name:      MacBookPro14,1
Product Version:   1.0
Firmware Version:  MBP141.88Z.0178.B00.1806260902


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

Kernel release:    4.15.0-20-generic
Operating System:  GNU/Linux
Architecture:      x86_64
Processor:         x86_64
SMP Enabled:       Yes


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

Driver version:     k4.15.0-20-generic
Library version:    1.1.3
Utilities version:  1.1.3


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

snd_hda_intel


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

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


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

 0 [PCH            ]: HDA-Intel - HDA Intel PCH
                      HDA Intel PCH at 0x92820000 irq 53


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

00:1f.3 Audio device: Intel Corporation Sunrise Point-LP HD Audio (rev 21)
03:00.0 Multimedia controller: Broadcom Limited 720p FaceTime HD Camera


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

00:1f.3 0403: 8086:9d71 (rev 21)
	Subsystem: 8086:7270


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

snd_pcsp: index=-2
snd_usb_audio: index=-2
snd_atiixp_modem: index=-2
snd_intel8x0m: index=-2
snd_via82xx_modem: index=-2
snd_atiixp_modem: index=-2
snd_intel8x0m: index=-2
snd_via82xx_modem: index=-2
snd_usb_audio: index=-2
snd_usb_caiaq: index=-2
snd_usb_ua101: index=-2
snd_usb_us122l: index=-2
snd_usb_usx2y: index=-2
snd_cmipci: mpu_port=0x330 fm_port=0x388
snd_pcsp: index=-2
snd_usb_audio: index=-2
snd_hda_intel: patch=hda-jack-retask.fw,hda-jack-retask.fw,hda-jack-retask.fw,hda-jack-retask.fw


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

!!Module: snd_hda_intel
	align_buffer_size : -1
	bdl_pos_adj : -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
	beep_mode : N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N
	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
	jackpoll_ms : 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
	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 : hda-jack-retask.fw,hda-jack-retask.fw,hda-jack-retask.fw,hda-jack-retask.fw,(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)
	pm_blacklist : Y
	position_fix : -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
	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 : -1
	snoop : -1


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

Codec: Cirrus Logic Generic
Address: 0
AFG Function Id: 0x1 (unsol 1)
Vendor Id: 0x10138409
Subsystem Id: 0x106b3300
Revision Id: 0x100100
No Modem Function Group found
Default PCM:
    rates [0x17f]: 8000 11025 16000 22050 32000 44100 48000 96000
    bits [0x1a]: 16 24 32
    formats [0x1]: PCM
Default Amp-In caps: N/A
Default Amp-Out caps: N/A
State of AFG node 0x01:
  Power states:  D0 D3 D3cold S3D3cold CLKSTOP EPSS
  Power: setting=D0, actual=D0
GPIO: io=8, o=0, i=0, unsolicited=1, wake=1
  IO[0]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
  IO[1]: enable=1, dir=1, wake=0, sticky=0, data=1, unsol=0
  IO[2]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
  IO[3]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
  IO[4]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
  IO[5]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
  IO[6]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
  IO[7]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
Node 0x02 [Audio Output] wcaps 0x60001: Stereo
  Device: name="Generic Analog", type="Audio", device=0
  Converter: stream=1, channel=0
  Delay: 6 samples
Node 0x03 [Audio Output] wcaps 0x60001: Stereo
  Converter: stream=1, channel=2
  Delay: 6 samples
Node 0x04 [Audio Output] wcaps 0x60001: Stereo
  Converter: stream=0, channel=0
  Delay: 6 samples
Node 0x05 [Audio Output] wcaps 0x60001: Stereo
  Converter: stream=0, channel=0
  Delay: 6 samples
Node 0x06 [Audio Output] wcaps 0x60001: Stereo
  Converter: stream=0, channel=0
  Delay: 6 samples
Node 0x07 [Audio Output] wcaps 0x60001: Stereo
  Converter: stream=0, channel=0
  Delay: 6 samples
Node 0x08 [Audio Output] wcaps 0x60001: Stereo
  Converter: stream=0, channel=0
  Delay: 6 samples
Node 0x09 [Audio Output] wcaps 0x60001: Stereo
  Converter: stream=0, channel=0
  Delay: 6 samples
Node 0x0a [Audio Output] wcaps 0x60001: Stereo
  Converter: stream=1, channel=0
  Delay: 6 samples
Node 0x0b [Audio Output] wcaps 0x60001: Stereo
  Converter: stream=0, channel=0
  Delay: 6 samples
Node 0x0c [Audio Output] wcaps 0x60001: Stereo
  Converter: stream=0, channel=0
  Delay: 6 samples
Node 0x0d [Audio Output] wcaps 0x60001: Stereo
  Converter: stream=0, channel=0
  Delay: 6 samples
Node 0x0e [Audio Output] wcaps 0x60001: Stereo
  Converter: stream=0, channel=0
  Delay: 6 samples
Node 0x0f [Audio Output] wcaps 0x60001: Stereo
  Converter: stream=0, channel=0
  Delay: 6 samples
Node 0x10 [Audio Output] wcaps 0x60001: Stereo
  Converter: stream=0, channel=0
  Delay: 6 samples
Node 0x11 [Audio Output] wcaps 0x60001: Stereo
  Converter: stream=0, channel=0
  Delay: 6 samples
Node 0x12 [Audio Input] wcaps 0x160101: Stereo
  Device: name="Generic Analog", type="Audio", device=0
  Converter: stream=1, channel=0
  SDI-Select: 0
  Delay: 6 samples
  Connection: 1
     0x34
Node 0x13 [Audio Input] wcaps 0x160101: Stereo
  Device: name="Generic Alt Analog", type="Audio", device=2
  Converter: stream=0, channel=0
  SDI-Select: 0
  Delay: 6 samples
  Connection: 1
     0x35
Node 0x14 [Audio Input] wcaps 0x160101: Stereo
  Converter: stream=0, channel=0
  SDI-Select: 0
  Delay: 6 samples
  Connection: 1
     0x36
Node 0x15 [Audio Input] wcaps 0x160101: Stereo
  Converter: stream=0, channel=0
  SDI-Select: 0
  Delay: 6 samples
  Connection: 1
     0x37
Node 0x16 [Audio Input] wcaps 0x160101: Stereo
  Converter: stream=0, channel=0
  SDI-Select: 0
  Delay: 6 samples
  Connection: 1
     0x38
Node 0x17 [Audio Input] wcaps 0x160101: Stereo
  Converter: stream=0, channel=0
  SDI-Select: 0
  Delay: 6 samples
  Connection: 1
     0x39
Node 0x18 [Audio Input] wcaps 0x160101: Stereo
  Converter: stream=0, channel=0
  SDI-Select: 0
  Delay: 6 samples
  Connection: 1
     0x3a
Node 0x19 [Audio Input] wcaps 0x160101: Stereo
  Converter: stream=0, channel=0
  SDI-Select: 0
  Delay: 6 samples
  Connection: 1
     0x3b
Node 0x1a [Audio Input] wcaps 0x160101: Stereo
  Converter: stream=0, channel=0
  SDI-Select: 0
  Delay: 6 samples
  Connection: 1
     0x3c
Node 0x1b [Audio Input] wcaps 0x160101: Stereo
  Converter: stream=0, channel=0
  SDI-Select: 0
  Delay: 6 samples
  Connection: 1
     0x3d
Node 0x1c [Audio Input] wcaps 0x160101: Stereo
  Converter: stream=0, channel=0
  SDI-Select: 0
  Delay: 6 samples
  Connection: 1
     0x3e
Node 0x1d [Audio Input] wcaps 0x160101: Stereo
  Converter: stream=0, channel=0
  SDI-Select: 0
  Delay: 6 samples
  Connection: 1
     0x3f
Node 0x1e [Audio Input] wcaps 0x160101: Stereo
  Converter: stream=0, channel=0
  SDI-Select: 0
  Delay: 6 samples
  Connection: 1
     0x40
Node 0x1f [Audio Input] wcaps 0x160101: Stereo
  Converter: stream=0, channel=0
  SDI-Select: 0
  Delay: 6 samples
  Connection: 1
     0x41
Node 0x20 [Audio Input] wcaps 0x160101: Stereo
  Converter: stream=0, channel=0
  SDI-Select: 0
  Delay: 6 samples
  Connection: 1
     0x42
Node 0x21 [Audio Input] wcaps 0x160101: Stereo
  Converter: stream=0, channel=0
  SDI-Select: 0
  Delay: 6 samples
  Connection: 1
     0x43
Node 0x22 [Audio Input] wcaps 0x18051b: Stereo Amp-In
  Amp-In caps: ofs=0x33, nsteps=0x3f, stepsize=0x03, mute=1
  Amp-In vals:  [0xb3 0xb3]
  Converter: stream=0, channel=0
  SDI-Select: 0
  PCM:
    rates [0x1f5]: 8000 16000 32000 44100 48000 88200 96000
    bits [0x1e]: 16 20 24 32
    formats [0x1]: PCM
  Power states:  D0 D3 EPSS
  Power: setting=D0, actual=D0
  Delay: 8 samples
  Connection: 1
     0x44
Node 0x23 [Audio Input] wcaps 0x18051b: Stereo Amp-In
  Amp-In caps: ofs=0x33, nsteps=0x3f, stepsize=0x03, mute=1
  Amp-In vals:  [0xb3 0xb3]
  Converter: stream=0, channel=0
  SDI-Select: 0
  PCM:
    rates [0x1f5]: 8000 16000 32000 44100 48000 88200 96000
    bits [0x1e]: 16 20 24 32
    formats [0x1]: PCM
  Power states:  D0 D3 EPSS
  Power: setting=D0, actual=D0
  Delay: 8 samples
  Connection: 1
     0x45
Node 0x24 [Pin Complex] wcaps 0x400101: Stereo
  Pincap 0x00000010: OUT
  Pin Default 0x90100110: [Fixed] Speaker at Int N/A
    Conn = Unknown, Color = Unknown
    DefAssociation = 0x1, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x40: OUT
  Connection: 1
     0x02
Node 0x25 [Pin Complex] wcaps 0x400101: Stereo
  Pincap 0x00000010: OUT
  Pin Default 0x90100111: [Fixed] Speaker at Int N/A
    Conn = Unknown, Color = Unknown
    DefAssociation = 0x1, Sequence = 0x1
    Misc = NO_PRESENCE
  Pin-ctls: 0x40: OUT
  Connection: 1
     0x03
Node 0x26 [Pin Complex] wcaps 0x400101: Stereo
  Pincap 0x00000010: OUT
  Pin Default 0x400000f0: [N/A] Line Out at Ext N/A
    Conn = Unknown, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0
  Pin-ctls: 0x00:
  Connection: 1
     0x04
Node 0x27 [Pin Complex] wcaps 0x400101: Stereo
  Pincap 0x00000010: OUT
  Pin Default 0x400000f0: [N/A] Line Out at Ext N/A
    Conn = Unknown, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0
  Pin-ctls: 0x00:
  Connection: 1
     0x05
Node 0x28 [Pin Complex] wcaps 0x400101: Stereo
  Pincap 0x00000010: OUT
  Pin Default 0x400000f0: [N/A] Line Out at Ext N/A
    Conn = Unknown, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0
  Pin-ctls: 0x00:
  Connection: 1
     0x06
Node 0x29 [Pin Complex] wcaps 0x400101: Stereo
  Pincap 0x00000010: OUT
  Pin Default 0x400000f0: [N/A] Line Out at Ext N/A
    Conn = Unknown, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0
  Pin-ctls: 0x00:
  Connection: 1
     0x07
Node 0x2a [Pin Complex] wcaps 0x400101: Stereo
  Pincap 0x00000010: OUT
  Pin Default 0x400000f0: [N/A] Line Out at Ext N/A
    Conn = Unknown, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0
  Pin-ctls: 0x00:
  Connection: 1
     0x08
Node 0x2b [Pin Complex] wcaps 0x400101: Stereo
  Pincap 0x00000010: OUT
  Pin Default 0x400000f0: [N/A] Line Out at Ext N/A
    Conn = Unknown, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0
  Pin-ctls: 0x00:
  Connection: 1
     0x09
Node 0x2c [Pin Complex] wcaps 0x400101: Stereo
  Pincap 0x00000010: OUT
  Pin Default 0x002b4020: [Jack] HP Out at Ext N/A
    Conn = Comb, Color = Green
    DefAssociation = 0x2, Sequence = 0x0
  Pin-ctls: 0x40: OUT
  Connection: 1
     0x0a
Node 0x2d [Pin Complex] wcaps 0x400101: Stereo
  Pincap 0x00000010: OUT
  Pin Default 0x400000f0: [N/A] Line Out at Ext N/A
    Conn = Unknown, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0
  Pin-ctls: 0x00:
  Connection: 1
     0x0b
Node 0x2e [Pin Complex] wcaps 0x400101: Stereo
  Pincap 0x00000010: OUT
  Pin Default 0x400000f0: [N/A] Line Out at Ext N/A
    Conn = Unknown, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0
  Pin-ctls: 0x00:
  Connection: 1
     0x0c
Node 0x2f [Pin Complex] wcaps 0x400101: Stereo
  Pincap 0x00000010: OUT
  Pin Default 0x400000f0: [N/A] Line Out at Ext N/A
    Conn = Unknown, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0
  Pin-ctls: 0x00:
  Connection: 1
     0x0d
Node 0x30 [Pin Complex] wcaps 0x400101: Stereo
  Pincap 0x00000010: OUT
  Pin Default 0x400000f0: [N/A] Line Out at Ext N/A
    Conn = Unknown, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0
  Pin-ctls: 0x00:
  Connection: 1
     0x0e
Node 0x31 [Pin Complex] wcaps 0x400101: Stereo
  Pincap 0x00000010: OUT
  Pin Default 0x400000f0: [N/A] Line Out at Ext N/A
    Conn = Unknown, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0
  Pin-ctls: 0x00:
  Connection: 1
     0x0f
Node 0x32 [Pin Complex] wcaps 0x400101: Stereo
  Pincap 0x00000010: OUT
  Pin Default 0x400000f0: [N/A] Line Out at Ext N/A
    Conn = Unknown, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0
  Pin-ctls: 0x00:
  Connection: 1
     0x10
Node 0x33 [Pin Complex] wcaps 0x400101: Stereo
  Pincap 0x00000010: OUT
  Pin Default 0x400000f0: [N/A] Line Out at Ext N/A
    Conn = Unknown, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0
  Pin-ctls: 0x00:
  Connection: 1
     0x11
Node 0x34 [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: 0x00:
Node 0x35 [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: 0x00:
Node 0x36 [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: 0x00:
Node 0x37 [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: 0x00:
Node 0x38 [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: 0x00:
Node 0x39 [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: 0x00:
Node 0x3a [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: 0x00:
Node 0x3b [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: 0x00:
Node 0x3c [Pin Complex] wcaps 0x400001: Stereo
  Pincap 0x00000020: IN
  Pin Default 0x00ab9030: [Jack] Mic at Ext N/A
    Conn = Comb, Color = Pink
    DefAssociation = 0x3, Sequence = 0x0
  Pin-ctls: 0x20: IN
Node 0x3d [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: 0x00:
Node 0x3e [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: 0x00:
Node 0x3f [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: 0x00:
Node 0x40 [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: 0x00:
Node 0x41 [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: 0x00:
Node 0x42 [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: 0x00:
Node 0x43 [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: 0x00:
Node 0x44 [Pin Complex] wcaps 0x40000b: Stereo Amp-In
  Amp-In caps: ofs=0x00, nsteps=0x02, stepsize=0x27, mute=0
  Amp-In vals:  [0x00 0x00]
  Pincap 0x00000020: IN
  Pin Default 0xa0a60100: [Fixed] Mic at Sep N/A
    Conn = Digital, Color = Unknown
    DefAssociation = 0x0, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x20: IN
Node 0x45 [Pin Complex] wcaps 0x40000b: Stereo Amp-In
  Amp-In caps: ofs=0x00, nsteps=0x02, stepsize=0x27, mute=0
  Amp-In vals:  [0x00 0x00]
  Pincap 0x00000020: IN
  Pin Default 0x400000f0: [N/A] Line Out at Ext N/A
    Conn = Unknown, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0
  Pin-ctls: 0x00:
Node 0x46 [Beep Generator Widget] wcaps 0x700200: Mono Digital
Node 0x47 [Vendor Defined Widget] wcaps 0xf002c1: Stereo Digital
  Unsolicited: tag=00, enabled=0
  Processing caps: benign=0, ncoeff=255
Codec: Intel Kabylake HDMI
Address: 2
AFG Function Id: 0x1 (unsol 0)
Vendor Id: 0x8086280b
Subsystem Id: 0x80860101
Revision Id: 0x100000
No Modem Function Group found
Default PCM:
    rates [0x0]:
    bits [0x0]:
    formats [0x0]:
Default Amp-In caps: N/A
Default Amp-Out caps: N/A
State of AFG node 0x01:
  Power states:  D0 D3 CLKSTOP EPSS
  Power: setting=D0, actual=D0, Clock-stop-OK
GPIO: io=0, o=0, i=0, unsolicited=0, wake=0
Node 0x02 [Audio Output] wcaps 0x6611: 8-Channels Digital
  Converter: stream=0, channel=0
  Digital: Enabled KAE
  Digital category: 0x0
  IEC Coding Type: 0x0
  PCM:
    rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000
    bits [0x1a]: 16 24 32
    formats [0x5]: PCM AC3
  Power states:  D0 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x03 [Audio Output] wcaps 0x6611: 8-Channels Digital
  Converter: stream=0, channel=0
  Digital: Enabled KAE
  Digital category: 0x0
  IEC Coding Type: 0x0
  PCM:
    rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000
    bits [0x1a]: 16 24 32
    formats [0x5]: PCM AC3
  Power states:  D0 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x04 [Audio Output] wcaps 0x6611: 8-Channels Digital
  Converter: stream=0, channel=0
  Digital: Enabled KAE
  Digital category: 0x0
  IEC Coding Type: 0x0
  PCM:
    rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000
    bits [0x1a]: 16 24 32
    formats [0x5]: PCM AC3
  Power states:  D0 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x05 [Pin Complex] wcaps 0x40778d: 8-Channels Digital Amp-Out CP
  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-Out vals:  [0x00 0x00]
  Pincap 0x0b000094: OUT Detect HBR HDMI DP
  Pin Default 0x18560010: [Jack] Digital Out at Int HDMI
    Conn = Digital, Color = Unknown
    DefAssociation = 0x1, Sequence = 0x0
  Pin-ctls: 0x00:
  Unsolicited: tag=00, enabled=0
  Power states:  D0 D3 EPSS
  Power: setting=D0, actual=D0
  Devices: 0
  Connection: 0
  In-driver Connection: 3
     0x02 0x03 0x04
Node 0x06 [Pin Complex] wcaps 0x40778d: 8-Channels Digital Amp-Out CP
  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-Out vals:  [0x00 0x00]
  Pincap 0x0b000094: OUT Detect HBR HDMI DP
  Pin Default 0x18560010: [Jack] Digital Out at Int HDMI
    Conn = Digital, Color = Unknown
    DefAssociation = 0x1, Sequence = 0x0
  Pin-ctls: 0x00:
  Unsolicited: tag=00, enabled=0
  Power states:  D0 D3 EPSS
  Power: setting=D0, actual=D0
  Devices: 0
  Connection: 0
  In-driver Connection: 3
     0x02 0x03 0x04
Node 0x07 [Pin Complex] wcaps 0x40778d: 8-Channels Digital Amp-Out CP
  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-Out vals:  [0x00 0x00]
  Pincap 0x0b000094: OUT Detect HBR HDMI DP
  Pin Default 0x18560010: [Jack] Digital Out at Int HDMI
    Conn = Digital, Color = Unknown
    DefAssociation = 0x1, Sequence = 0x0
  Pin-ctls: 0x00:
  Unsolicited: tag=00, enabled=0
  Power states:  D0 D3 EPSS
  Power: setting=D0, actual=D0
  Devices: 0
  Connection: 0
  In-driver Connection: 3
     0x02 0x03 0x04
Node 0x08 [Vendor Defined Widget] wcaps 0xf00000: Mono
--endcollapse--


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

crw-rw----+ 1 root audio 116,  2 Aug  4 02:46 /dev/snd/controlC0
crw-rw----+ 1 root audio 116, 11 Aug  4 02:46 /dev/snd/hwC0D0
crw-rw----+ 1 root audio 116, 12 Aug  4 02:46 /dev/snd/hwC0D2
crw-rw----+ 1 root audio 116,  4 Aug  4 03:36 /dev/snd/pcmC0D0c
crw-rw----+ 1 root audio 116,  3 Aug  4 03:53 /dev/snd/pcmC0D0p
crw-rw----+ 1 root audio 116, 10 Aug  4 02:46 /dev/snd/pcmC0D10p
crw-rw----+ 1 root audio 116,  5 Aug  4 02:46 /dev/snd/pcmC0D2c
crw-rw----+ 1 root audio 116,  6 Aug  4 02:46 /dev/snd/pcmC0D3p
crw-rw----+ 1 root audio 116,  7 Aug  4 02:46 /dev/snd/pcmC0D7p
crw-rw----+ 1 root audio 116,  8 Aug  4 02:46 /dev/snd/pcmC0D8p
crw-rw----+ 1 root audio 116,  9 Aug  4 02:46 /dev/snd/pcmC0D9p
crw-rw----+ 1 root audio 116,  1 Aug  4 02:46 /dev/snd/seq
crw-rw----+ 1 root audio 116, 33 Aug  4 02:46 /dev/snd/timer

/dev/snd/by-path:
total 0
drwxr-xr-x 2 root root  60 Aug  4 02:46 .
drwxr-xr-x 3 root root 320 Aug  4 02:46 ..
lrwxrwxrwx 1 root root  12 Aug  4 02:46 pci-0000:00:1f.3 -> ../controlC0


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

APLAY

**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: Generic Analog [Generic Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 9: HDMI 3 [HDMI 3]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 10: HDMI 4 [HDMI 4]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

ARECORD

**** List of CAPTURE Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: Generic Analog [Generic Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 2: Generic Alt Analog [Generic Alt Analog]
  Subdevices: 7/7
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6

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

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

Card hw:0 'PCH'/'HDA Intel PCH at 0x92820000 irq 53'
  Mixer name	: 'Cirrus Logic Generic'
  Components	: 'HDA:10138409,106b3300,00100100 HDA:8086280b,80860101,00100000'
  Controls      : 50
  Simple ctrls  : 6
Simple mixer control 'PCM',0
  Capabilities: pvolume
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 255
  Mono:
  Front Left: Playback 255 [100%] [0.00dB]
  Front Right: Playback 255 [100%] [0.00dB]
Simple mixer control 'IEC958',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'IEC958',1
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
Simple mixer control 'IEC958',2
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
Simple mixer control 'IEC958',3
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
Simple mixer control 'IEC958',4
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]


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

--startcollapse--
state.PCH {
	control.1 {
		iface CARD
		name 'Internal Mic Phantom Jack'
		value true
		comment {
			access read
			type BOOLEAN
			count 1
		}
	}
	control.2 {
		iface CARD
		name 'Mic Phantom Jack'
		value true
		comment {
			access read
			type BOOLEAN
			count 1
		}
	}
	control.3 {
		iface CARD
		name 'Speaker Front Phantom Jack'
		value true
		comment {
			access read
			type BOOLEAN
			count 1
		}
	}
	control.4 {
		iface CARD
		name 'Speaker Surround Phantom Jack'
		value true
		comment {
			access read
			type BOOLEAN
			count 1
		}
	}
	control.5 {
		iface CARD
		name 'Headphone Phantom Jack'
		value true
		comment {
			access read
			type BOOLEAN
			count 1
		}
	}
	control.6 {
		iface PCM
		name 'Playback Channel Map'
		value.0 0
		value.1 0
		value.2 0
		value.3 0
		comment {
			access read
			type INTEGER
			count 4
			range '0 - 36'
		}
	}
	control.7 {
		iface PCM
		name 'Capture Channel Map'
		value.0 0
		value.1 0
		comment {
			access read
			type INTEGER
			count 2
			range '0 - 36'
		}
	}
	control.8 {
		iface PCM
		device 2
		name 'Capture Channel Map'
		value.0 0
		value.1 0
		comment {
			access read
			type INTEGER
			count 2
			range '0 - 36'
		}
	}
	control.9 {
		iface PCM
		device 2
		name 'Capture Channel Map'
		index 1
		value.0 0
		value.1 0
		comment {
			access read
			type INTEGER
			count 2
			range '0 - 36'
		}
	}
	control.10 {
		iface PCM
		device 2
		name 'Capture Channel Map'
		index 2
		value.0 0
		value.1 0
		comment {
			access read
			type INTEGER
			count 2
			range '0 - 36'
		}
	}
	control.11 {
		iface PCM
		device 2
		name 'Capture Channel Map'
		index 3
		value.0 0
		value.1 0
		comment {
			access read
			type INTEGER
			count 2
			range '0 - 36'
		}
	}
	control.12 {
		iface PCM
		device 2
		name 'Capture Channel Map'
		index 4
		value.0 0
		value.1 0
		comment {
			access read
			type INTEGER
			count 2
			range '0 - 36'
		}
	}
	control.13 {
		iface PCM
		device 2
		name 'Capture Channel Map'
		index 5
		value.0 0
		value.1 0
		comment {
			access read
			type INTEGER
			count 2
			range '0 - 36'
		}
	}
	control.14 {
		iface PCM
		device 2
		name 'Capture Channel Map'
		index 6
		value.0 0
		value.1 0
		comment {
			access read
			type INTEGER
			count 2
			range '0 - 36'
		}
	}
	control.15 {
		iface CARD
		name 'HDMI/DP,pcm=3 Jack'
		value false
		comment {
			access read
			type BOOLEAN
			count 1
		}
	}
	control.16 {
		iface MIXER
		name 'IEC958 Playback Con Mask'
		value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access read
			type IEC958
			count 1
		}
	}
	control.17 {
		iface MIXER
		name 'IEC958 Playback Pro Mask'
		value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access read
			type IEC958
			count 1
		}
	}
	control.18 {
		iface MIXER
		name 'IEC958 Playback Default'
		value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access 'read write'
			type IEC958
			count 1
		}
	}
	control.19 {
		iface MIXER
		name 'IEC958 Playback Switch'
		value false
		comment {
			access 'read write'
			type BOOLEAN
			count 1
		}
	}
	control.20 {
		iface PCM
		device 3
		name ELD
		value ''
		comment {
			access 'read volatile'
			type BYTES
			count 0
		}
	}
	control.21 {
		iface CARD
		name 'HDMI/DP,pcm=7 Jack'
		value false
		comment {
			access read
			type BOOLEAN
			count 1
		}
	}
	control.22 {
		iface MIXER
		name 'IEC958 Playback Con Mask'
		index 1
		value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access read
			type IEC958
			count 1
		}
	}
	control.23 {
		iface MIXER
		name 'IEC958 Playback Pro Mask'
		index 1
		value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access read
			type IEC958
			count 1
		}
	}
	control.24 {
		iface MIXER
		name 'IEC958 Playback Default'
		index 1
		value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access 'read write'
			type IEC958
			count 1
		}
	}
	control.25 {
		iface MIXER
		name 'IEC958 Playback Switch'
		index 1
		value true
		comment {
			access 'read write'
			type BOOLEAN
			count 1
		}
	}
	control.26 {
		iface PCM
		device 7
		name ELD
		value ''
		comment {
			access 'read volatile'
			type BYTES
			count 0
		}
	}
	control.27 {
		iface CARD
		name 'HDMI/DP,pcm=8 Jack'
		value false
		comment {
			access read
			type BOOLEAN
			count 1
		}
	}
	control.28 {
		iface MIXER
		name 'IEC958 Playback Con Mask'
		index 2
		value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access read
			type IEC958
			count 1
		}
	}
	control.29 {
		iface MIXER
		name 'IEC958 Playback Pro Mask'
		index 2
		value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access read
			type IEC958
			count 1
		}
	}
	control.30 {
		iface MIXER
		name 'IEC958 Playback Default'
		index 2
		value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access 'read write'
			type IEC958
			count 1
		}
	}
	control.31 {
		iface MIXER
		name 'IEC958 Playback Switch'
		index 2
		value true
		comment {
			access 'read write'
			type BOOLEAN
			count 1
		}
	}
	control.32 {
		iface PCM
		device 8
		name ELD
		value ''
		comment {
			access 'read volatile'
			type BYTES
			count 0
		}
	}
	control.33 {
		iface CARD
		name 'HDMI/DP,pcm=9 Jack'
		value false
		comment {
			access read
			type BOOLEAN
			count 1
		}
	}
	control.34 {
		iface MIXER
		name 'IEC958 Playback Con Mask'
		index 3
		value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access read
			type IEC958
			count 1
		}
	}
	control.35 {
		iface MIXER
		name 'IEC958 Playback Pro Mask'
		index 3
		value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access read
			type IEC958
			count 1
		}
	}
	control.36 {
		iface MIXER
		name 'IEC958 Playback Default'
		index 3
		value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access 'read write'
			type IEC958
			count 1
		}
	}
	control.37 {
		iface MIXER
		name 'IEC958 Playback Switch'
		index 3
		value true
		comment {
			access 'read write'
			type BOOLEAN
			count 1
		}
	}
	control.38 {
		iface PCM
		device 9
		name ELD
		value ''
		comment {
			access 'read volatile'
			type BYTES
			count 0
		}
	}
	control.39 {
		iface CARD
		name 'HDMI/DP,pcm=10 Jack'
		value false
		comment {
			access read
			type BOOLEAN
			count 1
		}
	}
	control.40 {
		iface MIXER
		name 'IEC958 Playback Con Mask'
		index 4
		value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access read
			type IEC958
			count 1
		}
	}
	control.41 {
		iface MIXER
		name 'IEC958 Playback Pro Mask'
		index 4
		value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access read
			type IEC958
			count 1
		}
	}
	control.42 {
		iface MIXER
		name 'IEC958 Playback Default'
		index 4
		value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access 'read write'
			type IEC958
			count 1
		}
	}
	control.43 {
		iface MIXER
		name 'IEC958 Playback Switch'
		index 4
		value true
		comment {
			access 'read write'
			type BOOLEAN
			count 1
		}
	}
	control.44 {
		iface PCM
		device 10
		name ELD
		value ''
		comment {
			access 'read volatile'
			type BYTES
			count 0
		}
	}
	control.45 {
		iface PCM
		device 3
		name 'Playback Channel Map'
		value.0 0
		value.1 0
		value.2 0
		value.3 0
		value.4 0
		value.5 0
		value.6 0
		value.7 0
		comment {
			access 'read write'
			type INTEGER
			count 8
			range '0 - 36'
		}
	}
	control.46 {
		iface PCM
		device 7
		name 'Playback Channel Map'
		value.0 0
		value.1 0
		value.2 0
		value.3 0
		value.4 0
		value.5 0
		value.6 0
		value.7 0
		comment {
			access 'read write'
			type INTEGER
			count 8
			range '0 - 36'
		}
	}
	control.47 {
		iface PCM
		device 8
		name 'Playback Channel Map'
		value.0 0
		value.1 0
		value.2 0
		value.3 0
		value.4 0
		value.5 0
		value.6 0
		value.7 0
		comment {
			access 'read write'
			type INTEGER
			count 8
			range '0 - 36'
		}
	}
	control.48 {
		iface PCM
		device 9
		name 'Playback Channel Map'
		value.0 0
		value.1 0
		value.2 0
		value.3 0
		value.4 0
		value.5 0
		value.6 0
		value.7 0
		comment {
			access 'read write'
			type INTEGER
			count 8
			range '0 - 36'
		}
	}
	control.49 {
		iface PCM
		device 10
		name 'Playback Channel Map'
		value.0 0
		value.1 0
		value.2 0
		value.3 0
		value.4 0
		value.5 0
		value.6 0
		value.7 0
		comment {
			access 'read write'
			type INTEGER
			count 8
			range '0 - 36'
		}
	}
	control.50 {
		iface MIXER
		name 'PCM Playback Volume'
		value.0 255
		value.1 255
		comment {
			access 'read write user'
			type INTEGER
			count 2
			range '0 - 255'
			tlv '0000000100000008ffffec1400000014'
			dbmin -5100
			dbmax 0
			dbvalue.0 0
			dbvalue.1 0
		}
	}
}
--endcollapse--


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

Module
applespi
bnep
nls_iso8859_1
snd_soc_skl
snd_soc_skl_ipc
snd_hda_ext_core
intel_rapl
x86_pkg_temp_thermal
snd_soc_sst_dsp
intel_powerclamp
snd_soc_sst_ipc
coretemp
snd_soc_acpi
snd_soc_core
kvm_intel
snd_compress
ac97_bus
applesmc
brcmfmac
8250_dw
snd_pcm_dmaengine
input_polldev
kvm
snd_hda_codec_hdmi
snd_hda_codec_generic
spi_pxa2xx_platform
brcmutil
snd_hda_intel
snd_hda_codec
snd_hda_core
snd_hwdep
irqbypass
joydev
bdc_pci
input_leds
snd_pcm
intel_cstate
intel_rapl_perf
snd_seq_midi
snd_seq_midi_event
cfg80211
snd_rawmidi
hci_uart
btbcm
btqca
snd_seq
snd_seq_device
snd_timer
btintel
bluetooth
sbs
idma64
virt_dma
ecdh_generic
sbshc
acpi_als
kfifo_buf
industrialio
snd
shpchp
intel_lpss_pci
intel_lpss
mei_me
apple_bl
mei
soundcore
mac_hid
sch_fq_codel
parport_pc
ppdev
lp
parport
ip_tables
x_tables
autofs4
algif_skcipher
af_alg
dm_crypt
hid_generic
usbhid
hid
uas
usb_storage
i915
crct10dif_pclmul
crc32_pclmul
ghash_clmulni_intel
pcbc
i2c_algo_bit
drm_kms_helper
syscopyarea
sysfillrect
sysimgblt
fb_sys_fops
aesni_intel
aes_x86_64
crypto_simd
glue_helper
cryptd
nvme
drm
thunderbolt
nvme_core
video


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

/sys/class/sound/hwC0D0/init_pin_configs:
0x24 0x90100110
0x25 0x90100111
0x26 0x400000f0
0x27 0x400000f0
0x28 0x400000f0
0x29 0x400000f0
0x2a 0x400000f0
0x2b 0x400000f0
0x2c 0x002b4020
0x2d 0x400000f0
0x2e 0x400000f0
0x2f 0x400000f0
0x30 0x400000f0
0x31 0x400000f0
0x32 0x400000f0
0x33 0x400000f0
0x34 0x400000f0
0x35 0x400000f0
0x36 0x400000f0
0x37 0x400000f0
0x38 0x400000f0
0x39 0x400000f0
0x3a 0x400000f0
0x3b 0x400000f0
0x3c 0x00ab9030
0x3d 0x400000f0
0x3e 0x400000f0
0x3f 0x400000f0
0x40 0x400000f0
0x41 0x400000f0
0x42 0x400000f0
0x43 0x400000f0
0x44 0xa0a60100
0x45 0x400000f0

/sys/class/sound/hwC0D0/driver_pin_configs:

/sys/class/sound/hwC0D0/user_pin_configs:
0x24 0x90100080
0x25 0x90100082
0x26 0x400000f0
0x27 0x400000f0
0x28 0x400000f0
0x29 0x400000f0
0x2a 0x400000f0
0x2b 0x400000f0
0x2c 0x042b20f0
0x2d 0x400000f0
0x2e 0x400000f0
0x2f 0x400000f0
0x30 0x400000f0
0x31 0x400000f0
0x32 0x400000f0
0x33 0x400000f0
0x34 0x400000f0
0x35 0x400000f0
0x36 0x400000f0
0x37 0x400000f0
0x38 0x400000f0
0x39 0x400000f0
0x3a 0x400000f0
0x3b 0x400000f0
0x3c 0x04ab2050
0x3d 0x400000f0
0x3e 0x400000f0
0x3f 0x400000f0
0x40 0x400000f0
0x41 0x400000f0
0x42 0x400000f0
0x43 0x400000f0
0x44 0x90a00070
0x45 0x400000f0

/sys/class/sound/hwC0D0/init_verbs:

/sys/class/sound/hwC0D0/hints:

/sys/class/sound/hwC0D2/init_pin_configs:
0x05 0x18560010
0x06 0x18560010
0x07 0x18560010

/sys/class/sound/hwC0D2/driver_pin_configs:

/sys/class/sound/hwC0D2/user_pin_configs:

/sys/class/sound/hwC0D2/init_verbs:

/sys/class/sound/hwC0D2/hints:


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

[    2.972638] sd 0:0:0:0: [sda] 250085376 512-byte logical blocks: (128 GB/119 GiB)
[    2.972672] thunderbolt 0000:06:00.0:  Port 8: 8086:15d3 (Revision: 6, TB Version: 1, Type: DP/HDMI (0xe0102))
[    2.972673] thunderbolt 0000:06:00.0:   Max hop id (in/out): 9/9
--
[    2.972674] thunderbolt 0000:06:00.0:   NFC Credits: 0x800000
[    2.972800] thunderbolt 0000:06:00.0:  Port 9: 8086:15d3 (Revision: 6, TB Version: 1, Type: DP/HDMI (0xe0101))
[    2.972800] thunderbolt 0000:06:00.0:   Max hop id (in/out): 9/9
--
[    2.972840] sd 0:0:0:0: [sda] Mode Sense: 43 00 00 00
[    2.972927] thunderbolt 0000:06:00.0:  Port 10: 8086:15d3 (Revision: 6, TB Version: 1, Type: DP/HDMI (0xe0101))
[    2.972928] thunderbolt 0000:06:00.0:   Max hop id (in/out): 9/9
--
[    2.973052] sd 0:0:0:0: Attached scsi generic sg0 type 0
[    2.973079] thunderbolt 0000:06:00.0:  Port 11: 8086:15d3 (Revision: 6, TB Version: 1, Type: DP/HDMI (0xe0102))
[    2.973079] thunderbolt 0000:06:00.0:   Max hop id (in/out): 9/9
--
[   12.965541] WARNING: CPU: 2 PID: 421 at /build/linux-5s7Xkn/linux-4.15.0/drivers/i2c/i2c-core-base.c:1339 i2c_add_numbered_adapter+0xc6/0xe0
[   12.965542] Modules linked in: idma64 virt_dma ecdh_generic sbshc acpi_als kfifo_buf fjes(-) industrialio snd shpchp(+) intel_lpss_pci(+) intel_lpss mei_me apple_bl mei soundcore mac_hid sch_fq_codel parport_pc ppdev lp parport ip_tables x_tables autofs4 algif_skcipher af_alg dm_crypt hid_generic usbhid hid uas usb_storage i915 crct10dif_pclmul crc32_pclmul ghash_clmulni_intel pcbc i2c_algo_bit drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops aesni_intel aes_x86_64 crypto_simd glue_helper cryptd nvme drm thunderbolt nvme_core video
[   12.965567] CPU: 2 PID: 421 Comm: systemd-udevd Not tainted 4.15.0-20-generic #21-Ubuntu
--
[   12.984332] WARNING: CPU: 1 PID: 421 at /build/linux-5s7Xkn/linux-4.15.0/drivers/i2c/i2c-core-base.c:1339 i2c_add_numbered_adapter+0xc6/0xe0
[   12.984333] Modules linked in: snd_seq_device snd_timer btintel bluetooth sbs(+) idma64 virt_dma ecdh_generic sbshc acpi_als kfifo_buf industrialio snd shpchp(+) intel_lpss_pci(+) intel_lpss mei_me apple_bl mei soundcore mac_hid sch_fq_codel parport_pc ppdev lp parport ip_tables x_tables autofs4 algif_skcipher af_alg dm_crypt hid_generic usbhid hid uas usb_storage i915 crct10dif_pclmul crc32_pclmul ghash_clmulni_intel pcbc i2c_algo_bit drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops aesni_intel aes_x86_64 crypto_simd glue_helper cryptd nvme drm thunderbolt nvme_core video
[   12.984363] CPU: 1 PID: 421 Comm: systemd-udevd Tainted: G        W        4.15.0-20-generic #21-Ubuntu
--
[   13.093004] RAPL PMU: hw unit of domain psys 2^-14 Joules
[   13.132810] snd_hda_intel 0000:00:1f.3: Applying patch firmware 'hda-jack-retask.fw'
[   13.133963] snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
[   13.217582] (NULL device *): hwmon_device_register() is deprecated. Please convert the driver to use hwmon_device_register_with_info().
[   13.217597] ACPI: Smart Battery System [SBS0]: Battery Slot [BAT0] (battery present)
[   13.254397] snd_hda_codec_generic hdaudioC0D0: autoconfig for Generic: line_outs=2 (0x24/0x25/0x0/0x0/0x0) type:speaker
[   13.254398] snd_hda_codec_generic hdaudioC0D0:    speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
[   13.254400] snd_hda_codec_generic hdaudioC0D0:    hp_outs=1 (0x2c/0x0/0x0/0x0/0x0)
[   13.254400] snd_hda_codec_generic hdaudioC0D0:    mono: mono_out=0x0
[   13.254401] snd_hda_codec_generic hdaudioC0D0:    inputs:
[   13.254402] snd_hda_codec_generic hdaudioC0D0:      Internal Mic=0x44
[   13.254403] snd_hda_codec_generic hdaudioC0D0:      Mic=0x3c
[   13.272177] input: HDA Intel PCH HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input8
[   13.272207] input: HDA Intel PCH HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input9
[   13.272232] input: HDA Intel PCH HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input10
[   13.272258] input: HDA Intel PCH HDMI/DP,pcm=9 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input11
[   13.272282] input: HDA Intel PCH HDMI/DP,pcm=10 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input12
[   13.289140] usbcore: registered new interface driver brcmfmac



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



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

* Re: CS8409 Macbook Pro 2016 2017
  2018-08-04  2:07 CS8409 Macbook Pro 2016 2017 David Ulricht
  2018-08-04  2:18 ` David Ulricht
@ 2018-08-04  6:48 ` Takashi Iwai
       [not found]   ` <CALbf9Mw=Y5ddFZDZQ4_mfYCHxKb9XFHN3v5ge0JaTca7NLMM7A@mail.gmail.com>
  1 sibling, 1 reply; 17+ messages in thread
From: Takashi Iwai @ 2018-08-04  6:48 UTC (permalink / raw)
  To: David Ulricht; +Cc: alsa-devel

On Sat, 04 Aug 2018 04:07:43 +0200,
David Ulricht wrote:
> 
> Hello,
> 
> Macbook pro models containing CS8409 for sure are:
> MBP131 MBP141.I own MBP 14,1 e.g. 2017 model.
> 
> I'm attaching working sound configuration from Windows 10 registry (note
> that the cs420x might need to be ignored or might be important i don't
> really know). I believe what is really used is in the PinConfigOverride
> section.

Comparing between BIOS default (init_pin_cfg in alsa-info.sh output)
and your override (user_pin_cfg), there aren't so many changes.
All changes are pretty minor, and I guess it won't influence on the
driver behavior.

> Interesting thing to note is that sound in MacOS is much louder than
> Bootcamp Windows, would be nice to hear how loud is on linux.

This is possibly with some vendor-specific GPIO or COEF verbs.
Or it's some direct I2C control.  The INI file mentions it.
And that's above HD-audio driver's responsibility.

> I did convert PinConfigOverride HEX strings to [pincfg] format in the
> attached hda-jack-retask.fw thanks to Takashi's guidance.
> 
> I'm attaching also alsamixer ASCII. Only PCM, no Master ?

It's because the codec chip has no output amplifier at all.
So there can be neither output volume nor mute control on this chip.

> What I have tried is execute:
> hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK 0x@@
> hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIRECTION 0x@@
> hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x@@
> putting @@ from 0x00 to 0x50

There are eight GPIOs, so you'd need to test each bit, i.e. 0x01,
0x02, 0x04, 0x08, ... 0x80.

And how is the current situation?  You can't play *and* record
anything from any inputs / outputs?


Takashi

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

* Re: CS8409 Macbook Pro 2016 2017
       [not found]   ` <CALbf9Mw=Y5ddFZDZQ4_mfYCHxKb9XFHN3v5ge0JaTca7NLMM7A@mail.gmail.com>
@ 2018-08-04 16:26     ` Takashi Iwai
       [not found]       ` <CALbf9MwN4pEk26R9c2-UMxzvLXQ3OOBTcqgdSvXeFb-dw7-Wnw@mail.gmail.com>
  0 siblings, 1 reply; 17+ messages in thread
From: Takashi Iwai @ 2018-08-04 16:26 UTC (permalink / raw)
  To: David Ulricht; +Cc: alsa-devel

On Sat, 04 Aug 2018 17:44:59 +0200,
David Ulricht wrote:
> 
> I used the following script running as root to verify the 8 GPIOs while
> playing long youtube video,
> I have running pulseaudio meanwhile and not restarting it, i think its okay
> like that people on the ubuntu forums say that after using
> hda-verb and setting a gpio active immediately sound appears, so i guess
> there is no need to restart pulseaudio.
> I have done the same test with headphones in.
> No sound in both scenarios, no input no output detected (i'm watching
> pavucontrol for input detection).

This codec is fairly unique and doesn't provide the standard jack
detection on each pin.  Maybe it's via either GPIO or any other
method.  You can try to read GPIO pins (set as input) to see whether
any of them corresponds to the jack detection, for example.


Takashi

> 
> #!/usr/bin/env python3
> import os,time
> for x in range(0,256):
>     mhex=("0x%0.2X" % x)
>     os.system("hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK "+mhex)
>     os.system("hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIRECTION "+mhex)
>     os.system("hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA "+mhex)
>     time.sleep(3)
> 
> Meanwhile script is running I'm watching  /proc/asound/card0/codec#0 and
> IO[0-7] changes its configuration,
> in comparison Joel Krahemann in his scripts is changing the hex right after
> /dev/snd/hwC0D0 (0x01) e.g. i dont think he is modifiying the GPIOs
> correctly.
> 
> I found the following post:
> https://forum.manjaro.org/t/sound-not-working-on-a-2017-imac-27-5k-retina/43638
> According to https://bugzilla.kernel.org/show_bug.cgi?id=195671 iMac27 has
> a similar soundcard.
> How can i setup with command line or any other utility:
> """select “off” in the top menu that propose to setup the Digital
> Surround"""
> this is some setting in xfce4-mixer package which is not available for
> ubuntu since 2 LTS versions behind. I tried current Manjaro and couldn't
> find this setting in audio mixer of xfce4 either.
> 
> On Sat, Aug 4, 2018 at 9:48 AM, Takashi Iwai <tiwai@suse.de> wrote:
> 
> > On Sat, 04 Aug 2018 04:07:43 +0200,
> > David Ulricht wrote:
> > >
> > > Hello,
> > >
> > > Macbook pro models containing CS8409 for sure are:
> > > MBP131 MBP141.I own MBP 14,1 e.g. 2017 model.
> > >
> > > I'm attaching working sound configuration from Windows 10 registry (note
> > > that the cs420x might need to be ignored or might be important i don't
> > > really know). I believe what is really used is in the PinConfigOverride
> > > section.
> >
> > Comparing between BIOS default (init_pin_cfg in alsa-info.sh output)
> > and your override (user_pin_cfg), there aren't so many changes.
> > All changes are pretty minor, and I guess it won't influence on the
> > driver behavior.
> >
> > > Interesting thing to note is that sound in MacOS is much louder than
> > > Bootcamp Windows, would be nice to hear how loud is on linux.
> >
> > This is possibly with some vendor-specific GPIO or COEF verbs.
> > Or it's some direct I2C control.  The INI file mentions it.
> > And that's above HD-audio driver's responsibility.
> >
> > > I did convert PinConfigOverride HEX strings to [pincfg] format in the
> > > attached hda-jack-retask.fw thanks to Takashi's guidance.
> > >
> > > I'm attaching also alsamixer ASCII. Only PCM, no Master ?
> >
> > It's because the codec chip has no output amplifier at all.
> > So there can be neither output volume nor mute control on this chip.
> >
> > > What I have tried is execute:
> > > hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK 0x@@
> > > hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIRECTION 0x@@
> > > hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x@@
> > > putting @@ from 0x00 to 0x50
> >
> > There are eight GPIOs, so you'd need to test each bit, i.e. 0x01,
> > 0x02, 0x04, 0x08, ... 0x80.
> >
> > And how is the current situation?  You can't play *and* record
> > anything from any inputs / outputs?
> >
> >
> > Takashi
> >
> [2  <text/html; UTF-8 (quoted-printable)>]
> 
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

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

* Re: CS8409 Macbook Pro 2016 2017
       [not found]       ` <CALbf9MwN4pEk26R9c2-UMxzvLXQ3OOBTcqgdSvXeFb-dw7-Wnw@mail.gmail.com>
@ 2018-08-04 17:13         ` Takashi Iwai
  2018-08-04 20:30           ` David Ulricht
  0 siblings, 1 reply; 17+ messages in thread
From: Takashi Iwai @ 2018-08-04 17:13 UTC (permalink / raw)
  To: David Ulricht; +Cc: alsa-devel

Please don't drop Cc to ML.  Also avoid top-posting.

On Sat, 04 Aug 2018 19:02:53 +0200,
David Ulricht wrote:
> 
> How can I do that ?
> I tried verifying if /proc/asound/card0/codec#0 changes when i put
> handphone jack in and out with "diff ver1 ver2" and it is exactly the same.

Just do for each bit as you tried for GPIO output.  In this case, the
direction bit should be different (set 0), and you need to read.

> 
> One strange thing I note is hda-jack-retask.fw contains:
> [pincfg]
> 0x24 0x90100080
> 0x25 0x90100082
> I have 0x90100080 for 0x24 but in /proc/asound/card0/codec#0 :
> Node 0x24 [Pin Complex] wcaps 0x400101: Stereo
>   Pincap 0x00000010: OUT
>   Pin Default 0x90100110: [Fixed] Speaker at Int N/A
>     Conn = Unknown, Color = Unknown
>     DefAssociation = 0x1, Sequence = 0x0
>     Misc = NO_PRESENCE
>   Pin-ctls: 0x40: OUT
>   Connection: 1
>      0x02
> 
> Shouldn't "Pin Default 0x90100110" be 0x90100080 after applying the patch ?

No, the codec config value itself won't change, the driver uses the
given value only internally.


Takashi

> I can see that  Applying patch firmware 'hda-jack-retask.fw' is before
> hdaudioC0D0: autoconfig for Generic: line_outs=2 (0x24/0x25/0x0/0x0/0x0)
> type:speaker
> in dmesg and this worries me, maybe the pins are overriden by generic
> cirrus logic ?
> 
> 
> On Sat, Aug 4, 2018 at 7:26 PM, Takashi Iwai <tiwai@suse.de> wrote:
> 
> > On Sat, 04 Aug 2018 17:44:59 +0200,
> > David Ulricht wrote:
> > >
> > > I used the following script running as root to verify the 8 GPIOs while
> > > playing long youtube video,
> > > I have running pulseaudio meanwhile and not restarting it, i think its
> > okay
> > > like that people on the ubuntu forums say that after using
> > > hda-verb and setting a gpio active immediately sound appears, so i guess
> > > there is no need to restart pulseaudio.
> > > I have done the same test with headphones in.
> > > No sound in both scenarios, no input no output detected (i'm watching
> > > pavucontrol for input detection).
> >
> > This codec is fairly unique and doesn't provide the standard jack
> > detection on each pin.  Maybe it's via either GPIO or any other
> > method.  You can try to read GPIO pins (set as input) to see whether
> > any of them corresponds to the jack detection, for example.
> >
> >
> > Takashi
> >
> > >
> > > #!/usr/bin/env python3
> > > import os,time
> > > for x in range(0,256):
> > >     mhex=("0x%0.2X" % x)
> > >     os.system("hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK "+mhex)
> > >     os.system("hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIRECTION "+mhex)
> > >     os.system("hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA "+mhex)
> > >     time.sleep(3)
> > >
> > > Meanwhile script is running I'm watching  /proc/asound/card0/codec#0 and
> > > IO[0-7] changes its configuration,
> > > in comparison Joel Krahemann in his scripts is changing the hex right
> > after
> > > /dev/snd/hwC0D0 (0x01) e.g. i dont think he is modifiying the GPIOs
> > > correctly.
> > >
> > > I found the following post:
> > > https://forum.manjaro.org/t/sound-not-working-on-a-2017-
> > imac-27-5k-retina/43638
> > > According to https://bugzilla.kernel.org/show_bug.cgi?id=195671 iMac27
> > has
> > > a similar soundcard.
> > > How can i setup with command line or any other utility:
> > > """select “off” in the top menu that propose to setup the Digital
> > > Surround"""
> > > this is some setting in xfce4-mixer package which is not available for
> > > ubuntu since 2 LTS versions behind. I tried current Manjaro and couldn't
> > > find this setting in audio mixer of xfce4 either.
> > >
> > > On Sat, Aug 4, 2018 at 9:48 AM, Takashi Iwai <tiwai@suse.de> wrote:
> > >
> > > > On Sat, 04 Aug 2018 04:07:43 +0200,
> > > > David Ulricht wrote:
> > > > >
> > > > > Hello,
> > > > >
> > > > > Macbook pro models containing CS8409 for sure are:
> > > > > MBP131 MBP141.I own MBP 14,1 e.g. 2017 model.
> > > > >
> > > > > I'm attaching working sound configuration from Windows 10 registry
> > (note
> > > > > that the cs420x might need to be ignored or might be important i
> > don't
> > > > > really know). I believe what is really used is in the
> > PinConfigOverride
> > > > > section.
> > > >
> > > > Comparing between BIOS default (init_pin_cfg in alsa-info.sh output)
> > > > and your override (user_pin_cfg), there aren't so many changes.
> > > > All changes are pretty minor, and I guess it won't influence on the
> > > > driver behavior.
> > > >
> > > > > Interesting thing to note is that sound in MacOS is much louder than
> > > > > Bootcamp Windows, would be nice to hear how loud is on linux.
> > > >
> > > > This is possibly with some vendor-specific GPIO or COEF verbs.
> > > > Or it's some direct I2C control.  The INI file mentions it.
> > > > And that's above HD-audio driver's responsibility.
> > > >
> > > > > I did convert PinConfigOverride HEX strings to [pincfg] format in the
> > > > > attached hda-jack-retask.fw thanks to Takashi's guidance.
> > > > >
> > > > > I'm attaching also alsamixer ASCII. Only PCM, no Master ?
> > > >
> > > > It's because the codec chip has no output amplifier at all.
> > > > So there can be neither output volume nor mute control on this chip.
> > > >
> > > > > What I have tried is execute:
> > > > > hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK 0x@@
> > > > > hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIRECTION 0x@@
> > > > > hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x@@
> > > > > putting @@ from 0x00 to 0x50
> > > >
> > > > There are eight GPIOs, so you'd need to test each bit, i.e. 0x01,
> > > > 0x02, 0x04, 0x08, ... 0x80.
> > > >
> > > > And how is the current situation?  You can't play *and* record
> > > > anything from any inputs / outputs?
> > > >
> > > >
> > > > Takashi
> > > >
> > > [2  <text/html; UTF-8 (quoted-printable)>]
> > >
> >
> [2  <text/html; UTF-8 (quoted-printable)>]
> 
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

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

* Re: CS8409 Macbook Pro 2016 2017
  2018-08-04 17:13         ` Takashi Iwai
@ 2018-08-04 20:30           ` David Ulricht
  2018-08-05 18:05             ` Takashi Iwai
  2018-08-05 19:32             ` Lukas Wunner
  0 siblings, 2 replies; 17+ messages in thread
From: David Ulricht @ 2018-08-04 20:30 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel

 Excuse me for dropping CC..

I set the direction bit to 0 and used get_gpio_data and get only:  value =
0x0
also checking "IO[0-7] data=0-1" value in  /proc/asound/card0/codec#0 shows
no changes at all when insert audio jack.

I tried also booting with "acpi=off". I tried older kernels from few years
ago. Nothing helps.
I wonder if there is some tool for Windows that I use to debug and see what
is sent to the codec so i replicate in Linux with hda-verb?

What am I doing wrong ?  Is the below script correct for testing the GPIOs ?
for x in range(0,256):
    mhex=("0x%0.2X" % x)
    os.system("hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK "+mhex)
    os.system("hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIRECTION "+mhex)
    os.system("hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA "+mhex)
I think its not correct gpio_direction i guess could be only 0 or 1?
What happens when I pass a different value to data than 0/1 ? this should
also not be correct.
I guess 0x01 is the NID value is it okay to use 0x01 only or I have to pass
other values to it also ?


On Sat, Aug 4, 2018 at 8:13 PM, Takashi Iwai <tiwai@suse.de> wrote:

> Please don't drop Cc to ML.  Also avoid top-posting.
>
> On Sat, 04 Aug 2018 19:02:53 +0200,
> David Ulricht wrote:
> >
> > How can I do that ?
> > I tried verifying if /proc/asound/card0/codec#0 changes when i put
> > handphone jack in and out with "diff ver1 ver2" and it is exactly the
> same.
>
> Just do for each bit as you tried for GPIO output.  In this case, the
> direction bit should be different (set 0), and you need to read.
>
> >
> > One strange thing I note is hda-jack-retask.fw contains:
> > [pincfg]
> > 0x24 0x90100080
> > 0x25 0x90100082
> > I have 0x90100080 for 0x24 but in /proc/asound/card0/codec#0 :
> > Node 0x24 [Pin Complex] wcaps 0x400101: Stereo
> >   Pincap 0x00000010: OUT
> >   Pin Default 0x90100110: [Fixed] Speaker at Int N/A
> >     Conn = Unknown, Color = Unknown
> >     DefAssociation = 0x1, Sequence = 0x0
> >     Misc = NO_PRESENCE
> >   Pin-ctls: 0x40: OUT
> >   Connection: 1
> >      0x02
> >
> > Shouldn't "Pin Default 0x90100110" be 0x90100080 after applying the
> patch ?
>
> No, the codec config value itself won't change, the driver uses the
> given value only internally.
>
>
> Takashi
>
> > I can see that  Applying patch firmware 'hda-jack-retask.fw' is before
> > hdaudioC0D0: autoconfig for Generic: line_outs=2 (0x24/0x25/0x0/0x0/0x0)
> > type:speaker
> > in dmesg and this worries me, maybe the pins are overriden by generic
> > cirrus logic ?
> >
> >
> > On Sat, Aug 4, 2018 at 7:26 PM, Takashi Iwai <tiwai@suse.de> wrote:
> >
> > > On Sat, 04 Aug 2018 17:44:59 +0200,
> > > David Ulricht wrote:
> > > >
> > > > I used the following script running as root to verify the 8 GPIOs
> while
> > > > playing long youtube video,
> > > > I have running pulseaudio meanwhile and not restarting it, i think
> its
> > > okay
> > > > like that people on the ubuntu forums say that after using
> > > > hda-verb and setting a gpio active immediately sound appears, so i
> guess
> > > > there is no need to restart pulseaudio.
> > > > I have done the same test with headphones in.
> > > > No sound in both scenarios, no input no output detected (i'm watching
> > > > pavucontrol for input detection).
> > >
> > > This codec is fairly unique and doesn't provide the standard jack
> > > detection on each pin.  Maybe it's via either GPIO or any other
> > > method.  You can try to read GPIO pins (set as input) to see whether
> > > any of them corresponds to the jack detection, for example.
> > >
> > >
> > > Takashi
> > >
> > > >
> > > > #!/usr/bin/env python3
> > > > import os,time
> > > > for x in range(0,256):
> > > >     mhex=("0x%0.2X" % x)
> > > >     os.system("hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK "+mhex)
> > > >     os.system("hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIRECTION
> "+mhex)
> > > >     os.system("hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA "+mhex)
> > > >     time.sleep(3)
> > > >
> > > > Meanwhile script is running I'm watching  /proc/asound/card0/codec#0
> and
> > > > IO[0-7] changes its configuration,
> > > > in comparison Joel Krahemann in his scripts is changing the hex right
> > > after
> > > > /dev/snd/hwC0D0 (0x01) e.g. i dont think he is modifiying the GPIOs
> > > > correctly.
> > > >
> > > > I found the following post:
> > > > https://forum.manjaro.org/t/sound-not-working-on-a-2017-
> > > imac-27-5k-retina/43638
> > > > According to https://bugzilla.kernel.org/show_bug.cgi?id=195671
> iMac27
> > > has
> > > > a similar soundcard.
> > > > How can i setup with command line or any other utility:
> > > > """select “off” in the top menu that propose to setup the Digital
> > > > Surround"""
> > > > this is some setting in xfce4-mixer package which is not available
> for
> > > > ubuntu since 2 LTS versions behind. I tried current Manjaro and
> couldn't
> > > > find this setting in audio mixer of xfce4 either.
> > > >
> > > > On Sat, Aug 4, 2018 at 9:48 AM, Takashi Iwai <tiwai@suse.de> wrote:
> > > >
> > > > > On Sat, 04 Aug 2018 04:07:43 +0200,
> > > > > David Ulricht wrote:
> > > > > >
> > > > > > Hello,
> > > > > >
> > > > > > Macbook pro models containing CS8409 for sure are:
> > > > > > MBP131 MBP141.I own MBP 14,1 e.g. 2017 model.
> > > > > >
> > > > > > I'm attaching working sound configuration from Windows 10
> registry
> > > (note
> > > > > > that the cs420x might need to be ignored or might be important i
> > > don't
> > > > > > really know). I believe what is really used is in the
> > > PinConfigOverride
> > > > > > section.
> > > > >
> > > > > Comparing between BIOS default (init_pin_cfg in alsa-info.sh
> output)
> > > > > and your override (user_pin_cfg), there aren't so many changes.
> > > > > All changes are pretty minor, and I guess it won't influence on the
> > > > > driver behavior.
> > > > >
> > > > > > Interesting thing to note is that sound in MacOS is much louder
> than
> > > > > > Bootcamp Windows, would be nice to hear how loud is on linux.
> > > > >
> > > > > This is possibly with some vendor-specific GPIO or COEF verbs.
> > > > > Or it's some direct I2C control.  The INI file mentions it.
> > > > > And that's above HD-audio driver's responsibility.
> > > > >
> > > > > > I did convert PinConfigOverride HEX strings to [pincfg] format
> in the
> > > > > > attached hda-jack-retask.fw thanks to Takashi's guidance.
> > > > > >
> > > > > > I'm attaching also alsamixer ASCII. Only PCM, no Master ?
> > > > >
> > > > > It's because the codec chip has no output amplifier at all.
> > > > > So there can be neither output volume nor mute control on this
> chip.
> > > > >
> > > > > > What I have tried is execute:
> > > > > > hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK 0x@@
> > > > > > hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIRECTION 0x@@
> > > > > > hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x@@
> > > > > > putting @@ from 0x00 to 0x50
> > > > >
> > > > > There are eight GPIOs, so you'd need to test each bit, i.e. 0x01,
> > > > > 0x02, 0x04, 0x08, ... 0x80.
> > > > >
> > > > > And how is the current situation?  You can't play *and* record
> > > > > anything from any inputs / outputs?
> > > > >
> > > > >
> > > > > Takashi
> > > > >
> > > > [2  <text/html; UTF-8 (quoted-printable)>]
> > > >
> > >
> > [2  <text/html; UTF-8 (quoted-printable)>]
> >
>
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

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

* Re: CS8409 Macbook Pro 2016 2017
  2018-08-04 20:30           ` David Ulricht
@ 2018-08-05 18:05             ` Takashi Iwai
  2018-08-05 18:58               ` David Ulricht
  2018-11-16 14:02               ` David Ulricht
  2018-08-05 19:32             ` Lukas Wunner
  1 sibling, 2 replies; 17+ messages in thread
From: Takashi Iwai @ 2018-08-05 18:05 UTC (permalink / raw)
  To: David Ulricht; +Cc: alsa-devel

On Sat, 04 Aug 2018 22:30:29 +0200,
David Ulricht wrote:
> 
>  Excuse me for dropping CC..
> 
> I set the direction bit to 0 and used get_gpio_data and get only:  value =
> 0x0
> also checking "IO[0-7] data=0-1" value in  /proc/asound/card0/codec#0 shows
> no changes at all when insert audio jack.

OK, then it's not about GPIO, something else.
It's hard to know without the datasheet...

> I tried also booting with "acpi=off". I tried older kernels from few years
> ago. Nothing helps.
> I wonder if there is some tool for Windows that I use to debug and see what
> is sent to the codec so i replicate in Linux with hda-verb?

acpi=off wouldn't work at all on modern machines.

> What am I doing wrong ?  Is the below script correct for testing the GPIOs ?
> for x in range(0,256):
>     mhex=("0x%0.2X" % x)
>     os.system("hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK "+mhex)
>     os.system("hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIRECTION "+mhex)
>     os.system("hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA "+mhex)
> I think its not correct gpio_direction i guess could be only 0 or 1?
> What happens when I pass a different value to data than 0/1 ? this should
> also not be correct.
> I guess 0x01 is the NID value is it okay to use 0x01 only or I have to pass
> other values to it also ?

Yes, NID 0x01 is usually the right value, which means AFG.

BTW, I noticed that there is some downstream patch.  Is it the repo
you mentioned earlier?
  https://github.com/joelkraehemann/hda-tool/blob/master/patch_cirrus.c.patch

Did you try that?


Takashi

> On Sat, Aug 4, 2018 at 8:13 PM, Takashi Iwai <tiwai@suse.de> wrote:
> 
> > Please don't drop Cc to ML.  Also avoid top-posting.
> >
> > On Sat, 04 Aug 2018 19:02:53 +0200,
> > David Ulricht wrote:
> > >
> > > How can I do that ?
> > > I tried verifying if /proc/asound/card0/codec#0 changes when i put
> > > handphone jack in and out with "diff ver1 ver2" and it is exactly the
> > same.
> >
> > Just do for each bit as you tried for GPIO output.  In this case, the
> > direction bit should be different (set 0), and you need to read.
> >
> > >
> > > One strange thing I note is hda-jack-retask.fw contains:
> > > [pincfg]
> > > 0x24 0x90100080
> > > 0x25 0x90100082
> > > I have 0x90100080 for 0x24 but in /proc/asound/card0/codec#0 :
> > > Node 0x24 [Pin Complex] wcaps 0x400101: Stereo
> > >   Pincap 0x00000010: OUT
> > >   Pin Default 0x90100110: [Fixed] Speaker at Int N/A
> > >     Conn = Unknown, Color = Unknown
> > >     DefAssociation = 0x1, Sequence = 0x0
> > >     Misc = NO_PRESENCE
> > >   Pin-ctls: 0x40: OUT
> > >   Connection: 1
> > >      0x02
> > >
> > > Shouldn't "Pin Default 0x90100110" be 0x90100080 after applying the
> > patch ?
> >
> > No, the codec config value itself won't change, the driver uses the
> > given value only internally.
> >
> >
> > Takashi
> >
> > > I can see that  Applying patch firmware 'hda-jack-retask.fw' is before
> > > hdaudioC0D0: autoconfig for Generic: line_outs=2 (0x24/0x25/0x0/0x0/0x0)
> > > type:speaker
> > > in dmesg and this worries me, maybe the pins are overriden by generic
> > > cirrus logic ?
> > >
> > >
> > > On Sat, Aug 4, 2018 at 7:26 PM, Takashi Iwai <tiwai@suse.de> wrote:
> > >
> > > > On Sat, 04 Aug 2018 17:44:59 +0200,
> > > > David Ulricht wrote:
> > > > >
> > > > > I used the following script running as root to verify the 8 GPIOs
> > while
> > > > > playing long youtube video,
> > > > > I have running pulseaudio meanwhile and not restarting it, i think
> > its
> > > > okay
> > > > > like that people on the ubuntu forums say that after using
> > > > > hda-verb and setting a gpio active immediately sound appears, so i
> > guess
> > > > > there is no need to restart pulseaudio.
> > > > > I have done the same test with headphones in.
> > > > > No sound in both scenarios, no input no output detected (i'm watching
> > > > > pavucontrol for input detection).
> > > >
> > > > This codec is fairly unique and doesn't provide the standard jack
> > > > detection on each pin.  Maybe it's via either GPIO or any other
> > > > method.  You can try to read GPIO pins (set as input) to see whether
> > > > any of them corresponds to the jack detection, for example.
> > > >
> > > >
> > > > Takashi
> > > >
> > > > >
> > > > > #!/usr/bin/env python3
> > > > > import os,time
> > > > > for x in range(0,256):
> > > > >     mhex=("0x%0.2X" % x)
> > > > >     os.system("hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK "+mhex)
> > > > >     os.system("hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIRECTION
> > "+mhex)
> > > > >     os.system("hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA "+mhex)
> > > > >     time.sleep(3)
> > > > >
> > > > > Meanwhile script is running I'm watching  /proc/asound/card0/codec#0
> > and
> > > > > IO[0-7] changes its configuration,
> > > > > in comparison Joel Krahemann in his scripts is changing the hex right
> > > > after
> > > > > /dev/snd/hwC0D0 (0x01) e.g. i dont think he is modifiying the GPIOs
> > > > > correctly.
> > > > >
> > > > > I found the following post:
> > > > > https://forum.manjaro.org/t/sound-not-working-on-a-2017-
> > > > imac-27-5k-retina/43638
> > > > > According to https://bugzilla.kernel.org/show_bug.cgi?id=195671
> > iMac27
> > > > has
> > > > > a similar soundcard.
> > > > > How can i setup with command line or any other utility:
> > > > > """select “off” in the top menu that propose to setup the Digital
> > > > > Surround"""
> > > > > this is some setting in xfce4-mixer package which is not available
> > for
> > > > > ubuntu since 2 LTS versions behind. I tried current Manjaro and
> > couldn't
> > > > > find this setting in audio mixer of xfce4 either.
> > > > >
> > > > > On Sat, Aug 4, 2018 at 9:48 AM, Takashi Iwai <tiwai@suse.de> wrote:
> > > > >
> > > > > > On Sat, 04 Aug 2018 04:07:43 +0200,
> > > > > > David Ulricht wrote:
> > > > > > >
> > > > > > > Hello,
> > > > > > >
> > > > > > > Macbook pro models containing CS8409 for sure are:
> > > > > > > MBP131 MBP141.I own MBP 14,1 e.g. 2017 model.
> > > > > > >
> > > > > > > I'm attaching working sound configuration from Windows 10
> > registry
> > > > (note
> > > > > > > that the cs420x might need to be ignored or might be important i
> > > > don't
> > > > > > > really know). I believe what is really used is in the
> > > > PinConfigOverride
> > > > > > > section.
> > > > > >
> > > > > > Comparing between BIOS default (init_pin_cfg in alsa-info.sh
> > output)
> > > > > > and your override (user_pin_cfg), there aren't so many changes.
> > > > > > All changes are pretty minor, and I guess it won't influence on the
> > > > > > driver behavior.
> > > > > >
> > > > > > > Interesting thing to note is that sound in MacOS is much louder
> > than
> > > > > > > Bootcamp Windows, would be nice to hear how loud is on linux.
> > > > > >
> > > > > > This is possibly with some vendor-specific GPIO or COEF verbs.
> > > > > > Or it's some direct I2C control.  The INI file mentions it.
> > > > > > And that's above HD-audio driver's responsibility.
> > > > > >
> > > > > > > I did convert PinConfigOverride HEX strings to [pincfg] format
> > in the
> > > > > > > attached hda-jack-retask.fw thanks to Takashi's guidance.
> > > > > > >
> > > > > > > I'm attaching also alsamixer ASCII. Only PCM, no Master ?
> > > > > >
> > > > > > It's because the codec chip has no output amplifier at all.
> > > > > > So there can be neither output volume nor mute control on this
> > chip.
> > > > > >
> > > > > > > What I have tried is execute:
> > > > > > > hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK 0x@@
> > > > > > > hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIRECTION 0x@@
> > > > > > > hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x@@
> > > > > > > putting @@ from 0x00 to 0x50
> > > > > >
> > > > > > There are eight GPIOs, so you'd need to test each bit, i.e. 0x01,
> > > > > > 0x02, 0x04, 0x08, ... 0x80.
> > > > > >
> > > > > > And how is the current situation?  You can't play *and* record
> > > > > > anything from any inputs / outputs?
> > > > > >
> > > > > >
> > > > > > Takashi
> > > > > >
> > > > > [2  <text/html; UTF-8 (quoted-printable)>]
> > > > >
> > > >
> > > [2  <text/html; UTF-8 (quoted-printable)>]
> > >
> >
> [2  <text/html; UTF-8 (quoted-printable)>]
> 
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

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

* Re: CS8409 Macbook Pro 2016 2017
  2018-08-05 18:05             ` Takashi Iwai
@ 2018-08-05 18:58               ` David Ulricht
  2018-11-16 14:02               ` David Ulricht
  1 sibling, 0 replies; 17+ messages in thread
From: David Ulricht @ 2018-08-05 18:58 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel

>
>
> OK, then it's not about GPIO, something else.
> It's hard to know without the datasheet...


Can't we get a little help from Cirrus Logic, unofficially not breaking NDA
someone from them to pretend to be a noob that tried few things and
actually give us some hints?
Doubt they will drop us the datasheet.


> Yes, NID 0x01 is usually the right value, which means AFG.
>
> At least I understood correctly and learned something.
Then what comes to mind is that my [pincfg] might be wrong or actually not
applying correctly in the driver if I cannot verify it from the codec#0
file as you said, you sure the C code of that generic Cirrus Logic won't
interfere somehow ?
What comes to my mind is some type of simple test C code that sends to the
device some continuous sound from C code using the [pincfg] I got from
Windows, do you happen to have that ?
Do those codecs have this Beep sound that is present in the codec#0 as an
output device, can't we try to make the sound card beep ? Anything to prove
we can interact with it somehow.



> BTW, I noticed that there is some downstream patch.  Is it the repo
> you mentioned earlier?
>   https://github.com/joelkraehemann/hda-tool/blob/
> master/patch_cirrus.c.patch
>
> Did you try that?
>

Not really, I have checked his posts in the bugzilla and he says that this
is the fixups for iMac27 and the card there is slightly different, and he
mentioned December 2017 that none of he tried works, and the code age is
earlier.
Plus I don't see a single place where he uses my [pincfg] e.g. 0x24 and
0x25 for speakers, he mentioned he tried 0x2b 0x2c if not mistaken, and
think that are the speakers.
https://bugzilla.kernel.org/show_bug.cgi?id=195671
He mentions that he thinks its integrated circuit MAX98357BEWL.Which I
can't confirm but well it might be.

I tried to get to debug Windows kernel driver but happens that the Macbook
pro 2017 13 nontb has only 2 Thunderbolt3 ports, and to debug the kernel
drive you need a supported Ethernet device officially by microsoft, and
mine usb-c ethernet is a new Realtek that is not supported, I'll need to
find a usb2,3 ethernet that has a supported chip which might be difficult,
no guarantee I will understand anything from the windows kernel debugging.

Note that when you insert Thunderbolt3 adapter, that has HDMI adapter, the
Audio over HDMI is working, multiple sources confirmed this.
I suspect that the kernel enables HDMI audio and apple might have
integrated hardware automatic switch when you enable HDMI internal sound
card turns off, is there any way that I can prohibit HDMI audio codec#2 not
even to load during kernel boot?
Is that even possible to disable the HDMI audio if it comes from the i915
video card ? Does the above make sense at all ?

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

* Re: CS8409 Macbook Pro 2016 2017
  2018-08-04 20:30           ` David Ulricht
  2018-08-05 18:05             ` Takashi Iwai
@ 2018-08-05 19:32             ` Lukas Wunner
  1 sibling, 0 replies; 17+ messages in thread
From: Lukas Wunner @ 2018-08-05 19:32 UTC (permalink / raw)
  To: David Ulricht; +Cc: Takashi Iwai, alsa-devel, Leif Liddy

On Sat, Aug 04, 2018 at 11:30:29PM +0300, David Ulricht wrote:
> What am I doing wrong ?  Is the below script correct for testing the GPIOs ?
> for x in range(0,256):
>     mhex=("0x%0.2X" % x)
>     os.system("hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK "+mhex)
>     os.system("hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIRECTION "+mhex)
>     os.system("hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA "+mhex)
> I think its not correct gpio_direction i guess could be only 0 or 1?
> What happens when I pass a different value to data than 0/1 ? this should
> also not be correct.
> I guess 0x01 is the NID value is it okay to use 0x01 only or I have to pass
> other values to it also ?

The speakers are driven by digital amplifiers MAX98706.  The MBP13,3
has four (treble/bass x left/right).  They're attached via i2c to
GPIO 6 (SCL) and 7 (SDA) of the CS8409 HDA bridge.  It's possible
that you need to initialize the amps via i2c, in that case using the
GPIOs in bitbanging mode is wrong.

Leif Liddy has been looking into this as well (+cc):
https://bugzilla.kernel.org/show_bug.cgi?id=110561

Lukas

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

* Re: CS8409 Macbook Pro 2016 2017
  2018-08-05 18:05             ` Takashi Iwai
  2018-08-05 18:58               ` David Ulricht
@ 2018-11-16 14:02               ` David Ulricht
  2018-11-16 14:36                 ` Takashi Iwai
  1 sibling, 1 reply; 17+ messages in thread
From: David Ulricht @ 2018-11-16 14:02 UTC (permalink / raw)
  To: Takashi Iwai, perex, kraxel; +Cc: alsa-devel

Lukas Wunner helped with investigation on the topic, check his last post
at: https://bugzilla.kernel.org/show_bug.cgi?id=110561
I am looking at sound/i2c/i2c.c and sound/i2c/cs8427.c but i don't
understand how to initialize the i2c bus having the Windows10 ini hexes
about I2C.
I believe you are more familiar with the code and you can help with a brief
example how to initialize i2c bus and how to send the InitI2C hex to the
I2C bus. Still  i2c.c is from 1998 should be of help.
Please advise.

On Sun, Aug 5, 2018 at 9:05 PM Takashi Iwai <tiwai@suse.de> wrote:

> On Sat, 04 Aug 2018 22:30:29 +0200,
> David Ulricht wrote:
> >
> >  Excuse me for dropping CC..
> >
> > I set the direction bit to 0 and used get_gpio_data and get only:  value
> =
> > 0x0
> > also checking "IO[0-7] data=0-1" value in  /proc/asound/card0/codec#0
> shows
> > no changes at all when insert audio jack.
>
> OK, then it's not about GPIO, something else.
> It's hard to know without the datasheet...
>
> > I tried also booting with "acpi=off". I tried older kernels from few
> years
> > ago. Nothing helps.
> > I wonder if there is some tool for Windows that I use to debug and see
> what
> > is sent to the codec so i replicate in Linux with hda-verb?
>
> acpi=off wouldn't work at all on modern machines.
>
> > What am I doing wrong ?  Is the below script correct for testing the
> GPIOs ?
> > for x in range(0,256):
> >     mhex=("0x%0.2X" % x)
> >     os.system("hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK "+mhex)
> >     os.system("hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIRECTION "+mhex)
> >     os.system("hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA "+mhex)
> > I think its not correct gpio_direction i guess could be only 0 or 1?
> > What happens when I pass a different value to data than 0/1 ? this should
> > also not be correct.
> > I guess 0x01 is the NID value is it okay to use 0x01 only or I have to
> pass
> > other values to it also ?
>
> Yes, NID 0x01 is usually the right value, which means AFG.
>
> BTW, I noticed that there is some downstream patch.  Is it the repo
> you mentioned earlier?
>
> https://github.com/joelkraehemann/hda-tool/blob/master/patch_cirrus.c.patch
>
> Did you try that?
>
>
> Takashi
>
> > On Sat, Aug 4, 2018 at 8:13 PM, Takashi Iwai <tiwai@suse.de> wrote:
> >
> > > Please don't drop Cc to ML.  Also avoid top-posting.
> > >
> > > On Sat, 04 Aug 2018 19:02:53 +0200,
> > > David Ulricht wrote:
> > > >
> > > > How can I do that ?
> > > > I tried verifying if /proc/asound/card0/codec#0 changes when i put
> > > > handphone jack in and out with "diff ver1 ver2" and it is exactly the
> > > same.
> > >
> > > Just do for each bit as you tried for GPIO output.  In this case, the
> > > direction bit should be different (set 0), and you need to read.
> > >
> > > >
> > > > One strange thing I note is hda-jack-retask.fw contains:
> > > > [pincfg]
> > > > 0x24 0x90100080
> > > > 0x25 0x90100082
> > > > I have 0x90100080 for 0x24 but in /proc/asound/card0/codec#0 :
> > > > Node 0x24 [Pin Complex] wcaps 0x400101: Stereo
> > > >   Pincap 0x00000010: OUT
> > > >   Pin Default 0x90100110: [Fixed] Speaker at Int N/A
> > > >     Conn = Unknown, Color = Unknown
> > > >     DefAssociation = 0x1, Sequence = 0x0
> > > >     Misc = NO_PRESENCE
> > > >   Pin-ctls: 0x40: OUT
> > > >   Connection: 1
> > > >      0x02
> > > >
> > > > Shouldn't "Pin Default 0x90100110" be 0x90100080 after applying the
> > > patch ?
> > >
> > > No, the codec config value itself won't change, the driver uses the
> > > given value only internally.
> > >
> > >
> > > Takashi
> > >
> > > > I can see that  Applying patch firmware 'hda-jack-retask.fw' is
> before
> > > > hdaudioC0D0: autoconfig for Generic: line_outs=2
> (0x24/0x25/0x0/0x0/0x0)
> > > > type:speaker
> > > > in dmesg and this worries me, maybe the pins are overriden by generic
> > > > cirrus logic ?
> > > >
> > > >
> > > > On Sat, Aug 4, 2018 at 7:26 PM, Takashi Iwai <tiwai@suse.de> wrote:
> > > >
> > > > > On Sat, 04 Aug 2018 17:44:59 +0200,
> > > > > David Ulricht wrote:
> > > > > >
> > > > > > I used the following script running as root to verify the 8 GPIOs
> > > while
> > > > > > playing long youtube video,
> > > > > > I have running pulseaudio meanwhile and not restarting it, i
> think
> > > its
> > > > > okay
> > > > > > like that people on the ubuntu forums say that after using
> > > > > > hda-verb and setting a gpio active immediately sound appears, so
> i
> > > guess
> > > > > > there is no need to restart pulseaudio.
> > > > > > I have done the same test with headphones in.
> > > > > > No sound in both scenarios, no input no output detected (i'm
> watching
> > > > > > pavucontrol for input detection).
> > > > >
> > > > > This codec is fairly unique and doesn't provide the standard jack
> > > > > detection on each pin.  Maybe it's via either GPIO or any other
> > > > > method.  You can try to read GPIO pins (set as input) to see
> whether
> > > > > any of them corresponds to the jack detection, for example.
> > > > >
> > > > >
> > > > > Takashi
> > > > >
> > > > > >
> > > > > > #!/usr/bin/env python3
> > > > > > import os,time
> > > > > > for x in range(0,256):
> > > > > >     mhex=("0x%0.2X" % x)
> > > > > >     os.system("hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK
> "+mhex)
> > > > > >     os.system("hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIRECTION
> > > "+mhex)
> > > > > >     os.system("hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA
> "+mhex)
> > > > > >     time.sleep(3)
> > > > > >
> > > > > > Meanwhile script is running I'm watching
> /proc/asound/card0/codec#0
> > > and
> > > > > > IO[0-7] changes its configuration,
> > > > > > in comparison Joel Krahemann in his scripts is changing the hex
> right
> > > > > after
> > > > > > /dev/snd/hwC0D0 (0x01) e.g. i dont think he is modifiying the
> GPIOs
> > > > > > correctly.
> > > > > >
> > > > > > I found the following post:
> > > > > > https://forum.manjaro.org/t/sound-not-working-on-a-2017-
> > > > > imac-27-5k-retina/43638
> > > > > > According to https://bugzilla.kernel.org/show_bug.cgi?id=195671
> > > iMac27
> > > > > has
> > > > > > a similar soundcard.
> > > > > > How can i setup with command line or any other utility:
> > > > > > """select “off” in the top menu that propose to setup the Digital
> > > > > > Surround"""
> > > > > > this is some setting in xfce4-mixer package which is not
> available
> > > for
> > > > > > ubuntu since 2 LTS versions behind. I tried current Manjaro and
> > > couldn't
> > > > > > find this setting in audio mixer of xfce4 either.
> > > > > >
> > > > > > On Sat, Aug 4, 2018 at 9:48 AM, Takashi Iwai <tiwai@suse.de>
> wrote:
> > > > > >
> > > > > > > On Sat, 04 Aug 2018 04:07:43 +0200,
> > > > > > > David Ulricht wrote:
> > > > > > > >
> > > > > > > > Hello,
> > > > > > > >
> > > > > > > > Macbook pro models containing CS8409 for sure are:
> > > > > > > > MBP131 MBP141.I own MBP 14,1 e.g. 2017 model.
> > > > > > > >
> > > > > > > > I'm attaching working sound configuration from Windows 10
> > > registry
> > > > > (note
> > > > > > > > that the cs420x might need to be ignored or might be
> important i
> > > > > don't
> > > > > > > > really know). I believe what is really used is in the
> > > > > PinConfigOverride
> > > > > > > > section.
> > > > > > >
> > > > > > > Comparing between BIOS default (init_pin_cfg in alsa-info.sh
> > > output)
> > > > > > > and your override (user_pin_cfg), there aren't so many changes.
> > > > > > > All changes are pretty minor, and I guess it won't influence
> on the
> > > > > > > driver behavior.
> > > > > > >
> > > > > > > > Interesting thing to note is that sound in MacOS is much
> louder
> > > than
> > > > > > > > Bootcamp Windows, would be nice to hear how loud is on linux.
> > > > > > >
> > > > > > > This is possibly with some vendor-specific GPIO or COEF verbs.
> > > > > > > Or it's some direct I2C control.  The INI file mentions it.
> > > > > > > And that's above HD-audio driver's responsibility.
> > > > > > >
> > > > > > > > I did convert PinConfigOverride HEX strings to [pincfg]
> format
> > > in the
> > > > > > > > attached hda-jack-retask.fw thanks to Takashi's guidance.
> > > > > > > >
> > > > > > > > I'm attaching also alsamixer ASCII. Only PCM, no Master ?
> > > > > > >
> > > > > > > It's because the codec chip has no output amplifier at all.
> > > > > > > So there can be neither output volume nor mute control on this
> > > chip.
> > > > > > >
> > > > > > > > What I have tried is execute:
> > > > > > > > hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK 0x@@
> > > > > > > > hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIRECTION 0x@@
> > > > > > > > hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x@@
> > > > > > > > putting @@ from 0x00 to 0x50
> > > > > > >
> > > > > > > There are eight GPIOs, so you'd need to test each bit, i.e.
> 0x01,
> > > > > > > 0x02, 0x04, 0x08, ... 0x80.
> > > > > > >
> > > > > > > And how is the current situation?  You can't play *and* record
> > > > > > > anything from any inputs / outputs?
> > > > > > >
> > > > > > >
> > > > > > > Takashi
> > > > > > >
> > > > > > [2  <text/html; UTF-8 (quoted-printable)>]
> > > > > >
> > > > >
> > > > [2  <text/html; UTF-8 (quoted-printable)>]
> > > >
> > >
> > [2  <text/html; UTF-8 (quoted-printable)>]
> >
>
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

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

* Re: CS8409 Macbook Pro 2016 2017
  2018-11-16 14:02               ` David Ulricht
@ 2018-11-16 14:36                 ` Takashi Iwai
  2018-11-16 16:50                   ` David Ulricht
  0 siblings, 1 reply; 17+ messages in thread
From: Takashi Iwai @ 2018-11-16 14:36 UTC (permalink / raw)
  To: David Ulricht; +Cc: alsa-devel

On Fri, 16 Nov 2018 15:02:15 +0100,
David Ulricht wrote:
> 
> Lukas Wunner helped with investigation on the topic, check his last post at: 
> https://bugzilla.kernel.org/show_bug.cgi?id=110561
> I am looking at sound/i2c/i2c.c and sound/i2c/cs8427.c but i don't understand
> how to initialize the i2c bus having the Windows10 ini hexes about I2C.
> I believe you are more familiar with the code and you can help with a brief
> example how to initialize i2c bus and how to send the InitI2C hex to the I2C
> bus. Still  i2c.c is from 1998 should be of help.
> Please advise.

The stuff in sound/i2c/* are mostly for the i2c bus on a PCI sound
cards, an implementation independent from the standard i2c stuff.

And, in your case, it's hard to know how the i2c bus is connected.
If it's controlled over HD-audio GPIO pin (one for clk and one for
data), then some stuff in sound/i2c can be re-used.  Or, if it's on
another i2c bus, the story will be completely different...


Takashi


> On Sun, Aug 5, 2018 at 9:05 PM Takashi Iwai <tiwai@suse.de> wrote:
> 
>     On Sat, 04 Aug 2018 22:30:29 +0200,
>     David Ulricht wrote:
>     >
>     >  Excuse me for dropping CC..
>     >
>     > I set the direction bit to 0 and used get_gpio_data and get only:  value
>     =
>     > 0x0
N>     > also checking "IO[0-7] data=0-1" value in  /proc/asound/card0/codec#0
>     shows
>     > no changes at all when insert audio jack.
>    
>     OK, then it's not about GPIO, something else.
>     It's hard to know without the datasheet...
>    
>     > I tried also booting with "acpi=off". I tried older kernels from few
>     years
>     > ago. Nothing helps.
>     > I wonder if there is some tool for Windows that I use to debug and see
>     what
>     > is sent to the codec so i replicate in Linux with hda-verb?
>    
>     acpi=off wouldn't work at all on modern machines.
>    
>     > What am I doing wrong ?  Is the below script correct for testing the
>     GPIOs ?
>     > for x in range(0,256):
>     >     mhex=("0x%0.2X" % x)
>     >     os.system("hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK "+mhex)
>     >     os.system("hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIRECTION "+mhex)
>     >     os.system("hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA "+mhex)
>     > I think its not correct gpio_direction i guess could be only 0 or 1?
>     > What happens when I pass a different value to data than 0/1 ? this
>     should
>     > also not be correct.
>     > I guess 0x01 is the NID value is it okay to use 0x01 only or I have to
>     pass
>     > other values to it also ?
>    
>     Yes, NID 0x01 is usually the right value, which means AFG.
>    
>     BTW, I noticed that there is some downstream patch.  Is it the repo
>     you mentioned earlier?
>       
>     https://github.com/joelkraehemann/hda-tool/blob/master/patch_cirrus.c.patch
>    
>     Did you try that?
> 
>     Takashi
>    
>     > On Sat, Aug 4, 2018 at 8:13 PM, Takashi Iwai <tiwai@suse.de> wrote:
>     >
>     > > Please don't drop Cc to ML.  Also avoid top-posting.
>     > >
>     > > On Sat, 04 Aug 2018 19:02:53 +0200,
>     > > David Ulricht wrote:
>     > > >
>     > > > How can I do that ?
>     > > > I tried verifying if /proc/asound/card0/codec#0 changes when i put
>     > > > handphone jack in and out with "diff ver1 ver2" and it is exactly
>     the
>     > > same.
>     > >
>     > > Just do for each bit as you tried for GPIO output.  In this case, the
>     > > direction bit should be different (set 0), and you need to read.
>     > >
>     > > >
>     > > > One strange thing I note is hda-jack-retask.fw contains:
>     > > > [pincfg]
>     > > > 0x24 0x90100080
>     > > > 0x25 0x90100082
>     > > > I have 0x90100080 for 0x24 but in /proc/asound/card0/codec#0 :
>     > > > Node 0x24 [Pin Complex] wcaps 0x400101: Stereo
>     > > >   Pincap 0x00000010: OUT
>     > > >   Pin Default 0x90100110: [Fixed] Speaker at Int N/A
>     > > >     Conn = Unknown, Color = Unknown
>     > > >     DefAssociation = 0x1, Sequence = 0x0
>     > > >     Misc = NO_PRESENCE
>     > > >   Pin-ctls: 0x40: OUT
>     > > >   Connection: 1
>     > > >      0x02
>     > > >
>     > > > Shouldn't "Pin Default 0x90100110" be 0x90100080 after applying the
>     > > patch ?
>     > >
>     > > No, the codec config value itself won't change, the driver uses the
>     > > given value only internally.
>     > >
>     > >
>     > > Takashi
>     > >
>     > > > I can see that  Applying patch firmware 'hda-jack-retask.fw' is
>     before
>     > > > hdaudioC0D0: autoconfig for Generic: line_outs=2 (0x24/0x25/0x0/0x0/
>     0x0)
>     > > > type:speaker
>     > > > in dmesg and this worries me, maybe the pins are overriden by
>     generic
>     > > > cirrus logic ?
>     > > >
>     > > >
>     > > > On Sat, Aug 4, 2018 at 7:26 PM, Takashi Iwai <tiwai@suse.de> wrote:
>     > > >
>     > > > > On Sat, 04 Aug 2018 17:44:59 +0200,
>     > > > > David Ulricht wrote:
>     > > > > >
>     > > > > > I used the following script running as root to verify the 8
>     GPIOs
>     > > while
>     > > > > > playing long youtube video,
>     > > > > > I have running pulseaudio meanwhile and not restarting it, i
>     think
>     > > its
>     > > > > okay
>     > > > > > like that people on the ubuntu forums say that after using
>     > > > > > hda-verb and setting a gpio active immediately sound appears, so
>     i
>     > > guess
>     > > > > > there is no need to restart pulseaudio.
>     > > > > > I have done the same test with headphones in.
>     > > > > > No sound in both scenarios, no input no output detected (i'm
>     watching
>     > > > > > pavucontrol for input detection).
>     > > > >
>     > > > > This codec is fairly unique and doesn't provide the standard jack
>     > > > > detection on each pin.  Maybe it's via either GPIO or any other
>     > > > > method.  You can try to read GPIO pins (set as input) to see
>     whether
>     > > > > any of them corresponds to the jack detection, for example.
>     > > > >
>     > > > >
>     > > > > Takashi
>     > > > >
>     > > > > >
>     > > > > > #!/usr/bin/env python3
>     > > > > > import os,time
>     > > > > > for x in range(0,256):
>     > > > > >     mhex=("0x%0.2X" % x)
>     > > > > >     os.system("hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK
>     "+mhex)
>     > > > > >     os.system("hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIRECTION
>     > > "+mhex)
>     > > > > >     os.system("hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA
>     "+mhex)
>     > > > > >     time.sleep(3)
>     > > > > >
>     > > > > > Meanwhile script is running I'm watching  /proc/asound/card0/
>     codec#0
>     > > and
>     > > > > > IO[0-7] changes its configuration,
>     > > > > > in comparison Joel Krahemann in his scripts is changing the hex
>     right
>     > > > > after
>     > > > > > /dev/snd/hwC0D0 (0x01) e.g. i dont think he is modifiying the
>     GPIOs
>     > > > > > correctly.
>     > > > > >
>     > > > > > I found the following post:
>     > > > > > https://forum.manjaro.org/t/sound-not-working-on-a-2017-
>     > > > > imac-27-5k-retina/43638
>     > > > > > According to https://bugzilla.kernel.org/show_bug.cgi?id=195671
>     > > iMac27
>     > > > > has
>     > > > > > a similar soundcard.
>     > > > > > How can i setup with command line or any other utility:
>     > > > > > """select “off” in the top menu that propose to setup the
>     Digital
>     > > > > > Surround"""
>     > > > > > this is some setting in xfce4-mixer package which is not
>     available
>     > > for
>     > > > > > ubuntu since 2 LTS versions behind. I tried current Manjaro and
>     > > couldn't
>     > > > > > find this setting in audio mixer of xfce4 either.
>     > > > > >
>     > > > > > On Sat, Aug 4, 2018 at 9:48 AM, Takashi Iwai <tiwai@suse.de>
>     wrote:
>     > > > > >
>     > > > > > > On Sat, 04 Aug 2018 04:07:43 +0200,
>     > > > > > > David Ulricht wrote:
>     > > > > > > >
>     > > > > > > > Hello,
>     > > > > > > >
>     > > > > > > > Macbook pro models containing CS8409 for sure are:
>     > > > > > > > MBP131 MBP141.I own MBP 14,1 e.g. 2017 model.
>     > > > > > > >
>     > > > > > > > I'm attaching working sound configuration from Windows 10
>     > > registry
>     > > > > (note
>     > > > > > > > that the cs420x might need to be ignored or might be
>     important i
>     > > > > don't
>     > > > > > > > really know). I believe what is really used is in the
>     > > > > PinConfigOverride
>     > > > > > > > section.
>     > > > > > >
>     > > > > > > Comparing between BIOS default (init_pin_cfg in alsa-info.sh
>     > > output)
>     > > > > > > and your override (user_pin_cfg), there aren't so many
>     changes.
>     > > > > > > All changes are pretty minor, and I guess it won't influence
>     on the
>     > > > > > > driver behavior.
>     > > > > > >
>     > > > > > > > Interesting thing to note is that sound in MacOS is much
>     louder
>     > > than
>     > > > > > > > Bootcamp Windows, would be nice to hear how loud is on
>     linux.
>     > > > > > >
>     > > > > > > This is possibly with some vendor-specific GPIO or COEF verbs.
>     > > > > > > Or it's some direct I2C control.  The INI file mentions it.
>     > > > > > > And that's above HD-audio driver's responsibility.
>     > > > > > >
>     > > > > > > > I did convert PinConfigOverride HEX strings to [pincfg]
>     format
>     > > in the
>     > > > > > > > attached hda-jack-retask.fw thanks to Takashi's guidance.
>     > > > > > > >
>     > > > > > > > I'm attaching also alsamixer ASCII. Only PCM, no Master ?
>     > > > > > >
>     > > > > > > It's because the codec chip has no output amplifier at all.
>     > > > > > > So there can be neither output volume nor mute control on this
>     > > chip.
>     > > > > > >
>     > > > > > > > What I have tried is execute:
>     > > > > > > > hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK 0x@@
>     > > > > > > > hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIRECTION 0x@@
>     > > > > > > > hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x@@
>     > > > > > > > putting @@ from 0x00 to 0x50
>     > > > > > >
>     > > > > > > There are eight GPIOs, so you'd need to test each bit, i.e.
>     0x01,
>     > > > > > > 0x02, 0x04, 0x08, ... 0x80.
>     > > > > > >
>     > > > > > > And how is the current situation?  You can't play *and* record
>     > > > > > > anything from any inputs / outputs?
>     > > > > > >
>     > > > > > >
>     > > > > > > Takashi
>     > > > > > >
>     > > > > > [2  <text/html; UTF-8 (quoted-printable)>]
>     > > > > >
>     > > > >
>     > > > [2  <text/html; UTF-8 (quoted-printable)>]
>     > > >
>     > >
>     > [2  <text/html; UTF-8 (quoted-printable)>]
>     >
> 
> 
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

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

* Re: CS8409 Macbook Pro 2016 2017
  2018-11-16 14:36                 ` Takashi Iwai
@ 2018-11-16 16:50                   ` David Ulricht
  2018-11-16 17:31                     ` Takashi Iwai
  0 siblings, 1 reply; 17+ messages in thread
From: David Ulricht @ 2018-11-16 16:50 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel

> The stuff in sound/i2c/* are mostly for the i2c bus on a PCI sound
> cards, an implementation independent from the standard i2c stuff.
>
> And, in your case, it's hard to know how the i2c bus is connected.
> If it's controlled over HD-audio GPIO pin (one for clk and one for
> data), then some stuff in sound/i2c can be re-used.  Or, if it's on
> another i2c bus, the story will be completely different...
>
I have the schematics of the CS8409. the i2c is connected to the GPIO of
the HDA.

MAX98374 has a Reset Low pin which is connected to GPIO 5 on the HDA
controller CS8409.  This must
be driven high, then wait for 1.5 ms.  Only then will the amps be out of
device shutdown.
GPIO6 is  8409_I2C_SCL
GPIO7 is  8409_I2C_SDA

GPIO5 is AUD_SPKRAMP_RESET_L

Knowing GPIO6 is the clock and GPIO7 is the data, how can I use them?
Can I use hda-verb /dev/snd/hwC0D0 0x01 XXX YYY ? what XXX YYY would be ?

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

* Re: CS8409 Macbook Pro 2016 2017
  2018-11-16 16:50                   ` David Ulricht
@ 2018-11-16 17:31                     ` Takashi Iwai
  2018-11-19 17:30                       ` David Ulricht
  0 siblings, 1 reply; 17+ messages in thread
From: Takashi Iwai @ 2018-11-16 17:31 UTC (permalink / raw)
  To: David Ulricht; +Cc: alsa-devel

On Fri, 16 Nov 2018 17:50:24 +0100,
David Ulricht wrote:
> 
>     The stuff in sound/i2c/* are mostly for the i2c bus on a PCI sound
>     cards, an implementation independent from the standard i2c stuff.
>    
>     And, in your case, it's hard to know how the i2c bus is connected.
>     If it's controlled over HD-audio GPIO pin (one for clk and one for
>     data), then some stuff in sound/i2c can be re-used.  Or, if it's on
>     another i2c bus, the story will be completely different...
> 
> I have the schematics of the CS8409. the i2c is connected to the GPIO of the
> HDA.
> 
> MAX98374 has a Reset Low pin which is connected to GPIO 5 on the HDA
> controller CS8409.  This must
> be driven high, then wait for 1.5 ms.  Only then will the amps be out of
> device shutdown.
> GPIO6 is  8409_I2C_SCL
> GPIO7 is  8409_I2C_SDA
> 
> GPIO5 is AUD_SPKRAMP_RESET_L
> 
> Knowing GPIO6 is the clock and GPIO7 is the data, how can I use them?
> Can I use hda-verb /dev/snd/hwC0D0 0x01 XXX YYY ? what XXX YYY would be ?

You need to set GPIO mask, direction then data.
  0x01 SET_GPIO_MASK 0xXX
  0x01 SET_GPIO_DIR 0xXX
  0x01 SET_GPIO_DATA 0xXX

The value to be pass is the bits.  GPIO0=0x01, GPIO1=0x02, GPIO3=0x04,
...

You can read the data after setting mask and dir by 0x01
GET_GPIO_DATA.  Pass 0 for the value, and you'll get a byte value as a
read result.


Takashi
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

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

* Re: CS8409 Macbook Pro 2016 2017
  2018-11-16 17:31                     ` Takashi Iwai
@ 2018-11-19 17:30                       ` David Ulricht
  2018-11-19 18:47                         ` Takashi Iwai
  0 siblings, 1 reply; 17+ messages in thread
From: David Ulricht @ 2018-11-19 17:30 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel

 I have found the schematics of the board its model A1708:
http://sualaptop365.edu.vn/threads/apple-macbook-pro-13-a1708-820-00875-051-02265-x502-mlb_catz-schematic-boardview.19646/
page 48 CS8409 audio codec GPIO7 is SDA GPIO6 is SCL.
page 50:  the four SSM3515B amplifiers connected to CS8409's I2C SDA/SCL
have found the datasheet of SSM3515 amplifiers as well:
https://www.analog.com/media/en/technical-documentation/data-sheets/SSM3515.pdf
Documentation says: If the REG_EN pin is tied to the PVDD the power-up
sequence is performed internally.
According to the SSM3515B REG_EN is also called C2.
According to the 1708 schematics(page 50) REG_EN also called C2, is
connected to ground. This means if REG_EN is connected to ground, it uses
an external 1.8V regulator (page 19 of SSM3515 pdf). e.g. the device needs
to be initialized via i2c commands. This means the 4 amplifiers SSM3515B
need to be initialized via i2c, because simply apple decided to disable
them by default for some reason probably save power while booting for
example.
Now I need to figure out how to send the i2c commands i have from windows10.
page 21: describes the I2C control which should be of help

The following windows 10 registry about i2c maybe of help, it has the
slaves addresses, the start/stop the powerup2c commands, everything
needed...:
"I2CSpeedMode"=dword:00000001
"I2CPolledMode"=dword:00000001
"I2CQuickMode"=dword:00000001
"I2CBusClear"=dword:00000006
"I2CSlave90Config"=dword:01002090
"InitI2C"=hex:01,90,3a,00,10,10,b0,00,1d,01,00,02,06,00,11,07,01,00,10,09,02,\

07,03,00,12,01,00,08,13,05,ff,06,00,07,20,02,0d,00,2a,02,02,03,00,04,00,05,\

02,06,00,07,20,08,02,09,00,0a,80,0b,02,0c,00,0d,a0,01,0c,00,29,02,01,03,02,\

04,00,05,00,01,01,00,11,01,0a,02,84,00,23,01,00,03,00,02,3f,00,20,01,03,00,\
  1b,75,b6,73,c2,00,11,29,01,21,f3,03,20,05,00,12,00,13,80,00,1c,03,c0
"n0AStreamStartI2C"=hex:01,90,02,00,11,01,02
"n0AStreamStopI2C"=hex:01,90,02,00,11,01,0a
"I2CSlave28Config"=dword:00004028
"I2CSlave2AConfig"=dword:0000402a
"I2CSlave2CConfig"=dword:0000402c
"I2CSlave2EConfig"=dword:0000402e
"n02PwrUpI2C"=hex:04,28,2a,2c,2e,07,00,81,01,11,02,32,03,48,04,11,05,10,00,80
"n03PwrUpI2C"=hex:01,28,01,05,00,01,2a,01,05,02,01,2c,01,05,01,01,2e,01,05,03
"ExitI2C"=hex:04,28,2a,2c,2e,01,00,83
"EQ1S1R7"=hex:1e,b2,9a,1a,df,15,c6,f4,11,19,91,ae,c6,f4,11,16,3b,23,16,3b,23,\
  d3,89,b9,1f,88,d9,c0,78,b8
"EQ1S2R7"=hex:16,3d,23,16,3d,23,d3,85,bb,1f,8e,8e,c0,73,03,14,62,da,12,94,45,\
  d9,23,c2,1d,b9,a4,c2,61,3d

Now comes the problem that I cannot write my own i2c driver to power up the
4 SSM3515B amps via the I2C on GPIO7/6 on CS8409.
I have no idea how to get a pointer to the i2c interface knowing the
GPIO7/6 are the i2c interface.
If someone helps me to get a C pointer to the i2c bus, I might be able to
read/write to it and test and figure it out.
I have only experimented with real i2c bus on Raspberry Pi with C code, and
it is completely different. I have there an /dev/i2c-l device that I can
write to file handle the bytes.
Please advise.

On Fri, Nov 16, 2018 at 7:31 PM Takashi Iwai <tiwai@suse.de> wrote:

> On Fri, 16 Nov 2018 17:50:24 +0100,
> David Ulricht wrote:
> >
> >     The stuff in sound/i2c/* are mostly for the i2c bus on a PCI sound
> >     cards, an implementation independent from the standard i2c stuff.
> >
> >     And, in your case, it's hard to know how the i2c bus is connected.
> >     If it's controlled over HD-audio GPIO pin (one for clk and one for
> >     data), then some stuff in sound/i2c can be re-used.  Or, if it's on
> >     another i2c bus, the story will be completely different...
> >
> > I have the schematics of the CS8409. the i2c is connected to the GPIO of
> the
> > HDA.
> >
> > MAX98374 has a Reset Low pin which is connected to GPIO 5 on the HDA
> > controller CS8409.  This must
> > be driven high, then wait for 1.5 ms.  Only then will the amps be out of
> > device shutdown.
> > GPIO6 is  8409_I2C_SCL
> > GPIO7 is  8409_I2C_SDA
> >
> > GPIO5 is AUD_SPKRAMP_RESET_L
> >
> > Knowing GPIO6 is the clock and GPIO7 is the data, how can I use them?
> > Can I use hda-verb /dev/snd/hwC0D0 0x01 XXX YYY ? what XXX YYY would be ?
>
> You need to set GPIO mask, direction then data.
>   0x01 SET_GPIO_MASK 0xXX
>   0x01 SET_GPIO_DIR 0xXX
>   0x01 SET_GPIO_DATA 0xXX
>
> The value to be pass is the bits.  GPIO0=0x01, GPIO1=0x02, GPIO3=0x04,
> ...
>
> You can read the data after setting mask and dir by 0x01
> GET_GPIO_DATA.  Pass 0 for the value, and you'll get a byte value as a
> read result.
>
>
> Takashi
>

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

* Re: CS8409 Macbook Pro 2016 2017
  2018-11-19 17:30                       ` David Ulricht
@ 2018-11-19 18:47                         ` Takashi Iwai
  2018-11-23 17:26                           ` David Ulricht
  0 siblings, 1 reply; 17+ messages in thread
From: Takashi Iwai @ 2018-11-19 18:47 UTC (permalink / raw)
  To: David Ulricht; +Cc: alsa-devel

On Mon, 19 Nov 2018 18:30:15 +0100,
David Ulricht wrote:
> 
> 
> I have found the schematics of the board its model A1708:
> http://sualaptop365.edu.vn/threads/apple-macbook-pro-13-a1708-820-00875-051-02265-x502-mlb_catz-schematic-boardview.19646/
> page 48 CS8409 audio codec GPIO7 is SDA GPIO6 is SCL.
> page 50:  the four SSM3515B amplifiers connected to CS8409's I2C SDA/SCL
> have found the datasheet of SSM3515 amplifiers as well:
> https://www.analog.com/media/en/technical-documentation/data-sheets/SSM3515.pdf
> Documentation says: If the REG_EN pin is tied to the PVDD the power-up
> sequence is performed internally.
> According to the SSM3515B REG_EN is also called C2.
> According to the 1708 schematics(page 50) REG_EN also called C2, is connected
> to ground. This means if REG_EN is connected to ground, it uses an external
> 1.8V regulator (page 19 of SSM3515 pdf). e.g. the device needs to be
> initialized via i2c commands. This means the 4 amplifiers SSM3515B need to be
> initialized via i2c, because simply apple decided to disable them by default
> for some reason probably save power while booting for example.
> Now I need to figure out how to send the i2c commands i have from windows10.
> page 21: describes the I2C control which should be of help
> 
> The following windows 10 registry about i2c maybe of help, it has the slaves
> addresses, the start/stop the powerup2c commands, everything needed...:
> "I2CSpeedMode"=dword:00000001
> "I2CPolledMode"=dword:00000001
> "I2CQuickMode"=dword:00000001
> "I2CBusClear"=dword:00000006
> "I2CSlave90Config"=dword:01002090
> "InitI2C"=hex:01,90,3a,00,10,10,b0,00,1d,01,00,02,06,00,11,07,01,00,10,09,02,\
>   07,03,00,12,01,00,08,13,05,ff,06,00,07,20,02,0d,00,2a,02,02,03,00,04,00,05,\
>   02,06,00,07,20,08,02,09,00,0a,80,0b,02,0c,00,0d,a0,01,0c,00,29,02,01,03,02,\
>   04,00,05,00,01,01,00,11,01,0a,02,84,00,23,01,00,03,00,02,3f,00,20,01,03,00,\
>   1b,75,b6,73,c2,00,11,29,01,21,f3,03,20,05,00,12,00,13,80,00,1c,03,c0
> "n0AStreamStartI2C"=hex:01,90,02,00,11,01,02
> "n0AStreamStopI2C"=hex:01,90,02,00,11,01,0a
> "I2CSlave28Config"=dword:00004028
> "I2CSlave2AConfig"=dword:0000402a
> "I2CSlave2CConfig"=dword:0000402c
> "I2CSlave2EConfig"=dword:0000402e
> "n02PwrUpI2C"=hex:04,28,2a,2c,2e,07,00,81,01,11,02,32,03,48,04,11,05,10,00,80
> "n03PwrUpI2C"=hex:01,28,01,05,00,01,2a,01,05,02,01,2c,01,05,01,01,2e,01,05,03
> "ExitI2C"=hex:04,28,2a,2c,2e,01,00,83
> "EQ1S1R7"=hex:1e,b2,9a,1a,df,15,c6,f4,11,19,91,ae,c6,f4,11,16,3b,23,16,3b,23,\
>   d3,89,b9,1f,88,d9,c0,78,b8
> "EQ1S2R7"=hex:16,3d,23,16,3d,23,d3,85,bb,1f,8e,8e,c0,73,03,14,62,da,12,94,45,\
>   d9,23,c2,1d,b9,a4,c2,61,3d
> 
> Now comes the problem that I cannot write my own i2c driver to power up the 4
> SSM3515B amps via the I2C on GPIO7/6 on CS8409.
> I have no idea how to get a pointer to the i2c interface knowing the GPIO7/6
> are the i2c interface.
> If someone helps me to get a C pointer to the i2c bus, I might be able to read
> /write to it and test and figure it out.
> I have only experimented with real i2c bus on Raspberry Pi with C code, and it
> is completely different. I have there an /dev/i2c-l device that I can write to
> file handle the bytes.
> Please advise.

You should try to initialize over i2c over HD-audio GPIO pins using a
user-space program at first.  The GPIO pins can be read/written via
hda-verb as I already mentioned, hence you can access to i2c bus from
the user-space directly.

Once when it's confirmed to work from user-space, we can think of the
kernel-side implementation, too.  Instead of setting up the whole
complex i2c subsystem, we may wire up the existing stuff in
sound/i2c/*, too.


Takashi


> 
> On Fri, Nov 16, 2018 at 7:31 PM Takashi Iwai <tiwai@suse.de> wrote:
> 
>     On Fri, 16 Nov 2018 17:50:24 +0100,
>     David Ulricht wrote:
>     >
>     >     The stuff in sound/i2c/* are mostly for the i2c bus on a PCI sound
>     >     cards, an implementation independent from the standard i2c stuff.
>     >   
>     >     And, in your case, it's hard to know how the i2c bus is connected.
>     >     If it's controlled over HD-audio GPIO pin (one for clk and one for
>     >     data), then some stuff in sound/i2c can be re-used.  Or, if it's on
>     >     another i2c bus, the story will be completely different...
>     >
>     > I have the schematics of the CS8409. the i2c is connected to the GPIO of
>     the
>     > HDA.
>     >
>     > MAX98374 has a Reset Low pin which is connected to GPIO 5 on the HDA
>     > controller CS8409.  This must
>     > be driven high, then wait for 1.5 ms.  Only then will the amps be out of
>     > device shutdown.
>     > GPIO6 is  8409_I2C_SCL
>     > GPIO7 is  8409_I2C_SDA
>     >
>     > GPIO5 is AUD_SPKRAMP_RESET_L
>     >
>     > Knowing GPIO6 is the clock and GPIO7 is the data, how can I use them?
>     > Can I use hda-verb /dev/snd/hwC0D0 0x01 XXX YYY ? what XXX YYY would be
>     ?
>    
>     You need to set GPIO mask, direction then data.
>       0x01 SET_GPIO_MASK 0xXX
>       0x01 SET_GPIO_DIR 0xXX
>       0x01 SET_GPIO_DATA 0xXX
>    
>     The value to be pass is the bits.  GPIO0=0x01, GPIO1=0x02, GPIO3=0x04,
>     ...
>    
>     You can read the data after setting mask and dir by 0x01
>     GET_GPIO_DATA.  Pass 0 for the value, and you'll get a byte value as a
>     read result.
> 
>     Takashi
> 
> 
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

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

* Re: CS8409 Macbook Pro 2016 2017
  2018-11-19 18:47                         ` Takashi Iwai
@ 2018-11-23 17:26                           ` David Ulricht
  2018-11-27  2:42                             ` David Ulricht
  0 siblings, 1 reply; 17+ messages in thread
From: David Ulricht @ 2018-11-23 17:26 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel

> Once when it's confirmed to work from user-space, we can think of the
> kernel-side implementation, too.  Instead of setting up the whole
> complex i2c subsystem, we may wire up the existing stuff in
> sound/i2c/*, too.
>
Okay

You should try to initialize over i2c over HD-audio GPIO pins using a
> user-space program at first.  The GPIO pins can be read/written via
> hda-verb as I already mentioned, hence you can access to i2c bus from
> the user-space directly.


I have written the following bash script,

> #!/bin/bash
> # DIR              0 (low) = out   40 (high) = in
> #            low to write,      high to read
> # SCL == 0x40      SDA == 0x80
> function send() {
> str1=$1
> str2=$2
> str3=$3
> hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK 0x$str1
> # we send 0 to bus by enabling gpio_dir
> hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIR 0x$str2
> # we send data=0 to send to the bus
> hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x$str3
> }
> # reads the values I set, no different return value from i2c/codec
> function recv() {
> hda-verb /dev/snd/hwC0D0 0x01 GET_GPIO_MASK 0x$str1
> hda-verb /dev/snd/hwC0D0 0x01 GET_GPIO_DIR 0x$str2
> hda-verb /dev/snd/hwC0D0 0x01 GET_GPIO_DATA 0x$str3
> }
>
>
> function send_sequence() {
>     data=$1
>         #split hexes by coma to be able to send 1 by 1
>     hexes=$(echo $data|tr "," "\n")
>     for hex in $hexes; do
>         echo 'sending hex: ' $hex
>         send 40 0 0 # 0 to scl
>
mask of SCL enabled, data 0 , dir 0, is that correct ?

>         sleep 0.003
>         send 80 0 $hex # send 0x28 to sda if $hex=28
>
mask of SDA enabled, direction 0, hex to data

>         sleep 0.003
>         send 0 40 40 # 1 to scl
>
mask of SCL disabled, direction 1, data 1

>         sleep 0.003
>         echo sent
>     done
> }
>
below i'm sending the hexes from Win10ini but in the exact same order,
which worries me a bit, maybe they need to be reversed 4by4?
like 01,90,02,00,11,01,02 could become: 00,02,90,01,02,01,11 .. because for
the InitVerbs i did that reversing 4by4 and it works only correctly if the
hexes are reversed 4by4. (at the end of the email i am attaching the
exitverbs conversion which is perfect).

> #initi2c
> send_sequence
> "01,90,3a,00,10,10,b0,00,1d,01,00,02,06,00,11,07,01,00,10,09,02,07,03,00,12,01,00,08,13,05,ff,06,00,07,20,02,0d,00,2a,02,02,03,00,04,00,05,02,06,00,07,20,08,02,09,00,0a,80,0b,02,0c,00,0d,a0,01,0c,00,29,02,01,03,02,04,00,05,00,01,01,00,11,01,0a,02,84,00,23,01,00,03,00,02,3f,00,20,01,03,00,1b,75,b6,73,c2,00,11,29,01,21,f3,03,20,05,00,12,00,13,80,00,1c,03,c0"
> #streamstarti2c
> send_sequence "01,90,02,00,11,01,02"
> #powerup-amps
> send_sequence "04,28,2a,2c,2e,07,00,81,01,11,02,32,03,48,04,11,05,10,00,80"
> send_sequence "01,28,01,05,00,01,2a,01,05,02,01,2c,01,05,01,01,2e,01,05,03"
> #streamstopi2c
> send_sequence "01,90,02,00,11,01,0a"
> #echo read
> #recv 0 0 0
>

For example something that works is
"ExitVerbs"=hex:00,05,17,00,01,00,75,04,00,00,74,04,82,00,75,04,00,00,74,04,03,\

00,75,04,00,80,74,04,04,00,75,04,01,28,74,04,06,00,75,04,00,80,74,04,07,00,\
  75,04,01,28,74,04,65,00,75,04,00,00,74,04,00,03,77,04,03,05,17,00

> hda-verb /dev/snd/hwC0D0 0x01 0x705 0x00
> hda-verb /dev/snd/hwC0D0 0x47 0x500 0x01
> hda-verb /dev/snd/hwC0D0 0x47 0x400 0x00
> hda-verb /dev/snd/hwC0D0 0x47 0x500 0x82
> hda-verb /dev/snd/hwC0D0 0x47 0x400 0x00
> hda-verb /dev/snd/hwC0D0 0x47 0x500 0x03
> hda-verb /dev/snd/hwC0D0 0x47 0x480 0x00
> hda-verb /dev/snd/hwC0D0 0x47 0x500 0x04
> hda-verb /dev/snd/hwC0D0 0x47 0x428 0x01
> hda-verb /dev/snd/hwC0D0 0x47 0x500 0x06
> hda-verb /dev/snd/hwC0D0 0x47 0x480 0x00
> hda-verb /dev/snd/hwC0D0 0x47 0x500 0x07
> hda-verb /dev/snd/hwC0D0 0x47 0x428 0x01
> hda-verb /dev/snd/hwC0D0 0x47 0x500 0x65
> hda-verb /dev/snd/hwC0D0 0x47 0x400 0x00
> hda-verb /dev/snd/hwC0D0 0x47 0x703 0x00
> hda-verb /dev/snd/hwC0D0 0x01 0x705 0x03
>
> Also InitVerbs from windows10ini and ExitVerbs from windows10ini reversed
hexes 4by4 sent with hda-verb work perfect. They initiate the CS8409 codec
or shut it down properly as i can see in the codec#0 status changing from
D3 to D0 and D0 to D3.
But the above exitverbs are sent to the widgets AFG node and the 0x47
widget, (InitVerbs have a few more widgets).

I tried to do the same for the InitI2C hexes, but apperently they are not
supposed to be send as hexes directly to the widgets like InitVerbs or
ExitVerbs. All the I2C related stuff are strictly I2C related for executing
on the SDA/SCL GPIO7/6.

So my idea is, do I need to reverse the hexes 4 by 4, when sending to the
SDA ?
And if you have any examples how can i get a read value from the SDA please.


Btw:
root@debian:~# cat /proc/asound/card0/codec#0 |head -n 25|tail -n 8
  IO[0]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
  IO[1]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
  IO[2]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
  IO[3]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
  IO[4]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
  IO[5]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
  IO[6]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
  IO[7]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
the default values are IO7 which is GPIO7 which is SDA. is enabled=0 dir=0
data=0

root@debian:~# hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK 0x80
nid = 0x1, verb = 0x716, param = 0x80
value = 0x0
root@debian:~# hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIR 0x0
nid = 0x1, verb = 0x717, param = 0x0
value = 0x0
root@debian:~# hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x28
nid = 0x1, verb = 0x715, param = 0x28
value = 0x0
After i send the above, data becomes data=1  but i sent 0x28.

root@debian:~# cat /proc/asound/card0/codec#0 |head -n 25|tail -n 8
  IO[0]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
  IO[1]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
  IO[2]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
  IO[3]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
  IO[4]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
  IO[5]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
  IO[6]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
  IO[7]: enable=1, dir=0, wake=0, sticky=0, data=1, unsol=0

But if i read GPIO_DATA,
root@debian:~# hda-verb /dev/snd/hwC0D0 0x01 GET_GPIO_DATA 0x0
nid = 0x1, verb = 0xf15, param = 0x0
value = 0x80

the value returned is 0x80.
Which leads me to the idea the only type of data you can send is either
0x40 for 1 on SCL, 0x80 for 1 on SDA, or 0x00 for 0 on both( if you enable
mask of SCL it will send 0 to SCL only, and if you enable mask of SDA it
will send 0 to SDA only).

If thats true, you can only send 0/1 to the GPIOs, which means if i have to
send the address of 1st SSM3515 "0x28", I have to send it as "101000" to
the SDA.

How could I try to read register 0x00 of I2C address 0x28  (one of the four
SSM3515 amplifier) ? It should return value 0x83 according to the
documentation of SSM3515 as a "reset value for register 0x00".

If it is true that I can read data with GET_GPIO_DATA will it return as
well only one bit of data like 0/1  at a time? If I need get a value of
0x83 thru the GPIO7 its binary value should be 10000011 , so this means
that If i execute GET_GPIO_DATA   8 times in a row i will receive this
piece by piece 1, 0 , 0 , 0 , 0 , 0 , 1, 1. Meanwhile I try to execute 8
times GET_GPIO_DATA  should i be sending to the SCL (GPIO6) each time a
clock value 0 ? or also a SET_GPIO_DATA value to the GPIO7 with value 0 for
reading?
Please advise.

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

* Re: CS8409 Macbook Pro 2016 2017
  2018-11-23 17:26                           ` David Ulricht
@ 2018-11-27  2:42                             ` David Ulricht
  0 siblings, 0 replies; 17+ messages in thread
From: David Ulricht @ 2018-11-27  2:42 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel

 One thing to note on all I2C interfaces is that when GPIO is driven high
(IN direction,dir=0) on the master (e.g. CS8409), SDA should be a constant
HIGH, e.g. data=1.
No matter if there is any I2C device connected to the bus, if you have a
pull-up it will always pull-up the constant value 1. This 1 is usually a
NACK that get received if you dont find the address.

So far I couldn't get the IO[7] (SDA) with dir=0 (in,also known as HIGH
direction) to deliver a data=1. IO[7] is with constant data=0.  This means
the pull-up is not pulling 1, and the I2C interface is not enabled by
default after reset of the CS8409 codec.
this is expected value for enabled I2C:
  IO[7]: enable=1, dir=0, wake=0, sticky=0, data=*1*, unsol=0
but what I get is:
  IO[7]: enable=1, dir=0, wake=0, sticky=0, data=0, unsol=0  which means
I2C mode not initialized.

I was just going to give up totally, and i looked up into one of my emails
where i found the following:
  IO[7]: enable=1, dir=0, wake=0, sticky=0, data=1, unsol=0
after using my amateur send_sequence script (when i had no idea how I2C
works) or some random sequence of events i executed and I had at this point
IO[7] data as HIGH which means I2C was working at that exact moment.

tho i did decipher the GPIO1ExtAmpCFG=hex:01,00,00,01 which if you check
the schematics, the daisy-chained  CS42L83A codec is powered by GPIO1 on
CS8409 by keeping data=1, because there is pull-down on the CS42L83A's
CODEC_RESET_L.
There is also CODEC_INT_L which is the interrupt line, which is directly
tied to GPIO[0] on CS8409. This actually returns a constant data=1, which
gives some hope as well.
  IO[0]: enable=1, dir=0, wake=0, sticky=0, data=*1*, unsol=1


Opening AppleHDA in IDA reveals AppleHDAFunctionGroupCS4208::enableI2C(bool)
Anyone knowing anything about TDM Config in Cirrus Logic ? Enabling I2C ?
Is it Vendor specific verb ? Maybe it's some general way on most HDA's ?
The reason to have I2C disabled on reset is that some of the devices like
the amps and the speakers need to be configured in a specific order to save
power and to avoid sound glitches.

On Fri, Nov 23, 2018 at 7:26 PM David Ulricht <david.ulricht434@gmail.com>
wrote:

>
> Once when it's confirmed to work from user-space, we can think of the
>> kernel-side implementation, too.  Instead of setting up the whole
>> complex i2c subsystem, we may wire up the existing stuff in
>> sound/i2c/*, too.
>>
> Okay
>
> You should try to initialize over i2c over HD-audio GPIO pins using a
>> user-space program at first.  The GPIO pins can be read/written via
>> hda-verb as I already mentioned, hence you can access to i2c bus from
>> the user-space directly.
>
>
> I have written the following bash script,
>
>> #!/bin/bash
>> # DIR              0 (low) = out   40 (high) = in
>> #            low to write,      high to read
>> # SCL == 0x40      SDA == 0x80
>> function send() {
>> str1=$1
>> str2=$2
>> str3=$3
>> hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK 0x$str1
>> # we send 0 to bus by enabling gpio_dir
>> hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIR 0x$str2
>> # we send data=0 to send to the bus
>> hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x$str3
>> }
>> # reads the values I set, no different return value from i2c/codec
>> function recv() {
>> hda-verb /dev/snd/hwC0D0 0x01 GET_GPIO_MASK 0x$str1
>> hda-verb /dev/snd/hwC0D0 0x01 GET_GPIO_DIR 0x$str2
>> hda-verb /dev/snd/hwC0D0 0x01 GET_GPIO_DATA 0x$str3
>> }
>>
>>
>> function send_sequence() {
>>     data=$1
>>         #split hexes by coma to be able to send 1 by 1
>>     hexes=$(echo $data|tr "," "\n")
>>     for hex in $hexes; do
>>         echo 'sending hex: ' $hex
>>         send 40 0 0 # 0 to scl
>>
> mask of SCL enabled, data 0 , dir 0, is that correct ?
>
>>         sleep 0.003
>>         send 80 0 $hex # send 0x28 to sda if $hex=28
>>
> mask of SDA enabled, direction 0, hex to data
>
>>         sleep 0.003
>>         send 0 40 40 # 1 to scl
>>
> mask of SCL disabled, direction 1, data 1
>
>>         sleep 0.003
>>         echo sent
>>     done
>> }
>>
> below i'm sending the hexes from Win10ini but in the exact same order,
> which worries me a bit, maybe they need to be reversed 4by4?
> like 01,90,02,00,11,01,02 could become: 00,02,90,01,02,01,11 .. because
> for the InitVerbs i did that reversing 4by4 and it works only correctly if
> the hexes are reversed 4by4. (at the end of the email i am attaching the
> exitverbs conversion which is perfect).
>
>> #initi2c
>> send_sequence
>> "01,90,3a,00,10,10,b0,00,1d,01,00,02,06,00,11,07,01,00,10,09,02,07,03,00,12,01,00,08,13,05,ff,06,00,07,20,02,0d,00,2a,02,02,03,00,04,00,05,02,06,00,07,20,08,02,09,00,0a,80,0b,02,0c,00,0d,a0,01,0c,00,29,02,01,03,02,04,00,05,00,01,01,00,11,01,0a,02,84,00,23,01,00,03,00,02,3f,00,20,01,03,00,1b,75,b6,73,c2,00,11,29,01,21,f3,03,20,05,00,12,00,13,80,00,1c,03,c0"
>> #streamstarti2c
>> send_sequence "01,90,02,00,11,01,02"
>> #powerup-amps
>> send_sequence
>> "04,28,2a,2c,2e,07,00,81,01,11,02,32,03,48,04,11,05,10,00,80"
>> send_sequence
>> "01,28,01,05,00,01,2a,01,05,02,01,2c,01,05,01,01,2e,01,05,03"
>> #streamstopi2c
>> send_sequence "01,90,02,00,11,01,0a"
>> #echo read
>> #recv 0 0 0
>>
>
> For example something that works is
>
> "ExitVerbs"=hex:00,05,17,00,01,00,75,04,00,00,74,04,82,00,75,04,00,00,74,04,03,\
>
> 00,75,04,00,80,74,04,04,00,75,04,01,28,74,04,06,00,75,04,00,80,74,04,07,00,\
>   75,04,01,28,74,04,65,00,75,04,00,00,74,04,00,03,77,04,03,05,17,00
>
>> hda-verb /dev/snd/hwC0D0 0x01 0x705 0x00
>> hda-verb /dev/snd/hwC0D0 0x47 0x500 0x01
>> hda-verb /dev/snd/hwC0D0 0x47 0x400 0x00
>> hda-verb /dev/snd/hwC0D0 0x47 0x500 0x82
>> hda-verb /dev/snd/hwC0D0 0x47 0x400 0x00
>> hda-verb /dev/snd/hwC0D0 0x47 0x500 0x03
>> hda-verb /dev/snd/hwC0D0 0x47 0x480 0x00
>> hda-verb /dev/snd/hwC0D0 0x47 0x500 0x04
>> hda-verb /dev/snd/hwC0D0 0x47 0x428 0x01
>> hda-verb /dev/snd/hwC0D0 0x47 0x500 0x06
>> hda-verb /dev/snd/hwC0D0 0x47 0x480 0x00
>> hda-verb /dev/snd/hwC0D0 0x47 0x500 0x07
>> hda-verb /dev/snd/hwC0D0 0x47 0x428 0x01
>> hda-verb /dev/snd/hwC0D0 0x47 0x500 0x65
>> hda-verb /dev/snd/hwC0D0 0x47 0x400 0x00
>> hda-verb /dev/snd/hwC0D0 0x47 0x703 0x00
>> hda-verb /dev/snd/hwC0D0 0x01 0x705 0x03
>>
>> Also InitVerbs from windows10ini and ExitVerbs from windows10ini reversed
> hexes 4by4 sent with hda-verb work perfect. They initiate the CS8409 codec
> or shut it down properly as i can see in the codec#0 status changing from
> D3 to D0 and D0 to D3.
> But the above exitverbs are sent to the widgets AFG node and the 0x47
> widget, (InitVerbs have a few more widgets).
>
> I tried to do the same for the InitI2C hexes, but apperently they are not
> supposed to be send as hexes directly to the widgets like InitVerbs or
> ExitVerbs. All the I2C related stuff are strictly I2C related for executing
> on the SDA/SCL GPIO7/6.
>
> So my idea is, do I need to reverse the hexes 4 by 4, when sending to the
> SDA ?
> And if you have any examples how can i get a read value from the SDA
> please.
>
>
> Btw:
> root@debian:~# cat /proc/asound/card0/codec#0 |head -n 25|tail -n 8
>   IO[0]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
>   IO[1]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
>   IO[2]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
>   IO[3]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
>   IO[4]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
>   IO[5]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
>   IO[6]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
>   IO[7]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
> the default values are IO7 which is GPIO7 which is SDA. is enabled=0 dir=0
> data=0
>
> root@debian:~# hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK 0x80
> nid = 0x1, verb = 0x716, param = 0x80
> value = 0x0
> root@debian:~# hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIR 0x0
> nid = 0x1, verb = 0x717, param = 0x0
> value = 0x0
> root@debian:~# hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x28
> nid = 0x1, verb = 0x715, param = 0x28
> value = 0x0
> After i send the above, data becomes data=1  but i sent 0x28.
>
> root@debian:~# cat /proc/asound/card0/codec#0 |head -n 25|tail -n 8
>   IO[0]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
>   IO[1]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
>   IO[2]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
>   IO[3]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
>   IO[4]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
>   IO[5]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
>   IO[6]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
>   IO[7]: enable=1, dir=0, wake=0, sticky=0, data=1, unsol=0
>
> But if i read GPIO_DATA,
> root@debian:~# hda-verb /dev/snd/hwC0D0 0x01 GET_GPIO_DATA 0x0
> nid = 0x1, verb = 0xf15, param = 0x0
> value = 0x80
>
> the value returned is 0x80.
> Which leads me to the idea the only type of data you can send is either
> 0x40 for 1 on SCL, 0x80 for 1 on SDA, or 0x00 for 0 on both( if you enable
> mask of SCL it will send 0 to SCL only, and if you enable mask of SDA it
> will send 0 to SDA only).
>
> If thats true, you can only send 0/1 to the GPIOs, which means if i have
> to send the address of 1st SSM3515 "0x28", I have to send it as "101000" to
> the SDA.
>
> How could I try to read register 0x00 of I2C address 0x28  (one of the
> four SSM3515 amplifier) ? It should return value 0x83 according to the
> documentation of SSM3515 as a "reset value for register 0x00".
>
> If it is true that I can read data with GET_GPIO_DATA will it return as
> well only one bit of data like 0/1  at a time? If I need get a value of
> 0x83 thru the GPIO7 its binary value should be 10000011 , so this means
> that If i execute GET_GPIO_DATA   8 times in a row i will receive this
> piece by piece 1, 0 , 0 , 0 , 0 , 0 , 1, 1. Meanwhile I try to execute 8
> times GET_GPIO_DATA  should i be sending to the SCL (GPIO6) each time a
> clock value 0 ? or also a SET_GPIO_DATA value to the GPIO7 with value 0 for
> reading?
> Please advise.
>

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

end of thread, other threads:[~2018-11-27  2:42 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-08-04  2:07 CS8409 Macbook Pro 2016 2017 David Ulricht
2018-08-04  2:18 ` David Ulricht
2018-08-04  6:48 ` Takashi Iwai
     [not found]   ` <CALbf9Mw=Y5ddFZDZQ4_mfYCHxKb9XFHN3v5ge0JaTca7NLMM7A@mail.gmail.com>
2018-08-04 16:26     ` Takashi Iwai
     [not found]       ` <CALbf9MwN4pEk26R9c2-UMxzvLXQ3OOBTcqgdSvXeFb-dw7-Wnw@mail.gmail.com>
2018-08-04 17:13         ` Takashi Iwai
2018-08-04 20:30           ` David Ulricht
2018-08-05 18:05             ` Takashi Iwai
2018-08-05 18:58               ` David Ulricht
2018-11-16 14:02               ` David Ulricht
2018-11-16 14:36                 ` Takashi Iwai
2018-11-16 16:50                   ` David Ulricht
2018-11-16 17:31                     ` Takashi Iwai
2018-11-19 17:30                       ` David Ulricht
2018-11-19 18:47                         ` Takashi Iwai
2018-11-23 17:26                           ` David Ulricht
2018-11-27  2:42                             ` David Ulricht
2018-08-05 19:32             ` Lukas Wunner

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.