Re: USB remote wakeup through gpio interrupt

From: Alan Stern
Date: Wed Mar 05 2014 - 11:05:47 EST


On Wed, 5 Mar 2014, Jagdish Gedia wrote:

> Hi,
> There is some inconsistency in remote wakeup functionality in my
> custom board. so I want to wakeup the runtime suspended USB host
> through interrupt. My USB device is connected to the board through USB
> interface and some gpios. device will give interrupt on processor gpio
> when it needs attention of USB host. What should i do so that i can
> wakeup the usb host when i get interrupt from the device.

Have your gpio interrupt handler call pm_request_resume() for the host
controller device.

However, this may not do what you want. Since the root hub will remain
suspended, the host controller will go back to low-power immediately
after it is resumed. You really need to resume the USB device itself,
not the host controller.

> My idea was to apply power management related hooks from the interrupt
> handler, but I am not getting the clear idea.
>
> My main doubt is,
> Will this mechanism be efficient as remote wakeup functionality?

That's a hard question to answer without measurements. But it
shouldn't matter, because you probably won't get more than one wakeup
per second, right?

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/