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/5] USB: serial: cp210x: generalise CP2102N line-speed handling From: Johan Hovold Message-Id: <20180718122501.14926-5-johan@kernel.org> Date: Wed, 18 Jul 2018 14:25:00 +0200 To: Johan Hovold Cc: Greg Kroah-Hartman , Karoly Pados , linux-usb@vger.kernel.org List-ID: VGhlIENQMjEwMk4gZXF1YXRpb25zIGZvciBkZXRlcm1pbmluZyB0aGUgYWN0dWFsIGJhdWQgcmF0 ZSBjYW4gYmUgdXNlZAphbHNvIGZvciBvdGhlciBkZXZpY2UgdHlwZXMsIHNvIGxldCdzIGZhY3Rv ciBpdCBvdXQuCgpOb3RlIHRoYXQgdGhpcyByZW1vdmVzIHRoZSBub3cgdW51c2VkIGNwMjEweF9p c19jcDIxMDJuKCkgaGVscGVyLgoKU2lnbmVkLW9mZi1ieTogSm9oYW4gSG92b2xkIDxqb2hhbkBr ZXJuZWwub3JnPgotLS0KIGRyaXZlcnMvdXNiL3NlcmlhbC9jcDIxMHguYyB8IDUwICsrKysrKysr KysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAyNyBpbnNlcnRp b25zKCspLCAyMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwv Y3AyMTB4LmMgYi9kcml2ZXJzL3VzYi9zZXJpYWwvY3AyMTB4LmMKaW5kZXggMzc3ODY4NWM3Yjk5 Li45NTc0MDZhYWM5YmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9jcDIxMHguYwor KysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvY3AyMTB4LmMKQEAgLTIzMCw2ICsyMzAsNyBAQCBzdHJ1 Y3QgY3AyMTB4X3NlcmlhbF9wcml2YXRlIHsKICNlbmRpZgogCXU4CQkJcGFydG51bTsKIAlzcGVl ZF90CQkJbWF4X3NwZWVkOworCWJvb2wJCQl1c2VfYWN0dWFsX3JhdGU7CiB9OwogCiBzdHJ1Y3Qg Y3AyMTB4X3BvcnRfcHJpdmF0ZSB7CkBAIC00NTcsMTUgKzQ1OCw2IEBAIHN0cnVjdCBjcDIxMHhf Z3Bpb193cml0ZSB7CiAJdTgJc3RhdGU7CiB9IF9fcGFja2VkOwogCi1zdGF0aWMgYm9vbCBjcDIx MHhfaXNfY3AyMTAybihzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKQotewotCXN0cnVjdCBjcDIx MHhfc2VyaWFsX3ByaXZhdGUgKnByaXYgPSB1c2JfZ2V0X3NlcmlhbF9kYXRhKHNlcmlhbCk7Ci0K LQlyZXR1cm4JKHByaXYtPnBhcnRudW0gPT0gQ1AyMTBYX1BBUlROVU1fQ1AyMTAyTl9RRk4yOCkg fHwKLQkJKHByaXYtPnBhcnRudW0gPT0gQ1AyMTBYX1BBUlROVU1fQ1AyMTAyTl9RRk4yNCkgfHwK LQkJKHByaXYtPnBhcnRudW0gPT0gQ1AyMTBYX1BBUlROVU1fQ1AyMTAyTl9RRk4yMCk7Ci19Ci0K IC8qCiAgKiBIZWxwZXIgdG8gZ2V0IGludGVyZmFjZSBudW1iZXIgd2hlbiB3ZSBvbmx5IGhhdmUg c3RydWN0IHVzYl9zZXJpYWwuCiAgKi8KQEAgLTEwMzYsNiArMTAyOCwyMyBAQCBzdGF0aWMgc3Bl ZWRfdCBjcDIxMHhfZ2V0X2FuMjA1X3JhdGUoc3BlZWRfdCBiYXVkKQogCXJldHVybiBjcDIxMHhf YW4yMDVfdGFibGUxW2ldLnJhdGU7CiB9CiAKK3N0YXRpYyBzcGVlZF90IGNwMjEweF9nZXRfYWN0 dWFsX3JhdGUoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCwgc3BlZWRfdCBiYXVkKQoreworCXN0 cnVjdCBjcDIxMHhfc2VyaWFsX3ByaXZhdGUgKnByaXYgPSB1c2JfZ2V0X3NlcmlhbF9kYXRhKHNl cmlhbCk7CisJdW5zaWduZWQgaW50IHByZXNjYWxlID0gMTsKKwl1bnNpZ25lZCBpbnQgZGl2Owor CisJYmF1ZCA9IGNsYW1wKGJhdWQsIDMwMHUsIHByaXYtPm1heF9zcGVlZCk7CisKKwlpZiAoYmF1 ZCA8PSAzNjUpCisJCXByZXNjYWxlID0gNDsKKworCWRpdiA9IERJVl9ST1VORF9DTE9TRVNUKDQ4 MDAwMDAwLCAyICogcHJlc2NhbGUgKiBiYXVkKTsKKwliYXVkID0gNDgwMDAwMDAgLyAoMiAqIHBy ZXNjYWxlICogZGl2KTsKKworCXJldHVybiBiYXVkOworfQorCiAvKgogICogQ1AyMTAxIHN1cHBv cnRzIHRoZSBmb2xsb3dpbmcgYmF1ZCByYXRlczoKICAqCkBAIC0xMDcyLDI1ICsxMDgxLDE3IEBA IHN0YXRpYyB2b2lkIGNwMjEweF9jaGFuZ2Vfc3BlZWQoc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSwK IAliYXVkID0gdHR5LT50ZXJtaW9zLmNfb3NwZWVkOwogCiAJLyoKLQkgKiBUaGlzIG1hcHMgdGhl IHJlcXVlc3RlZCByYXRlIHRvIHRoZSBhY3R1YWwgcmF0ZSBvbiBjcDIxMDJuLCBhIHZhbGlkCi0J ICogcmF0ZSBvbiBjcDIxMDIgb3IgY3AyMTAzLCBvciB0byBhbiBhcmJpdHJhcnkgcmF0ZSBpbgot CSAqIFsxTSwgbWF4X3NwZWVkXS4KKwkgKiBUaGlzIG1hcHMgdGhlIHJlcXVlc3RlZCByYXRlIHRv IHRoZSBhY3R1YWwgcmF0ZSwgYSB2YWxpZCByYXRlIG9uCisJICogY3AyMTAyIG9yIGNwMjEwMywg b3IgdG8gYW4gYXJiaXRyYXJ5IHJhdGUgaW4gWzFNLCBtYXhfc3BlZWRdLgogCSAqCiAJICogTk9U RTogQjAgaXMgbm90IGltcGxlbWVudGVkLgogCSAqLwotCWlmIChjcDIxMHhfaXNfY3AyMTAybihz ZXJpYWwpKSB7Ci0JCWludCBjbGtfZGl2OwotCQlpbnQgcHJlc2NhbGVyOwotCi0JCWJhdWQgPSBj bGFtcChiYXVkLCAzMDB1LCBwcml2LT5tYXhfc3BlZWQpOwotCQlwcmVzY2FsZXIgPSAoYmF1ZCA8 PSAzNjUpID8gNCA6IDE7Ci0JCWNsa19kaXYgPSBESVZfUk9VTkRfQ0xPU0VTVCg0ODAwMDAwMCwg MiAqIHByZXNjYWxlciAqIGJhdWQpOwotCQliYXVkID0gNDgwMDAwMDAgLyAoMiAqIHByZXNjYWxl ciAqIGNsa19kaXYpOwotCX0gZWxzZSBpZiAoYmF1ZCA8IDEwMDAwMDApIHsKKwlpZiAocHJpdi0+ dXNlX2FjdHVhbF9yYXRlKQorCQliYXVkID0gY3AyMTB4X2dldF9hY3R1YWxfcmF0ZShzZXJpYWws IGJhdWQpOworCWVsc2UgaWYgKGJhdWQgPCAxMDAwMDAwKQogCQliYXVkID0gY3AyMTB4X2dldF9h bjIwNV9yYXRlKGJhdWQpOwotCX0gZWxzZSBpZiAoYmF1ZCA+IHByaXYtPm1heF9zcGVlZCkgewor CWVsc2UgaWYgKGJhdWQgPiBwcml2LT5tYXhfc3BlZWQpCiAJCWJhdWQgPSBwcml2LT5tYXhfc3Bl ZWQ7Ci0JfQogCiAJZGV2X2RiZygmcG9ydC0+ZGV2LCAiJXMgLSBzZXR0aW5nIGJhdWQgcmF0ZSB0 byAldVxuIiwgX19mdW5jX18sIGJhdWQpOwogCWlmIChjcDIxMHhfd3JpdGVfdTMyX3JlZyhwb3J0 LCBDUDIxMFhfU0VUX0JBVURSQVRFLCBiYXVkKSkgewpAQCAtMTUyNCw2ICsxNTI1LDcgQEAgc3Rh dGljIGludCBjcDIxMHhfcG9ydF9yZW1vdmUoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCkK IHN0YXRpYyB2b2lkIGNwMjEweF9pbml0X21heF9zcGVlZChzdHJ1Y3QgdXNiX3NlcmlhbCAqc2Vy aWFsKQogewogCXN0cnVjdCBjcDIxMHhfc2VyaWFsX3ByaXZhdGUgKnByaXYgPSB1c2JfZ2V0X3Nl cmlhbF9kYXRhKHNlcmlhbCk7CisJYm9vbCB1c2VfYWN0dWFsX3JhdGUgPSBmYWxzZTsKIAlzcGVl ZF90IG1heDsKIAogCXN3aXRjaCAocHJpdi0+cGFydG51bSkgewpAQCAtMTU0Nyw2ICsxNTQ5LDcg QEAgc3RhdGljIHZvaWQgY3AyMTB4X2luaXRfbWF4X3NwZWVkKHN0cnVjdCB1c2Jfc2VyaWFsICpz ZXJpYWwpCiAJY2FzZSBDUDIxMFhfUEFSVE5VTV9DUDIxMDJOX1FGTjI4OgogCWNhc2UgQ1AyMTBY X1BBUlROVU1fQ1AyMTAyTl9RRk4yNDoKIAljYXNlIENQMjEwWF9QQVJUTlVNX0NQMjEwMk5fUUZO MjA6CisJCXVzZV9hY3R1YWxfcmF0ZSA9IHRydWU7CiAJCW1heCA9IDMwMDAwMDA7CiAJCWJyZWFr OwogCWRlZmF1bHQ6CkBAIC0xNTU1LDYgKzE1NTgsNyBAQCBzdGF0aWMgdm9pZCBjcDIxMHhfaW5p dF9tYXhfc3BlZWQoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCkKIAl9CiAKIAlwcml2LT5tYXhf c3BlZWQgPSBtYXg7CisJcHJpdi0+dXNlX2FjdHVhbF9yYXRlID0gdXNlX2FjdHVhbF9yYXRlOwog fQogCiBzdGF0aWMgaW50IGNwMjEweF9hdHRhY2goc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCkK