On 10/28, Sarangdhar Joshi wrote:
> @@ -380,33 +384,43 @@ EXPORT_SYMBOL(qcom_scm_is_available);
>  static int qcom_scm_probe(struct platform_device *pdev)
>  {
>       struct qcom_scm *scm;
> +     uint64_t clks;
>       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 = (uint64_t)of_device_get_match_data(&pdev->dev);
> +     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;
> +             }
>       }
>  
>       if (of_device_is_compatible(pdev->dev.of_node, "qcom,scm")) {

Why didn't this also get added to the flags feature? I'd prefer
we either use of_device_is_compatible() for everything, or device
data to figure out what quirks to apply.

> -             scm->iface_clk = devm_clk_get(&pdev->dev, "iface");
> -             if (IS_ERR(scm->iface_clk)) {
> -                     if (PTR_ERR(scm->iface_clk) != -EPROBE_DEFER)

-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project

Reply via email to