Skip to content

ASUS Vivobook 16 Flip TP3607AA (Panther Lake): no SoundWire machine match fix (TAS2783/RT721) #5965

Description

@spiliot

Disclaimer: I've guided the process of researching this together with an LLM. This issue is human written, I've only pasted some small technical parts of the LLM's output. The patch was written by the LLM and sanity checked by me as I have basic C skills and no familiarity with the project. I didn't find any instructions for creating issues so if I'm missing some necessary information please let me know.

Issue

No sound upon boot on speakers, only dummy output/input available. Bluetooth headset or HDMI sound output works.

Hardware

  • ASUS Vivobook 16 Flip TP3607AA (BIOS 303), Intel Core Ultra Panther Lake, board subsystem 1043:1534
  • Kernel 7.2.6-070206-generic (Ubuntu mainline), linux-firmware 20260319, SOF firmware 2.14.1.1, Ubuntu 26.04
  • SoundWire devices (/sys/bus/soundwire/devices):
    • sdw:0:2:0102:0000:01:8 and sdw:0:2:0102:0000:01:b (TI TAS2783, link 2, unique IDs 0x8 and 0xB)
    • sdw:0:3:025d:0721:01 (Realtek RT721, link 3). ACPI exposes SDCA functions UAJ (type 6) and SmartMic (type 3), no amp.
  • Non-HDA Link Table (NHLT): DMICs detected: 0; BT SSP mask 0x4. HDA codec is only the Intel HDMI.

Problems and fixes

  1. No machine match: snd_soc_acpi_intel_ptl_sdw_machines has no entry for TAS2783 on link 2 and RT721 on link 3
    Fix was to add a new entry (BIT(2)|BIT(3), sof_sdw, sof-ptl-dummy.tplg + sof_sdw_get_tplg_files), modeled on a pending ASUS P5405CAA patch (though that one uses link 1). Left/right order confirmed by sound test (0x8 = left, 0xB = right).
    ADRs: 0x0002380102000001 (name prefix tas2783-1), 0x00023b0102000001 (tas2783-2), RT721 0x000330025d072101.
  2. Both amps play the left channel. There's a patch pending for kernel 7.3 which I had to apply in 7.2.
  3. No UCM. sof-soundwire/tas2783.conf from alsa-ucm-conf master works.
  4. Sound output too loud, distorting/clipping starting at ~50% volume. Gain was too high by default. I set amixer -c0 cset name='tas2783-1 Amp Volume' 0 (and similarly for tas2783-2) which made things better. Persisted with sudo alsactl store. Maybe a safer default or a limiter/DRC profile is needed.

Ubuntu 26.04 (early October 2026) specific:

  • Ubuntu 26.04 ships kernel 7.0 and patches are unlikely to work without changes. I'm using 7.2 to take advantage of recent Panther Lake support. Secure boot needs to be disabled unless kernel/modules are self signed.
  • Ubuntu's linux-firmware 20260319 predates addition of TAS2783 firmware. The driver requests 3431-2-0x8.bin / 3431-2-0xB.bin which can be found in recent linux-firmware in ti/audio/tas2783/ and needs to be symlinked to linux/firmware root.

Note: After patching a cold reboot (power off) might be needed instead of a typical warm restart. At least it needed for me but I could have temporarily messed up my system trying to get it working.

alsa-info output
!!################################
!!ALSA Information Script v 0.5.3
!!################################

!!Script ran on: Fri Oct  2 06:52:58 UTC 2026


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

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


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

Manufacturer:      ASUS
Product Name:      Vivobook 16 Flip TP3607AA
Product Version:   1.0
Firmware Version:  TP3607AA.303
System SKU:        
Board Vendor:      ASUSTeK COMPUTER INC.
Board Name:        TP3607AA


