On 07/03/2025 13:47, Darren.Ye wrote: > + > +int mt8196_init_clock(struct mtk_base_afe *afe) > +{ > + struct mt8196_afe_private *afe_priv = afe->platform_priv; > + int i = 0; > + > + afe_priv->clk = devm_kcalloc(afe->dev, CLK_NUM, sizeof(*afe_priv->clk), > + GFP_KERNEL); > + if (!afe_priv->clk) > + return -ENOMEM; > + > + for (i = 0; i < CLK_NUM; i++) { > + if (!aud_clks[i]) { > + dev_err(afe->dev, "%s(), clk id %d not define!!!\n", > + __func__, i); > + } > + > + afe_priv->clk[i] = devm_clk_get(afe->dev, aud_clks[i]); > + if (IS_ERR(afe_priv->clk[i])) { > + dev_err(afe->dev, "%s devm_clk_get %s fail, ret %ld\n", > + __func__, dev_err_probe() and drop __func__ and ret. > + aud_clks[i], PTR_ERR(afe_priv->clk[i])); > + afe_priv->clk[i] = NULL; > + } > + } > + > + afe_priv->vlp_ck = syscon_regmap_lookup_by_phandle(afe->dev->of_node, > + "vlpcksys"); > + if (IS_ERR(afe_priv->vlp_ck)) { > + dev_err(afe->dev, "%s() Cannot find vlpcksys: %ld\n", > + __func__, PTR_ERR(afe_priv->vlp_ck)); > + afe_priv->vlp_ck = NULL; > + } > + > + afe_priv->cksys_ck = syscon_regmap_lookup_by_phandle(afe->dev->of_node, > + "cksys"); > + if (IS_ERR(afe_priv->cksys_ck)) { > + dev_err(afe->dev, "%s() Cannot find cksys controller: %ld\n", > + __func__, PTR_ERR(afe_priv->cksys_ck)); Eeach of my comments apply to entier code to all patches. You keep repeating same patterns from downstream. You should rather take upstream drivers as your base. Best regards, Krzysztof