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: [4/6] usb: gadget: add functions to signal udc driver to delay status stage From: Paul Elder Message-Id: <20181010024903.1633-5-paul.elder@ideasonboard.com> Date: Tue, 9 Oct 2018 22:49:01 -0400 To: laurent.pinchart@ideasonboard.com, kieran.bingham@ideasonboard.com Cc: Paul Elder , b-liu@ti.com, gregkh@linuxfoundation.org, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, balbi@kernel.org, stern@rowland.harvard.edu, rogerq@ti.com List-ID: QSB1c2IgZ2FkZ2V0IGZ1bmN0aW9uIGRyaXZlciBtYXkgb3IgbWF5IG5vdCB3YW50IHRvIGRlbGF5 IHRoZSBzdGF0dXMKc3RhZ2Ugb2YgYSBjb250cm9sIE9VVCByZXF1ZXN0LiBBbiBpbnN0YW5jZSBp dCBtaWdodCB3YW50IHRvIGlzIHRvCmFzeW5jaHJvbm91c2x5IHZhbGlkYXRlIHRoZSBkYXRhIG9m IGEgY2xhc3Mtc3BlY2lmaWMgcmVxdWVzdC4KCkFkZCBhIGZ1bmN0aW9uIHVzYl9lcF9kZWxheV9z dGF0dXMgdG8gYWxsb3cgZnVuY3Rpb24gZHJpdmVycyB0byBjaG9vc2UKdG8gZGVsYXkgdGhlIHN0 YXR1cyBzdGFnZSBpbiB0aGUgcmVxdWVzdCBjb21wbGV0aW9uIGhhbmRsZXIuIFRoZSBVREMKc2hv dWxkIHRoZW4gY2hlY2sgdGhlIHVzYl9lcC0+ZGVsYXllZF9zdGF0dXMgZmxhZyBhbmQgYWN0IGFj Y29yZGluZ2x5IHRvCmRlbGF5IHRoZSBzdGF0dXMgc3RhZ2UuCgpBbHNvIGFkZCBhIGZ1bmN0aW9u IHVzYl9lcF9zZW5kX3Jlc3BvbnNlIGFzIGEgd3JhcHBlciBmb3IKdXNiX2VwLT5vcHMtPnNlbmRf cmVzcG9uc2UsIHdob3NlIHByb3RvdHlwZSBpcyBhZGRlZCBhcyB3ZWxsLiBUaGlzCmZ1bmN0aW9u IHNob3VsZCBiZSBjYWxsZWQgYnkgZnVuY3Rpb24gZHJpdmVycyB0byB0ZWxsIHRoZSBVREMgd2hh dCB0bwpyZXBseSBpbiB0aGUgc3RhdHVzIHN0YWdlIHRoYXQgaXQgaGFzIHJlcXVlc3RlZCB0byBi ZSBkZWxheWVkLgoKU2lnbmVkLW9mZi1ieTogUGF1bCBFbGRlciA8cGF1bC5lbGRlckBpZGVhc29u Ym9hcmQuY29tPgpSZXZpZXdlZC1ieTogTGF1cmVudCBQaW5jaGFydCA8bGF1cmVudC5waW5jaGFy dEBpZGVhc29uYm9hcmQuY29tPgotLS0KIGRyaXZlcnMvdXNiL2dhZGdldC91ZGMvY29yZS5jIHwg MzUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGluY2x1ZGUvbGludXgvdXNi L2dhZGdldC5oICAgIHwgMTEgKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgNDYgaW5zZXJ0 aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2dhZGdldC91ZGMvY29yZS5jIGIvZHJp dmVycy91c2IvZ2FkZ2V0L3VkYy9jb3JlLmMKaW5kZXggYWY4OGI0OGMxY2VhLi4xZWM1Y2U2YjQz Y2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2dhZGdldC91ZGMvY29yZS5jCisrKyBiL2RyaXZl cnMvdXNiL2dhZGdldC91ZGMvY29yZS5jCkBAIC00NDMsNiArNDQzLDQxIEBAIHZvaWQgdXNiX2Vw X2ZpZm9fZmx1c2goc3RydWN0IHVzYl9lcCAqZXApCiB9CiBFWFBPUlRfU1lNQk9MX0dQTCh1c2Jf ZXBfZmlmb19mbHVzaCk7CiAKKy8qKgorICogdXNiX2VwX2VwX2RlbGF5X3N0YXR1cyAtIHNldCBk ZWxheV9zdGF0dXMgZmxhZworICogQGVwOiB0aGUgZW5kcG9pbnQgd2hvc2UgZGVsYXlfc3RhdHVz IGZsYWcgaXMgYmVpbmcgc2V0CisgKgorICogVGhpcyBmdW5jdGlvbiBpbnN0cnVjdHMgdGhlIFVE QyB0byBkZWxheSB0aGUgc3RhdHVzIHN0YWdlIG9mIGEgY29udHJvbAorICogcmVxdWVzdC4gSXQg Y2FuIG9ubHkgYmUgY2FsbGVkIGZyb20gdGhlIHJlcXVlc3QgY29tcGxldGlvbiBoYW5kbGVyIG9m IGEKKyAqIGNvbnRyb2wgcmVxdWVzdC4KKyAqLwordm9pZCB1c2JfZXBfZGVsYXlfc3RhdHVzKHN0 cnVjdCB1c2JfZXAgKmVwKQoreworCWVwLT5kZWxheWVkX3N0YXR1cyA9IHRydWU7Cit9CitFWFBP UlRfU1lNQk9MX0dQTCh1c2JfZXBfZGVsYXlfc3RhdHVzKTsKKworLyoqCisgKiB1c2JfZXBfc2Vu ZF9yZXNwb25zZSAtIHJlcGx5IHRvIGNvbnRyb2wgT1VUIHJlcXVlc3QKKyAqIEBlcDogdGhlIGVu ZHBvaW50IHRvIHNlbmQgcmVwbHkKKyAqIEBzdGFsbDogdHJ1ZSBmb3IgU1RBTEwsIGZhbHNlIGZv ciBBQ0sKKyAqCisgKiBJbnN0cnVjdCB0aGUgVURDIHRvIGNvbXBsZXRlIHRoZSBzdGF0dXMgc3Rh Z2Ugb2YgYSBjb250cm9sIHJlcXVlc3QgdGhhdCB3YXMKKyAqIHByZXZpb3VzbHkgZGVsYXllZCB3 aXRoIGEgY2FsbCB0byB1c2JfZXBfZGVsYXlfc3RhdHVzKCkuCisgKi8KK2ludCB1c2JfZXBfc2Vu ZF9yZXNwb25zZShzdHJ1Y3QgdXNiX2VwICplcCwgYm9vbCBzdGFsbCkKK3sKKwlpZiAoIWVwLT5v cHMtPnNlbmRfcmVzcG9uc2UpCisJCXJldHVybiAtRU5PU1lTOworCisJaWYgKCFlcC0+ZGVsYXll ZF9zdGF0dXMpCisJCXJldHVybiAtRUlOVkFMOworCisJZXAtPmRlbGF5ZWRfc3RhdHVzID0gZmFs c2U7CisJcmV0dXJuIGVwLT5vcHMtPnNlbmRfcmVzcG9uc2UoZXAsIHN0YWxsKTsKK30KK0VYUE9S VF9TWU1CT0xfR1BMKHVzYl9lcF9zZW5kX3Jlc3BvbnNlKTsKKwogLyogLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSAqLwogCiAvKioKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvdXNiL2dhZGdldC5oIGIvaW5j bHVkZS9saW51eC91c2IvZ2FkZ2V0LmgKaW5kZXggZTVjZDg0YTBmODRhLi5kMzljMjIxZDRiNjgg MTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvdXNiL2dhZGdldC5oCisrKyBiL2luY2x1ZGUvbGlu dXgvdXNiL2dhZGdldC5oCkBAIC0xNDQsNiArMTQ0LDggQEAgc3RydWN0IHVzYl9lcF9vcHMgewog CiAJaW50ICgqZmlmb19zdGF0dXMpIChzdHJ1Y3QgdXNiX2VwICplcCk7CiAJdm9pZCAoKmZpZm9f Zmx1c2gpIChzdHJ1Y3QgdXNiX2VwICplcCk7CisKKwlpbnQgKCpzZW5kX3Jlc3BvbnNlKSAoc3Ry dWN0IHVzYl9lcCAqZXAsIGJvb2wgc3RhbGwpOwogfTsKIAogLyoqCkBAIC0yMDksNiArMjExLDgg QEAgc3RydWN0IHVzYl9lcF9jYXBzIHsKICAqCWVuYWJsZWQgYW5kIHJlbWFpbnMgdmFsaWQgdW50 aWwgdGhlIGVuZHBvaW50IGlzIGRpc2FibGVkLgogICogQGNvbXBfZGVzYzogSW4gY2FzZSBvZiBT dXBlclNwZWVkIHN1cHBvcnQsIHRoaXMgaXMgdGhlIGVuZHBvaW50IGNvbXBhbmlvbgogICoJZGVz Y3JpcHRvciB0aGF0IGlzIHVzZWQgdG8gY29uZmlndXJlIHRoZSBlbmRwb2ludAorICogQGRlbGF5 ZWRfc3RhdHVzOiBUcnVlIGlmIHN0YXR1cyBzdGFnZSBpcyBiZWluZyBkZWxheWVkLiBWYWxpZCBv bmx5IGZvcgorICoJY29udHJvbCBlbmRwb2ludHMuCiAgKgogICogdGhlIGJ1cyBjb250cm9sbGVy IGRyaXZlciBsaXN0cyBhbGwgdGhlIGdlbmVyYWwgcHVycG9zZSBlbmRwb2ludHMgaW4KICAqIGdh ZGdldC0+ZXBfbGlzdC4gIHRoZSBjb250cm9sIGVuZHBvaW50IChnYWRnZXQtPmVwMCkgaXMgbm90 IGluIHRoYXQgbGlzdCwKQEAgLTIzMiw2ICsyMzYsNyBAQCBzdHJ1Y3QgdXNiX2VwIHsKIAl1OAkJ CWFkZHJlc3M7CiAJY29uc3Qgc3RydWN0IHVzYl9lbmRwb2ludF9kZXNjcmlwdG9yCSpkZXNjOwog CWNvbnN0IHN0cnVjdCB1c2Jfc3NfZXBfY29tcF9kZXNjcmlwdG9yCSpjb21wX2Rlc2M7CisJYm9v bAkJCWRlbGF5ZWRfc3RhdHVzOwogfTsKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KQEAgLTI0OSw2 ICsyNTQsOCBAQCBpbnQgdXNiX2VwX2NsZWFyX2hhbHQoc3RydWN0IHVzYl9lcCAqZXApOwogaW50 IHVzYl9lcF9zZXRfd2VkZ2Uoc3RydWN0IHVzYl9lcCAqZXApOwogaW50IHVzYl9lcF9maWZvX3N0 YXR1cyhzdHJ1Y3QgdXNiX2VwICplcCk7CiB2b2lkIHVzYl9lcF9maWZvX2ZsdXNoKHN0cnVjdCB1 c2JfZXAgKmVwKTsKK3ZvaWQgdXNiX2VwX2RlbGF5X3N0YXR1cyhzdHJ1Y3QgdXNiX2VwICplcCk7 CitpbnQgdXNiX2VwX3NlbmRfcmVzcG9uc2Uoc3RydWN0IHVzYl9lcCAqZXAsIGJvb2wgc3RhbGwp OwogI2Vsc2UKIHN0YXRpYyBpbmxpbmUgdm9pZCB1c2JfZXBfc2V0X21heHBhY2tldF9saW1pdChz dHJ1Y3QgdXNiX2VwICplcCwKIAkJdW5zaWduZWQgbWF4cGFja2V0X2xpbWl0KQpAQCAtMjc4LDYg KzI4NSwxMCBAQCBzdGF0aWMgaW5saW5lIGludCB1c2JfZXBfZmlmb19zdGF0dXMoc3RydWN0IHVz Yl9lcCAqZXApCiB7IHJldHVybiAwOyB9CiBzdGF0aWMgaW5saW5lIHZvaWQgdXNiX2VwX2ZpZm9f Zmx1c2goc3RydWN0IHVzYl9lcCAqZXApCiB7IH0KK3N0YXRpYyBpbmxpbmUgdm9pZCB1c2JfZXBf ZGVsYXlfc3RhdHVzKHN0cnVjdCB1c2JfZXAgKmVwKQoreyB9CitzdGF0aWMgaW5saW5lIGludCB1 c2JfZXBfc2VuZF9yZXNwb25zZShzdHJ1Y3QgdXNiX2VwICplcCwgYm9vbCBzdGFsbCkKK3sgfQog I2VuZGlmIC8qIFVTQl9HQURHRVQgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8K