!!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/ASCF120C:00/status 	 15
/sys/bus/acpi/devices/ASUH2024:00/status 	 15
/sys/bus/acpi/devices/ASUS2018:00/status 	 15
/sys/bus/acpi/devices/INT33A1:00/status 	 15
/sys/bus/acpi/devices/INT33D3:00/status 	 15
/sys/bus/acpi/devices/INT340E:00/status 	 15
/sys/bus/acpi/devices/INTC109D:00/status 	 15
/sys/bus/acpi/devices/INTC10BB:00/status 	 15
/sys/bus/acpi/devices/INTC10BB:01/status 	 15
/sys/bus/acpi/devices/INTC10BB:02/status 	 15
/sys/bus/acpi/devices/INTC10BB:03/status 	 15
/sys/bus/acpi/devices/INTC10BB:04/status 	 15
/sys/bus/acpi/devices/INTC10CC:00/status 	 15
/sys/bus/acpi/devices/INTC10D4:00/status 	 15
/sys/bus/acpi/devices/INTC10D5:00/status 	 15
/sys/bus/acpi/devices/INTC10D5:01/status 	 15
/sys/bus/acpi/devices/INTC10D5:02/status 	 15
/sys/bus/acpi/devices/INTC10D5:03/status 	 15
/sys/bus/acpi/devices/INTC10D5:04/status 	 15
/sys/bus/acpi/devices/INTC10D5:05/status 	 15
/sys/bus/acpi/devices/INTC10D5:06/status 	 15
/sys/bus/acpi/devices/INTC10D5:07/status 	 15
/sys/bus/acpi/devices/INTC10D5:08/status 	 15
/sys/bus/acpi/devices/LNXPOWER:01/status 	 1
/sys/bus/acpi/devices/LNXPOWER:05/status 	 1
/sys/bus/acpi/devices/LNXPOWER:06/status 	 1
/sys/bus/acpi/devices/LNXPOWER:08/status 	 1
/sys/bus/acpi/devices/LNXPOWER:09/status 	 1
/sys/bus/acpi/devices/LNXPOWER:0a/status 	 1
/sys/bus/acpi/devices/LNXPOWER:0b/status 	 1
/sys/bus/acpi/devices/MSFT0001:00/status 	 15
/sys/bus/acpi/devices/MSFT0101:00/status 	 15
/sys/bus/acpi/devices/PNP0103:00/status 	 15
/sys/bus/acpi/devices/PNP0A05:00/status 	 15
/sys/bus/acpi/devices/PNP0A05:01/status 	 15
/sys/bus/acpi/devices/PNP0C02:01/status 	 8
/sys/bus/acpi/devices/PNP0C02:02/status 	 8
/sys/bus/acpi/devices/PNP0C02:04/status 	 8
/sys/bus/acpi/devices/PNP0C02:06/status 	 3
/sys/bus/acpi/devices/PNP0C02:07/status 	 3
/sys/bus/acpi/devices/PNP0C04:00/status 	 31
/sys/bus/acpi/devices/PNP0C0A:03/status 	 31
/sys/bus/acpi/devices/PNP0C0C:00/status 	 15
/sys/bus/acpi/devices/PNP0C0E:00/status 	 11
/sys/bus/acpi/devices/PNP0C0F:00/status 	 9
/sys/bus/acpi/devices/PNP0C0F:01/status 	 9
/sys/bus/acpi/devices/PNP0C0F:02/status 	 9
/sys/bus/acpi/devices/PNP0C0F:03/status 	 9
/sys/bus/acpi/devices/PNP0C0F:04/status 	 9
/sys/bus/acpi/devices/PNP0C0F:05/status 	 9
/sys/bus/acpi/devices/PNP0C0F:06/status 	 9
/sys/bus/acpi/devices/PNP0C0F:07/status 	 9
/sys/bus/acpi/devices/PRP00001:00/status 	 15
/sys/bus/acpi/devices/PRP00001:01/status 	 11
/sys/bus/acpi/devices/PRP00001:02/status 	 15
/sys/bus/acpi/devices/PRP00001:03/status 	 15
/sys/bus/acpi/devices/USBC000:00/status 	 15
/sys/bus/acpi/devices/WDHT2606:00/status 	 15
/sys/bus/acpi/devices/device:1e/status 	 15
/sys/bus/acpi/devices/device:3e/status 	 15
/sys/bus/acpi/devices/device:50/status 	 15
/sys/bus/acpi/devices/device:51/status 	 15
/sys/bus/acpi/devices/device:52/status 	 15
/sys/bus/acpi/devices/device:54/status 	 15
/sys/bus/acpi/devices/device:55/status 	 15
/sys/bus/acpi/devices/device:56/status 	 15
/sys/bus/acpi/devices/device:6e/status 	 15
/sys/bus/acpi/devices/device:76/status 	 15
/sys/bus/acpi/devices/device:7b/status 	 15


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

Realtek 0x000330025d072101
TI 0x0002380102000001
TI 0x00023b0102000001


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

Kernel release:    #202609141300 SMP PREEMPT_DYNAMIC Mon Sep 14 15:22:52 UTC 2026
Operating System:  GNU/Linux
Architecture:      x86_64
Processor:         unknown
SMP Enabled:       Yes


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

Driver version:     k7.2.6-070206-generic
Library version:    
Utilities version:  1.2.15.2


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

snd_soc_sof_sdw (card 0)


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

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

No sound servers found.


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

 0 [sofsoundwire   ]: sof-soundwire - sof-soundwire
                      ASUSTeKCOMPUTERINC.-Vivobook16FlipTP3607AA-1.0-TP3607AA


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

0000:00:1f.3 Multimedia audio controller [0401]: Intel Corporation Panther Lake Smart Sound Technology BUS [8086:e328]
	DeviceName: Onboard - Sound


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

snd_pcsp: index=-2
snd_atiixp_modem: index=-2
snd_intel8x0m: index=-2
snd_via82xx_modem: index=-2
snd_atiixp_modem: index=-2
snd_intel8x0m: index=-2
snd_via82xx_modem: index=-2
snd_usb_audio: index=-2
snd_usb_caiaq: index=-2
snd_usb_ua101: index=-2
snd_usb_us122l: index=-2
snd_usb_usx2y: index=-2
snd_cmipci: mpu_port=0x330 fm_port=0x388
snd_pcsp: index=-2
snd_usb_audio: index=-2


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

!!Module: snd_soc_sof_sdw
	quirk : -1


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

