]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
ASoC: SDCA: Add default value for mipi-sdca-function-reset-max-delay
authorCharles Keepax <ckeepax@opensource.cirrus.com>
Wed, 25 Feb 2026 14:01:15 +0000 (14:01 +0000)
committerMark Brown <broonie@kernel.org>
Thu, 26 Feb 2026 19:16:45 +0000 (19:16 +0000)
Add a default value for the function reset timeout since version 1.0
of the SDCA specification doesn't actually include this property, it
was added later.

Fixes: 7b6be935e7ef ("ASoC: SDCA: Parse Function Reset max delay")
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.dev>
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://patch.msgid.link/20260225140118.402695-2-ckeepax@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sdca/sdca_fdl.c
sound/soc/sdca/sdca_functions.c

index 07892bc3a44e6e78f480e217c978f42fff41b579..994821a6df617d9c5d4c32a9ff055b17b88d040f 100644 (file)
@@ -46,11 +46,6 @@ int sdca_reset_function(struct device *dev, struct sdca_function_data *function,
        if (ret) // Allowed for function reset to not be implemented
                return 0;
 
-       if (!function->reset_max_delay) {
-               dev_err(dev, "No reset delay specified in DisCo\n");
-               return -EINVAL;
-       }
-
        /*
         * Poll up to 16 times but no more than once per ms, these are just
         * arbitrarily selected values, so may be fine tuned in future.
index 95b67bb904c313f02bd0f380c169e4800769cb4e..a0aed95c763458a1bd1d2f6229af01c6f0bfc730 100644 (file)
@@ -2167,8 +2167,12 @@ int sdca_parse_function(struct device *dev, struct sdw_slave *sdw,
 
        ret = fwnode_property_read_u32(function_desc->node,
                                       "mipi-sdca-function-reset-max-delay", &tmp);
-       if (!ret)
+       if (ret || tmp == 0) {
+               dev_dbg(dev, "reset delay missing, defaulting to 100mS\n");
+               function->reset_max_delay = 100000;
+       } else {
                function->reset_max_delay = tmp;
+       }
 
        dev_dbg(dev, "%pfwP: name %s busy delay %dus reset delay %dus\n",
                function->desc->node, function->desc->name,