[PATCH v2 0/2] ASoC: cs35l56: Support for factory calibration through ALSA controls

Richard Fitzgerald posted 2 patches 1 week, 1 day ago
include/sound/cs35l56.h           |  1 +
include/sound/soc.h               |  6 ++
sound/soc/codecs/Kconfig          | 13 +++++
sound/soc/codecs/cs35l56-shared.c |  9 +++
sound/soc/codecs/cs35l56.c        | 96 +++++++++++++++++++++++++++++++
sound/soc/codecs/cs35l56.h        |  2 +
6 files changed, 127 insertions(+)
[PATCH v2 0/2] ASoC: cs35l56: Support for factory calibration through ALSA controls
Posted by Richard Fitzgerald 1 week, 1 day ago
Factory calibration is normally done through debugfs files.
Google have requested that factory calibration can be performed by
repair shops. These repair shops only have access to the standard
"user" kernel, which does not include debugfs.

Patch #1 adds a new control definition macro to create a boolean control
         with specified access permissions. (new in V2)
         
Patch #2 is the implementation in the cs35l56 driver.

Changes in V2:
- Rename "Calibrate" control to "Calibrate Switch" to conform to naming
  convention for boolean controls.
- Mark "Calibrate Switch" control volatile.
- Cache the value written to the "CAL_AMBIENT" control so that a read will
  return the last set value.
- Return 1 from writing "CAL_AMBIENT" if the value was changed.
- Return 1 from writing the "Calibrate Switch" control to true because
  that always causes some activity in the amp.
- Replace use of the confusing in_range() with normal comparisons against
  limits and make the limits the same as the control definition.
- Simplify the code in cs35l56_calibrate_ctl_set(). It's a boolean so the
  value written to it is either false or true.

Richard Fitzgerald (2):
  ASoC: soc.h: Add SOC_SINGLE_BOOL_EXT_ACC() to allow setting access
    flags
  ASoC: cs35l56: Allow factory calibration through ALSA controls

 include/sound/cs35l56.h           |  1 +
 include/sound/soc.h               |  6 ++
 sound/soc/codecs/Kconfig          | 13 +++++
 sound/soc/codecs/cs35l56-shared.c |  9 +++
 sound/soc/codecs/cs35l56.c        | 96 +++++++++++++++++++++++++++++++
 sound/soc/codecs/cs35l56.h        |  2 +
 6 files changed, 127 insertions(+)

-- 
2.47.3
Re: [PATCH v2 0/2] ASoC: cs35l56: Support for factory calibration through ALSA controls
Posted by Mark Brown 1 week ago
On Wed, 25 Mar 2026 17:08:39 +0000, Richard Fitzgerald wrote:
> ASoC: cs35l56: Support for factory calibration through ALSA controls
> 
> Factory calibration is normally done through debugfs files.
> Google have requested that factory calibration can be performed by
> repair shops. These repair shops only have access to the standard
> "user" kernel, which does not include debugfs.
> 
> [...]

Applied to

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

Thanks!

[1/2] ASoC: soc.h: Add SOC_SINGLE_BOOL_EXT_ACC() to allow setting access flags
      https://git.kernel.org/broonie/sound/c/37c277f050e8
[2/2] ASoC: cs35l56: Allow factory calibration through ALSA controls
      https://git.kernel.org/broonie/sound/c/ee7d655dbaf5

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