]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ASoC: soc-core: Stop using of_property_read_bool() for non-boolean properties
authorGeert Uytterhoeven <geert+renesas@glider.be>
Wed, 22 Jan 2025 08:21:27 +0000 (09:21 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 9 May 2025 07:44:03 +0000 (09:44 +0200)
commit 6eab7034579917f207ca6d8e3f4e11e85e0ab7d5 upstream.

On R-Car:

    OF: /sound: Read of boolean property 'simple-audio-card,bitclock-master' with a value.
    OF: /sound: Read of boolean property 'simple-audio-card,frame-master' with a value.

or:

    OF: /soc/sound@ec500000/ports/port@0/endpoint: Read of boolean property 'bitclock-master' with a value.
    OF: /soc/sound@ec500000/ports/port@0/endpoint: Read of boolean property 'frame-master' with a value.

The use of of_property_read_bool() for non-boolean properties is
deprecated in favor of of_property_present() when testing for property
presence.

Replace testing for presence before calling of_property_read_u32() by
testing for an -EINVAL return value from the latter, to simplify the
code.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://patch.msgid.link/db10e96fbda121e7456d70e97a013cbfc9755f4d.1737533954.git.geert+renesas@glider.be
Signed-off-by: Mark Brown <broonie@kernel.org>
Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
sound/soc/soc-core.c

index b9dfc10a9fc09955a3ea7ca67fa49f2caaee5d98..7eea70eea68b472a8ae2f24178073211e8ea1651 100644 (file)
@@ -2935,7 +2935,7 @@ int snd_soc_of_parse_pin_switches(struct snd_soc_card *card, const char *prop)
        unsigned int i, nb_controls;
        int ret;
 
-       if (!of_property_read_bool(dev->of_node, prop))
+       if (!of_property_present(dev->of_node, prop))
                return 0;
 
        strings = devm_kcalloc(dev, nb_controls_max,
@@ -3009,23 +3009,17 @@ int snd_soc_of_parse_tdm_slot(struct device_node *np,
        if (rx_mask)
                snd_soc_of_get_slot_mask(np, "dai-tdm-slot-rx-mask", rx_mask);
 
-       if (of_property_read_bool(np, "dai-tdm-slot-num")) {
-               ret = of_property_read_u32(np, "dai-tdm-slot-num", &val);
-               if (ret)
-                       return ret;
-
-               if (slots)
-                       *slots = val;
-       }
-
-       if (of_property_read_bool(np, "dai-tdm-slot-width")) {
-               ret = of_property_read_u32(np, "dai-tdm-slot-width", &val);
-               if (ret)
-                       return ret;
+       ret = of_property_read_u32(np, "dai-tdm-slot-num", &val);
+       if (ret && ret != -EINVAL)
+               return ret;
+       if (!ret && slots)
+               *slots = val;
 
-               if (slot_width)
-                       *slot_width = val;
-       }
+       ret = of_property_read_u32(np, "dai-tdm-slot-width", &val);
+       if (ret && ret != -EINVAL)
+               return ret;
+       if (!ret && slot_width)
+               *slot_width = val;
 
        return 0;
 }
@@ -3289,12 +3283,12 @@ unsigned int snd_soc_daifmt_parse_clock_provider_raw(struct device_node *np,
         * check "[prefix]frame-master"
         */
        snprintf(prop, sizeof(prop), "%sbitclock-master", prefix);
-       bit = of_property_read_bool(np, prop);
+       bit = of_property_present(np, prop);
        if (bit && bitclkmaster)
                *bitclkmaster = of_parse_phandle(np, prop, 0);
 
        snprintf(prop, sizeof(prop), "%sframe-master", prefix);
-       frame = of_property_read_bool(np, prop);
+       frame = of_property_present(np, prop);
        if (frame && framemaster)
                *framemaster = of_parse_phandle(np, prop, 0);