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: [v5,4/6] usb: gadget: add mechanism to specify an explicit status stage From: Paul Elder Message-Id: <20190109070856.27460-5-paul.elder@ideasonboard.com> Date: Wed, 9 Jan 2019 02:08:54 -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: QSB1c2IgZ2FkZ2V0IGZ1bmN0aW9uIGRyaXZlciBtYXkgb3IgbWF5IG5vdCB3YW50IHRvIGRlbGF5 IHRoZSBzdGF0dXMKc3RhZ2Ugb2YgYSBjb250cm9sIE9VVCByZXF1ZXN0LiBBbiBpbnN0YW5jZSB3 aGVyZSBpdCBtaWdodCB3YW50IHRvIGlzIHRvCmFzeW5jaHJvbm91c2x5IHZhbGlkYXRlIHRoZSBk YXRhIG9mIGEgY2xhc3Mtc3BlY2lmaWMgcmVxdWVzdC4KCkEgZnVuY3Rpb24gZHJpdmVyIHRoYXQg d2FudHMgYW4gZXhwbGljaXQgc3RhdHVzIHN0YWdlIHNob3VsZCBzZXQgdGhlCm5ld2x5IGFkZGVk IGV4cGxpY2l0X3N0YXR1cyBmbGFnIG9mIHRoZSB1c2JfcmVxdWVzdCBjb3JyZXNwb25kaW5nIHRv IHRoZQpkYXRhIHN0YWdlLiBMYXRlciBvbiwgdGhlIGZ1bmN0aW9uIGRyaXZlciBjYW4gZXhwbGlj aXRseSBjb21wbGV0ZSB0aGUKc3RhdHVzIHN0YWdlIGJ5IGVucXVldWVpbmcgYSB1c2JfcmVxdWVz dCBmb3IgQUNLLCBvciBjYWxsaW5nCnVzYl9lcF9zZXRfaGFsdCgpIGZvciBTVEFMTC4KClRvIHN1 cHBvcnQgYm90aCBleHBsaWNpdCBhbmQgaW1wbGljaXQgc3RhdHVzIHN0YWdlcywgYSBVREMgZHJp dmVyIG11c3QKY2FsbCB0aGUgbmV3bHkgYWRkZWQgdXNiX2dhZGdldF9jb250cm9sX2NvbXBsZXRl IGZ1bmN0aW9uIHJpZ2h0IGJlZm9yZQpjYWxsaW5nIHVzYl9nYWRnZXRfZ2l2ZWJhY2tfcmVxdWVz dC4gVG8gc3VwcG9ydCB0aGUgZXhwbGljaXQgc3RhdHVzCnN0YWdlLCBpdCBtaWdodCB0aGVuIGNo ZWNrIHdoYXQgc3RhZ2UgdGhlIHVzYl9yZXF1ZXN0IHdhcyBxdWV1ZWQgaW4sIGFuZApmb3IgY29u dHJvbCBJTiBBQ0sgdGhlIGhvc3QncyB6ZXJvLWxlbmd0aCBkYXRhIHBhY2tldCwgb3IgZm9yIGNv bnRyb2wKT1VUIHNlbmQgYSB6ZXJvLWxlbmd0aCBEQVRBMSBBQ0sgcGFja2V0LgoKU2lnbmVkLW9m Zi1ieTogUGF1bCBFbGRlciA8cGF1bC5lbGRlckBpZGVhc29uYm9hcmQuY29tPgp2NCBBY2tlZC1i eTogQWxhbiBTdGVybiA8c3Rlcm5Acm93bGFuZC5oYXJ2YXJkLmVkdT4KdjEgUmV2aWV3ZWQtYnk6 IExhdXJlbnQgUGluY2hhcnQgPGxhdXJlbnQucGluY2hhcnRAaWRlYXNvbmJvYXJkLmNvbT4KLS0t CkNoYW5nZXMgZnJvbSB2NDoKCi0gQ2hhbmdlIHBhcmFtZXRlciBvZiB1c2JfZ2FkZ2V0X2NvbnRy b2xfY29tcGxldGUgdG8gc2ltcGx5IHRha2UgYQogIHVzYl9yZXF1ZXN0Ci0gTWFrZSB1c2JfZ2Fk Z2V0X2NvbnRyb2xfY29tcGxldGUgZG8gbm90aGluZyBpZiB0aGUgcmVxdWVzdCBoYXMgbm8KICBs ZW5ndGggKGllLiBubyBkYXRhIHN0YWdlKQoKQ2hhbmdlcyBmcm9tIHYzOgoKLSBNb3JlIHNwZWNp ZmljIGluIGNvbW1pdCBtZXNzYWdlIGFib3V0IHdoYXQgdG8gZG8gZm9yIHVkYyBkcml2ZXIgYWNr aW5nCi0gU2V0IGV4cGxpY2l0X3N0YXR1cyBpbiB1c2JfZ2FkZ2V0X2NvbnRyb2xfY29tcGxldGUK LSBNYWtlIGV4cGxpY2l0X3N0YXR1cyB0eXBlIGJvb2wKCkNoYW5nZXMgZnJvbSB2MjoKCkFkZCBz dGF0dXMgcGFyYW1ldGVyIHRvIHVzYl9nYWRnZXRfY29udHJvbF9jb21wbGV0ZSwgc28gdGhhdCBh CnVzYl9yZXF1ZXN0IGlzIG5vdCBxdWV1ZWQgaWYgdGhlIHN0YXR1cyBvZiB0aGUganVzdCBnaXZl biBiYWNrIHJlcXVlc3QKaXMgbm9uemVyby4KCkNoYW5nZXMgZnJvbSB2MToKCkNvbXBsZXRlIGNo YW5nZSBvZiBBUEkuIE5vdyB3ZSB1c2UgYSBmbGFnIHRoYXQgc2hvdWxkIGJlIHNldCBpbiB0aGUK dXNiX3JlcXVlc3QgdGhhdCBpcyBxdWV1ZWQgZm9yIHRoZSBkYXRhIHN0YWdlIHRvIHNpZ25hbCB0 byB0aGUgVURDIHRoYXQKd2Ugd2FudCB0byBkZWxheSB0aGUgc3RhdHVzIHN0YWdlIChhcyBvcHBv c2VkIHRvIHNldHRpbmcgYSBmbGFnIGluIHRoZQpVREMgaXRzZWxmLCB0aGF0IHBlcnNpc3RzIGFj cm9zcyBhbGwgcmVxdWVzdHMpLiBXZSBub3cgYWxzbyBwcm92aWRlIGEKZnVuY3Rpb24gZm9yIFVE QyBkcml2ZXJzIHRvIHZlcnkgZWFzaWx5IGFsbG93IGltcGxpY2l0IHN0YXR1cyBzdGFnZXMsIHRv Cm1pdGlnYXRlIHRoZSBuZWVkIHRvIGNvbnZlcnQgYWxsIGZ1bmN0aW9uIGRyaXZlcnMgdG8gdGhp cyBuZXcgQVBJIGF0Cm9uY2UsIGFuZCB0byBtYWtlIGl0IGVhc2llciBmb3IgVURDIGRyaXZlcnMg dG8gY29udmVydC4KCiBkcml2ZXJzL3VzYi9nYWRnZXQvdWRjL2NvcmUuYyB8IDM0ICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysKIGluY2x1ZGUvbGludXgvdXNiL2dhZGdldC5oICAg IHwgMTAgKysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCA0NCBpbnNlcnRpb25zKCspCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy91c2IvZ2FkZ2V0L3VkYy9jb3JlLmMgYi9kcml2ZXJzL3VzYi9nYWRn ZXQvdWRjL2NvcmUuYwppbmRleCBhZjg4YjQ4YzFjZWEuLjU3YjJjMjU1MDUzNyAxMDA2NDQKLS0t IGEvZHJpdmVycy91c2IvZ2FkZ2V0L3VkYy9jb3JlLmMKKysrIGIvZHJpdmVycy91c2IvZ2FkZ2V0 L3VkYy9jb3JlLmMKQEAgLTg5NCw2ICs4OTQsNDAgQEAgRVhQT1JUX1NZTUJPTF9HUEwodXNiX2dh ZGdldF9naXZlYmFja19yZXF1ZXN0KTsKIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCisvKioK KyAqIHVzYl9nYWRnZXRfY29udHJvbF9jb21wbGV0ZSAtIGNvbXBsZXRlIHRoZSBzdGF0dXMgc3Rh Z2Ugb2YgYSBjb250cm9sCisgKglyZXF1ZXN0LCBvciBkZWxheSBpdAorICogQ29udGV4dDogaW5f aW50ZXJydXB0KCkKKyAqCisgKiBAZ2FkZ2V0OiBnYWRnZXQgd2hvc2UgY29udHJvbCByZXF1ZXN0 J3Mgc3RhdHVzIHN0YWdlIHNob3VsZCBiZSBjb21wbGV0ZWQKKyAqIEByZXF1ZXN0OiB1c2IgcmVx dWVzdCB3aG9zZSBzdGF0dXMgc3RhZ2Ugc2hvdWxkIGJlIGNvbXBsZXRlZAorICoKKyAqIFRoaXMg aXMgY2FsbGVkIGJ5IGRldmljZSBjb250cm9sbGVyIGRyaXZlcnMgYmVmb3JlIHJldHVybmluZyB0 aGUgY29tcGxldGVkCisgKiByZXF1ZXN0IGJhY2sgdG8gdGhlIGdhZGdldCBsYXllciwgdG8gZWl0 aGVyIGNvbXBsZXRlIG9yIGRlbGF5IHRoZSBzdGF0dXMKKyAqIHN0YWdlLiBJdCBleGl0cyB3aXRo b3V0IGRvaW5nIGFueXRoaW5nIGlmIHRoZSByZXF1ZXN0IGhhcyBhIG5vbi16ZXJvIHN0YXR1cywK KyAqIGlmIGl0IGhhcyB6ZXJvIGxlbmd0aCwgb3IgaWYgaXRzIGV4cGxpY2l0X3N0YXR1cyBmbGFn IGlzIHNldC4KKyAqLwordm9pZCB1c2JfZ2FkZ2V0X2NvbnRyb2xfY29tcGxldGUoc3RydWN0IHVz Yl9nYWRnZXQgKmdhZGdldCwKKwkJc3RydWN0IHVzYl9yZXF1ZXN0ICpyZXF1ZXN0KQoreworCXN0 cnVjdCB1c2JfcmVxdWVzdCAqcmVxOworCisJaWYgKHJlcXVlc3QtPmV4cGxpY2l0X3N0YXR1cyB8 fCByZXF1ZXN0LT5zdGF0dXMgfHwgIXJlcXVlc3QtPmxlbmd0aCkKKwkJcmV0dXJuOworCisJLyog U2VuZCBhbiBpbXBsaWNpdCBzdGF0dXMtc3RhZ2UgcmVxdWVzdCBmb3IgZXAwICovCisJcmVxID0g dXNiX2VwX2FsbG9jX3JlcXVlc3QoZ2FkZ2V0LT5lcDAsIEdGUF9BVE9NSUMpOworCWlmIChyZXEp IHsKKwkJcmVxLT5sZW5ndGggPSAwOworCQlyZXEtPmV4cGxpY2l0X3N0YXR1cyA9IDE7CisJCXJl cS0+Y29tcGxldGUgPSB1c2JfZXBfZnJlZV9yZXF1ZXN0OworCQl1c2JfZXBfcXVldWUoZ2FkZ2V0 LT5lcDAsIHJlcSwgR0ZQX0FUT01JQyk7CisJfQorfQorRVhQT1JUX1NZTUJPTF9HUEwodXNiX2dh ZGdldF9jb250cm9sX2NvbXBsZXRlKTsKKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworCiAvKioK ICAqIGdhZGdldF9maW5kX2VwX2J5X25hbWUgLSByZXR1cm5zIGVwIHdob3NlIG5hbWUgaXMgdGhl IHNhbWUgYXMgc3RpbmcgcGFzc2VkCiAgKglpbiBzZWNvbmQgcGFyYW1ldGVyIG9yIE5VTEwgaWYg c2VhcmNoZWQgZW5kcG9pbnQgbm90IGZvdW5kCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3Vz Yi9nYWRnZXQuaCBiL2luY2x1ZGUvbGludXgvdXNiL2dhZGdldC5oCmluZGV4IGU1Y2Q4NGEwZjg0 YS4uYmY0ZjAyMWNlMTM5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3VzYi9nYWRnZXQuaAor KysgYi9pbmNsdWRlL2xpbnV4L3VzYi9nYWRnZXQuaApAQCAtNzMsNiArNzMsNyBAQCBzdHJ1Y3Qg dXNiX2VwOwogICoJTm90ZSB0aGF0IGZvciB3cml0ZXMgKElOIHRyYW5zZmVycykgc29tZSBkYXRh IGJ5dGVzIG1heSBzdGlsbAogICoJcmVzaWRlIGluIGEgZGV2aWNlLXNpZGUgRklGTyB3aGVuIHRo ZSByZXF1ZXN0IGlzIHJlcG9ydGVkIGFzCiAgKgljb21wbGV0ZS4KKyAqIEBleHBsaWNpdF9zdGF0 dXM6IElmIHRydWUsIGRlbGF5cyB0aGUgc3RhdHVzIHN0YWdlCiAgKgogICogVGhlc2UgYXJlIGFs bG9jYXRlZC9mcmVlZCB0aHJvdWdoIHRoZSBlbmRwb2ludCB0aGV5J3JlIHVzZWQgd2l0aC4gIFRo ZQogICogaGFyZHdhcmUncyBkcml2ZXIgY2FuIGFkZCBleHRyYSBwZXItcmVxdWVzdCBkYXRhIHRv IHRoZSBtZW1vcnkgaXQgcmV0dXJucywKQEAgLTExNCw2ICsxMTUsOCBAQCBzdHJ1Y3QgdXNiX3Jl cXVlc3QgewogCiAJaW50CQkJc3RhdHVzOwogCXVuc2lnbmVkCQlhY3R1YWw7CisKKwlib29sCQkJ ZXhwbGljaXRfc3RhdHVzOwogfTsKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KQEAgLTg1MCw2ICs4 NTMsMTMgQEAgZXh0ZXJuIHZvaWQgdXNiX2dhZGdldF9naXZlYmFja19yZXF1ZXN0KHN0cnVjdCB1 c2JfZXAgKmVwLAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCisvKiB1dGlsaXR5IHRvIGNvbXBs ZXRlIG9yIGRlbGF5IHN0YXR1cyBzdGFnZSAqLworCit2b2lkIHVzYl9nYWRnZXRfY29udHJvbF9j b21wbGV0ZShzdHJ1Y3QgdXNiX2dhZGdldCAqZ2FkZ2V0LAorCQlzdHJ1Y3QgdXNiX3JlcXVlc3Qg KnJlcXVlc3QpOworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCiAvKiB1dGlsaXR5IHRvIGZpbmQg ZW5kcG9pbnQgYnkgbmFtZSAqLwogCiBleHRlcm4gc3RydWN0IHVzYl9lcCAqZ2FkZ2V0X2ZpbmRf ZXBfYnlfbmFtZShzdHJ1Y3QgdXNiX2dhZGdldCAqZywK