* Re: [PATCH 2/8] ehci-platform: add init() method to platform data
2013-04-04 22:59 [PATCH 2/8] ehci-platform: add init() method to platform data Sergei Shtylyov
@ 2013-04-05 14:43 ` Alan Stern
2013-04-05 20:40 ` Sergei Shtylyov
` (5 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Alan Stern @ 2013-04-05 14:43 UTC (permalink / raw)
To: linux-sh
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
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: [PATCH 2/8] ehci-platform: add init() method to platform data
2013-04-04 22:59 [PATCH 2/8] ehci-platform: add init() method to platform data Sergei Shtylyov
2013-04-05 14:43 ` Alan Stern
@ 2013-04-05 20:40 ` Sergei Shtylyov
2013-04-05 20:48 ` Sergei Shtylyov
` (4 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Sergei Shtylyov @ 2013-04-05 20:40 UTC (permalink / raw)
To: linux-sh
Hello.
On 04/05/2013 06:43 PM, Alan Stern 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?
Quite vague too. :-)
But can't think of a better name...
>
>> --- 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.
You're right, of course.
> And instead of passing hcd->regs, wouldn't it be better to pass hcd?
I really don't know.
> Other users of this interface might need to initialize something other
> than a non-standard register.
Hm, maybe... if passing 'struct usb_hcd *' would indeed help here.
Do you think it's
worth passing 'struct platform_device *' along with it?
> Alan Stern
>
WBR, Sergei
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: [PATCH 2/8] ehci-platform: add init() method to platform data
2013-04-04 22:59 [PATCH 2/8] ehci-platform: add init() method to platform data Sergei Shtylyov
2013-04-05 14:43 ` Alan Stern
2013-04-05 20:40 ` Sergei Shtylyov
@ 2013-04-05 20:48 ` Sergei Shtylyov
2013-04-05 20:55 ` Alan Stern
` (3 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Sergei Shtylyov @ 2013-04-05 20:48 UTC (permalink / raw)
To: linux-sh
On 04/06/2013 12:40 AM, Sergei Shtylyov wrote:
>
>> And instead of passing hcd->regs, wouldn't it be better to pass hcd?
>
> I really don't know.
>
>> Other users of this interface might need to initialize something other
>> than a non-standard register.
>
> Hm, maybe... if passing 'struct usb_hcd *' would indeed help here.
> Do you think it's
> worth passing 'struct platform_device *' along with it?
Probably not as it can be extracted from 'hcd->self.controller'...
WBR, Sergei
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: [PATCH 2/8] ehci-platform: add init() method to platform data
2013-04-04 22:59 [PATCH 2/8] ehci-platform: add init() method to platform data Sergei Shtylyov
` (2 preceding siblings ...)
2013-04-05 20:48 ` Sergei Shtylyov
@ 2013-04-05 20:55 ` Alan Stern
2013-04-05 20:56 ` Alan Stern
` (2 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Alan Stern @ 2013-04-05 20:55 UTC (permalink / raw)
To: linux-sh
On Sat, 6 Apr 2013, Sergei Shtylyov wrote:
> > And instead of passing hcd->regs, wouldn't it be better to pass hcd?
>
> I really don't know.
>
> > Other users of this interface might need to initialize something other
> > than a non-standard register.
>
> Hm, maybe... if passing 'struct usb_hcd *' would indeed help here.
> Do you think it's
> worth passing 'struct platform_device *' along with it?
Yes. After all, the routine being called is part of the platform code.
Alan Stern
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: [PATCH 2/8] ehci-platform: add init() method to platform data
2013-04-04 22:59 [PATCH 2/8] ehci-platform: add init() method to platform data Sergei Shtylyov
` (3 preceding siblings ...)
2013-04-05 20:55 ` Alan Stern
@ 2013-04-05 20:56 ` Alan Stern
2013-04-05 20:59 ` Sergei Shtylyov
2013-04-05 21:15 ` Alan Stern
6 siblings, 0 replies; 8+ messages in thread
From: Alan Stern @ 2013-04-05 20:56 UTC (permalink / raw)
To: linux-sh
On Sat, 6 Apr 2013, Sergei Shtylyov wrote:
> On 04/06/2013 12:40 AM, Sergei Shtylyov wrote:
>
> >
> >> And instead of passing hcd->regs, wouldn't it be better to pass hcd?
> >
> > I really don't know.
> >
> >> Other users of this interface might need to initialize something other
> >> than a non-standard register.
> >
> > Hm, maybe... if passing 'struct usb_hcd *' would indeed help here.
> > Do you think it's
> > worth passing 'struct platform_device *' along with it?
>
> Probably not as it can be extracted from 'hcd->self.controller'...
It's up to you. Generally I think it's easier to pass an extra
argument than to force the function being called to dig it out.
Alan Stern
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: [PATCH 2/8] ehci-platform: add init() method to platform data
2013-04-04 22:59 [PATCH 2/8] ehci-platform: add init() method to platform data Sergei Shtylyov
` (4 preceding siblings ...)
2013-04-05 20:56 ` Alan Stern
@ 2013-04-05 20:59 ` Sergei Shtylyov
2013-04-05 21:15 ` Alan Stern
6 siblings, 0 replies; 8+ messages in thread
From: Sergei Shtylyov @ 2013-04-05 20:59 UTC (permalink / raw)
To: linux-sh
On 04/06/2013 12:56 AM, Alan Stern wrote:
>>>> And instead of passing hcd->regs, wouldn't it be better to pass hcd?
>>> I really don't know.
>>>
>>>> Other users of this interface might need to initialize something other
>>>> than a non-standard register.
>>> Hm, maybe... if passing 'struct usb_hcd *' would indeed help here.
>>> Do you think it's
>>> worth passing 'struct platform_device *' along with it?
>> Probably not as it can be extracted from 'hcd->self.controller'...
> It's up to you. Generally I think it's easier to pass an extra
> argument than to force the function being called to dig it out.
Note that in our use case we don't even need this argument.
> Alan Stern
WBR, Sergei
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: [PATCH 2/8] ehci-platform: add init() method to platform data
2013-04-04 22:59 [PATCH 2/8] ehci-platform: add init() method to platform data Sergei Shtylyov
` (5 preceding siblings ...)
2013-04-05 20:59 ` Sergei Shtylyov
@ 2013-04-05 21:15 ` Alan Stern
6 siblings, 0 replies; 8+ messages in thread
From: Alan Stern @ 2013-04-05 21:15 UTC (permalink / raw)
To: linux-sh
On Sat, 6 Apr 2013, Sergei Shtylyov wrote:
> On 04/06/2013 12:56 AM, Alan Stern wrote:
>
> >>>> And instead of passing hcd->regs, wouldn't it be better to pass hcd?
> >>> I really don't know.
> >>>
> >>>> Other users of this interface might need to initialize something other
> >>>> than a non-standard register.
> >>> Hm, maybe... if passing 'struct usb_hcd *' would indeed help here.
> >>> Do you think it's
> >>> worth passing 'struct platform_device *' along with it?
> >> Probably not as it can be extracted from 'hcd->self.controller'...
> > It's up to you. Generally I think it's easier to pass an extra
> > argument than to force the function being called to dig it out.
>
> Note that in our use case we don't even need this argument.
Okay, then don't pass it.
Alan Stern
^ permalink raw reply [flat|nested] 8+ messages in thread