Re: [PATCH v6 3/6] clk: qcom: smd: Add XO clock for MSM8998

From: Stephen Boyd
Date: Thu Nov 07 2019 - 16:50:19 EST


Quoting Jeffrey Hugo (2019-10-01 12:57:08)
> diff --git a/drivers/clk/qcom/gcc-msm8998.c b/drivers/clk/qcom/gcc-msm8998.c
> index 091acd59c1d6..1651a2f47ab8 100644
> --- a/drivers/clk/qcom/gcc-msm8998.c
> +++ b/drivers/clk/qcom/gcc-msm8998.c
> @@ -2971,14 +2957,23 @@ static const struct qcom_cc_desc gcc_msm8998_desc = {
> .num_resets = ARRAY_SIZE(gcc_msm8998_resets),
> .gdscs = gcc_msm8998_gdscs,
> .num_gdscs = ARRAY_SIZE(gcc_msm8998_gdscs),
> - .clk_hws = gcc_msm8998_hws,
> - .num_clk_hws = ARRAY_SIZE(gcc_msm8998_hws),
> };
>
> static int gcc_msm8998_probe(struct platform_device *pdev)
> {
> struct regmap *regmap;
> int ret;
> + struct clk *xo;
> +
> + /*
> + * We must have a valid XO to continue, otherwise having a missing
> + * parent on a system critical clock like the uart core clock can
> + * result in strange bugs. We know XO will be provided by rpmcc,
> + * but it might not be specified in DT like it should.
> + */
> + xo = __clk_lookup("xo");

I very much dislike __clk_lookup(). I think we can not have this patch?

> + if (!xo)
> + return -EPROBE_DEFER;
>