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: [v2,1/3] usb: gadget: uvc: synchronize streamon/off with uvc_function_set_alt From: Laurent Pinchart Message-Id: <4789878.cBFgujg4XI@avalon> Date: Mon, 21 May 2018 11:07:36 +0300 To: Paul Elder Cc: linux-usb@vger.kernel.org, balbi@kernel.org, gregkh@linuxfoundation.org, rogerq@ti.com List-ID: SGkgUGF1bCwKClRoYW5rIHlvdSBmb3IgdGhlIHBhdGNoLgoKT24gVHVlc2RheSwgMjQgQXByaWwg MjAxOCAyMzo1OTozNCBFRVNUIFBhdWwgRWxkZXIgd3JvdGU6Cj4gRG93biB0aGUgY2FsbCBzdGFj ayBmcm9tIHRoZSBpb2N0bCBoYW5kbGVyIGZvciBWSURJT0NfU1RSRUFNT04sCj4gdXZjX3ZpZGVv X2FsbG9jX3JlcXVlc3RzIGNvbnRhaW5zIGEgQlVHX09OLCB3aGljaCBpbiB0aGUgaGlnaCBsZXZl bCwKPiB0cmlnZ2VycyB3aGVuIFZJRElPQ19TVFJFQU1PTiBpb2N0bCBpcyBpc3N1ZWQgd2l0aG91 dCBWSURJT0NfU1RSRUFNT0ZGCj4gYmVpbmcgaXNzdWVkIHByZXZpb3VzbHkuCj4gCj4gVGhpcyBj b3VsZCBiZSB0cmlnZ2VyZWQgYnkgdXZjX2Z1bmN0aW9uX3NldF9hbHQgMCByYWNpbmcgYW5kCj4g d2lubmluZyBhZ2FpbnN0IHV2Y192NGwyX3N0cmVhbW9uLCBvciBieSB1c2Vyc3BhY2UgbmVnbGVj dGluZyB0byBpc3N1ZQo+IHRoZSBWSURJT0NfU1RSRUFNT0ZGIGlvY3RsLgo+IAo+IFRvIGZpeCB0 aGlzLCBhZGQgdHdvIG1vcmUgdXZjIHN0YXRlczogc3RhcnRpbmcgYW5kIHN0b3BwaW5nLiBVc2Ug dGhlc2UKPiB0byBwcmV2ZW50IHRoZSByYWNpbmcsIGFuZCB0byBkZXRlY3Qgd2hlbiBWSURJT0Nf U1RSRUFNT04gaXMgaXNzdWVkCj4gd2l0aG91dCBwcmV2aW91c2x5IGlzc3VpbmcgVklESU9DX1NU UkVBTU9GRi4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBQYXVsIEVsZGVyIDxwYXVsLmVsZGVyQGlkZWFz b25ib2FyZC5jb20+Cj4gLS0tCj4gQ2hhbmdlcyBpbiB2MjogTm90aGluZwo+IAo+ICBkcml2ZXJz L3VzYi9nYWRnZXQvZnVuY3Rpb24vZl91dmMuYyAgICB8ICA4ICsrKysrKy0tCj4gIGRyaXZlcnMv dXNiL2dhZGdldC9mdW5jdGlvbi91dmMuaCAgICAgIHwgIDIgKysKPiAgZHJpdmVycy91c2IvZ2Fk Z2V0L2Z1bmN0aW9uL3V2Y192NGwyLmMgfCAxOSArKysrKysrKysrKysrKysrKy0tCj4gIDMgZmls ZXMgY2hhbmdlZCwgMjUgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfdXZjLmMKPiBiL2RyaXZlcnMvdXNi L2dhZGdldC9mdW5jdGlvbi9mX3V2Yy5jIGluZGV4IDQzOWViYTY2MGU5NS4uOWI2M2IyOGExZWUz Cj4gMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfdXZjLmMKPiAr KysgYi9kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl91dmMuYwo+IEBAIC0zMjUsMTcgKzMy NSwxOSBAQCB1dmNfZnVuY3Rpb25fc2V0X2FsdChzdHJ1Y3QgdXNiX2Z1bmN0aW9uICpmLCB1bnNp Z25lZAo+IGludGVyZmFjZSwgdW5zaWduZWQgYWx0KQo+IAo+ICAJc3dpdGNoIChhbHQpIHsKPiAg CWNhc2UgMDoKPiAtCQlpZiAodXZjLT5zdGF0ZSAhPSBVVkNfU1RBVEVfU1RSRUFNSU5HKQo+ICsJ CWlmICh1dmMtPnN0YXRlICE9IFVWQ19TVEFURV9TVFJFQU1JTkcgJiYKPiArCQkJCXV2Yy0+c3Rh dGUgIT0gVVZDX1NUQVRFX1NUQVJUSU5HKQoKSW5kZW50YXRpb24gaXMgd2VpcmQgaGVyZSwgdXZj IHNob3VsZCBiZSBhbGlnbmVkIG9uIHRoZSB0d28gbGluZXMuCgo+ICAJCQlyZXR1cm4gMDsKPiAK PiAgCQlpZiAodXZjLT52aWRlby5lcCkKPiAgCQkJdXNiX2VwX2Rpc2FibGUodXZjLT52aWRlby5l cCk7Cj4gCj4gKwkJdXZjLT5zdGF0ZSA9IFVWQ19TVEFURV9TVE9QUElORzsKPiArCj4gIAkJbWVt c2V0KCZ2NGwyX2V2ZW50LCAwLCBzaXplb2YodjRsMl9ldmVudCkpOwo+ICAJCXY0bDJfZXZlbnQu dHlwZSA9IFVWQ19FVkVOVF9TVFJFQU1PRkY7Cj4gIAkJdjRsMl9ldmVudF9xdWV1ZSgmdXZjLT52 ZGV2LCAmdjRsMl9ldmVudCk7Cj4gCj4gLQkJdXZjLT5zdGF0ZSA9IFVWQ19TVEFURV9DT05ORUNU RUQ7Cj4gIAkJcmV0dXJuIDA7Cj4gCj4gIAljYXNlIDE6Cj4gQEAgLTM1NCw2ICszNTYsOCBAQCB1 dmNfZnVuY3Rpb25fc2V0X2FsdChzdHJ1Y3QgdXNiX2Z1bmN0aW9uICpmLCB1bnNpZ25lZAo+IGlu dGVyZmFjZSwgdW5zaWduZWQgYWx0KSByZXR1cm4gcmV0Owo+ICAJCXVzYl9lcF9lbmFibGUodXZj LT52aWRlby5lcCk7Cj4gCj4gKwkJdXZjLT5zdGF0ZSA9IFVWQ19TVEFURV9TVEFSVElORzsKPiAr Cj4gIAkJbWVtc2V0KCZ2NGwyX2V2ZW50LCAwLCBzaXplb2YodjRsMl9ldmVudCkpOwo+ICAJCXY0 bDJfZXZlbnQudHlwZSA9IFVWQ19FVkVOVF9TVFJFQU1PTjsKPiAgCQl2NGwyX2V2ZW50X3F1ZXVl KCZ1dmMtPnZkZXYsICZ2NGwyX2V2ZW50KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvZ2Fk Z2V0L2Z1bmN0aW9uL3V2Yy5oCj4gYi9kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vdXZjLmgg aW5kZXggYTY0ZTA3ZTYxZjhjLi5hZmIyZWFjMWYzMzcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy91 c2IvZ2FkZ2V0L2Z1bmN0aW9uL3V2Yy5oCj4gKysrIGIvZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0 aW9uL3V2Yy5oCj4gQEAgLTEzMSw2ICsxMzEsOCBAQCBlbnVtIHV2Y19zdGF0ZSB7Cj4gIAlVVkNf U1RBVEVfRElTQ09OTkVDVEVELAo+ICAJVVZDX1NUQVRFX0NPTk5FQ1RFRCwKPiAgCVVWQ19TVEFU RV9TVFJFQU1JTkcsCj4gKwlVVkNfU1RBVEVfU1RBUlRJTkcsCj4gKwlVVkNfU1RBVEVfU1RPUFBJ TkcsCgpMZXQncyBvcmRlciB0aGUgc3RhdGVzIGFzIHRoZXlyIHNob3VsZCBub3JtYWxseSBvY2N1 ciwgU1RBUlRJTkcgc2hvdWxkIGNvbWUgCmJlZm9yZSBTVFJFQU1JTkcuCgo+ICB9Owo+IAo+ICBz dHJ1Y3QgdXZjX2RldmljZSB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2dhZGdldC9mdW5j dGlvbi91dmNfdjRsMi5jCj4gYi9kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vdXZjX3Y0bDIu YyBpbmRleCA5YTkwMTk2MjU0OTYuLmZkZjAyYjY5ODdjMAo+IDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvdXNiL2dhZGdldC9mdW5jdGlvbi91dmNfdjRsMi5jCj4gKysrIGIvZHJpdmVycy91c2IvZ2Fk Z2V0L2Z1bmN0aW9uL3V2Y192NGwyLmMKPiBAQCAtMTkzLDYgKzE5Myw5IEBAIHV2Y192NGwyX3N0 cmVhbW9uKHN0cnVjdCBmaWxlICpmaWxlLCB2b2lkICpmaCwgZW51bQo+IHY0bDJfYnVmX3R5cGUg dHlwZSkgc3RydWN0IHV2Y192aWRlbyAqdmlkZW8gPSAmdXZjLT52aWRlbzsKPiAgCWludCByZXQ7 Cj4gCj4gKwlpZiAodXZjLT5zdGF0ZSAhPSBVVkNfU1RBVEVfU1RBUlRJTkcpCj4gKwkJcmV0dXJu IDA7CgpJIHdvdWxkIG1vdmUgdGhpcyBjaGVjayBhZnRlciB0aGUgbmV4dCBvbmUsIGFzIHRoZSBW SURJT0NfU1RSRUFNT04gaW9jdGwgCnNob3VsZCBmYWlsIGlmIHRoZSB0eXBlIGlzbid0IHZhbGlk LCBldmVuIGlmIHdlJ3JlIGFscmVhZHkgc3RyZWFtaW5nLgoKRnVydGhlcm1vcmUsIHNob3VsZG4n dCB3ZSBzaWxlbnRseSBpZ25vcmUgdGhlIFVWQ19TVEFURV9TVFJFQU1JTkcgb25seSA/IEZvciAK b3RoZXIgc3RhdGVzLCBJIHRoaW5rIHdlIHNob3VsZCByZXR1cm4gYW4gZXJyb3IsIGFzIHN0YXJ0 aW5nIHRoZSBzdHJlYW0gaXNuJ3QgCnZhbGlkIGZvciBpbnN0YW5jZSB3aGVuIHRoZSBzdGF0ZSBp cyBVVkNfU1RBVEVfRElTQ09OTkVDVEVELgoKPiAgCWlmICh0eXBlICE9IHZpZGVvLT5xdWV1ZS5x dWV1ZS50eXBlKQo+ICAJCXJldHVybiAtRUlOVkFMOwo+IAo+IEBAIC0yMDEsMTIgKzIwNCwxMyBA QCB1dmNfdjRsMl9zdHJlYW1vbihzdHJ1Y3QgZmlsZSAqZmlsZSwgdm9pZCAqZmgsIGVudW0KPiB2 NGwyX2J1Zl90eXBlIHR5cGUpIGlmIChyZXQgPCAwKQo+ICAJCXJldHVybiByZXQ7Cj4gCj4gKwl1 dmMtPnN0YXRlID0gVVZDX1NUQVRFX1NUUkVBTUlORzsKPiArCj4gIAkvKgo+ICAJICogQ29tcGxl dGUgdGhlIGFsdGVybmF0ZSBzZXR0aW5nIHNlbGVjdGlvbiBzZXR1cCBwaGFzZSBub3cgdGhhdAo+ ICAJICogdXNlcnNwYWNlIGlzIHJlYWR5IHRvIHByb3ZpZGUgdmlkZW8gZnJhbWVzLgo+ICAJICov Cj4gIAl1dmNfZnVuY3Rpb25fc2V0dXBfY29udGludWUodXZjKTsKPiAtCXV2Yy0+c3RhdGUgPSBV VkNfU1RBVEVfU1RSRUFNSU5HOwo+IAo+ICAJcmV0dXJuIDA7Cj4gIH0KPiBAQCAtMjE3LDExICsy MjEsMjIgQEAgdXZjX3Y0bDJfc3RyZWFtb2ZmKHN0cnVjdCBmaWxlICpmaWxlLCB2b2lkICpmaCwg ZW51bQo+IHY0bDJfYnVmX3R5cGUgdHlwZSkgc3RydWN0IHZpZGVvX2RldmljZSAqdmRldiA9IHZp ZGVvX2RldmRhdGEoZmlsZSk7Cj4gIAlzdHJ1Y3QgdXZjX2RldmljZSAqdXZjID0gdmlkZW9fZ2V0 X2RydmRhdGEodmRldik7Cj4gIAlzdHJ1Y3QgdXZjX3ZpZGVvICp2aWRlbyA9ICZ1dmMtPnZpZGVv Owo+ICsJaW50IHJldDsKPiArCj4gKwlpZiAodXZjLT5zdGF0ZSAhPSBVVkNfU1RBVEVfU1RPUFBJ TkcpCj4gKwkJcmV0dXJuIDA7CgpTYW1lIGNvbW1lbnQgaGVyZSwgdGhpcyBzaG91bGQgZ28gYWZ0 ZXIgdGhlIG5leHQgY2hlY2suCgpXaGlsZSBJIHRoaW5rIGV4dGVuZGluZyB0aGUgc3RhdGUgbWFj aGluZSB0aGlzIHdheSBtYWtlcyBzZW5zZSwgSSBiZWxpZXZlIAp5b3UncmUgaW50cm9kdWNpbmcg cmFjZSBjb25kaXRpb25zLiBUaGUgVklESU9DX1NUUkVBTU9OIGFuZCBWSURJT0NfU1RSRUFNT0ZG IAppb2N0bHMgY2FuIGJlIGlzc3VlZCBieSB1c2Vyc3BhY2UgYXQgYW55IHRpbWUsIGNvbXBsZXRl bHkgYXN5bmNocm9ub3VzbHkgdG8gCnRoZSByZWNlcHRpb24gb2YgU0VUX0lOVEVSRkFDRSByZXF1 ZXN0cy4gWW91IHdpbGwgbmVlZCBhIGxvY2sgdG8gcHJvdGVjdCB0aGlzLiAKSSByZWNvbW1lbmQg dHJ5aW5nIHRvIGRyYXcgc2VxdWVuY2UgZGlhZ3JhbXMgdG8gc2VlIGhvdyB0aGUgZGlmZmVyZW50 IGV2ZW50cyAKY2FuIHJhY2UgZWFjaCBvdGhlci4KCj4gIAlpZiAodHlwZSAhPSB2aWRlby0+cXVl dWUucXVldWUudHlwZSkKPiAgCQlyZXR1cm4gLUVJTlZBTDsKPiAKPiAtCXJldHVybiB1dmNnX3Zp ZGVvX2VuYWJsZSh2aWRlbywgMCk7Cj4gKwlyZXQgPSB1dmNnX3ZpZGVvX2VuYWJsZSh2aWRlbywg MCk7Cj4gKwlpZiAocmV0IDwgMCkKPiArCQlyZXR1cm4gcmV0Owo+ICsKPiArCXV2Yy0+c3RhdGUg PSBVVkNfU1RBVEVfQ09OTkVDVEVEOwo+ICsKPiArCXJldHVybiAwOwo+ICsKPiAgfQo+IAo+ICBz dGF0aWMgaW50Cg==