[V3,05/11] USB: OHCI: Properly handle ohci-ep93xx suspend

Message ID 1371643936-3314-6-git-send-email-manjunath.goudar@linaro.org
State New
Headers show

Commit Message

manjunath.goudar@linaro.org June 19, 2013, 12:12 p.m.
Suspend scenario in case of ohci-ep93xx glue was not
properly handled as it was not suspending generic part
of ohci controller. Calling explicitly the ohci_suspend()
routine in ohci_hcd_ep93xx_drv_suspend() will ensure proper
handling of suspend scenario.

Signed-off-by: Manjunath Goudar <manjunath.goudar@linaro.org>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Alan Stern <stern@rowland.harvard.edu>
Cc: Greg KH <greg@kroah.com>
Cc: linux-usb@vger.kernel.org

V2:
 -Incase ohci_suspend() fails, return right away without
  executing further.
V3:
 -Aligned variable "do_wakeup" and "ret".
---
 drivers/usb/host/ohci-ep93xx.c |   10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

Comments

Sergei Shtylyov June 19, 2013, 12:43 p.m. | #1
Hello.

On 19-06-2013 16:12, Manjunath Goudar wrote:

> Suspend scenario in case of ohci-ep93xx glue was not
> properly handled as it was not suspending generic part
> of ohci controller. Calling explicitly the ohci_suspend()
> routine in ohci_hcd_ep93xx_drv_suspend() will ensure proper
> handling of suspend scenario.

> Signed-off-by: Manjunath Goudar <manjunath.goudar@linaro.org>
> Cc: Arnd Bergmann <arnd@arndb.de>
> Cc: Alan Stern <stern@rowland.harvard.edu>
> Cc: Greg KH <greg@kroah.com>
> Cc: linux-usb@vger.kernel.org

> V2:
>   -Incase ohci_suspend() fails, return right away without
>    executing further.
> V3:
>   -Aligned variable "do_wakeup" and "ret".
> ---
>   drivers/usb/host/ohci-ep93xx.c |   10 +++++++++-
>   1 file changed, 9 insertions(+), 1 deletion(-)

