RE: [PATCH v3 5/9] usb: gadget: s3c-hsotg: use generic phy_init()/phy_exit() support

2013-11-28 Thread Kamil Debski
Hi Matt,

> From: Matt Porter [mailto:matt.por...@linaro.org]
> Sent: Thursday, November 28, 2013 5:42 PM
> 
> On Thu, Nov 28, 2013 at 11:23:52AM +0530, Kishon Vijay Abraham I wrote:
> > On Thursday 28 November 2013 04:06 AM, Matt Porter wrote:
> > > On Wed, Nov 27, 2013 at 12:13:25PM -0500, Matt Porter wrote:
> > >> On Tue, Nov 26, 2013 at 03:53:32PM +0530, Kishon Vijay Abraham I
> wrote:
> > >>> Hi,
> > >>>
> > >>> On Monday 25 November 2013 11:46 PM, Matt Porter wrote:
> >  If a generic phy is present, call phy_init()/phy_exit(). This
> >  supports generic phys that must be soft reset before power on.
> > 
> >  Signed-off-by: Matt Porter 
> >  ---
> >   drivers/usb/gadget/s3c-hsotg.c | 5 +
> >   1 file changed, 5 insertions(+)
> > 
> >  diff --git a/drivers/usb/gadget/s3c-hsotg.c
> >  b/drivers/usb/gadget/s3c-hsotg.c index da3879b..8dfe33f 100644
> >  --- a/drivers/usb/gadget/s3c-hsotg.c
> >  +++ b/drivers/usb/gadget/s3c-hsotg.c
> >  @@ -3622,6 +3622,9 @@ static int s3c_hsotg_probe(struct
> platform_device *pdev)
> > goto err_supplies;
> > }
> > 
> >  +  if (hsotg->phy)
> > >>>
> > >>> IS_ERR? If your phy_get fails *phy* will have a error value..
> > >>
> > >> Yes, thanks. I'll fix these and also note that the same issue
> > >> exists in Kamil's patch for these same hsotg->phy conditional uses.
> > >> I'll work with Kamil to either get those addressed there or in a
> follow on fix.
> > >
> > > I spoke too soon. If devm_phy_get fails, we don't set hsotg->phy
> and
> > > probe defer thus not reaching this point. Since hsotg->phy is
> either
> > > NULL or a valid struct phy *, this is correct as is throughout the
> driver.
> > >
> > >>>
> >  +  phy_init(hsotg->phy);
> >  +
> > /* usb phy enable */
> > s3c_hsotg_phy_enable(hsotg);
> > 
> >  @@ -3715,6 +3718,8 @@ static int s3c_hsotg_remove(struct
> platform_device *pdev)
> > }
> > 
> > s3c_hsotg_phy_disable(hsotg);
> >  +  if (hsotg->phy)
> > >>>
> > >>> same here.
> > >>
> > >> Ok.
> > >
> > > Same above, this will be NULL on failure (but is only applicable at
> > > this point on the platform data path.
> >
> > Ah ok.. Btw where is phy_get being called? Is it not part of this
> series?
> 
> It's in the Kamil's Exynos USB Phy -> generic phy series [1] which I
> depend on here. I mentioned it in the cover letter toward the end so
> it's a bit buried.
> 
> I have some outstanding, but trivial, comments on that series but I
> hear Kamil will be posting an update in the coming days. I'll wait a
> few days to post v4 addressing your comments so I can hopefully rebase
> against his updated s3c-hsotg patch.
> 

I am sorry to keep you waiting. I was doing some urgent non USB work 
lately and that is the reason for the delay. Thank you for the review of
the last version, by the way. I should post the new version on Wednesday
(or Tuesday afternoon, time permitting). Also, I will have no access to
my Samsung email until Tuesday.

Best wishes,
Kamil Debski


--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v3 5/9] usb: gadget: s3c-hsotg: use generic phy_init()/phy_exit() support

