summaryrefslogtreecommitdiff
path: root/fs/ext4/fast_commit.c
diff options
context:
space:
mode:
authorPrimoz Fiser <primoz.fiser@norik.com>2025-09-25 10:59:29 +0200
committerMark Brown <broonie@kernel.org>2025-09-26 01:34:43 +0100
commit733a763dd8b3ac2858dd238a91bb3a2fdff4739e (patch)
treea3b903bb32bc232b99ab3dff19b4b48dbca85cac /fs/ext4/fast_commit.c
parentba0c67d3c4b0ce5ec5e6de35e6433b22eecb1f6a (diff)
ASoC: tlv320aic3x: Fix class-D initialization for tlv320aic3007
The problem of having class-D initialization sequence in probe using regmap_register_patch() is that it will do hardware register writes immediately after being called as it bypasses regcache. Afterwards, in aic3x_init() we also perform codec soft reset, rendering class-D init sequence pointless. This issue is even more apparent when using reset GPIO line, since in that case class-D amplifier initialization fails with "Failed to init class D: -5" message as codec is already held in reset state after requesting the reset GPIO and hence hardware I/O fails with -EIO errno. Thus move class-D amplifier initialization sequence from probe function to aic3x_set_power() just before the usual regcache sync. Use bypassed regmap_multi_reg_write_bypassed() function to make sure, class-D init sequence is performed in proper order as described in the datasheet. Signed-off-by: Primoz Fiser <primoz.fiser@norik.com> Link: https://patch.msgid.link/20250925085929.2581749-1-primoz.fiser@norik.com Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'fs/ext4/fast_commit.c')
0 files changed, 0 insertions, 0 deletions