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 linux-usb" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
