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,1/5] usb: serial: f81534: add high baud rate support From: Johan Hovold Message-Id: <20180109110841.GN11344@localhost> Date: Tue, 9 Jan 2018 12:08:41 +0100 To: "Ji-Ze Hong \(Peter Hong\)" Cc: johan@kernel.org, gregkh@linuxfoundation.org, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, peter_hong@fintek.com.tw, "Ji-Ze Hong \(Peter Hong\)" List-ID: T24gVGh1LCBKYW4gMDQsIDIwMTggYXQgMTA6Mjk6MTdBTSArMDgwMCwgSmktWmUgSG9uZyAoUGV0 ZXIgSG9uZykgd3JvdGU6Cj4gVGhlIEY4MTUzMi81MzQgaGFkIDQgY2xvY2tzb3VyY2UgMS44NDYv MTguNDYvMTQuNzcvMjRNSHogYW5kIGJhdWQgcmF0ZXMKPiBjYW4gYmUgdXAgdG8gMS41TWJpdHMg d2l0aCAyNE1Iei4KPiAKPiBUaGlzIGRldmljZSBtYXkgZ2VuZXJhdGUgZGF0YSBvdmVycnVuIHdo ZW4gYmF1ZCByYXRlIHNldHRpbmcgdG8gOTIxNjAwYnBzCj4gb3IgaGlnaGVyIHdpdGggb2xkIFVB UlQgdHJpZ2dlciBsZXZlbCBzZXR0aW5nICg4eDE0PTExMikgd2l0aCBmdWxsCj4gbG9hZGluZy4g V2UnbGwgY2hhbmdlIHRyaWdnZXIgbGV2ZWwgZnJvbSA4eDE0PTExMiB0byA4eDg9NjQgdG8gYXZv aWQgZGF0YQo+IG92ZXJydW4uCj4gCj4gQWxzbyB0aGUgcmVhZC93cml0ZSBvZiBFUDAgd2lsbCBi ZSBhZmZlY3RlZCBieSB0aGlzIHBhdGNoLiBUaGUgd29yc3QgY2FzZQo+IG9mIHJlc3BvbmRpbmcg dGltZSBpcyAyMHMgd2hlbiBhbGwgc2VyaWFsIHBvcnQgYXJlIGZ1bGwgbG9hZGluZyBhbmQgdHJ5 aW5nCj4gdG8gYWNjZXNzIEVQMCwgc28gd2UgY2hhbmdlIEVQMCB0aW1lb3V0IGZyb20gMTAgdG8g MjBzLgoKU3VyZWx5IHlvdSBtZWFudCAxIGFuZCAyIHNlY29uZHMgcmVzcGVjdGl2ZWx5IGhlcmU/ IEFuZCBpZiB5b3UgaGF2ZQppbmRlZWQgbWVhc3VyZWQgcmVzcG9uc2UgdGltZXMgY2xvc2UgdG8g MjAwMCBtcyB0aGVuIHBlcmhhcHMgeW91IHdhbnQgdG8KYWRkIGV2ZW4gbW9yZSBtYXJnaW4/Cgo+ IEY4MTUzMi81MzQgQ2xvY2sgcmVnaXN0ZXIgKG9mZnNldCArMDhoKQo+IAo+IEJpdDA6CVVBUlQg RW5hYmxlIChhbHdheXMgb24pCj4gQml0Mi0xOglDbG9jayBzb3VyY2Ugc2VsZWN0b3IKPiAJCQkw MDogMS44NDZNSHouCj4gCQkJMDE6IDE4LjQ2TUh6Lgo+IAkJCTEwOiAyNE1Iei4KPiAJCQkxMTog MTQuNzdNSHouCj4gCj4gU2lnbmVkLW9mZi1ieTogSmktWmUgSG9uZyAoUGV0ZXIgSG9uZykgPGhw ZXRlcitsaW51eF9rZXJuZWxAZ21haWwuY29tPgo+IC0tLQo+IHYyOgo+IAkxOiBBZGQgY29tbWl0 IG1lc3NhZ2UgZm9yIEY4MTUzNF9VU0JfVElNRU9VVCBmcm9tIDEwMDAgdG8gMjAwMCBhbmQKPiAJ ICAgdHJpZ2dlciBsZXZlbCBmcm9tIFVBUlRfRkNSX1JfVFJJR18xMSB0byBVQVJUX0ZDUl9UUklH R0VSXzguCj4gCTI6IFNlcGFyYXRlIFVBUlQgRW5hYmxlIGJpdCBmcm9tIGNsb2NrIHNvdXJjZXMu Cj4gCTM6IEFkZCBoZWxwIGZ1bmN0aW9uICJmODE1MzRfZmluZF9jbGsoKSIgdG8gY2FsY3VsYXRl IGJhdWQgcmF0ZSBhbmQKPiAJICAgY2xvY2sgc291cmNlCj4gCTQ6IEFkZCBzaGFkb3cgY2xvY2sg cmVnaXN0ZXIgZm9yIGZ1dHVyZSB1c2UuIAo+IAo+ICBkcml2ZXJzL3VzYi9zZXJpYWwvZjgxNTM0 LmMgfCA4NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0KPiAg MSBmaWxlIGNoYW5nZWQsIDcxIGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQo+IAo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvZjgxNTM0LmMgYi9kcml2ZXJzL3VzYi9zZXJp YWwvZjgxNTM0LmMKPiBpbmRleCBlNDU3M2I0Yzg5MzUuLjc1OGVmMDQyNDE2NCAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwvZjgxNTM0LmMKPiArKysgYi9kcml2ZXJzL3VzYi9zZXJp YWwvZjgxNTM0LmMKPiBAQCAtNDEsNiArNDEsNyBAQAo+ICAjZGVmaW5lIEY4MTUzNF9NT0RFTV9D T05UUk9MX1JFRwkoMHgwNCArIEY4MTUzNF9VQVJUX0JBU0VfQUREUkVTUykKPiAgI2RlZmluZSBG ODE1MzRfTElORV9TVEFUVVNfUkVHCQkoMHgwNSArIEY4MTUzNF9VQVJUX0JBU0VfQUREUkVTUykK PiAgI2RlZmluZSBGODE1MzRfTU9ERU1fU1RBVFVTX1JFRwkJKDB4MDYgKyBGODE1MzRfVUFSVF9C QVNFX0FERFJFU1MpCj4gKyNkZWZpbmUgRjgxNTM0X0NMT0NLX1JFRwkJKDB4MDggKyBGODE1MzRf VUFSVF9CQVNFX0FERFJFU1MpCj4gICNkZWZpbmUgRjgxNTM0X0NPTkZJRzFfUkVHCQkoMHgwOSAr IEY4MTUzNF9VQVJUX0JBU0VfQUREUkVTUykKPiAgCj4gICNkZWZpbmUgRjgxNTM0X0RFRl9DT05G X0FERFJFU1NfU1RBUlQJMHgzMDAwCj4gQEAgLTU3LDcgKzU4LDcgQEAKPiAgCj4gIC8qIERlZmF1 bHQgVVJCIHRpbWVvdXQgZm9yIFVTQiBvcGVyYXRpb25zICovCj4gICNkZWZpbmUgRjgxNTM0X1VT Ql9NQVhfUkVUUlkJCTEwCj4gLSNkZWZpbmUgRjgxNTM0X1VTQl9USU1FT1VUCQkxMDAwCj4gKyNk ZWZpbmUgRjgxNTM0X1VTQl9USU1FT1VUCQkyMDAwCj4gICNkZWZpbmUgRjgxNTM0X1NFVF9HRVRf UkVHSVNURVIJCTB4QTAKPiAgCj4gICNkZWZpbmUgRjgxNTM0X05VTV9QT1JUCQkJNAo+IEBAIC05 Niw3ICs5Nyw2IEBACj4gICNkZWZpbmUgRjgxNTM0X0NNRF9SRUFECQkJMHgwMwo+ICAKPiAgI2Rl ZmluZSBGODE1MzRfREVGQVVMVF9CQVVEX1JBVEUJOTYwMAo+IC0jZGVmaW5lIEY4MTUzNF9NQVhf QkFVRFJBVEUJCTExNTIwMAo+ICAKPiAgI2RlZmluZSBGODE1MzRfUE9SVF9DT05GX0RJU0FCTEVf UE9SVAlCSVQoMykKPiAgI2RlZmluZSBGODE1MzRfUE9SVF9DT05GX05PVF9FWElTVF9QT1JUCUJJ VCg3KQo+IEBAIC0xMDYsNiArMTA2LDIzIEBACj4gICNkZWZpbmUgRjgxNTM0XzFYX1JYVFJJR0dF UgkJMHhjMwo+ICAjZGVmaW5lIEY4MTUzNF84WF9SWFRSSUdHRVIJCTB4Y2YKPiAgCj4gKy8qCj4g KyAqIEY4MTUzMi81MzQgQ2xvY2sgcmVnaXN0ZXJzIChvZmZzZXQgKzA4aCkKPiArICoKPiArICog Qml0MDoJVUFSVCBFbmFibGUgKGFsd2F5cyBvbikKPiArICogQml0Mi0xOglDbG9jayBzb3VyY2Ug c2VsZWN0b3IKPiArICoJCQkwMDogMS44NDZNSHouCj4gKyAqCQkJMDE6IDE4LjQ2TUh6Lgo+ICsg KgkJCTEwOiAyNE1Iei4KPiArICoJCQkxMTogMTQuNzdNSHouCj4gKyAqLwo+ICsKPiArI2RlZmlu ZSBGODE1MzRfVUFSVF9FTgkJCUJJVCgwKQo+ICsjZGVmaW5lIEY4MTUzNF9DTEtfMV84NDZfTUha CQlGODE1MzRfVUFSVF9FTgo+ICsjZGVmaW5lIEY4MTUzNF9DTEtfMThfNDZfTUhaCQkoRjgxNTM0 X1VBUlRfRU4gfCBCSVQoMSkpCj4gKyNkZWZpbmUgRjgxNTM0X0NMS18yNF9NSFoJCShGODE1MzRf VUFSVF9FTiB8IEJJVCgyKSkKPiArI2RlZmluZSBGODE1MzRfQ0xLXzE0Xzc3X01IWgkJKEY4MTUz NF9VQVJUX0VOIHwgQklUKDEpIHwgQklUKDIpKQoKSSBtZWFudCB0aGF0IHlvdSBzaG91bGQga2Vl cCB0aGUgVUFSVF9FTiBkZWZpbmUgc2VwYXJhdGUgZnJvbSB0aGUgQ0xLCnZhbHVlcyBhbmQgZXhw bGljaXRseSBpbmNsdWRlIGl0IHdoZW4geW91IHVwZGF0ZSB0aGUgcmVnaXN0ZXIgKG9yIGp1c3QK b25jZSB3aGVuIHlvdSBmaXJzdCBpbml0aWFsaXNlIHRoZSBzaGFkb3cgcmVnaXN0ZXIgZHVyaW5n IHByb2JlKS4KCj4gKwo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgZjgxNTM0 X2lkX3RhYmxlW10gPSB7Cj4gIAl7IFVTQl9ERVZJQ0UoRklOVEVLX1ZFTkRPUl9JRF8xLCBGSU5U RUtfREVWSUNFX0lEKSB9LAo+ICAJeyBVU0JfREVWSUNFKEZJTlRFS19WRU5ET1JfSURfMiwgRklO VEVLX0RFVklDRV9JRCkgfSwKPiBAQCAtMTI5LDEyICsxNDYsMTggQEAgc3RydWN0IGY4MTUzNF9w b3J0X3ByaXZhdGUgewo+ICAJc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydDsKPiAgCXVuc2ln bmVkIGxvbmcgdHhfZW1wdHk7Cj4gIAlzcGlubG9ja190IG1zcl9sb2NrOwo+ICsJdTMyIGJhdWRf YmFzZTsKPiAgCXU4IHNoYWRvd19tY3I7Cj4gIAl1OCBzaGFkb3dfbGNyOwo+ICAJdTggc2hhZG93 X21zcjsKPiArCXU4IHNoYWRvd19jbGs7Cj4gIAl1OCBwaHlfbnVtOwo+ICB9Owo+ICAKPiArc3Rh dGljIHUzMiBjb25zdCBiYXVkcmF0ZV90YWJsZVtdID0gezExNTIwMCwgOTIxNjAwLCAxMTUyMDAw LCAxNTAwMDAwfTsKPiArc3RhdGljIHU4IGNvbnN0IGNsb2NrX3RhYmxlW10gPSB7RjgxNTM0X0NM S18xXzg0Nl9NSFosIEY4MTUzNF9DTEtfMTRfNzdfTUhaLAo+ICsJCQkJRjgxNTM0X0NMS18xOF80 Nl9NSFosIEY4MTUzNF9DTEtfMjRfTUhafTsKPiArCj4gIHN0YXRpYyBpbnQgZjgxNTM0X2xvZ2lj X3RvX3BoeV9wb3J0KHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwsCj4gIAkJCQkJc3RydWN0IHVz Yl9zZXJpYWxfcG9ydCAqcG9ydCkKPiAgewo+IEBAIC00NjAsMTMgKzQ4Myw0OCBAQCBzdGF0aWMg dTMyIGY4MTUzNF9jYWxjX2JhdWRfZGl2aXNvcih1MzIgYmF1ZHJhdGUsIHUzMiBjbG9ja3JhdGUp Cj4gIAlyZXR1cm4gRElWX1JPVU5EX0NMT1NFU1QoY2xvY2tyYXRlLCBiYXVkcmF0ZSk7Cj4gIH0K PiAgCj4gLXN0YXRpYyBpbnQgZjgxNTM0X3NldF9wb3J0X2NvbmZpZyhzdHJ1Y3QgdXNiX3Nlcmlh bF9wb3J0ICpwb3J0LCB1MzIgYmF1ZHJhdGUsCj4gLQkJCQkJdTggbGNyKQo+ICtzdGF0aWMgaW50 IGY4MTUzNF9maW5kX2Nsayh1MzIgYmF1ZHJhdGUpCj4gK3sKPiArCWludCBpZHg7Cj4gKwo+ICsJ Zm9yIChpZHggPSAwOyBpZHggPCBBUlJBWV9TSVpFKGJhdWRyYXRlX3RhYmxlKTsgKytpZHgpIHsK PiArCQlpZiAoYmF1ZHJhdGUgPD0gYmF1ZHJhdGVfdGFibGVbaWR4XSAmJgo+ICsJCQkJYmF1ZHJh dGVfdGFibGVbaWR4XSAlIGJhdWRyYXRlID09IDApCj4gKwkJCXJldHVybiBpZHg7Cj4gKwl9Cj4g Kwo+ICsJcmV0dXJuIC1FSU5WQUw7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgZjgxNTM0X3NldF9w b3J0X2NvbmZpZyhzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LAo+ICsJCXN0cnVjdCB0dHlf c3RydWN0ICp0dHksIHUzMiBiYXVkcmF0ZSwgdTMyIG9sZF9iYXVkcmF0ZSwgdTggbGNyKQo+ICB7 Cj4gIAlzdHJ1Y3QgZjgxNTM0X3BvcnRfcHJpdmF0ZSAqcG9ydF9wcml2ID0gdXNiX2dldF9zZXJp YWxfcG9ydF9kYXRhKHBvcnQpOwo+ICAJdTMyIGRpdmlzb3I7Cj4gIAlpbnQgc3RhdHVzOwo+ICsJ aW50IGk7Cj4gKwlpbnQgaWR4Owo+ICAJdTggdmFsdWU7Cj4gKwl1MzIgYmF1ZF9saXN0W10gPSB7 YmF1ZHJhdGUsIG9sZF9iYXVkcmF0ZSwgRjgxNTM0X0RFRkFVTFRfQkFVRF9SQVRFfTsKPiArCj4g Kwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShiYXVkX2xpc3QpOyArK2kpIHsKPiArCQlpZHgg PSBmODE1MzRfZmluZF9jbGsoYmF1ZF9saXN0W2ldKTsKPiArCQlpZiAoaWR4ID49IDApIHsKPiAr CQkJYmF1ZHJhdGUgPSBiYXVkX2xpc3RbaV07Cj4gKwkJCXR0eV9lbmNvZGVfYmF1ZF9yYXRlKHR0 eSwgYmF1ZHJhdGUsIGJhdWRyYXRlKTsKPiArCQkJYnJlYWs7Cj4gKwkJfQo+ICsJfQoKSSBrbm93 IHlvdSB3aWxsIChjdXJyZW50bHkpIGFsd2F5cyBmaW5kIGEgdmFsaWQgYmF1ZHJhdGUgYWJvdmUs IGJ1dCBmb3IKZ29vZCBtZWFzdXJlIGFkZCBhIHNhbml0eSBjaGVjayBvbiBpZHggaGVyZS4KCj4g Kwo+ICsJcG9ydF9wcml2LT5iYXVkX2Jhc2UgPSBiYXVkcmF0ZV90YWJsZVtpZHhdOwo+ICsJcG9y dF9wcml2LT5zaGFkb3dfY2xrID0gY2xvY2tfdGFibGVbaWR4XTsKPiArCj4gKwlzdGF0dXMgPSBm ODE1MzRfc2V0X3BvcnRfcmVnaXN0ZXIocG9ydCwgRjgxNTM0X0NMT0NLX1JFRywKPiArCQkJcG9y dF9wcml2LT5zaGFkb3dfY2xrKTsKPiArCWlmIChzdGF0dXMpIHsKPiArCQlkZXZfZXJyKCZwb3J0 LT5kZXYsICJDTE9DS19SRUcgc2V0dGluZyBmYWlsZWRcbiIpOwo+ICsJCXJldHVybiBzdGF0dXM7 Cj4gKwl9Cj4gIAo+ICAJaWYgKGJhdWRyYXRlIDw9IDEyMDApCj4gIAkJdmFsdWUgPSBGODE1MzRf MVhfUlhUUklHR0VSOwkvKiAxMjggRklGTyAmIFRMOiAxeCAqLwo+IEBAIC00ODIsNyArNTQwLDcg QEAgc3RhdGljIGludCBmODE1MzRfc2V0X3BvcnRfY29uZmlnKHN0cnVjdCB1c2Jfc2VyaWFsX3Bv cnQgKnBvcnQsIHUzMiBiYXVkcmF0ZSwKPiAgCWlmIChiYXVkcmF0ZSA8PSAxMjAwKQo+ICAJCXZh bHVlID0gVUFSVF9GQ1JfVFJJR0dFUl8xIHwgVUFSVF9GQ1JfRU5BQkxFX0ZJRk87IC8qIFRMOiAx ICovCj4gIAllbHNlCj4gLQkJdmFsdWUgPSBVQVJUX0ZDUl9SX1RSSUdfMTEgfCBVQVJUX0ZDUl9F TkFCTEVfRklGTzsgLyogVEw6IDE0ICovCj4gKwkJdmFsdWUgPSBVQVJUX0ZDUl9UUklHR0VSXzgg fCBVQVJUX0ZDUl9FTkFCTEVfRklGTzsgLyogVEw6IDggKi8KPiAgCj4gIAlzdGF0dXMgPSBmODE1 MzRfc2V0X3BvcnRfcmVnaXN0ZXIocG9ydCwgRjgxNTM0X0ZJRk9fQ09OVFJPTF9SRUcsCj4gIAkJ CQkJCXZhbHVlKTsKPiBAQCAtNDkxLDcgKzU0OSw3IEBAIHN0YXRpYyBpbnQgZjgxNTM0X3NldF9w b3J0X2NvbmZpZyhzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCB1MzIgYmF1ZHJhdGUsCj4g IAkJcmV0dXJuIHN0YXR1czsKPiAgCX0KPiAgCj4gLQlkaXZpc29yID0gZjgxNTM0X2NhbGNfYmF1 ZF9kaXZpc29yKGJhdWRyYXRlLCBGODE1MzRfTUFYX0JBVURSQVRFKTsKPiArCWRpdmlzb3IgPSBm ODE1MzRfY2FsY19iYXVkX2Rpdmlzb3IoYmF1ZHJhdGUsIGJhdWRyYXRlX3RhYmxlW2lkeF0pOwoK VXNlIHByaXYtPmJhdWRfYmFzZSBoZXJlIGluc3RlYWQgb2YgdGFibGVbaWR4XT8KCkpvaGFuCi0t LQpUbyB1bnN1YnNjcmliZSBmcm9tIHRoaXMgbGlzdDogc2VuZCB0aGUgbGluZSAidW5zdWJzY3Jp YmUgbGludXgtdXNiIiBpbgp0aGUgYm9keSBvZiBhIG1lc3NhZ2UgdG8gbWFqb3Jkb21vQHZnZXIu a2VybmVsLm9yZwpNb3JlIG1ham9yZG9tbyBpbmZvIGF0ICBodHRwOi8vdmdlci5rZXJuZWwub3Jn L21ham9yZG9tby1pbmZvLmh0bWwK