2013-11-28 Thread Matt Porter
On Thu, Nov 28, 2013 at 11:23:52AM +0530, Kishon Vijay Abraham I wrote:
> On Thursday 28 November 2013 04:06 AM, Matt Porter wrote:
> > On Wed, Nov 27, 2013 at 12:13:25PM -0500, Matt Porter wrote:
> >> On Tue, Nov 26, 2013 at 03:53:32PM +0530, Kishon Vijay Abraham I wrote:
> >>> Hi,
> >>>
> >>> On Monday 25 November 2013 11:46 PM, Matt Porter wrote:
>  If a generic phy is present, call phy_init()/phy_exit(). This supports
>  generic phys that must be soft reset before power on.
> 
>  Signed-off-by: Matt Porter 
>  ---
>   drivers/usb/gadget/s3c-hsotg.c | 5 +
>   1 file changed, 5 insertions(+)
> 
>  diff --git a/drivers/usb/gadget/s3c-hsotg.c 
>  b/drivers/usb/gadget/s3c-hsotg.c
>  index da3879b..8dfe33f 100644
>  --- a/drivers/usb/gadget/s3c-hsotg.c
>  +++ b/drivers/usb/gadget/s3c-hsotg.c
>  @@ -3622,6 +3622,9 @@ static int s3c_hsotg_probe(struct platform_device 
>  *pdev)
>   goto err_supplies;
>   }
>   
>  +if (hsotg->phy)
> >>>
> >>> IS_ERR? If your phy_get fails *phy* will have a error value..
> >>
> >> Yes, thanks. I'll fix these and also note that the same issue exists in
> >> Kamil's patch for these same hsotg->phy conditional uses. I'll work with
> >> Kamil to either get those addressed there or in a follow on fix.
> > 
> > I spoke too soon. If devm_phy_get fails, we don't set hsotg->phy and probe
> > defer thus not reaching this point. Since hsotg->phy is either NULL or a
> > valid struct phy *, this is correct as is throughout the driver.
> > 
> >>>
>  +phy_init(hsotg->phy);
>  +
>   /* usb phy enable */
>   s3c_hsotg_phy_enable(hsotg);
>   
>  @@ -3715,6 +3718,8 @@ static int s3c_hsotg_remove(struct platform_device 
>  *pdev)
>   }
>   
>   s3c_hsotg_phy_disable(hsotg);
>  +if (hsotg->phy)
> >>>
> >>> same here.
> >>
> >> Ok.
> > 
> > Same above, this will be NULL on failure (but is only applicable at this
> > point on the platform data path.
> 
> Ah ok.. Btw where is phy_get being called? Is it not part of this series?

It's in the Kamil's Exynos USB Phy -> generic phy series [1] which I depend
on here. I mentioned it in the cover letter toward the end so it's a bit
buried.

I have some outstanding, but trivial, comments on that series but I hear
Kamil will be posting an update in the coming days. I'll wait a few days
to post v4 addressing your comments so I can hopefully rebase against
his updated s3c-hsotg patch.

-Matt

[1] https://lkml.org/lkml/2013/11/5/275
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v3 5/9] usb: gadget: s3c-hsotg: use generic phy_init()/phy_exit() support

2013-11-27 Thread Kishon Vijay Abraham I
On Thursday 28 November 2013 04:06 AM, Matt Porter wrote:
> On Wed, Nov 27, 2013 at 12:13:25PM -0500, Matt Porter wrote:
>> On Tue, Nov 26, 2013 at 03:53:32PM +0530, Kishon Vijay Abraham I wrote:
>>> Hi,
>>>
>>> On Monday 25 November 2013 11:46 PM, Matt Porter wrote:
 If a generic phy is present, call phy_init()/phy_exit(). This supports
 generic phys that must be soft reset before power on.

 Signed-off-by: Matt Porter 
 ---
  drivers/usb/gadget/s3c-hsotg.c | 5 +
  1 file changed, 5 insertions(+)

 diff --git a/drivers/usb/gadget/s3c-hsotg.c 
 b/drivers/usb/gadget/s3c-hsotg.c
 index da3879b..8dfe33f 100644
 --- a/drivers/usb/gadget/s3c-hsotg.c
 +++ b/drivers/usb/gadget/s3c-hsotg.c
 @@ -3622,6 +3622,9 @@ static int s3c_hsotg_probe(struct platform_device 
 *pdev)
goto err_supplies;
}
  
 +  if (hsotg->phy)
