
18 Jul
2016
18 Jul
'16
1:41 p.m.
Hi Chanwoo,
On 07/15/2016 07:18 AM, Chanwoo Choi wrote:
+static int tm2_probe(struct platform_device *pdev) +{
- struct device *dev = &pdev->dev;
- codec_dai_node = of_parse_phandle(dev->of_node, "audio-codec", 0);
- if (!codec_dai_node) {
dev_err(dev, "audio-codec property invalid or missing\n");
ret = -EINVAL;
goto err_put_cpu_dai;
- }
- priv->codec_mclk1 = of_clk_get_by_name(codec_dai_node, "mclk1");
- if (IS_ERR(priv->codec_mclk1)) {
dev_err(dev, "Failed to get mclk1 clock\n");
ret = PTR_ERR(priv->codec_mclk1);
goto err_put_codec_dai;
- }
I think that you better to use the devm_clk_get() instead of of_clk_get_by_name() because you don't need to handle the clk_put() when error happen and remove the this driver.
priv->codec_mclk1 = devm_clk_get(dev, "mclk1");
The clocks are from the CODEC DT node, for which we don't have struct device pointer here, that's why I used of_clk_get_by_name().
-- Thanks, Sylwester