Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754381AbbDQTos (ORCPT ); Fri, 17 Apr 2015 15:44:48 -0400 Received: from comal.ext.ti.com ([198.47.26.152]:33165 "EHLO comal.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751275AbbDQToq (ORCPT ); Fri, 17 Apr 2015 15:44:46 -0400 Date: Fri, 17 Apr 2015 14:43:27 -0500 From: Felipe Balbi To: David Cohen CC: , , , , Subject: Re: [PATCH] usb: dwc3: gadget: call gadget driver's ->suspend/->resume Message-ID: <20150417194327.GM2823@saruman.tx.rr.com> Reply-To: References: <1429296116-3062-1-git-send-email-david.a.cohen@linux.intel.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="A6Z7MKnLVMfR85kG" Content-Disposition: inline In-Reply-To: <1429296116-3062-1-git-send-email-david.a.cohen@linux.intel.com> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3918 Lines: 130 --A6Z7MKnLVMfR85kG Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Fri, Apr 17, 2015 at 11:41:56AM -0700, David Cohen wrote: > From: Felipe Balbi missing the required: [ Upstream commit bc5ba2e0b829c9397f96df1191c7d2319ebc36d9 ] >=20 > When going into bus suspend/resume we _must_ > call gadget driver's ->suspend/->resume callbacks > accordingly. This patch implements that very feature > which has been missing forever. >=20 > Cc: # 3.14 > Signed-off-by: Felipe Balbi > Signed-off-by: David Cohen > --- >=20 > Hi, >=20 > This patch was introduced on v3.15. > But the issue it fixes already existed on v3.14 and v3.14 is a long term > support version. Can you show me a log of this breaking anywhere ? Why do you consider this a bug fix ? What sort of drawbacks did you notice ? > I propose to backport it over there as well. >=20 > BR, David > --- >=20 > drivers/usb/dwc3/gadget.c | 35 +++++++++++++++++++++++++++++++++++ > 1 file changed, 35 insertions(+) >=20 > diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c > index 8f6738d46b14..1bb752736c32 100644 > --- a/drivers/usb/dwc3/gadget.c > +++ b/drivers/usb/dwc3/gadget.c > @@ -2012,6 +2012,24 @@ static void dwc3_disconnect_gadget(struct dwc3 *dw= c) > } > } > =20 > +static void dwc3_suspend_gadget(struct dwc3 *dwc) > +{ > + if (dwc->gadget_driver && dwc->gadget_driver->disconnect) { you also need Dan Carperter's commit which fixes this cut & paste error. That's commit 73a30bfc0d526db899033165db6f95c427e70505 > + spin_unlock(&dwc->lock); > + dwc->gadget_driver->suspend(&dwc->gadget); > + spin_lock(&dwc->lock); > + } > +} > + > +static void dwc3_resume_gadget(struct dwc3 *dwc) > +{ > + if (dwc->gadget_driver && dwc->gadget_driver->disconnect) { > + spin_unlock(&dwc->lock); > + dwc->gadget_driver->resume(&dwc->gadget); > + spin_lock(&dwc->lock); > + } > +} > + > static void dwc3_stop_active_transfer(struct dwc3 *dwc, u32 epnum) > { > struct dwc3_ep *dep; > @@ -2391,6 +2409,23 @@ static void dwc3_gadget_linksts_change_interrupt(s= truct dwc3 *dwc, > =20 > dwc->link_state =3D next; > =20 > + switch (next) { > + case DWC3_LINK_STATE_U1: > + if (dwc->speed =3D=3D USB_SPEED_SUPER) > + dwc3_suspend_gadget(dwc); > + break; > + case DWC3_LINK_STATE_U2: > + case DWC3_LINK_STATE_U3: > + dwc3_suspend_gadget(dwc); > + break; > + case DWC3_LINK_STATE_RESUME: > + dwc3_resume_gadget(dwc); > + break; > + default: > + /* do nothing */ > + break; > + } > + > dev_vdbg(dwc->dev, "%s link %d\n", __func__, dwc->link_state); > } --=20 balbi --A6Z7MKnLVMfR85kG Content-Type: application/pgp-signature; name="signature.asc" Content-Description: Digital signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAEBAgAGBQJVMWJfAAoJEIaOsuA1yqREPmQP/RJGiiy18+k2kPFh3KIqPuH3 r+EJOOyNVkA7hvZ9xyiT2QTvZm6lQEWre/lSowE8KSiCIdqB2s0ingcYsAWqs6r3 SGF3fipbTum7UhzN78yIAsMSX21jhGH/OdQAWZ9zCkstk2SoTYuDpMNvEIVe4i9k tTrYemAwUpstdHFny33qjot0o+enCIFbqXEDtTk6SpuJioueaqmqKeljew0qcz0c WgzTHtj5ip8ug65kfEtt9XVj6UbWHmYO3bfodUxP/EzXujiGM9zS770Bep1OdLES 5uSlXHZqVfHgrzcyRqYAZGWGWgz1ZcftFvjqbJ1pcbYWgMNjfI0syMaZpHIuC3Pf iL/g85YwYzVfSwctbbkG50d+lb/0u8HC1DK81xilFz0S58FFTLk2k6SFngiQrtbt zsSNCR4VS5/b+hMfND1Mj/EbXeo5JZiCtadByfkAlxdhRdHv6iBg56sYBe8+RUUj 7dVTeygozV7hjdOtThLqMP6XvgdKhN9A3ZabcUOTGYgsLWtv8wUwPfo8CGcnLr7w nj7FFpNuB1rFvd+FMFSP7NWPzwaLAcKMXGhnywgNyfDdwSl6AlB3mZFvVBg6TyPl L5UOB2eWXC1umWb/ftALbG5pvThDhKNOnmU+YvV/bLjetVx3gQAosgFy/qQBdgjO ej2563BAqvU1/wAfqSIm =0Zv5 -----END PGP SIGNATURE----- --A6Z7MKnLVMfR85kG-- -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/