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: USB: serial: cp210x: Improve baudrate support for CP2102N From: Johan Hovold Message-Id: <20180619091528.GN32411@localhost> Date: Tue, 19 Jun 2018 11:15:28 +0200 To: Karoly Pados Cc: Johan Hovold , Greg Kroah-Hartman , linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org List-ID: T24gRnJpLCBKdW4gMTUsIDIwMTggYXQgMTE6Mjk6NTdQTSArMDIwMCwgS2Fyb2x5IFBhZG9zIHdy b3RlOgo+IFRoZSBDUDIxMDJOIHN1cHBvcnRzIG1vcmUgYmF1ZHJhdGVzIHRoYW4gZWFybGllciBj aGlwcyBieSBTaUxhYnMuCj4gVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIGFsbCByYXRlcyBk b2N1bWVudGVkIGluIHRoZSBkYXRhc2hlZXQKPiBvZiB0aGlzIGRldmljZS4KPiAKPiBTaWduZWQt b2ZmLWJ5OiBLYXJvbHkgUGFkb3MgPHBhZG9zQHBhZG9zLmh1Pgo+IC0tLQo+ICBkcml2ZXJzL3Vz Yi9zZXJpYWwvY3AyMTB4LmMgfCAzOSArKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0t LS0tCj4gIDEgZmlsZSBjaGFuZ2VkLCAyOCBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkK PiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2NwMjEweC5jIGIvZHJpdmVycy91 c2Ivc2VyaWFsL2NwMjEweC5jCj4gaW5kZXggYjE4NDlmNjU3ZTAxLi43OTNiODYyNTJjNDYgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL2NwMjEweC5jCj4gKysrIGIvZHJpdmVycy91 c2Ivc2VyaWFsL2NwMjEweC5jCj4gQEAgLTM1Nyw2ICszNTcsOSBAQCBzdGF0aWMgc3RydWN0IHVz Yl9zZXJpYWxfZHJpdmVyICogY29uc3Qgc2VyaWFsX2RyaXZlcnNbXSA9IHsKPiAgI2RlZmluZSBD UDIxMFhfUEFSVE5VTV9DUDIxMDQJMHgwNAo+ICAjZGVmaW5lIENQMjEwWF9QQVJUTlVNX0NQMjEw NQkweDA1Cj4gICNkZWZpbmUgQ1AyMTBYX1BBUlROVU1fQ1AyMTA4CTB4MDgKPiArI2RlZmluZSBD UDIxMFhfUEFSVE5VTV9DUDIxMDJOX1FGTjI4CTB4MjAKPiArI2RlZmluZSBDUDIxMFhfUEFSVE5V TV9DUDIxMDJOX1FGTjI0CTB4MjEKPiArI2RlZmluZSBDUDIxMFhfUEFSVE5VTV9DUDIxMDJOX1FG TjIwCTB4MjIKPiAgI2RlZmluZSBDUDIxMFhfUEFSVE5VTV9VTktOT1dOCTB4RkYKPiAgCj4gIC8q IENQMjEwWF9HRVRfQ09NTV9TVEFUVVMgcmV0dXJucyB0aGVzZSAweDEzIGJ5dGVzICovCj4gQEAg LTc1OCw4ICs3NjEsMTIgQEAgc3RhdGljIGludCBjcDIxMHhfZ2V0X2xpbmVfY3RsKHN0cnVjdCB1 c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHUxNiAqY3RsKQo+ICAvKgo+ICAgKiBjcDIxMHhfcXVhbnRp c2VfYmF1ZHJhdGUKPiAgICogUXVhbnRpc2VzIHRoZSBiYXVkIHJhdGUgYXMgcGVyIEFOMjA1IFRh YmxlIDEKPiArICogVGhlIENQMjEwMk4gaXMgZnVsbHkgKGV4Y2VwdCBmb3IgYmF1ZCByYXRlIGFs aWFzaW5nKSBzb2Z0d2FyZS0KPiArICogY29tcGF0aWJsZSwgYnV0IHN1cHBvcnRzIHNvbWUgYWRk aXRpb25hbCBiYXVkcmF0ZXMuIEhvd2V2ZXIsIHRoZXJlIGlzCj4gKyAqIG5vIHF1YW50aXRpc2F0 aW9uIHRhYmxlIGF2YWlsYWJsZSBmb3IgdGhpcyBtb2RlbCwgc28gaW4gdGhpcyBjYXNlIHdlCj4g KyAqIHRha2UgdGhlIHN1cHBvcnRlZCBiYXVkcmF0ZSB3aGljaCBpcyBjbG9zZXN0IHRvIHRoZSBy ZXF1ZXN0ZWQgb25lLgo+ICAgKi8KPiAtc3RhdGljIHVuc2lnbmVkIGludCBjcDIxMHhfcXVhbnRp c2VfYmF1ZHJhdGUodW5zaWduZWQgaW50IGJhdWQpCj4gK3N0YXRpYyB1bnNpZ25lZCBpbnQgY3Ay MTB4X3F1YW50aXNlX2JhdWRyYXRlKHVuc2lnbmVkIGludCBiYXVkLCBib29sIGNwMjEwMm4pCgpQ YXNzIGluIGEgc3RydWN0IHVzYl9zZXJpYWwgKG9yIHBvcnQpIGFzIGEgZmlyc3QgYXJndW1lbnQg aW5zdGVhZCB3aGljaAphbGxvd3MgZm9yIG1vcmUgcmVhZGFibGUgY29kZSBhcyB3ZWxsIGFzIGZv ciB0aGlzIHRvIGJlIHJldXNlZCB0byBoYW5kbGUKb3RoZXIgZGV2aWNlIHR5cGUgZGlmZmVyZW5j ZXMgKGUuZy4gb25seSAyMTA4IGJlc2lkZXMgMjEwMm4gaGFuZGxlcwpiYXVkcmF0ZXMgb3ZlciA5 MjEuNmspLgoKPiAgewo+ICAJaWYgKGJhdWQgPD0gMzAwKQo+ICAJCWJhdWQgPSAzMDA7Cj4gQEAg LTc5MCwxMCArNzk3LDE3IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgY3AyMTB4X3F1YW50aXNlX2Jh dWRyYXRlKHVuc2lnbmVkIGludCBiYXVkKQo+ICAJZWxzZSBpZiAoYmF1ZCA8PSA0OTE1MjApICAg YmF1ZCA9IDQ2MDgwMDsKPiAgCWVsc2UgaWYgKGJhdWQgPD0gNTY3MTM4KSAgIGJhdWQgPSA1MDAw MDA7Cj4gIAllbHNlIGlmIChiYXVkIDw9IDY3MDI1NCkgICBiYXVkID0gNTc2MDAwOwo+IC0JZWxz ZSBpZiAoYmF1ZCA8IDEwMDAwMDApCj4gLQkJYmF1ZCA9IDkyMTYwMDsKPiAtCWVsc2UgaWYgKGJh dWQgPiAyMDAwMDAwKQo+IC0JCWJhdWQgPSAyMDAwMDAwOwo+ICsJZWxzZSBpZiAoY3AyMTAybikg ewoKQWRkIGEgc3RhdGljIGhlbHBlciAobG9va3MgbGlrZSB5b3UgYWRkIGEgZGVmaW5lIGluIHRo ZSBncGlvIHBhdGNoKQpjcDIxMHhfaXNfY3AyMTAybihzZXJpYWwpIGhlcmUuIFlvdSBjYW4gZXZl biB0ZXN0IGZvciBiaXQgMHgyMCBpbiB0aGUKaGVscGVyIGlmIHlvdSBwcmVmZXIgKHdlIGNhbiBh bHdheXMgY2hhbmdlIHRoYXQgbGF0ZXIgaWYgbmVlZGVkKS4KCj4gKwkJaWYgKGJhdWQgPD0gOTYw ODAwKSAgICAgICAgYmF1ZCA9IDkyMTYwMDsKPiArCQllbHNlIGlmIChiYXVkIDw9IDExMDAwMDAp ICBiYXVkID0gMTAwMDAwMDsKPiArCQllbHNlIGlmIChiYXVkIDw9IDEzNTAwMDApICBiYXVkID0g MTIwMDAwMDsKPiArCQllbHNlIGlmIChiYXVkIDw9IDE3NTAwMDApICBiYXVkID0gMTUwMDAwMDsK PiArCQllbHNlIGlmIChiYXVkIDw9IDI1MDAwMDApICBiYXVkID0gMjAwMDAwMDsKPiArCQllbHNl ICAgICAgICAgICAgICAgICAgICAgICBiYXVkID0gMzAwMDAwMDsKCkFuZCBldmVuIGlmIHRoZSBj dXJyZW50IGNvZGUgdXNlcyB0aGlzIG9kZCBmb3JtYXR0aW5nLCB5b3VyIGFtZW5kbWVudHMKc2hv dWxkIG5vdC4KCj4gKwl9IGVsc2Ugewo+ICsJCWlmIChiYXVkIDwgMTAwMDAwMCkgICAgICAgIGJh dWQgPSA5MjE2MDA7Cj4gKwkJZWxzZSBpZiAoYmF1ZCA+IDIwMDAwMDApICAgYmF1ZCA9IDIwMDAw MDA7Cj4gKwl9Cj4gIAlyZXR1cm4gYmF1ZDsKPiAgfQo+ICAKPiBAQCAtMTA0NSwxNiArMTA1OSwx OSBAQCBzdGF0aWMgdm9pZCBjcDIxMHhfZ2V0X3Rlcm1pb3NfcG9ydChzdHJ1Y3QgdXNiX3Nlcmlh bF9wb3J0ICpwb3J0LAo+ICBzdGF0aWMgdm9pZCBjcDIxMHhfY2hhbmdlX3NwZWVkKHN0cnVjdCB0 dHlfc3RydWN0ICp0dHksCj4gIAkJc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgc3RydWN0 IGt0ZXJtaW9zICpvbGRfdGVybWlvcykKPiAgewo+IC0JdTMyIGJhdWQ7Cj4gLQo+IC0JYmF1ZCA9 IHR0eS0+dGVybWlvcy5jX29zcGVlZDsKPiArCWJvb2wgaXNfY3AyMTAybjsKPiArCXUzMiBiYXVk ID0gdHR5LT50ZXJtaW9zLmNfb3NwZWVkOwo+ICsJc3RydWN0IGNwMjEweF9zZXJpYWxfcHJpdmF0 ZSAqcHJpdiA9IHVzYl9nZXRfc2VyaWFsX2RhdGEocG9ydC0+c2VyaWFsKTsKPiAgCj4gLQkvKiBU aGlzIG1hcHMgdGhlIHJlcXVlc3RlZCByYXRlIHRvIGEgcmF0ZSB2YWxpZCBvbiBjcDIxMDIgb3Ig Y3AyMTAzLAo+IC0JICogb3IgdG8gYW4gYXJiaXRyYXJ5IHJhdGUgaW4gWzFNLDJNXS4KPiArCS8q IFRoaXMgbWFwcyB0aGUgcmVxdWVzdGVkIHJhdGUgdG8gYSByYXRlIHZhbGlkIG9uIGNwMjEwMihu KSBvcgo+ICsJICogY3AyMTAzIG9yIHRvIGFuIGFyYml0cmFyeSByYXRlIGluIFsxTSwyTV0uCj4g IAkgKgo+ICAJICogTk9URTogQjAgaXMgbm90IGltcGxlbWVudGVkLgo+ICAJICovCj4gLQliYXVk ID0gY3AyMTB4X3F1YW50aXNlX2JhdWRyYXRlKGJhdWQpOwo+ICsJaXNfY3AyMTAybiA9CShwcml2 LT5wYXJ0bnVtID09IENQMjEwWF9QQVJUTlVNX0NQMjEwMk5fUUZOMjgpIHx8Cj4gKwkJCShwcml2 LT5wYXJ0bnVtID09IENQMjEwWF9QQVJUTlVNX0NQMjEwMk5fUUZOMjQpIHx8Cj4gKwkJCShwcml2 LT5wYXJ0bnVtID09IENQMjEwWF9QQVJUTlVNX0NQMjEwMk5fUUZOMjApOwo+ICsJYmF1ZCA9IGNw MjEweF9xdWFudGlzZV9iYXVkcmF0ZShiYXVkLCBpc19jcDIxMDJuKTsKClNvIG1vc3Qgb2YgdGhl c2UgY2hhbmdlcyB3b3VsZCBub3QgYmUgbmVlZGVkLiBKdXN0IHBhc3MgaW4gcG9ydC0+c2VyaWFs CnRvIGNwMjEweF9xdWFudGlzZV9iYXVkcmF0ZSgpLgoKVGhhbmtzLApKb2hhbgotLS0KVG8gdW5z dWJzY3JpYmUgZnJvbSB0aGlzIGxpc3Q6IHNlbmQgdGhlIGxpbmUgInVuc3Vic2NyaWJlIGxpbnV4 LXVzYiIgaW4KdGhlIGJvZHkgb2YgYSBtZXNzYWdlIHRvIG1ham9yZG9tb0B2Z2VyLmtlcm5lbC5v cmcKTW9yZSBtYWpvcmRvbW8gaW5mbyBhdCAgaHR0cDovL3ZnZXIua2VybmVsLm9yZy9tYWpvcmRv bW8taW5mby5odG1sCg==