On Thu, 23 Feb 2012, Felipe Balbi wrote:
Hi,
On Sat, Feb 18, 2012 at 06:04:39PM +0100, Julia Lawall wrote:
The function at91udc_probe in the file drivers/usb/gadget/at91_udc.c
contains the following code:
udc->iclk = clk_get(dev, "udc_clk");
udc->fclk = clk_get(dev, "udpck");
if (IS_ERR(udc->iclk) || IS_ERR(udc->fclk)) {
DBG("clocks missing\n");
retval = -ENODEV;
/* NOTE: we "know" here that refcounts on these are NOPs */
goto fail0b;
}
Why is it known here that refcounts are NOPs. When does this
property cease to hold? clk_put is present in the corresponding
remove function.
I guess we need to ask AT91 maintainers as I have never worked with that
architecture, but I believe that if clk_get() fails, the clk won't get
its reference counter incremented. It depends on how they have
implemented their clk API.
Sure, but it's an ||, so it might be that only one of them has failed.
Maybe someone else has an idea.
thanks,
julia
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html