From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [0/3] usb: gadget: Add support for disabling U1 and U2 entries From: "Claus H. Stovgaard" Message-Id: <1556891523.24062.31.camel@phaseone.com> Date: Fri, 3 May 2019 15:52:03 +0200 To: Anurag Kumar Vulisha , Greg Kroah-Hartman , Rob Herring , Mark Rutland , Felipe Balbi Cc: "linux-usb@vger.kernel.org" , "v.anuragkumar@gmail.com" , Rob Weber List-ID: SGkgQW51cmFnCgpPbiBGcmksIDIwMTktMDUtMDMgYXQgMDc6MzQgKzAwMDAsIEFudXJhZyBLdW1h ciBWdWxpc2hhIHdyb3RlOgo+IEhpIENsYXVzLAo+IFRoYW5rcyBmb3IgdGVzdGluZyBhbmQgdm90 aW5nIGZvciB0aGlzIHBhdGNoLgoKSSBoYXZlIGZpcnN0IHRlc3RlZCB5b3VyIHBhdGNoZXMgdG9k YXkuIE15IHRlc3Qgc2V0dXAgaXMgYSBaeW5xTVAKZGV2aWNlLCBydW5uaW5nIGtlcm5lbCA0LjE0 IChYaWxpbnggdmVyc2lvbikgd2l0aCB5b3VyIHBhdGNoZXMuCkkgdGhlbiBjcmVhdGUgYW4gb3Zl cmxheSBmb3IgdGhlIGRldmljZXRyZWUgd2l0aCB0aGUgbmV3IHBhcmFtZXRlcnMsCmFuZCB1bmJp bmQvYmluZCB0aGUgZHdjMyBkcml2ZXIuCgpOZXh0IEkgaGF2ZSBhIGhvc3QgcnVubmluZyBXaW5k b3dzIDEwIGFuZCBhIE1hY0Jvb2sgcHJvIHdpdGggVHlwZS1DCnBvcnRzLiBGb3IgbG9nZ2luZyB0 aGUgY29tbXVuaWNhdGlvbiBJIHVzZSBhIFRvdGFsIFBoYXNlIEJlYWdsZSBVU0IzCjUwMDAgVjIg YW5hbHl6ZXIuCgpUaGUgdGVzdCBzaG93ZWQgdGhhdCBPUy1YIGRvZXMgYXMgZXhwZWN0ZWQuIFdo ZW4gQk9TIGRlc2NyaXB0b3IKKGJVMURldkV4dExhdCBhbmQgYlUyRGV2RXh0TGF0KSByZXR1cm5z IDAsIGl0IGRvZXMgbm90IGVuYWJsZSBMUE0uCgpXaW5kb3dzIDEwIG9uIHRoZSBvdGhlciBoYW5k IGRvZXMgbm90LCBhbmQgZXZlbiB0aG91Z2ggaXQgcmVjZWl2ZWQgMCBhcwpiVTFEZXZFeHRMYXQg YW5kIGJVMkRldkV4dExhdCBpdCBzZW5kIFNldCBTZWwgd2l0aCBVMVNFTCA4NSB1cywgVTFQRUwg MAp1cywgVTJTRUwgODUgdXMgYW5kIFUyUEVMIDAgdXMuCk5leHQgdGhlIFdpbmRvd3MgMTAgaG9z dCBzZW5kcyB0aGUgVTEgRW5hYmxlIGFuZCB0aGUgVTIgZW5hYmxlIGFzIFNldApEZXZpY2UgRmVh dHVyZSwgcmVzdWx0aW5nIGluIHRoZSBzeXN0ZW0gZW50ZXJpbmcgVTIuCgo+ID4gCj4gPiBKdXN0 IHRvZGF5IEkgd2FzIG1ha2luZyBhbm90aGVyIHNvbHV0aW9uIGZvciB0aGlzIGZlYXR1cmUsIHVz aW5nCj4gPiB0aGUKPiA+IGNvbmZpZ2ZzIGluc3RlYWQgb2YgdGhlIGRldmljZXRyZWUuIFRob3Vn aCB0aGlua3MgeW91ciBzb2x1dGlvbiBpcwo+ID4gYmV0dGVyLCBhcyBpdCB1c2VzIHRoZSBVMURl dkV4aXRMYXQgYW5kIFUyRGV2RXhpdExhdCBpbnN0ZWFkLiBJCj4gPiBqdXN0Cj4gPiBhZGRlZCBt eSBzb2x1dGlvbiB0byB0aGUgYm90dGVtIG9mIHRoZSBtYWlsIGZvciByZWZlcmVuY2UuCj4gPiAK PiA+IFsxXSBodHRwczovL3d3dy5zcGluaWNzLm5ldC9saXN0cy9saW51eC11c2IvbXNnMTc5Mzkz Lmh0bWwKPiA+IAo+IFlvdXIgYXBwcm9hY2ggYmVsb3cgaXMgYWxzbyBnb29kLCBidXQgeW91IGFy ZSBqdXN0IGF2b2lkaW5nIHRoZQo+IGdhZGdldCBkd2MzCj4gY29udHJvbGxlciBmcm9tIGVudGVy aW5nIGludG8gVTEgYW5kIFUyIHN0YXRlcyBieSBkaXNhYmxpbmcgdGhlCj4gQUNDRVBUVTFFTkEK PiBhbmQgQUNDRVBUVTJFTkEgYml0cyBpbiBEQ1RMIGJ1dCBub3QgcHJldmVudGluZyB0aGUgaG9z dCBmcm9tIHNlbmRpbmcKPiB0aGUKPiBMRzBfVTEgYW5kIExHT19VMiBsaW5rIGNvbW1hbmQgc2ln bmFsaW5nIHRvIHRoZSBnYWRnZXQuIFRoZSBob3N0IHdpbGwKPiBrZWVwCj4gb24gdHJ5aW5nIHRv IGdldCB0aGUgbGluayBpbnRvIFUxIG9yIFUyIGJ5IHNlbmRpbmcgTEdPX1UxIG9yIExHT19VMgo+ IGFuZCB0aGUKPiBnYWRnZXQgcmVqZWN0cyB0aGVzZSBzaWduYWxzIGJ5IHNlbmRpbmcgTFhVIGxp bmsgY29tbWFuZC4gVG8gYXZvaWQKPiB0aGlzIGV4dHJhCj4gb3ZlcmhlYWQgSSB0aG91Z2h0IHRo YXQgc2VuZGluZyB6ZXJvwqDCoHZhbHVlIGluIHRoZSBCT1MgZGVzY3JpcHRvcidzCj4gVTFEZXZF eGl0TGF0IGFuZCBVMkRldkV4aXRMYXQgZmllbGRzIHdvdWxkIGJlIHRoZSBiZXN0IG9wdGlvbi4g SG9zdAo+IG9uIHNlZWluZwo+IFUgMSAmIFUyIEV4aXQgTGF0ZW5jaWVzIGRvZXNuJ3QgaW5pdGlh dGUgTFBNIFUxIGFuZCBVMiBjb21tYW5kcy4KPiAKPiBUaGFua3MsCj4gQW51cmFnIEt1bWFyIFZ1 bGlzaGEKCkNvcnJlY3QgdGhhdCBpdCBkb2VzIG5vdCBwcmV2ZW50IHRoZSBob3N0IGZyb20gc2Vu ZGluZyBMRzBfVTEgYW5kCkxHMF9VMiwgYW5kIHRoZXJlIGlzIHlvdXIgc29sdXRpb24gYmV0dGVy IG9uIGhvc3RzIHVzaW5nIHRoZSBCT1MKZGVzY3JpcHRvciBmb3IgZGlzYWJsaW5nIExQTS4gU28g YmFzZWQgb24gbXkgdGVzdCB3aXRoIFdpbmRvd3MgMTAsIEkKdGhpbmsgd2Ugc2hvdWxkIGNvbWJp bmUgdGhlIHNvbHV0aW9ucy4gVG8gcHJldmVudCBMRzBfVTEvTEcwX1UyIHdoZW4KcG9zc2libGUg YW5kIHN0aWxsIGJlaW5nIGFibGUgdG8gY29tcGxldGVseSBkaXNhYmxlIFUxL1UyLgoKUmVnYXJk aW5nIGludGVyZmFjZSBmb3IgY29udHJvbGxpbmcgaXQuIEkgYW0gdmVyeSBub3ZpY2UgcmVnYXJk aW5nCkxpbnV4IGtlcm5lbCBkZXZlbG9wbWVudCwgYnV0IHdvdWxkIHRoaW5rIHRoZSBCT1MgZGVz Y3JpcHRvciBjb250cm9sCndvdWxkIGJlIGJldHRlciBmcm9tIGEgY29uZmlnZnMgaW50ZXJmYWNl IHRoZW4gZGV2aWNldHJlZSBhcyBJIGRvbid0CnNlZSBCT1MgZGVzY3JpcHRvciBhcyBoYXJkd2Fy ZSBzcGVjaWZpYy4gSSBhbSBtb3JlIGluIGRvdWJ0IGFib3V0IHRoZQpmb3JjaW5nIG9mIFUxL1Uy IGFzIEkgZGlkIHdpdGggc2V0dGluZyBoYXJkd2FyZSByZWdpc3RlcnMsIGFzIGl0CmNvbnRyb2wg aGFyZHdhcmUgcmVnaXN0ZXJzLiBTbyB3aWxsIGxpa2UgdG8gaGVhciBmcm9tIG90aGVyIG1vcmUK ZXhwZXJpZW5jZWQgZGV2ZWxvcGVycy4KClJlZ2FyZHMKQ2xhdXMK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-0.9 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id F1A68C43219 for ; Fri, 3 May 2019 13:52:14 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id C91682070B for ; Fri, 3 May 2019 13:52:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727032AbfECNwN (ORCPT ); Fri, 3 May 2019 09:52:13 -0400 Received: from mail1.bemta26.messagelabs.com ([85.158.142.1]:51083 "EHLO mail1.bemta26.messagelabs.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726047AbfECNwN (ORCPT ); Fri, 3 May 2019 09:52:13 -0400 Received: from [85.158.142.103] (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256 bits)) by server-1.bemta.az-a.eu-central-1.aws.symcld.net id 8D/BB-22995-A874CCC5; Fri, 03 May 2019 13:52:10 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprMKsWRWlGSWpSXmKPExsUyo1hfUrfT/Uy MwY2PJhZvHv9jtzjW9oTdonnxejaLRctamS2WXr/IZHFx/U5Gi9a9R9gtrjydyujA4bFm3hpG j52z7rJ7dDU1s3tsWtXJ5rF/7hp2j8+b5Dz2fv7NEsAexZqZl5RfkcCase/eOaaCCWIVz05vZ Gtg7BTqYuTiEBJYwyjx+/xT5i5GTg5eAROJZV+ng9nCAkESDS2LgWwODjYBXYmuO6Yg9SICpx klnj37zwLiMAv0M0pc7L0H1sAioCJxpuMRmM0pECsxc/smMFtI4CSjxNQ9CiA2s4CmROv23+w gtoSAhsSGm8eYIBYLSpyc+YQFokZeonnrbLDFQgKyEkcvxUKUK0ic3TKREcJOkjjXd4VtAqPA LCRTZyGZNAvJpAWMzKsYLZOKMtMzSnITM3N0DQ0MdA0NjXWNdI2MLfUSq3QT9VJLdZNT80qKE oGyeonlxXrFlbnJOSl6eaklmxiBEZRSyPR+B+P99vRDjJIcTEqivAaiZ2KE+JLyUyozEosz4o tKc1KLDzHKcHAoSfDmuQLlBItS01Mr0jJzgLEMk5bg4FES4Z0MkuYtLkjMLc5Mh0idYtTl+NL +aC6zEEtefl6qlDhvEEiRAEhRRmke3AhYWrnEKCslzMvIwMAgxFOQWpSbWYIq/4pRnINRSZj3 IcgUnsy8ErhNr4COYAI64vmkUyBHlCQipKQaGF3vNJoJK/Ap3NA7VzH5i/6mZx8NX2de8e/65 DGDo1p13qPbtrXbay9e/rLusFjbxm1vvTuZlsrz9G5Mu+Kyy1h7S8YU41pZpdvKlvJts9yLmd flcEmUdDYkH7knqmvTOcng2xqrO2tNucvsbzVd63+pvODP+dpMdlu3vddYwy9qXPu872R6vRJ LcUaioRZzUXEiAAZDf64mAwAA X-Env-Sender: cst@phaseone.com X-Msg-Ref: server-5.tower-228.messagelabs.com!1556891529!5892599!1 X-Originating-IP: [152.115.47.25] X-SYMC-ESS-Client-Auth: outbound-route-from=pass X-StarScan-Received: X-StarScan-Version: 9.31.5; banners=-,-,- X-VirusChecked: Checked Received: (qmail 6064 invoked from network); 3 May 2019 13:52:09 -0000 Received: from unknown (HELO Exchange2.phaseone.com) (152.115.47.25) by server-5.tower-228.messagelabs.com with AES256-SHA encrypted SMTP; 3 May 2019 13:52:09 -0000 Received: from cstu16.phaseone.com (172.16.2.207) by Exchange2.phaseone.com (172.16.1.180) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Fri, 3 May 2019 15:52:06 +0200 Message-ID: <1556891523.24062.31.camel@phaseone.com> Subject: Re: [PATCH 0/3] usb: gadget: Add support for disabling U1 and U2 entries From: "Claus H. Stovgaard" To: Anurag Kumar Vulisha , Greg Kroah-Hartman , Rob Herring , "Mark Rutland" , Felipe Balbi CC: "linux-usb@vger.kernel.org" , "v.anuragkumar@gmail.com" , Rob Weber Date: Fri, 3 May 2019 15:52:03 +0200 In-Reply-To: References: <1556792423-4833-1-git-send-email-anurag.kumar.vulisha@xilinx.com> <1556832986.22007.15.camel@gmail.com> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.18.5.2-0ubuntu3.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Originating-IP: [172.16.2.207] X-ClientProxiedBy: Exchange3.phaseone.com (172.16.1.184) To Exchange2.phaseone.com (172.16.1.180) Sender: linux-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org Message-ID: <20190503135203.VWNheO0BKME7gKyq6J7SHVnks317zv1oicKWFLCJE20@z> Hi Anurag On Fri, 2019-05-03 at 07:34 +0000, Anurag Kumar Vulisha wrote: > Hi Claus, > Thanks for testing and voting for this patch. I have first tested your patches today. My test setup is a ZynqMP device, running kernel 4.14 (Xilinx version) with your patches. I then create an overlay for the devicetree with the new parameters, and unbind/bind the dwc3 driver. Next I have a host running Windows 10 and a MacBook pro with Type-C ports. For logging the communication I use a Total Phase Beagle USB3 5000 V2 analyzer. The test showed that OS-X does as expected. When BOS descriptor (bU1DevExtLat and bU2DevExtLat) returns 0, it does not enable LPM. Windows 10 on the other hand does not, and even though it received 0 as bU1DevExtLat and bU2DevExtLat it send Set Sel with U1SEL 85 us, U1PEL 0 us, U2SEL 85 us and U2PEL 0 us. Next the Windows 10 host sends the U1 Enable and the U2 enable as Set Device Feature, resulting in the system entering U2. > > > > Just today I was making another solution for this feature, using > > the > > configfs instead of the devicetree. Though thinks your solution is > > better, as it uses the U1DevExitLat and U2DevExitLat instead. I > > just > > added my solution to the bottem of the mail for reference. > > > > [1] https://www.spinics.net/lists/linux-usb/msg179393.html > > > Your approach below is also good, but you are just avoiding the > gadget dwc3 > controller from entering into U1 and U2 states by disabling the > ACCEPTU1ENA > and ACCEPTU2ENA bits in DCTL but not preventing the host from sending > the > LG0_U1 and LGO_U2 link command signaling to the gadget. The host will > keep > on trying to get the link into U1 or U2 by sending LGO_U1 or LGO_U2 > and the > gadget rejects these signals by sending LXU link command. To avoid > this extra > overhead I thought that sending zero  value in the BOS descriptor's > U1DevExitLat and U2DevExitLat fields would be the best option. Host > on seeing > U 1 & U2 Exit Latencies doesn't initiate LPM U1 and U2 commands. > > Thanks, > Anurag Kumar Vulisha Correct that it does not prevent the host from sending LG0_U1 and LG0_U2, and there is your solution better on hosts using the BOS descriptor for disabling LPM. So based on my test with Windows 10, I think we should combine the solutions. To prevent LG0_U1/LG0_U2 when possible and still being able to completely disable U1/U2. Regarding interface for controlling it. I am very novice regarding Linux kernel development, but would think the BOS descriptor control would be better from a configfs interface then devicetree as I don't see BOS descriptor as hardware specific. I am more in doubt about the forcing of U1/U2 as I did with setting hardware registers, as it control hardware registers. So will like to hear from other more experienced developers. Regards Claus