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: 42b144cb6a ("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>
This commit is contained in:
Charles Keepax 2026-04-13 13:46:21 +01:00 committed by Mark Brown
parent ca1b11b36d
commit 956c032be7
No known key found for this signature in database
GPG Key ID: 24D68B725D5487D0

View File

@ -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;