> diff --git a/drivers/usb/host/ohci-ep93xx.c b/drivers/usb/host/ohci-ep93xx.c
> index 8704e9f..f5f11d1 100644
> --- a/drivers/usb/host/ohci-ep93xx.c
> +++ b/drivers/usb/host/ohci-ep93xx.c
> @@ -174,13 +174,21 @@ static int ohci_hcd_ep93xx_drv_suspend(struct platform_device *pdev, pm_message_
>   {
>   	struct usb_hcd *hcd = platform_get_drvdata(pdev);
>   	struct ohci_hcd *ohci = hcd_to_ohci(hcd);
> +	bool	do_wakeup = device_may_wakeup(&pdev->dev);
> +	int		ret;

    There was no need to use tabs here, didn't you see that here the 
variables aren't aligned?

WBR, Sergei
manjunath.goudar@linaro.org June 19, 2013, 2:42 p.m. | #2
On 19 June 2013 18:13, Sergei Shtylyov
<sergei.shtylyov@cogentembedded.com>wrote:

> Hello.
>
>
> On 19-06-2013 16:12, Manjunath Goudar wrote:
>
>  Suspend scenario in case of ohci-ep93xx glue was not
>> properly handled as it was not suspending generic part
>> of ohci controller. Calling explicitly the ohci_suspend()
>> routine in ohci_hcd_ep93xx_drv_suspend() will ensure proper
>> handling of suspend scenario.
>>
>
>  Signed-off-by: Manjunath Goudar <manjunath.goudar@linaro.org>
>> Cc: Arnd Bergmann <arnd@arndb.de>
>> Cc: Alan Stern <stern@rowland.harvard.edu>
>> Cc: Greg KH <greg@kroah.com>
>> Cc: linux-usb@vger.kernel.org
>>
>
>  V2:
>>   -Incase ohci_suspend() fails, return right away without
>>    executing further.
>> V3:
>>   -Aligned variable "do_wakeup" and "ret".
>> ---
>>   drivers/usb/host/ohci-ep93xx.c |   10 +++++++++-
>>   1 file changed, 9 insertions(+), 1 deletion(-)
>>
>
>  diff --git a/drivers/usb/host/ohci-**ep93xx.c b/drivers/usb/host/ohci-**
>> ep93xx.c
>> index 8704e9f..f5f11d1 100644
>> --- a/drivers/usb/host/ohci-**ep93xx.c
>> +++ b/drivers/usb/host/ohci-**ep93xx.c
>> @@ -174,13 +174,21 @@ static int ohci_hcd_ep93xx_drv_suspend(**struct
>> platform_device *pdev, pm_message_
>>   {
>>         struct usb_hcd *hcd = platform_get_drvdata(pdev);
>>         struct ohci_hcd *ohci = hcd_to_ohci(hcd);
>> +       bool    do_wakeup = device_may_wakeup(&pdev->dev);
>> +       int             ret;
>>
>
>    There was no need to use tabs here, didn't you see that here the
> variables aren't aligned?
>
> WBR, Sergei
>
> Instead of gmail you can use thunderbird mail there it is showing  proper
alignment.

Manjunath Goudar
Sergei Shtylyov June 19, 2013, 5:33 p.m. | #3
Hello.

On 06/19/2013 06:42 PM, Manjunath Goudar wrote:

>         Suspend scenario in case of ohci-ep93xx glue was not
>         properly handled as it was not suspending generic part
>         of ohci controller. Calling explicitly the ohci_suspend()
>         routine in ohci_hcd_ep93xx_drv_suspend() will ensure proper
>         handling of suspend scenario.
>
>
>         Signed-off-by: Manjunath Goudar <manjunath.goudar@linaro.org
>         <mailto:manjunath.goudar@linaro.org>>
>         Cc: Arnd Bergmann <arnd@arndb.de <mailto:arnd@arndb.de>>
>         Cc: Alan Stern <stern@rowland.harvard.edu
>         <mailto:stern@rowland.harvard.edu>>
>         Cc: Greg KH <greg@kroah.com <mailto:greg@kroah.com>>
>         Cc: linux-usb@vger.kernel.org <mailto:linux-usb@vger.kernel.org>
>
>
>         V2:
>            -Incase ohci_suspend() fails, return right away without
>             executing further.
>         V3:
>            -Aligned variable "do_wakeup" and "ret".
>         ---
>            drivers/usb/host/ohci-ep93xx.c |   10 +++++++++-
>            1 file changed, 9 insertions(+), 1 deletion(-)
>
>
>         diff --git a/drivers/usb/host/ohci-__ep93xx.c
>         b/drivers/usb/host/ohci-__ep93xx.c
>         index 8704e9f..f5f11d1 100644
>         --- a/drivers/usb/host/ohci-__ep93xx.c
>         +++ b/drivers/usb/host/ohci-__ep93xx.c
>         @@ -174,13 +174,21 @@ static int
>         ohci_hcd_ep93xx_drv_suspend(__struct platform_device *pdev,
>         pm_message_
>            {
>                  struct usb_hcd *hcd = platform_get_drvdata(pdev);
>                  struct ohci_hcd *ohci = hcd_to_ohci(hcd);
>         +       bool    do_wakeup = device_may_wakeup(&pdev->dev);
>         +       int             ret;
>

>         There was no need to use tabs here, didn't you see that here the
>     variables aren't aligned?

>     WBR, Sergei

> Instead of gmail you can use thunderbird mail there it is showing
>   proper alignment.

    Imagine, I'm using Thinderbird. :-D
    And you're using HTML reply format, unwelcome on the Linux mailing 
lists.

> Manjunath Goudar

WBR, Sergei
manjunath.goudar@linaro.org June 20, 2013, 7:34 a.m. | #4
On 19 June 2013 23:03, Sergei Shtylyov
<sergei.shtylyov@cogentembedded.com>wrote:

> Hello.
>
>
> On 06/19/2013 06:42 PM, Manjunath Goudar wrote:
>
>          Suspend scenario in case of ohci-ep93xx glue was not
>>         properly handled as it was not suspending generic part
>>         of ohci controller. Calling explicitly the ohci_suspend()
>>         routine in ohci_hcd_ep93xx_drv_suspend() will ensure proper
>>         handling of suspend scenario.
>>
>>
>>         Signed-off-by: Manjunath Goudar <manjunath.goudar@linaro.org
>>         <mailto:manjunath.goudar@**linaro.org<manjunath.goudar@linaro.org>
>> >>
>>         Cc: Arnd Bergmann <arnd@arndb.de <mailto:arnd@arndb.de>>
>>         Cc: Alan Stern <stern@rowland.harvard.edu
>>         <mailto:stern@rowland.harvard.**edu <stern@rowland.harvard.edu>>>
>>         Cc: Greg KH <greg@kroah.com <mailto:greg@kroah.com>>
>>         Cc: linux-usb@vger.kernel.org <mailto:linux-usb@vger.kernel.**org<linux-usb@vger.kernel.org>
>> >
>>
>>
>>
>>         V2:
>>            -Incase ohci_suspend() fails, return right away without
>>             executing further.
>>         V3:
>>            -Aligned variable "do_wakeup" and "ret".
>>         ---
>>            drivers/usb/host/ohci-ep93xx.c |   10 +++++++++-
>>            1 file changed, 9 insertions(+), 1 deletion(-)
>>
>>
>>         diff --git a/drivers/usb/host/ohci-__**ep93xx.c
>>         b/drivers/usb/host/ohci-__**ep93xx.c
>>         index 8704e9f..f5f11d1 100644
>>         --- a/drivers/usb/host/ohci-__**ep93xx.c
>>         +++ b/drivers/usb/host/ohci-__**ep93xx.c
>>
>>         @@ -174,13 +174,21 @@ static int
>>         ohci_hcd_ep93xx_drv_suspend(__**struct platform_device *pdev,
>>
>>         pm_message_
>>            {
>>                  struct usb_hcd *hcd = platform_get_drvdata(pdev);
>>                  struct ohci_hcd *ohci = hcd_to_ohci(hcd);
>>         +       bool    do_wakeup = device_may_wakeup(&pdev->dev);
>>         +       int             ret;
>>
>>
>          There was no need to use tabs here, didn't you see that here the
>>     variables aren't aligned?
>>
>
>      WBR, Sergei
>>
>
>  Instead of gmail you can use thunderbird mail there it is showing
>>   proper alignment.
>>
>
>    Imagine, I'm using Thinderbird. :-D
>    And you're using HTML reply format, unwelcome on the Linux mailing
> lists.
>
>  Manjunath Goudar
>>
>
>
I am very sorry Sergei.I really misunderstanding your comments.I will fix
your comments in next version.

Manjunath Goudar

> WBR, Sergei
>
>

Patch

diff --git a/drivers/usb/host/ohci-ep93xx.c b/drivers/usb/host/ohci-ep93xx.c
index 8704e9f..f5f11d1 100644
--- a/drivers/usb/host/ohci-ep93xx.c
+++ b/drivers/usb/host/ohci-ep93xx.c
@@ -174,13 +174,21 @@  static int ohci_hcd_ep93xx_drv_suspend(struct platform_device *pdev, pm_message_
 {
 	struct usb_hcd *hcd = platform_get_drvdata(pdev);
 	struct ohci_hcd *ohci = hcd_to_ohci(hcd);
+	bool	do_wakeup = device_may_wakeup(&pdev->dev);
+	int		ret;
 
 	if (time_before(jiffies, ohci->next_statechange))
 		msleep(5);
+
+	ret = ohci_suspend(hcd, do_wakeup);
+	if (ret)
+		return ret;
+
 	ohci->next_statechange = jiffies;
 
 	ep93xx_stop_hc(&pdev->dev);
-	return 0;
+
+	return ret;
 }
 
 static int ohci_hcd_ep93xx_drv_resume(struct platform_device *pdev)