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: [v4,5/6] usb: musb: gadget: implement optional explicit status stage From: Paul Elder Message-Id: <20190106160221.4480-6-paul.elder@ideasonboard.com> Date: Sun, 6 Jan 2019 11:02:20 -0500 To: laurent.pinchart@ideasonboard.com, kieran.bingham@ideasonboard.com Cc: Paul Elder , b-liu@ti.com, stern@rowland.harvard.edu, rogerq@ti.com, balbi@kernel.org, gregkh@linuxfoundation.org, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org List-ID: SW1wbGVtZW50IHRoZSBtZWNoYW5pc20gZm9yIG9wdGlvbmFsIGV4cGxpY2l0IHN0YXR1cyBzdGFn ZSBmb3IgdGhlIE1VU0IKZHJpdmVyLiBUaGlzIGFsbG93cyBhIGZ1bmN0aW9uIGRyaXZlciB0byBz cGVjaWZ5IHdoYXQgdG8gcmVwbHkgZm9yIHRoZQpzdGF0dXMgc3RhZ2UuIFRoZSBmdW5jdGlvbmFs aXR5IGZvciBhbiBpbXBsaWNpdCBzdGF0dXMgc3RhZ2UgaXMKcmV0YWluZWQuCgpTaWduZWQtb2Zm LWJ5OiBQYXVsIEVsZGVyIDxwYXVsLmVsZGVyQGlkZWFzb25ib2FyZC5jb20+CnYxIFJldmlld2Vk LWJ5OiBMYXVyZW50IFBpbmNoYXJ0IDxsYXVyZW50LnBpbmNoYXJ0QGlkZWFzb25ib2FyZC5jb20+ CnYxIEFja2VkLWJ5OiBCaW4gTGl1IDxiLWxpdUB0aS5jb20+Ci0tLQpObyBjaGFuZ2UgZnJvbSB2 MwoKQ2hhbmdlcyBmcm9tIHYyOgotIHVwZGF0ZSBjYWxsIHRvIHVzYl9nYWRnZXRfY29udHJvbF9j b21wbGV0ZSB0byBpbmNsdWRlIHN0YXR1cwotIHNpbmNlIHNlbmRpbmcgU1RBTEwgZnJvbSB0aGUg ZnVuY3Rpb24gZHJpdmVyIGlzIG5vdyBkb25lIHdpdGgKICB1c2JfZXBfc2V0X2hhbHQsIHRoZXJl IGlzIG5vIG5lZWQgZm9yIHRoZSBpbnRlcm5hbCBlcDBfc2VuZF9yZXNwb25zZSB0bwogIHRha2Ug YSBzdGFsbC9hY2sgcGFyYW1ldGVyOyByZW1vdmUgdGhlIHBhcmFtZXRlciBhbmQgbWFrZSB0aGUg ZnVuY3Rpb24KICBvbmx5IHNlbmQgYWNrLCBhbmQgcmVtb3ZlIGNoZWNraW5nIGZvciB0aGUgc3Rh dHVzIHJlcGx5IGluIHRoZQogIHVzYl9yZXF1ZXN0IGZvciB0aGUgc3RhdHVzIHN0YWdlCgpDaGFu Z2VzIGZyb20gdjE6Ci0gb2J2aW91cyBjaGFuZ2UgdG8gaW1wbGVtZW50IHYyIG1lY2hhbmlzbSBs YWlkIG91dCBieSA0LzYgb2YgdGhpcwogIHNlcmllcyAoc2VuZF9yZXNwb25zZSwgYW5kIG11c2Jf Z19lcDBfc2VuZF9yZXNwb25zZSBmdW5jdGlvbiBoYXMKICBiZWVuIHJlbW92ZWQsIGNhbGwgdG8g dXNiX2dhZGdldF9jb250cm9sX2NvbXBsZXRlIGhhcyBiZWVuIGFkZGVkKQotIGVwMF9zZW5kX3Jl c3BvbnNlJ3MgYWNrIGFyZ3VtZW50IGhhcyBiZWVuIGNoYW5nZWQgZnJvbSBzdGFsbAotIGxhc3Rf cGFja2V0IGZsYWcgaW4gZXAwX3J4c3RhdGUgaGFzIGJlZW4gcmVtb3ZlZCwgc2luY2UgaXQgaXMg ZXF1YWwgdG8KICByZXEgIT0gTlVMTAoKIGRyaXZlcnMvdXNiL211c2IvbXVzYl9nYWRnZXQuYyAg ICAgfCAgMiArKwogZHJpdmVycy91c2IvbXVzYi9tdXNiX2dhZGdldF9lcDAuYyB8IDIzICsrKysr KysrKysrKysrKysrKysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDI1IGluc2VydGlvbnMoKykKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9tdXNiL211c2JfZ2FkZ2V0LmMgYi9kcml2ZXJzL3VzYi9t dXNiL211c2JfZ2FkZ2V0LmMKaW5kZXggZDNmMzNmNDQ5NDQ1Li5hN2E5OTJhYjBjOWQgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvdXNiL211c2IvbXVzYl9nYWRnZXQuYworKysgYi9kcml2ZXJzL3VzYi9t dXNiL211c2JfZ2FkZ2V0LmMKQEAgLTE0NSw2ICsxNDUsOCBAQCBfX2FjcXVpcmVzKGVwLT5tdXNi LT5sb2NrKQogCiAJdHJhY2VfbXVzYl9yZXFfZ2IocmVxKTsKIAl1c2JfZ2FkZ2V0X2dpdmViYWNr X3JlcXVlc3QoJnJlcS0+ZXAtPmVuZF9wb2ludCwgJnJlcS0+cmVxdWVzdCk7CisJdXNiX2dhZGdl dF9jb250cm9sX2NvbXBsZXRlKCZtdXNiLT5nLCByZXF1ZXN0LT5leHBsaWNpdF9zdGF0dXMsCisJ CQlyZXF1ZXN0LT5zdGF0dXMpOwogCXNwaW5fbG9jaygmbXVzYi0+bG9jayk7CiAJZXAtPmJ1c3kg PSBidXN5OwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvbXVzYi9tdXNiX2dhZGdldF9lcDAu YyBiL2RyaXZlcnMvdXNiL211c2IvbXVzYl9nYWRnZXRfZXAwLmMKaW5kZXggOTFhNTAyN2I1YzFm Li5iYmNlOGE5ZDc3ZTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL211c2IvbXVzYl9nYWRnZXRf ZXAwLmMKKysrIGIvZHJpdmVycy91c2IvbXVzYi9tdXNiX2dhZGdldF9lcDAuYwpAQCAtNDU4LDYg KzQ1OCwyMyBAQCBfX2FjcXVpcmVzKG11c2ItPmxvY2spCiAJcmV0dXJuIGhhbmRsZWQ7CiB9CiAK K3N0YXRpYyBpbnQgZXAwX3NlbmRfYWNrKHN0cnVjdCBtdXNiICptdXNiKQoreworCXZvaWQgX19p b21lbSAqcmVncyA9IG11c2ItPmNvbnRyb2xfZXAtPnJlZ3M7CisJdTE2IGFja3BlbmQ7CisKKwlp ZiAobXVzYi0+ZXAwX3N0YXRlICE9IE1VU0JfRVAwX1NUQUdFX1JYICYmCisJICAgIG11c2ItPmVw MF9zdGF0ZSAhPSBNVVNCX0VQMF9TVEFHRV9TVEFUVVNJTikKKwkJcmV0dXJuIC1FSU5WQUw7CisK KwlhY2twZW5kID0gTVVTQl9DU1IwX1BfREFUQUVORCB8IE1VU0JfQ1NSMF9QX1NWRFJYUEtUUkRZ OworCisJbXVzYl9lcF9zZWxlY3QobXVzYi0+bXJlZ3MsIDApOworCW11c2Jfd3JpdGV3KHJlZ3Ms IE1VU0JfQ1NSMCwgYWNrcGVuZCk7CisKKwlyZXR1cm4gMDsKK30KKwogLyogd2UgaGF2ZSBhbiBl cDBvdXQgZGF0YSBwYWNrZXQKICAqIENvbnRleHQ6ICBjYWxsZXIgaG9sZHMgY29udHJvbGxlciBs b2NrCiAgKi8KQEAgLTUwNCwxMCArNTIxLDEzIEBAIHN0YXRpYyB2b2lkIGVwMF9yeHN0YXRlKHN0 cnVjdCBtdXNiICptdXNiKQogCWlmIChyZXEpIHsKIAkJbXVzYi0+YWNrcGVuZCA9IGNzcjsKIAkJ bXVzYl9nX2VwMF9naXZlYmFjayhtdXNiLCByZXEpOworCQlpZiAocmVxLT5leHBsaWNpdF9zdGF0 dXMpCisJCQlyZXR1cm47CiAJCWlmICghbXVzYi0+YWNrcGVuZCkKIAkJCXJldHVybjsKIAkJbXVz Yi0+YWNrcGVuZCA9IDA7CiAJfQorCiAJbXVzYl9lcF9zZWxlY3QobXVzYi0+bXJlZ3MsIDApOwog CW11c2Jfd3JpdGV3KHJlZ3MsIE1VU0JfQ1NSMCwgY3NyKTsKIH0KQEAgLTkzOSw2ICs5NTksOSBA QCBtdXNiX2dfZXAwX3F1ZXVlKHN0cnVjdCB1c2JfZXAgKmUsIHN0cnVjdCB1c2JfcmVxdWVzdCAq ciwgZ2ZwX3QgZ2ZwX2ZsYWdzKQogCWNhc2UgTVVTQl9FUDBfU1RBR0VfQUNLV0FJVDoJLyogemVy by1sZW5ndGggZGF0YSAqLwogCQlzdGF0dXMgPSAwOwogCQlicmVhazsKKwljYXNlIE1VU0JfRVAw X1NUQUdFX1NUQVRVU0lOOgorCQlzdGF0dXMgPSBlcDBfc2VuZF9hY2sobXVzYik7CisJCWdvdG8g Y2xlYW51cDsKIAlkZWZhdWx0OgogCQltdXNiX2RiZyhtdXNiLCAiZXAwIHJlcXVlc3QgcXVldWVk IGluIHN0YXRlICVkIiwKIAkJCQltdXNiLT5lcDBfc3RhdGUpOwo=