Re: [PATCH v2 2/3] firmware: qcom: scm: Remove core, iface and bus clocks dependency

From: Bjorn Andersson
Date: Thu Nov 10 2016 - 00:55:17 EST


On Wed 09 Nov 17:47 PST 2016, Stephen Boyd wrote:

> On 11/03, Sarangdhar Joshi wrote:
> > diff --git a/drivers/firmware/qcom_scm.c b/drivers/firmware/qcom_scm.c
> > index d79fecd..844e90d 100644
> > --- a/drivers/firmware/qcom_scm.c
> > +++ b/drivers/firmware/qcom_scm.c
> > @@ -380,32 +384,40 @@ EXPORT_SYMBOL(qcom_scm_is_available);
> > static int qcom_scm_probe(struct platform_device *pdev)
> > {
> > struct qcom_scm *scm;
> > + uint32_t clks;
>
> If this was unsigned long flags;
>

I did look at this too and could only find a mixture of ways people have
done this. Isn't the correct type for this intptr_t?

Regards,
Bjorn

> > int ret;
> >
> > scm = devm_kzalloc(&pdev->dev, sizeof(*scm), GFP_KERNEL);
> > if (!scm)
> > return -ENOMEM;
> >
> > - scm->core_clk = devm_clk_get(&pdev->dev, "core");
> > - if (IS_ERR(scm->core_clk)) {
> > - if (PTR_ERR(scm->core_clk) == -EPROBE_DEFER)
> > - return PTR_ERR(scm->core_clk);
> > + clks = (uint32_t)((uintptr_t)of_device_get_match_data(&pdev->dev));
>
> then this could just be a cast to unsigned long?
>
> > + if (clks & SCM_HAS_CORE_CLK) {
> > + scm->core_clk = devm_clk_get(&pdev->dev, "core");
> > + if (IS_ERR(scm->core_clk)) {
> > + if (PTR_ERR(scm->core_clk) == -EPROBE_DEFER)
> > + return PTR_ERR(scm->core_clk);
> >
> > - scm->core_clk = NULL;
> > + scm->core_clk = NULL;
> > + }
> > }
>
> --
> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
> a Linux Foundation Collaborative Project