On Fri, 5 Apr 2013, Sergei Shtylyov wrote: > Sometimes there is a need to initialize some non-standard registers mapped to > the EHCI region before accessing the standard EHCI registers. Add the init() > method to the 'ehci-platform' platform data for this purpose. "init" isn't such a good name for this. It's too vague; there are already a lot of initialization steps here. How about "pre_setup" instead? > --- renesas.orig/drivers/usb/host/ehci-platform.c > +++ renesas/drivers/usb/host/ehci-platform.c > @@ -110,6 +110,13 @@ static int ehci_platform_probe(struct pl > err = PTR_ERR(hcd->regs); > goto err_put_hcd; > } > + > + if (pdata->init) { > + err = pdata->init(dev, hcd->regs); > + if (err < 0) > + goto err_put_hcd; > + } Also, I think this code should go in the ehci_platform_reset() routine, just before the call to ehci_setup(). That way more of the setup will already have been carried out. And instead of passing hcd->regs, wouldn't it be better to pass hcd? Other users of this interface might need to initialize something other than a non-standard register. Alan Stern -- 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