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: usb HC busted? From: Alan Stern Message-Id: Date: Fri, 20 Jul 2018 10:09:25 -0400 (EDT) To: Mathias Nyman Cc: Sudip Mukherjee , Greg KH , Andy Shevchenko , Andy Shevchenko , Mathias Nyman , linux-usb@vger.kernel.org, lukaszx.szulc@intel.com, Christoph Hellwig , Marek Szyprowski , iommu@lists.linux-foundation.org List-ID: T24gRnJpLCAyMCBKdWwgMjAxOCwgTWF0aGlhcyBOeW1hbiB3cm90ZToKCj4gPj4gQnV0IHdlIG5l ZWQgdG8gZml4IHRoaXMgcHJvcGVybHkgYXMgd2VsbC4KPiA+PiB4aGNpIG5lZWRzIHRvIGJlIG1v cmUgaW4gc3luYyB3aXRoIHVzYiBjb3JlIGluIHVzYl9zZXRfaW50ZXJmYWNlKCksIGN1cnJlbnRs eSB4aGNpCj4gPj4gaGFzIHRoZSBhbHRzc2V0dGluZyB1cCBhbmQgcnVubmluZyB3aGVuIHVzYiBj b3JlIGhhc24ndCBldmVudCBzdGFydGVkIGZsdXNoaW5nIGVuZHBvaW50cy4KPiA+IAo+ID4gQWJz b2x1dGVseS4gIFRoZSBjb3JlIHRyaWVzIHRvIGJlIGNvbXBhdGlibGUgd2l0aCBob3N0IGNvbnRy b2xsZXIKPiA+IGRyaXZlcnMgdGhhdCBlaXRoZXIgYWxsb2NhdGUgYmFuZHdpZHRoIGFzIGl0IGlz IHJlcXVlc3RlZCBvciBlbHNlCj4gPiBhbGxvY2F0ZSBiYW5kd2lkdGggYWxsIGF0IG9uY2Ugd2hl biBhbiBhbHRzZXR0aW5nIGlzIGluc3RhbGxlZC4KPiA+IAo+ID4geGhjaS1oY2QgZmFsbHMgaW50 byB0aGUgc2Vjb25kIGNhdGVnb3J5LiAgSG93ZXZlciwgdGhpcyBhcHByb2FjaAo+ID4gcmVxdWly ZXMgdGhlIGJhbmR3aWR0aCB2ZXJpZmljYXRpb24gZm9yIHRoZSBuZXcgYWx0c2V0dGluZyB0byBi ZQo+ID4gcGVyZm9ybWVkIGJlZm9yZSB0aGUgb2xkIGFsdHNldHRpbmcgaGFzIGJlZW4gZGlzYWJs ZWQsIGFuZCB0aGUgeEhDSQo+ID4gaGFyZHdhcmUgY2FuJ3QgZG8gdGhpcy4KPiA+IAo+ID4gV2Ug bWF5IG5lZWQgdG8gY2hhbmdlIHRoZSBjb3JlIHNvIHRoYXQgdGhlIG9sZCBlbmRwb2ludHMgYXJl IGRpc2FibGVkCj4gPiBiZWZvcmUgdGhlIGJhbmR3aWR0aCBjaGVjayBpcyBkb25lLCBpbnN0ZWFk IG9mIGFmdGVyLiAgT2YgY291cnNlLCB0aGlzCj4gPiBsZWFkcyB0byBhbiBhd2t3YXJkIHNpdHVh dGlvbiBpZiB0aGUgY2hlY2sgZmFpbHMgLS0gd2UnZCBwcm9iYWJseSBoYXZlCj4gPiB0byBnbyBi YWNrIGFuZCByZS1pbnN0YWxsIHRoZSBvbGQgYWx0c2V0dGluZy4KPiAKPiBUaGF0IHdvdWxkIGhl bHAgeGhjaSBhIGxvdC4KPiAKPiBJZiB3ZSB3YW50IHRvIGF2b2lkIHRoZSBhd2t3YXJkIGFsdHNl dHRpbmcgcmUtaW5zdGFsbCBhZnRlciBiYW5kd2lkdGggZmFpbHVyZQo+IHRoZW4gYWRkaW5nIGEg ZXh0cmEgZW5kcG9pbnQgZmx1c2ggYmVmb3JlIGNoZWNraW5nIHRoZSBiYW5kd2lkdGggd291bGQg YWxyZWFkeSBoZWxwIGEgbG90Lgo+IAo+IFRoZSBlbmRwb2ludCBkaXNhYmxpbmcgY2FuIHRoZW4g YmUgcmVtYWluIGFmdGVyIGJhbmR3aWR0aCBjaGVja2luZy4KPiBEb2VzIHRoYXQgd29yayBmb3Ig b3RoZXIgaG9zdCBjb250cm9sbGVycz8KCkFzIGZhciBhcyBJIGtub3csIHRoZSBvdGhlciBob3N0 IGNvbnRyb2xsZXIgZHJpdmVycyBkb24ndCByZWFsbHkgY2FyZSAKaG93IHRoaXMgaXMgZG9uZS4g IHhIQ0kgaXMgdGhlIG9ubHkgdGVjaG5vbG9neSB3aGVyZSB0aGUgaGFyZHdhcmUgaGFzIAp0byB2 ZXJpZnkgdGhlIGJhbmR3aWR0aCByZXF1aXJlbWVudHMuICAoTWF5YmUgc29tZSBvdGhlciBTdXBl clNwZWVkIApjb250cm9sbGVyIGRlc2lnbiBhbHNvIGNhcmVzLCBidXQgaWYgc28gdGhlbiB0aGlz IGNoYW5nZSBpcyB1bmxpa2VseSB0byAKaHVydC4pCgpBbGFuIFN0ZXJuCi0tLQpUbyB1bnN1YnNj cmliZSBmcm9tIHRoaXMgbGlzdDogc2VuZCB0aGUgbGluZSAidW5zdWJzY3JpYmUgbGludXgtdXNi IiBpbgp0aGUgYm9keSBvZiBhIG1lc3NhZ2UgdG8gbWFqb3Jkb21vQHZnZXIua2VybmVsLm9yZwpN b3JlIG1ham9yZG9tbyBpbmZvIGF0ICBodHRwOi8vdmdlci5rZXJuZWwub3JnL21ham9yZG9tby1p bmZvLmh0bWwK From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alan Stern Subject: Re: usb HC busted? Date: Fri, 20 Jul 2018 10:09:25 -0400 (EDT) Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Errors-To: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org To: Mathias Nyman Cc: Mathias Nyman , Greg KH , linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org, lukaszx.szulc-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org, Andy Shevchenko , Andy Shevchenko , Christoph Hellwig , Sudip Mukherjee List-Id: iommu@lists.linux-foundation.org On Fri, 20 Jul 2018, Mathias Nyman wrote: > >> But we need to fix this properly as well. > >> xhci needs to be more in sync with usb core in usb_set_interface(), currently xhci > >> has the altssetting up and running when usb core hasn't event started flushing endpoints. > > > > Absolutely. The core tries to be compatible with host controller > > drivers that either allocate bandwidth as it is requested or else > > allocate bandwidth all at once when an altsetting is installed. > > > > xhci-hcd falls into the second category. However, this approach > > requires the bandwidth verification for the new altsetting to be > > performed before the old altsetting has been disabled, and the xHCI > > hardware can't do this. > > > > We may need to change the core so that the old endpoints are disabled > > before the bandwidth check is done, instead of after. Of course, this > > leads to an awkward situation if the check fails -- we'd probably have > > to go back and re-install the old altsetting. > > That would help xhci a lot. > > If we want to avoid the awkward altsetting re-install after bandwidth failure > then adding a extra endpoint flush before checking the bandwidth would already help a lot. > > The endpoint disabling can then be remain after bandwidth checking. > Does that work for other host controllers? As far as I know, the other host controller drivers don't really care how this is done. xHCI is the only technology where the hardware has to verify the bandwidth requirements. (Maybe some other SuperSpeed controller design also cares, but if so then this change is unlikely to hurt.) Alan Stern