>>>
>>> IS_ERR? If your phy_get fails *phy* will have a error value..
>>
>> Yes, thanks. I'll fix these and also note that the same issue exists in
>> Kamil's patch for these same hsotg->phy conditional uses. I'll work with
>> Kamil to either get those addressed there or in a follow on fix.
> 
> I spoke too soon. If devm_phy_get fails, we don't set hsotg->phy and probe
> defer thus not reaching this point. Since hsotg->phy is either NULL or a
> valid struct phy *, this is correct as is throughout the driver.
> 
>>>
 +  phy_init(hsotg->phy);
 +
/* usb phy enable */
s3c_hsotg_phy_enable(hsotg);
  
 @@ -3715,6 +3718,8 @@ static int s3c_hsotg_remove(struct platform_device 
 *pdev)
}
  
s3c_hsotg_phy_disable(hsotg);
 +  if (hsotg->phy)
>>>
>>> same here.
>>
>> Ok.
> 
> Same above, this will be NULL on failure (but is only applicable at this
> point on the platform data path.

Ah ok.. Btw where is phy_get being called? Is it not part of this series?

Thanks
Kishon

> 
> -Matt
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v3 5/9] usb: gadget: s3c-hsotg: use generic phy_init()/phy_exit() support

2013-11-27 Thread Matt Porter
On Wed, Nov 27, 2013 at 12:13:25PM -0500, Matt Porter wrote:
> On Tue, Nov 26, 2013 at 03:53:32PM +0530, Kishon Vijay Abraham I wrote:
> > Hi,
> > 
> > On Monday 25 November 2013 11:46 PM, Matt Porter wrote:
> > > If a generic phy is present, call phy_init()/phy_exit(). This supports
> > > generic phys that must be soft reset before power on.
> > > 
> > > Signed-off-by: Matt Porter 
> > > ---
> > >  drivers/usb/gadget/s3c-hsotg.c | 5 +
> > >  1 file changed, 5 insertions(+)
> > > 
> > > diff --git a/drivers/usb/gadget/s3c-hsotg.c 
> > > b/drivers/usb/gadget/s3c-hsotg.c
> > > index da3879b..8dfe33f 100644
> > > --- a/drivers/usb/gadget/s3c-hsotg.c
> > > +++ b/drivers/usb/gadget/s3c-hsotg.c
> > > @@ -3622,6 +3622,9 @@ static int s3c_hsotg_probe(struct platform_device 
> > > *pdev)
> > >   goto err_supplies;
> > >   }
> > >  
> > > + if (hsotg->phy)
> > 
> > IS_ERR? If your phy_get fails *phy* will have a error value..
> 
> Yes, thanks. I'll fix these and also note that the same issue exists in
> Kamil's patch for these same hsotg->phy conditional uses. I'll work with
> Kamil to either get those addressed there or in a follow on fix.

I spoke too soon. If devm_phy_get fails, we don't set hsotg->phy and probe
defer thus not reaching this point. Since hsotg->phy is either NULL or a
valid struct phy *, this is correct as is throughout the driver.

> > 
> > > + phy_init(hsotg->phy);
> > > +
> > >   /* usb phy enable */
> > >   s3c_hsotg_phy_enable(hsotg);
> > >  
> > > @@ -3715,6 +3718,8 @@ static int s3c_hsotg_remove(struct platform_device 
> > > *pdev)
> > >   }
> > >  
> > >   s3c_hsotg_phy_disable(hsotg);
> > > + if (hsotg->phy)
> > 
> > same here.
> 
> Ok.

Same above, this will be NULL on failure (but is only applicable at this
point on the platform data path.

-Matt
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v3 5/9] usb: gadget: s3c-hsotg: use generic phy_init()/phy_exit() support

