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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to