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,4/5] usb: serial: f81534: add H/W disable port support From: "Ji-Ze Hong \(Peter Hong\)" Message-Id: <1515032961-29131-4-git-send-email-hpeter+linux_kernel@gmail.com> Date: Thu, 4 Jan 2018 10:29:20 +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+Ci0tLQpWMjoKCTE6IGY4MTUzNF9jaGVja19wb3J0X2h3X2Rp c2FibGVkKCkgY2hhbmdlIHJldHVybiB0eXBlIGZyb20gaW50IHRvIGJvb2wuCgkyOiBBZGQgaGVs cCBmdW5jdGlvbiBmODE1MzRfc2V0X3BoeV9wb3J0X3JlZ2lzdGVyKCkgLwoJICAgZjgxNTM0X2dl dF9waHlfcG9ydF9yZWdpc3RlcigpIGZvciBmODE1MzRfY2hlY2tfcG9ydF9od19kaXNhYmxlZCgp CgkgICB0byByZWFkIHJlZ2lzdGVyIHdpdGhvdXQgcG9ydC4KCTM6IFJlLXdyaXRlIGY4MTUzNF9j YWxjX251bV9wb3J0cygpICYgZjgxNTM0X2F0dGFjaCgpIHRvIHJlZHVjZSB0aGUKCSAgIGY4MTUz NF9jaGVja19wb3J0X2h3X2Rpc2FibGVkKCkgcmVwZWF0ZWRseSBjYWxsZWQuCgogZHJpdmVycy91 c2Ivc2VyaWFsL2Y4MTUzNC5jIHwgMTYwICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgOTkgaW5zZXJ0aW9ucygrKSwgNjEgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2Y4MTUzNC5jIGIvZHJpdmVy cy91c2Ivc2VyaWFsL2Y4MTUzNC5jCmluZGV4IDdmMTc1ZjM5YTE3MS4uYTQ2NjYxNzEyMzlhIDEw MDY0NAotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwvZjgxNTM0LmMKKysrIGIvZHJpdmVycy91c2Iv c2VyaWFsL2Y4MTUzNC5jCkBAIC0zMDcsNiArMzA3LDIwIEBAIHN0YXRpYyBpbnQgZjgxNTM0X3Nl dF9tYXNrX3JlZ2lzdGVyKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwsIHUxNiByZWcsCiAJcmV0 dXJuIGY4MTUzNF9zZXRfcmVnaXN0ZXIoc2VyaWFsLCByZWcsIHRtcCk7CiB9CiAKK3N0YXRpYyBp bnQgZjgxNTM0X3NldF9waHlfcG9ydF9yZWdpc3RlcihzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFs LCBpbnQgcGh5LAorCQkJCQl1MTYgcmVnLCB1OCBkYXRhKQoreworCXJldHVybiBmODE1MzRfc2V0 X3JlZ2lzdGVyKHNlcmlhbCwgcmVnICsgRjgxNTM0X1VBUlRfT0ZGU0VUICogcGh5LAorCQkJCQlk YXRhKTsKK30KKworc3RhdGljIGludCBmODE1MzRfZ2V0X3BoeV9wb3J0X3JlZ2lzdGVyKHN0cnVj dCB1c2Jfc2VyaWFsICpzZXJpYWwsIGludCBwaHksCisJCQkJCXUxNiByZWcsIHU4ICpkYXRhKQor eworCXJldHVybiBmODE1MzRfZ2V0X3JlZ2lzdGVyKHNlcmlhbCwgcmVnICsgRjgxNTM0X1VBUlRf T0ZGU0VUICogcGh5LAorCQkJCQlkYXRhKTsKK30KKwogc3RhdGljIGludCBmODE1MzRfc2V0X3Bv cnRfcmVnaXN0ZXIoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgdTE2IHJlZywKIAkJCQkJ dTggZGF0YSkKIHsKQEAgLTczMCw2ICs3NDQsNzAgQEAgc3RhdGljIGludCBmODE1MzRfZmluZF9j b25maWdfaWR4KHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwsIHU4ICppbmRleCkKIH0KIAogLyoK KyAqIFRoZSBGODE1MzIvNTM0IHdpbGwgbm90IHJlcG9ydCBzZXJpYWwgcG9ydCB0byBVU0Igc2Vy aWFsIHN1YnN5c3RlbSB3aGVuCisgKiBIL1cgRENEL0RTUi9DVFMvUkkvUlggcGluIGNvbm5lY3Rl ZCB0byBncm91bmQuCisgKgorICogVG8gZGV0ZWN0IFJYIHBpbiBzdGF0dXMsIHdlJ2xsIGVuYWJs ZSBNQ1IgaW50ZXJhbCBsb29wYmFjaywgZGlzYWJsZSBpdCBhbmQKKyAqIGRlbGF5ZWQgZm9yIDYw bXMuIEl0IGNvbm5lY3RlZCB0byBncm91bmQgSWYgTFNSIHJlZ2lzdGVyIHJlcG9ydCBVQVJUX0xT Ul9CSS4KKyAqLworc3RhdGljIGJvb2wgZjgxNTM0X2NoZWNrX3BvcnRfaHdfZGlzYWJsZWQoc3Ry dWN0IHVzYl9zZXJpYWwgKnNlcmlhbCwgaW50IHBoeSkKK3sKKwlpbnQgc3RhdHVzOworCXU4IG9s ZF9tY3I7CisJdTggbXNyOworCXU4IGxzcjsKKwl1OCBtc3JfbWFzazsKKworCW1zcl9tYXNrID0g VUFSVF9NU1JfRENEIHwgVUFSVF9NU1JfUkkgfCBVQVJUX01TUl9EU1IgfCBVQVJUX01TUl9DVFM7 CisKKwlzdGF0dXMgPSBmODE1MzRfZ2V0X3BoeV9wb3J0X3JlZ2lzdGVyKHNlcmlhbCwgcGh5LAor CQkJCUY4MTUzNF9NT0RFTV9TVEFUVVNfUkVHLCAmbXNyKTsKKwlpZiAoc3RhdHVzKQorCQlyZXR1 cm4gZmFsc2U7CisKKwlpZiAoKG1zciAmIG1zcl9tYXNrKSAhPSBtc3JfbWFzaykKKwkJcmV0dXJu IGZhbHNlOworCisJc3RhdHVzID0gZjgxNTM0X3NldF9waHlfcG9ydF9yZWdpc3RlcihzZXJpYWws IHBoeSwKKwkJCQlGODE1MzRfRklGT19DT05UUk9MX1JFRywgVUFSVF9GQ1JfRU5BQkxFX0ZJRk8g fAorCQkJCVVBUlRfRkNSX0NMRUFSX1JDVlIgfCBVQVJUX0ZDUl9DTEVBUl9YTUlUKTsKKwlpZiAo c3RhdHVzKQorCQlyZXR1cm4gZmFsc2U7CisKKwlzdGF0dXMgPSBmODE1MzRfZ2V0X3BoeV9wb3J0 X3JlZ2lzdGVyKHNlcmlhbCwgcGh5LAorCQkJCUY4MTUzNF9NT0RFTV9DT05UUk9MX1JFRywgJm9s ZF9tY3IpOworCWlmIChzdGF0dXMpCisJCXJldHVybiBmYWxzZTsKKworCXN0YXR1cyA9IGY4MTUz NF9zZXRfcGh5X3BvcnRfcmVnaXN0ZXIoc2VyaWFsLCBwaHksCisJCQkJRjgxNTM0X01PREVNX0NP TlRST0xfUkVHLCBVQVJUX01DUl9MT09QKTsKKwlpZiAoc3RhdHVzKQorCQlyZXR1cm4gZmFsc2U7 CisKKwlzdGF0dXMgPSBmODE1MzRfc2V0X3BoeV9wb3J0X3JlZ2lzdGVyKHNlcmlhbCwgcGh5LAor CQkJCUY4MTUzNF9NT0RFTV9DT05UUk9MX1JFRywgMHgwKTsKKwlpZiAoc3RhdHVzKQorCQlyZXR1 cm4gZmFsc2U7CisKKwltc2xlZXAoNjApOworCisJc3RhdHVzID0gZjgxNTM0X2dldF9waHlfcG9y dF9yZWdpc3RlcihzZXJpYWwsIHBoeSwKKwkJCQlGODE1MzRfTElORV9TVEFUVVNfUkVHLCAmbHNy KTsKKwlpZiAoc3RhdHVzKQorCQlyZXR1cm4gZmFsc2U7CisKKwlzdGF0dXMgPSBmODE1MzRfc2V0 X3BoeV9wb3J0X3JlZ2lzdGVyKHNlcmlhbCwgcGh5LAorCQkJCUY4MTUzNF9NT0RFTV9DT05UUk9M X1JFRywgb2xkX21jcik7CisJaWYgKHN0YXR1cykKKwkJcmV0dXJuIGZhbHNlOworCisJaWYgKChs c3IgJiBVQVJUX0xTUl9CSSkgPT0gVUFSVF9MU1JfQkkpCisJCXJldHVybiB0cnVlOworCisJcmV0 dXJuIGZhbHNlOworfQorCisvKgogICogV2UgaGFkIDIgZ2VuZXJhdGlvbiBvZiBGODE1MzIvNTM0 IElDLiBBbGwgaGFzIGFuIGludGVybmFsIHN0b3JhZ2UuCiAgKgogICogMXN0IGlzIHB1cmUgVVNC LXRvLVRUTCBSUzIzMiBJQyBhbmQgZGVzaWduZWQgZm9yIDQgcG9ydHMgb25seSwgbm8gYW55CkBA IC03NTAsMTEgKzgyOCwxMCBAQCBzdGF0aWMgaW50IGY4MTUzNF9maW5kX2NvbmZpZ19pZHgoc3Ry dWN0IHVzYl9zZXJpYWwgKnNlcmlhbCwgdTggKmluZGV4KQogc3RhdGljIGludCBmODE1MzRfY2Fs Y19udW1fcG9ydHMoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCwKIAkJCQkJc3RydWN0IHVzYl9z ZXJpYWxfZW5kcG9pbnRzICplcGRzKQogeworCXN0cnVjdCBmODE1MzRfc2VyaWFsX3ByaXZhdGUg KnNlcmlhbF9wcml2OwogCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZzZXJpYWwtPmludGVyZmFjZS0+ ZGV2OwogCWludCBzaXplX2J1bGtfaW4gPSB1c2JfZW5kcG9pbnRfbWF4cChlcGRzLT5idWxrX2lu WzBdKTsKIAlpbnQgc2l6ZV9idWxrX291dCA9IHVzYl9lbmRwb2ludF9tYXhwKGVwZHMtPmJ1bGtf b3V0WzBdKTsKLQl1OCBzZXR0aW5nW0Y4MTUzNF9DVVNUT01fREFUQV9TSVpFXTsKLQl1OCBzZXR0 aW5nX2lkeDsKIAl1OCBudW1fcG9ydCA9IDA7CiAJaW50IHN0YXR1czsKIAlzaXplX3QgaTsKQEAg LTc2NSw4ICs4NDIsMTUgQEAgc3RhdGljIGludCBmODE1MzRfY2FsY19udW1fcG9ydHMoc3RydWN0 IHVzYl9zZXJpYWwgKnNlcmlhbCwKIAkJcmV0dXJuIC1FTk9ERVY7CiAJfQogCisJc2VyaWFsX3By aXYgPSBkZXZtX2t6YWxsb2MoJnNlcmlhbC0+aW50ZXJmYWNlLT5kZXYsCisJCQkJCXNpemVvZigq c2VyaWFsX3ByaXYpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXNlcmlhbF9wcml2KQorCQlyZXR1cm4g LUVOT01FTTsKKworCXVzYl9zZXRfc2VyaWFsX2RhdGEoc2VyaWFsLCBzZXJpYWxfcHJpdik7CisK IAkvKiBDaGVjayBoYWQgY3VzdG9tIHNldHRpbmcgKi8KLQlzdGF0dXMgPSBmODE1MzRfZmluZF9j b25maWdfaWR4KHNlcmlhbCwgJnNldHRpbmdfaWR4KTsKKwlzdGF0dXMgPSBmODE1MzRfZmluZF9j b25maWdfaWR4KHNlcmlhbCwgJnNlcmlhbF9wcml2LT5zZXR0aW5nX2lkeCk7CiAJaWYgKHN0YXR1 cykgewogCQlkZXZfZXJyKCZzZXJpYWwtPmludGVyZmFjZS0+ZGV2LCAiJXM6IGZpbmQgaWR4IGZh aWxlZDogJWRcbiIsCiAJCQkJX19mdW5jX18sIHN0YXR1cyk7CkBAIC03NzcsMTEgKzg2MSwxMiBA QCBzdGF0aWMgaW50IGY4MTUzNF9jYWxjX251bV9wb3J0cyhzdHJ1Y3QgdXNiX3NlcmlhbCAqc2Vy aWFsLAogCSAqIFdlJ2xsIHJlYWQgY3VzdG9tIGRhdGEgb25seSB3aGVuIGRhdGEgYXZhaWxhYmxl LCBvdGhlcndpc2Ugd2UnbGwKIAkgKiByZWFkIGRlZmF1bHQgdmFsdWUgaW5zdGVhZC4KIAkgKi8K LQlpZiAoc2V0dGluZ19pZHggIT0gRjgxNTM0X0NVU1RPTV9OT19DVVNUT01fREFUQSkgeworCWlm IChzZXJpYWxfcHJpdi0+c2V0dGluZ19pZHggIT0gRjgxNTM0X0NVU1RPTV9OT19DVVNUT01fREFU QSkgewogCQlzdGF0dXMgPSBmODE1MzRfcmVhZF9mbGFzaChzZXJpYWwsCiAJCQkJCQlGODE1MzRf Q1VTVE9NX0FERFJFU1NfU1RBUlQgKwogCQkJCQkJRjgxNTM0X0NPTkZfT0ZGU0VULAotCQkJCQkJ c2l6ZW9mKHNldHRpbmcpLCBzZXR0aW5nKTsKKwkJCQkJCXNpemVvZihzZXJpYWxfcHJpdi0+Y29u Zl9kYXRhKSwKKwkJCQkJCXNlcmlhbF9wcml2LT5jb25mX2RhdGEpOwogCQlpZiAoc3RhdHVzKSB7 CiAJCQlkZXZfZXJyKCZzZXJpYWwtPmludGVyZmFjZS0+ZGV2LAogCQkJCQkiJXM6IGdldCBjdXN0 b20gZGF0YSBmYWlsZWQ6ICVkXG4iLApAQCAtNzkxLDEzICs4NzYsMTMgQEAgc3RhdGljIGludCBm ODE1MzRfY2FsY19udW1fcG9ydHMoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCwKIAogCQlkZXZf ZGJnKCZzZXJpYWwtPmludGVyZmFjZS0+ZGV2LAogCQkJCSIlczogcmVhZCBjb25maWcgZnJvbSBi bG9jazogJWRcbiIsIF9fZnVuY19fLAotCQkJCXNldHRpbmdfaWR4KTsKKwkJCQlzZXJpYWxfcHJp di0+c2V0dGluZ19pZHgpOwogCX0gZWxzZSB7CiAJCS8qIFJlYWQgZGVmYXVsdCBib2FyZCBzZXR0 aW5nICovCiAJCXN0YXR1cyA9IGY4MTUzNF9yZWFkX2ZsYXNoKHNlcmlhbCwKLQkJCQlGODE1MzRf REVGX0NPTkZfQUREUkVTU19TVEFSVCwgRjgxNTM0X05VTV9QT1JULAotCQkJCXNldHRpbmcpOwot CisJCQkJRjgxNTM0X0RFRl9DT05GX0FERFJFU1NfU1RBUlQsCisJCQkJc2l6ZW9mKHNlcmlhbF9w cml2LT5jb25mX2RhdGEpLAorCQkJCXNlcmlhbF9wcml2LT5jb25mX2RhdGEpOwogCQlpZiAoc3Rh dHVzKSB7CiAJCQlkZXZfZXJyKCZzZXJpYWwtPmludGVyZmFjZS0+ZGV2LAogCQkJCQkiJXM6IHJl YWQgZmFpbGVkOiAlZFxuIiwgX19mdW5jX18sCkBAIC04MTEsNyArODk2LDEwIEBAIHN0YXRpYyBp bnQgZjgxNTM0X2NhbGNfbnVtX3BvcnRzKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwsCiAKIAkv KiBOZXcgc3R5bGUsIGZpbmQgYWxsIHBvc3NpYmxlIHBvcnRzICovCiAJZm9yIChpID0gMDsgaSA8 IEY4MTUzNF9OVU1fUE9SVDsgKytpKSB7Ci0JCWlmIChzZXR0aW5nW2ldICYgRjgxNTM0X1BPUlRf VU5BVkFJTEFCTEUpCisJCWlmIChmODE1MzRfY2hlY2tfcG9ydF9od19kaXNhYmxlZChzZXJpYWws IGkpKQorCQkJc2VyaWFsX3ByaXYtPmNvbmZfZGF0YVtpXSB8PSBGODE1MzRfUE9SVF9VTkFWQUlM QUJMRTsKKworCQlpZiAoc2VyaWFsX3ByaXYtPmNvbmZfZGF0YVtpXSAmIEY4MTUzNF9QT1JUX1VO QVZBSUxBQkxFKQogCQkJY29udGludWU7CiAKIAkJKytudW1fcG9ydDsKQEAgLTEyMjgsNjEgKzEz MTYsMTEgQEAgc3RhdGljIGludCBmODE1MzRfYXR0YWNoKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJp YWwpCiB7CiAJc3RydWN0IGY4MTUzNF9zZXJpYWxfcHJpdmF0ZSAqc2VyaWFsX3ByaXY7CiAJaW50 IGluZGV4ID0gMDsKLQlpbnQgc3RhdHVzOwogCWludCBpOwogCi0Jc2VyaWFsX3ByaXYgPSBkZXZt X2t6YWxsb2MoJnNlcmlhbC0+aW50ZXJmYWNlLT5kZXYsCi0JCQkJCXNpemVvZigqc2VyaWFsX3By aXYpLCBHRlBfS0VSTkVMKTsKLQlpZiAoIXNlcmlhbF9wcml2KQotCQlyZXR1cm4gLUVOT01FTTsK LQotCXVzYl9zZXRfc2VyaWFsX2RhdGEoc2VyaWFsLCBzZXJpYWxfcHJpdik7Ci0KKwlzZXJpYWxf cHJpdiA9IHVzYl9nZXRfc2VyaWFsX2RhdGEoc2VyaWFsKTsKIAltdXRleF9pbml0KCZzZXJpYWxf cHJpdi0+dXJiX211dGV4KTsKIAotCS8qIENoZWNrIGhhZCBjdXN0b20gc2V0dGluZyAqLwotCXN0 YXR1cyA9IGY4MTUzNF9maW5kX2NvbmZpZ19pZHgoc2VyaWFsLCAmc2VyaWFsX3ByaXYtPnNldHRp bmdfaWR4KTsKLQlpZiAoc3RhdHVzKSB7Ci0JCWRldl9lcnIoJnNlcmlhbC0+aW50ZXJmYWNlLT5k ZXYsICIlczogZmluZCBpZHggZmFpbGVkOiAlZFxuIiwKLQkJCQlfX2Z1bmNfXywgc3RhdHVzKTsK LQkJcmV0dXJuIHN0YXR1czsKLQl9Ci0KLQkvKgotCSAqIFdlJ2xsIHJlYWQgY3VzdG9tIGRhdGEg b25seSB3aGVuIGRhdGEgYXZhaWxhYmxlLCBvdGhlcndpc2Ugd2UnbGwKLQkgKiByZWFkIGRlZmF1 bHQgdmFsdWUgaW5zdGVhZC4KLQkgKi8KLQlpZiAoc2VyaWFsX3ByaXYtPnNldHRpbmdfaWR4ID09 IEY4MTUzNF9DVVNUT01fTk9fQ1VTVE9NX0RBVEEpIHsKLQkJLyoKLQkJICogVGhlIGRlZmF1bHQg Y29uZmlndXJhdGlvbiBsYXlvdXQ6Ci0JCSAqCWJ5dGUgMC8xLzIvMzogdWFydCBzZXR0aW5nCi0J CSAqLwotCQlzdGF0dXMgPSBmODE1MzRfcmVhZF9mbGFzaChzZXJpYWwsCi0JCQkJCUY4MTUzNF9E RUZfQ09ORl9BRERSRVNTX1NUQVJULAotCQkJCQlGODE1MzRfREVGX0NPTkZfU0laRSwKLQkJCQkJ c2VyaWFsX3ByaXYtPmNvbmZfZGF0YSk7Ci0JCWlmIChzdGF0dXMpIHsKLQkJCWRldl9lcnIoJnNl cmlhbC0+aW50ZXJmYWNlLT5kZXYsCi0JCQkJCSIlczogcmVhZCByZXNlcnZlIGRhdGEgZmFpbGVk OiAlZFxuIiwKLQkJCQkJX19mdW5jX18sIHN0YXR1cyk7Ci0JCQlyZXR1cm4gc3RhdHVzOwotCQl9 Ci0JfSBlbHNlIHsKLQkJLyogT25seSByZWFkIDggYnl0ZXMgZm9yIG1vZGUgJiBHUElPICovCi0J CXN0YXR1cyA9IGY4MTUzNF9yZWFkX2ZsYXNoKHNlcmlhbCwKLQkJCQkJCUY4MTUzNF9DVVNUT01f QUREUkVTU19TVEFSVCArCi0JCQkJCQlGODE1MzRfQ09ORl9PRkZTRVQsCi0JCQkJCQlzaXplb2Yo c2VyaWFsX3ByaXYtPmNvbmZfZGF0YSksCi0JCQkJCQlzZXJpYWxfcHJpdi0+Y29uZl9kYXRhKTsK LQkJaWYgKHN0YXR1cykgewotCQkJZGV2X2Vycigmc2VyaWFsLT5pbnRlcmZhY2UtPmRldiwKLQkJ CQkJIiVzOiBpZHg6ICVkIGdldCBkYXRhIGZhaWxlZDogJWRcbiIsCi0JCQkJCV9fZnVuY19fLCBz ZXJpYWxfcHJpdi0+c2V0dGluZ19pZHgsCi0JCQkJCXN0YXR1cyk7Ci0JCQlyZXR1cm4gc3RhdHVz OwotCQl9Ci0JfQotCiAJLyogQXNzaWduIHBoeS10by1sb2dpYyBtYXBwaW5nICovCiAJZm9yIChp ID0gMDsgaSA8IEY4MTUzNF9OVU1fUE9SVDsgKytpKSB7CiAJCWlmIChzZXJpYWxfcHJpdi0+Y29u Zl9kYXRhW2ldICYgRjgxNTM0X1BPUlRfVU5BVkFJTEFCTEUpCg==