* [PATCH 06/11] USB: OHCI: Properly handle ohci-exynos suspend
[not found] <CAKsNYyws1m1kT4KiJ6GFcTSo0cT=cu+0nA0vwx=wu_SuRhAfhA@mail.gmail.com>
@ 2013-10-03 14:31 ` Alan Stern
2013-10-03 14:51 ` Bartlomiej Zolnierkiewicz
2013-10-03 15:28 ` Greg KH
0 siblings, 2 replies; 9+ messages in thread
From: Alan Stern @ 2013-10-03 14:31 UTC (permalink / raw)
To: linux-arm-kernel
On Thu, 3 Oct 2013, manju goudar wrote:
> On Wed, Oct 2, 2013 at 9:22 PM, Alan Stern <stern@rowland.harvard.edu>wrote:
>
> > On Wed, 2 Oct 2013, Bartlomiej Zolnierkiewicz wrote:
> >
> > >
> > > Hi,
> > >
> > > On Wednesday, October 02, 2013 10:38:58 AM Alan Stern wrote:
> > > > On Wed, 2 Oct 2013, Bartlomiej Zolnierkiewicz wrote:
> > > >
> > > > > Maybe it would make sense to cleanup ohci_suspend() first (before
> > adding
> > > > > new ohci_suspend() users) and remove unused do_wakeup parameter?
> > > >
> > > > Not possible. The do_wakeup parameter is part of a function prototype
> > > > shared by other callback routines (such as ehci_suspend()) that _do_
> > > > use the parameter.
> > >
> > > If you mean ohci-pci.c usage (which is currently the only usage of
> > > ohci_suspend() looking at the latest -next kernel) than it is enough
> > > to add a simple wrapper for it in ohci-pci.c:
> > >
> > > ...
> > > static int ohci_pci_suspend(struct usb_hcd *hcd, bool do_wakeup)
> > > {
> > > ohci_suspend(hcd);
> > > }
> > > ...
> > > ohci_pci_hc_driver.pci_suspend = ohci_pci_suspend;
> > > ...
> >
> > Ah, now I see your point. Yes, it's true; that parameter could be
> > eliminated.
> >
> > Manjunath, would you like to update your patch series to get rid of the
> > do_wakeup argument to ohci_suspend()?
> >
> > Yes I will do. I think we can also rid of ehci_suspend() do_wakeup
> argument.
Arrgh! Manjunath, I was wrong. I'm sorry to make you do all this
extra work -- your original patch series was correct.
Bartlomiej, we both failed to notice that the 1/11 patch in the
original series adds a usage of do_wakeup. Therefore that argument
cannot be removed.
Greg, please ignore Manjunath's V2 series (sent today) and merge the
original 11-patch series posted on October 2.
Alan Stern
^ permalink raw reply [flat|nested] 9+ messages in thread* [PATCH 06/11] USB: OHCI: Properly handle ohci-exynos suspend
2013-10-03 14:31 ` [PATCH 06/11] USB: OHCI: Properly handle ohci-exynos suspend Alan Stern
@ 2013-10-03 14:51 ` Bartlomiej Zolnierkiewicz
2013-10-03 15:28 ` Greg KH
1 sibling, 0 replies; 9+ messages in thread
From: Bartlomiej Zolnierkiewicz @ 2013-10-03 14:51 UTC (permalink / raw)
To: linux-arm-kernel
On Thursday, October 03, 2013 10:31:53 AM Alan Stern wrote:
> On Thu, 3 Oct 2013, manju goudar wrote:
>
> > On Wed, Oct 2, 2013 at 9:22 PM, Alan Stern <stern@rowland.harvard.edu>wrote:
> >
> > > On Wed, 2 Oct 2013, Bartlomiej Zolnierkiewicz wrote:
> > >
> > > >
> > > > Hi,
> > > >
> > > > On Wednesday, October 02, 2013 10:38:58 AM Alan Stern wrote:
> > > > > On Wed, 2 Oct 2013, Bartlomiej Zolnierkiewicz wrote:
> > > > >
> > > > > > Maybe it would make sense to cleanup ohci_suspend() first (before
> > > adding
> > > > > > new ohci_suspend() users) and remove unused do_wakeup parameter?
> > > > >
> > > > > Not possible. The do_wakeup parameter is part of a function prototype
> > > > > shared by other callback routines (such as ehci_suspend()) that _do_
> > > > > use the parameter.
> > > >
> > > > If you mean ohci-pci.c usage (which is currently the only usage of
> > > > ohci_suspend() looking at the latest -next kernel) than it is enough
> > > > to add a simple wrapper for it in ohci-pci.c:
> > > >
> > > > ...
> > > > static int ohci_pci_suspend(struct usb_hcd *hcd, bool do_wakeup)
> > > > {
> > > > ohci_suspend(hcd);
> > > > }
> > > > ...
> > > > ohci_pci_hc_driver.pci_suspend = ohci_pci_suspend;
> > > > ...
> > >
> > > Ah, now I see your point. Yes, it's true; that parameter could be
> > > eliminated.
> > >
> > > Manjunath, would you like to update your patch series to get rid of the
> > > do_wakeup argument to ohci_suspend()?
> > >
> > > Yes I will do. I think we can also rid of ehci_suspend() do_wakeup
> > argument.
>
> Arrgh! Manjunath, I was wrong. I'm sorry to make you do all this
> extra work -- your original patch series was correct.
>
> Bartlomiej, we both failed to notice that the 1/11 patch in the
> original series adds a usage of do_wakeup. Therefore that argument
> cannot be removed.
Uhh, indeed. Sorry about that.
> Greg, please ignore Manjunath's V2 series (sent today) and merge the
> original 11-patch series posted on October 2.
Yep.
Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics
^ permalink raw reply [flat|nested] 9+ messages in thread* [PATCH 06/11] USB: OHCI: Properly handle ohci-exynos suspend
2013-10-03 14:31 ` [PATCH 06/11] USB: OHCI: Properly handle ohci-exynos suspend Alan Stern
2013-10-03 14:51 ` Bartlomiej Zolnierkiewicz
@ 2013-10-03 15:28 ` Greg KH
1 sibling, 0 replies; 9+ messages in thread
From: Greg KH @ 2013-10-03 15:28 UTC (permalink / raw)
To: linux-arm-kernel
On Thu, Oct 03, 2013 at 10:31:53AM -0400, Alan Stern wrote:
> On Thu, 3 Oct 2013, manju goudar wrote:
>
> > On Wed, Oct 2, 2013 at 9:22 PM, Alan Stern <stern@rowland.harvard.edu>wrote:
> >
> > > On Wed, 2 Oct 2013, Bartlomiej Zolnierkiewicz wrote:
> > >
> > > >
> > > > Hi,
> > > >
> > > > On Wednesday, October 02, 2013 10:38:58 AM Alan Stern wrote:
> > > > > On Wed, 2 Oct 2013, Bartlomiej Zolnierkiewicz wrote:
> > > > >
> > > > > > Maybe it would make sense to cleanup ohci_suspend() first (before
> > > adding
> > > > > > new ohci_suspend() users) and remove unused do_wakeup parameter?
> > > > >
> > > > > Not possible. The do_wakeup parameter is part of a function prototype
> > > > > shared by other callback routines (such as ehci_suspend()) that _do_
> > > > > use the parameter.
> > > >
> > > > If you mean ohci-pci.c usage (which is currently the only usage of
> > > > ohci_suspend() looking at the latest -next kernel) than it is enough
> > > > to add a simple wrapper for it in ohci-pci.c:
> > > >
> > > > ...
> > > > static int ohci_pci_suspend(struct usb_hcd *hcd, bool do_wakeup)
> > > > {
> > > > ohci_suspend(hcd);
> > > > }
> > > > ...
> > > > ohci_pci_hc_driver.pci_suspend = ohci_pci_suspend;
> > > > ...
> > >
> > > Ah, now I see your point. Yes, it's true; that parameter could be
> > > eliminated.
> > >
> > > Manjunath, would you like to update your patch series to get rid of the
> > > do_wakeup argument to ohci_suspend()?
> > >
> > > Yes I will do. I think we can also rid of ehci_suspend() do_wakeup
> > argument.
>
> Arrgh! Manjunath, I was wrong. I'm sorry to make you do all this
> extra work -- your original patch series was correct.
>
> Bartlomiej, we both failed to notice that the 1/11 patch in the
> original series adds a usage of do_wakeup. Therefore that argument
> cannot be removed.
>
> Greg, please ignore Manjunath's V2 series (sent today) and merge the
> original 11-patch series posted on October 2.
I no longer have these. Manjunath, can you please resend the "correct"
series that I should apply so that it is obvious which is your latest
version?
thanks,
greg k-h
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 00/11] USB: OHCI:Properly handle ohci_suspend()routine in bus glue
@ 2013-10-02 10:15 Majunath Goudar
2013-10-02 10:15 ` [PATCH 06/11] USB: OHCI: Properly handle ohci-exynos suspend Majunath Goudar
0 siblings, 1 reply; 9+ messages in thread
From: Majunath Goudar @ 2013-10-02 10:15 UTC (permalink / raw)
To: linux-arm-kernel
From: Manjunath Goudar <manjunath.goudar@linaro.org>
Suspend scenario in case of ohci bus glue was not properly handled as
it was not suspending generic part of ohci controller. Alan Stern suggested,
properly handle ohci suspend scenario.
Calling explicitly the ohci_suspend()routine will ensure proper handling
of suspend scenario.
*** BLURB HERE ***
Manjunath Goudar (11):
USB: OHCI: Properly handle OHCI controller suspend
USB: OHCI: Properly handle ohci-at91 suspend
USB: OHCI: Properly handle ohci-s3c2410 suspend
USB: OHCI: Properly handle ohci-da8xx suspend
USB: OHCI: Properly handle ohci-ep93xx suspend
USB: OHCI: Properly handle ohci-exynos suspend
USB: OHCI: Properly handle ohci-omap suspend
USB: OHCI: Properly handle ohci-platform suspend
USB: OHCI: Properly handle ohci-pxa27x suspend
USB: OHCI: Properly handle ohci-sm501 suspend
USB: OHCI: Properly handle ohci-spear suspend
drivers/usb/host/ohci-at91.c | 10 ++++++++--
drivers/usb/host/ohci-da8xx.c | 15 +++++++++++----
drivers/usb/host/ohci-ep93xx.c | 11 +++++++++--
drivers/usb/host/ohci-exynos.c | 20 +++++---------------
drivers/usb/host/ohci-hcd.c | 9 ++++++++-
drivers/usb/host/ohci-omap.c | 13 ++++++++++---
drivers/usb/host/ohci-platform.c | 11 +++++++++--
drivers/usb/host/ohci-pxa27x.c | 9 ++++++++-
drivers/usb/host/ohci-s3c2410.c | 21 ++++-----------------
drivers/usb/host/ohci-sm501.c | 11 +++++++++--
drivers/usb/host/ohci-spear.c | 12 +++++++++---
11 files changed, 90 insertions(+), 52 deletions(-)
--
1.7.9.5
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 06/11] USB: OHCI: Properly handle ohci-exynos suspend
2013-10-02 10:15 [PATCH 00/11] USB: OHCI:Properly handle ohci_suspend()routine in bus glue Majunath Goudar
@ 2013-10-02 10:15 ` Majunath Goudar
2013-10-02 11:34 ` Bartlomiej Zolnierkiewicz
0 siblings, 1 reply; 9+ messages in thread
From: Majunath Goudar @ 2013-10-02 10:15 UTC (permalink / raw)
To: linux-arm-kernel
From: Manjunath Goudar <manjunath.goudar@linaro.org>
Suspend scenario in case of ohci-exynos glue was not
properly handled as it was not suspending generic part
of ohci controller. Alan Stern suggested, properly handle
ohci-exynos suspend scenario.
Calling explicitly the ohci_suspend() routine in
exynos_ohci_suspend() will ensure proper handling of suspend
scenario.
Signed-off-by: Manjunath Goudar <manjunath.goudar@linaro.org>
Signed-off-by: Manjunath Goudar <csmanjuvijay@gmail.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Greg KH <greg@kroah.com>
Cc: linux-usb at vger.kernel.org
---
drivers/usb/host/ohci-exynos.c | 20 +++++---------------
1 file changed, 5 insertions(+), 15 deletions(-)
diff --git a/drivers/usb/host/ohci-exynos.c b/drivers/usb/host/ohci-exynos.c
index 3e4bc74..f5f372e 100644
--- a/drivers/usb/host/ohci-exynos.c
+++ b/drivers/usb/host/ohci-exynos.c
@@ -203,24 +203,15 @@ static int exynos_ohci_suspend(struct device *dev)
struct exynos_ohci_hcd *exynos_ohci = to_exynos_ohci(hcd);
struct ohci_hcd *ohci = hcd_to_ohci(hcd);
struct platform_device *pdev = to_platform_device(dev);
+ bool do_wakeup = device_may_wakeup(dev);
unsigned long flags;
int rc = 0;
- /*
- * Root hub was already suspended. Disable irq emission and
- * mark HW unaccessible, bail out if RH has been resumed. Use
- * the spinlock to properly synchronize with possible pending
- * RH suspend or resume activity.
- */
- spin_lock_irqsave(&ohci->lock, flags);
- if (ohci->rh_state != OHCI_RH_SUSPENDED &&
- ohci->rh_state != OHCI_RH_HALTED) {
- rc = -EINVAL;
- goto fail;
- }
-
- clear_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags);
+ rc = ohci_suspend(hcd, do_wakeup);
+ if (rc)
+ return rc;
+ spin_lock_irqsave(&ohci->lock, flags);
if (exynos_ohci->otg)
exynos_ohci->otg->set_host(exynos_ohci->otg, &hcd->self);
@@ -228,7 +219,6 @@ static int exynos_ohci_suspend(struct device *dev)
clk_disable_unprepare(exynos_ohci->clk);
-fail:
spin_unlock_irqrestore(&ohci->lock, flags);
return rc;
--
1.7.9.5
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH 06/11] USB: OHCI: Properly handle ohci-exynos suspend
2013-10-02 10:15 ` [PATCH 06/11] USB: OHCI: Properly handle ohci-exynos suspend Majunath Goudar
@ 2013-10-02 11:34 ` Bartlomiej Zolnierkiewicz
2013-10-02 14:38 ` Alan Stern
0 siblings, 1 reply; 9+ messages in thread
From: Bartlomiej Zolnierkiewicz @ 2013-10-02 11:34 UTC (permalink / raw)
To: linux-arm-kernel
Hi,
On Wednesday, October 02, 2013 03:45:42 PM Majunath Goudar wrote:
> From: Manjunath Goudar <manjunath.goudar@linaro.org>
>
> Suspend scenario in case of ohci-exynos glue was not
> properly handled as it was not suspending generic part
> of ohci controller. Alan Stern suggested, properly handle
> ohci-exynos suspend scenario.
>
> Calling explicitly the ohci_suspend() routine in
> exynos_ohci_suspend() will ensure proper handling of suspend
> scenario.
>
> Signed-off-by: Manjunath Goudar <manjunath.goudar@linaro.org>
> Signed-off-by: Manjunath Goudar <csmanjuvijay@gmail.com>
> Acked-by: Alan Stern <stern@rowland.harvard.edu>
> Cc: Arnd Bergmann <arnd@arndb.de>
> Cc: Greg KH <greg@kroah.com>
> Cc: linux-usb at vger.kernel.org
> ---
> drivers/usb/host/ohci-exynos.c | 20 +++++---------------
> 1 file changed, 5 insertions(+), 15 deletions(-)
>
> diff --git a/drivers/usb/host/ohci-exynos.c b/drivers/usb/host/ohci-exynos.c
> index 3e4bc74..f5f372e 100644
> --- a/drivers/usb/host/ohci-exynos.c
> +++ b/drivers/usb/host/ohci-exynos.c
> @@ -203,24 +203,15 @@ static int exynos_ohci_suspend(struct device *dev)
> struct exynos_ohci_hcd *exynos_ohci = to_exynos_ohci(hcd);
> struct ohci_hcd *ohci = hcd_to_ohci(hcd);
> struct platform_device *pdev = to_platform_device(dev);
> + bool do_wakeup = device_may_wakeup(dev);
> unsigned long flags;
> int rc = 0;
>
> - /*
> - * Root hub was already suspended. Disable irq emission and
> - * mark HW unaccessible, bail out if RH has been resumed. Use
> - * the spinlock to properly synchronize with possible pending
> - * RH suspend or resume activity.
> - */
> - spin_lock_irqsave(&ohci->lock, flags);
> - if (ohci->rh_state != OHCI_RH_SUSPENDED &&
> - ohci->rh_state != OHCI_RH_HALTED) {
> - rc = -EINVAL;
> - goto fail;
> - }
> -
> - clear_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags);
> + rc = ohci_suspend(hcd, do_wakeup);
Maybe it would make sense to cleanup ohci_suspend() first (before adding
new ohci_suspend() users) and remove unused do_wakeup parameter?
> + if (rc)
> + return rc;
>
> + spin_lock_irqsave(&ohci->lock, flags);
> if (exynos_ohci->otg)
> exynos_ohci->otg->set_host(exynos_ohci->otg, &hcd->self);
>
> @@ -228,7 +219,6 @@ static int exynos_ohci_suspend(struct device *dev)
>
> clk_disable_unprepare(exynos_ohci->clk);
>
> -fail:
> spin_unlock_irqrestore(&ohci->lock, flags);
>
> return rc;
Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics
^ permalink raw reply [flat|nested] 9+ messages in thread* [PATCH 06/11] USB: OHCI: Properly handle ohci-exynos suspend
2013-10-02 11:34 ` Bartlomiej Zolnierkiewicz
@ 2013-10-02 14:38 ` Alan Stern
2013-10-02 15:10 ` Bartlomiej Zolnierkiewicz
0 siblings, 1 reply; 9+ messages in thread
From: Alan Stern @ 2013-10-02 14:38 UTC (permalink / raw)
To: linux-arm-kernel
On Wed, 2 Oct 2013, Bartlomiej Zolnierkiewicz wrote:
> Maybe it would make sense to cleanup ohci_suspend() first (before adding
> new ohci_suspend() users) and remove unused do_wakeup parameter?
Not possible. The do_wakeup parameter is part of a function prototype
shared by other callback routines (such as ehci_suspend()) that _do_
use the parameter.
Alan Stern
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 06/11] USB: OHCI: Properly handle ohci-exynos suspend
2013-10-02 14:38 ` Alan Stern
@ 2013-10-02 15:10 ` Bartlomiej Zolnierkiewicz
2013-10-02 15:52 ` Alan Stern
0 siblings, 1 reply; 9+ messages in thread
From: Bartlomiej Zolnierkiewicz @ 2013-10-02 15:10 UTC (permalink / raw)
To: linux-arm-kernel
Hi,
On Wednesday, October 02, 2013 10:38:58 AM Alan Stern wrote:
> On Wed, 2 Oct 2013, Bartlomiej Zolnierkiewicz wrote:
>
> > Maybe it would make sense to cleanup ohci_suspend() first (before adding
> > new ohci_suspend() users) and remove unused do_wakeup parameter?
>
> Not possible. The do_wakeup parameter is part of a function prototype
> shared by other callback routines (such as ehci_suspend()) that _do_
> use the parameter.
If you mean ohci-pci.c usage (which is currently the only usage of
ohci_suspend() looking at the latest -next kernel) than it is enough
to add a simple wrapper for it in ohci-pci.c:
...
static int ohci_pci_suspend(struct usb_hcd *hcd, bool do_wakeup)
{
ohci_suspend(hcd);
}
...
ohci_pci_hc_driver.pci_suspend = ohci_pci_suspend;
...
Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics
^ permalink raw reply [flat|nested] 9+ messages in thread* [PATCH 06/11] USB: OHCI: Properly handle ohci-exynos suspend
2013-10-02 15:10 ` Bartlomiej Zolnierkiewicz
@ 2013-10-02 15:52 ` Alan Stern
0 siblings, 0 replies; 9+ messages in thread
From: Alan Stern @ 2013-10-02 15:52 UTC (permalink / raw)
To: linux-arm-kernel
On Wed, 2 Oct 2013, Bartlomiej Zolnierkiewicz wrote:
>
> Hi,
>
> On Wednesday, October 02, 2013 10:38:58 AM Alan Stern wrote:
> > On Wed, 2 Oct 2013, Bartlomiej Zolnierkiewicz wrote:
> >
> > > Maybe it would make sense to cleanup ohci_suspend() first (before adding
> > > new ohci_suspend() users) and remove unused do_wakeup parameter?
> >
> > Not possible. The do_wakeup parameter is part of a function prototype
> > shared by other callback routines (such as ehci_suspend()) that _do_
> > use the parameter.
>
> If you mean ohci-pci.c usage (which is currently the only usage of
> ohci_suspend() looking at the latest -next kernel) than it is enough
> to add a simple wrapper for it in ohci-pci.c:
>
> ...
> static int ohci_pci_suspend(struct usb_hcd *hcd, bool do_wakeup)
> {
> ohci_suspend(hcd);
> }
> ...
> ohci_pci_hc_driver.pci_suspend = ohci_pci_suspend;
> ...
Ah, now I see your point. Yes, it's true; that parameter could be
eliminated.
Manjunath, would you like to update your patch series to get rid of the
do_wakeup argument to ohci_suspend()?
Alan Stern
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 00/10] USB: OHCI:Properly handle ohci_suspend()routine in bus glue
@ 2013-06-12 15:28 Manjunath Goudar
2013-07-22 9:32 ` [PATCH 00/11] " Manjunath Goudar
0 siblings, 1 reply; 9+ messages in thread
From: Manjunath Goudar @ 2013-06-12 15:28 UTC (permalink / raw)
To: linux-arm-kernel
Suspend scenario in case of ohci bus glue was not properly handled as
it was not suspending generic part of ohci controller. Calling
explicitly the ohci_suspend()routine will ensure proper handling
of suspend scenario.
Manjunath Goudar (10):
USB: OHCI: Properly handle ohci-at91 suspend
USB: OHCI: Properly handle ohci-s3c2410 suspend
USB: OHCI: Properly handle ohci-da8xx suspend
USB: OHCI: Properly handle ohci-ep93xx suspend
USB: OHCI: Properly handle ohci-exynos suspend
USB: OHCI: Properly handle ohci-omap suspend
USB: OHCI: Properly handle ohci-platform suspend
USB: OHCI: Properly handle ohci-pxa27x suspend
USB: OHCI: Properly handle ohci-sm501 suspend
USB: OHCI: Properly handle ohci-spear suspend
drivers/usb/host/ohci-at91.c | 8 ++++++--
drivers/usb/host/ohci-da8xx.c | 13 +++++++++----
drivers/usb/host/ohci-ep93xx.c | 6 +++++-
drivers/usb/host/ohci-exynos.c | 3 +++
drivers/usb/host/ohci-omap.c | 11 ++++++++---
drivers/usb/host/ohci-platform.c | 6 +++++-
drivers/usb/host/ohci-pxa27x.c | 6 +++++-
drivers/usb/host/ohci-s3c2410.c | 3 +++
drivers/usb/host/ohci-sm501.c | 9 +++++++--
drivers/usb/host/ohci-spear.c | 10 +++++++---
10 files changed, 58 insertions(+), 17 deletions(-)
--
1.7.9.5
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 00/11] USB: OHCI:Properly handle ohci_suspend()routine in bus glue
2013-06-12 15:28 [PATCH 00/10] USB: OHCI:Properly handle ohci_suspend()routine in bus glue Manjunath Goudar
@ 2013-07-22 9:32 ` Manjunath Goudar
2013-07-22 9:32 ` [PATCH 06/11] USB: OHCI: Properly handle ohci-exynos suspend Manjunath Goudar
0 siblings, 1 reply; 9+ messages in thread
From: Manjunath Goudar @ 2013-07-22 9:32 UTC (permalink / raw)
To: linux-arm-kernel
Suspend scenario in case of ohci bus glue was not properly handled as
it was not suspending generic part of ohci controller. Calling
explicitly the ohci_suspend()routine will ensure proper handling
of suspend scenario.
V2:
-Incase ohci_suspend() fails, return right away without executing further.
V3:
-New patch 1/11 added, for generic ohci-hcd suspend code.
V4:
-Properly aligned "do_wakeup" and "ret" variables.
Manjunath Goudar (11):
USB: OHCI: Properly handle OHCI controller suspend
USB: OHCI: Properly handle ohci-at91 suspend
USB: OHCI: Properly handle ohci-s3c2410 suspend
USB: OHCI: Properly handle ohci-da8xx suspend
USB: OHCI: Properly handle ohci-ep93xx suspend
USB: OHCI: Properly handle ohci-exynos suspend
USB: OHCI: Properly handle ohci-omap suspend
USB: OHCI: Properly handle ohci-platform suspend
USB: OHCI: Properly handle ohci-pxa27x suspend
USB: OHCI: Properly handle ohci-sm501 suspend
USB: OHCI: Properly handle ohci-spear suspend
drivers/usb/host/ohci-at91.c | 10 ++++++++--
drivers/usb/host/ohci-da8xx.c | 15 +++++++++++----
drivers/usb/host/ohci-ep93xx.c | 9 ++++++++-
drivers/usb/host/ohci-exynos.c | 20 +++++---------------
drivers/usb/host/ohci-hcd.c | 9 ++++++++-
drivers/usb/host/ohci-omap.c | 13 ++++++++++---
drivers/usb/host/ohci-platform.c | 9 ++++++++-
drivers/usb/host/ohci-pxa27x.c | 8 +++++++-
drivers/usb/host/ohci-s3c2410.c | 19 ++++---------------
drivers/usb/host/ohci-sm501.c | 11 +++++++++--
drivers/usb/host/ohci-spear.c | 12 +++++++++---
11 files changed, 87 insertions(+), 48 deletions(-)
--
1.7.9.5
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 06/11] USB: OHCI: Properly handle ohci-exynos suspend
2013-07-22 9:32 ` [PATCH 00/11] " Manjunath Goudar
@ 2013-07-22 9:32 ` Manjunath Goudar
0 siblings, 0 replies; 9+ messages in thread
From: Manjunath Goudar @ 2013-07-22 9:32 UTC (permalink / raw)
To: linux-arm-kernel
Suspend scenario in case of ohci-exynos glue was not
properly handled as it was not suspending generic part
of ohci controller. Calling explicitly the ohci_suspend()
routine in exynos_ohci_suspend() will ensure proper
handling of suspend scenario.
Signed-off-by: Manjunath Goudar <manjunath.goudar@linaro.org>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Greg KH <greg@kroah.com>
Cc: linux-usb at vger.kernel.org
V2:
-Incase ohci_suspend() fails, return right away without
executing further.
V3:
-rid of unwanted code from ohci_hcd_s3c2410_drv_suspend() which already
ohci_suspend() does it.
-Aligned variable "do_wakeup" and "ret".
V4:
-The do_wakeup and rc variable alignment is removed.
---
drivers/usb/host/ohci-exynos.c | 20 +++++---------------
1 file changed, 5 insertions(+), 15 deletions(-)
diff --git a/drivers/usb/host/ohci-exynos.c b/drivers/usb/host/ohci-exynos.c
index ae6068d..17de3dd 100644
--- a/drivers/usb/host/ohci-exynos.c
+++ b/drivers/usb/host/ohci-exynos.c
@@ -203,24 +203,15 @@ static int exynos_ohci_suspend(struct device *dev)
struct exynos_ohci_hcd *exynos_ohci = to_exynos_ohci(hcd);
struct ohci_hcd *ohci = hcd_to_ohci(hcd);
struct platform_device *pdev = to_platform_device(dev);
+ bool do_wakeup = device_may_wakeup(dev);
unsigned long flags;
int rc = 0;
- /*
- * Root hub was already suspended. Disable irq emission and
- * mark HW unaccessible, bail out if RH has been resumed. Use
- * the spinlock to properly synchronize with possible pending
- * RH suspend or resume activity.
- */
- spin_lock_irqsave(&ohci->lock, flags);
- if (ohci->rh_state != OHCI_RH_SUSPENDED &&
- ohci->rh_state != OHCI_RH_HALTED) {
- rc = -EINVAL;
- goto fail;
- }
-
- clear_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags);
+ rc = ohci_suspend(hcd, do_wakeup);
+ if (rc)
+ return rc;
+ spin_lock_irqsave(&ohci->lock, flags);
if (exynos_ohci->otg)
exynos_ohci->otg->set_host(exynos_ohci->otg, &hcd->self);
@@ -228,7 +219,6 @@ static int exynos_ohci_suspend(struct device *dev)
clk_disable_unprepare(exynos_ohci->clk);
-fail:
spin_unlock_irqrestore(&ohci->lock, flags);
return rc;
--
1.7.9.5
^ permalink raw reply related [flat|nested] 9+ messages in thread
end of thread, other threads:[~2013-10-03 15:28 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <CAKsNYyws1m1kT4KiJ6GFcTSo0cT=cu+0nA0vwx=wu_SuRhAfhA@mail.gmail.com>
2013-10-03 14:31 ` [PATCH 06/11] USB: OHCI: Properly handle ohci-exynos suspend Alan Stern
2013-10-03 14:51 ` Bartlomiej Zolnierkiewicz
2013-10-03 15:28 ` Greg KH
2013-10-02 10:15 [PATCH 00/11] USB: OHCI:Properly handle ohci_suspend()routine in bus glue Majunath Goudar
2013-10-02 10:15 ` [PATCH 06/11] USB: OHCI: Properly handle ohci-exynos suspend Majunath Goudar
2013-10-02 11:34 ` Bartlomiej Zolnierkiewicz
2013-10-02 14:38 ` Alan Stern
2013-10-02 15:10 ` Bartlomiej Zolnierkiewicz
2013-10-02 15:52 ` Alan Stern
-- strict thread matches above, loose matches on Subject: below --
2013-06-12 15:28 [PATCH 00/10] USB: OHCI:Properly handle ohci_suspend()routine in bus glue Manjunath Goudar
2013-07-22 9:32 ` [PATCH 00/11] " Manjunath Goudar
2013-07-22 9:32 ` [PATCH 06/11] USB: OHCI: Properly handle ohci-exynos suspend Manjunath Goudar
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox