diff options
| author | Valerio Setti <vsetti@baylibre.com> | 2026-07-10 23:09:49 +0200 |
|---|---|---|
| committer | Mark Brown <broonie@kernel.org> | 2026-07-27 14:39:22 +0100 |
| commit | 6b44ad3ec83b4f06bb6959f4e75998c7d7f7f070 (patch) | |
| tree | 0fa729d8084029655e3eda07ce829b42f100e87b /tools/perf/scripts/python | |
| parent | 7859b74c0bd600cddd86afd55a3dde285a8c2937 (diff) | |
ASoC: meson: aiu-encoder-i2s: fix bs quirk incompatibility check
The bs-quirk incompatibility check has two flaws:
- It only rejects one direction of the mismatch. A stream that does
not require the quirk is rejected while a quirked stream is active,
but the opposite is not true: a stream requiring the quirk passes
the check while a non-quirked stream is active, silently
reprogramming the shared mclk/bclk divider with the 50% increase
and corrupting the output of the running stream.
- 'bs_quirk' is only cleared in hw_free() when the last substream
closes, but userspace may legally stop/reconfigure/start the stream
without an intervening hw_free. Reconfiguring a single stream
from the quirked configuration (8ch/16-bit) to one that does not
need the quirk therefore fails with -EINVAL due to the stale flag.
Drop the interface-wide flag and instead compare the quirk
requirement of the incoming parameters against the committed
configuration of the opposite stream at hw_params() time. The
committed channels/width are cleared in hw_free() so that a released
stream no longer constrains the other one.
Signed-off-by: Valerio Setti <vsetti@baylibre.com>
Link: https://patch.msgid.link/20260710-aiu-improve-quirk-check-v1-1-2fdd1b6f8896@baylibre.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'tools/perf/scripts/python')
0 files changed, 0 insertions, 0 deletions
