OSDN Git Service

usb: gadget: u_serial: add suspend resume callbacks
authorFabrice Gasnier <fabrice.gasnier@st.com>
Thu, 23 Apr 2020 11:55:54 +0000 (13:55 +0200)
committerFelipe Balbi <balbi@kernel.org>
Mon, 25 May 2020 08:09:39 +0000 (11:09 +0300)
commitaba3a8d01d623a5efef48ab8e78752d58d4c90c3
tree94c0c4c190824030aec36c5f7efb4b308a6b25af
parent8c935deacebb8fac8f41378701eb79d12f3c2e2d
usb: gadget: u_serial: add suspend resume callbacks

Add suspend resume callbacks to handle the case seen when the bus is
suspended by the HOST, and the device opens the port (cat /dev/ttyGS0).

Gadget controller (like DWC2) doesn't accept usb requests to be queued in
this case (when in L2 state), from the gs_open() call. Error log is printed
- configfs-gadget gadget: acm ttyGS0 can't notify serial state, -11
If the HOST resumes (opens) the bus, the port still isn't functional.

Use suspend/resume callbacks to monitor the gadget suspended state by using
'suspended' flag. In case the port gets opened (cat /dev/ttyGS0), the I/O
stream will be delayed until the bus gets resumed by the HOST.

Signed-off-by: Fabrice Gasnier <fabrice.gasnier@st.com>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
drivers/usb/gadget/function/u_serial.c
drivers/usb/gadget/function/u_serial.h