Go to file
Cristian Ciocaltea d883e16c7f ASoC: es8316: Increment max value for ALC Capture Target Volume control
[ Upstream commit 6f073429037cd79d7311cd8236311c53f5ea8f01 ]

The following error occurs when trying to restore a previously saved
ALSA mixer state (tested on a Rock 5B board):

  $ alsactl --no-ucm -f /tmp/asound.state store hw:Analog
  $ alsactl --no-ucm -I -f /tmp/asound.state restore hw:Analog
  alsactl: set_control:1475: Cannot write control '2:0:0:ALC Capture Target Volume:0' : Invalid argument

According to ES8316 datasheet, the register at address 0x2B, which is
related to the above mixer control, contains by default the value 0xB0.
Considering the corresponding ALC target bits (ALCLVL) are 7:4, the
control is initialized with 11, which is one step above the maximum
value allowed by the driver:

 ALCLVL | dB gain
 -------+--------
  0000  |  -16.5
  0001  |  -15.0
  0010  |  -13.5
  ....  |  .....
  0111  |   -6.0
  1000  |   -4.5
  1001  |   -3.0
  1010  |   -1.5
  ....  |  .....
  1111  |   -1.5

The tests performed using the VU meter feature (--vumeter=TYPE) of
arecord/aplay confirm the specs are correct and there is no measured
gain if the 1011-1111 range would have been mapped to 0 dB:

 dB gain | VU meter %
 --------+-----------
   -6.0  |  30-31
   -4.5  |  35-36
   -3.0  |  42-43
   -1.5  |  50-51
    0.0  |  50-51

Increment the max value allowed for ALC Capture Target Volume control,
so that it matches the hardware default.  Additionally, update the
related TLV to prevent an artificial extension of the dB gain range.

Fixes: b8b88b7087 ("ASoC: add es8316 codec driver")
Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Link: https://lore.kernel.org/r/20230530181140.483936-2-cristian.ciocaltea@collabora.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-07-27 08:43:49 +02:00
arch ARM: dts: stm32: Shorten the AV96 HDMI sound card name 2023-07-27 08:43:48 +02:00
block blk-iocost: use spin_lock_irqsave in adjust_inuse_and_calc_cost 2023-07-27 08:43:32 +02:00
certs certs/blacklist_hashes.c: fix const confusion in certs blacklist 2022-06-22 14:13:17 +02:00
crypto KEYS: asymmetric: Copy sig and digest in public_key_verify_signature() 2023-06-09 10:30:17 +02:00
Documentation mm/pagealloc: sysctl: change watermark_scale_factor max limit to 30% 2023-06-28 10:28:09 +02:00
drivers memory: brcmstb_dpfe: fix testing array offset after use 2023-07-27 08:43:48 +02:00
fs pstore/ram: Add check for kstrdup 2023-07-27 08:43:36 +02:00
include netlink: Add __sock_i_ino() for __netlink_diag_dump(). 2023-07-27 08:43:43 +02:00
init kbuild: check the minimum assembler version in Kconfig 2023-04-20 12:10:28 +02:00
io_uring io_uring/net: disable partial retries for recvmsg with cmsg 2023-06-28 10:28:09 +02:00
ipc ipc/sem: Fix dangling sem_array access in semtimedop race 2022-12-08 11:24:00 +01:00
kernel kexec: fix a memory leak in crash_shrink_memory() 2023-07-27 08:43:40 +02:00
lib lib/ts_bm: reset initial match offset for every block of text 2023-07-27 08:43:43 +02:00
LICENSES
mm memfd: check for non-NULL file_seals in memfd_create() syscall 2023-06-28 10:28:09 +02:00
net netlink: Add __sock_i_ino() for __netlink_diag_dump(). 2023-07-27 08:43:43 +02:00
samples samples/bpf: Fix buffer overflow in tcp_basertt 2023-07-27 08:43:36 +02:00
scripts scripts/tags.sh: Resolve gtags empty index generation 2023-07-27 08:43:31 +02:00
security ima: Fix build warnings 2023-07-27 08:43:35 +02:00
sound ASoC: es8316: Increment max value for ALC Capture Target Volume control 2023-07-27 08:43:49 +02:00
tools selftests: rtnetlink: remove netdevsim device after ipsec offload test 2023-07-27 08:43:42 +02:00
usr usr/include/Makefile: add linux/nfc.h to the compile-test coverage 2022-02-01 17:25:48 +01:00
virt KVM: fix memoryleak in kvm_init() 2023-04-05 11:23:43 +02:00
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore kbuild: generate Module.symvers only when vmlinux exists 2021-05-19 10:12:59 +02:00
.mailmap
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS Remove DECnet support from kernel 2023-06-21 15:45:38 +02:00
Makefile Linux 5.10.187 2023-07-24 19:09:12 +02:00
README

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.