[PATCH 0/2] ASoC: tas2562: fix Digital Volume Control

Haidar Lee via B4 Relay posted 2 patches 1 week, 3 days ago
sound/soc/codecs/tas2562.c | 30 +++++++++++++++++++-----------
1 file changed, 19 insertions(+), 11 deletions(-)
[PATCH 0/2] ASoC: tas2562: fix Digital Volume Control
Posted by Haidar Lee via B4 Relay 1 week, 3 days ago
The 'Digital Volume Control' added in v5.7 has never worked correctly:
the driver writes the 32-bit DVC coefficient LSB first, but the device
latches the whole coefficient on the write to the last byte (DVC_CFG4),
so every volume change applies a mix of the previous coefficient's
upper bytes and the new LSB. Depending on the sequence of values this
mutes the output entirely or plays at full volume regardless of the
requested level.

Debugged on a TAS2562 (ADLINK OSM-520 / MT8189): traced the I2C writes
with ftrace to confirm the driver writes the intended bytes, then
reproduced both behaviours by writing the same coefficients manually in
each byte order. Patch 1 fixes the write order; patch 2 fixes two wrong
entries in the volume lookup table found while debugging this.

Signed-off-by: Haidar Lee <haidar.lee@adlinktech.com>
---
Haidar Lee (2):
      ASoC: tas2562: fix DVC coefficient write order
      ASoC: tas2562: fix broken entries in the volume lookup table

 sound/soc/codecs/tas2562.c | 30 +++++++++++++++++++-----------
 1 file changed, 19 insertions(+), 11 deletions(-)
---
base-commit: 58717b2a1365d06c8c64b72aa948541b53fe31eb
change-id: 20260715-tas2562-dvc-fix-656f45c44922

Best regards,
--  
Haidar Lee <haidar.lee@adlinktech.com>
Re: [PATCH 0/2] ASoC: tas2562: fix Digital Volume Control
Posted by Mark Brown 5 days, 20 hours ago
On Wed, 15 Jul 2026 14:04:39 +0800, Haidar Lee wrote:
> ASoC: tas2562: fix Digital Volume Control
> 
> The 'Digital Volume Control' added in v5.7 has never worked correctly:
> the driver writes the 32-bit DVC coefficient LSB first, but the device
> latches the whole coefficient on the write to the last byte (DVC_CFG4),
> so every volume change applies a mix of the previous coefficient's
> upper bytes and the new LSB. Depending on the sequence of values this
> mutes the output entirely or plays at full volume regardless of the
> requested level.
> 
> [...]

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-7.2

Thanks!

[1/2] ASoC: tas2562: fix DVC coefficient write order
      https://git.kernel.org/broonie/sound/c/8e957e4907c5
[2/2] ASoC: tas2562: fix broken entries in the volume lookup table
      https://git.kernel.org/broonie/sound/c/bdb0fd6de403

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark