Alsa-Devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Viktor Menshin <ripeeerr@gmail.com>
To: alsa-devel@alsa-project.org
Cc: tiwai@suse.de
Subject: Re: Missing Cirrus CS35L56 firmware for Lenovo Xiaoxin Pro 14 ASP10 (SSID 17aa:3912) causes distorted/crackling audio
Date: Thu, 20 Aug 2026 13:54:19 +0900	[thread overview]
Message-ID: <20260820045419.9846-1-ripeeerr@gmail.com> (raw)

Hi,

Follow-up to my earlier report, with a correction and a partial fix.

Correction: I initially assumed a Cirrus Logic smart amp (ACPI HID
CIRQ1080) was involved and that CS35L56 firmware was missing. That was
wrong - CIRQ1080 is actually a Cirrus touch controller (touchpad), not an
audio amplifier. There is no Cirrus amp ACPI device on this system at all
(no CSC3551/CSC3556 HID present). Sorry for the noise on that front.

What I've found instead: the codec falls back to the generic "17aa:0000"
Lenovo pin fixup (no entry for SSID 17aa:3912 in patch_realtek.c), and the
ALC287 vendor-specific processing coefficients (node 0x20) are left at
generic/uninitialized defaults. The Windows Realtek driver programs a
model-specific coefficient table into this node at init that the generic
Linux fallback never applies.

