summaryrefslogtreecommitdiff
path: root/sound
diff options
context:
space:
mode:
authorCharles Keepax <ckeepax@opensource.cirrus.com>2026-04-13 13:46:21 +0100
committerMark Brown <broonie@kernel.org>2026-04-20 18:40:03 +0100
commit956c032be7ca3f440d4786ea37e941bf862bb170 (patch)
tree4482ed331f03c0db78d8f64748b7b5af330a6802 /sound
parentca1b11b36d8231a748c77e4732e40de9998fa9d8 (diff)
ASoC: SDCA: Fix reading of mipi-sdca-control-deferrable
The discussion in [1] highlighted that the SDCA code shouldn't be using fwnode_property_read_bool() for DisCo controls, as the spec allows setting the value to zero meaning the property should not be used. Correct a small bug in the SDCA code that will mark such controls as deferrable. Link: https://lore.kernel.org/linux-sound/20260311142153.2201761-1-rf@opensource.cirrus.com/ [1] Fixes: 42b144cb6a2d ("ASoC: SDCA: Add SDCA Control parsing") Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> Link: https://patch.msgid.link/20260413124621.1345315-3-ckeepax@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound')
-rw-r--r--sound/soc/sdca/sdca_functions.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sound/soc/sdca/sdca_functions.c b/sound/soc/sdca/sdca_functions.c
index dca60ee8e62c..c5fe1a471c36 100644
--- a/sound/soc/sdca/sdca_functions.c
+++ b/sound/soc/sdca/sdca_functions.c
@@ -1006,8 +1006,11 @@ static int find_sdca_entity_control(struct device *dev, struct sdca_entity *enti
control->has_fixed = true;
fallthrough;
case SDCA_ACCESS_MODE_RO:
- control->deferrable = fwnode_property_read_bool(control_node,
- "mipi-sdca-control-deferrable");
+ ret = fwnode_property_read_u32(control_node,
+ "mipi-sdca-control-deferrable",
+ &tmp);
+ if (ret == 0)
+ control->deferrable = !!tmp;
break;
default:
break;