ASoC: codecs: wcd9335: Handle nicer probe deferral and simplify with dev_err_probe()
[ Upstream commit 4a03b5dbad466c902d522f3405daa4e5d80578c5 ] wcd9335_parse_dt() function is called only from probe(), so printing errors on resource acquisition is discouraged, because it can pollute dmesg. Use dev_err_probe() to fix this and also make the code a bit simpler. Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Link: https://msgid.link/r/20240612-asoc-wcd9xxx-wide-cleanups-v1-4-0d15885b2a06@linaro.org Signed-off-by: Mark Brown <broonie@kernel.org> Stable-dep-of: 9079db287fc3 ("ASoC: codecs: wcd9335: Fix missing free of regulator supplies") Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
0c40fa81f8
commit
99d6968422
@@ -5036,22 +5036,16 @@ static int wcd9335_parse_dt(struct wcd9335_codec *wcd)
|
|||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
wcd->reset_gpio = of_get_named_gpio(np, "reset-gpios", 0);
|
wcd->reset_gpio = of_get_named_gpio(np, "reset-gpios", 0);
|
||||||
if (wcd->reset_gpio < 0) {
|
if (wcd->reset_gpio < 0)
|
||||||
dev_err(dev, "Reset GPIO missing from DT\n");
|
return dev_err_probe(dev, wcd->reset_gpio, "Reset GPIO missing from DT\n");
|
||||||
return wcd->reset_gpio;
|
|
||||||
}
|
|
||||||
|
|
||||||
wcd->mclk = devm_clk_get(dev, "mclk");
|
wcd->mclk = devm_clk_get(dev, "mclk");
|
||||||
if (IS_ERR(wcd->mclk)) {
|
if (IS_ERR(wcd->mclk))
|
||||||
dev_err(dev, "mclk not found\n");
|
return dev_err_probe(dev, PTR_ERR(wcd->mclk), "mclk not found\n");
|
||||||
return PTR_ERR(wcd->mclk);
|
|
||||||
}
|
|
||||||
|
|
||||||
wcd->native_clk = devm_clk_get(dev, "slimbus");
|
wcd->native_clk = devm_clk_get(dev, "slimbus");
|
||||||
if (IS_ERR(wcd->native_clk)) {
|
if (IS_ERR(wcd->native_clk))
|
||||||
dev_err(dev, "slimbus clock not found\n");
|
return dev_err_probe(dev, PTR_ERR(wcd->native_clk), "slimbus clock not found\n");
|
||||||
return PTR_ERR(wcd->native_clk);
|
|
||||||
}
|
|
||||||
|
|
||||||
wcd->supplies[0].supply = "vdd-buck";
|
wcd->supplies[0].supply = "vdd-buck";
|
||||||
wcd->supplies[1].supply = "vdd-buck-sido";
|
wcd->supplies[1].supply = "vdd-buck-sido";
|
||||||
@@ -5060,10 +5054,8 @@ static int wcd9335_parse_dt(struct wcd9335_codec *wcd)
|
|||||||
wcd->supplies[4].supply = "vdd-io";
|
wcd->supplies[4].supply = "vdd-io";
|
||||||
|
|
||||||
ret = regulator_bulk_get(dev, WCD9335_MAX_SUPPLY, wcd->supplies);
|
ret = regulator_bulk_get(dev, WCD9335_MAX_SUPPLY, wcd->supplies);
|
||||||
if (ret) {
|
if (ret)
|
||||||
dev_err(dev, "Failed to get supplies: err = %d\n", ret);
|
return dev_err_probe(dev, ret, "Failed to get supplies\n");
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -5163,10 +5155,8 @@ static int wcd9335_slim_probe(struct slim_device *slim)
|
|||||||
|
|
||||||
wcd->dev = dev;
|
wcd->dev = dev;
|
||||||
ret = wcd9335_parse_dt(wcd);
|
ret = wcd9335_parse_dt(wcd);
|
||||||
if (ret) {
|
if (ret)
|
||||||
dev_err(dev, "Error parsing DT: %d\n", ret);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
|
||||||
|
|
||||||
ret = wcd9335_power_on_reset(wcd);
|
ret = wcd9335_power_on_reset(wcd);
|
||||||
if (ret)
|
if (ret)
|
||||||
|
Reference in New Issue
Block a user