linux/sound/hda/codecs/side-codecs
Mohamed Yassine Jebabli 408249089c ALSA: hda/tas2781: Accept V1 calibration data without CRC
Some Lenovo BIOSes (e.g. Legion Pro 7 16IRX9H, SSID 17aa:38cd) store
valid V1 calibration data in the CALI_DATA EFI variable but leave the
TimeStamp and CRC fields zeroed. The driver rejects such data, so the
amplifiers always run with default parameters on these machines.

The rejection was silent until
commit 4fe2385134 ("ALSA: hda/tas2781: Move and unified the
calibrated-data getting function for SPI and I2C into the tas2781_hda lib")
turned it into "V1 CRC error".

The stored values are consistent (R0 = 3.82/3.83 ohm, 1/R0 matching
within 1e-4), so accept V1 data when both TimeStamp and CRC are zero
and the first device entry is non-zero, and emit a warning.

Fixes: 5be27f1e3e ("ALSA: hda/tas2781: Add tas2781 HDA driver")
Cc: stable@vger.kernel.org
Signed-off-by: Mohamed Yassine Jebabli <med.jebabli@gmail.com>
Link: https://patch.msgid.link/20261001-tas2781-v1-nocrc-v1-1-ff0c1032ce76@gmail.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-10-03 11:16:06 +02:00
..
aw88399_hda_i2c.c ALSA: hda/scodec: add AW88399 HDA side codec driver 2026-07-30 11:29:21 +02:00
aw88399_hda.c ALSA: hda/realtek: enable AW88399 on Lenovo Legion R9000P ADR10H 2026-08-05 17:24:44 +02:00
aw88399_hda.h ALSA: hda/scodec: add AW88399 HDA side codec driver 2026-07-30 11:29:21 +02:00
cirrus_scodec_test.c ALSA: hda/cirrus_scodec_test: Use faux_device instead of platform_device 2026-01-16 15:17:53 +01:00
cirrus_scodec.c ALSA: hda: Move codec drivers into sound/hda/codecs directory 2025-07-11 09:55:37 +02:00
cirrus_scodec.h ALSA: hda: Move codec drivers into sound/hda/codecs directory 2025-07-11 09:55:37 +02:00
cs35l41_hda_i2c.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
cs35l41_hda_property.c ALSA: hda: Add Lenovo Legion 7i 16IAX7 17AA3874 quirk 2026-06-25 13:53:39 +02:00
cs35l41_hda_property.h ALSA: hda: Move codec drivers into sound/hda/codecs directory 2025-07-11 09:55:37 +02:00
cs35l41_hda_spi.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
cs35l41_hda.c ALSA: hda: cs35l41: Use auto-cleanup for put_device() 2026-08-04 18:05:07 +02:00
cs35l41_hda.h ALSA: hda/cs35l41: Fix firmware load work teardown 2026-05-15 17:54:47 +02:00
cs35l56_hda_i2c.c ASoC: Use named initializers for arrays of i2c_device_data 2026-05-21 12:30:08 +01:00
cs35l56_hda_spi.c ASoC: cs35l56: Set fw_regs table after getting REVID 2025-09-28 08:27:15 +02:00
cs35l56_hda.c ALSA: hda: cs35l56: Use auto-cleanup for firmware loading 2026-07-31 12:44:36 +02:00
cs35l56_hda.h ALSA: hda: cs35l56: Fix uninitialized value in cs35l56_hda_read_acpi() 2026-04-29 07:50:16 +02:00
hda_component.c ALSA: hda: Fix missing pointer check in hda_component_manager_init function 2025-10-11 08:28:52 +02:00
hda_component.h ALSA: hda/component: Use guard() for mutex locks 2025-08-29 11:52:15 +02:00
Kconfig ALSA: hda/scodec: add AW88399 HDA side codec driver 2026-07-30 11:29:21 +02:00
Makefile ALSA: hda/scodec: add AW88399 HDA side codec driver 2026-07-30 11:29:21 +02:00
tas2781_hda_i2c.c ASoC: Updates for v7.3 2026-08-18 08:35:39 +02:00
tas2781_hda_spi.c ASoC: Updates for v7.3 2026-08-18 08:35:39 +02:00
tas2781_hda.c ALSA: hda/tas2781: Accept V1 calibration data without CRC 2026-10-03 11:16:06 +02:00
tas2781_hda.h ALSA: hda/tas2781: Support L"SmartAmpCalibrationData" to save calibrated data 2025-08-06 08:05:47 +02:00