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: [V3,5/6] usb: serial: f81534: add H/W disable port support From: "Ji-Ze Hong \(Peter Hong\)" Message-Id: <1515653240-5420-5-git-send-email-hpeter+linux_kernel@gmail.com> Date: Thu, 11 Jan 2018 14:47:19 +0800 To: johan@kernel.org Cc: 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: VGhlIEY4MTUzMi81MzQgY2FuIGJlIGRpc2FibGUgcG9ydCBieSBtYW51ZmFjdHVyZXIgd2l0aApm b2xsb3dpbmcgSC9XIGRlc2lnbi4KICAgIDE6IENvbm5lY3QgRENEL0RTUi9DVFMvUkkgcGluIHRv IGdyb3VuZC4KICAgIDI6IENvbm5lY3QgUlggcGluIHRvIGdyb3VuZC4KCkluIGRyaXZlciwgd2Un bGwgaW1wbGVtZW50cyBzb21lIGRldGVjdCBtZXRob2QgbGlrZXMgZm9sbG93aW5nOgogICAgMTog UmVhZCBNU1IuCiAgICAyOiBUdXJuIE1DUiBMT09QIGJpdCBvbiwgb2ZmIGFuZCByZWFkIExTUiBh ZnRlciBkZWxheSB3aXRoIDYwbXMuCiAgICAgICBJdCdsbCBjb250YWluIEJSRUFLIHN0YXR1cyBp biBMU1IuCgpTaWduZWQtb2ZmLWJ5OiBKaS1aZSBIb25nIChQZXRlciBIb25nKSA8aHBldGVyK2xp bnV4X2tlcm5lbEBnbWFpbC5jb20+Ci0tLQpWMzoKCTE6IFNlcGFyYXRlIG9sZCBwYXRjaCBpbnRv IHJlZmFjdGluZyBhbmQgSC9XIGRpc2FibGUgcGF0Y2hlcy4KClYyOgoJMTogZjgxNTM0X2NoZWNr X3BvcnRfaHdfZGlzYWJsZWQoKSBjaGFuZ2UgcmV0dXJuIHR5cGUgZnJvbSBpbnQgdG8gYm9vbC4K CTI6IEFkZCBoZWxwIGZ1bmN0aW9uIGY4MTUzNF9zZXRfcGh5X3BvcnRfcmVnaXN0ZXIoKSAvCgkg ICBmODE1MzRfZ2V0X3BoeV9wb3J0X3JlZ2lzdGVyKCkgZm9yIGY4MTUzNF9jaGVja19wb3J0X2h3 X2Rpc2FibGVkKCkKCSAgIHRvIHJlYWQgcmVnaXN0ZXIgd2l0aG91dCBwb3J0LgoJMzogUmUtd3Jp dGUgZjgxNTM0X2NhbGNfbnVtX3BvcnRzKCkgJiBmODE1MzRfYXR0YWNoKCkgdG8gcmVkdWNlIHRo ZQoJICAgZjgxNTM0X2NoZWNrX3BvcnRfaHdfZGlzYWJsZWQoKSByZXBlYXRlZGx5IGNhbGxlZC4K CiBkcml2ZXJzL3VzYi9zZXJpYWwvZjgxNTM0LmMgfCA4MSArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA4MSBpbnNlcnRpb25zKCsp CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2Y4MTUzNC5jIGIvZHJpdmVycy91c2Iv c2VyaWFsL2Y4MTUzNC5jCmluZGV4IGJjMGE0YmQ1ZGNlYy4uMDhlZjcyZWEyZWVjIDEwMDY0NAot LS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwvZjgxNTM0LmMKKysrIGIvZHJpdmVycy91c2Ivc2VyaWFs L2Y4MTUzNC5jCkBAIC0zMDcsNiArMzA3LDIwIEBAIHN0YXRpYyBpbnQgZjgxNTM0X3NldF9tYXNr X3JlZ2lzdGVyKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwsIHUxNiByZWcsCiAJcmV0dXJuIGY4 MTUzNF9zZXRfcmVnaXN0ZXIoc2VyaWFsLCByZWcsIHRtcCk7CiB9CiAKK3N0YXRpYyBpbnQgZjgx NTM0X3NldF9waHlfcG9ydF9yZWdpc3RlcihzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsLCBpbnQg cGh5LAorCQkJCQl1MTYgcmVnLCB1OCBkYXRhKQoreworCXJldHVybiBmODE1MzRfc2V0X3JlZ2lz dGVyKHNlcmlhbCwgcmVnICsgRjgxNTM0X1VBUlRfT0ZGU0VUICogcGh5LAorCQkJCQlkYXRhKTsK K30KKworc3RhdGljIGludCBmODE1MzRfZ2V0X3BoeV9wb3J0X3JlZ2lzdGVyKHN0cnVjdCB1c2Jf c2VyaWFsICpzZXJpYWwsIGludCBwaHksCisJCQkJCXUxNiByZWcsIHU4ICpkYXRhKQoreworCXJl dHVybiBmODE1MzRfZ2V0X3JlZ2lzdGVyKHNlcmlhbCwgcmVnICsgRjgxNTM0X1VBUlRfT0ZGU0VU ICogcGh5LAorCQkJCQlkYXRhKTsKK30KKwogc3RhdGljIGludCBmODE1MzRfc2V0X3BvcnRfcmVn aXN0ZXIoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgdTE2IHJlZywKIAkJCQkJdTggZGF0 YSkKIHsKQEAgLTczMyw2ICs3NDcsNzAgQEAgc3RhdGljIGludCBmODE1MzRfZmluZF9jb25maWdf aWR4KHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwsIHU4ICppbmRleCkKIH0KIAogLyoKKyAqIFRo ZSBGODE1MzIvNTM0IHdpbGwgbm90IHJlcG9ydCBzZXJpYWwgcG9ydCB0byBVU0Igc2VyaWFsIHN1 YnN5c3RlbSB3aGVuCisgKiBIL1cgRENEL0RTUi9DVFMvUkkvUlggcGluIGNvbm5lY3RlZCB0byBn cm91bmQuCisgKgorICogVG8gZGV0ZWN0IFJYIHBpbiBzdGF0dXMsIHdlJ2xsIGVuYWJsZSBNQ1Ig aW50ZXJhbCBsb29wYmFjaywgZGlzYWJsZSBpdCBhbmQKKyAqIGRlbGF5ZWQgZm9yIDYwbXMuIEl0 IGNvbm5lY3RlZCB0byBncm91bmQgSWYgTFNSIHJlZ2lzdGVyIHJlcG9ydCBVQVJUX0xTUl9CSS4K KyAqLworc3RhdGljIGJvb2wgZjgxNTM0X2NoZWNrX3BvcnRfaHdfZGlzYWJsZWQoc3RydWN0IHVz Yl9zZXJpYWwgKnNlcmlhbCwgaW50IHBoeSkKK3sKKwlpbnQgc3RhdHVzOworCXU4IG9sZF9tY3I7 CisJdTggbXNyOworCXU4IGxzcjsKKwl1OCBtc3JfbWFzazsKKworCW1zcl9tYXNrID0gVUFSVF9N U1JfRENEIHwgVUFSVF9NU1JfUkkgfCBVQVJUX01TUl9EU1IgfCBVQVJUX01TUl9DVFM7CisKKwlz dGF0dXMgPSBmODE1MzRfZ2V0X3BoeV9wb3J0X3JlZ2lzdGVyKHNlcmlhbCwgcGh5LAorCQkJCUY4 MTUzNF9NT0RFTV9TVEFUVVNfUkVHLCAmbXNyKTsKKwlpZiAoc3RhdHVzKQorCQlyZXR1cm4gZmFs c2U7CisKKwlpZiAoKG1zciAmIG1zcl9tYXNrKSAhPSBtc3JfbWFzaykKKwkJcmV0dXJuIGZhbHNl OworCisJc3RhdHVzID0gZjgxNTM0X3NldF9waHlfcG9ydF9yZWdpc3RlcihzZXJpYWwsIHBoeSwK KwkJCQlGODE1MzRfRklGT19DT05UUk9MX1JFRywgVUFSVF9GQ1JfRU5BQkxFX0ZJRk8gfAorCQkJ CVVBUlRfRkNSX0NMRUFSX1JDVlIgfCBVQVJUX0ZDUl9DTEVBUl9YTUlUKTsKKwlpZiAoc3RhdHVz KQorCQlyZXR1cm4gZmFsc2U7CisKKwlzdGF0dXMgPSBmODE1MzRfZ2V0X3BoeV9wb3J0X3JlZ2lz dGVyKHNlcmlhbCwgcGh5LAorCQkJCUY4MTUzNF9NT0RFTV9DT05UUk9MX1JFRywgJm9sZF9tY3Ip OworCWlmIChzdGF0dXMpCisJCXJldHVybiBmYWxzZTsKKworCXN0YXR1cyA9IGY4MTUzNF9zZXRf cGh5X3BvcnRfcmVnaXN0ZXIoc2VyaWFsLCBwaHksCisJCQkJRjgxNTM0X01PREVNX0NPTlRST0xf UkVHLCBVQVJUX01DUl9MT09QKTsKKwlpZiAoc3RhdHVzKQorCQlyZXR1cm4gZmFsc2U7CisKKwlz dGF0dXMgPSBmODE1MzRfc2V0X3BoeV9wb3J0X3JlZ2lzdGVyKHNlcmlhbCwgcGh5LAorCQkJCUY4 MTUzNF9NT0RFTV9DT05UUk9MX1JFRywgMHgwKTsKKwlpZiAoc3RhdHVzKQorCQlyZXR1cm4gZmFs c2U7CisKKwltc2xlZXAoNjApOworCisJc3RhdHVzID0gZjgxNTM0X2dldF9waHlfcG9ydF9yZWdp c3RlcihzZXJpYWwsIHBoeSwKKwkJCQlGODE1MzRfTElORV9TVEFUVVNfUkVHLCAmbHNyKTsKKwlp ZiAoc3RhdHVzKQorCQlyZXR1cm4gZmFsc2U7CisKKwlzdGF0dXMgPSBmODE1MzRfc2V0X3BoeV9w b3J0X3JlZ2lzdGVyKHNlcmlhbCwgcGh5LAorCQkJCUY4MTUzNF9NT0RFTV9DT05UUk9MX1JFRywg b2xkX21jcik7CisJaWYgKHN0YXR1cykKKwkJcmV0dXJuIGZhbHNlOworCisJaWYgKChsc3IgJiBV QVJUX0xTUl9CSSkgPT0gVUFSVF9MU1JfQkkpCisJCXJldHVybiB0cnVlOworCisJcmV0dXJuIGZh bHNlOworfQorCisvKgogICogV2UgaGFkIDIgZ2VuZXJhdGlvbiBvZiBGODE1MzIvNTM0IElDLiBB bGwgaGFzIGFuIGludGVybmFsIHN0b3JhZ2UuCiAgKgogICogMXN0IGlzIHB1cmUgVVNCLXRvLVRU TCBSUzIzMiBJQyBhbmQgZGVzaWduZWQgZm9yIDQgcG9ydHMgb25seSwgbm8gYW55CkBAIC04MjMs NiArOTAxLDkgQEAgc3RhdGljIGludCBmODE1MzRfY2FsY19udW1fcG9ydHMoc3RydWN0IHVzYl9z ZXJpYWwgKnNlcmlhbCwKIAogCS8qIE5ldyBzdHlsZSwgZmluZCBhbGwgcG9zc2libGUgcG9ydHMg Ki8KIAlmb3IgKGkgPSAwOyBpIDwgRjgxNTM0X05VTV9QT1JUOyArK2kpIHsKKwkJaWYgKGY4MTUz NF9jaGVja19wb3J0X2h3X2Rpc2FibGVkKHNlcmlhbCwgaSkpCisJCQlzZXJpYWxfcHJpdi0+Y29u Zl9kYXRhW2ldIHw9IEY4MTUzNF9QT1JUX1VOQVZBSUxBQkxFOworCiAJCWlmIChzZXJpYWxfcHJp di0+Y29uZl9kYXRhW2ldICYgRjgxNTM0X1BPUlRfVU5BVkFJTEFCTEUpCiAJCQljb250aW51ZTsK IAo=