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: [PATCHv2] usb/gadget/uvc-configs Fix host unable to negotiate framesizes other than first From: Laurent Pinchart Message-Id: <1879771.Ylnepe2jmV@avalon> Date: Wed, 21 Mar 2018 11:38:23 +0200 To: Joel Pepper Cc: Greg Kroah-Hartman , linux-usb@vger.kernel.org, Felipe Balbi , Paul Elder List-ID: SGkgSm9lbCwKCk9uIFR1ZXNkYXksIDIwIE1hcmNoIDIwMTggMTI6MzA6MDAgRUVUIEpvZWwgUGVw cGVyIHdyb3RlOgo+IE9uIDIwLjAzLjIwMTggMTA6MDIsIExhdXJlbnQgUGluY2hhcnQgd3JvdGU6 Cj4gPiBIaSBKb2VsLAo+ID4gCj4gPiAoQ0MnaW5nIFBhdWwgRWxkZXIgd2hvIGlzIHdvcmtpbmcg b24gdGhlIFVWQyBnYWRnZXQgZHJpdmVyKQo+ID4gCj4gPiBUaGFuayB5b3UgZm9yIHRoZSBwYXRj aC4KPiA+IAo+ID4gT24gTW9uZGF5LCAxOSBNYXJjaCAyMDE4IDIxOjM2OjQxIEVFVCBKb2VsIFBl cHBlciB3cm90ZToKPiA+PiBBZGQgYkZyYW1lSW5kZXggYXMgYSBVVkNHX0ZSQU1FX0FUVFIgZm9y IGVhY2ggZnJhbWUgc2l6ZS4KPiA+PiBCZWZvcmUgYWxsICJiRnJhbWVpbmRleCIgYXR0cmlidXRl cyB3ZXJlIHNldCB0byAiMSIgd2l0aCBubyB3YXkgdG8KPiA+PiBjb25maWd1cmUgdGhlIGdhZGdl dCBvdGhlcndpc2UuIFRoaXMgcmVzdWx0ZWQgaW4gdGhlIGhvc3QgYWx3YXlzCj4gPj4gbmVnb3Rp YXRpbmcgZm9yIGJGcmFtZUluZGV4IDEgKGkuZS4gdGhlIGZpcnN0IGZyYW1lc2l6ZSBvZiB0aGUg Z2FkZ2V0KS4KPiA+PiBBZnRlciB0aGUgbmVnb3RpYXRpb24gdGhlIGhvc3QgZHJpdmVyIHdpbGwg c2V0IHRoZSB1c2VyIG9yIGFwcGxpY2F0aW9uCj4gPj4gc2VsZWN0ZWQgZnJhbWVzaXplLCB3aGls ZSB0aGUgZ2FkZ2V0IGlzIGFjdHVhbGx5IHNldCB0byB0aGUgZmlyc3QKPiA+PiBmcmFtZXNpemUu Cj4gPj4gCj4gPj4gTm90ZSB0aGF0IHRoaXMgc3RpbGwgcmVxdWlyZXMgdGhlIGdhZGdldCB0byBi ZSBjb25maWd1cmVkIHdpdGggdW5pcXVlCj4gPj4gYkZyYW1lSW5kZXhlcyBmb3IgZWFjaCBmcmFt ZVNpemUgb2YgZWFjaCBmb3JtYXQgdGhyb3VnaCBjb25maWdmcy4gQW4KPiA+PiBhbHRlcm5hdGl2 ZSBtaWdodCBiZSB0byBhdXRvbWF0aWNhbGx5IGFzc2lnbiBhc2NlbmRpbmcgaW5kaWNlcyB3aGVu IHRoZQo+ID4+IGZvcm1hdCBpcyBsaW5rZWQgaW50byB0aGUgc3RyZWFtaW5nIGhlYWRlciwgYnV0 IHRoZSB1c2VyIHNwYWNlIGdhZGdldAo+ID4+IHdvdWxkIG5lZWQgYSB3YXkgdG8gY2hlY2sgb3Ig cHJlZGljdCB0aGUgaW5kaWNlcyBzbyB0aGF0IGl0IGNhbiBwcm9wZXJseQo+ID4+IGludGVycHJl dCB0byBQUk9CRS9DT01NSVQgQ09OVFJPTCByZXF1ZXN0cwo+ID4gCj4gPiBJdCB3b3VsZCBpbmRl ZWQgYmUgbmljZSBpZiB0aGUgaW5kaWNlcyBjb3VsZCBiZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRl ZCwKPiA+IHRvIGF2b2lkIGdpdmluZyB1c2Vyc3BhY2UgYW5vdGhlciBwb3NzaWJpbGl0eSB0byBj cmVhdGUgaW52YWxpZAo+ID4gZGVzY3JpcHRvcnMuIEFzIHlvdSd2ZSBjb3JyZWN0bHkgbm90ZWQs IHRoYXQgd291bGQgcmVxdWlyZSBhIHdheSBmb3IgdGhlCj4gPiB1c2Vyc3BhY2UgaGVscGVyIGFw cGxpY2F0aW9uIHRvIGNvb3JkaW5hdGUgd2l0aCB0aGUgVVZDIGdhZGdldCBkcml2ZXIuCj4gPiBX b3VsZCBpdCBiZSBkaWZmaWN1bHQgdG8gZG8gc28gYnkgZGVmaW5pbmcgdGhlIGJGcmFtZUluZGV4 IGF0dHJpYnV0ZSBhcwo+ID4gcmVhZC1vbmx5ID8gVGhlcmUncyB0aGUgYWRkaXRpb25hbCBpc3N1 ZSBvZiBmaW5kaW5nIGEgcGxhY2UgdG8gc3RvcmUgdGhlCj4gPiBpbmRleCBjb3VudGVyIGxvY2Fs bHkgdG8gdGhlIGZvcm1hdCwgSSdtIG5vdCBzdXJlIGhvdyB0aGF0J3MgZG9uZSB3aXRoIHRoZQo+ ID4gY29uZmlnZnMgQVBJLCBidXQgaWYgaXQncyBub3QgdG9vIGRpZmZpY3VsdCBJIHRoaW5rIGl0 IHdvdWxkIGJlIGEgZ29vZAo+ID4gb3B0aW9uLgo+IAo+IFNldHRpbmcgYkZyYW1lSW5kZXggdG8g YmUgcmVhZC1vbmx5IHdpbGwgc3VmZmljZSBpbiBhbGxvd2luZyB0aGUKPiB1c2Vyc3BhY2UgZ2Fk Z2V0IHRvIGNvb3JkaW5hdGUgd2l0aCB0aGUgZHJpdmVyIGF0IHRoZSAoc2xpZ2h0KSBleHBlbnNl IG9mCj4gdGhlIHVzZXJzcGFjZSBnYWRnZXQgbm90IGJlaW5nIGFibGUgdG8gZGljdGF0ZSBhbiBv cmRlciB3aGljaCBpcwo+IHNlbWFudGljYWxseSBtZWFuaW5nZnVsIHRvIGl0Lgo+IAo+IFRoZXJl IGFyZSB0d28gYXBwcm9hY2hlcyBJIHNlZSB0b3dhcmRzIGFzc2lnbmluZyBpbmRpY2VzIGF1dG9t YXRpY2FsbHk6Cj4gMSkgQXNzaWduIGEgbmV3IHVuaXF1ZSBpbmRleCBpbiAidXZjZ19mcmFtZV9t YWtlIiAoaS5lLiBjb25maWcgaXRlbQo+IGNyZWF0aW9uKQo+IDIpIEFzc2lnbiBpbmRpY2VzIHdo ZW4gZXhhY3Qgc2V0IG9mIGZyYW1lIGRlc2NyaXB0b3JzIGlzIGZpbmFsaXplZCAoaS5lLgo+IGxp bmtpbmcgaW50byB0aGUgc3RyZWFtaW5nIGhlYWRlcikKPiAKPiBBcyBmb3IgMSk6Cj4gSSB0aGlu ayB0aGlzIGlzIHRoZSBhcHByb2FjaCB5b3UgYXJlIHJlZmVycmluZyB0byB3aXRoIHJlZ2FyZHMg dG8KPiBzdG9yaW5nIHRoZSBpbmRleCBjb3VudGVyIGluIHRoZSBmb3JtYXQuIFRoZXJlIGFscmVh ZHkgaXMgYSAnbnVtX2ZyYW1lcycKPiB1bnNpZ25lZCBpbnQgaW4gdGhlIHV2Y2dfZm9ybWF0IHN0 cnVjdCwgd2hpY2ggY291bGQgYmUgdXNlZCBhcyBpbmRleCwKPiBob3dldmVyIHRoaXMgYXBwcm9h Y2ggZG9lcyBub3QgaGFuZGxlIGRlbGV0aW5nIGZyYW1lIGRlc2NyaXB0b3JzIHdlbGwsCj4gYmVj YXVzZSBudW1fZnJhbWVzIGlzIGRlY3JlbWVudGVkIHRoZW4uIFVubGVzcyBmcmFtZXMgYXJlIGFs d2F5cyBkZWxldGVkIGluCj4gcmV2ZXJzZSBvcmRlciBvZiBjcmVhdGlvbiB0aGlzIHdpbGwgcHJv ZHVjZSBpbmRleCBjb2xsaXNpb25zLiBJZiB3ZSBpbnN0ZWFkCj4gdXNlIGEgbmV3IG1vbm90b25v dXNseSBpbmNyZW1lbnRpbmcgY291bnRlciwgZGVsZXRpbmcgZnJhbWVzIHdpbGwgcHJvZHVjZQo+ ICJob2xlcyIgaW4gdGhlIGluZGljZXMgKEkgdGhpbmsgVVZDIGRvZXMgYWxsb3cgZm9yIHRoYXQg YnV0IGl0IG1pZ2h0IHRyaXAKPiB1cCBob3N0IGRyaXZlcnMgbm90IGV4cGVjdGluZyB0aGF0KS4g VGhlIGNvdW50ZXIgd291bGQgYWxzbyBvdmVyZmxvdyBhZnRlcgo+IGNyZWF0aW5nIDI1NSBmcmFt ZXMgZXZlbiBpZiB0aGUgZmluYWwgbnVtYmVyIGlzIG11Y2ggbG93ZXIuCj4gCj4gCj4gQXMgZm9y IDIpOgo+IEkgcGVyc29uYWxseSBwcmVmZXIgdGhpcyBhcHByb2FjaCBhcyBpdCBhdm9pZHMgdGhl IHByb2JsZW1zIG9mIDEpLiBJdAo+IGRlcGVuZHMgb24gaWRlbnRpZnlpbmcgYSBwb2ludCBpbiB0 aW1lIHdoZW4gdGhlIHNldCBvZiBmcmFtZSBkZXNjcmlwdG9ycwo+IGNhbm5vdCBjaGFuZ2UgYW55 bW9yZSBJIHRoaW5rIHRoaXMgaXMgZ2l2ZW4gd2hlbiB0aGUgZm9ybWF0IGlzIGxpbmtlZCBpbnRv Cj4gdGhlIHN0cmVhbWluZyBoZWFkZXIuIEl0IHNob3VsZCB0aGVuIHN1ZmZpY2UgdG8gaXRlcmF0 ZSBvZiB0aGUgY29udGFpbmVkCj4gZnJhbWVzIGFuZCBhc3NpZ24gYXNjZW5kaW5nIGluZGljZXMu IEEgc21hbGwgcHJvYmxlbSBob3dldmVyIGlzIHRoYXQgdGhlCj4gYXR0cmlidXRlIHdpbGwgaGF2 ZSBubyBtZWFuaW5nZnVsIHZhbHVlIHRvIGJlIHJlYWQgYmVmb3JlIHRoZSBmb3JtYXQgaXMKPiBs aW5rZWQuIFRoaXMgZmFjdCB3aWxsIG5lZWQgdG8gYmUgY29tbXVuaWNhdGVkIGluIHRoZSBkb2N1 bWVudGF0aW9uIGFuZAo+IHBvdGVudGlhbGx5IHRocm91Z2ggcmV0dXJuaW5nIEVCVVNZIG9uIHBy ZW1hdHVyZSByZWFkIGF0dGVtcHRzLgo+IAo+IEknbGwgcHJlcGFyZSBhIHBhdGNoIGltcGxlbWVu dGluZyAyKSwgYnV0IGluIHRoZSBtZWFudGltZSBJJ20gZ3JhdGVmdWwKPiBmb3IgbW9yZSBpbnB1 dCwgYXMgdGhlcmUgaXMgbm90IG5lY2Vzc2FyaWx5IGEgc2luZ2xlIGJlc3QgYXBwcm9hY2ggdG8g YmUKPiB0YWtlbiBoZXJlLgoKSSBsaWtlIHRoZSBzZWNvbmQgYXBwcm9hY2ggZm9yIHRoZSByZWFz b25zIHlvdSd2ZSBkZXNjcmliZWQgYWJvdmUuCgpSZXR1cm5pbmcgLUVCVVNZIG1pZ2h0IG5vdCBl dmVuIGJlIG5lY2Vzc2FyeSwgYXMgYmVmb3JlIHRoZSBnYWRnZXQgaXMgZnVsbHkgCnNldHVwIHRo ZXJlIHdpbGwgYmUgbm8gVjRMMiBkZXZpY2UgcmVnaXN0ZXJlZCBhbnl3YXksIGFuZCB0aGUgdXNl cnNwYWNlIGhlbHBlciAKYXBwbGljYXRpb24gd2lsbCB0aHVzIG5vdCBiZSBhYmxlIHRvIHByb2Nl ZWQuIEl0IGhvd2V2ZXIgc2VlbXMgYSBnb29kIGlkZWEgdG8gCmxldCB1c2Vyc3BhY2Uga25vdyB0 aGF0IHRoZSBhdHRyaWJ1dGUgaXNuJ3QgcmVhZHkgeWV0LCBzbyBJIGFncmVlIHdpdGggeW91ciAK cHJvcG9zYWwuCgo+ID4+IHYyOiBBZGQgdGhlIG5ldyBhdHRyaWJ1dGUgdG8gYm90aCBNSlBFRyBh bmQgdW5jb21wcmVzc2VkZnJhbWUgZGVzY3JpcHRvcwo+ID4+IGluIERvY3VtZW50YXRpb24vQUJJ LCB3aXRoIG5vdGUgdGhhdCBpdCB3YXMgYWRkZWQgb25seSBpbiBhIGxhdGVyCj4gPj4ga2VybmVs IHZlcnNpb24KPiA+PiAKPiA+PiBTaWduZWQtb2ZmLWJ5OiBKb2VsIFBlcHBlciA8am9lbC5wZXBw ZXJAcnd0aC1hYWNoZW4uZGU+Cj4gPj4gLS0tCj4gPj4gCj4gPj4gIERvY3VtZW50YXRpb24vQUJJ L3Rlc3RpbmcvY29uZmlnZnMtdXNiLWdhZGdldC11dmMgfCAxNyArKysrKysrKysrKysrKysrKwo+ ID4+ICBkcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vdXZjX2NvbmZpZ2ZzLmMgICAgICAgIHwg IDMgKysrCj4gPj4gIDIgZmlsZXMgY2hhbmdlZCwgMjAgaW5zZXJ0aW9ucygrKQo+ID4+IAo+ID4+ IGRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL2NvbmZpZ2ZzLXVzYi1nYWRn ZXQtdXZjCj4gPj4gYi9Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL2NvbmZpZ2ZzLXVzYi1nYWRn ZXQtdXZjIGluZGV4Cj4gPj4gMWJhMGQwZi4uZDQzNWNmNwo+ID4+IDEwMDY0NAo+ID4+IC0tLSBh L0RvY3VtZW50YXRpb24vQUJJL3Rlc3RpbmcvY29uZmlnZnMtdXNiLWdhZGdldC11dmMKPiA+PiAr KysgYi9Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL2NvbmZpZ2ZzLXVzYi1nYWRnZXQtdXZjCj4g Pj4gQEAgLTE5NCw2ICsxOTQsMTQgQEAgRGVzY3JpcHRpb246CVNwZWNpZmljIE1KUEVHIGZyYW1l IGRlc2NyaXB0b3JzCj4gPj4gCj4gPj4gIAkJYm1DYXBhYmlsaXRpZXMJCS0gc3RpbGwgaW1hZ2Ug c3VwcG9ydCwgZml4ZWQgZnJhbWUtcmF0ZQo+ID4+ICAJCQo+ID4+ICAJCQkJCXN1cHBvcnQKPiA+ PiAKPiA+PiArRGF0ZToJCU1hciAyMDE4Cj4gPj4gK0tlcm5lbFZlcnNpb246CTQuMTYKPiA+PiAr Cj4gPj4gKwkJYkZyYW1lSW5kZXgJCS0gdW5pcXVlIGlkIGZvciB0aGlzIGZyYW1lZGVzY3JpcHRv cjsKPiA+PiArCQkJCQlpZiB1c2luZyBtdWx0aXBsZSBmcmFtZWRlc2NyaXB0b3JzIGZvcgo+ID4+ ICsJCQkJCXNhbWUgZm9ybWF0LCB1c2VyIG5lZWRzIHRvIHNldCBkaXN0aW5jdAo+ID4+ICsJCQkJ CXZhbHVlIGZvciBlYWNoIGZyYW1lIGRlc2NyaXB0b3IKPiA+PiArCj4gPj4gCj4gPj4gIFdoYXQ6 CQkvY29uZmlnL3VzYi1nYWRnZXQvZ2FkZ2V0L2Z1bmN0aW9ucy91dmMubmFtZS9zdHJlYW1pbmcv Cj4gPiAKPiA+IHVuY29tcHJlc3NlZAo+ID4gCj4gPj4gIERhdGU6CQlEZWMgMjAxNAo+ID4+ICBL ZXJuZWxWZXJzaW9uOgk0LjAKPiA+PiAKPiA+PiBAQCAtMjQxLDYgKzI0OSwxNSBAQCBEZXNjcmlw dGlvbjoJU3BlY2lmaWMgdW5jb21wcmVzc2VkIGZyYW1lIApkZXNjcmlwdG9ycwo+ID4+IAo+ID4+ ICAJCWJtQ2FwYWJpbGl0aWVzCQktIHN0aWxsIGltYWdlIHN1cHBvcnQsIGZpeGVkIGZyYW1lLXJh dGUKPiA+PiAgCQkKPiA+PiAgCQkJCQlzdXBwb3J0Cj4gPj4gCj4gPj4gK0RhdGU6ICAgICAgICAg ICBNYXIgMjAxOAo+ID4+ICtLZXJuZWxWZXJzaW9uOiAgNC4xNgo+ID4+ICsKPiA+PiArICAgICAg ICAgICAgICAgIGJGcmFtZUluZGV4ICAgICAgICAgICAgIC0gdW5pcXVlIGlkIGZvciB0aGlzCj4g Pj4gZnJhbWVkZXNjcmlwdG9yOyArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlmIHVzaW5nCj4gPj4gbXVsdGlwbGUKPiA+PiBmcmFtZWRlc2NyaXB0b3JzIGZvciArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhbWUKPiA+PiBmb3JtYXQsCj4g Pj4gdXNlciBuZWVkcyB0byBzZXQgZGlzdGluY3QgKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB2YWx1ZQo+ID4+IGZvciBlYWNoIGZyYW1lIGRlc2NyaXB0b3IgKwo+ID4+ ICsKPiA+PiAKPiA+PiAgV2hhdDoJCS9jb25maWcvdXNiLWdhZGdldC9nYWRnZXQvZnVuY3Rpb25z L3V2Yy5uYW1lL3N0cmVhbWluZy9oZWFkZXIKPiA+PiAgRGF0ZToJCURlYyAyMDE0Cj4gPj4gIEtl cm5lbFZlcnNpb246CTQuMAo+ID4+IAo+ID4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9nYWRn ZXQvZnVuY3Rpb24vdXZjX2NvbmZpZ2ZzLmMKPiA+PiBiL2RyaXZlcnMvdXNiL2dhZGdldC9mdW5j dGlvbi91dmNfY29uZmlnZnMuYyBpbmRleCBjOWI4Y2M0YS4uNTk2NmQ2NQo+ID4+IDEwMDY0NAo+ ID4+IC0tLSBhL2RyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi91dmNfY29uZmlnZnMuYwo+ID4+ ICsrKyBiL2RyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi91dmNfY29uZmlnZnMuYwo+ID4+IEBA IC05OTIsNiArOTkyLDggQEAgVVZDX0FUVFIodXZjZ19mcmFtZV8sIGNuYW1lLCBhbmFtZSk7Cj4g Pj4gCj4gPj4gIFVWQ0dfRlJBTUVfQVRUUihibV9jYXBhYmlsaXRpZXMsIGJtQ2FwYWJpbGl0aWVz LCBub29wX2NvbnZlcnNpb24sCj4gPj4gIAo+ID4+ICAJCW5vb3BfY29udmVyc2lvbiwgOCk7Cj4g Pj4gCj4gPj4gK1VWQ0dfRlJBTUVfQVRUUihiX2ZyYW1lX2luZGV4LCBiRnJhbWVJbmRleCwgbm9v cF9jb252ZXJzaW9uLAo+ID4+ICsJCW5vb3BfY29udmVyc2lvbiwgOCk7Cj4gPj4gCj4gPj4gIFVW Q0dfRlJBTUVfQVRUUih3X3dpZHRoLCB3V2lkdGgsIGxlMTZfdG9fY3B1LCBjcHVfdG9fbGUxNiwg MTYpOwo+ID4+ICBVVkNHX0ZSQU1FX0FUVFIod19oZWlnaHQsIHdIZWlnaHQsIGxlMTZfdG9fY3B1 LCBjcHVfdG9fbGUxNiwgMTYpOwo+ID4+ICBVVkNHX0ZSQU1FX0FUVFIoZHdfbWluX2JpdF9yYXRl LCBkd01pbkJpdFJhdGUsIGxlMzJfdG9fY3B1LCBjcHVfdG9fbGUzMiwKPiA+PiAKPiA+PiAzMik7 Cj4gPj4gQEAgLTExMzcsNiArMTEzOSw3IEBAIFVWQ19BVFRSKHV2Y2dfZnJhbWVfLCBkd19mcmFt ZV9pbnRlcnZhbCwKPiA+PiBkd0ZyYW1lSW50ZXJ2YWwpOwo+ID4+IAo+ID4+ICBzdGF0aWMgc3Ry dWN0IGNvbmZpZ2ZzX2F0dHJpYnV0ZSAqdXZjZ19mcmFtZV9hdHRyc1tdID0gewo+ID4+ICAKPiA+ PiAgCSZ1dmNnX2ZyYW1lX2F0dHJfYm1fY2FwYWJpbGl0aWVzLAo+ID4+IAo+ID4+ICsJJnV2Y2df ZnJhbWVfYXR0cl9iX2ZyYW1lX2luZGV4LAo+ID4+IAo+ID4+ICAJJnV2Y2dfZnJhbWVfYXR0cl93 X3dpZHRoLAo+ID4+ICAJJnV2Y2dfZnJhbWVfYXR0cl93X2hlaWdodCwKPiA+PiAgCSZ1dmNnX2Zy YW1lX2F0dHJfZHdfbWluX2JpdF9yYXRlLAo=