On 21/02/03 08:45PM, Eugene Moz. wrote:
> Hello, I'm looking to get quad speakers working on my laptop, only 2
> front speakers are working, 2 back speakers are not. I took a
> peek at /usr/src/sys/dev/pci/azalia_codec.c, my 0x10ec0295 codec doesn't
> have explicit support. I might figure how to add support eventualy, I
> used to run Linux on it. I was using this hda-jack-retask.fw patch to get
> all the speakers working there, if anyone is familiar with this. I'll paste it
> here.
>
> $ cat hda-jack-retask.fv
> [codec]
> 0x10ec0295 0x103c827e 0
>
> [pincfg]
> 0x12 0xb7a60130
> 0x13 0x40000000
> 0x14 0x02170150
> 0x16 0x411111f0
> 0x17 0x90170110
> 0x18 0x411111f0
> 0x19 0x50170110
> 0x1a 0x411111f0
> 0x1b 0x411111f0
> 0x1d 0x40600001
> 0x1e 0x411111f0
> 0x21 0x01174150
>
> Would be great to get some tips on this.
>
> # mixerctl -v
> inputs.dac-2:3=158,158
> inputs.dac-0:1=158,158
> record.adc-0:1_mute=off  [ off on ]
> record.adc-0:1=124,124
> record.adc-2:3_mute=off  [ off on ]
> record.adc-2:3=124,124
> record.adc-4:5_mute=off  [ off on ]
> record.adc-4:5=124,124
> inputs.mic=85,85
> outputs.spkr_source=dac-2:3  [ dac-2:3 ]
> outputs.spkr_mute=off  [ off on ]
> outputs.spkr_eapd=on  [ off on ]
> inputs.mic2=85,85
> outputs.mic2_dir=input-vr80  [ none input input-vr0 input-vr50 input-vr80 
> input-vr100 ]
> outputs.hp_source=dac-0:1  [ dac-2:3 dac-0:1 ]
> outputs.hp_mute=off  [ off on ]
> outputs.hp_boost=off  [ off on ]
> outputs.hp_eapd=on  [ off on ]
> record.adc-4:5_source=mic2  { mic2 }
> record.adc-2:3_source=mic2,mic  { mic2 mic }
> record.adc-0:1_source=mic  [ mic ]
> outputs.mic2_sense=unplugged  [ unplugged plugged ]
> outputs.hp_sense=unplugged  [ unplugged plugged ]
> outputs.spkr_muters=hp  { hp }
> outputs.master=158,158
> outputs.master.mute=off  [ off on ]
> outputs.master.slaves=dac-2:3,dac-0:1,spkr,hp  { dac-2:3 dac-0:1 spkr hp }
> record.volume=124,124
> record.volume.mute=off  [ off on ]
> record.volume.slaves=adc-0:1,adc-2:3,adc-4:5  { adc-0:1 adc-2:3 adc-4:5 mic 
> mic2 }
> record.enable=sysctl  [ off on sysctl ]
>
> # dmesg
> OpenBSD 6.8-stable (GENERIC.MP) #0: Tue Feb  2 11:53:42 MSK 2021
>     u...@lap.lan:/sys/arch/amd64/compile/GENERIC.MP
> real mem = 8446021632 (8054MB)
> avail mem = 8175013888 (7796MB)
> random: good seed from bootblocks
> mpath0 at root
> scsibus0 at mpath0: 256 targets
> mainbus0 at root
> bios0 at mainbus0: SMBIOS rev. 2.8 @ 0x3b2d5000 (40 entries)
> bios0: vendor American Megatrends Inc. version "F.50" date 12/12/2019
> bios0: HP HP Spectre x360 Convertible 13-w0XX
> acpi0 at bios0: ACPI 6.1
> acpi0: sleep states S0 S3 S4 S5
> acpi0: tables DSDT FACP APIC FPDT MCFG SSDT FIDT SSDT MSDM SSDT HPET SSDT 
> UEFI SSDT LPIT WSMT SSDT SSDT DBGP DBG2 DMAR NHLT TPM2 ASF! BGRT
> acpi0: wakeup devices PS2K(S3) PS2M(S3) RP09(S4) PXSX(S4) RP10(S4) PXSX(S4) 
> RP11(S4) PXSX(S4) RP12(S4) PXSX(S4) RP13(S4) PXSX(S4) RP01(S4) PXSX(S4) 
> RP02(S4) PXSX(S4) [...]
> acpitimer0 at acpi0: 3579545 Hz, 24 bits
> acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat
> cpu0 at mainbus0: apid 0 (boot processor)
> cpu0: Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz, 3094.06 MHz, 06-8e-09
> cpu0: 
> FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,3DNOWP,PERF,ITSC,FSGSBASE,TSC_ADJUST,SGX,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,MPX,RDSEED,ADX,SMAP,CLFLUSHOPT,PT,SRBDS_CTRL,MD_CLEAR,TSXFA,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,XSAVEC,XGETBV1,XSAVES,MELTDOWN
> cpu0: 256KB 64b/line 8-way L2 cache
> cpu0: smt 0, core 0, package 0
> mtrr: Pentium Pro MTRR support, 10 var ranges, 88 fixed ranges
> cpu0: apic clock running at 24MHz
> cpu0: mwait min=64, max=64, C-substates=0.2.1.2.4.1.1.1, IBE
> cpu1 at mainbus0: apid 2 (application processor)
> cpu1: Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz, 3092.81 MHz, 06-8e-09
> cpu1: 
> FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,3DNOWP,PERF,ITSC,FSGSBASE,TSC_ADJUST,SGX,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,MPX,RDSEED,ADX,SMAP,CLFLUSHOPT,PT,SRBDS_CTRL,MD_CLEAR,TSXFA,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,XSAVEC,XGETBV1,XSAVES,MELTDOWN
> cpu1: 256KB 64b/line 8-way L2 cache
> cpu1: smt 0, core 1, package 0
> cpu2 at mainbus0: apid 1 (application processor)
> cpu2: Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz, 3092.80 MHz, 06-8e-09
> cpu2: 
> FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,3DNOWP,PERF,ITSC,FSGSBASE,TSC_ADJUST,SGX,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,MPX,RDSEED,ADX,SMAP,CLFLUSHOPT,PT,SRBDS_CTRL,MD_CLEAR,TSXFA,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,XSAVEC,XGETBV1,XSAVES,MELTDOWN
> cpu2: 256KB 64b/line 8-way L2 cache
> cpu2: smt 1, core 0, package 0
> cpu3 at mainbus0: apid 3 (application processor)
> cpu3: Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz, 3092.80 MHz, 06-8e-09
> cpu3: 
> FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,3DNOWP,PERF,ITSC,FSGSBASE,TSC_ADJUST,SGX,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,MPX,RDSEED,ADX,SMAP,CLFLUSHOPT,PT,SRBDS_CTRL,MD_CLEAR,TSXFA,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,XSAVEC,XGETBV1,XSAVES,MELTDOWN
> cpu3: 256KB 64b/line 8-way L2 cache
> cpu3: smt 1, core 1, package 0
> ioapic0 at mainbus0: apid 2 pa 0xfec00000, version 20, 120 pins
> acpimcfg0 at acpi0
> acpimcfg0: addr 0xe0000000, bus 0-255
> acpihpet0 at acpi0: 23999999 Hz
> acpiprt0 at acpi0: bus 0 (PCI0)
> acpiprt1 at acpi0: bus -1 (PEG0)
> acpiprt2 at acpi0: bus -1 (PEG1)
> acpiprt3 at acpi0: bus -1 (PEG2)
> acpiprt4 at acpi0: bus 109 (RP09)
> acpiprt5 at acpi0: bus -1 (RP10)
> acpiprt6 at acpi0: bus -1 (RP11)
> acpiprt7 at acpi0: bus -1 (RP12)
> acpiprt8 at acpi0: bus -1 (RP13)
> acpiprt9 at acpi0: bus -1 (RP01)
> acpiprt10 at acpi0: bus 1 (RP02)
> acpiprt11 at acpi0: bus -1 (RP03)
> acpiprt12 at acpi0: bus -1 (RP04)
> acpiprt13 at acpi0: bus 2 (RP05)
> acpiprt14 at acpi0: bus -1 (RP06)
> acpiprt15 at acpi0: bus -1 (RP07)
> acpiprt16 at acpi0: bus -1 (RP08)
> acpiprt17 at acpi0: bus -1 (RP17)
> acpiprt18 at acpi0: bus -1 (RP18)
> acpiprt19 at acpi0: bus -1 (RP19)
> acpiprt20 at acpi0: bus -1 (RP20)
> acpiprt21 at acpi0: bus -1 (RP21)
> acpiprt22 at acpi0: bus -1 (RP22)
> acpiprt23 at acpi0: bus -1 (RP23)
> acpiprt24 at acpi0: bus -1 (RP24)
> acpiprt25 at acpi0: bus -1 (RP14)
> acpiprt26 at acpi0: bus -1 (RP15)
> acpiprt27 at acpi0: bus -1 (RP16)
> acpiec0 at acpi0
> acpiec at acpi0 not configured
> acpipci0 at acpi0 PCI0: 0x00000010 0x00000011 0x00000000
> acpicmos0 at acpi0
> "INT3403" at acpi0 not configured
> "INT3403" at acpi0 not configured
> "INT3403" at acpi0 not configured
> "*SYN323D" at acpi0 not configured
> "INT344B" at acpi0 not configured
> "ELAN0732" at acpi0 not configured
> "HPQ6001" at acpi0 not configured
> "PNP0C14" at acpi0 not configured
> "INT33A1" at acpi0 not configured
> "MSFT0101" at acpi0 not configured
> "PNP0C14" at acpi0 not configured
> acpibat0 at acpi0: BAT0 model "Primary" serial   type LION oem 
> "Hewlett-Packard"
> acpiac0 at acpi0: AC unit online
> acpibtn0 at acpi0: LID0
> acpibtn1 at acpi0: PWRB
> "INT33D6" at acpi0 not configured
> "INT33D3" at acpi0 not configured
> "INT3400" at acpi0 not configured
> acpicpu0 at acpi0: C3(200@1034 mwait.1@0x60), C2(200@151 mwait.1@0x33), 
> C1(1000@1 mwait.1), PSS
> acpicpu1 at acpi0: C3(200@1034 mwait.1@0x60), C2(200@151 mwait.1@0x33), 
> C1(1000@1 mwait.1), PSS
> acpicpu2 at acpi0: C3(200@1034 mwait.1@0x60), C2(200@151 mwait.1@0x33), 
> C1(1000@1 mwait.1), PSS
> acpicpu3 at acpi0: C3(200@1034 mwait.1@0x60), C2(200@151 mwait.1@0x33), 
> C1(1000@1 mwait.1), PSS
> acpipwrres0 at acpi0: WRST
> acpipwrres1 at acpi0: WRST
> acpipwrres2 at acpi0: WRST
> acpipwrres3 at acpi0: WRST
> acpipwrres4 at acpi0: WRST
> acpipwrres5 at acpi0: WRST
> acpipwrres6 at acpi0: WRST
> acpipwrres7 at acpi0: WRST
> acpipwrres8 at acpi0: WRST
> acpipwrres9 at acpi0: WRST
> acpipwrres10 at acpi0: WRST
> acpipwrres11 at acpi0: WRST
> acpipwrres12 at acpi0: WRST
> acpipwrres13 at acpi0: WRST
> acpipwrres14 at acpi0: WRST
> acpipwrres15 at acpi0: WRST
> acpipwrres16 at acpi0: WRST
> acpipwrres17 at acpi0: WRST
> acpipwrres18 at acpi0: WRST
> acpipwrres19 at acpi0: WRST
> acpitz0 at acpi0: no critical temperature defined
> acpivideo0 at acpi0: GFX0
> acpivout0 at acpivideo0: DD1F
> cpu0: using VERW MDS workaround (except on vmm entry)
> cpu0: Enhanced SpeedStep 3094 MHz: speeds: 2601, 2600, 2500, 2400, 2200, 
> 2000, 1900, 1700, 1500, 1400, 1200, 1100, 800, 700, 600, 400 MHz
> pci0 at mainbus0 bus 0
> pchb0 at pci0 dev 0 function 0 "Intel Core 7G Host" rev 0x02
> inteldrm0 at pci0 dev 2 function 0 "Intel HD Graphics 620" rev 0x02
> drm0 at inteldrm0
> inteldrm0: msi, KABYLAKE, gen 9
> "Intel Core 6G Thermal" rev 0x02 at pci0 dev 4 function 0 not configured
> "Intel 100 Series ISH" rev 0x21 at pci0 dev 19 function 0 not configured
> xhci0 at pci0 dev 20 function 0 "Intel 100 Series xHCI" rev 0x21: msi, xHCI 
> 1.0
> usb0 at xhci0: USB revision 3.0
> uhub0 at usb0 configuration 1 interface 0 "Intel xHCI root hub" rev 3.00/1.00 
> addr 1
> pchtemp0 at pci0 dev 20 function 2 "Intel 100 Series Thermal" rev 0x21
> dwiic0 at pci0 dev 21 function 0 "Intel 100 Series I2C" rev 0x21: apic 2 int 
> 16
> iic0 at dwiic0
> ihidev0 at iic0 addr 0x10ihidev0: bad HID descriptor bcdVersion (0xff00)
> , failed fetching initial HID descriptor
> "Intel 100 Series MEI" rev 0x21 at pci0 dev 22 function 0 not configured
> ppb0 at pci0 dev 28 function 0 "Intel 100 Series PCIE" rev 0xf1: msi
> pci1 at ppb0 bus 1
> iwm0 at pci1 dev 0 function 0 "Intel Dual Band Wireless-AC 8265" rev 0x78, msi
> ppb1 at pci0 dev 28 function 4 "Intel 100 Series PCIE" rev 0xf1: msi
> pci2 at ppb1 bus 2
> ppb2 at pci2 dev 0 function 0 "Intel JHL6540 Thunderbolt" rev 0x02
> pci3 at ppb2 bus 3
> ppb3 at pci3 dev 0 function 0 "Intel JHL6540 Thunderbolt" rev 0x02: msi
> pci4 at ppb3 bus 4
> ppb4 at pci3 dev 1 function 0 "Intel JHL6540 Thunderbolt" rev 0x02: msi
> pci5 at ppb4 bus 5
> ppb5 at pci3 dev 2 function 0 "Intel JHL6540 Thunderbolt" rev 0x02: msi
> pci6 at ppb5 bus 56
> xhci1 at pci6 dev 0 function 0 "Intel JHL6540 Thunderbolt" rev 0x02: msi, 
> xHCI 1.10
> usb1 at xhci1: USB revision 3.0
> uhub1 at usb1 configuration 1 interface 0 "Intel xHCI root hub" rev 3.00/1.00 
> addr 1
> ppb6 at pci3 dev 4 function 0 "Intel JHL6540 Thunderbolt" rev 0x02: msi
> pci7 at ppb6 bus 57
> ppb7 at pci0 dev 29 function 0 "Intel 100 Series PCIE" rev 0xf1: msi
> pci8 at ppb7 bus 109
> nvme0 at pci8 dev 0 function 0 "Samsung SM961/PM961 NVMe" rev 0x00: msix, 
> NVMe 1.2
> nvme0: SAMSUNG MZVLW512HMJP-000H1, firmware CXY70H1Q, serial S36ENX0HB24906
> scsibus1 at nvme0: 2 targets, initiator 0
> sd0 at scsibus1 targ 1 lun 0: <NVMe, SAMSUNG MZVLW512, CXY7>
> sd0: 488386MB, 512 bytes/sector, 1000215216 sectors
> pcib0 at pci0 dev 31 function 0 "Intel 200 Series LPC" rev 0x21
> "Intel 100 Series PMC" rev 0x21 at pci0 dev 31 function 2 not configured
> azalia0 at pci0 dev 31 function 3 "Intel 200 Series HD Audio" rev 0x21: msi
> azalia0: codecs: Realtek/0x0295, Intel/0x280b, using Realtek/0x0295
> audio0 at azalia0
> ichiic0 at pci0 dev 31 function 4 "Intel 100 Series SMBus" rev 0x21: apic 2 
> int 16
> iic1 at ichiic0
> isa0 at pcib0
> isadma0 at isa0
> pckbc0 at isa0 port 0x60/5 irq 1 irq 12
> pckbd0 at pckbc0 (kbd slot)
> wskbd0 at pckbd0: console keyboard
> pms0 at pckbc0 (aux slot)
> wsmouse0 at pms0 mux 0
> pms0: Synaptics clickpad, firmware 8.2, 0x1e2b1 0x840300 0x32b940 0xf00123 
> 0x12e800
> pcppi0 at isa0 port 0x61
> spkr0 at pcppi0
> vmm0 at mainbus0: VMX/EPT
> efifb at mainbus0 not configured
> uhidev0 at uhub0 port 1 configuration 1 interface 0 "Logitech USB Receiver" 
> rev 2.00/24.01 addr 2
> uhidev0: iclass 3/1
> ukbd0 at uhidev0: 8 variable keys, 6 key codes
> wskbd1 at ukbd0 mux 1
> uhidev1 at uhub0 port 1 configuration 1 interface 1 "Logitech USB Receiver" 
> rev 2.00/24.01 addr 2
> uhidev1: iclass 3/1, 8 report ids
> ums0 at uhidev1 reportid 2: 16 buttons, Z and W dir
> wsmouse1 at ums0 mux 0
> uhid0 at uhidev1 reportid 3: input=4, output=0, feature=0
> uhid1 at uhidev1 reportid 4: input=1, output=0, feature=0
> uhid2 at uhidev1 reportid 8: input=1, output=0, feature=0
> uhidev2 at uhub0 port 1 configuration 1 interface 2 "Logitech USB Receiver" 
> rev 2.00/24.01 addr 2
> uhidev2: iclass 3/0, 33 report ids
> uhid3 at uhidev2 reportid 16: input=6, output=6, feature=0
> uhid4 at uhidev2 reportid 17: input=19, output=19, feature=0
> uhid5 at uhidev2 reportid 32: input=14, output=14, feature=0
> uhid6 at uhidev2 reportid 33: input=31, output=31, feature=0
> uvideo0 at uhub0 port 5 configuration 1 interface 0 "SuYin HP TrueVision FHD 
> RGB-IR" rev 2.00/0.11 addr 3
> video0 at uvideo0
> ugen0 at uhub0 port 7 "Intel Bluetooth" rev 2.00/0.10 addr 4
> ure0 at uhub1 port 3 configuration 1 interface 0 "Realtek USB 10/100/1000 
> LAN" rev 3.00/30.00 addr 2
> ure0: RTL8153 (0x5c20), address 3c:18:a0:70:3f:a2
> rgephy0 at ure0 phy 0: RTL8251 PHY, rev. 0
> vscsi0 at root
> scsibus2 at vscsi0: 256 targets
> softraid0 at root
> scsibus3 at softraid0: 256 targets
> sd1 at scsibus3 targ 1 lun 0: <OPENBSD, SR CRYPTO, 006>
> sd1: 488385MB, 512 bytes/sector, 1000213601 sectors
> root on sd1a (420106bb3362cfb0.a) swap on sd1b dump on sd1b
> inteldrm0: 1920x1080, 32bpp
> wsdisplay0 at inteldrm0 mux 1: console (std, vt100 emulation), using wskbd0
> wskbd1: connecting to wsdisplay0
> wsdisplay0: screen 1-5 added (std, vt100 emulation)
> iwm0: hw rev 0x230, fw ver 34.0.1, address 00:28:f8:1a:eb:54
> iwm0: fatal firmware error
> iwm0: could not remove MAC context (error 35)
> --
> Eugene Moz.
So, I spent some time on it. Here's what I made:
--- sys/dev/pci/azalia.h.orig   Mon Oct 14 05:04:35 2019
+++ sys/dev/pci/azalia.h        Fri Feb  5 09:13:17 2021
@@ -516,6 +516,7 @@
 #define AZ_QRK_WID_CLOSE_PCBEEP 0x00080000
 #define AZ_QRK_ROUTE_SPKR2_DAC 0x01000000
 #define AZ_QRK_DOLBY_ATMOS     0x02000000
+#define AZ_QRK_HP_X360_FIXUP   0x04000000

 /* memory-mapped types */
 typedef struct {
--- sys/dev/pci/azalia_codec.c.orig     Fri Feb  5 08:27:19 2021
+++ sys/dev/pci/azalia_codec.c  Fri Feb  5 09:23:14 2021
@@ -159,6 +159,11 @@
                    this->subid == 0x503c17aa)
                        this->qrks |= AZ_QRK_WID_TPDOCK2;
                break;
+       case 0x10ec0295:
+               this->name = "Realtek ALC295";
+               if (this->subid == 0x103c827e)
+                       this->qrks = AZ_QRK_HP_X360_FIXUP;
+               break;
        case 0x10ec0298:
                this->name = "Realtek ALC298";
                if (this->subid == 0x320019e5 ||
@@ -2610,6 +2615,56 @@
                    NULL);
                azalia_comresp(this, nid, CORB_SET_PROCESSING_COEFFICIENT,
                    0x57d7, NULL);
+       }
+       if (this->qrks & AZ_QRK_HP_X360_FIXUP) {
+       if (nid == 0x12) {
+               w->d.pin.config = 0xb7a60130;
+               w->enable = 1;
+       }
+       if (nid == 0x13) {
+               w->d.pin.config = 0x40000000;
+               w->enable = 1;
+       }
+       if (nid == 0x14) {
+               w->d.pin.config = 0x02170150;
+               w->enable = 1;
+       }
+       if (nid == 0x16) {
+               w->d.pin.config = 0x411111f0;
+               w->enable = 1;
+       }
+       if (nid == 0x17) {
+               w->d.pin.config = 0x90170110;
+               w->enable = 1;
+       }
+       if (nid == 0x18) {
+               w->d.pin.config = 0x411111f0;
+               w->enable = 1;
+       }
+       if (nid == 0x19) {
+               w->d.pin.config = 0x50170110;
+               w->enable = 1;
+       }
+       if (nid == 0x1a) {
+               w->d.pin.config = 0x411111f0;
+               w->enable = 1;
+       }
+       if (nid == 0x1b) {
+               w->d.pin.config = 0x411111f0;
+               w->enable = 1;
+       }
+       if (nid == 0x1d) {
+               w->d.pin.config = 0x40600001;
+               w->enable = 1;
+       }
+       if (nid == 0x1e) {
+               w->d.pin.config = 0x411111f0;
+               w->enable = 1;
+       }
+       if (nid == 0x21) {
+               w->d.pin.config = 0x01174150;
+               w->enable = 1;
+       }
        }

        return(0);
Now all of my 4 speakers work fine.
I know it's messy, I'll do some more testing later. I reckon some of
those config values are default. Though I did shoot to kill. Please feel
free to correct me, I'm still learning.
P.S. Original message was in @misc, thought know it's worth to reply
progress here in @tech.
--
Eugene Moz.

Reply via email to