ALSA: hda/cs35l56: same calibration condition logged at dev_info() and dev_err()
From: Navon John Lukose
Date: Sun Sep 13 2026 - 20:03:24 EST
Documentation/sound/codecs/cs35l56.rst says "Failed to write calibration"
has the "same meaning and cause as 'Calibration disabled due to missing
firmware controls'". The latter is a dev_info(). The former is a dev_warn()
with a dev_err() from cs_amp_write_cal_coeff() ahead of it.
Rebinding the HDA components without re-probing the i2c driver takes the
loud path, 4 of 4 attempts here:
cs35l56-hda i2c-CSC3556:00-cs35l56-hda.0: Failed to write to 'CAL_R': -1
cs35l56-hda i2c-CSC3556:00-cs35l56-hda.0: Failed to write calibration: -1
list_empty() is false because the controls cs_dsp_power_down() disabled at
unbind are still on ctl_list, so the dev_info() branch is skipped.
The calibration is intact. CAL_CHECKSUM, CAL_STATUS, CAL_R and CAL_AMBIENT
in DSP YM are unchanged across a failing rebind on both amps. On a speaker
amplifier "Failed to write calibration" reads as a protection failure.
I lost around 5 hours chasing this down, believing this to be an actual
bug.
Lenovo Yoga Pro 7 14IAH10 (83KF), kernel 7.2.4, two CS35L56 B0 on I2C
behind CSC3556:00 over the HDA link.
Assisted-by: LLM