alistair23-linux/drivers/usb/musb
Daniel Glöckner ebc3dd688c usb: musb: fix remote wakeup racing with suspend
It has been observed that writing 0xF2 to the power register while it
reads as 0xF4 results in the register having the value 0xF0, i.e. clearing
RESUME and setting SUSPENDM in one go does not work. It might also violate
the USB spec to transition directly from resume to suspend, especially
when not taking T_DRSMDN into account. But this is what happens when a
remote wakeup occurs between SetPortFeature USB_PORT_FEAT_SUSPEND on the
root hub and musb_bus_suspend being called.

This commit returns -EBUSY when musb_bus_suspend is called while remote
wakeup is signalled and thus avoids to reset the RESUME bit. Ignoring
this error when musb_port_suspend is called from musb_hub_control is ok.

Signed-off-by: Daniel Glöckner <dg@emlix.com>
Signed-off-by: Bin Liu <b-liu@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-05-14 17:04:06 +02:00
..
am35x.c USB: musb: Remove redundant license text 2017-11-07 15:45:01 +01:00
cppi_dma.c USB: add SPDX identifiers to all remaining files in drivers/usb/ 2017-11-04 11:48:02 +01:00
cppi_dma.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
da8xx.c USB: musb: da8xx: remove clock con_id 2018-01-09 16:15:19 +01:00
davinci.c USB: musb: Remove redundant license text 2017-11-07 15:45:01 +01:00
davinci.h USB: musb: Remove redundant license text 2017-11-07 15:45:01 +01:00
jz4740.c USB: musb: Remove redundant license text 2017-11-07 15:45:01 +01:00
Kconfig usb: musb: remove blackfin port 2018-03-26 15:57:12 +02:00
Makefile usb: musb: remove blackfin port 2018-03-26 15:57:12 +02:00
musb_am335x.c USB: add SPDX identifiers to all remaining files in drivers/usb/ 2017-11-04 11:48:02 +01:00
musb_core.c arch: remove obsolete architecture ports 2018-04-02 20:20:12 -07:00
musb_core.h usb: musb: remove blackfin port 2018-03-26 15:57:12 +02:00
musb_cppi41.c USB: add SPDX identifiers to all remaining files in drivers/usb/ 2017-11-04 11:48:02 +01:00
musb_debug.h USB: musb: Remove redundant license text 2017-11-07 15:45:01 +01:00
musb_debugfs.c USB/PHY patches for 4.17-rc1 2018-04-04 17:55:35 -07:00
musb_dma.h usb: musb: remove blackfin port 2018-03-26 15:57:12 +02:00
musb_dsps.c USB: musb: dsps: drop duplicate phy initialisation 2018-04-23 16:02:13 +02:00
musb_gadget.c usb: musb: trace: fix NULL pointer dereference in musb_g_tx() 2018-04-30 09:52:17 -07:00
musb_gadget.h USB: musb: Remove redundant license text 2017-11-07 15:45:01 +01:00
musb_gadget_ep0.c usb: musb: gadget: misplaced out of bounds check 2018-03-29 18:37:28 +02:00
musb_host.c usb: musb: fix remote wakeup racing with suspend 2018-05-14 17:04:06 +02:00
musb_host.h usb: musb: fix remote wakeup racing with suspend 2018-05-14 17:04:06 +02:00
musb_io.h USB: musb: Remove redundant license text 2017-11-07 15:45:01 +01:00
musb_regs.h usb: musb: remove blackfin port 2018-03-26 15:57:12 +02:00
musb_trace.c USB: musb: Remove redundant license text 2017-11-07 15:45:01 +01:00
musb_trace.h USB: musb: Remove redundant license text 2017-11-07 15:45:01 +01:00
musb_virthub.c usb: musb: fix remote wakeup racing with suspend 2018-05-14 17:04:06 +02:00
musbhsdma.c usb: musb: remove blackfin port 2018-03-26 15:57:12 +02:00
musbhsdma.h usb: musb: remove blackfin port 2018-03-26 15:57:12 +02:00
omap2430.c USB: musb: Remove redundant license text 2017-11-07 15:45:01 +01:00
omap2430.h USB: musb: Remove redundant license text 2017-11-07 15:45:01 +01:00
sunxi.c USB: musb: Remove redundant license text 2017-11-07 15:45:01 +01:00
tusb6010.c USB: musb: Remove redundant license text 2017-11-07 15:45:01 +01:00
tusb6010.h USB: musb: Remove redundant license text 2017-11-07 15:45:01 +01:00
tusb6010_omap.c USB: musb: Remove redundant license text 2017-11-07 15:45:01 +01:00
ux500.c USB: musb: Remove redundant license text 2017-11-07 15:45:01 +01:00
ux500_dma.c USB: musb: Remove redundant license text 2017-11-07 15:45:01 +01:00