[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <1587642956-8157-1-git-send-email-fabrice.gasnier@st.com>
Date:   Thu, 23 Apr 2020 13:55:52 +0200
From:   Fabrice Gasnier <fabrice.gasnier@...com>
To:     <hminas@...opsys.com>, <gregkh@...uxfoundation.org>,
        <balbi@...nel.org>
CC:     <linux-usb@...r.kernel.org>, <linux-kernel@...r.kernel.org>,
        <linux-stm32@...md-mailman.stormreply.com>,
        <amelie.delaunay@...com>, <fabrice.gasnier@...com>
Subject: [PATCH v2 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
Changes in v2:
- update dwc2 with Minas suggestions
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           |  7 +++--
 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, 88 insertions(+), 10 deletions(-)
-- 
2.7.4
Powered by blists - more mailing lists
 
