Re: [PATCH v2] ALSA: hda/tas2781: Prevent throwing away custom calibration addresses
From: Takashi Iwai
Date: Tue Nov 03 2026 - 10:37:16 EST
On Mon, 02 Nov 2026 18:40:52 +0100,
Antheas Kapenekakis wrote:
>
> The V2 UEFI spec for per-device calibration data in TAS allows for
> manufacturers to specify up to five custom calibration register
> addresses and values to optimize per-device in factory.
>
> A basic description of the spec is found in a comment in function
> tas2781_apply_calib(). However, currently, for the condition of
> p->dspbin_typ != TASDEV_BASIC, if custom calibration addresses have been
> provided by the manufacturer, they are ignored and the ones listed in
> firmware are used.
>
> In case the manufacturer chose to change different registers other than
> the default ones (r0, invr0, r0_low, pow, tlimit), this causes the
> UEFI calibration data to scratch different registers and cause the
> firmware to misbehave. This is true in the Xbox ROG Ally X, for one of
> the firmwares, where it pops and has audio dropouts after the
> calibration data is applied.
>
> Therefore, add a new bool to indicate that UEFI supplied custom
> calibration addresses, and if so, use them regardless of dspbin_typ.
>
> Closes: https://lore.kernel.org/all/179122346529.6.9250312386131579603.1671009695@xxxxxxxxxx/
> Co-developed-by: Matthew Schwartz <matthew.schwartz@xxxxxxxxx>
> Signed-off-by: Matthew Schwartz <matthew.schwartz@xxxxxxxxx>
> Signed-off-by: Antheas Kapenekakis <lkml@xxxxxxxxxxx>
Applied now. Thanks.
Takashi