Hi,

On 01/06/2014 08:50 AM, Hans de Goede wrote:

<snip>

Otherwise you don't know the difference between "no clock
provided", "error getting the clock reference" and "clock controller not
initialized yet, try again".

I guess of these 3 we really only want to continue on "no clock provided",
so I think something like this (for both clks and the phy) would be best:

         priv->ahb_clk = devm_clk_get(&dev->dev, "ahb");
         if (IS_ERR(priv->ahb_clk)) {
             err = PTR_ERR(priv->ahb_clk);
             if (err != -EINVAL && err != -ENODATA)
                 goto err_put_hcd;
             priv->ahb_clk = NULL; /* No clock provided */
         }

To clarify -EINVAL will be returned when there is no clock-names, and
-ENODATA when the specified name is not found in clock-names.

Ok, so I've got this wrong, if there is no clk by that name specified
in dt -ENOENT will be returned. Actually -ENOENT is the only
error clk_get and thus devm_clk_get will ever return.

So it seems that clk_get currently is not properly passing along
probe-deferral. To make things future proof I will add a probe
deferral check to the next version of my patch.

Regards,

Hans
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to