All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH 0/6] Suspend USB Host controller on bus suspend
@ 2013-06-19 14:05 ` Roger Quadros
  0 siblings, 0 replies; 144+ messages in thread
From: Roger Quadros @ 2013-06-19 14:05 UTC (permalink / raw)
  To: stern, tony
  Cc: balbi, ruslan.bilovol, linux-usb, linux-omap, linux-kernel,
	linux-arm-kernel, Roger Quadros

Hi,

This series attempts to suspend the OMAP EHCI host controller on USB
Bus suspend. This will cause its parent, the OMAP USB Host Module as well
as the USB TLL Module to be put in suspend and hence allow the USB power domain
to be put in a lower power state. Then we no longer prevent the rest of the OMAP
SoC from entering lower power states like RETention or OFF mode when
USB (or system) is suspended. This was one of the main reason why EHCI_OMAP
is still not enabled in OMAP2 defconfig.

In order for remote wakeup or hub events (connect/disconnect) to be detected
while in suspend, we need to rely on the IO daisy chaining mechanism on OMAP.
This is nothing but configuring a pin to be wakeup capable and triggering an
interrupt on any pin activity while the hardware module or the entire SoC is
in sleep state. For this to work, we rely on the wakeup feature added to the
omap-pinctrl-single driver in [1]. This takes care of routing IO pad wakeup
interrupt to the right driver's interrupt handler (i.e. ehci_irq in our case).

The pin state information for DEFAULT and IDLE is specified for the omap3beagle-xm
board in patch 5. So this is tested only on omap3beagle-xm board.

As the omap-ehci controller driver needs to do some additional work to put
itself into suspend/resume and make sure it is resumed to process an interrupt,
we need to be able to override irq, bus_suspend, and bus_resume handlers. This
provision is done in patch 3.

Patch 2 uses pinctrl framework to toggle USB host pins from DEFAULT state
when active to IDLE state with wakeups enabled while in suspend.

Patch 5 implements the suspend feature in ehci-omap driver and ensures that
we don't loose events while in suspend.

Please let me know what you think about it. I'm not 100% confident about
tackling interrupt when the device is runtime suspended in patch 5. Please
let me know if a race condition is possible here.

[1] - OMAP pinctrl wakeup support
http://thread.gmane.org/gmane.linux.ports.arm.omap/99010/focus=99041

cheers,
-roger

Roger Quadros (6):
  mfd: omap-usb-host: move initialization to module_init()
  mfd: omap-usb-host: Put pins in IDLE state on suspend
  USB: ehci: allow controller drivers to override irq &
    bus_suspend/resume
  USB: ehci-omap: Suspend the controller during bus suspend
  ARM: dts: omap3beagle-xm: Add idle state pins for USB host
  ARM: OMAP3: Enable Hardware Save and Restore for USB Host

 arch/arm/boot/dts/omap3-beagle-xm.dts       |   29 ++++++++--
 arch/arm/mach-omap2/powerdomains3xxx_data.c |    8 +--
 drivers/mfd/omap-usb-host.c                 |   56 +++++++++++++++---
 drivers/mfd/omap-usb-tll.c                  |    8 +--
 drivers/usb/host/ehci-hcd.c                 |    9 +++-
 drivers/usb/host/ehci-hub.c                 |    6 +-
 drivers/usb/host/ehci-omap.c                |   82 +++++++++++++++++++++++++++
 drivers/usb/host/ehci.h                     |    6 ++
 8 files changed, 172 insertions(+), 32 deletions(-)

-- 
1.7.4.1


^ permalink raw reply	[flat|nested] 144+ messages in thread

end of thread, other threads:[~2013-07-09 13:59 UTC | newest]

Thread overview: 144+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-06-19 14:05 [RFC PATCH 0/6] Suspend USB Host controller on bus suspend Roger Quadros
2013-06-19 14:05 ` Roger Quadros
2013-06-19 14:05 ` Roger Quadros
2013-06-19 14:05 ` [RFC PATCH 1/6] mfd: omap-usb-host: move initialization to module_init() Roger Quadros
2013-06-19 14:05   ` Roger Quadros
2013-06-19 14:05   ` Roger Quadros
2013-06-20 12:07   ` Felipe Balbi
2013-06-20 12:07     ` Felipe Balbi
2013-06-20 12:07     ` Felipe Balbi
2013-06-20 12:29     ` Roger Quadros
2013-06-20 12:29       ` Roger Quadros
2013-06-20 12:29       ` Roger Quadros
2013-06-19 14:05 ` [RFC PATCH 2/6] mfd: omap-usb-host: Put pins in IDLE state on suspend Roger Quadros
2013-06-19 14:05   ` Roger Quadros
2013-06-19 14:05   ` Roger Quadros
2013-06-19 17:23   ` Kevin Hilman
2013-06-19 17:23     ` Kevin Hilman
2013-06-19 17:23     ` Kevin Hilman
2013-06-20  7:21     ` Tony Lindgren
2013-06-20  7:21       ` Tony Lindgren
2013-06-20 12:30     ` Roger Quadros
2013-06-20 12:30       ` Roger Quadros
2013-06-20 12:30       ` Roger Quadros
2013-06-19 14:05 ` [RFC PATCH 3/6] USB: ehci: allow controller drivers to override irq & bus_suspend/resume Roger Quadros
2013-06-19 14:05   ` Roger Quadros
2013-06-19 14:05   ` Roger Quadros
2013-06-19 14:05 ` [RFC PATCH 4/6] USB: ehci-omap: Suspend the controller during bus suspend Roger Quadros
2013-06-19 14:05   ` Roger Quadros
2013-06-19 14:05   ` Roger Quadros
2013-06-19 17:39   ` Kevin Hilman
2013-06-19 17:39     ` Kevin Hilman
2013-06-19 17:39     ` Kevin Hilman
2013-06-20 12:32     ` Roger Quadros
2013-06-20 12:32       ` Roger Quadros
2013-06-20 12:32       ` Roger Quadros
2013-06-20 12:11   ` Felipe Balbi
2013-06-20 12:11     ` Felipe Balbi
2013-06-20 12:11     ` Felipe Balbi
2013-06-20 12:35     ` Roger Quadros
2013-06-20 12:35       ` Roger Quadros
2013-06-20 12:35       ` Roger Quadros
2013-06-20 17:33       ` Alan Stern
2013-06-20 17:33         ` Alan Stern
2013-06-20 17:33         ` Alan Stern
2013-06-24 15:09         ` Roger Quadros
2013-06-24 15:09           ` Roger Quadros
2013-06-24 15:09           ` Roger Quadros
2013-06-24 19:34           ` Alan Stern
2013-06-24 19:34             ` Alan Stern
2013-06-24 19:34             ` Alan Stern
2013-06-25 13:59             ` Roger Quadros
2013-06-25 13:59               ` Roger Quadros
2013-06-25 13:59               ` Roger Quadros
2013-06-25 17:38               ` Alan Stern
2013-06-25 17:38                 ` Alan Stern
2013-06-25 17:38                 ` Alan Stern
2013-06-26 13:38                 ` Roger Quadros
2013-06-26 13:38                   ` Roger Quadros
2013-06-26 13:38                   ` Roger Quadros
2013-06-27 15:40                   ` Alan Stern
2013-06-27 15:40                     ` Alan Stern
2013-06-27 15:40                     ` Alan Stern
2013-06-28 12:20                     ` Roger Quadros
2013-06-28 12:20                       ` Roger Quadros
2013-06-28 12:20                       ` Roger Quadros
2013-06-28 13:57                       ` Roger Quadros
2013-06-28 13:57                         ` Roger Quadros
2013-06-28 13:57                         ` Roger Quadros
2013-06-28 19:18                         ` Alan Stern
2013-06-28 19:18                           ` Alan Stern
2013-06-28 19:18                           ` Alan Stern
2013-07-01  8:33                           ` Roger Quadros
2013-07-01  8:33                             ` Roger Quadros
2013-07-01  8:33                             ` Roger Quadros
2013-06-28 19:06                       ` Alan Stern
2013-06-28 19:06                         ` Alan Stern
2013-06-28 19:06                         ` Alan Stern
2013-07-01  8:16                         ` Roger Quadros
2013-07-01  8:16                           ` Roger Quadros
2013-07-01  8:16                           ` Roger Quadros
2013-07-01 16:24                           ` Alan Stern
2013-07-01 16:24                             ` Alan Stern
2013-07-01 16:24                             ` Alan Stern
2013-07-01 16:49                             ` Felipe Balbi
2013-07-01 16:49                               ` Felipe Balbi
2013-07-01 16:49                               ` Felipe Balbi
2013-07-01 21:01                               ` Alan Stern
2013-07-01 21:01                                 ` Alan Stern
2013-07-01 21:01                                 ` Alan Stern
2013-07-02  8:22                                 ` Roger Quadros
2013-07-02  8:22                                   ` Roger Quadros
2013-07-02  8:22                                   ` Roger Quadros
2013-07-02 17:17                                   ` Alan Stern
2013-07-02 17:17                                     ` Alan Stern
2013-07-02 17:17                                     ` Alan Stern
2013-07-03  9:13                                     ` Roger Quadros
2013-07-03  9:13                                       ` Roger Quadros
2013-07-03  9:13                                       ` Roger Quadros
2013-07-03 12:57                                     ` Felipe Balbi
2013-07-03 12:57                                       ` Felipe Balbi
2013-07-03 12:57                                       ` Felipe Balbi
2013-07-03 13:06                                       ` Roger Quadros
2013-07-03 13:06                                         ` Roger Quadros
2013-07-03 13:06                                         ` Roger Quadros
2013-07-03 13:15                                         ` Felipe Balbi
2013-07-03 13:15                                           ` Felipe Balbi
2013-07-03 13:15                                           ` Felipe Balbi
2013-07-03 14:30                                           ` Alan Stern
2013-07-03 14:30                                             ` Alan Stern
2013-07-03 14:30                                             ` Alan Stern
2013-07-09 13:58                         ` Roger Quadros
2013-07-09 13:58                           ` Roger Quadros
2013-07-09 13:58                           ` Roger Quadros
2013-06-19 14:05 ` [RFC PATCH 5/6] ARM: dts: omap3beagle-xm: Add idle state pins for USB host Roger Quadros
2013-06-19 14:05   ` Roger Quadros
2013-06-19 14:05   ` Roger Quadros
2013-06-19 18:42   ` Kevin Hilman
2013-06-19 18:42     ` Kevin Hilman
2013-06-20 11:55     ` Roger Quadros
2013-06-20 11:55       ` Roger Quadros
2013-06-20 11:55       ` Roger Quadros
2013-06-20 12:02       ` Roger Quadros
2013-06-20 12:02         ` Roger Quadros
2013-06-20 12:02         ` Roger Quadros
2013-06-20 13:02         ` Roger Quadros
2013-06-20 13:02           ` Roger Quadros
2013-06-20 13:02           ` Roger Quadros
2013-06-19 14:05 ` [RFC PATCH 6/6] ARM: OMAP3: Enable Hardware Save and Restore for USB Host Roger Quadros
2013-06-19 14:05   ` Roger Quadros
2013-06-19 14:05   ` Roger Quadros
2013-06-19 17:30   ` Sergei Shtylyov
2013-06-19 17:30     ` Sergei Shtylyov
2013-06-20 12:42     ` Roger Quadros
2013-06-20 12:42       ` Roger Quadros
2013-06-20 12:42       ` Roger Quadros
2013-06-19 15:23 ` [RFC PATCH 0/6] Suspend USB Host controller on bus suspend Alan Stern
2013-06-19 15:23   ` Alan Stern
2013-06-19 15:23   ` Alan Stern
2013-06-20 12:39   ` Roger Quadros
2013-06-20 12:39     ` Roger Quadros
2013-06-20 12:39     ` Roger Quadros
2013-06-20 17:19     ` Alan Stern
2013-06-20 17:19       ` Alan Stern
2013-06-20 17:19       ` Alan Stern

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.