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: [3/5] USB: serial: cp210x: improve baudrate support for CP2102N From: Johan Hovold Message-Id: <20180718122501.14926-4-johan@kernel.org> Date: Wed, 18 Jul 2018 14:24:59 +0200 To: Johan Hovold Cc: Greg Kroah-Hartman , Karoly Pados , linux-usb@vger.kernel.org List-ID: RnJvbTogS2Fyb2x5IFBhZG9zIDxwYWRvc0BwYWRvcy5odT4KCkNQMjEwMk4gZGV2aWNlcyBzdXBw b3J0IGEgbG90IG1vcmUgYmF1ZHJhdGVzIHRoYW4gZWFybGllciBjaGlwcyBieQpTaUxhYnMuIFRo ZXNlIGRldmljZXMgYXJlIG5vdCBjb25zdHJhaW5lZCBhbnltb3JlIGJ5IHRoZSB0YWJsZSBpbiBB TjIwNSwKYW5kIGFyZSBhYmxlIHRvIGdlbmVyYXRlIGFsbW9zdCBhbnkgYmF1ZHJhdGUgaW4gdGhl IHN1cHBvcnRlZCByYW5nZQp3aXRoIG9ubHkgbWluaW1hbCBlcnJvcnMuIFRoaXMgaGFzIGFsc28g YmVlbiB2ZXJpZmllZCB3aXRoIGEgc2NvcGUgb24KYSBwaHlzaWNhbCBkZXZpY2UuIFRoaXMgcGF0 Y2ggYWRkcyBzdXBwb3J0IGZvciBhbGwgYmF1ZHJhdGVzIHN1cHBvcnRlZApieSB0aGUgQ1AyMTAy Ti4KClNpZ25lZC1vZmYtYnk6IEthcm9seSBQYWRvcyA8cGFkb3NAcGFkb3MuaHU+Clsgam9oYW46 IHJld29yayBvbiB0b3Agb2YgYW4yMDUgYW5kIG1heC1zcGVlZCBwYXRjaGVzIF0KU2lnbmVkLW9m Zi1ieTogSm9oYW4gSG92b2xkIDxqb2hhbkBrZXJuZWwub3JnPgotLS0KIGRyaXZlcnMvdXNiL3Nl cmlhbC9jcDIxMHguYyB8IDM5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0K IDEgZmlsZSBjaGFuZ2VkLCAzNCBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9jcDIxMHguYyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9j cDIxMHguYwppbmRleCA0MjgxZjJiZmUwZTEuLjM3Nzg2ODVjN2I5OSAxMDA2NDQKLS0tIGEvZHJp dmVycy91c2Ivc2VyaWFsL2NwMjEweC5jCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9jcDIxMHgu YwpAQCAtMzU1LDYgKzM1NSw5IEBAIHN0YXRpYyBzdHJ1Y3QgdXNiX3NlcmlhbF9kcml2ZXIgKiBj b25zdCBzZXJpYWxfZHJpdmVyc1tdID0gewogI2RlZmluZSBDUDIxMFhfUEFSVE5VTV9DUDIxMDQJ MHgwNAogI2RlZmluZSBDUDIxMFhfUEFSVE5VTV9DUDIxMDUJMHgwNQogI2RlZmluZSBDUDIxMFhf UEFSVE5VTV9DUDIxMDgJMHgwOAorI2RlZmluZSBDUDIxMFhfUEFSVE5VTV9DUDIxMDJOX1FGTjI4 CTB4MjAKKyNkZWZpbmUgQ1AyMTBYX1BBUlROVU1fQ1AyMTAyTl9RRk4yNAkweDIxCisjZGVmaW5l IENQMjEwWF9QQVJUTlVNX0NQMjEwMk5fUUZOMjAJMHgyMgogI2RlZmluZSBDUDIxMFhfUEFSVE5V TV9VTktOT1dOCTB4RkYKIAogLyogQ1AyMTBYX0dFVF9DT01NX1NUQVRVUyByZXR1cm5zIHRoZXNl IDB4MTMgYnl0ZXMgKi8KQEAgLTQ1NCw2ICs0NTcsMTUgQEAgc3RydWN0IGNwMjEweF9ncGlvX3dy aXRlIHsKIAl1OAlzdGF0ZTsKIH0gX19wYWNrZWQ7CiAKK3N0YXRpYyBib29sIGNwMjEweF9pc19j cDIxMDJuKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwpCit7CisJc3RydWN0IGNwMjEweF9zZXJp YWxfcHJpdmF0ZSAqcHJpdiA9IHVzYl9nZXRfc2VyaWFsX2RhdGEoc2VyaWFsKTsKKworCXJldHVy bgkocHJpdi0+cGFydG51bSA9PSBDUDIxMFhfUEFSVE5VTV9DUDIxMDJOX1FGTjI4KSB8fAorCQko cHJpdi0+cGFydG51bSA9PSBDUDIxMFhfUEFSVE5VTV9DUDIxMDJOX1FGTjI0KSB8fAorCQkocHJp di0+cGFydG51bSA9PSBDUDIxMFhfUEFSVE5VTV9DUDIxMDJOX1FGTjIwKTsKK30KKwogLyoKICAq IEhlbHBlciB0byBnZXQgaW50ZXJmYWNlIG51bWJlciB3aGVuIHdlIG9ubHkgaGF2ZSBzdHJ1Y3Qg dXNiX3NlcmlhbC4KICAqLwpAQCAtMTA1MywyMCArMTA2NSwzMiBAQCBzdGF0aWMgc3BlZWRfdCBj cDIxMHhfZ2V0X2FuMjA1X3JhdGUoc3BlZWRfdCBiYXVkKQogc3RhdGljIHZvaWQgY3AyMTB4X2No YW5nZV9zcGVlZChzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5LAogCQlzdHJ1Y3QgdXNiX3NlcmlhbF9w b3J0ICpwb3J0LCBzdHJ1Y3Qga3Rlcm1pb3MgKm9sZF90ZXJtaW9zKQogewotCXN0cnVjdCBjcDIx MHhfc2VyaWFsX3ByaXZhdGUgKnByaXYgPSB1c2JfZ2V0X3NlcmlhbF9kYXRhKHBvcnQtPnNlcmlh bCk7CisJc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCA9IHBvcnQtPnNlcmlhbDsKKwlzdHJ1Y3Qg Y3AyMTB4X3NlcmlhbF9wcml2YXRlICpwcml2ID0gdXNiX2dldF9zZXJpYWxfZGF0YShzZXJpYWwp OwogCXUzMiBiYXVkOwogCiAJYmF1ZCA9IHR0eS0+dGVybWlvcy5jX29zcGVlZDsKIAotCS8qIFRo aXMgbWFwcyB0aGUgcmVxdWVzdGVkIHJhdGUgdG8gYSByYXRlIHZhbGlkIG9uIGNwMjEwMiBvciBj cDIxMDMsCi0JICogb3IgdG8gYW4gYXJiaXRyYXJ5IHJhdGUgaW4gWzFNLCBtYXhfc3BlZWRdCisJ LyoKKwkgKiBUaGlzIG1hcHMgdGhlIHJlcXVlc3RlZCByYXRlIHRvIHRoZSBhY3R1YWwgcmF0ZSBv biBjcDIxMDJuLCBhIHZhbGlkCisJICogcmF0ZSBvbiBjcDIxMDIgb3IgY3AyMTAzLCBvciB0byBh biBhcmJpdHJhcnkgcmF0ZSBpbgorCSAqIFsxTSwgbWF4X3NwZWVkXS4KIAkgKgogCSAqIE5PVEU6 IEIwIGlzIG5vdCBpbXBsZW1lbnRlZC4KIAkgKi8KLQlpZiAoYmF1ZCA8IDEwMDAwMDApCisJaWYg KGNwMjEweF9pc19jcDIxMDJuKHNlcmlhbCkpIHsKKwkJaW50IGNsa19kaXY7CisJCWludCBwcmVz Y2FsZXI7CisKKwkJYmF1ZCA9IGNsYW1wKGJhdWQsIDMwMHUsIHByaXYtPm1heF9zcGVlZCk7CisJ CXByZXNjYWxlciA9IChiYXVkIDw9IDM2NSkgPyA0IDogMTsKKwkJY2xrX2RpdiA9IERJVl9ST1VO RF9DTE9TRVNUKDQ4MDAwMDAwLCAyICogcHJlc2NhbGVyICogYmF1ZCk7CisJCWJhdWQgPSA0ODAw MDAwMCAvICgyICogcHJlc2NhbGVyICogY2xrX2Rpdik7CisJfSBlbHNlIGlmIChiYXVkIDwgMTAw MDAwMCkgewogCQliYXVkID0gY3AyMTB4X2dldF9hbjIwNV9yYXRlKGJhdWQpOwotCWVsc2UgaWYg KGJhdWQgPiBwcml2LT5tYXhfc3BlZWQpCisJfSBlbHNlIGlmIChiYXVkID4gcHJpdi0+bWF4X3Nw ZWVkKSB7CiAJCWJhdWQgPSBwcml2LT5tYXhfc3BlZWQ7CisJfQogCiAJZGV2X2RiZygmcG9ydC0+ ZGV2LCAiJXMgLSBzZXR0aW5nIGJhdWQgcmF0ZSB0byAldVxuIiwgX19mdW5jX18sIGJhdWQpOwog CWlmIChjcDIxMHhfd3JpdGVfdTMyX3JlZyhwb3J0LCBDUDIxMFhfU0VUX0JBVURSQVRFLCBiYXVk KSkgewpAQCAtMTUyMCw2ICsxNTQ0LDExIEBAIHN0YXRpYyB2b2lkIGNwMjEweF9pbml0X21heF9z cGVlZChzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKQogCQllbHNlCiAJCQltYXggPSA5MjE2MDA7 CS8qIFNDSSAqLwogCQlicmVhazsKKwljYXNlIENQMjEwWF9QQVJUTlVNX0NQMjEwMk5fUUZOMjg6 CisJY2FzZSBDUDIxMFhfUEFSVE5VTV9DUDIxMDJOX1FGTjI0OgorCWNhc2UgQ1AyMTBYX1BBUlRO VU1fQ1AyMTAyTl9RRk4yMDoKKwkJbWF4ID0gMzAwMDAwMDsKKwkJYnJlYWs7CiAJZGVmYXVsdDoK IAkJbWF4ID0gMjAwMDAwMDsKIAkJYnJlYWs7Cg==