From: Greg KH <gregkh@linuxfoundation.org>
To: Fabrice Gasnier <fabrice.gasnier@foss.st.com>
Cc: hminas@synopsys.com, linux-usb@vger.kernel.org,
linux-kernel@vger.kernel.org,
linux-stm32@st-md-mailman.stormreply.com,
amelie.delaunay@foss.st.com, alexandre.torgue@foss.st.com
Subject: Re: [PATCH v2] usb: dwc2: drd: fix soft connect when gadget is unconfigured
Date: Tue, 15 Feb 2022 15:04:20 +0100 [thread overview]
Message-ID: <Yguy5OMW477VmMuv@kroah.com> (raw)
In-Reply-To: <1644923059-3619-1-git-send-email-fabrice.gasnier@foss.st.com>
On Tue, Feb 15, 2022 at 12:04:19PM +0100, Fabrice Gasnier wrote:
> When the gadget driver hasn't been (yet) configured, and the cable is
> connected to a HOST, the SFTDISCON gets cleared unconditionally, so the
> HOST tries to enumerate it.
> At the host side, this can result in a stuck USB port or worse. When
> getting lucky, some dmesg can be observed at the host side:
> new high-speed USB device number ...
> device descriptor read/64, error -110
>
> Fix it in drd, by checking the enabled flag before calling
> dwc2_hsotg_core_connect(). It will be called later, once configured,
> by the normal flow:
> - udc_bind_to_driver
> - usb_gadget_connect
> - dwc2_hsotg_pullup
> - dwc2_hsotg_core_connect
>
> Fixes: 17f934024e84 ("usb: dwc2: override PHY input signals with usb role switch support")
> Signed-off-by: Fabrice Gasnier <fabrice.gasnier@foss.st.com>
> ---
> Changes in v2:
> - Fix build error: 'struct dwc2_hsotg' has no member named 'enabled';
> as reported by the kernel test robot.
> https://lore.kernel.org/all/202202112236.AwoOTtHO-lkp@intel.com/
> Add dwc2_is_device_enabled() macro to handle this.
> ---
> drivers/usb/dwc2/core.h | 2 ++
> drivers/usb/dwc2/drd.c | 6 ++++--
> 2 files changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/usb/dwc2/core.h b/drivers/usb/dwc2/core.h
> index 8a63da3..8a7751b 100644
> --- a/drivers/usb/dwc2/core.h
> +++ b/drivers/usb/dwc2/core.h
> @@ -1418,6 +1418,7 @@ void dwc2_hsotg_core_connect(struct dwc2_hsotg *hsotg);
> void dwc2_hsotg_disconnect(struct dwc2_hsotg *dwc2);
> int dwc2_hsotg_set_test_mode(struct dwc2_hsotg *hsotg, int testmode);
> #define dwc2_is_device_connected(hsotg) (hsotg->connected)
> +#define dwc2_is_device_enabled(hsotg) ((hsotg)->enabled)
Why the extra ()? dwc2_is_device_connected does not have it, so this
one probably should not either, right?
thanks,
greg k-h
next prev parent reply other threads:[~2022-02-15 14:04 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-15 11:04 [PATCH v2] usb: dwc2: drd: fix soft connect when gadget is unconfigured Fabrice Gasnier
2022-02-15 14:04 ` Greg KH [this message]
2022-02-15 15:42 ` Fabrice Gasnier
2022-02-15 17:19 ` Greg KH
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Yguy5OMW477VmMuv@kroah.com \
--to=gregkh@linuxfoundation.org \
--cc=alexandre.torgue@foss.st.com \
--cc=amelie.delaunay@foss.st.com \
--cc=fabrice.gasnier@foss.st.com \
--cc=hminas@synopsys.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-stm32@st-md-mailman.stormreply.com \
--cc=linux-usb@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.