summaryrefslogtreecommitdiffstats
path: root/drivers/usb/musb/musb_dsps.c
diff options
context:
space:
mode:
authorTony Lindgren2016-11-16 20:21:24 +0100
committerGreg Kroah-Hartman2016-11-17 16:25:39 +0100
commit2bff3916fda9145587c0312b6f5c43d82504980c (patch)
tree6c0c568449f914ed75b945d03754aea2adf6dccc /drivers/usb/musb/musb_dsps.c
parentusb: musb: Fix sleeping function called from invalid context for hdrc glue (diff)
downloadkernel-qcow2-linux-2bff3916fda9145587c0312b6f5c43d82504980c.tar.gz
kernel-qcow2-linux-2bff3916fda9145587c0312b6f5c43d82504980c.tar.xz
kernel-qcow2-linux-2bff3916fda9145587c0312b6f5c43d82504980c.zip
usb: musb: Fix PM for hub disconnect
With a USB hub disconnected, devctl can be 0x19 for about a second on am335x and will stay forever on at least omap3. And we get no further interrupts when devctl session bit clears. This keeps PM runtime active. Let's fix the issue by polling devctl until the session bit clears or times out. We can do this by making musb->irq_work into delayed_work. And with the polling implemented, we can now also have the quirk for invalid VBUS it to avoid disconnecting too early while VBUS is ramping up. Fixes: 467d5c980709 ("usb: musb: Implement session bit based runtime PM for musb-core") Fixes: 65b3f50ed6fa ("usb: musb: Add PM runtime support for MUSB DSPS Tested-by: Ladislav Michl <ladis@linux-mips.org> Tested-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Bin Liu <b-liu@ti.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/musb/musb_dsps.c')
0 files changed, 0 insertions, 0 deletions