* [PATCH v1] ALSA: hda/tas2781: Fix incorrect bit update for non-book-zero or book 0 pages >1
@ 2026-04-29 5:42 Shenghao Ding
2026-04-29 5:51 ` Takashi Iwai
0 siblings, 1 reply; 2+ messages in thread
From: Shenghao Ding @ 2026-04-29 5:42 UTC (permalink / raw)
To: tiwai
Cc: broonie, andriy.shevchenko, linux-kernel, baojun.xu, Baojun.Xu,
13564923607, 13916275206, Shenghao Ding
In TAS2781 SPI mode, when accessing non-book-zero or page numbers greater
than 1 in book 0, an additional byte must be read. The first byte in such
cases is a dummy byte and should be ignored.
Fixes: 9fa6a693ad8d ("ALSA: hda/tas2781: Remove tas2781_spi_fwlib.c and leverage SND_SOC_TAS2781_FMWLIB")
Signed-off-by: Shenghao Ding <shenghao-ding@ti.com>
---
sound/hda/codecs/side-codecs/tas2781_hda_spi.c | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/sound/hda/codecs/side-codecs/tas2781_hda_spi.c b/sound/hda/codecs/side-codecs/tas2781_hda_spi.c
index 560f2385212d..0e4f3553f273 100644
--- a/sound/hda/codecs/side-codecs/tas2781_hda_spi.c
+++ b/sound/hda/codecs/side-codecs/tas2781_hda_spi.c
@@ -132,10 +132,18 @@ static int tasdevice_spi_dev_update_bits(struct tasdevice_priv *tas_priv,
int ret, val;
/*
- * In our TAS2781 SPI mode, read/write was masked in last bit of
- * address, it cause regmap_update_bits() not work as expected.
+ * In TAS2781 SPI mode, when accessing non-book-zero or page numbers
+ * greater than 1 in book 0, an additional byte must be read. The
+ * first byte in such cases is a dummy byte and should be ignored.
*/
- ret = tasdevice_dev_read(tas_priv, chn, reg, &val);
+ if ((TASDEVICE_BOOK_ID(reg) > 0) || (TASDEVICE_PAGE_ID(reg) > 1)) {
+ unsigned char buf[2];
+
+ ret = tasdevice_dev_bulk_read(tas_priv, chn, reg, buf, 2);
+ val = buf[1];
+ } else {
+ ret = tasdevice_dev_read(tas_priv, chn, reg, &val);
+ }
if (ret < 0) {
dev_err(tas_priv->dev, "%s, E=%d\n", __func__, ret);
return ret;
--
2.43.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH v1] ALSA: hda/tas2781: Fix incorrect bit update for non-book-zero or book 0 pages >1
2026-04-29 5:42 [PATCH v1] ALSA: hda/tas2781: Fix incorrect bit update for non-book-zero or book 0 pages >1 Shenghao Ding
@ 2026-04-29 5:51 ` Takashi Iwai
0 siblings, 0 replies; 2+ messages in thread
From: Takashi Iwai @ 2026-04-29 5:51 UTC (permalink / raw)
To: Shenghao Ding
Cc: tiwai, broonie, andriy.shevchenko, linux-kernel, baojun.xu,
Baojun.Xu, 13564923607, 13916275206
On Wed, 29 Apr 2026 07:42:06 +0200,
Shenghao Ding wrote:
>
> In TAS2781 SPI mode, when accessing non-book-zero or page numbers greater
> than 1 in book 0, an additional byte must be read. The first byte in such
> cases is a dummy byte and should be ignored.
>
> Fixes: 9fa6a693ad8d ("ALSA: hda/tas2781: Remove tas2781_spi_fwlib.c and leverage SND_SOC_TAS2781_FMWLIB")
> Signed-off-by: Shenghao Ding <shenghao-ding@ti.com>
Applied now. Thanks.
Takashi
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-04-29 5:52 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-29 5:42 [PATCH v1] ALSA: hda/tas2781: Fix incorrect bit update for non-book-zero or book 0 pages >1 Shenghao Ding
2026-04-29 5:51 ` Takashi Iwai
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox