ASoC: Intel: boards: use software node API in Atom boards
authorHeikki Krogerus <heikki.krogerus@linux.intel.com>
Fri, 13 Aug 2021 15:11:16 +0000 (10:11 -0500)
committerMark Brown <broonie@kernel.org>
Fri, 13 Aug 2021 15:50:43 +0000 (16:50 +0100)
The function device_add_properties() is going to be removed.
Replacing it with software node API equivalents.

Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Co-developed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Link: https://lore.kernel.org/r/20210813151116.23931-9-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/boards/bytcht_es8316.c
sound/soc/intel/boards/bytcr_rt5640.c
sound/soc/intel/boards/bytcr_rt5651.c

index f3919ba..055248f 100644 (file)
@@ -462,6 +462,7 @@ static int snd_byt_cht_es8316_mc_probe(struct platform_device *pdev)
        const struct dmi_system_id *dmi_id;
        struct device *dev = &pdev->dev;
        struct snd_soc_acpi_mach *mach;
+       struct fwnode_handle *fwnode;
        const char *platform_name;
        struct acpi_device *adev;
        struct device *codec_dev;
@@ -548,7 +549,16 @@ static int snd_byt_cht_es8316_mc_probe(struct platform_device *pdev)
                props[cnt++] = PROPERTY_ENTRY_BOOL("everest,jack-detect-inverted");
 
        if (cnt) {
-               ret = device_add_properties(codec_dev, props);
+               fwnode = fwnode_create_software_node(props, NULL);
+               if (IS_ERR(fwnode)) {
+                       put_device(codec_dev);
+                       return PTR_ERR(fwnode);
+               }
+
+               ret = device_add_software_node(codec_dev, to_software_node(fwnode));
+
+               fwnode_handle_put(fwnode);
+
                if (ret) {
                        put_device(codec_dev);
                        return ret;
@@ -615,7 +625,7 @@ static int snd_byt_cht_es8316_mc_probe(struct platform_device *pdev)
        return 0;
 
 err_put_codec:
-       device_remove_properties(priv->codec_dev);
+       device_remove_software_node(priv->codec_dev);
        put_device(priv->codec_dev);
        return ret;
 }
@@ -626,7 +636,7 @@ static int snd_byt_cht_es8316_mc_remove(struct platform_device *pdev)
        struct byt_cht_es8316_private *priv = snd_soc_card_get_drvdata(card);
 
        gpiod_put(priv->speaker_en_gpio);
-       device_remove_properties(priv->codec_dev);
+       device_remove_software_node(priv->codec_dev);
        put_device(priv->codec_dev);
        return 0;
 }
index 41fd56d..fecccff 100644 (file)
@@ -974,7 +974,9 @@ static int byt_rt5640_add_codec_device_props(struct device *i2c_dev,
                                             struct byt_rt5640_private *priv)
 {
        struct property_entry props[MAX_NO_PROPS] = {};
+       struct fwnode_handle *fwnode;
        int cnt = 0;
+       int ret;
 
        switch (BYT_RT5640_MAP(byt_rt5640_quirk)) {
        case BYT_RT5640_DMIC1_MAP:
@@ -1014,7 +1016,17 @@ static int byt_rt5640_add_codec_device_props(struct device *i2c_dev,
        if (byt_rt5640_quirk & BYT_RT5640_JD_NOT_INV)
                props[cnt++] = PROPERTY_ENTRY_BOOL("realtek,jack-detect-not-inverted");
 
-       return device_add_properties(i2c_dev, props);
+       fwnode = fwnode_create_software_node(props, NULL);
+       if (IS_ERR(fwnode)) {
+               /* put_device() is handled in caller */
+               return PTR_ERR(fwnode);
+       }
+
+       ret = device_add_software_node(i2c_dev, to_software_node(fwnode));
+
+       fwnode_handle_put(fwnode);
+
+       return ret;
 }
 
 static int byt_rt5640_init(struct snd_soc_pcm_runtime *runtime)
@@ -1584,7 +1596,7 @@ static int snd_byt_rt5640_mc_probe(struct platform_device *pdev)
        return ret_val;
 
 err:
-       device_remove_properties(priv->codec_dev);
+       device_remove_software_node(priv->codec_dev);
 err_device:
        put_device(priv->codec_dev);
        return ret_val;
@@ -1595,7 +1607,7 @@ static int snd_byt_rt5640_mc_remove(struct platform_device *pdev)
        struct snd_soc_card *card = platform_get_drvdata(pdev);
        struct byt_rt5640_private *priv = snd_soc_card_get_drvdata(card);
 
-       device_remove_properties(priv->codec_dev);
+       device_remove_software_node(priv->codec_dev);
        put_device(priv->codec_dev);
        return 0;
 }
index cc1505e..e94c912 100644 (file)
@@ -528,10 +528,13 @@ static const struct dmi_system_id byt_rt5651_quirk_table[] = {
  * Note this MUST be called before snd_soc_register_card(), so that the props
  * are in place before the codec component driver's probe function parses them.
  */
-static int byt_rt5651_add_codec_device_props(struct device *i2c_dev)
+static int byt_rt5651_add_codec_device_props(struct device *i2c_dev,
+                                            struct byt_rt5651_private *priv)
 {
        struct property_entry props[MAX_NO_PROPS] = {};
+       struct fwnode_handle *fwnode;
        int cnt = 0;
+       int ret;
 
        props[cnt++] = PROPERTY_ENTRY_U32("realtek,jack-detect-source",
                                BYT_RT5651_JDSRC(byt_rt5651_quirk));
@@ -548,7 +551,17 @@ static int byt_rt5651_add_codec_device_props(struct device *i2c_dev)
        if (byt_rt5651_quirk & BYT_RT5651_JD_NOT_INV)
                props[cnt++] = PROPERTY_ENTRY_BOOL("realtek,jack-detect-not-inverted");
 
-       return device_add_properties(i2c_dev, props);
+       fwnode = fwnode_create_software_node(props, NULL);
+       if (IS_ERR(fwnode)) {
+               /* put_device(i2c_dev) is handled in caller */
+               return PTR_ERR(fwnode);
+       }
+
+       ret = device_add_software_node(i2c_dev, to_software_node(fwnode));
+
+       fwnode_handle_put(fwnode);
+
+       return ret;
 }
 
 static int byt_rt5651_init(struct snd_soc_pcm_runtime *runtime)
@@ -995,7 +1008,7 @@ static int snd_byt_rt5651_mc_probe(struct platform_device *pdev)
        }
 
        /* Must be called before register_card, also see declaration comment. */
-       ret_val = byt_rt5651_add_codec_device_props(codec_dev);
+       ret_val = byt_rt5651_add_codec_device_props(codec_dev, priv);
        if (ret_val)
                goto err_device;
 
@@ -1125,7 +1138,7 @@ static int snd_byt_rt5651_mc_probe(struct platform_device *pdev)
        return ret_val;
 
 err:
-       device_remove_properties(priv->codec_dev);
+       device_remove_software_node(priv->codec_dev);
 err_device:
        put_device(priv->codec_dev);
        return ret_val;
@@ -1136,7 +1149,7 @@ static int snd_byt_rt5651_mc_remove(struct platform_device *pdev)
        struct snd_soc_card *card = platform_get_drvdata(pdev);
        struct byt_rt5651_private *priv = snd_soc_card_get_drvdata(card);
 
-       device_remove_properties(priv->codec_dev);
+       device_remove_software_node(priv->codec_dev);
        put_device(priv->codec_dev);
        return 0;
 }