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: Use device tree to disable U1/U2 in gadget devices based on DWC3 From: Rob Weber Message-Id: <20190425201103.GA26402@coops> Date: Thu, 25 Apr 2019 13:11:03 -0700 To: Alan Stern Cc: "Claus H. Stovgaard" , "balbi@kernel.org" , "linux-usb@vger.kernel.org" , "mnarani@xilinx.com" , Michal Simek List-ID: SGkgRXZlcnlvbmUsCgpPbiBXZWQsIEFwciAyNCwgMjAxOSBhdCAwMjozMzo0OFBNIC0wNDAwLCBB bGFuIFN0ZXJuIHdyb3RlOgo+IE9uIFdlZCwgMjQgQXByIDIwMTksIENsYXVzIEguIFN0b3ZnYWFy ZCB3cm90ZToKPiAKPiA+IEhpIEJhbGJpIGFuZCBvdGhlciBVU0IgZGV2ZWxvcGVycy4KPiA+IAo+ ID4gSSBhbSBkZXZlbG9waW5nIGNhbWVyYSBkZXZpY2VzIGJhc2VkIG9uIFhpbGlueCBaeW5xTVAs IHVzaW5nIHRoZQo+ID4gZ2FkZ2V0IGZyYW1ld29yayBhbmQgdGhlIGJ1aWxkLWluIGR3YzMgY29y ZSBvZiB0aGUgWnlucU1QIGFzIFVTQjMKPiA+IGNvbnRyb2xsZXIgYW5kIHRoZSBidWlsZC1pbiBD aXJydXMgU0VSREVTIGFzIHBoeS4KPiA+IFRlc3Rpbmcgd2l0aCBhIG51bWJlciBvZiBob3N0cyBh bmQgV2luZG93cyA3LCBoYXMgc2hvd24gc3BvcmFkaWMKPiA+IHJlY29ubmVjdHMgd2hlbiBsZWF2 aW5nIFUyL1UxLCBjYXVzZWQgYnkgZmFpbGluZyBsaW5rIHRyYWluaW5nLCB3aGVyZQo+ID4gdGhl IGhvc3QgcmVzZXRzIHRoZSBidXMuIFNvbWV0aW1lIGl0IGFsc28gbWVhbnMgaXQgcmVjb25uZWN0 IHZpYQo+ID4gVVNCMi4KPiA+IAo+ID4gU28gdG8gb3ZlcmNvbWUgdGhpcywgSSB3aWxsIGxpa2Ug dG8gaGF2ZSB0aGUgb3B0aW9uIGZvciBkaXNhYmxpbmcKPiA+IFUxL1UyIG9uIHRoZSBjb3JlIHdo ZW4gd29ya2luZyB3aXRoIHRob3NlIGhvc3RzLgo+ID4gCj4gPiBDdXJyZW50bHkgSSBoYXZlIG1h ZGUgYSBoYWNrIGluIGVwMC5jIHdoZXJlIEkgcmV0dXJuIEVJTlZBTCBpbgo+ID4gZHdjM19lcDBf aGFuZGxlX3UxIGFuZCBkd2MzX2VwMF9oYW5kbGVfdTIgdG9nZXRoZXIgd2l0aCBub3Qgc2V0dGlu Zwo+ID4gRFdDM19EQ1RMX0FDQ0VQVFUxRU5BIGFuZCBEV0MzX0RDVExfQUNDRVBUVTJFTkEgaW4K PiA+IGR3YzNfZXAwX3NldF9jb25maWcKPiA+IFdpbGwgdGhvdWdoIHByZWZlciBhIHNvbHV0aW9u IHBvc3NpYmxlIHRvIHVwc3RyZWFtLCBzbyB3YXMgdGhpbmtpbmcKPiA+IGFib3V0IGFkZGluZyB0 d28gZGV2aWNldHJlZSBiaW5kaW5ncy4KPiA+IAo+ID4gKiBzbnBzLHUxX2Rpc2FibGVfYXNfZ2Fk Z2V0OiBXaGVuIHNldCB0aGUgY29yZSB3aWxsIG5vdCBlbmFibGUgVTEgaWYKPiA+IHJlcXVlc3Rl ZCBmcm9tIGhvc3QsIG5vciBpbml0aWF0ZSBVMS4KPiA+ICogc25wcyx1Ml9kaXNhYmxlX2FzX2dh ZGdldDogV2hlbiBzZXQgdGhlIGNvcmUgd2lsbCBub3QgZW5hYmxlIFUyIGlmCj4gPiByZXF1ZXN0 ZWQgZnJvbSBob3N0LCBub3IgaW5pdGlhdGUgVTIuCj4gPiAKPiA+IElmIHlvdSB0aGluayB0aGlz IG1pZ2h0IGJlIHNvbWV0aGluZyB3aGljaCBjYW4gYmUgdXBzdHJlYW1lZCBJIHdpbGwKPiA+IHBy ZXBhcmUgdGhlIGNvZGUgYW5kIHNlbmQgYSBwYXRjaCBmb3IgZGlzY3Vzc2lvbi4KPiA+IE9uIHRo ZSBvdGhlciBoYW5kLCBpZiB5b3UgdGhpbmsgdGhhdCBkaXNhYmxpbmcgVTEvVTIgdmlhIGRldmlj ZSB0cmVlCj4gPiBhcyBzdWdnZXN0ZWQgc2hvdWxkIG5vdCBiZSBhIGZlYXR1cmUgbm8gbmVlZCBm b3IgbWUgdG8gdHJ5IG1ha2luZyBpdAo+ID4gYSBmZWF0dXJlLgo+IAo+IFNwZWFraW5nIGFzIGFu IGludGVyZXN0ZWQgYnlzdGFuZGVyLCBJIHdvdWxkIGZpcnN0IHdvbmRlciB3aHkgeW91cgo+IGhh cmR3YXJlIGZhaWxzIGR1cmluZyBsaW5rIHRyYWluaW5nLiAgSWYgaXQgaXMgcHJvcGVybHkgZGVz aWduZWQsIHRoYXQKPiBzaG91bGQgbm90IGhhcHBlbi4gIFRoZSBmYWN0IHRoYXQgaXQgZG9lcyBo YXBwZW4gc3VnZ2VzdHMgeW91ciBkZXZpY2VzCj4gbWlnaHQgYWxzbyBleHBlcmllbmNlIHByb2Js ZW1zIGR1cmluZyBub3JtYWwgZGF0YSB0cmFuc3BvcnQuCgpJIHdhcyByZWNlbnRseSBkZWJ1Z2dp bmcgYSBzaW1pbGFyIHByb2JsZW0gd2hlcmUgbXkgZGV2aWNlIHdvdWxkCmltcHJvcGVybHkgdHJh bnNpdGlvbiBmcm9tIFUyIHRvIFUwLiBUaGlzIGNhdXNlZCB0aGUgY29ubmVjdGlvbiB0byByZXNl dAphbmQgdGhlIGRldmljZSB0byBiZSByZS1lbnVtZXJhdGVkIGFzIGEgVVNCMiBkZXZpY2UuIE91 ciBkZXNpZ24gdXNlcyBhbgpJbnRlbCBDaGVycnlUcmFpbCB6ODU1MCBTb0MgdGhhdCBoYXMgYW4g aW50ZXJuYWwgZHdjMyBVU0IgZGV2aWNlCmNvbnRyb2xsZXIuIEkgd29ya2VkIHdpdGggRmVsaXBl IGEgY291cGxlIG9mIHdlZWtzIGFnbyBbMV0gdG8gY29tZSB1cCB3aXRoCnRoZSBzYW1lIHdvcmth cm91bmQgeW91IG1lbnRpb25lZCBhYm92ZS4gSSBkaXNhYmxlIGRldmljZS1pbml0aWF0ZWQgVTEv VTIKaW4gZXAwX3NldF9jb25maWcgYW5kIGFsc28gcmV0dXJuIC1FSU5WQUwgd2hlbiBoYW5kbGlu ZyBTZXRGZWF0dXJlCnJlcXVlc3RzIGZyb20gdGhlIFVTQiBob3N0LiBJJ3ZlIGF0dGFjaGVkIG15 IHBhdGNoIGZvciBrZXJuZWwgNC45LjExNQpiZWxvdyBmb3IgcmVmZXJlbmNlLgoKQWx0aG91Z2gg d2UgaGF2ZSBhcHBsaWVkIHRoaXMgd29ya2Fyb3VuZCwgd2Ugc3RpbGwgaGF2ZSBub3QgaWRlbnRp ZmllZCBhCnJvb3QgY2F1c2Ugb2YgdGhlIGlzc3VlLiBJbnRlbCBoYXMgbm8ga25vd24gZXJyYXRh IHJlbGF0ZWQgdG8gdGhlIHN5bXB0b21zCndlIGFyZSBleHBlcmllbmNpbmcuIFdlJ3ZlIGRvbmUg cXVpdGUgYSBiaXQgb2YgYW5hbHlzaXMgb24gb3VyIGRlc2lnbiBhbmQKYXJlIHByZXR0eSBjb25m aWRlbnQgd2UndmUgZm9sbG93ZWQgYWxsIGRlc2lnbiBndWlkZWxpbmVzIGZvciBVU0IuCgpDaGVl cnMsClJvYiBXZWJlcgoKWzFdIGh0dHBzOi8vbWFyYy5pbmZvLz90PTE1NTM0OTkzNTYwMDAwMSZy PTEmdz0yCi0tLQpkcml2ZXJzL3VzYi9kd2MzL2VwMC5jIHwgMjYgKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0KMSBmaWxlIGNoYW5nZWQsIDE2IGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygt KQoKLS0KCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9kd2MzL2VwMC5jIGIvZHJpdmVycy91c2Iv ZHdjMy9lcDAuYwppbmRleCAyMzMxNDY5Zjk0M2QuLjc4Yjc1ZDY1YjQzNSAxMDA2NDQKLS0tIGEv ZHJpdmVycy91c2IvZHdjMy9lcDAuYworKysgYi9kcml2ZXJzL3VzYi9kd2MzL2VwMC5jCkBAIC00 MzMsMTAgKzQzMywxMyBAQCBzdGF0aWMgaW50IGR3YzNfZXAwX2hhbmRsZV9mZWF0dXJlKHN0cnVj dCBkd2MzICpkd2MsCiAgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKCiAgICAgICAgICAg IHJlZyA9IGR3YzNfcmVhZGwoZHdjLT5yZWdzLCBEV0MzX0RDVEwpOwotICAgICAgICAgICAgaWYg KHNldCkKLSAgICAgICAgICAgICAgICByZWcgfD0gRFdDM19EQ1RMX0lOSVRVMUVOQTsKLSAgICAg ICAgICAgIGVsc2UKKyAgICAgICAgICAgIGlmIChzZXQpIHsKKyAgICAgICAgICAgICAgICAvKiBy ZWcgfD0gRFdDM19EQ1RMX0lOSVRVMUVOQTsgKi8KKyAgICAgICAgICAgICAgICBkd2MzX3RyYWNl KHRyYWNlX2R3YzNfZXAwLCAiR0JYOiBTa2lwcGluZyBVMSBFbmFibGUiKTsKKyAgICAgICAgICAg ICAgICByZXR1cm4gLUVJTlZBTDsKKyAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAg ICByZWcgJj0gfkRXQzNfRENUTF9JTklUVTFFTkE7CisgICAgICAgICAgICB9CiAgICAgICAgICAg IGR3YzNfd3JpdGVsKGR3Yy0+cmVncywgRFdDM19EQ1RMLCByZWcpOwogICAgICAgICAgICBicmVh azsKCkBAIC00NDgsMTAgKzQ1MSwxMyBAQCBzdGF0aWMgaW50IGR3YzNfZXAwX2hhbmRsZV9mZWF0 dXJlKHN0cnVjdCBkd2MzICpkd2MsCiAgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKCiAg ICAgICAgICAgIHJlZyA9IGR3YzNfcmVhZGwoZHdjLT5yZWdzLCBEV0MzX0RDVEwpOwotICAgICAg ICAgICAgaWYgKHNldCkKLSAgICAgICAgICAgICAgICByZWcgfD0gRFdDM19EQ1RMX0lOSVRVMkVO QTsKLSAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGlmIChzZXQpIHsKKyAgICAgICAgICAg ICAgICAvKiByZWcgfD0gRFdDM19EQ1RMX0lOSVRVMkVOQTsgKi8KKyAgICAgICAgICAgICAgICBk d2MzX3RyYWNlKHRyYWNlX2R3YzNfZXAwLCAiR0JYOiBTa2lwcGluZyBVMiBFbmFibGUiKTsKKyAg ICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKKyAgICAgICAgICAgIH0gZWxzZSB7CiAgICAg ICAgICAgICAgICByZWcgJj0gfkRXQzNfRENUTF9JTklUVTJFTkE7CisgICAgICAgICAgICB9CiAg ICAgICAgICAgIGR3YzNfd3JpdGVsKGR3Yy0+cmVncywgRFdDM19EQ1RMLCByZWcpOwogICAgICAg ICAgICBicmVhazsKCkBAIC01NjcsNyArNTczLDcgQEAgc3RhdGljIGludCBkd2MzX2VwMF9zZXRf Y29uZmlnKHN0cnVjdCBkd2MzICpkd2MsIHN0cnVjdCB1c2JfY3RybHJlcXVlc3QgKmN0cmwpCiAg ICBlbnVtIHVzYl9kZXZpY2Vfc3RhdGUgc3RhdGUgPSBkd2MtPmdhZGdldC5zdGF0ZTsKICAgIHUz MiBjZmc7CiAgICBpbnQgcmV0OwotICAgIHUzMiByZWc7CisgICAgLyogdTMyIHJlZzsgKi8KCiAg ICBjZmcgPSBsZTE2X3RvX2NwdShjdHJsLT53VmFsdWUpOwoKQEAgLTU5NCw5ICs2MDAsOSBAQCBz dGF0aWMgaW50IGR3YzNfZXAwX3NldF9jb25maWcoc3RydWN0IGR3YzMgKmR3Yywgc3RydWN0IHVz Yl9jdHJscmVxdWVzdCAqY3RybCkKICAgICAgICAgICAgICogRW5hYmxlIHRyYW5zaXRpb24gdG8g VTEvVTIgc3RhdGUgd2hlbgogICAgICAgICAgICAgKiBub3RoaW5nIGlzIHBlbmRpbmcgZnJvbSBh cHBsaWNhdGlvbi4KICAgICAgICAgICAgICovCi0gICAgICAgICAgICByZWcgPSBkd2MzX3JlYWRs KGR3Yy0+cmVncywgRFdDM19EQ1RMKTsKLSAgICAgICAgICAgIHJlZyB8PSAoRFdDM19EQ1RMX0FD Q0VQVFUxRU5BIHwgRFdDM19EQ1RMX0FDQ0VQVFUyRU5BKTsKLSAgICAgICAgICAgIGR3YzNfd3Jp dGVsKGR3Yy0+cmVncywgRFdDM19EQ1RMLCByZWcpOworICAgICAgICAgICAgLyogcmVnID0gZHdj M19yZWFkbChkd2MtPnJlZ3MsIERXQzNfRENUTCk7ICovCisgICAgICAgICAgICAvKiByZWcgfD0g KERXQzNfRENUTF9BQ0NFUFRVMUVOQSB8IERXQzNfRENUTF9BQ0NFUFRVMkVOQSk7ICovCisgICAg ICAgICAgICAvKiBkd2MzX3dyaXRlbChkd2MtPnJlZ3MsIERXQzNfRENUTCwgcmVnKTsgKi8KICAg ICAgICB9CiAgICAgICAgYnJlYWs7Cgo= 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=-5.4 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_PASS, URIBL_BLOCKED,USER_AGENT_MUTT 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 180C5C43219 for ; Thu, 25 Apr 2019 20:11:09 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 11E7220717 for ; Thu, 25 Apr 2019 20:11:09 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gnarbox-com.20150623.gappssmtp.com header.i=@gnarbox-com.20150623.gappssmtp.com header.b="XQbRENQo" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387465AbfDYULI (ORCPT ); Thu, 25 Apr 2019 16:11:08 -0400 Received: from mail-pl1-f194.google.com ([209.85.214.194]:46589 "EHLO mail-pl1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726844AbfDYULH (ORCPT ); Thu, 25 Apr 2019 16:11:07 -0400 Received: by mail-pl1-f194.google.com with SMTP id o7so315655pll.13 for ; Thu, 25 Apr 2019 13:11:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gnarbox-com.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=laXzxFGdMgxLj7WUYtZBNsT/irBpR5fkL48ELS/EH+k=; b=XQbRENQossYJbSvMg2c0HxMjqjojCCcNdT7gFwcHHbN3tAyes8is9VfIP8ougQV+Jm FbeLqSJOJ0JxzvKyCVSKNAfu+fa/GOLA7qqpIp4nPuDUsU69w4opydPD7aPDBxKOM/3D o06MogrD5Deyhh0sjrnJucNoutQl7rNdJcoCuxyuJAesdQLq1VfMpl9XRucFNmK7LtVQ gtbcUKn/9F5Glx+YZRMdmgDyGymcjlwvZyp5wzk8CcT4SLj0FvkqPAUbXt+s6ANtlU5o pC9HyJhpwRbZ83WroFPi8oabl1CMUYTRWqS5TnD4y5HKcOM2xao0MN7riR8/jbAm7Lkp nzZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=laXzxFGdMgxLj7WUYtZBNsT/irBpR5fkL48ELS/EH+k=; b=GX4YwluQlL8WrG/+MkiQe28EAUPQnECFq6n2XcjbBiQdhmwGLZHk4bWet3zyg4Q2Is kc2QM+/GehcEqWMOc+gdgdrJrI6TnJmJiDhNPDS+x0KQcc6CMfICpF8R759YWxJdJoN/ MGAdT2rLfbKheu9gwNv3rYiQLo6cldjmp4ikwZZXlzK1ri+o/xFo+lNQPvuNYZBVQ7N5 j4f2PHR3ZILQsFtsQTh7qdIbnIvbPLtco+3vgJDEmvZ6/1VU/1bCaTZVQ0mfVt5FCfwx ad9N/cQHcm1QycxL981+0cyXOUBGESLAtu93XDT1spLTtjvJRoJZ33pacmzI27kau5sn CGeg== X-Gm-Message-State: APjAAAUaCtI7RSzk7iuFpLnTBGMPb7zp9xi77bF0GF2AxCa1skXX+XR6 uokEWDEuL747BoLVRyROCsTD5Q== X-Google-Smtp-Source: APXvYqxdAwVLBXFIxoVwXOjgNbrHX/yXKHSOwwXnt9hs5JirWtLKEUWuOkWZiLQSlV9i59OHx3P6Ag== X-Received: by 2002:a17:902:2b87:: with SMTP id l7mr41700164plb.130.1556223066706; Thu, 25 Apr 2019 13:11:06 -0700 (PDT) Received: from coops ([47.180.176.91]) by smtp.gmail.com with ESMTPSA id t12sm44838228pfl.59.2019.04.25.13.11.05 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 25 Apr 2019 13:11:05 -0700 (PDT) Date: Thu, 25 Apr 2019 13:11:03 -0700 From: Rob Weber To: Alan Stern Cc: "Claus H. Stovgaard" , "balbi@kernel.org" , "linux-usb@vger.kernel.org" , "mnarani@xilinx.com" , Michal Simek Subject: Re: Use device tree to disable U1/U2 in gadget devices based on DWC3 Message-ID: <20190425201103.GA26402@coops> References: MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.9.4 (2018-02-28) Sender: linux-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org Message-ID: <20190425201103.xa0UURF4z2qQmFATCEQSKFsxcxDGy8IOpG5yF6cS4p0@z> Hi Everyone, On Wed, Apr 24, 2019 at 02:33:48PM -0400, Alan Stern wrote: > On Wed, 24 Apr 2019, Claus H. Stovgaard wrote: > > > Hi Balbi and other USB developers. > > > > I am developing camera devices based on Xilinx ZynqMP, using the > > gadget framework and the build-in dwc3 core of the ZynqMP as USB3 > > controller and the build-in Cirrus SERDES as phy. > > Testing with a number of hosts and Windows 7, has shown sporadic > > reconnects when leaving U2/U1, caused by failing link training, where > > the host resets the bus. Sometime it also means it reconnect via > > USB2. > > > > So to overcome this, I will like to have the option for disabling > > U1/U2 on the core when working with those hosts. > > > > Currently I have made a hack in ep0.c where I return EINVAL in > > dwc3_ep0_handle_u1 and dwc3_ep0_handle_u2 together with not setting > > DWC3_DCTL_ACCEPTU1ENA and DWC3_DCTL_ACCEPTU2ENA in > > dwc3_ep0_set_config > > Will though prefer a solution possible to upstream, so was thinking > > about adding two devicetree bindings. > > > > * snps,u1_disable_as_gadget: When set the core will not enable U1 if > > requested from host, nor initiate U1. > > * snps,u2_disable_as_gadget: When set the core will not enable U2 if > > requested from host, nor initiate U2. > > > > If you think this might be something which can be upstreamed I will > > prepare the code and send a patch for discussion. > > On the other hand, if you think that disabling U1/U2 via device tree > > as suggested should not be a feature no need for me to try making it > > a feature. > > Speaking as an interested bystander, I would first wonder why your > hardware fails during link training. If it is properly designed, that > should not happen. The fact that it does happen suggests your devices > might also experience problems during normal data transport. I was recently debugging a similar problem where my device would improperly transition from U2 to U0. This caused the connection to reset and the device to be re-enumerated as a USB2 device. Our design uses an Intel CherryTrail z8550 SoC that has an internal dwc3 USB device controller. I worked with Felipe a couple of weeks ago [1] to come up with the same workaround you mentioned above. I disable device-initiated U1/U2 in ep0_set_config and also return -EINVAL when handling SetFeature requests from the USB host. I've attached my patch for kernel 4.9.115 below for reference. Although we have applied this workaround, we still have not identified a root cause of the issue. Intel has no known errata related to the symptoms we are experiencing. We've done quite a bit of analysis on our design and are pretty confident we've followed all design guidelines for USB. Cheers, Rob Weber [1] https://marc.info/?t=155349935600001&r=1&w=2 --- drivers/usb/dwc3/ep0.c | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/drivers/usb/dwc3/ep0.c b/drivers/usb/dwc3/ep0.c index 2331469f943d..78b75d65b435 100644 --- a/drivers/usb/dwc3/ep0.c +++ b/drivers/usb/dwc3/ep0.c @@ -433,10 +433,13 @@ static int dwc3_ep0_handle_feature(struct dwc3 *dwc, return -EINVAL; reg = dwc3_readl(dwc->regs, DWC3_DCTL); - if (set) - reg |= DWC3_DCTL_INITU1ENA; - else + if (set) { + /* reg |= DWC3_DCTL_INITU1ENA; */ + dwc3_trace(trace_dwc3_ep0, "GBX: Skipping U1 Enable"); + return -EINVAL; + } else { reg &= ~DWC3_DCTL_INITU1ENA; + } dwc3_writel(dwc->regs, DWC3_DCTL, reg); break; @@ -448,10 +451,13 @@ static int dwc3_ep0_handle_feature(struct dwc3 *dwc, return -EINVAL; reg = dwc3_readl(dwc->regs, DWC3_DCTL); - if (set) - reg |= DWC3_DCTL_INITU2ENA; - else + if (set) { + /* reg |= DWC3_DCTL_INITU2ENA; */ + dwc3_trace(trace_dwc3_ep0, "GBX: Skipping U2 Enable"); + return -EINVAL; + } else { reg &= ~DWC3_DCTL_INITU2ENA; + } dwc3_writel(dwc->regs, DWC3_DCTL, reg); break; @@ -567,7 +573,7 @@ static int dwc3_ep0_set_config(struct dwc3 *dwc, struct usb_ctrlrequest *ctrl) enum usb_device_state state = dwc->gadget.state; u32 cfg; int ret; - u32 reg; + /* u32 reg; */ cfg = le16_to_cpu(ctrl->wValue); @@ -594,9 +600,9 @@ static int dwc3_ep0_set_config(struct dwc3 *dwc, struct usb_ctrlrequest *ctrl) * Enable transition to U1/U2 state when * nothing is pending from application. */ - reg = dwc3_readl(dwc->regs, DWC3_DCTL); - reg |= (DWC3_DCTL_ACCEPTU1ENA | DWC3_DCTL_ACCEPTU2ENA); - dwc3_writel(dwc->regs, DWC3_DCTL, reg); + /* reg = dwc3_readl(dwc->regs, DWC3_DCTL); */ + /* reg |= (DWC3_DCTL_ACCEPTU1ENA | DWC3_DCTL_ACCEPTU2ENA); */ + /* dwc3_writel(dwc->regs, DWC3_DCTL, reg); */ } break; --