!!Card: /sys/class/sound/card0
Driver: /sys/bus/platform/drivers/sof_sdw
Tree:
	/sys/class/sound/card0
	|-- controlC0
	|   |-- dev
	|   |-- device -> ../../card0
	|   |-- led-mic -> ../../../../../../virtual/sound/ctl-led/mic/card0
	|   |-- led-speaker -> ../../../../../../virtual/sound/ctl-led/speaker/card0
	|   |-- power
	|   |-- subsystem -> ../../../../../../../class/sound
	|   `-- uevent
	|-- device -> ../../../sof_sdw
	|-- hwC0D2
	|   |-- 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
	|-- input23
	|   |-- capabilities
	|   |-- device -> ../../card0
	|   |-- event14
	|   |-- id
	|   |-- inhibited
	|   |-- modalias
	|   |-- name
	|   |-- phys
	|   |-- power
	|   |-- properties
	|   |-- subsystem -> ../../../../../../../class/input
	|   |-- uevent
	|   `-- uniq
	|-- input24
	|   |-- capabilities
	|   |-- device -> ../../card0
	|   |-- event15
	|   |-- id
	|   |-- inhibited
	|   |-- modalias
	|   |-- name
	|   |-- phys
	|   |-- power
	|   |-- properties
	|   |-- subsystem -> ../../../../../../../class/input
	|   |-- uevent
	|   `-- uniq
	|-- input25
	|   |-- capabilities
	|   |-- device -> ../../card0
	|   |-- event16
	|   |-- id
	|   |-- inhibited
	|   |-- modalias
	|   |-- name
	|   |-- phys
	|   |-- power
	|   |-- properties
	|   |-- subsystem -> ../../../../../../../class/input
	|   |-- uevent
	|   `-- uniq
	|-- input26
	|   |-- capabilities
	|   |-- device -> ../../card0
	|   |-- event17
	|   |-- id
	|   |-- inhibited
	|   |-- modalias
	|   |-- name
	|   |-- phys
	|   |-- power
	|   |-- properties
	|   |-- subsystem -> ../../../../../../../class/input
	|   |-- uevent
	|   `-- uniq
	|-- number
	|-- pcmC0D0p
	|   |-- dev
	|   |-- device -> ../../card0
	|   |-- pcm_class
	|   |-- power
	|   |-- subsystem -> ../../../../../../../class/sound
	|   `-- uevent
	|-- pcmC0D1c
	|   |-- dev
	|   |-- device -> ../../card0
	|   |-- pcm_class
	|   |-- power
	|   |-- subsystem -> ../../../../../../../class/sound
	|   `-- uevent
	|-- pcmC0D2p
	|   |-- dev
	|   |-- device -> ../../card0
	|   |-- pcm_class
	|   |-- power
	|   |-- subsystem -> ../../../../../../../class/sound
	|   `-- uevent
	|-- pcmC0D31p
	|   |-- dev
	|   |-- device -> ../../card0
	|   |-- pcm_class
	|   |-- power
	|   |-- subsystem -> ../../../../../../../class/sound
	|   `-- uevent
	|-- pcmC0D4c
	|   |-- dev
	|   |-- device -> ../../card0
	|   |-- pcm_class
	|   |-- power
	|   |-- subsystem -> ../../../../../../../class/sound
	|   `-- uevent
	|-- pcmC0D5p
	|   |-- dev
	|   |-- device -> ../../card0
	|   |-- pcm_class
	|   |-- power
	|   |-- subsystem -> ../../../../../../../class/sound
	|   `-- uevent
	|-- pcmC0D6p
	|   |-- dev
	|   |-- device -> ../../card0
	|   |-- pcm_class
	|   |-- power
	|   |-- subsystem -> ../../../../../../../class/sound
	|   `-- uevent
	|-- pcmC0D7p
	|   |-- dev
	|   |-- device -> ../../card0
	|   |-- pcm_class
	|   |-- power
	|   |-- subsystem -> ../../../../../../../class/sound
	|   `-- uevent
	|-- power
	|   |-- async
	|   |-- autosuspend_delay_ms
	|   |-- control
	|   |-- runtime_active_kids
	|   |-- runtime_active_time
	|   |-- runtime_enabled
	|   |-- runtime_status
	|   |-- runtime_suspended_time
	|   `-- runtime_usage
	|-- subsystem -> ../../../../../../class/sound
	`-- uevent


!!Sysfs ctl-led info
!!---------------

!!CTL-LED: /sys/class/sound/ctl-led/mic/card0
List: 

!!CTL-LED: /sys/class/sound/ctl-led/speaker/card0
List: 

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

Codec: Intel Panther Lake HDMI
Address: 2
AFG Function Id: 0x1 (unsol 0)
Vendor Id: 0x80862822
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
  Device: name="HDMI 0", type="HDMI", device=5
  Converter: stream=1, channel=0
  Digital: Enabled KAE
  Digital category: 0x0
  IEC Coding Type: 0x0
  PCM:
    rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000
    bits [0x1a]: 16 24 32
    formats [0x5]: PCM AC3
  Power states:  D0 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x04 [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: 0x40: OUT
  Unsolicited: tag=00, enabled=0
  Power states:  D0 D3 EPSS
  Power: setting=D0, actual=D0
  Devices: 0
  Connection: 4
     0x03* 0x05 0x07 0x09
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, 11 Oct  1 11:16 /dev/snd/controlC0
crw-rw----+ 1 root audio 116, 10 Oct  1 11:16 /dev/snd/hwC0D2
crw-rw----+ 1 root audio 116,  3 Oct  1 11:16 /dev/snd/pcmC0D0p
crw-rw----+ 1 root audio 116,  4 Oct  1 11:16 /dev/snd/pcmC0D1c
crw-rw----+ 1 root audio 116,  2 Oct  2 08:53 /dev/snd/pcmC0D2p
crw-rw----+ 1 root audio 116,  5 Oct  1 11:16 /dev/snd/pcmC0D31p
crw-rw----+ 1 root audio 116,  6 Oct  1 17:57 /dev/snd/pcmC0D4c
crw-rw----+ 1 root audio 116,  7 Oct  2 09:02 /dev/snd/pcmC0D5p
crw-rw----+ 1 root audio 116,  8 Oct  1 11:16 /dev/snd/pcmC0D6p
crw-rw----+ 1 root audio 116,  9 Oct  1 11:16 /dev/snd/pcmC0D7p
crw-rw----+ 1 root audio 116,  1 Oct  1 11:16 /dev/snd/seq
crw-rw----+ 1 root audio 116, 33 Oct  1 11:16 /dev/snd/timer

/dev/snd/by-path:
total 0
drwxr-xr-x  2 root root  60 Oct  1 10:23 .
drwxr-xr-x  3 root root 300 Oct  1 10:23 ..
lrwxrwxrwx+ 1 root root  12 Oct  1 10:23 pci-0000:00:1f.3-platform-sof_sdw -> ../controlC0


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

APLAY

**** List of PLAYBACK Hardware Devices ****
card 0: sofsoundwire [sof-soundwire], device 0: Jack Out (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: sofsoundwire [sof-soundwire], device 2: Speaker (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: sofsoundwire [sof-soundwire], device 5: HDMI1 (*) [LS27A800U]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 0: sofsoundwire [sof-soundwire], device 6: HDMI2 (*) [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: sofsoundwire [sof-soundwire], device 7: HDMI3 (*) [HDMI 3]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: sofsoundwire [sof-soundwire], device 31: Deepbuffer Jack Out (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0

ARECORD

**** List of CAPTURE Hardware Devices ****
card 0: sofsoundwire [sof-soundwire], device 1: Jack In (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: sofsoundwire [sof-soundwire], device 4: Microphone (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0

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

!!-------Mixer controls for card sofsoundwire

Card sysdefault:0 'sofsoundwire'/'ASUSTeKCOMPUTERINC.-Vivobook16FlipTP3607AA-1.0-TP3607AA'
  Mixer name	: 'Intel Panther Lake HDMI'
  Components	: 'HDA:80862822,80860101,00100000  cfg-amp:2 iec61937-pcm:7,6,5 spk:tas2783 hs:rt721 mic:rt721'
  Controls      : 64
  Simple ctrls  : 35
Simple mixer control 'Headphone',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'Microphone Capture DRC switch',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
Simple mixer control 'Microphone Capture TDFB angle set enum',0
  Capabilities: enum
  Items: '-90' '-75' '-60' '-45' '-30' '-15' '0' '15' '30' '45' '60' '75' '90'
  Item0: '0'
Simple mixer control 'Microphone Capture TDFB beam switch',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
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 [off]
Simple mixer control 'IEC958',2
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'Headset Mic',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'Left Spk',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
Simple mixer control 'Left Spk2',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
Simple mixer control 'Post Mixer Jack Out',0
  Capabilities: pvolume
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 45
  Mono:
  Front Left: Playback 45 [100%] [0.00dB]
  Front Right: Playback 45 [100%] [0.00dB]
Simple mixer control 'Post Mixer Speaker',0
  Capabilities: pvolume
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 45
  Mono:
  Front Left: Playback 45 [100%] [0.00dB]
  Front Right: Playback 45 [100%] [0.00dB]
Simple mixer control 'Post Mixer Speaker Playback DRC switch',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'Pre Mixer Deepbuffer Jack Out',0
  Capabilities: volume
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: 0 - 45
  Front Left: 45 [100%] [0.00dB]
  Front Right: 45 [100%] [0.00dB]
Simple mixer control 'Pre Mixer Jack Out',0
  Capabilities: pvolume
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 45
  Mono:
  Front Left: Playback 45 [100%] [0.00dB]
  Front Right: Playback 45 [100%] [0.00dB]
Simple mixer control 'Pre Mixer Speaker',0
  Capabilities: pvolume
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 45
  Mono:
  Front Left: Playback 45 [100%] [0.00dB]
  Front Right: Playback 45 [100%] [0.00dB]
Simple mixer control 'Right Spk',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
Simple mixer control 'Right Spk2',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
Simple mixer control 'rt721 ADC 07 L Mux',0
  Capabilities: enum
  Items: 'DMIC1 RE' 'DMIC1 FE' 'DMIC2 RE' 'DMIC2 FE'
  Item0: 'DMIC1 RE'
Simple mixer control 'rt721 ADC 07 R Mux',0
  Capabilities: enum
  Items: 'DMIC1 RE' 'DMIC1 FE' 'DMIC2 RE' 'DMIC2 FE'
  Item0: 'DMIC1 FE'
Simple mixer control 'rt721 ADC 08 L Mux',0
  Capabilities: enum
  Items: 'DMIC1 RE' 'DMIC1 FE' 'DMIC2 RE' 'DMIC2 FE'
  Item0: 'DMIC1 RE'
Simple mixer control 'rt721 ADC 08 R Mux',0
  Capabilities: enum
  Items: 'DMIC1 RE' 'DMIC1 FE' 'DMIC2 RE' 'DMIC2 FE'
  Item0: 'DMIC1 FE'
Simple mixer control 'rt721 ADC 09 Mux',0
  Capabilities: enum
  Items: 'MIC2' 'LINE1' 'LINE2'
  Item0: 'MIC2'
Simple mixer control 'rt721 ADC 10 L Mux',0
  Capabilities: enum
  Items: 'DMIC1 RE' 'DMIC1 FE' 'DMIC2 RE' 'DMIC2 FE'
  Item0: 'DMIC2 RE'
Simple mixer control 'rt721 ADC 10 R Mux',0
  Capabilities: enum
  Items: 'DMIC1 RE' 'DMIC1 FE' 'DMIC2 RE' 'DMIC2 FE'
  Item0: 'DMIC2 FE'
Simple mixer control 'rt721 FU05',0
  Capabilities: pvolume
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 87
  Mono:
  Front Left: Playback 87 [100%] [0.00dB]
  Front Right: Playback 87 [100%] [0.00dB]
Simple mixer control 'rt721 FU06',0
  Capabilities: pvolume
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 87
  Mono:
  Front Left: Playback 87 [100%] [0.00dB]
  Front Right: Playback 87 [100%] [0.00dB]
Simple mixer control 'rt721 FU0F',0
  Capabilities: cvolume cswitch
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 63
  Front Left: Capture 63 [100%] [30.00dB] [on]
  Front Right: Capture 63 [100%] [30.00dB] [on]
Simple mixer control 'rt721 FU15 Boost',0
  Capabilities: volume
  Playback channels: Front Left - Front Right - Rear Left - Rear Right
  Capture channels: Front Left - Front Right - Rear Left - Rear Right
  Limits: 0 - 3
  Front Left: 0 [0%] [0.00dB]
  Front Right: 0 [0%] [0.00dB]
  Rear Left: 0 [0%] [0.00dB]
  Rear Right: 0 [0%] [0.00dB]
Simple mixer control 'rt721 FU1E',0
  Capabilities: cvolume cswitch
  Capture channels: Front Left - Front Right - Rear Left - Rear Right
  Limits: Capture 0 - 63
  Front Left: Capture 63 [100%] [30.00dB] [on]
  Front Right: Capture 63 [100%] [30.00dB] [on]
  Rear Left: Capture 63 [100%] [30.00dB] [on]
  Rear Right: Capture 63 [100%] [30.00dB] [on]
Simple mixer control 'rt721 FU33 Boost',0
  Capabilities: volume
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: 0 - 21
  Front Left: 1 [5%] [0.00dB]
  Front Right: 1 [5%] [0.00dB]
Simple mixer control 'tas2783-1 Amp',0
  Capabilities: volume volume-joined
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 20
  Mono: 20 [100%] [21.00dB]
Simple mixer control 'tas2783-1 Speaker',0
  Capabilities: volume volume-joined
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 200
  Mono: 200 [100%] [0.00dB]
Simple mixer control 'tas2783-2 Amp',0
  Capabilities: volume volume-joined
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 20
  Mono: 20 [100%] [21.00dB]
Simple mixer control 'tas2783-2 Speaker',0
  Capabilities: volume volume-joined
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 200
  Mono: 200 [100%] [0.00dB]


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

--startcollapse--
state.sofsoundwire {
	control.1 {
		iface MIXER
		name 'tas2783-1 Amp Volume'
		value 20
		comment {
			access 'read write'
			type INTEGER
			count 1
			range '0 - 20'
			dbmin 1100
			dbmax 2100
			dbvalue.0 2100
		}
	}
	control.2 {
		iface MIXER
		name 'tas2783-1 Speaker Volume'
		value 200
		comment {
			access 'read write'
			type INTEGER
			count 1
			range '0 - 200'
			dbmin -10000
			dbmax 0
			dbvalue.0 0
		}
	}
	control.3 {
		iface MIXER
		name 'tas2783-2 Amp Volume'
		value 20
		comment {
			access 'read write'
			type INTEGER
			count 1
			range '0 - 20'
			dbmin 1100
			dbmax 2100
			dbvalue.0 2100
		}
	}
	control.4 {
		iface MIXER
		name 'tas2783-2 Speaker Volume'
		value 200
		comment {
			access 'read write'
			type INTEGER
			count 1
			range '0 - 200'
			dbmin -10000
			dbmax 0
			dbvalue.0 0
		}
	}
	control.5 {
		iface MIXER
		name 'rt721 FU05 Playback Volume'
		value.0 87
		value.1 87
		comment {
			access 'read write'
			type INTEGER
			count 2
			range '0 - 87'
			dbmin -6525
			dbmax 0
			dbvalue.0 0
			dbvalue.1 0
		}
	}
	control.6 {
		iface MIXER
		name 'rt721 FU0F Capture Switch'
		value.0 true
		value.1 true
		comment {
			access 'read write'
			type BOOLEAN
			count 2
		}
	}
	control.7 {
		iface MIXER
		name 'rt721 FU0F Capture Volume'
		value.0 63
		value.1 63
		comment {
			access 'read write'
			type INTEGER
			count 2
			range '0 - 63'
			dbmin -1725
			dbmax 3000
			dbvalue.0 3000
			dbvalue.1 3000
		}
	}
	control.8 {
		iface MIXER
		name 'rt721 FU33 Boost Volume'
		value.0 1
		value.1 1
		comment {
			access 'read write'
			type INTEGER
			count 2
			range '0 - 21'
			dbmin -200
			dbmax 4000
			dbvalue.0 0
			dbvalue.1 0
		}
	}
	control.9 {
		iface MIXER
		name 'rt721 FU06 Playback Volume'
		value.0 87
		value.1 87
		comment {
			access 'read write'
			type INTEGER
			count 2
			range '0 - 87'
			dbmin -6525
			dbmax 0
			dbvalue.0 0
			dbvalue.1 0
		}
	}
	control.10 {
		iface MIXER
		name 'rt721 FU1E Capture Switch'
		value.0 true
		value.1 true
		value.2 true
		value.3 true
		comment {
			access 'read write'
			type BOOLEAN
			count 4
		}
	}
	control.11 {
		iface MIXER
		name 'rt721 FU1E Capture Volume'
		value.0 63
		value.1 63
		value.2 63
		value.3 63
		comment {
			access 'read write'
			type INTEGER
			count 4
			range '0 - 63'
			dbmin -1725
			dbmax 3000
			dbvalue.0 3000
			dbvalue.1 3000
			dbvalue.2 3000
			dbvalue.3 3000
		}
	}
	control.12 {
		iface MIXER
		name 'rt721 FU15 Boost Volume'
		value.0 0
		value.1 0
		value.2 0
		value.3 0
		comment {
			access 'read write'
			type INTEGER
			count 4
			range '0 - 3'
			dbmin 0
			dbmax 3000
			dbvalue.0 0
			dbvalue.1 0
			dbvalue.2 0
			dbvalue.3 0
		}
	}
	control.13 {
		iface MIXER
		name 'Left Spk Switch'
		value true
		comment {
			access 'read write'
			type BOOLEAN
			count 1
		}
	}
	control.14 {
		iface MIXER
		name 'Right Spk Switch'
		value true
		comment {
			access 'read write'
			type BOOLEAN
			count 1
		}
	}
	control.15 {
		iface MIXER
		name 'Left Spk2 Switch'
		value true
		comment {
			access 'read write'
			type BOOLEAN
			count 1
		}
	}
	control.16 {
		iface MIXER
		name 'Right Spk2 Switch'
		value true
		comment {
			access 'read write'
			type BOOLEAN
			count 1
		}
	}
	control.17 {
		iface MIXER
		name 'Headphone Switch'
		value false
		comment {
			access 'read write'
			type BOOLEAN
			count 1
		}
	}
	control.18 {
		iface MIXER
		name 'Headset Mic Switch'
		value false
		comment {
			access 'read write'
			type BOOLEAN
			count 1
		}
	}
	control.19 {
		iface CARD
		name 'Headphone Jack'
		value false
		comment {
			access read
			type BOOLEAN
			count 1
		}
	}
	control.20 {
		iface CARD
		name 'Headset Mic Jack'
		value false
		comment {
			access read
			type BOOLEAN
			count 1
		}
	}
	control.21 {
		iface CARD
		name 'HDMI/DP,pcm=5 Jack'
		value true
		comment {
			access read
			type BOOLEAN
			count 1
		}
	}
	control.22 {
		iface MIXER
		name 'IEC958 Playback Con Mask'
		value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access read
			type IEC958
			count 1
		}
	}
	control.23 {
		iface MIXER
		name 'IEC958 Playback Pro Mask'
		value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access read
			type IEC958
			count 1
		}
	}
	control.24 {
		iface MIXER
		name 'IEC958 Playback Default'
		value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access 'read write'
			type IEC958
			count 1
		}
	}
	control.25 {
		iface MIXER
		name 'IEC958 Playback Switch'
		value true
		comment {
			access 'read write'
			type BOOLEAN
			count 1
		}
	}
	control.26 {
		iface PCM
		device 5
		name ELD
		value '100007006914000100000000000000004c2da1714c5332374138303055090707'
		comment {
			access 'read volatile'
			type BYTES
			count 32
		}
	}
	control.27 {
		iface CARD
		name 'HDMI/DP,pcm=6 Jack'
		value false
		comment {
			access read
			type BOOLEAN
			count 1
		}
	}
	control.28 {
		iface MIXER
		name 'IEC958 Playback Con Mask'
		index 1
		value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access read
			type IEC958
			count 1
		}
	}
	control.29 {
		iface MIXER
		name 'IEC958 Playback Pro Mask'
		index 1
		value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access read
			type IEC958
			count 1
		}
	}
	control.30 {
		iface MIXER
		name 'IEC958 Playback Default'
		index 1
		value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access 'read write'
			type IEC958
			count 1
		}
	}
	control.31 {
		iface MIXER
		name 'IEC958 Playback Switch'
		index 1
		value false
		comment {
			access 'read write'
			type BOOLEAN
			count 1
		}
	}
	control.32 {
		iface PCM
		device 6
		name ELD
		value ''
		comment {
			access 'read volatile'
			type BYTES
			count 0
		}
	}
	control.33 {
		iface CARD
		name 'HDMI/DP,pcm=7 Jack'
		value false
		comment {
			access read
			type BOOLEAN
			count 1
		}
	}
	control.34 {
		iface MIXER
		name 'IEC958 Playback Con Mask'
		index 2
		value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access read
			type IEC958
			count 1
		}
	}
	control.35 {
		iface MIXER
		name 'IEC958 Playback Pro Mask'
		index 2
		value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access read
			type IEC958
			count 1
		}
	}
	control.36 {
		iface MIXER
		name 'IEC958 Playback Default'
		index 2
		value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access 'read write'
			type IEC958
			count 1
		}
	}
	control.37 {
		iface MIXER
		name 'IEC958 Playback Switch'
		index 2
		value false
		comment {
			access 'read write'
			type BOOLEAN
			count 1
		}
	}
	control.38 {
		iface PCM
		device 7
		name ELD
		value ''
		comment {
			access 'read volatile'
			type BYTES
			count 0
		}
	}
	control.39 {
		iface PCM
		device 5
		name 'Playback Channel Map'
		value.0 3
		value.1 4
		value.2 0
		value.3 0
		value.4 0
		value.5 0
		value.6 0
		value.7 0
		comment {
			access 'read write volatile'
			type INTEGER
			count 8
			range '0 - 36'
		}
	}
	control.40 {
		iface PCM
		device 6
		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 volatile'
			type INTEGER
			count 8
			range '0 - 36'
		}
	}
	control.41 {
		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 volatile'
			type INTEGER
			count 8
			range '0 - 36'
		}
	}
	control.42 {
		iface MIXER
		name 'Pre Mixer Speaker Playback Volume'
		value.0 45
		value.1 45
		comment {
			access 'read write'
			type INTEGER
			count 2
			range '0 - 45'
			dbmin -9999999
			dbmax 0
			dbvalue.0 0
			dbvalue.1 0
		}
	}
	control.43 {
		iface MIXER
		name 'Post Mixer Speaker Playback Volume'
		value.0 45
		value.1 45
		comment {
			access 'read write'
			type INTEGER
			count 2
			range '0 - 45'
			dbmin -9999999
			dbmax 0
			dbvalue.0 0
			dbvalue.1 0
		}
	}
	control.47 {
		iface MIXER
		name 'Post Mixer Speaker Playback DRC switch'
		value false
		comment {
			access 'read write'
			type BOOLEAN
			count 1
		}
	}
	control.48 {
		iface MIXER
		name 'Pre Mixer Jack Out Playback Volume'
		value.0 45
		value.1 45
		comment {
			access 'read write'
			type INTEGER
			count 2
			range '0 - 45'
			dbmin -9999999
			dbmax 0
			dbvalue.0 0
			dbvalue.1 0
		}
	}
	control.49 {
		iface MIXER
		name 'Post Mixer Jack Out Playback Volume'
		value.0 45
		value.1 45
		comment {
			access 'read write'
			type INTEGER
			count 2
			range '0 - 45'
			dbmin -9999999
			dbmax 0
			dbvalue.0 0
			dbvalue.1 0
		}
	}
	control.51 {
		iface MIXER
		name 'Pre Mixer Deepbuffer Jack Out Volume'
		value.0 45
		value.1 45
		comment {
			access 'read write'
			type INTEGER
			count 2
			range '0 - 45'
			dbmin -9999999
			dbmax 0
			dbvalue.0 0
			dbvalue.1 0
		}
	}
	control.53 {
		iface MIXER
		name 'Microphone Capture TDFB beam switch'
		value true
		comment {
			access 'read write'
			type BOOLEAN
			count 1
		}
	}
	control.54 {
		iface MIXER
		name 'Microphone Capture TDFB angle set enum'
		value '0'
		comment {
			access 'read write'
			type ENUMERATED
			count 1
			item.0 '-90'
			item.1 '-75'
			item.2 '-60'
			item.3 '-45'
			item.4 '-30'
			item.5 '-15'
			item.6 '0'
			item.7 '15'
			item.8 '30'
			item.9 '45'
			item.10 '60'
			item.11 '75'
			item.12 '90'
		}
	}
	control.56 {
		iface MIXER
		name 'Microphone Capture DRC switch'
		value true
		comment {
			access 'read write'
			type BOOLEAN
			count 1
		}
	}
	control.58 {
		iface MIXER
		name 'rt721 ADC 09 Mux'
		value MIC2
		comment {
			access 'read write'
			type ENUMERATED
			count 1
			item.0 MIC2
			item.1 LINE1
			item.2 LINE2
		}
	}
	control.59 {
		iface MIXER
		name 'rt721 ADC 08 R Mux'
		value 'DMIC1 FE'
		comment {
			access 'read write'
			type ENUMERATED
			count 1
			item.0 'DMIC1 RE'
			item.1 'DMIC1 FE'
			item.2 'DMIC2 RE'
			item.3 'DMIC2 FE'
		}
	}
	control.60 {
		iface MIXER
		name 'rt721 ADC 08 L Mux'
		value 'DMIC1 RE'
		comment {
			access 'read write'
			type ENUMERATED
			count 1
			item.0 'DMIC1 RE'
			item.1 'DMIC1 FE'
			item.2 'DMIC2 RE'
			item.3 'DMIC2 FE'
		}
	}
	control.61 {
		iface MIXER
		name 'rt721 ADC 10 R Mux'
		value 'DMIC2 FE'
		comment {
			access 'read write'
			type ENUMERATED
			count 1
			item.0 'DMIC1 RE'
			item.1 'DMIC1 FE'
			item.2 'DMIC2 RE'
			item.3 'DMIC2 FE'
		}
	}
	control.62 {
		iface MIXER
		name 'rt721 ADC 10 L Mux'
		value 'DMIC2 RE'
		comment {
			access 'read write'
			type ENUMERATED
			count 1
			item.0 'DMIC1 RE'
			item.1 'DMIC1 FE'
			item.2 'DMIC2 RE'
			item.3 'DMIC2 FE'
		}
	}
	control.63 {
		iface MIXER
		name 'rt721 ADC 07 R Mux'
		value 'DMIC1 FE'
		comment {
			access 'read write'
			type ENUMERATED
			count 1
			item.0 'DMIC1 RE'
			item.1 'DMIC1 FE'
			item.2 'DMIC2 RE'
			item.3 'DMIC2 FE'
		}
	}
	control.64 {
		iface MIXER
		name 'rt721 ADC 07 L Mux'
		value 'DMIC1 RE'
		comment {
			access 'read write'
			type ENUMERATED
			count 1
			item.0 'DMIC1 RE'
			item.1 'DMIC1 FE'
			item.2 'DMIC2 RE'
			item.3 'DMIC2 FE'
		}
	}
}
--endcollapse--


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

ac97_bus
acpi_pad
acpi_tad
acpi_thermal_rel
aesni_intel
af_alg
algif_hash
algif_skcipher
asus_armoury
asus_nb_wmi
asus_wmi
autofs4
binfmt_misc
bluetooth
bnep
btintel
btintel_pcie
ccm
cec
cfg80211
cmdlinepart
coretemp
cqhci
crc8
dmi_sysfs
drm_buddy
drm_display_helper
drm_exec
drm_gpusvm_helper
drm_gpuvm
drm_suballoc_helper
drm_ttm_helper
efi_pstore
firmware_attributes_class
gf128mul
gpu_sched
hid
hid_generic
hid_multitouch
huawei_wmi
i2c_algo_bit
i2c_hid
i2c_hid_acpi
i2c_i801
i2c_mux
i2c_smbus
idma64
igen6_edac
input_leds
int3400_thermal
int3403_thermal
int340x_thermal_zone
intel_cstate
intel_hid
intel_ish_ipc
intel_ishtp
intel_lpss
intel_lpss_pci
intel_pmc_core
intel_pmc_pwrm_telemetry
intel_pmc_ssram_telemetry
intel_powerclamp
intel_rapl_common
intel_rapl_msr
intel_tcc_cooling
intel_uncore_frequency
intel_uncore_frequency_common
intel_vpu
intel_vsec
irqbypass
iwlmld
iwlwifi
joydev
kvm
kvm_intel
libarc4
lp
mac80211
mac_hid
mc
mei
mei_gsc_proxy
mei_me
msr
mtd
nls_iso8859_1
nvme
nvme_auth
nvme_core
nvme_keyring
parport
pinctrl_intel_platform
platform_temperature_control
pmt_class
pmt_discovery
pmt_telemetry
ppdev
processor_thermal_device
processor_thermal_device_pci
processor_thermal_mbox
processor_thermal_power_floor
processor_thermal_rapl
processor_thermal_rfim
processor_thermal_soc_slider
processor_thermal_wt_hint
processor_thermal_wt_req
qrtr
rc_core
regmap_sdw
regmap_sdw_mbq
rfcomm
sch_fq_codel
sdhci
sdhci_pci
sdhci_uhs2
serio_raw
snd
snd_compress
snd_ctl_led
snd_hda_codec
snd_hda_codec_hdmi
snd_hda_codec_intelhdmi
snd_hda_core
snd_hda_ext_core
snd_hda_intel
snd_hrtimer
snd_hwdep
snd_intel_dspcfg
snd_intel_sdw_acpi
snd_pcm
snd_pcm_dmaengine
snd_rawmidi
snd_seq
snd_seq_device
snd_seq_dummy
snd_seq_midi
snd_seq_midi_event
snd_soc_acpi
snd_soc_acpi_intel_match
snd_soc_acpi_intel_sdca_quirks
snd_soc_core
snd_soc_dmic
snd_soc_hdac_hda
snd_soc_intel_hda_dsp_common
snd_soc_rt721_sdca
snd_soc_rt_sdw_common
snd_soc_sdca
snd_soc_sdw_utils
snd_soc_sof_sdw
snd_soc_tas2783_sdw
snd_sof
snd_sof_intel_hda
snd_sof_intel_hda_common
snd_sof_intel_hda_generic
snd_sof_intel_hda_mlink
snd_sof_intel_hda_sdw_bpt
snd_sof_pci
snd_sof_pci_intel_lnl
snd_sof_pci_intel_mtl
snd_sof_pci_intel_ptl
snd_sof_probes
snd_sof_utils
snd_sof_xtensa_dsp
snd_timer
soc_button_array
soundcore
soundwire_bus
soundwire_cadence
soundwire_generic_allocation
soundwire_intel
sparse_keymap
spi_intel
spi_intel_pci
spi_nor
thunderbolt
ttm
typec
typec_displayport
typec_thunderbolt
typec_ucsi
ucsi_acpi
usbhid
uvc
uvcvideo
video
videobuf2_common
videobuf2_memops
videobuf2_v4l2
videobuf2_vmalloc
videodev
vmd
wmi
wmi_bmof
x86_pkg_temp_thermal
xe


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

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

/sys/class/sound/hwC0D2/driver_pin_configs:

/sys/class/sound/hwC0D2/user_pin_configs:

/sys/class/sound/hwC0D2/init_verbs:

/sys/class/sound/hwC0D2/hints:


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



!!Packages installed
!!--------------------

ii  alsa-tools                                 1.2.15-1                                   amd64        Console based ALSA utilities for specific hardware
ii  alsa-topology-conf                         1.2.5.1-3build1                            all          ALSA topology configuration files
ii  alsa-ucm-conf                              1.2.15.3-1ubuntu1.5                        all          ALSA Use Case Manager configuration files
ii  alsa-utils                                 1.2.15.2-1ubuntu1                          amd64        Utilities for configuring and using ALSA

Patches

Patch for sound/soc/intel/common/soc-acpi-intel-ptl-match.c in 7.2.x (tested in 7.2.6)
--- a/sound/soc/intel/common/soc-acpi-intel-ptl-match.c
+++ b/sound/soc/intel/common/soc-acpi-intel-ptl-match.c
@@ -437,6 +437,51 @@ static const struct snd_soc_acpi_link_adr ptl_sdw_rt712_vb_l3_rt1320_l3[] = {
 	{}
 };
 
+static const struct snd_soc_acpi_endpoint rt721_jack_dmic_endpoints[] = {
+	/* Jack Endpoint (AIF1) */
+	{ .num = 0, .aggregated = 0, .group_position = 0, .group_id = 0 },
+	/* DMIC Endpoint (AIF3); AIF2 is unused with external speaker amps */
+	{ .num = 2, .aggregated = 0, .group_position = 0, .group_id = 0 },
+};
+
+static const struct snd_soc_acpi_adr_device tas2783_2_lr_adr[] = {
+	{
+		.adr = 0x0002380102000001ull,
+		.num_endpoints = 1,
+		.endpoints = &spk_l_endpoint,
+		.name_prefix = "tas2783-1"
+	},
+	{
+		.adr = 0x00023b0102000001ull,
+		.num_endpoints = 1,
+		.endpoints = &spk_r_endpoint,
+		.name_prefix = "tas2783-2"
+	}
+};
+
+static const struct snd_soc_acpi_adr_device rt721_3_adr[] = {
+	{
+		.adr = 0x000330025d072101ull,
+		.num_endpoints = ARRAY_SIZE(rt721_jack_dmic_endpoints),
+		.endpoints = rt721_jack_dmic_endpoints,
+		.name_prefix = "rt721"
+	}
+};
+
+static const struct snd_soc_acpi_link_adr ptl_tas2783_l2_rt721_l3[] = {
+	{
+		.mask = BIT(2),
+		.num_adr = ARRAY_SIZE(tas2783_2_lr_adr),
+		.adr_d = tas2783_2_lr_adr,
+	},
+	{
+		.mask = BIT(3),
+		.num_adr = ARRAY_SIZE(rt721_3_adr),
+		.adr_d = rt721_3_adr,
+	},
+	{}
+};
+
 /* this table is used when there is no I2S codec present */
 struct snd_soc_acpi_mach snd_soc_acpi_intel_ptl_sdw_machines[] = {
 /* Order Priority: mockup > most links > most bit link-mask > alphabetical */
@@ -517,6 +562,14 @@ struct snd_soc_acpi_mach snd_soc_acpi_intel_ptl_sdw_machines[] = {
 		.machine_check = snd_soc_acpi_intel_no_function_topology,
 		.sof_tplg_filename = "sof-ptl-cs42l43-agg-l3-cs35l56-l2.tplg",
 	},
+	{
+		.link_mask = BIT(2) | BIT(3),
+		.links = ptl_tas2783_l2_rt721_l3,
+		.drv_name = "sof_sdw",
+		/* Function topologies only; no monolithic fallback. */
+		.sof_tplg_filename = "sof-ptl-dummy.tplg",
+		.get_function_tplg_files = sof_sdw_get_tplg_files,
+	},
 	{
 		.link_mask = BIT(0),
 		.links = ptl_rvp,

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions