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] usbserial: pl2303 tx xon/xoff flow control From: Johan Hovold Message-Id: <20180521110306.GQ30172@localhost> Date: Mon, 21 May 2018 13:03:06 +0200 To: Florian Zumbiehl Cc: Johan Hovold , linux-usb@vger.kernel.org List-ID: T24gU3VuLCBNYXkgMjAsIDIwMTggYXQgMDI6MjM6MTJBTSArMDIwMCwgRmxvcmlhbiBadW1iaWVo bCB3cm90ZToKPiBTdXBwb3J0IGhhcmR3YXJlLWxldmVsIFhvbi9Yb2ZmIGZsb3cgY29udHJvbCBp biB0cmFuc21pdCBkaXJlY3Rpb24gd2l0aAo+IHBsMjMwMy4KPiAKPiBJIG9ubHkga25vdyBob3cg dG8gZ2V0IHRoZSBoYXJkd2FyZSB0byBkbyBJWE9OLyFJWEFOWSB3aXRoIF5TL15RIGFzIGNvbnRy b2wKPiBjaGFyYWN0ZXJzLCBzbyBJIHByZXNlcnZlIHRoZSBvbGQgYmVoYXZpb3VyIGZvciBhbGwg b3RoZXIgY2FzZXMuCj4gCj4gU2lnbmVkLW9mZi1ieTogRmxvcmlhbiBadW1iaWVobCA8ZmxvcnpA ZmxvcnouZGU+Cj4gLS0tCj4gLS0tIGxpbnV4LTQuMTYuOS9kcml2ZXJzL3VzYi9zZXJpYWwvcGwy MzAzLmMub3JpZwkyMDE4LTA1LTIwIDAwOjUxOjM0LjU4MDk2NjEyNCArMDIwMAo+ICsrKyBsaW51 eC00LjE2LjkvZHJpdmVycy91c2Ivc2VyaWFsL3BsMjMwMy5jCTIwMTgtMDUtMjAgMDE6MTY6NDku NTMyNzMwMDk4ICswMjAwCj4gQEAgLTUzOSwxMiArNTM5LDE4IEBACj4gIAlzdHJ1Y3QgdXNiX3Nl cmlhbCAqc2VyaWFsID0gcG9ydC0+c2VyaWFsOwo+ICAJc3RydWN0IHBsMjMwM19zZXJpYWxfcHJp dmF0ZSAqc3ByaXYgPSB1c2JfZ2V0X3NlcmlhbF9kYXRhKHNlcmlhbCk7Cj4gIAlzdHJ1Y3QgcGwy MzAzX3ByaXZhdGUgKnByaXYgPSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7Cj4gKwli b29sIHRlcm1pb3NfdW5jaGFuZ2VkOwo+ICAJdW5zaWduZWQgbG9uZyBmbGFnczsKPiAgCXVuc2ln bmVkIGNoYXIgKmJ1ZjsKPiAgCWludCByZXQ7Cj4gIAl1OCBjb250cm9sOwo+ICAKPiAtCWlmIChv bGRfdGVybWlvcyAmJiAhdHR5X3Rlcm1pb3NfaHdfY2hhbmdlKCZ0dHktPnRlcm1pb3MsIG9sZF90 ZXJtaW9zKSkKPiArCXRlcm1pb3NfdW5jaGFuZ2VkID0gb2xkX3Rlcm1pb3MgJiYKPiArCQkhKHR0 eV90ZXJtaW9zX2h3X2NoYW5nZSgmdHR5LT50ZXJtaW9zLCBvbGRfdGVybWlvcykgfHwKPiArCQkg ICgodHR5LT50ZXJtaW9zLmNfaWZsYWcgXiBvbGRfdGVybWlvcy0+Y19pZmxhZykgJiAoSVhPTiB8 IElYQU5ZKSkgfHwKPiArCQkgIHR0eS0+dGVybWlvcy5jX2NjW1ZTVE9QXSAhPSBvbGRfdGVybWlv cy0+Y19jY1tWU1RPUF0gfHwKPiArCQkgIHR0eS0+dGVybWlvcy5jX2NjW1ZTVEFSVF0gIT0gb2xk X3Rlcm1pb3MtPmNfY2NbVlNUQVJUXSk7Cj4gKwlpZiAodGVybWlvc191bmNoYW5nZWQpCgpUaGlz IGlzIHNsaWdodGx5IG1vcmUgcmVhZGFibGUsIGJ1dCB5b3Ugc3RpbGwgdmlvbGF0ZSBpbmRlbnRh dGlvbiBydWxlcwooZS5nLiB0d28gdGFicyBmb3IgY29udGludWF0aW9uIGxpbmVzKSBhbmQgdGhl IGV4cHJlc3Npb24gaXMganVzdApnZW5lcmFsbHkgaGFyZCB0byBwYXJzZS4KCkkgcGxheWVkIGFy b3VuZCB3aXRoIGFuIGl4b25fY2hhbmdlZCBpbnRlcm1lZGlhdGUgKHdoaWNoIHdoYXQgSSBoYWQg aW4KbWluZCB3aGVuIEkgc3VnZ2VzdGVkIGFuIGludGVybWVkaWF0ZSksIGJ1dCBpbiB0aGUgZW5k IEkgc2V0dGxlZCBvbiBhCmhlbHBlciBmdW5jdGlvbi4KClRoZSByZXN1bHQsIHdoaWNoIEkndmUg YXBwbGllZCBmb3IgLW5leHQsIGNhbiBiZSBmb3VuZCBiZWxvdy4KClRoYW5rcywKSm9oYW4KCgpG cm9tIDFmMDk4MDdlZDUyYmM1MzBhMTEzOWM2YWU2MDkyYjkxNzZkZWQ0NWYgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IEZsb3JpYW4gWnVtYmllaGwgPGZsb3J6QGZsb3J6LmRlPgpEYXRl OiBTdW4sIDIwIE1heSAyMDE4IDAyOjIzOjEyICswMjAwClN1YmplY3Q6IFtQQVRDSF0gVVNCOiBz ZXJpYWw6IHBsMjMwMzogYWRkIHN1cHBvcnQgZm9yIHR4IHhvbi94b2ZmIGZsb3cgY29udHJvbAoK U3VwcG9ydCBoYXJkd2FyZS1sZXZlbCBYb24vWG9mZiBmbG93IGNvbnRyb2wgaW4gdHJhbnNtaXQg ZGlyZWN0aW9uIHdpdGgKcGwyMzAzLgoKSSBvbmx5IGtub3cgaG93IHRvIGdldCB0aGUgaGFyZHdh cmUgdG8gZG8gSVhPTi8hSVhBTlkgd2l0aCBeUy9eUSBhcyBjb250cm9sCmNoYXJhY3RlcnMsIHNv IEkgcHJlc2VydmUgdGhlIG9sZCBiZWhhdmlvdXIgZm9yIGFsbCBvdGhlciBjYXNlcy4KClNpZ25l ZC1vZmYtYnk6IEZsb3JpYW4gWnVtYmllaGwgPGZsb3J6QGZsb3J6LmRlPgpbIGpvaGFuOiByZXdy aXRlIGxvZ2ljIHVzaW5nIHBsMjMwM190ZXJtaW9zX2NoYW5nZSgpIGhlbHBlciBdClNpZ25lZC1v ZmYtYnk6IEpvaGFuIEhvdm9sZCA8am9oYW5Aa2VybmVsLm9yZz4KLS0tCiBkcml2ZXJzL3VzYi9z ZXJpYWwvcGwyMzAzLmMgfCAxNiArKysrKysrKysrKysrKystCiAxIGZpbGUgY2hhbmdlZCwgMTUg aW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3Nl cmlhbC9wbDIzMDMuYyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9wbDIzMDMuYwppbmRleCA0NmRkMDlk YTI0MzQuLmFjMjMxY2RmNDhhNiAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL3BsMjMw My5jCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9wbDIzMDMuYwpAQCAtNTMzLDYgKzUzMywxNyBA QCBzdGF0aWMgaW50IHBsMjMwM19zZXRfbGluZV9yZXF1ZXN0KHN0cnVjdCB1c2Jfc2VyaWFsX3Bv cnQgKnBvcnQsCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBib29sIHBsMjMwM190ZXJtaW9zX2No YW5nZShzdHJ1Y3Qga3Rlcm1pb3MgKmEsIHN0cnVjdCBrdGVybWlvcyAqYikKK3sKKwlib29sIGl4 b25fY2hhbmdlOworCisJaXhvbl9jaGFuZ2UgPSAoKGEtPmNfaWZsYWcgXiBiLT5jX2lmbGFnKSAm IChJWE9OIHwgSVhBTlkpKSB8fAorCQkJYS0+Y19jY1tWU1RBUlRdICE9IGItPmNfY2NbVlNUQVJU XSB8fAorCQkJYS0+Y19jY1tWU1RPUF0gIT0gYi0+Y19jY1tWU1RPUF07CisKKwlyZXR1cm4gdHR5 X3Rlcm1pb3NfaHdfY2hhbmdlKGEsIGIpIHx8IGl4b25fY2hhbmdlOworfQorCiBzdGF0aWMgdm9p ZCBwbDIzMDNfc2V0X3Rlcm1pb3Moc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSwKIAkJc3RydWN0IHVz Yl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0IGt0ZXJtaW9zICpvbGRfdGVybWlvcykKIHsKQEAg LTU0NCw3ICs1NTUsNyBAQCBzdGF0aWMgdm9pZCBwbDIzMDNfc2V0X3Rlcm1pb3Moc3RydWN0IHR0 eV9zdHJ1Y3QgKnR0eSwKIAlpbnQgcmV0OwogCXU4IGNvbnRyb2w7CiAKLQlpZiAob2xkX3Rlcm1p b3MgJiYgIXR0eV90ZXJtaW9zX2h3X2NoYW5nZSgmdHR5LT50ZXJtaW9zLCBvbGRfdGVybWlvcykp CisJaWYgKG9sZF90ZXJtaW9zICYmICFwbDIzMDNfdGVybWlvc19jaGFuZ2UoJnR0eS0+dGVybWlv cywgb2xkX3Rlcm1pb3MpKQogCQlyZXR1cm47CiAKIAlidWYgPSBremFsbG9jKDcsIEdGUF9LRVJO RUwpOwpAQCAtNjYyLDYgKzY3Myw5IEBAIHN0YXRpYyB2b2lkIHBsMjMwM19zZXRfdGVybWlvcyhz dHJ1Y3QgdHR5X3N0cnVjdCAqdHR5LAogCQkJcGwyMzAzX3ZlbmRvcl93cml0ZShzZXJpYWwsIDB4 MCwgMHg0MSk7CiAJCWVsc2UKIAkJCXBsMjMwM192ZW5kb3Jfd3JpdGUoc2VyaWFsLCAweDAsIDB4 NjEpOworCX0gZWxzZSBpZiAoSV9JWE9OKHR0eSkgJiYgIUlfSVhBTlkodHR5KSAmJiBTVEFSVF9D SEFSKHR0eSkgPT0gMHgxMSAmJgorCQkJU1RPUF9DSEFSKHR0eSkgPT0gMHgxMykgeworCQlwbDIz MDNfdmVuZG9yX3dyaXRlKHNlcmlhbCwgMHgwLCAweGMwKTsKIAl9IGVsc2UgewogCQlwbDIzMDNf dmVuZG9yX3dyaXRlKHNlcmlhbCwgMHgwLCAweDApOwogCX0K