To find the actual values, I used VFIO passthrough to hand the physical
HD Audio controller (0000:c2:00.6, 1022:15e3) to a Windows 10 guest
running the stock Realtek driver, logged CORB verb traffic with a patched
QEMU, and extracted the SET_COEF_INDEX / SET_PROC_COEF sequence for node
0x20 using https://github.com/ryanprescott/realtek-verb-tools
(wiki: https://github.com/ryanprescott/realtek-verb-tools/wiki/How-to-sniff-verbs-from-a-Windows-sound-driver)

Headphones - fixed. A single coefficient write completely eliminates the
crackling/distortion on the headphone output:

  hda-verb /dev/snd/hwC1D0 0x20 SET_COEF_INDEX 0x36
  hda-verb /dev/snd/hwC1D0 0x20 SET_PROC_COEF 0x77d7

I've verified this is stable across reboots and under load.

Internal speakers - not fixed. I captured a much larger coefficient table
from a speaker-only session (headphones unplugged, 255 index/value pairs
on node 0x20, representing what looks like the driver's full cold-init
pass) and replayed it via hda-verb. This does not resolve the speaker
crackling.

Attached below:
1. Confirmed-working single coefficient write for headphones
2. The larger speaker-session table I tried, included for reference even
   though it doesn't fix the issue.

System info (unchanged from prior report): Lenovo Xiaoxin Pro 14 ASP10
(83LR), AMD Ryzen AI 9 365, ALC287 codec, SSID 17aa:3912, currently
running Linux 7.1.6-arch1-1.

Thanks,
Viktor Menshin
# Confirmed working fix for headphone crackling on Lenovo Xiaoxin Pro 14 ASP10
# (SSID 17aa:3912), Realtek ALC287, node 0x20 (vendor processing coefficients)

hda-verb /dev/snd/hwC1D0 0x20 SET_COEF_INDEX 0x36
hda-verb /dev/snd/hwC1D0 0x20 SET_PROC_COEF 0x77d7

# As a kernel-style fixup:
#
# static void alc287_fixup_lenovo_xiaoxin_pro14_asp10_hp(struct hda_codec *codec,
#                                                          const struct hda_fixup *fix, int action)
# {
#         if (action != HDA_FIXUP_ACT_INIT)
#                 return;
#
#         alc_write_coef_idx(codec, 0x36, 0x77d7);
# }

--- speaker-session 255-coefficient table (does NOT fix speaker crackling) ---

#!/bin/bash
# Full init table - first occurrence of each coefficient index, from cold speaker-path start
DEV=/dev/snd/hwC1D0

hda-verb $DEV 0x20 SET_COEF_INDEX 0x0
hda-verb $DEV 0x20 SET_PROC_COEF 0x2
hda-verb $DEV 0x20 SET_COEF_INDEX 0x1
hda-verb $DEV 0x20 SET_PROC_COEF 0xaaaa
hda-verb $DEV 0x20 SET_COEF_INDEX 0x2
hda-verb $DEV 0x20 SET_PROC_COEF 0x8aaa
hda-verb $DEV 0x20 SET_COEF_INDEX 0x3
hda-verb $DEV 0x20 SET_PROC_COEF 0xf042
hda-verb $DEV 0x20 SET_COEF_INDEX 0x4
hda-verb $DEV 0x20 SET_PROC_COEF 0xaa89
hda-verb $DEV 0x20 SET_COEF_INDEX 0x5
hda-verb $DEV 0x20 SET_PROC_COEF 0x700
hda-verb $DEV 0x20 SET_COEF_INDEX 0x6
hda-verb $DEV 0x20 SET_PROC_COEF 0x6115
hda-verb $DEV 0x20 SET_COEF_INDEX 0x7
hda-verb $DEV 0x20 SET_PROC_COEF 0x200
hda-verb $DEV 0x20 SET_COEF_INDEX 0x8
hda-verb $DEV 0x20 SET_PROC_COEF 0x4a37
hda-verb $DEV 0x20 SET_COEF_INDEX 0x9
hda-verb $DEV 0x20 SET_PROC_COEF 0x8000
hda-verb $DEV 0x20 SET_COEF_INDEX 0xa
hda-verb $DEV 0x20 SET_PROC_COEF 0x7770
hda-verb $DEV 0x20 SET_COEF_INDEX 0xb
hda-verb $DEV 0x20 SET_PROC_COEF 0x7779
hda-verb $DEV 0x20 SET_COEF_INDEX 0xc
hda-verb $DEV 0x20 SET_PROC_COEF 0x816f
hda-verb $DEV 0x20 SET_COEF_INDEX 0xd
hda-verb $DEV 0x20 SET_PROC_COEF 0xa023
hda-verb $DEV 0x20 SET_COEF_INDEX 0xe
hda-verb $DEV 0x20 SET_PROC_COEF 0x65c0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xf
hda-verb $DEV 0x20 SET_PROC_COEF 0x2a2
hda-verb $DEV 0x20 SET_COEF_INDEX 0x10
hda-verb $DEV 0x20 SET_PROC_COEF 0x320
hda-verb $DEV 0x20 SET_COEF_INDEX 0x11
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x12
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x13
hda-verb $DEV 0x20 SET_PROC_COEF 0x2200
hda-verb $DEV 0x20 SET_COEF_INDEX 0x14
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x15
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x16
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x17
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x18
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x19
hda-verb $DEV 0x20 SET_PROC_COEF 0x2c91
hda-verb $DEV 0x20 SET_COEF_INDEX 0x1a
hda-verb $DEV 0x20 SET_PROC_COEF 0x8c83
hda-verb $DEV 0x20 SET_COEF_INDEX 0x1b
hda-verb $DEV 0x20 SET_PROC_COEF 0xa6b
hda-verb $DEV 0x20 SET_COEF_INDEX 0x1c
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x1d
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x1e
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x1f
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x20
hda-verb $DEV 0x20 SET_PROC_COEF 0x1000
hda-verb $DEV 0x20 SET_COEF_INDEX 0x21
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x22
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x23
hda-verb $DEV 0x20 SET_PROC_COEF 0x8804
hda-verb $DEV 0x20 SET_COEF_INDEX 0x24
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x25
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x26
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x27
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x28
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x29
hda-verb $DEV 0x20 SET_PROC_COEF 0x3000
hda-verb $DEV 0x20 SET_COEF_INDEX 0x2a
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x2b
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x2c
hda-verb $DEV 0x20 SET_PROC_COEF 0xf00
hda-verb $DEV 0x20 SET_COEF_INDEX 0x2d
hda-verb $DEV 0x20 SET_PROC_COEF 0x1f4f
hda-verb $DEV 0x20 SET_COEF_INDEX 0x2e
hda-verb $DEV 0x20 SET_PROC_COEF 0x290e
hda-verb $DEV 0x20 SET_COEF_INDEX 0x2f
hda-verb $DEV 0x20 SET_PROC_COEF 0xef57
hda-verb $DEV 0x20 SET_COEF_INDEX 0x30
hda-verb $DEV 0x20 SET_PROC_COEF 0x9007
hda-verb $DEV 0x20 SET_COEF_INDEX 0x31
hda-verb $DEV 0x20 SET_PROC_COEF 0x80c0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x32
hda-verb $DEV 0x20 SET_PROC_COEF 0x50a8
hda-verb $DEV 0x20 SET_COEF_INDEX 0x33
hda-verb $DEV 0x20 SET_PROC_COEF 0x8580
hda-verb $DEV 0x20 SET_COEF_INDEX 0x34
hda-verb $DEV 0x20 SET_PROC_COEF 0xa281
hda-verb $DEV 0x20 SET_COEF_INDEX 0x35
hda-verb $DEV 0x20 SET_PROC_COEF 0x8daa
hda-verb $DEV 0x20 SET_COEF_INDEX 0x36
hda-verb $DEV 0x20 SET_PROC_COEF 0x77d7
hda-verb $DEV 0x20 SET_COEF_INDEX 0x37
hda-verb $DEV 0x20 SET_PROC_COEF 0xfe05
hda-verb $DEV 0x20 SET_COEF_INDEX 0x38
hda-verb $DEV 0x20 SET_PROC_COEF 0x7909
hda-verb $DEV 0x20 SET_COEF_INDEX 0x39
hda-verb $DEV 0x20 SET_PROC_COEF 0x330a
hda-verb $DEV 0x20 SET_COEF_INDEX 0x3a
hda-verb $DEV 0x20 SET_PROC_COEF 0x10
hda-verb $DEV 0x20 SET_COEF_INDEX 0x3b
hda-verb $DEV 0x20 SET_PROC_COEF 0x60d9
hda-verb $DEV 0x20 SET_COEF_INDEX 0x3c
hda-verb $DEV 0x20 SET_PROC_COEF 0xf135
hda-verb $DEV 0x20 SET_COEF_INDEX 0x3d
hda-verb $DEV 0x20 SET_PROC_COEF 0xc2ba
hda-verb $DEV 0x20 SET_COEF_INDEX 0x3e
hda-verb $DEV 0x20 SET_PROC_COEF 0xa928
hda-verb $DEV 0x20 SET_COEF_INDEX 0x3f
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x40
hda-verb $DEV 0x20 SET_PROC_COEF 0x8800
hda-verb $DEV 0x20 SET_COEF_INDEX 0x41
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x42
hda-verb $DEV 0x20 SET_PROC_COEF 0x2000
hda-verb $DEV 0x20 SET_COEF_INDEX 0x43
hda-verb $DEV 0x20 SET_PROC_COEF 0x3d97
hda-verb $DEV 0x20 SET_COEF_INDEX 0x44
hda-verb $DEV 0x20 SET_PROC_COEF 0x4900
hda-verb $DEV 0x20 SET_COEF_INDEX 0x45
hda-verb $DEV 0x20 SET_PROC_COEF 0x5289
hda-verb $DEV 0x20 SET_COEF_INDEX 0x46
hda-verb $DEV 0x20 SET_PROC_COEF 0xcc4
hda-verb $DEV 0x20 SET_COEF_INDEX 0x47
hda-verb $DEV 0x20 SET_PROC_COEF 0xa47a
hda-verb $DEV 0x20 SET_COEF_INDEX 0x48
hda-verb $DEV 0x20 SET_PROC_COEF 0xd049
hda-verb $DEV 0x20 SET_COEF_INDEX 0x49
hda-verb $DEV 0x20 SET_PROC_COEF 0x49
hda-verb $DEV 0x20 SET_COEF_INDEX 0x4a
hda-verb $DEV 0x20 SET_PROC_COEF 0x2010
hda-verb $DEV 0x20 SET_COEF_INDEX 0x4b
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x4c
hda-verb $DEV 0x20 SET_PROC_COEF 0x65c
hda-verb $DEV 0x20 SET_COEF_INDEX 0x4d
hda-verb $DEV 0x20 SET_PROC_COEF 0x7fff
hda-verb $DEV 0x20 SET_COEF_INDEX 0x4e
hda-verb $DEV 0x20 SET_PROC_COEF 0x7fff
hda-verb $DEV 0x20 SET_COEF_INDEX 0x4f
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x50
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x51
hda-verb $DEV 0x20 SET_PROC_COEF 0x5f5f
hda-verb $DEV 0x20 SET_COEF_INDEX 0x52
hda-verb $DEV 0x20 SET_PROC_COEF 0x100
hda-verb $DEV 0x20 SET_COEF_INDEX 0x53
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x54
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x55
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x56
hda-verb $DEV 0x20 SET_PROC_COEF 0xfd00
hda-verb $DEV 0x20 SET_COEF_INDEX 0x57
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x58
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x59
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x5a
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x5b
hda-verb $DEV 0x20 SET_PROC_COEF 0x777
hda-verb $DEV 0x20 SET_COEF_INDEX 0x5c
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x5d
hda-verb $DEV 0x20 SET_PROC_COEF 0x6000
hda-verb $DEV 0x20 SET_COEF_INDEX 0x5e
hda-verb $DEV 0x20 SET_PROC_COEF 0x4000
hda-verb $DEV 0x20 SET_COEF_INDEX 0x5f
hda-verb $DEV 0x20 SET_PROC_COEF 0x6200
hda-verb $DEV 0x20 SET_COEF_INDEX 0x60
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x61
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x62
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x63
hda-verb $DEV 0x20 SET_PROC_COEF 0xc000
hda-verb $DEV 0x20 SET_COEF_INDEX 0x64
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x65
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x66
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x67
hda-verb $DEV 0x20 SET_PROC_COEF 0x3000
hda-verb $DEV 0x20 SET_COEF_INDEX 0x68
hda-verb $DEV 0x20 SET_PROC_COEF 0x1
hda-verb $DEV 0x20 SET_COEF_INDEX 0x69
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x6a
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x6b
hda-verb $DEV 0x20 SET_PROC_COEF 0xa394
hda-verb $DEV 0x20 SET_COEF_INDEX 0x6c
hda-verb $DEV 0x20 SET_PROC_COEF 0x7fff
hda-verb $DEV 0x20 SET_COEF_INDEX 0x6d
hda-verb $DEV 0x20 SET_PROC_COEF 0x7000
hda-verb $DEV 0x20 SET_COEF_INDEX 0x6e
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x6f
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x70
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x71
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x72
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x73
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x74
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x75
hda-verb $DEV 0x20 SET_PROC_COEF 0x4101
hda-verb $DEV 0x20 SET_COEF_INDEX 0x76
hda-verb $DEV 0x20 SET_PROC_COEF 0x8300
hda-verb $DEV 0x20 SET_COEF_INDEX 0x77
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x78
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x79
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x7a
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x7b
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x7c
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x7d
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x7e
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x7f
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x80
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x81
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x82
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x83
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x84
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x85
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x86
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x87
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x88
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x89
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x8a
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x8b
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x8c
hda-verb $DEV 0x20 SET_PROC_COEF 0xff80
hda-verb $DEV 0x20 SET_COEF_INDEX 0x8d
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x8e
hda-verb $DEV 0x20 SET_PROC_COEF 0x2
hda-verb $DEV 0x20 SET_COEF_INDEX 0x8f
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x90
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x91
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x92
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x93
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x94
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x95
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x96
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x97
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x98
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x99
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x9a
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x9b
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x9c
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x9d
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x9e
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0x9f
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xa0
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xa1
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xa2
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xa3
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xa4
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xa5
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xa6
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xa7
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xa8
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xa9
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xaa
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xab
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xac
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xad
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xae
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xaf
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xb0
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xb1
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xb2
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xb3
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xb4
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xb5
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xb6
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xb7
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xb8
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xb9
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xba
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xbb
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xbc
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xbd
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xbe
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xbf
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xc0
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xc1
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xc2
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xc3
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xc4
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xc5
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xc6
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xc7
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xc8
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xc9
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xca
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xcb
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xcc
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xcd
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xce
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xcf
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xd0
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xd1
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xd2
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xd3
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xd4
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xd5
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xd6
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xd7
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xd8
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xd9
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xda
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xdb
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xdc
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xdd
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xde
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xdf
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xe0
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xe1
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xe2
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xe3
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xe4
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xe5
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xe6
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xe7
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xe8
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xe9
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xea
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xeb
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xec
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xed
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xee
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xef
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xf0
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xf1
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xf2
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xf3
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xf4
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xf5
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xf6
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xf7
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xf8
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xf9
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xfa
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xfb
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xfc
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xfd
hda-verb $DEV 0x20 SET_PROC_COEF 0x0
hda-verb $DEV 0x20 SET_COEF_INDEX 0xfe
hda-verb $DEV 0x20 SET_PROC_COEF 0x0

             reply	other threads:[~2026-08-20  4:55 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-20  4:54 Viktor Menshin [this message]
  -- strict thread matches above, loose matches on Subject: below --
2026-08-09  7:35 Missing Cirrus CS35L56 firmware for Lenovo Xiaoxin Pro 14 ASP10 (SSID 17aa:3912) causes distorted/crackling audio Viktor Menshin
2026-08-12 10:01 ` Stuart Henderson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260820045419.9846-1-ripeeerr@gmail.com \
    --to=ripeeerr@gmail.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=tiwai@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox