summaryrefslogtreecommitdiff
path: root/sound
diff options
context:
space:
mode:
authorShenghao Ding <shenghao-ding@ti.com>2025-11-07 13:49:59 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2025-11-24 10:30:02 +0100
commitb5de1eb5bc20a96b850ce1ee3703622fabbef7c2 (patch)
treed47d6553f4ae7e2e315914371271d9fdc4feb984 /sound
parentb5df9e06eed3df6a4f5c6f8453013b0cabb927b4 (diff)
downloadlinux-b5de1eb5bc20a96b850ce1ee3703622fabbef7c2.tar.gz
linux-b5de1eb5bc20a96b850ce1ee3703622fabbef7c2.tar.bz2
linux-b5de1eb5bc20a96b850ce1ee3703622fabbef7c2.zip
ASoC: tas2781: fix getting the wrong device number
[ Upstream commit 29528c8e643bb0c54da01237a35010c6438423d2 ] The return value of device_property_read_u32_array used for getting the property is the status instead of the number of the property. Fixes: ef3bcde75d06 ("ASoC: tas2781: Add tas2781 driver") Signed-off-by: Shenghao Ding <shenghao-ding@ti.com> Link: https://patch.msgid.link/20251107054959.950-1-shenghao-ding@ti.com Signed-off-by: Mark Brown <broonie@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'sound')
-rw-r--r--sound/soc/codecs/tas2781-i2c.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/sound/soc/codecs/tas2781-i2c.c b/sound/soc/codecs/tas2781-i2c.c
index 43775c194445..836cf06a4526 100644
--- a/sound/soc/codecs/tas2781-i2c.c
+++ b/sound/soc/codecs/tas2781-i2c.c
@@ -616,7 +616,8 @@ static void tasdevice_parse_dt(struct tasdevice_priv *tas_priv)
{
struct i2c_client *client = (struct i2c_client *)tas_priv->client;
unsigned int dev_addrs[TASDEVICE_MAX_CHANNELS];
- int i, ndev = 0;
+ int ndev = 0;
+ int i, rc;
if (tas_priv->isacpi) {
ndev = device_property_read_u32_array(&client->dev,
@@ -627,8 +628,12 @@ static void tasdevice_parse_dt(struct tasdevice_priv *tas_priv)
} else {
ndev = (ndev < ARRAY_SIZE(dev_addrs))
? ndev : ARRAY_SIZE(dev_addrs);
- ndev = device_property_read_u32_array(&client->dev,
+ rc = device_property_read_u32_array(&client->dev,
"ti,audio-slots", dev_addrs, ndev);
+ if (rc != 0) {
+ ndev = 1;
+ dev_addrs[0] = client->addr;
+ }
}
tas_priv->irq =