[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <1587472341-17935-1-git-send-email-fabrice.gasnier@st.com>
Date: Tue, 21 Apr 2020 14:32:17 +0200
From: Fabrice Gasnier <fabrice.gasnier@...com>
To: <hminas@...opsys.com>, <balbi@...nel.org>
CC: <gregkh@...uxfoundation.org>, <linux-usb@...r.kernel.org>,
<linux-kernel@...r.kernel.org>,
<linux-stm32@...md-mailman.stormreply.com>,
<amelie.delaunay@...com>
Subject: [PATCH 0/4] usb: gadget: serial: add supend resume support
This series handles an issue seen when doing basic testing using ACM or SERIAL
gadget functions like in [1], and using the DWC2 gadget driver. It occurs when
the HOST has suspended the bus before testing, in this order:
- On the device:
cat /dev/ttyGS<Y>
Dmesg error log is seen on device side:
configfs-gadget gadget: acm ttyGS0 can't notify serial state, -11
- On the host:
echo test > /dev/ttyACM<X>
The bus resumes, but the serial link isn't functional.
So, implement suspend/resume callbacks in gadget serial drivers to handle this.
There is a precursor patch in DWC2 to enable submitting usb requests from the
gadget resume routine, once in L0 state.
[1] https://www.kernel.org/doc/html/latest/usb/gadget-testing.html#testing-the-acm-function
Fabrice Gasnier (4):
usb: dwc2: gadget: move gadget resume after the core is in L0 state
usb: gadget: u_serial: add suspend resume callbacks
usb: gadget: f_serial: add suspend resume callbacks
usb: gadget: f_acm: add suspend resume callbacks
drivers/usb/dwc2/core_intr.c | 10 ++++--
drivers/usb/gadget/function/f_acm.c | 16 ++++++++++
drivers/usb/gadget/function/f_serial.c | 16 ++++++++++
drivers/usb/gadget/function/u_serial.c | 57 +++++++++++++++++++++++++++++-----
drivers/usb/gadget/function/u_serial.h | 2 ++
5 files changed, 90 insertions(+), 11 deletions(-)
--
2.7.4
Powered by blists - more mailing lists