thiagotei / linux-realtek-alc287

Solutions for sound issues in Linux for Realtek ALC287
47 stars 3 forks source link

How to make patch of other alc287 laptop #6

Open CicadaSeventeen opened 2 years ago

CicadaSeventeen commented 2 years ago

My friends have Legion laptop with same problem. But we found your patch not work for like Legion 7 2022. I know maybe I should make different patch for it. But could you tell me how?

CicadaSeventeen commented 2 years ago

@cberkenpas

cberkenpas commented 2 years ago

And it's not going to work beyond the 2020 stuff. Which precise model of Legion is it? Share your alsa-info link.

There has been some work for the 2021 stuff (that made it back in February?), that might be applicable with some changes to the 2022 stuff.

CicadaSeventeen commented 2 years ago

And it's not going to work beyond the 2020 stuff. Which precise model of Legion is it? Share your alsa-info link.

There has been some work for the 2021 stuff (that made it back in February?), that might be applicable with some changes to the 2022 stuff.

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

!!Script ran on: Sun Jul 24 01:34:31 UTC 2022

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

ID_LIKE=arch

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

Manufacturer:      LENOVO
Product Name:      82TF
Product Version:   Legion Y9000X IAH7
Firmware Version:  JYCN34WW
System SKU:        LENOVO_MT_82TF_BU_idea_FM_Legion Y9000X IAH7
Board Vendor:      LENOVO
Board Name:        LNVNB161216

!!ACPI Device Status Information
!!---------------

/sys/bus/acpi/devices/ACPI0003:00/status     15
/sys/bus/acpi/devices/ACPI000C:00/status     15
/sys/bus/acpi/devices/ACPI000E:00/status     15
/sys/bus/acpi/devices/CSC3551:00/status      15
/sys/bus/acpi/devices/CUST001:00/status      15
/sys/bus/acpi/devices/INT33A1:00/status      15
/sys/bus/acpi/devices/INT340E:00/status      15
/sys/bus/acpi/devices/INTC1041:00/status     15
/sys/bus/acpi/devices/INTC1046:00/status     15
/sys/bus/acpi/devices/INTC1046:01/status     15
/sys/bus/acpi/devices/INTC1046:02/status     15
/sys/bus/acpi/devices/INTC1046:03/status     15
/sys/bus/acpi/devices/INTC1046:04/status     15
/sys/bus/acpi/devices/INTC1055:00/status     15
/sys/bus/acpi/devices/INTC1099:00/status     15
/sys/bus/acpi/devices/INTC6001:00/status     15
/sys/bus/acpi/devices/LHK2019:00/status      15
/sys/bus/acpi/devices/LNXPOWER:01/status     1
/sys/bus/acpi/devices/LNXPOWER:03/status     1
/sys/bus/acpi/devices/LNXPOWER:05/status     1
/sys/bus/acpi/devices/LNXPOWER:06/status     1
/sys/bus/acpi/devices/LNXPOWER:07/status     1
/sys/bus/acpi/devices/LNXPOWER:08/status     1
/sys/bus/acpi/devices/LNXVIDEO:00/status     15
/sys/bus/acpi/devices/NVDA0820:00/status     15
/sys/bus/acpi/devices/PNP0103:00/status      15
/sys/bus/acpi/devices/PNP0C02:02/status      8
/sys/bus/acpi/devices/PNP0C02:04/status      3
/sys/bus/acpi/devices/PNP0C02:05/status      3
/sys/bus/acpi/devices/PNP0C09:00/status      15
/sys/bus/acpi/devices/PNP0C0A:00/status      31
/sys/bus/acpi/devices/PNP0C0C:00/status      11
/sys/bus/acpi/devices/PNP0C0D:00/status      15
/sys/bus/acpi/devices/PRP00001:00/status     11
/sys/bus/acpi/devices/PRP00001:01/status     11
/sys/bus/acpi/devices/USBC000:00/status      15
/sys/bus/acpi/devices/VPC2004:00/status      15
/sys/bus/acpi/devices/device:01/status   15
/sys/bus/acpi/devices/device:04/status   15
/sys/bus/acpi/devices/device:07/status   15
/sys/bus/acpi/devices/device:1b/status   15
/sys/bus/acpi/devices/device:91/status   15
/sys/bus/acpi/devices/device:92/status   15
/sys/bus/acpi/devices/device:93/status   15
/sys/bus/acpi/devices/device:95/status   15
/sys/bus/acpi/devices/device:96/status   15
/sys/bus/acpi/devices/device:97/status   15
/sys/bus/acpi/devices/device:9c/status   15
/sys/bus/acpi/devices/device:a3/status   15
/sys/bus/acpi/devices/device:a5/status   15

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

Kernel release:    5.15.55-1-MANJARO
Operating System:  GNU/Linux
Architecture:      x86_64
Processor:         unknown
SMP Enabled:       Yes

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

Driver version:     k5.15.55-1-MANJARO
Library version:    1.2.7.2
Utilities version:  1.2.7

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

snd_hda_intel (card 0)
snd_soc_skl_hda_dsp (card 1)

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

PipeWire:
      Installed - Yes (/usr/bin/pipewire)
      Running - Yes

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

Jack:
      Installed - Yes (/usr/bin/jackd)
      Running - No

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

 0 [NVidia         ]: HDA-Intel - HDA NVidia
                      HDA NVidia at 0x80000000 irq 17
 1 [sofhdadsp      ]: sof-hda-dsp - sof-hda-dsp
                      LENOVO-82TF-LegionY9000XIAH7-LNVNB161216

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

00:1f.3 Multimedia audio controller [0401]: Intel Corporation Alder Lake PCH-P High Definition Audio Controller [8086:51c8] (rev 01)
    Subsystem: Lenovo Device [17aa:388e]
01:00.1 Audio device [0403]: NVIDIA Corporation GA106 High Definition Audio Controller [10de:228e] (rev a1)
    Subsystem: Lenovo Device [17aa:3803]

!!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
    dmic_detect : Y
    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 : (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)
    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 : 1
    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

!!Module: snd_soc_skl_hda_dsp
    * : 

!!Sysfs card info
!!---------------

!!Card: /sys/class/sound/card0
Driver: /sys/bus/pci/drivers/snd_hda_intel
Tree:
    /sys/class/sound/card0
    |-- controlC0
    |   |-- dev
    |   |-- device -> ../../card0
    |   |-- power
    |   |-- subsystem -> ../../../../../../../class/sound
    |   `-- uevent
    |-- device -> ../../../0000:01:00.1
    |-- hwC0D0
    |   |-- afg
    |   |-- chip_name
    |   |-- clear
    |   |-- dev
    |   |-- device -> ../../card0
    |   |-- driver_pin_configs
    |   |-- hints
    |   |-- init_pin_configs
    |   |-- init_verbs
    |   |-- mfg
    |   |-- modelname
    |   |-- power
    |   |-- power_off_acct
    |   |-- power_on_acct
    |   |-- reconfig
    |   |-- revision_id
    |   |-- subsystem -> ../../../../../../../class/sound
    |   |-- subsystem_id
    |   |-- uevent
    |   |-- user_pin_configs
    |   |-- vendor_id
    |   `-- vendor_name
    |-- id
    |-- input11
    |   |-- capabilities
    |   |-- device -> ../../card0
    |   |-- event12
    |   |-- id
    |   |-- inhibited
    |   |-- modalias
    |   |-- name
    |   |-- phys
    |   |-- power
    |   |-- properties
    |   |-- subsystem -> ../../../../../../../class/input
    |   |-- uevent
    |   `-- uniq
    |-- input12
    |   |-- capabilities
    |   |-- device -> ../../card0
    |   |-- event13
    |   |-- id
    |   |-- inhibited
    |   |-- modalias
    |   |-- name
    |   |-- phys
    |   |-- power
    |   |-- properties
    |   |-- subsystem -> ../../../../../../../class/input
    |   |-- uevent
    |   `-- uniq
    |-- input13
    |   |-- capabilities
    |   |-- device -> ../../card0
    |   |-- event14
    |   |-- id
    |   |-- inhibited
    |   |-- modalias
    |   |-- name
    |   |-- phys
    |   |-- power
    |   |-- properties
    |   |-- subsystem -> ../../../../../../../class/input
    |   |-- uevent
    |   `-- uniq
    |-- input14
    |   |-- capabilities
    |   |-- device -> ../../card0
    |   |-- event15
    |   |-- id
    |   |-- inhibited
    |   |-- modalias
    |   |-- name
    |   |-- phys
    |   |-- power
    |   |-- properties
    |   |-- subsystem -> ../../../../../../../class/input
    |   |-- uevent
    |   `-- uniq
    |-- input15
    |   |-- capabilities
    |   |-- device -> ../../card0
    |   |-- event16
    |   |-- id
    |   |-- inhibited
    |   |-- modalias
    |   |-- name
    |   |-- phys
    |   |-- power
    |   |-- properties
    |   |-- subsystem -> ../../../../../../../class/input
    |   |-- uevent
    |   `-- uniq
    |-- number
    |-- pcmC0D10p
    |   |-- dev
    |   |-- device -> ../../card0
    |   |-- pcm_class
    |   |-- power
    |   |-- subsystem -> ../../../../../../../class/sound
    |   `-- uevent
    |-- pcmC0D3p
    |   |-- dev
    |   |-- device -> ../../card0
    |   |-- pcm_class
    |   |-- power
    |   |-- subsystem -> ../../../../../../../class/sound
    |   `-- uevent
    |-- pcmC0D7p
    |   |-- dev
    |   |-- device -> ../../card0
    |   |-- pcm_class
    |   |-- power
    |   |-- subsystem -> ../../../../../../../class/sound
    |   `-- uevent
    |-- pcmC0D8p
    |   |-- dev
    |   |-- device -> ../../card0
    |   |-- pcm_class
    |   |-- power
    |   |-- subsystem -> ../../../../../../../class/sound
    |   `-- uevent
    |-- pcmC0D9p
    |   |-- dev
    |   |-- device -> ../../card0
    |   |-- pcm_class
    |   |-- power
    |   |-- subsystem -> ../../../../../../../class/sound
    |   `-- uevent
    |-- power
    |   |-- autosuspend_delay_ms
    |   |-- control
    |   |-- runtime_active_time
    |   |-- runtime_status
    |   `-- runtime_suspended_time
    |-- subsystem -> ../../../../../../class/sound
    `-- uevent