2013-11-27 Thread Matt Porter
On Tue, Nov 26, 2013 at 03:53:32PM +0530, Kishon Vijay Abraham I wrote:
> Hi,
> 
> On Monday 25 November 2013 11:46 PM, Matt Porter wrote:
> > If a generic phy is present, call phy_init()/phy_exit(). This supports
> > generic phys that must be soft reset before power on.
> > 
> > Signed-off-by: Matt Porter 
> > ---
> >  drivers/usb/gadget/s3c-hsotg.c | 5 +
> >  1 file changed, 5 insertions(+)
> > 
> > diff --git a/drivers/usb/gadget/s3c-hsotg.c b/drivers/usb/gadget/s3c-hsotg.c
> > index da3879b..8dfe33f 100644
> > --- a/drivers/usb/gadget/s3c-hsotg.c
> > +++ b/drivers/usb/gadget/s3c-hsotg.c
> > @@ -3622,6 +3622,9 @@ static int s3c_hsotg_probe(struct platform_device 
> > *pdev)
> > goto err_supplies;
> > }
> >  
> > +   if (hsotg->phy)
> 
> IS_ERR? If your phy_get fails *phy* will have a error value..

Yes, thanks. I'll fix these and also note that the same issue exists in
Kamil's patch for these same hsotg->phy conditional uses. I'll work with
Kamil to either get those addressed there or in a follow on fix.

> 
> > +   phy_init(hsotg->phy);
> > +
> > /* usb phy enable */
> > s3c_hsotg_phy_enable(hsotg);
> >  
> > @@ -3715,6 +3718,8 @@ static int s3c_hsotg_remove(struct platform_device 
> > *pdev)
> > }
> >  
> > s3c_hsotg_phy_disable(hsotg);
> > +   if (hsotg->phy)
> 
> same here.

Ok.

> 
> Thanks
> Kishon
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v3 5/9] usb: gadget: s3c-hsotg: use generic phy_init()/phy_exit() support

2013-11-26 Thread Kishon Vijay Abraham I
Hi,

On Monday 25 November 2013 11:46 PM, Matt Porter wrote:
> If a generic phy is present, call phy_init()/phy_exit(). This supports
> generic phys that must be soft reset before power on.
> 
> Signed-off-by: Matt Porter 
> ---
>  drivers/usb/gadget/s3c-hsotg.c | 5 +
>  1 file changed, 5 insertions(+)
> 
> diff --git a/drivers/usb/gadget/s3c-hsotg.c b/drivers/usb/gadget/s3c-hsotg.c
> index da3879b..8dfe33f 100644
> --- a/drivers/usb/gadget/s3c-hsotg.c
> +++ b/drivers/usb/gadget/s3c-hsotg.c
> @@ -3622,6 +3622,9 @@ static int s3c_hsotg_probe(struct platform_device *pdev)
>   goto err_supplies;
>   }
>  
> + if (hsotg->phy)

IS_ERR? If your phy_get fails *phy* will have a error value..

> + phy_init(hsotg->phy);
> +
>   /* usb phy enable */
>   s3c_hsotg_phy_enable(hsotg);
>  
> @@ -3715,6 +3718,8 @@ static int s3c_hsotg_remove(struct platform_device 
> *pdev)
>   }
>  
>   s3c_hsotg_phy_disable(hsotg);
> + if (hsotg->phy)

same here.

Thanks
Kishon
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v3 5/9] usb: gadget: s3c-hsotg: use generic phy_init()/phy_exit() support

2013-11-25 Thread Matt Porter
If a generic phy is present, call phy_init()/phy_exit(). This supports
generic phys that must be soft reset before power on.

Signed-off-by: Matt Porter 
---
 drivers/usb/gadget/s3c-hsotg.c | 5 +
 1 file changed, 5 insertions(+)

diff --git a/drivers/usb/gadget/s3c-hsotg.c b/drivers/usb/gadget/s3c-hsotg.c
index da3879b..8dfe33f 100644
--- a/drivers/usb/gadget/s3c-hsotg.c
+++ b/drivers/usb/gadget/s3c-hsotg.c
@@ -3622,6 +3622,9 @@ static int s3c_hsotg_probe(struct platform_device *pdev)
goto err_supplies;
}
 
+   if (hsotg->phy)
+   phy_init(hsotg->phy);
+
/* usb phy enable */
s3c_hsotg_phy_enable(hsotg);
 
@@ -3715,6 +3718,8 @@ static int s3c_hsotg_remove(struct platform_device *pdev)
}
 
s3c_hsotg_phy_disable(hsotg);
+   if (hsotg->phy)
+   phy_exit(hsotg->phy);
clk_disable_unprepare(hsotg->clk);
 
return 0;
-- 
1.8.4

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html