]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ASoC: tas2770: Fix required DT properties in the code
authorDan Murphy <dmurphy@ti.com>
Fri, 18 Sep 2020 19:05:43 +0000 (14:05 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 29 Oct 2020 09:07:41 +0000 (10:07 +0100)
[ Upstream commit 4b8ab8a7761fe2ba1c4e741703a848cb8f390f79 ]

The devicetree binding indicates that the ti,asi-format, ti,imon-slot-no
and ti,vmon-slot-no are not required but the driver requires them or it
fails to probe. Honor the binding and allow these entries to be optional
and set the corresponding values to the default values for each as defined
in the data sheet.

Fixes: 1a476abc723e6 ("tas2770: add tas2770 smart PA kernel driver")
Signed-off-by: Dan Murphy <dmurphy@ti.com>
Link: https://lore.kernel.org/r/20200918190548.12598-4-dmurphy@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
sound/soc/codecs/tas2770.c

index 4d67b1c1603806c76869e00afaa8a1fc100ed19b..f6c3c5aaab6531056dae8c18f9655d60ae40b261 100644 (file)
@@ -707,29 +707,28 @@ static int tas2770_parse_dt(struct device *dev, struct tas2770_priv *tas2770)
        rc = fwnode_property_read_u32(dev->fwnode, "ti,asi-format",
                                        &tas2770->asi_format);
        if (rc) {
-               dev_err(tas2770->dev, "Looking up %s property failed %d\n",
-                       "ti,asi-format", rc);
-               goto end;
+               dev_info(tas2770->dev, "Property %s is missing setting default slot\n",
+                       "ti,asi-format");
+               tas2770->asi_format = 0;
        }
 
        rc = fwnode_property_read_u32(dev->fwnode, "ti,imon-slot-no",
                        &tas2770->i_sense_slot);
        if (rc) {
-               dev_err(tas2770->dev, "Looking up %s property failed %d\n",
-                       "ti,imon-slot-no", rc);
-               goto end;
+               dev_info(tas2770->dev, "Property %s is missing setting default slot\n",
+                       "ti,imon-slot-no");
+               tas2770->i_sense_slot = 0;
        }
 
        rc = fwnode_property_read_u32(dev->fwnode, "ti,vmon-slot-no",
                                &tas2770->v_sense_slot);
        if (rc) {
-               dev_err(tas2770->dev, "Looking up %s property failed %d\n",
-                       "ti,vmon-slot-no", rc);
-               goto end;
+               dev_info(tas2770->dev, "Property %s is missing setting default slot\n",
+                       "ti,vmon-slot-no");
+               tas2770->v_sense_slot = 2;
        }
 
-end:
-       return rc;
+       return 0;
 }
 
 static int tas2770_i2c_probe(struct i2c_client *client,