!!Card: /sys/class/sound/card1
Driver: /sys/bus/platform/drivers/skl_hda_dsp_generic
Tree:
    /sys/class/sound/card1
    |-- controlC1
    |   |-- dev
    |   |-- device -> ../../card1
    |   |-- power
    |   |-- subsystem -> ../../../../../../../class/sound
    |   `-- uevent
    |-- device -> ../../../skl_hda_dsp_generic
    |-- hwC1D0
    |   |-- afg
    |   |-- chip_name
    |   |-- clear
    |   |-- dev
    |   |-- device -> ../../card1
    |   |-- driver_pin_configs
    |   |-- hints
    |   |-- init_pin_configs
    |   |-- init_verbs
    |   |-- mfg
    |   |-- modelname
    |   |-- power
    |   |-- power_off_acct
    |   |-- power_on_acct
    |   |-- reconfig
    |   |-- revision_id
    |   |-- subsystem -> ../../../../../../../class/sound
    |   |-- subsystem_id
    |   |-- uevent
    |   |-- user_pin_configs
    |   |-- vendor_id
    |   `-- vendor_name
    |-- hwC1D2
    |   |-- afg
    |   |-- chip_name
    |   |-- clear
    |   |-- dev
    |   |-- device -> ../../card1
    |   |-- driver_pin_configs
    |   |-- hints
    |   |-- init_pin_configs
    |   |-- init_verbs
    |   |-- mfg
    |   |-- modelname
    |   |-- power
    |   |-- power_off_acct
    |   |-- power_on_acct
    |   |-- reconfig
    |   |-- revision_id
    |   |-- subsystem -> ../../../../../../../class/sound
    |   |-- subsystem_id
    |   |-- uevent
    |   |-- user_pin_configs
    |   |-- vendor_id
    |   `-- vendor_name
    |-- id
    |-- input25
    |   |-- capabilities
    |   |-- device -> ../../card1
    |   |-- event20
    |   |-- id
    |   |-- inhibited
    |   |-- modalias
    |   |-- name
    |   |-- phys
    |   |-- power
    |   |-- properties
    |   |-- subsystem -> ../../../../../../../class/input
    |   |-- uevent
    |   `-- uniq
    |-- input26
    |   |-- capabilities
    |   |-- device -> ../../card1
    |   |-- event21
    |   |-- id
    |   |-- inhibited
    |   |-- modalias
    |   |-- name
    |   |-- phys
    |   |-- power
    |   |-- properties
    |   |-- subsystem -> ../../../../../../../class/input
    |   |-- uevent
    |   `-- uniq
    |-- input27
    |   |-- capabilities
    |   |-- device -> ../../card1
    |   |-- event22
    |   |-- id
    |   |-- inhibited
    |   |-- modalias
    |   |-- name
    |   |-- phys
    |   |-- power
    |   |-- properties
    |   |-- subsystem -> ../../../../../../../class/input
    |   |-- uevent
    |   `-- uniq
    |-- input28
    |   |-- capabilities
    |   |-- device -> ../../card1
    |   |-- event23
    |   |-- id
    |   |-- inhibited
    |   |-- modalias
    |   |-- name
    |   |-- phys
    |   |-- power
    |   |-- properties
    |   |-- subsystem -> ../../../../../../../class/input
    |   |-- uevent
    |   `-- uniq
    |-- input29
    |   |-- capabilities
    |   |-- device -> ../../card1
    |   |-- event24
    |   |-- id
    |   |-- inhibited
    |   |-- modalias
    |   |-- name
    |   |-- phys
    |   |-- power
    |   |-- properties
    |   |-- subsystem -> ../../../../../../../class/input
    |   |-- uevent
    |   `-- uniq
    |-- number
    |-- pcmC1D0c
    |   |-- dev
    |   |-- device -> ../../card1
    |   |-- pcm_class
    |   |-- power
    |   |-- subsystem -> ../../../../../../../class/sound
    |   `-- uevent
    |-- pcmC1D0p
    |   |-- dev
    |   |-- device -> ../../card1
    |   |-- pcm_class
    |   |-- power
    |   |-- subsystem -> ../../../../../../../class/sound
    |   `-- uevent
    |-- pcmC1D3p
    |   |-- dev
    |   |-- device -> ../../card1
    |   |-- pcm_class
    |   |-- power
    |   |-- subsystem -> ../../../../../../../class/sound
    |   `-- uevent
    |-- pcmC1D4p
    |   |-- dev
    |   |-- device -> ../../card1
    |   |-- pcm_class
    |   |-- power
    |   |-- subsystem -> ../../../../../../../class/sound
    |   `-- uevent
    |-- pcmC1D5p
    |   |-- dev
    |   |-- device -> ../../card1
    |   |-- pcm_class
    |   |-- power
    |   |-- subsystem -> ../../../../../../../class/sound
    |   `-- uevent
    |-- pcmC1D6c
    |   |-- dev
    |   |-- device -> ../../card1
    |   |-- pcm_class
    |   |-- power
    |   |-- subsystem -> ../../../../../../../class/sound
    |   `-- uevent
    |-- pcmC1D7c
    |   |-- dev
    |   |-- device -> ../../card1
    |   |-- pcm_class
    |   |-- power
    |   |-- subsystem -> ../../../../../../../class/sound
    |   `-- uevent
    |-- power
    |   |-- autosuspend_delay_ms
    |   |-- control
    |   |-- runtime_active_time
    |   |-- runtime_status
    |   `-- runtime_suspended_time
    |-- subsystem -> ../../../../../../class/sound
    `-- uevent

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

Codec: Nvidia GPU 9f HDMI/DP
Address: 0
AFG Function Id: 0x1 (unsol 1)
Vendor Id: 0x10de009f
Subsystem Id: 0x17aa3803
Revision Id: 0x100100
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 D1 D2 D3 CLKSTOP EPSS
  Power: setting=D0, actual=D0
GPIO: io=0, o=0, i=0, unsolicited=0, wake=0
Node 0x04 [Pin Complex] wcaps 0x407381: 8-Channels Digital CP
  Pincap 0x09000094: OUT Detect HBR HDMI DP
  Pin Default 0x185600f0: [Jack] Digital Out at Int HDMI
    Conn = Digital, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0
  Pin-ctls: 0x00:
  Unsolicited: tag=01, enabled=1
  Devices: 4
     Dev 00: PD = 0, ELDV = 0, IA = 0, Connections [ 0x08* 0x09 0x0a 0x0b ]
     Dev 01: PD = 0, ELDV = 0, IA = 0, Connections [ 0x08* 0x09 0x0a 0x0b ]
     Dev 02: PD = 0, ELDV = 0, IA = 0, Connections [ 0x08* 0x09 0x0a 0x0b ]
    *Dev 03: PD = 0, ELDV = 0, IA = 0, Connections [ 0x08* 0x09 0x0a 0x0b ]
  Connection: 4
     0x08* 0x09 0x0a 0x0b
Node 0x05 [UNKNOWN Widget] wcaps 0x0: Mono
Node 0x06 [Pin Complex] wcaps 0x407381: 8-Channels Digital CP
  Pincap 0x09000094: OUT Detect HBR HDMI DP
  Pin Default 0x185600f0: [Jack] Digital Out at Int HDMI
    Conn = Digital, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0
  Pin-ctls: 0x00:
  Unsolicited: tag=05, enabled=1
  Devices: 4
     Dev 00: PD = 0, ELDV = 0, IA = 0, Connections [ 0x08* 0x09 0x0a 0x0b ]
     Dev 01: PD = 0, ELDV = 0, IA = 0, Connections [ 0x08* 0x09 0x0a 0x0b ]
     Dev 02: PD = 0, ELDV = 0, IA = 0, Connections [ 0x08* 0x09 0x0a 0x0b ]
    *Dev 03: PD = 0, ELDV = 0, IA = 0, Connections [ 0x08* 0x09 0x0a 0x0b ]
  Connection: 4
     0x08* 0x09 0x0a 0x0b
Node 0x07 [UNKNOWN Widget] wcaps 0x0: Mono
Node 0x08 [Audio Output] wcaps 0x62b1: 8-Channels Digital Stripe
  Converter: stream=0, channel=0
  Digital:
  Digital category: 0x0
  IEC Coding Type: 0x0
  PCM:
    rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000
    bits [0xe]: 16 20 24
    formats [0x5]: PCM AC3
  Unsolicited: tag=00, enabled=0
Node 0x09 [Audio Output] wcaps 0x62b1: 8-Channels Digital Stripe
  Converter: stream=0, channel=0
  Digital:
  Digital category: 0x0
  IEC Coding Type: 0x0
  PCM:
    rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000
    bits [0xe]: 16 20 24
    formats [0x5]: PCM AC3
  Unsolicited: tag=00, enabled=0
Node 0x0a [Audio Output] wcaps 0x62b1: 8-Channels Digital Stripe
  Converter: stream=0, channel=0
  Digital:
  Digital category: 0x0
  IEC Coding Type: 0x0
  PCM:
    rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000
    bits [0xe]: 16 20 24
    formats [0x5]: PCM AC3
  Unsolicited: tag=00, enabled=0
Node 0x0b [Audio Output] wcaps 0x62b1: 8-Channels Digital Stripe
  Converter: stream=0, channel=0
  Digital:
  Digital category: 0x0
  IEC Coding Type: 0x0
  PCM:
    rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000
    bits [0xe]: 16 20 24
    formats [0x5]: PCM AC3
  Unsolicited: tag=00, enabled=0
Codec: Realtek ALC287
Address: 0
AFG Function Id: 0x1 (unsol 1)
Vendor Id: 0x10ec0287
Subsystem Id: 0x17aa386e
Revision Id: 0x100002
No Modem Function Group found
Default PCM:
    rates [0x560]: 44100 48000 96000 192000
    bits [0xe]: 16 20 24
    formats [0x1]: PCM
Default Amp-In caps: N/A
Default Amp-Out caps: N/A
State of AFG node 0x01:
  Power states:  D0 D1 D2 D3 D3cold CLKSTOP EPSS
  Power: setting=D0, actual=D0
GPIO: io=5, o=0, i=0, unsolicited=1, wake=0
  IO[0]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
  IO[1]: enable=0, dir=0, wake=0, sticky=0, data=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
Node 0x02 [Audio Output] wcaps 0x41d: Stereo Amp-Out
  Control: name="Headphone Playback Volume", index=0, device=0
    ControlAmp: chs=3, dir=Out, idx=0, ofs=0
  Amp-Out caps: ofs=0x57, nsteps=0x57, stepsize=0x02, mute=0
  Amp-Out vals:  [0x27 0x27]
  Converter: stream=0, channel=0
  PCM:
    rates [0x40]: 48000
    bits [0xe]: 16 20 24
    formats [0x1]: PCM
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x03 [Audio Output] wcaps 0x41d: Stereo Amp-Out
  Control: name="Speaker Playback Volume", index=0, device=0
    ControlAmp: chs=3, dir=Out, idx=0, ofs=0
  Amp-Out caps: ofs=0x57, nsteps=0x57, stepsize=0x02, mute=0
  Amp-Out vals:  [0x3b 0x3b]
  Converter: stream=0, channel=0
  PCM:
    rates [0x40]: 48000
    bits [0xe]: 16 20 24
    formats [0x1]: PCM
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x04 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x05 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x06 [Audio Output] wcaps 0x411: Stereo
  Converter: stream=0, channel=0
  PCM:
    rates [0x40]: 48000
    bits [0xe]: 16 20 24
    formats [0x1]: PCM
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x07 [Audio Input] wcaps 0x10051b: Stereo Amp-In
  Amp-In caps: ofs=0x17, nsteps=0x3f, stepsize=0x02, mute=1
  Amp-In vals:  [0x97 0x97]
  Converter: stream=0, channel=0
  SDI-Select: 0
  PCM:
    rates [0x40]: 48000
    bits [0xe]: 16 20 24
    formats [0x1]: PCM
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 1
     0x24
Node 0x08 [Audio Input] wcaps 0x10051b: Stereo Amp-In
  Control: name="Capture Volume", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=0, ofs=0
  Control: name="Capture Switch", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=0, ofs=0
  Amp-In caps: ofs=0x17, nsteps=0x3f, stepsize=0x02, mute=1
  Amp-In vals:  [0x26 0x26]
  Converter: stream=0, channel=0
  SDI-Select: 0
  PCM:
    rates [0x560]: 44100 48000 96000 192000
    bits [0xe]: 16 20 24
    formats [0x1]: PCM
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 1
     0x23
Node 0x09 [Audio Input] wcaps 0x10051b: Stereo Amp-In
  Amp-In caps: ofs=0x17, nsteps=0x3f, stepsize=0x02, mute=1
  Amp-In vals:  [0x97 0x97]
  Converter: stream=0, channel=0
  SDI-Select: 0
  PCM:
    rates [0x560]: 44100 48000 96000 192000
    bits [0xe]: 16 20 24
    formats [0x1]: PCM
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 1
     0x22
Node 0x0a [Audio Input] wcaps 0x10051b: Stereo Amp-In
  Amp-In caps: ofs=0x17, nsteps=0x3f, stepsize=0x02, mute=1
  Amp-In vals:  [0x97 0x97]
  Converter: stream=0, channel=0
  SDI-Select: 0
  PCM:
    rates [0x40]: 48000
    bits [0xe]: 16 20 24
    formats [0x1]: PCM
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 1
     0x25
Node 0x0b [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x0c [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x0d [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x0e [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x0f [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x10 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x11 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x12 [Pin Complex] wcaps 0x40040b: Stereo Amp-In
  Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
  Amp-In vals:  [0x00 0x00]
  Pincap 0x00000020: IN
  Pin Default 0x40000000: [N/A] Line Out at Ext N/A
    Conn = Unknown, Color = Unknown
    DefAssociation = 0x0, Sequence = 0x0
  Pin-ctls: 0x00:
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x13 [Pin Complex] wcaps 0x40040b: Stereo Amp-In
  Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
  Amp-In vals:  [0x00 0x00]
  Pincap 0x00000020: IN
  Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
    Conn = 1/8, Color = Black
    DefAssociation = 0xf, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x00:
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x14 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out
  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-Out vals:  [0x80 0x80]
  Pincap 0x00010014: OUT EAPD Detect
  EAPD 0x2: EAPD
  Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
    Conn = 1/8, Color = Black
    DefAssociation = 0xf, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x00:
  Unsolicited: tag=00, enabled=0
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 1
     0x02
Node 0x15 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x16 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x17 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out
  Control: name="Speaker Playback Switch", index=0, device=0
    ControlAmp: chs=3, dir=Out, idx=0, ofs=0
  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-Out vals:  [0x00 0x00]
  Pincap 0x0000001c: OUT HP Detect
  Pin Default 0x90170110: [Fixed] Speaker at Int N/A
    Conn = Analog, Color = Unknown
    DefAssociation = 0x1, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x40: OUT
  Unsolicited: tag=00, enabled=0
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 4
     0x02 0x03* 0x06 0x08
Node 0x18 [Pin Complex] wcaps 0x40048b: Stereo Amp-In
  Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
  Amp-In vals:  [0x00 0x00]
  Pincap 0x00000024: IN Detect
  Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
    Conn = 1/8, Color = Black
    DefAssociation = 0xf, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x00:
  Unsolicited: tag=00, enabled=0
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x19 [Pin Complex] wcaps 0x40048b: Stereo Amp-In
  Control: name="Mic Boost Volume", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=0, ofs=0
  Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
  Amp-In vals:  [0x00 0x00]
  Pincap 0x00003724: IN Detect
    Vref caps: HIZ 50 GRD 80 100
  Pin Default 0x03a11030: [Jack] Mic at Ext Left
    Conn = 1/8, Color = Black
    DefAssociation = 0x3, Sequence = 0x0
  Pin-ctls: 0x24: IN VREF_80
  Unsolicited: tag=02, enabled=1
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x1a [Pin Complex] wcaps 0x40048b: Stereo Amp-In
  Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
  Amp-In vals:  [0x00 0x00]
  Pincap 0x00003724: IN Detect
    Vref caps: HIZ 50 GRD 80 100
  Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
    Conn = 1/8, Color = Black
    DefAssociation = 0xf, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x00: VREF_HIZ
  Unsolicited: tag=00, enabled=0
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x1b [Pin Complex] wcaps 0x40058f: Stereo Amp-In Amp-Out
  Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
  Amp-In vals:  [0x00 0x00]
  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-Out vals:  [0x80 0x80]
  Pincap 0x00013734: IN OUT EAPD Detect
    Vref caps: HIZ 50 GRD 80 100
  EAPD 0x2: EAPD
  Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
    Conn = 1/8, Color = Black
    DefAssociation = 0xf, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x00: VREF_HIZ
  Unsolicited: tag=00, enabled=0
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 2
     0x02* 0x03
Node 0x1c [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x1d [Pin Complex] wcaps 0x400400: Mono
  Pincap 0x00000020: IN
  Pin Default 0x40600001: [N/A] Modem Line at Ext N/A
    Conn = Unknown, Color = Unknown
    DefAssociation = 0x0, Sequence = 0x1
  Pin-ctls: 0x20: IN
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x1e [Pin Complex] wcaps 0x400501: Stereo
  Pincap 0x00000010: OUT
  Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
    Conn = 1/8, Color = Black
    DefAssociation = 0xf, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x40: OUT
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 1
     0x06
Node 0x1f [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x20 [Vendor Defined Widget] wcaps 0xf00040: Mono
  Processing caps: benign=0, ncoeff=142
Node 0x21 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out
  Control: name="Headphone Playback Switch", index=0, device=0
    ControlAmp: chs=3, dir=Out, idx=0, ofs=0
  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-Out vals:  [0x80 0x80]
  Pincap 0x0001001c: OUT HP EAPD Detect
  EAPD 0x2: EAPD
  Pin Default 0x03211020: [Jack] HP Out at Ext Left
    Conn = 1/8, Color = Black
    DefAssociation = 0x2, Sequence = 0x0
  Pin-ctls: 0xc0: OUT HP
  Unsolicited: tag=01, enabled=1
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 2
     0x02* 0x03
Node 0x22 [Audio Mixer] wcaps 0x20010b: Stereo Amp-In
  Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-In vals:  [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80]
  Connection: 5
     0x19 0x1a 0x1b 0x1d 0x13
Node 0x23 [Audio Mixer] wcaps 0x20010b: Stereo Amp-In
  Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-In vals:  [0x00 0x00] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80]
  Connection: 5
     0x19 0x1a 0x1b 0x1d 0x12
Node 0x24 [Audio Selector] wcaps 0x300101: Stereo
  Connection: 3
     0x12* 0x13 0x18
Node 0x25 [Audio Selector] wcaps 0x300101: Stereo
  Connection: 2
     0x12* 0x13
Codec: Intel Alderlake-P HDMI
Address: 2
AFG Function Id: 0x1 (unsol 0)
Vendor Id: 0x8086281c
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 0x03 [Audio Output] wcaps 0x6611: 8-Channels Digital
  Converter: stream=0, channel=0
  Digital: Enabled
  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 [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 0x09000094: 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
Node 0x05 [Audio Output] wcaps 0x6611: 8-Channels Digital
  Converter: stream=0, channel=0
  Digital: Enabled
  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 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 0x09000094: 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
Node 0x07 [Audio Output] wcaps 0x6611: 8-Channels Digital
  Converter: stream=0, channel=0
  Digital: Enabled
  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 0x08 [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 0x09000094: 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
Node 0x09 [Audio Output] wcaps 0x6611: 8-Channels Digital
  Converter: stream=0, channel=0
  Digital: Enabled
  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 0x0a [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 0x09000094: 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
Node 0x0b [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 0x09000094: 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
Node 0x0c [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 0x09000094: 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
Node 0x0d [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 0x09000094: 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
Node 0x0e [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 0x09000094: 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
Node 0x0f [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 0x09000094: 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
--endcollapse--

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

crw-rw----+ 1 root audio 116,  8 Jul 24 09:21 /dev/snd/controlC0
crw-rw----+ 1 root audio 116, 18 Jul 24 09:21 /dev/snd/controlC1
crw-rw----+ 1 root audio 116,  7 Jul 24 09:21 /dev/snd/hwC0D0
crw-rw----+ 1 root audio 116, 17 Jul 24 09:21 /dev/snd/hwC1D0
crw-rw----+ 1 root audio 116, 16 Jul 24 09:21 /dev/snd/hwC1D2
crw-rw----+ 1 root audio 116,  6 Jul 24 09:21 /dev/snd/pcmC0D10p
crw-rw----+ 1 root audio 116,  2 Jul 24 09:21 /dev/snd/pcmC0D3p
crw-rw----+ 1 root audio 116,  3 Jul 24 09:21 /dev/snd/pcmC0D7p
crw-rw----+ 1 root audio 116,  4 Jul 24 09:21 /dev/snd/pcmC0D8p
crw-rw----+ 1 root audio 116,  5 Jul 24 09:21 /dev/snd/pcmC0D9p
crw-rw----+ 1 root audio 116, 12 Jul 24 09:21 /dev/snd/pcmC1D0c
crw-rw----+ 1 root audio 116, 11 Jul 24 09:33 /dev/snd/pcmC1D0p
crw-rw----+ 1 root audio 116, 13 Jul 24 09:21 /dev/snd/pcmC1D3p
crw-rw----+ 1 root audio 116, 14 Jul 24 09:21 /dev/snd/pcmC1D4p
crw-rw----+ 1 root audio 116, 15 Jul 24 09:21 /dev/snd/pcmC1D5p
crw-rw----+ 1 root audio 116,  9 Jul 24 09:21 /dev/snd/pcmC1D6c
crw-rw----+ 1 root audio 116, 10 Jul 24 09:21 /dev/snd/pcmC1D7c
crw-rw----+ 1 root audio 116,  1 Jul 24 09:21 /dev/snd/seq
crw-rw----+ 1 root audio 116, 33 Jul 24 09:21 /dev/snd/timer

/dev/snd/by-path:
total 0
drwxr-xr-x 2 root root  80 Jul 24 09:21 .
drwxr-xr-x 3 root root 440 Jul 24 09:21 ..
lrwxrwxrwx 1 root root  12 Jul 24 09:21 pci-0000:00:1f.3-platform-skl_hda_dsp_generic -> ../controlC1
lrwxrwxrwx 1 root root  12 Jul 24 09:21 pci-0000:01:00.1 -> ../controlC0

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

APLAY

**** List of PLAYBACK Hardware Devices ****
card 0: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 9: HDMI 3 [HDMI 3]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 10: HDMI 4 [HDMI 4]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: sofhdadsp [sof-hda-dsp], device 0: HDA Analog (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: sofhdadsp [sof-hda-dsp], device 3: HDMI1 (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: sofhdadsp [sof-hda-dsp], device 4: HDMI2 (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: sofhdadsp [sof-hda-dsp], device 5: HDMI3 (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0

ARECORD

**** List of CAPTURE Hardware Devices ****
card 1: sofhdadsp [sof-hda-dsp], device 0: HDA Analog (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: sofhdadsp [sof-hda-dsp], device 6: DMIC (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: sofhdadsp [sof-hda-dsp], device 7: DMIC16kHz (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0

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

!!-------Mixer controls for card NVidia

Card sysdefault:0 'NVidia'/'HDA NVidia at 0x80000000 irq 17'
  Mixer name    : 'Nvidia GPU 9f HDMI/DP'
  Components    : 'HDA:10de009f,17aa3803,00100100'
  Controls      : 35
  Simple ctrls  : 5
Simple mixer control 'IEC958',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
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]

!!-------Mixer controls for card sofhdadsp

Card sysdefault:1 'sofhdadsp'/'LENOVO-82TF-LegionY9000XIAH7-LNVNB161216'
  Mixer name    : 'Realtek ALC287'
  Components    : 'HDA:8086281c,80860101,00100000 HDA:10ec0287,17aa386e,00100002 cfg-dmics:2'
  Controls      : 46
  Simple ctrls  : 17
Simple mixer control 'Master',0
  Capabilities: pvolume pvolume-joined pswitch pswitch-joined
  Playback channels: Mono
  Limits: Playback 0 - 87
  Mono: Playback 87 [100%] [0.00dB] [on]
Simple mixer control 'Headphone',0
  Capabilities: pvolume pswitch
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 87
  Mono:
  Front Left: Playback 39 [45%] [-36.00dB] [off]
  Front Right: Playback 39 [45%] [-36.00dB] [off]
Simple mixer control 'Speaker',0
  Capabilities: pvolume pswitch
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 87
  Mono:
  Front Left: Playback 59 [68%] [-21.00dB] [on]
  Front Right: Playback 59 [68%] [-21.00dB] [on]
Simple mixer control 'Mic Boost',0
  Capabilities: volume
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: 0 - 3
  Front Left: 0 [0%] [0.00dB]
  Front Right: 0 [0%] [0.00dB]
Simple mixer control 'IEC958',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
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 'Capture',0
  Capabilities: cvolume cswitch
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 63
  Front Left: Capture 38 [60%] [11.25dB] [on]
  Front Right: Capture 38 [60%] [11.25dB] [on]
Simple mixer control 'Auto-Mute Mode',0
  Capabilities: enum
  Items: 'Disabled' 'Enabled'
  Item0: 'Disabled'
Simple mixer control 'Dmic0',0
  Capabilities: cvolume cswitch
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 70
  Front Left: Capture 70 [100%] [20.00dB] [on]
  Front Right: Capture 70 [100%] [20.00dB] [on]
Simple mixer control 'Dmic1 2nd',0
  Capabilities: cvolume
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 70
  Front Left: Capture 50 [71%] [0.00dB]
  Front Right: Capture 50 [71%] [0.00dB]
Simple mixer control 'PGA1.0 1 Master',0
  Capabilities: pvolume
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 32
  Mono:
  Front Left: Playback 32 [100%] [0.00dB]
  Front Right: Playback 32 [100%] [0.00dB]
Simple mixer control 'PGA2.0 2 Master',0
  Capabilities: cvolume
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 80
  Front Left: Capture 50 [62%] [0.00dB]
  Front Right: Capture 50 [62%] [0.00dB]
Simple mixer control 'PGA30.0 30',0
  Capabilities: pvolume
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 32
  Mono:
  Front Left: Playback 32 [100%] [0.00dB]
  Front Right: Playback 32 [100%] [0.00dB]
Simple mixer control 'PGA7.0 7 Master',0
  Capabilities: pvolume
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 32
  Mono:
  Front Left: Playback 32 [100%] [0.00dB]
  Front Right: Playback 32 [100%] [0.00dB]
Simple mixer control 'PGA8.0 8 Master',0
  Capabilities: pvolume
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 32
  Mono:
  Front Left: Playback 32 [100%] [0.00dB]
  Front Right: Playback 32 [100%] [0.00dB]
Simple mixer control 'PGA9.0 9 Master',0
  Capabilities: pvolume
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 32
  Mono:
  Front Left: Playback 32 [100%] [0.00dB]
  Front Right: Playback 32 [100%] [0.00dB]

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

--startcollapse--
state.NVidia {
    control.1 {
        iface CARD
        name 'HDMI/DP,pcm=3 Jack'
        value false
        comment {
            access read
            type BOOLEAN
            count 1
        }
    }
    control.2 {
        iface MIXER
        name 'IEC958 Playback Con Mask'
        value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
        comment {
            access read
            type IEC958
            count 1
        }
    }
    control.3 {
        iface MIXER
        name 'IEC958 Playback Pro Mask'
        value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
        comment {
            access read
            type IEC958
            count 1
        }
    }
    control.4 {
        iface MIXER
        name 'IEC958 Playback Default'
        value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
        comment {
            access 'read write'
            type IEC958
            count 1
        }
    }
    control.5 {
        iface MIXER
        name 'IEC958 Playback Switch'
        value true
        comment {
            access 'read write'
            type BOOLEAN
            count 1
        }
    }
    control.6 {
        iface PCM
        device 3
        name ELD
        value ''
        comment {
            access 'read volatile'
            type BYTES
            count 0
        }
    }
    control.7 {
        iface CARD
        name 'HDMI/DP,pcm=7 Jack'
        value false
        comment {
            access read
            type BOOLEAN
            count 1
        }
    }
    control.8 {
        iface MIXER
        name 'IEC958 Playback Con Mask'
        index 1
        value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
        comment {
            access read
            type IEC958
            count 1
        }
    }
    control.9 {
        iface MIXER
        name 'IEC958 Playback Pro Mask'
        index 1
        value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
        comment {
            access read
            type IEC958
            count 1
        }
    }
    control.10 {
        iface MIXER
        name 'IEC958 Playback Default'
        index 1
        value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
        comment {
            access 'read write'
            type IEC958
            count 1
        }
    }
    control.11 {
        iface MIXER
        name 'IEC958 Playback Switch'
        index 1
        value true
        comment {
            access 'read write'
            type BOOLEAN
            count 1
        }
    }
    control.12 {
        iface PCM
        device 7
        name ELD
        value ''
        comment {
            access 'read volatile'
            type BYTES
            count 0
        }
    }
    control.13 {
        iface CARD
        name 'HDMI/DP,pcm=8 Jack'
        value false
        comment {
            access read
            type BOOLEAN
            count 1
        }
    }
    control.14 {
        iface MIXER
        name 'IEC958 Playback Con Mask'
        index 2
        value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
        comment {
            access read
            type IEC958
            count 1
        }
    }
    control.15 {
        iface MIXER
        name 'IEC958 Playback Pro Mask'
        index 2
        value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
        comment {
            access read
            type IEC958
            count 1
        }
    }
    control.16 {
        iface MIXER
        name 'IEC958 Playback Default'
        index 2
        value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
        comment {
            access 'read write'
            type IEC958
            count 1
        }
    }
    control.17 {
        iface MIXER
        name 'IEC958 Playback Switch'
        index 2
        value true
        comment {
            access 'read write'
            type BOOLEAN
            count 1
        }
    }
    control.18 {
        iface PCM
        device 8
        name ELD
        value ''
        comment {
            access 'read volatile'
            type BYTES
            count 0
        }
    }
    control.19 {
        iface CARD
        name 'HDMI/DP,pcm=9 Jack'
        value false
        comment {
            access read
            type BOOLEAN
            count 1
        }
    }
    control.20 {
        iface MIXER
        name 'IEC958 Playback Con Mask'
        index 3
        value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
        comment {
            access read
            type IEC958
            count 1
        }
    }
    control.21 {
        iface MIXER
        name 'IEC958 Playback Pro Mask'
        index 3
        value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
        comment {
            access read
            type IEC958
            count 1
        }
    }
    control.22 {
        iface MIXER
        name 'IEC958 Playback Default'
        index 3
        value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
        comment {
            access 'read write'
            type IEC958
            count 1
        }
    }
    control.23 {
        iface MIXER
        name 'IEC958 Playback Switch'
        index 3
        value true
        comment {
            access 'read write'
            type BOOLEAN
            count 1
        }
    }
    control.24 {
        iface PCM
        device 9
        name ELD
        value ''
        comment {
            access 'read volatile'
            type BYTES
            count 0
        }
    }
    control.25 {
        iface CARD
        name 'HDMI/DP,pcm=10 Jack'
        value false
        comment {
            access read
            type BOOLEAN
            count 1
        }
    }
    control.26 {
        iface MIXER
        name 'IEC958 Playback Con Mask'
        index 4
        value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
        comment {
            access read
            type IEC958
            count 1
        }
    }
    control.27 {
        iface MIXER
        name 'IEC958 Playback Pro Mask'
        index 4
        value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
        comment {
            access read
            type IEC958
            count 1
        }
    }
    control.28 {
        iface MIXER
        name 'IEC958 Playback Default'
        index 4
        value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
        comment {
            access 'read write'
            type IEC958
            count 1
        }
    }
    control.29 {
        iface MIXER
        name 'IEC958 Playback Switch'
        index 4
        value true
        comment {
            access 'read write'
            type BOOLEAN
            count 1
        }
    }
    control.30 {
        iface PCM
        device 10
        name ELD
        value ''
        comment {
            access 'read volatile'
            type BYTES
            count 0
        }
    }
    control.31 {
        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.32 {
        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.33 {
        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.34 {
        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.35 {
        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'
        }
    }
}
state.sofhdadsp {
    control.1 {
        iface MIXER
        name 'Headphone Playback Volume'
        value.0 39
        value.1 39
        comment {
            access 'read write'
            type INTEGER
            count 2
            range '0 - 87'
            dbmin -6525
            dbmax 0
            dbvalue.0 -3600
            dbvalue.1 -3600
        }
    }
    control.2 {
        iface MIXER
        name 'Headphone Playback Switch'
        value.0 false
        value.1 false
        comment {
            access 'read write'
            type BOOLEAN
            count 2
        }
    }
    control.3 {
        iface MIXER
        name 'Speaker Playback Volume'
        value.0 59
        value.1 59
        comment {
            access 'read write'
            type INTEGER
            count 2
            range '0 - 87'
            dbmin -6525
            dbmax 0
            dbvalue.0 -2100
            dbvalue.1 -2100
        }
    }
    control.4 {
        iface MIXER
        name 'Speaker Playback Switch'
        value.0 true
        value.1 true
        comment {
            access 'read write'
            type BOOLEAN
            count 2
        }
    }
    control.5 {
        iface MIXER
        name 'Auto-Mute Mode'
        value Disabled
        comment {
            access 'read write'
            type ENUMERATED
            count 1
            item.0 Disabled
            item.1 Enabled
        }
    }
    control.6 {
        iface MIXER
        name 'Capture Volume'
        value.0 38
        value.1 38
        comment {
            access 'read write'
            type INTEGER
            count 2
            range '0 - 63'
            dbmin -1725
            dbmax 3000
            dbvalue.0 1125
            dbvalue.1 1125
        }
    }
    control.7 {
        iface MIXER
        name 'Capture Switch'
        value.0 true
        value.1 true
        comment {
            access 'read write'
            type BOOLEAN
            count 2
        }
    }
    control.8 {
        iface MIXER
        name 'Mic Boost Volume'
        value.0 0
        value.1 0
        comment {
            access 'read write'
            type INTEGER
            count 2
            range '0 - 3'
            dbmin 0
            dbmax 3000
            dbvalue.0 0
            dbvalue.1 0
        }
    }
    control.9 {
        iface MIXER
        name 'Master Playback Volume'
        value 87
        comment {
            access 'read write'
            type INTEGER
            count 1
            range '0 - 87'
            dbmin -6525
            dbmax 0
            dbvalue.0 0
        }
    }
    control.10 {
        iface MIXER
        name 'Master Playback Switch'
        value true
        comment {
            access 'read write'
            type BOOLEAN
            count 1
        }
    }
    control.11 {
        iface CARD
        name 'Mic Jack'
        value false
        comment {
            access read
            type BOOLEAN
            count 1
        }
    }
    control.12 {
        iface CARD
        name 'Headphone Jack'
        value false
        comment {
            access read
            type BOOLEAN
            count 1
        }
    }
    control.13 {
        iface CARD
        name 'Speaker Phantom Jack'
        value true
        comment {
            access read
            type BOOLEAN
            count 1
        }
    }
    control.14 {
        iface CARD
        name 'HDMI/DP,pcm=3 Jack'
        value false
        comment {
            access read
            type BOOLEAN
            count 1
        }
    }
    control.15 {
        iface MIXER
        name 'IEC958 Playback Con Mask'
        value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
        comment {
            access read
            type IEC958
            count 1
        }
    }
    control.16 {
        iface MIXER
        name 'IEC958 Playback Pro Mask'
        value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
        comment {
            access read
            type IEC958
            count 1
        }
    }
    control.17 {
        iface MIXER
        name 'IEC958 Playback Default'
        value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
        comment {
            access 'read write'
            type IEC958
            count 1
        }
    }
    control.18 {
        iface MIXER
        name 'IEC958 Playback Switch'
        value true
        comment {
            access 'read write'
            type BOOLEAN
            count 1
        }
    }
    control.19 {
        iface PCM
        device 3
        name ELD
        value ''
        comment {
            access 'read volatile'
            type BYTES
            count 0
        }
    }
    control.20 {
        iface CARD
        name 'HDMI/DP,pcm=4 Jack'
        value false
        comment {
            access read
            type BOOLEAN
            count 1
        }
    }
    control.21 {
        iface MIXER
        name 'IEC958 Playback Con Mask'
        index 1
        value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
        comment {
            access read
            type IEC958
            count 1
        }
    }
    control.22 {
        iface MIXER
        name 'IEC958 Playback Pro Mask'
        index 1
        value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
        comment {
            access read
            type IEC958
            count 1
        }
    }
    control.23 {
        iface MIXER
        name 'IEC958 Playback Default'
        index 1
        value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
        comment {
            access 'read write'
            type IEC958
            count 1
        }
    }
    control.24 {
        iface MIXER
        name 'IEC958 Playback Switch'
        index 1
        value true
        comment {
            access 'read write'
            type BOOLEAN
            count 1
        }
    }
    control.25 {
        iface PCM
        device 4
        name ELD
        value ''
        comment {
            access 'read volatile'
            type BYTES
            count 0
        }
    }
    control.26 {
        iface CARD
        name 'HDMI/DP,pcm=5 Jack'
        value false
        comment {
            access read
            type BOOLEAN
            count 1
        }
    }
    control.27 {
        iface MIXER
        name 'IEC958 Playback Con Mask'
        index 2
        value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
        comment {
            access read
            type IEC958
            count 1
        }
    }
    control.28 {
        iface MIXER
        name 'IEC958 Playback Pro Mask'
        index 2
        value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
        comment {
            access read
            type IEC958
            count 1
        }
    }
    control.29 {
        iface MIXER
        name 'IEC958 Playback Default'
        index 2
        value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
        comment {
            access 'read write'
            type IEC958
            count 1
        }
    }
    control.30 {
        iface MIXER
        name 'IEC958 Playback Switch'
        index 2
        value true
        comment {
            access 'read write'
            type BOOLEAN
            count 1
        }
    }
    control.31 {
        iface PCM
        device 5
        name ELD
        value ''
        comment {
            access 'read volatile'
            type BYTES
            count 0
        }
    }
    control.32 {
        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.33 {
        iface PCM
        device 4
        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.34 {
        iface PCM
        device 5
        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.35 {
        iface MIXER
        name 'PGA1.0 1 Master Playback Volume'
        value.0 32
        value.1 32
        comment {
            access 'read write'
            type INTEGER
            count 2
            range '0 - 32'
            dbmin -9999999
            dbmax 0
            dbvalue.0 0
            dbvalue.1 0
        }
    }
    control.36 {
        iface MIXER
        name 'PGA2.0 2 Master Capture Volume'
        value.0 50
        value.1 50
        comment {
            access 'read write'
            type INTEGER
            count 2
            range '0 - 80'
            dbmin -9999999
            dbmax 3000
            dbvalue.0 0
            dbvalue.1 0
        }
    }
    control.38 {
        iface MIXER
        name 'PGA7.0 7 Master Playback Volume'
        value.0 32
        value.1 32
        comment {
            access 'read write'
            type INTEGER
            count 2
            range '0 - 32'
            dbmin -9999999
            dbmax 0
            dbvalue.0 0
            dbvalue.1 0
        }
    }
    control.39 {
        iface MIXER
        name 'PGA8.0 8 Master Playback Volume'
        value.0 32
        value.1 32
        comment {
            access 'read write'
            type INTEGER
            count 2
            range '0 - 32'
            dbmin -9999999
            dbmax 0
            dbvalue.0 0
            dbvalue.1 0
        }
    }
    control.40 {
        iface MIXER
        name 'PGA9.0 9 Master Playback Volume'
        value.0 32
        value.1 32
        comment {
            access 'read write'
            type INTEGER
            count 2
            range '0 - 32'
            dbmin -9999999
            dbmax 0
            dbvalue.0 0
            dbvalue.1 0
        }
    }
    control.41 {
        iface MIXER
        name 'Dmic0 Capture Volume'
        value.0 70
        value.1 70
        comment {
            access 'read write'
            type INTEGER
            count 2
            range '0 - 70'
            dbmin -9999999
            dbmax 2000
            dbvalue.0 2000
            dbvalue.1 2000
        }
    }
    control.42 {
        iface MIXER
        name 'Dmic0 Capture Switch'
        value.0 true
        value.1 true
        comment {
            access 'read write'
            type BOOLEAN
            count 2
        }
    }
    control.44 {
        iface MIXER
        name 'Dmic1 2nd Capture Volume'
        value.0 50
        value.1 50
        comment {
            access 'read write'
            type INTEGER
            count 2
            range '0 - 70'
            dbmin -9999999
            dbmax 2000
            dbvalue.0 0
            dbvalue.1 0
        }
    }
    control.46 {
        iface MIXER
        name 'PGA30.0 30 Playback Volume'
        value.0 32
        value.1 32
        comment {
            access 'read write'
            type INTEGER
            count 2
            range '0 - 32'
            dbmin -9999999
            dbmax 0
            dbvalue.0 0
            dbvalue.1 0
        }
    }
}
--endcollapse--

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

ac97_bus
acpi_pad
acpi_tad
acpi_thermal_rel
aesni_intel
af_alg
algif_hash
algif_skcipher
bluetooth
bnep
btbcm
btintel
btrtl
btusb
ccm
cfg80211
cmac
coretemp
crc16
crc32_pclmul
crc32c_generic
crc32c_intel
crct10dif_pclmul
cryptd
crypto_simd
crypto_user
ecdh_generic
ext4
fat
firmware_attributes_class
fuse
ghash_clmulni_intel
hid_multitouch
i2c_hid
i2c_hid_acpi
i2c_i801
i2c_smbus
i8042
i915
iTCO_vendor_support
iTCO_wdt
ideapad_laptop
idma64
igen6_edac
int3400_thermal
int3403_thermal
int340x_thermal_zone
intel_cstate
intel_gtt
intel_lpss
intel_lpss_pci
intel_pmc_bxt
intel_pmt
intel_powerclamp
intel_rapl_common
intel_rapl_msr
intel_spi
intel_spi_pci
intel_tcc_cooling
intel_uncore
ip6_tables
ip6table_nat
ip_tables
iptable_filter
iptable_mangle
iptable_nat
irqbypass
iwlmvm
iwlwifi
jbd2
joydev
kvm
kvm_intel
ledtrig_audio
libarc4
libcrc32c
mac80211
mac_hid
mbcache
mei
mei_hdcp
mei_me
mmc_core
mousedev
mtd
nf_conntrack
nf_defrag_ipv4
nf_defrag_ipv6
nf_nat
nf_tproxy_ipv4
nf_tproxy_ipv6
ns
nvidia
nvidia_drm
nvidia_modeset
nvidia_uvm
pcspkr
platform_profile
pmt_class
pmt_telemetry
processor_thermal_device
processor_thermal_device_pci
processor_thermal_mbox
processor_thermal_rapl
processor_thermal_rfim
qrtr
rapl
rfcomm
rfkill
rng_core
roles
rtsx_pci
rtsx_pci_sdmmc
serio
snd
snd_compress
snd_hda_codec
snd_hda_codec_generic
snd_hda_codec_hdmi
snd_hda_codec_realtek
snd_hda_core
snd_hda_ext_core
snd_hda_intel
snd_hwdep
snd_intel_dspcfg
snd_intel_sdw_acpi
snd_pcm
snd_pcm_dmaengine
snd_soc_acpi
snd_soc_acpi_intel_match
snd_soc_core
snd_soc_dmic
snd_soc_hdac_hda
snd_soc_hdac_hdmi
snd_soc_intel_hda_dsp_common
snd_soc_skl_hda_dsp
snd_sof
snd_sof_intel_hda
snd_sof_intel_hda_common
snd_sof_pci
snd_sof_pci_intel_tgl
snd_sof_xtensa_dsp
snd_timer
soundcore
soundwire_bus
soundwire_cadence
soundwire_generic_allocation
soundwire_intel
sparse_keymap
spi_nor
think_lmi
thunderbolt
tpm
tpm_crb
tpm_tis
tpm_tis_core
ttm
typec
typec_ucsi
uas
ucsi_acpi
usb_storage
usbhid
vfat
video
wmi
wmi_bmof
x86_pkg_temp_thermal
x_tables
xhci_pci
xt_REDIRECT
xt_TPROXY
xt_mark

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

/sys/class/sound/hwC0D0/init_pin_configs:
0x04 0x185600f0
0x06 0x185600f0

/sys/class/sound/hwC0D0/driver_pin_configs:

/sys/class/sound/hwC0D0/user_pin_configs:

/sys/class/sound/hwC0D0/init_verbs:

/sys/class/sound/hwC0D0/hints:

/sys/class/sound/hwC1D0/init_pin_configs:
0x12 0x40000000
0x13 0x411111f0
0x14 0x411111f0
0x17 0x90170110
0x18 0x411111f0
0x19 0x03a11030
0x1a 0x411111f0
0x1b 0x411111f0
0x1d 0x40600001
0x1e 0x411111f0
0x21 0x03211020

/sys/class/sound/hwC1D0/driver_pin_configs:

/sys/class/sound/hwC1D0/user_pin_configs:

/sys/class/sound/hwC1D0/init_verbs:

/sys/class/sound/hwC1D0/hints:

/sys/class/sound/hwC1D2/init_pin_configs:
0x04 0x18560010
0x06 0x18560010
0x08 0x18560010
0x0a 0x18560010
0x0b 0x18560010
0x0c 0x18560010
0x0d 0x18560010
0x0e 0x18560010
0x0f 0x18560010

/sys/class/sound/hwC1D2/driver_pin_configs:

/sys/class/sound/hwC1D2/user_pin_configs:

/sys/class/sound/hwC1D2/init_verbs:

/sys/class/sound/hwC1D2/hints:

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

[    0.164890] ACPI: Added _OSI(Linux-Dell-Video)
[    0.164890] ACPI: Added _OSI(Linux-Lenovo-NV-HDMI-Audio)
[    0.164890] ACPI: Added _OSI(Linux-HPI-Hybrid-Graphics)
--
[    3.696113] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[    3.699203] snd_hda_intel 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100
[    3.699217] snd_hda_intel 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
[    3.699265] snd_hda_intel 0000:01:00.1: enabling device (0000 -> 0002)
[    3.699344] snd_hda_intel 0000:01:00.1: Disabling MSI
[    3.699347] snd_hda_intel 0000:01:00.1: Handle vga_switcheroo audio client
[    3.707673] intel-lpss 0000:00:15.0: enabling device (0000 -> 0002)
--
[    3.891213] hid-generic 0018:06CB:CE44.0005: input,hidraw4: I2C HID v1.00 Mouse [CUST001:00 06CB:CE44] on i2c-CUST001:00
[    3.891681] input: HDA NVidia HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card0/input11
[    3.891709] input: HDA NVidia HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card0/input12
[    3.891739] input: HDA NVidia HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card0/input13
[    3.891761] input: HDA NVidia HDMI/DP,pcm=9 as /devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card0/input14
[    3.891785] input: HDA NVidia HDMI/DP,pcm=10 as /devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card0/input15
[    3.958668] i801_smbus 0000:00:1f.4: enabling device (0000 -> 0003)
--
[    4.332151] i915 0000:00:02.0: [drm] failed to retrieve link info, disabling eDP
[    4.371956] sof-audio-pci-intel-tgl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100
[    4.371970] sof-audio-pci-intel-tgl 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
[    4.371998] sof-audio-pci-intel-tgl 0000:00:1f.3: enabling device (0000 -> 0002)
[    4.372149] sof-audio-pci-intel-tgl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100
[    4.463283] i915 0000:00:02.0: [drm] GuC firmware i915/adlp_guc_62.0.3.bin version 62.0 submission:enabled
--
[    4.677806] WARNING: CPU: 4 PID: 471 at drivers/gpu/drm/i915/display/intel_pps.c:591 intel_pps_vdd_on_unlocked+0x2a3/0x2b0 [i915]
[    4.678392] Modules linked in: snd_sof_pci_intel_tgl snd_sof_intel_hda_common soundwire_intel soundwire_generic_allocation soundwire_cadence snd_sof_intel_hda snd_sof_pci snd_sof_xtensa_dsp snd_sof snd_soc_hdac_hda snd_hda_ext_core snd_soc_acpi_intel_match snd_soc_acpi soundwire_bus ledtrig_audio iwlmvm snd_soc_core intel_spi_pci snd_compress intel_spi mac80211 spi_nor i2c_i801 ac97_bus libarc4 mtd i2c_smbus snd_pcm_dmaengine iwlwifi mei_me snd_hda_codec_hdmi mei snd_hda_intel snd_intel_dspcfg intel_lpss_pci intel_lpss snd_intel_sdw_acpi idma64 cfg80211 snd_hda_codec usbhid snd_hda_core processor_thermal_device_pci snd_hwdep processor_thermal_device thunderbolt i915(+) intel_pmt snd_pcm processor_thermal_rfim snd_timer processor_thermal_mbox processor_thermal_rapl snd ttm intel_rapl_common qrtr intel_gtt soundcore igen6_edac ns ucsi_acpi typec_ucsi typec roles mac_hid nvidia_uvm(POE) i2c_hid_acpi i2c_hid ideapad_laptop sparse_keymap platform_profile i8042 serio rfkill int3403_thermal
[    4.678577]  int340x_thermal_zone wmi tpm_crb video tpm_tis tpm_tis_core tpm int3400_thermal rng_core acpi_thermal_rel acpi_tad acpi_pad nvidia_drm(POE) nvidia_modeset(POE) nvidia(POE) vfat fat fuse crypto_user ip_tables x_tables ext4 crc32c_generic crc16 mbcache jbd2 rtsx_pci_sdmmc mmc_core rtsx_pci crc32c_intel xhci_pci
--
[    5.605319] input: Video Bus as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:01/input/input20
[    5.605601] sof-audio-pci-intel-tgl 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
[    5.610314] fbcon: i915drmfb (fb0) is primary device
--
[    5.643322] i915 0000:00:02.0: [drm] fb0: i915drmfb frame buffer device
[    5.698072] sof-audio-pci-intel-tgl 0000:00:1f.3: use msi interrupt mode
[    5.800154] sof-audio-pci-intel-tgl 0000:00:1f.3: hda codecs found, mask 5
[    5.800160] sof-audio-pci-intel-tgl 0000:00:1f.3: using HDA machine driver skl_hda_dsp_generic now
[    5.800166] sof-audio-pci-intel-tgl 0000:00:1f.3: DMICs detected in NHLT tables: 2
[    5.801397] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:2:0-57864
[    5.801401] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:18:0
[    5.801405] sof-audio-pci-intel-tgl 0000:00:1f.3: warn: FW ABI is more recent than kernel
[    5.801409] sof-audio-pci-intel-tgl 0000:00:1f.3: unknown sof_ext_man header type 3 size 0x30
[    5.916017] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:2:0-57864
[    5.916037] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:18:0
[    5.916048] sof-audio-pci-intel-tgl 0000:00:1f.3: warn: FW ABI is more recent than kernel
[    7.342227] input: PC Speaker as /devices/platform/pcspkr/input/input21
--
[   10.054029] Bluetooth: BNEP socket layer initialized
[   10.062297] sof-audio-pci-intel-tgl 0000:00:1f.3: Topology: ABI 3:22:1 Kernel ABI 3:18:0
[   10.062301] sof-audio-pci-intel-tgl 0000:00:1f.3: warn: topology ABI is more recent than kernel
[   10.086233] sof-audio-pci-intel-tgl 0000:00:1f.3: ASoC: Parent card not yet available, widget card binding deferred
[   10.115861] snd_hda_codec_realtek ehdaudio0D0: autoconfig for ALC287: line_outs=1 (0x17/0x0/0x0/0x0/0x0) type:speaker
[   10.115868] snd_hda_codec_realtek ehdaudio0D0:    speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
[   10.115871] snd_hda_codec_realtek ehdaudio0D0:    hp_outs=1 (0x21/0x0/0x0/0x0/0x0)
[   10.115873] snd_hda_codec_realtek ehdaudio0D0:    mono: mono_out=0x0
[   10.115875] snd_hda_codec_realtek ehdaudio0D0:    inputs:
[   10.115876] snd_hda_codec_realtek ehdaudio0D0:      Mic=0x19
[   10.162381] snd_hda_codec_realtek ehdaudio0D0: ASoC: sink widget AIF1TX overwritten
[   10.162405] snd_hda_codec_realtek ehdaudio0D0: ASoC: source widget AIF1RX overwritten
[   10.162763] skl_hda_dsp_generic skl_hda_dsp_generic: ASoC: sink widget hifi3 overwritten
--
[   10.162922] skl_hda_dsp_generic skl_hda_dsp_generic: ASoC: source widget Alt Analog Codec Capture overwritten
[   10.162953] skl_hda_dsp_generic skl_hda_dsp_generic: hda_dsp_hdmi_build_controls: no PCM in topology for HDMI converter 3

[   10.186632] input: sof-hda-dsp Mic as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card1/input25
[   10.186808] input: sof-hda-dsp Headphone as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card1/input26
[   10.187203] input: sof-hda-dsp HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card1/input27
[   10.187353] input: sof-hda-dsp HDMI/DP,pcm=4 as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card1/input28
[   10.187457] input: sof-hda-dsp HDMI/DP,pcm=5 as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card1/input29
[   10.358549] scsi 0:0:0:0: Direct-Access     hp       v220w            1.00 PQ: 0 ANSI: 4
cberkenpas commented 2 years ago

Good news. Since I see /sys/bus/acpi/devices/CSC3551, you are very close to having working sound is my guess! Someone submitted a patch to work with the CSC3551: https://mailman.alsa-project.org/pipermail/alsa-devel/2022-July/203133.html

Looks like they weren't accepting anymore patches until their firmware support was merged in, which it finally has been if I've followed alsa-devel correctly.

You probably need to clone the linux-sound tree, apply the patch in the email, and then add something like this to sound/pci/hda/patch_realtek.c: SND_PCI_QUIRK(0x17aa, 3803, "Lenovo Y9000X ", ALC287_FIXUP_CS35L41_I2C_2),

But double check the values of the first 2 arguments to SND_PCI_QUIRK() to make sure I've done them correctly, because I'm sort of winging it at the moment.

Let me know how it goes and/or if you need help... I could create a patch myself, but it sounds like you probably know how already.

Also, how do you like this laptop? I'm sort of thinking of maybe getting one a few months down the line. Does everything else run okay under Linux? :)

cberkenpas commented 2 years ago

Scratch that... I am potentially interested in the next Legion 7, which I thought yours was initially. But everything else still applies.

EclecticScholar commented 11 months ago

@cberkenpas

I am going to apply your patch from this thread: https://bugzilla.kernel.org/show_bug.cgi?id=216194

on my Legion Slim 7 Gen 7 (2022) AMD version, but I do not know which attachment to use? Also, can I use the instructions in this repo with the alternate patch? I'm on Fedora if that's relevant. I've never applied a kernel patch before and would like to not brick my system lol.

Thank you so much for all of your work, I am excited to not have to use bluetooth speakers all the time.

cberkenpas commented 11 months ago

Probably this one: lenovo-7i-gen7-sound-6.2.0-rc3-0.0.5b-002.patch

Probably doesn't apply to the latest 6.5 series. Maybe 6.2.

This is a kernel source patch. You need to apply the patch using the patch command compile a new kernel. It's definitely different from the Intel HDA patch.

jeremy-rutman commented 4 months ago

Is the above advice relevant for a 16IAX7 running Ubuntu 24.04 (kernel 6.8.0 or newer)? My alsa info is here . alsamixer shows pipewire, nvidia, and intel soundcards, none of which produce sound from the builtin speaker. sudo alsa force-reload doesn't help, neither does modifying /etc/modprobe.d/alsa-base.conf by adding lines

options snd-hda-intel model=auto
blacklist snd_soc_avs

I tried applying the verbs but this also did not cause the speakers to work, as far as I can tell.

camberkenpas commented 4 months ago

You can try the latest patch from here if you know how to compile your own kernel: https://bugzilla.kernel.org/show_bug.cgi?id=216194

Looks like someone else has done some maintenance on the patch! https://bugzilla.kernel.org/show_bug.cgi?id=216194#c142

Will this work on 6.8..? Even if it doesn't, since there's a version for 6.7.3, probably wouldn't be too hard to port it over. Maybe the one who made that patch could update it for 6.8. I could potentially do it if they're unable IF I can find some time, I just can't test/verify it anymore as I don't have the 16IAX7 anymore.

jeremy-rutman commented 4 months ago

Ok I will try some of these steps - I did find that the hardware listed here refers to a Realtek® ALC3306, while alsamixer and the system profile from alsa info report the ALC287, perhaps this is a source of trouble?

camberkenpas commented 4 months ago

Ok I will try some of these steps - I did find that the hardware listed here refers to a Realtek® ALC3306, while alsamixer and the system profile from alsa info report the ALC287, perhaps this is a source of trouble?

That is definitely not the issue.

The issue is that the laptop has Cirrus Logic amplifier chips. Linux supports these smart amps, but needs values on how to config them. The drivers expect these values to basically be stored in the BIOS, but they aren't there. Lenovo could add them in a BIOS update, but is uninterested in doing so (I'm sure Lenovo would need to determine what the values should be and then validate under both Linux and Windows which is probably why don't want to do it).

What this patch does is mostly just plug in some guessed values. Using incorrect values can cause physical damage to your speakers... but I used this this patch for about a year without any issues.. If anything, the values are probably safe because they don't far enough (the sound isn't as loud under Linux).

Because the patch just guesses at the values, it's just a hack and can never be accepted into the mainline kernel tree.

The values are supposed to be in the DSD table. You could theoretically do a DSDT override (which would get your sound working without patching and building your own kernel), but I couldn't get it to work. At one point I managed to get a little sound this way... but it was very buggy. Sound would go in and out, I think there were a few speaker pops so I gave up (because I don't want to risk damaging the hardware).

camberkenpas commented 4 months ago

As luck would have it... On a thread I'm following on the Lenovo forums, someone has working sound with Linux 6.8.8 on your laptop: https://forums.lenovo.com/t5/Ubuntu/Ubuntu-and-legion-pro-7-16IRX8H-audio-issues/m-p/5210709?page=29#6326649

It's from commit 24b6332c2d4ff08fb7601ac8f751a5ba51e0ebd3

Looks like there's a generic fallback from Cirrus Logic Smart Amps since around December now?? The above commit applies this fallback to the

Looks like this made it into the 6.8 series, which I think Ubuntu 24.04 has (and what you're running looking at your alsa-info). But maybe the vendor kernel with 24.04 isn't quite recent enough?

That forum post indicates success using an Ubuntu mainline kernel. Seems 6.8.8 (which is currently the latest 6.8 kernel) definitely works: https://kernel.ubuntu.com/mainline/

jeremy-rutman commented 3 months ago

I tried kernel 6.8.8 but still don't get audio. I noticed that systemctl status --user pipewire gives an error mod.jackdbus-detect: Failed to receive jackdbus reply: org.freedesktop.DBus.Error.ServiceUnknown: The name org.jackaudio.service was not provided by any .service files so following an online suggestion I changed /usr/share/pipewire/pipewire.conf setting module.jackdbus-detect = false which does seem to fix the pipewire problem, but builtin audio still isn't working.

camberkenpas commented 3 months ago

What is your dmesg output? That could give a clue as to why audio still isn't working.

jeremy-rutman commented 3 months ago

I looked for audio, jack or sound in dmesg:

jr@jr-Legion-7-16IAX7:~$ sudo dmesg|grep -E "audio|jack|sound"
[    3.600379] snd_hda_intel 0000:01:00.1: Handle vga_switcheroo audio client
[    3.625825] input: HDA NVidia HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card0/input17
[    3.625874] input: HDA NVidia HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card0/input18
[    3.625931] input: HDA NVidia HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card0/input19
[    3.628506] input: HDA NVidia HDMI/DP,pcm=9 as /devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card0/input20
[    3.769296] sof-audio-pci-intel-tgl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040380
[    4.938892] sof-audio-pci-intel-tgl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040380
[    4.942714] snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
[    4.977758] snd_hda_codec_realtek hdaudioC1D0: autoconfig for ALC287: line_outs=1 (0x17/0x0/0x0/0x0/0x0) type:speaker
[    4.977763] snd_hda_codec_realtek hdaudioC1D0:    speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
[    4.977764] snd_hda_codec_realtek hdaudioC1D0:    hp_outs=1 (0x21/0x0/0x0/0x0/0x0)
[    4.977765] snd_hda_codec_realtek hdaudioC1D0:    mono: mono_out=0x0
[    4.977765] snd_hda_codec_realtek hdaudioC1D0:    inputs:
[    4.977766] snd_hda_codec_realtek hdaudioC1D0:      Mic=0x19
[    4.977767] snd_hda_codec_realtek hdaudioC1D0:      Internal Mic=0x12
[    5.109535] input: HDA Intel PCH Mic as /devices/pci0000:00/0000:00:1f.3/sound/card1/input23
[    5.109575] input: HDA Intel PCH Headphone as /devices/pci0000:00/0000:00:1f.3/sound/card1/input24
[    5.109609] input: HDA Intel PCH HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1f.3/sound/card1/input25
[    5.109641] input: HDA Intel PCH HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:1f.3/sound/card1/input26
[    5.109665] input: HDA Intel PCH HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:1f.3/sound/card1/input27
[    5.109697] input: HDA Intel PCH HDMI/DP,pcm=9 as /devices/pci0000:00/0000:00:1f.3/sound/card1/input28