From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-11.1 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,MIME_BASE64_TEXT,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, UNPARSEABLE_RELAY,URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8BF03C2D0A3 for ; Thu, 29 Oct 2020 11:58:14 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 1644220796 for ; Thu, 29 Oct 2020 11:58:14 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="OTF+tDpo" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726020AbgJ2L6J (ORCPT ); Thu, 29 Oct 2020 07:58:09 -0400 Received: from mailgw01.mediatek.com ([210.61.82.183]:57264 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1725936AbgJ2L6E (ORCPT ); Thu, 29 Oct 2020 07:58:04 -0400 X-UUID: b03d49c21fdd4b6fb8fd1dbcf3b1f778-20201029 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From; bh=LOQmyP54SIzhf8yxDPWaDlmMn9uAWwzmBOlolnQyTaU=; b=OTF+tDpoqgugftRV4s8Ec4GGbHKaolgxf7kL4jWevphIIVRgdjd6lXzhwPNIKw5Ub+aGFj6sALXTQ8beQrL+0rT8/HObdPxhOEq9TRv88oWmFU3f/JjzxKz+0Z5HJ2USy+UcIgEX9veoYk76ly07WvhP7GAEo6KwV7u91egeCf4=; X-UUID: b03d49c21fdd4b6fb8fd1dbcf3b1f778-20201029 Received: from mtkcas06.mediatek.inc [(172.21.101.30)] by mailgw01.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.14 Build 0819 with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 1462173019; Thu, 29 Oct 2020 19:57:53 +0800 Received: from mtkcas10.mediatek.inc (172.21.101.39) by mtkmbs07n2.mediatek.inc (172.21.101.141) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 29 Oct 2020 19:57:50 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by mtkcas10.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Thu, 29 Oct 2020 19:57:50 +0800 From: Stanley Chu To: , , , , CC: , , , , , , , , , , , , Stanley Chu Subject: [PATCH v1 2/6] scsi: ufs-mediatek: Support VA09 regulator operations Date: Thu, 29 Oct 2020 19:57:46 +0800 Message-ID: <20201029115750.24391-3-stanley.chu@mediatek.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20201029115750.24391-1-stanley.chu@mediatek.com> References: <20201029115750.24391-1-stanley.chu@mediatek.com> MIME-Version: 1.0 Content-Type: text/plain X-MTK: N Content-Transfer-Encoding: base64 Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org U29tZSBNZWRpYVRlayBVRlMgcGxhdGZvcm1zIG5lZWQgdG8gY29udHJvbCBWQTA5IHBvd2VyDQpz cGVjaWZpY2FsbHkuIFByb3ZpZGUgc3VjaCBjb250cm9sIGFjY29yZGluZyB0byB0aGUgZGV2aWNl DQp0cmVlIGJpbmRpbmcuDQoNClNpZ25lZC1vZmYtYnk6IFN0YW5sZXkgQ2h1IDxzdGFubGV5LmNo dUBtZWRpYXRlay5jb20+DQotLS0NCiBkcml2ZXJzL3Njc2kvdWZzL3Vmcy1tZWRpYXRlay5jIHwg MTM3ICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tDQogZHJpdmVycy9zY3NpL3Vmcy91 ZnMtbWVkaWF0ZWsuaCB8ICAgMyArDQogMiBmaWxlcyBjaGFuZ2VkLCAxMDggaW5zZXJ0aW9ucygr KSwgMzIgZGVsZXRpb25zKC0pDQoNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvdWZzL3Vmcy1t ZWRpYXRlay5jIGIvZHJpdmVycy9zY3NpL3Vmcy91ZnMtbWVkaWF0ZWsuYw0KaW5kZXggMDE5NmE4 OTA1NWI1Li43OTVmYzI5NjFmNzcgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3Njc2kvdWZzL3Vmcy1t ZWRpYXRlay5jDQorKysgYi9kcml2ZXJzL3Njc2kvdWZzL3Vmcy1tZWRpYXRlay5jDQpAQCAtMjgs NiArMjgsOSBAQA0KIAlhcm1fc21jY2Nfc21jKE1US19TSVBfVUZTX0NPTlRST0wsIFwNCiAJCSAg ICAgIGNtZCwgdmFsLCAwLCAwLCAwLCAwLCAwLCAmKHJlcykpDQogDQorI2RlZmluZSB1ZnNfbXRr X3ZhMDlfcHdyX2N0cmwocmVzLCBvbikgXA0KKwl1ZnNfbXRrX3NtYyhVRlNfTVRLX1NJUF9WQTA5 X1BXUl9DVFJMLCBvbiwgcmVzKQ0KKw0KICNkZWZpbmUgdWZzX210a19jcnlwdG9fY3RybChyZXMs IGVuYWJsZSkgXA0KIAl1ZnNfbXRrX3NtYyhVRlNfTVRLX1NJUF9DUllQVE9fQ1RSTCwgZW5hYmxl LCByZXMpDQogDQpAQCAtNDUsNiArNDgsMTAgQEAgc3RhdGljIHN0cnVjdCB1ZnNfZGV2X2ZpeCB1 ZnNfbXRrX2Rldl9maXh1cHNbXSA9IHsNCiAJRU5EX0ZJWA0KIH07DQogDQorc3RhdGljIGNvbnN0 IHN0cnVjdCB1ZnNfbXRrX2hvc3RfY2ZnIHVmc19tdGtfbXQ4MTgzX2NmZyA9IHsNCisJLmNhcHMg PSBVRlNfTVRLX0NBUF9WQTA5X1BXUl9DVFJMLA0KK307DQorDQogc3RhdGljIGNvbnN0IHN0cnVj dCB1ZnNfbXRrX2hvc3RfY2ZnIHVmc19tdGtfbXQ4MTkyX2NmZyA9IHsNCiAJLmNhcHMgPSBVRlNf TVRLX0NBUF9CT09TVF9DUllQVF9FTkdJTkUsDQogfTsNCkBAIC01Miw2ICs1OSw3IEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgdWZzX210a19ob3N0X2NmZyB1ZnNfbXRrX210ODE5Ml9jZmcgPSB7DQog c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgdWZzX210a19vZl9tYXRjaFtdID0gew0K IAl7DQogCQkuY29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDgxODMtdWZzaGNpIiwNCisJCS5kYXRh ID0gJnVmc19tdGtfbXQ4MTgzX2NmZw0KIAl9LA0KIAl7DQogCQkuY29tcGF0aWJsZSA9ICJtZWRp YXRlayxtdDgxOTItdWZzaGNpIiwNCkBAIC02Nyw2ICs3NSwxMyBAQCBzdGF0aWMgYm9vbCB1ZnNf bXRrX2lzX2Jvb3N0X2NyeXB0X2VuYWJsZWQoc3RydWN0IHVmc19oYmEgKmhiYSkNCiAJcmV0dXJu IChob3N0LT5jYXBzICYgVUZTX01US19DQVBfQk9PU1RfQ1JZUFRfRU5HSU5FKTsNCiB9DQogDQor c3RhdGljIGJvb2wgdWZzX210a19pc192YTA5X3N1cHBvcnRlZChzdHJ1Y3QgdWZzX2hiYSAqaGJh KQ0KK3sNCisJc3RydWN0IHVmc19tdGtfaG9zdCAqaG9zdCA9IHVmc2hjZF9nZXRfdmFyaWFudCho YmEpOw0KKw0KKwlyZXR1cm4gKGhvc3QtPmNhcHMgJiBVRlNfTVRLX0NBUF9WQTA5X1BXUl9DVFJM KTsNCit9DQorDQogc3RhdGljIHZvaWQgdWZzX210a19jZmdfdW5pcHJvX2NnKHN0cnVjdCB1ZnNf aGJhICpoYmEsIGJvb2wgZW5hYmxlKQ0KIHsNCiAJdTMyIHRtcDsNCkBAIC0zMDAsMjEgKzMxNSw0 NiBAQCBzdGF0aWMgaW50IHVmc19tdGtfd2FpdF9saW5rX3N0YXRlKHN0cnVjdCB1ZnNfaGJhICpo YmEsIHUzMiBzdGF0ZSwNCiAJcmV0dXJuIC1FVElNRURPVVQ7DQogfQ0KIA0KLXN0YXRpYyB2b2lk IHVmc19tdGtfbXBoeV9wb3dlcl9vbihzdHJ1Y3QgdWZzX2hiYSAqaGJhLCBib29sIG9uKQ0KK3N0 YXRpYyBpbnQgdWZzX210a19tcGh5X3Bvd2VyX29uKHN0cnVjdCB1ZnNfaGJhICpoYmEsIGJvb2wg b24pDQogew0KIAlzdHJ1Y3QgdWZzX210a19ob3N0ICpob3N0ID0gdWZzaGNkX2dldF92YXJpYW50 KGhiYSk7DQogCXN0cnVjdCBwaHkgKm1waHkgPSBob3N0LT5tcGh5Ow0KKwlzdHJ1Y3QgYXJtX3Nt Y2NjX3JlcyByZXM7DQorCWludCByZXQgPSAwOw0KIA0KLQlpZiAoIW1waHkpDQotCQlyZXR1cm47 DQorCWlmICghbXBoeSB8fCAhKG9uIF4gaG9zdC0+bXBoeV9wb3dlcmVkX29uKSkNCisJCXJldHVy biAwOw0KIA0KLQlpZiAob24gJiYgIWhvc3QtPm1waHlfcG93ZXJlZF9vbikNCisJaWYgKG9uKSB7 DQorCQlpZiAoaG9zdC0+cmVnX3ZhMDkpIHsNCisJCQlyZXQgPSByZWd1bGF0b3JfZW5hYmxlKGhv c3QtPnJlZ192YTA5KTsNCisJCQlpZiAocmV0IDwgMCkNCisJCQkJZ290byBvdXQ7DQorCQkJLyog d2FpdCAyMDAgdXMgdG8gc3RhYmxpemUgVkEwOSAqLw0KKwkJCXVzbGVlcF9yYW5nZSgyMDAsIDIx MCk7DQorCQkJdWZzX210a192YTA5X3B3cl9jdHJsKHJlcywgMSk7DQorCQl9DQogCQlwaHlfcG93 ZXJfb24obXBoeSk7DQotCWVsc2UgaWYgKCFvbiAmJiBob3N0LT5tcGh5X3Bvd2VyZWRfb24pDQor CX0gZWxzZSB7DQogCQlwaHlfcG93ZXJfb2ZmKG1waHkpOw0KLQllbHNlDQotCQlyZXR1cm47DQot CWhvc3QtPm1waHlfcG93ZXJlZF9vbiA9IG9uOw0KKwkJaWYgKGhvc3QtPnJlZ192YTA5KSB7DQor CQkJdWZzX210a192YTA5X3B3cl9jdHJsKHJlcywgMCk7DQorCQkJcmV0ID0gcmVndWxhdG9yX2Rp c2FibGUoaG9zdC0+cmVnX3ZhMDkpOw0KKwkJCWlmIChyZXQgPCAwKQ0KKwkJCQlnb3RvIG91dDsN CisJCX0NCisJfQ0KK291dDoNCisJaWYgKHJldCkgew0KKwkJZGV2X2luZm8oaGJhLT5kZXYsDQor CQkJICJmYWlsZWQgdG8gJXMgdmEwOTogJWRcbiIsDQorCQkJIG9uID8gImVuYWJsZSIgOiAiZGlz YWJsZSIsDQorCQkJIHJldCk7DQorCX0gZWxzZSB7DQorCQlob3N0LT5tcGh5X3Bvd2VyZWRfb24g PSBvbjsNCisJfQ0KKw0KKwlyZXR1cm4gcmV0Ow0KIH0NCiANCiBzdGF0aWMgaW50IHVmc19tdGtf Z2V0X2hvc3RfY2xrKHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3QgY2hhciAqbmFtZSwNCkBAIC00 MDIsNyArNDQyLDcgQEAgc3RhdGljIGludCB1ZnNfbXRrX2luaXRfaG9zdF9jbGsoc3RydWN0IHVm c19oYmEgKmhiYSwgY29uc3QgY2hhciAqbmFtZSwNCiAJcmV0dXJuIHJldDsNCiB9DQogDQotc3Rh dGljIHZvaWQgdWZzX210a19pbml0X2hvc3RfY2FwcyhzdHJ1Y3QgdWZzX2hiYSAqaGJhKQ0KK3N0 YXRpYyB2b2lkIHVmc19tdGtfaW5pdF9ib29zdF9jcnlwdChzdHJ1Y3QgdWZzX2hiYSAqaGJhKQ0K IHsNCiAJc3RydWN0IHVmc19tdGtfaG9zdCAqaG9zdCA9IHVmc2hjZF9nZXRfdmFyaWFudChoYmEp Ow0KIAlzdHJ1Y3QgdWZzX210a19jcnlwdF9jZmcgKmNmZzsNCkBAIC00MTAsMTEgKzQ1MCw2IEBA IHN0YXRpYyB2b2lkIHVmc19tdGtfaW5pdF9ob3N0X2NhcHMoc3RydWN0IHVmc19oYmEgKmhiYSkN CiAJc3RydWN0IHJlZ3VsYXRvciAqcmVnOw0KIAl1MzIgdm9sdDsNCiANCi0JaG9zdC0+Y2FwcyA9 IGhvc3QtPmNmZy0+Y2FwczsNCi0NCi0JaWYgKCF1ZnNfbXRrX2lzX2Jvb3N0X2NyeXB0X2VuYWJs ZWQoaGJhKSkNCi0JCXJldHVybjsNCi0NCiAJaG9zdC0+Y3J5cHQgPSBkZXZtX2t6YWxsb2MoZGV2 LCBzaXplb2YoKihob3N0LT5jcnlwdCkpLA0KIAkJCQkgICBHRlBfS0VSTkVMKTsNCiAJaWYgKCFo b3N0LT5jcnlwdCkNCkBAIC00NDgsMTMgKzQ4MywzOCBAQCBzdGF0aWMgdm9pZCB1ZnNfbXRrX2lu aXRfaG9zdF9jYXBzKHN0cnVjdCB1ZnNfaGJhICpoYmEpDQogDQogCWNmZy0+cmVnX3Zjb3JlID0g cmVnOw0KIAljZmctPnZjb3JlX3ZvbHQgPSB2b2x0Ow0KLQlkZXZfaW5mbyhkZXYsICJjYXBzOiBi b29zdC1jcnlwdCIpOw0KIAlyZXR1cm47DQogDQogZGlzYWJsZV9jYXBzOg0KIAlob3N0LT5jYXBz ICY9IH5VRlNfTVRLX0NBUF9CT09TVF9DUllQVF9FTkdJTkU7DQogfQ0KIA0KK3N0YXRpYyB2b2lk IHVmc19tdGtfaW5pdF92YTA5X3B3cl9jdHJsKHN0cnVjdCB1ZnNfaGJhICpoYmEpDQorew0KKwlz dHJ1Y3QgdWZzX210a19ob3N0ICpob3N0ID0gdWZzaGNkX2dldF92YXJpYW50KGhiYSk7DQorDQor CWhvc3QtPnJlZ192YTA5ID0gcmVndWxhdG9yX2dldChoYmEtPmRldiwgInZhMDkiKTsNCisJaWYg KCFob3N0LT5yZWdfdmEwOSkgew0KKwkJZGV2X2luZm8oaGJhLT5kZXYsICJmYWlsZWQgdG8gZ2V0 IHZhMDkiKTsNCisJCWhvc3QtPmNhcHMgJj0gflVGU19NVEtfQ0FQX1ZBMDlfUFdSX0NUUkw7DQor CX0NCit9DQorDQorc3RhdGljIHZvaWQgdWZzX210a19pbml0X2hvc3RfY2FwcyhzdHJ1Y3QgdWZz X2hiYSAqaGJhKQ0KK3sNCisJc3RydWN0IHVmc19tdGtfaG9zdCAqaG9zdCA9IHVmc2hjZF9nZXRf dmFyaWFudChoYmEpOw0KKw0KKwlob3N0LT5jYXBzID0gaG9zdC0+Y2ZnLT5jYXBzOw0KKw0KKwlp ZiAodWZzX210a19pc19ib29zdF9jcnlwdF9lbmFibGVkKGhiYSkpDQorCQl1ZnNfbXRrX2luaXRf Ym9vc3RfY3J5cHQoaGJhKTsNCisNCisJaWYgKHVmc19tdGtfaXNfdmEwOV9zdXBwb3J0ZWQoaGJh KSkNCisJCXVmc19tdGtfaW5pdF92YTA5X3B3cl9jdHJsKGhiYSk7DQorDQorCWRldl9pbmZvKGhi YS0+ZGV2LCAiY2FwczogMHgleCIsIGhvc3QtPmNhcHMpOw0KK30NCisNCiAvKioNCiAgKiB1ZnNf bXRrX3NldHVwX2Nsb2NrcyAtIGVuYWJsZXMvZGlzYWJsZSBjbG9ja3MNCiAgKiBAaGJhOiBob3N0 IGNvbnRyb2xsZXIgaW5zdGFuY2UNCkBAIC00NjcsOCArNTI3LDggQEAgc3RhdGljIGludCB1ZnNf bXRrX3NldHVwX2Nsb2NrcyhzdHJ1Y3QgdWZzX2hiYSAqaGJhLCBib29sIG9uLA0KIAkJCQllbnVt IHVmc19ub3RpZnlfY2hhbmdlX3N0YXR1cyBzdGF0dXMpDQogew0KIAlzdHJ1Y3QgdWZzX210a19o b3N0ICpob3N0ID0gdWZzaGNkX2dldF92YXJpYW50KGhiYSk7DQotCWludCByZXQgPSAwOw0KIAli b29sIGNsa19wd3Jfb2ZmID0gZmFsc2U7DQorCWludCByZXQgPSAwOw0KIA0KIAkvKg0KIAkgKiBJ biBjYXNlIHVmc19tdGtfaW5pdCgpIGlzIG5vdCB5ZXQgZG9uZSwgc2ltcGx5IGlnbm9yZS4NCkBA IC00OTksMTAgKzU1OSwxMCBAQCBzdGF0aWMgaW50IHVmc19tdGtfc2V0dXBfY2xvY2tzKHN0cnVj dCB1ZnNfaGJhICpoYmEsIGJvb2wgb24sDQogCQlpZiAoY2xrX3B3cl9vZmYpIHsNCiAJCQl1ZnNf bXRrX2Jvb3N0X2NyeXB0KGhiYSwgb24pOw0KIAkJCXVmc19tdGtfc2V0dXBfcmVmX2NsayhoYmEs IG9uKTsNCi0JCQl1ZnNfbXRrX21waHlfcG93ZXJfb24oaGJhLCBvbik7DQorCQkJcGh5X3Bvd2Vy X29mZihob3N0LT5tcGh5KTsNCiAJCX0NCiAJfSBlbHNlIGlmIChvbiAmJiBzdGF0dXMgPT0gUE9T VF9DSEFOR0UpIHsNCi0JCXVmc19tdGtfbXBoeV9wb3dlcl9vbihoYmEsIG9uKTsNCisJCXBoeV9w b3dlcl9vbihob3N0LT5tcGh5KTsNCiAJCXVmc19tdGtfc2V0dXBfcmVmX2NsayhoYmEsIG9uKTsN CiAJCXVmc19tdGtfYm9vc3RfY3J5cHQoaGJhLCBvbik7DQogCX0NCkBAIC01NzUsNiArNjM1LDcg QEAgc3RhdGljIGludCB1ZnNfbXRrX2luaXQoc3RydWN0IHVmc19oYmEgKmhiYSkNCiAJICoNCiAJ ICogRW5hYmxlIHBoeSBjbG9ja3Mgc3BlY2lmaWNhbGx5IGhlcmUuDQogCSAqLw0KKwl1ZnNfbXRr X21waHlfcG93ZXJfb24oaGJhLCB0cnVlKTsNCiAJdWZzX210a19zZXR1cF9jbG9ja3MoaGJhLCB0 cnVlLCBQT1NUX0NIQU5HRSk7DQogDQogCWdvdG8gb3V0Ow0KQEAgLTgyNCw0MCArODg1LDUyIEBA IHN0YXRpYyBpbnQgdWZzX210a19zdXNwZW5kKHN0cnVjdCB1ZnNfaGJhICpoYmEsIGVudW0gdWZz X3BtX29wIHBtX29wKQ0KIA0KIAlpZiAodWZzaGNkX2lzX2xpbmtfaGliZXJuOChoYmEpKSB7DQog CQllcnIgPSB1ZnNfbXRrX2xpbmtfc2V0X2xwbShoYmEpOw0KLQkJaWYgKGVycikgew0KLQkJCS8q DQotCQkJICogU2V0IGxpbmsgYXMgb2ZmIHN0YXRlIGVuZm9yY2VkbHkgdG8gdHJpZ2dlcg0KLQkJ CSAqIHVmc2hjZF9ob3N0X3Jlc2V0X2FuZF9yZXN0b3JlKCkgaW4gdWZzaGNkX3N1c3BlbmQoKQ0K LQkJCSAqIGZvciBjb21wbGV0ZWQgaG9zdCByZXNldC4NCi0JCQkgKi8NCi0JCQl1ZnNoY2Rfc2V0 X2xpbmtfb2ZmKGhiYSk7DQotCQkJcmV0dXJuIC1FQUdBSU47DQotCQl9DQorCQlpZiAoZXJyKQ0K KwkJCWdvdG8gZmFpbDsNCisJfQ0KKw0KKwlpZiAoIXVmc2hjZF9pc19saW5rX2FjdGl2ZShoYmEp KSB7DQogCQkvKg0KIAkJICogTWFrZSBzdXJlIG5vIGVycm9yIHdpbGwgYmUgcmV0dXJuZWQgdG8g cHJldmVudA0KIAkJICogdWZzaGNkX3N1c3BlbmQoKSByZS1lbmFibGluZyByZWd1bGF0b3JzIHdo aWxlIHZyZWcgaXMgc3RpbGwNCiAJCSAqIGluIGxvdy1wb3dlciBtb2RlLg0KIAkJICovDQogCQl1 ZnNfbXRrX3ZyZWdfc2V0X2xwbShoYmEsIHRydWUpOw0KKwkJZXJyID0gdWZzX210a19tcGh5X3Bv d2VyX29uKGhiYSwgZmFsc2UpOw0KKwkJaWYgKGVycikNCisJCQlnb3RvIGZhaWw7DQogCX0NCiAN CiAJcmV0dXJuIDA7DQorZmFpbDoNCisJLyoNCisJICogU2V0IGxpbmsgYXMgb2ZmIHN0YXRlIGVu Zm9yY2VkbHkgdG8gdHJpZ2dlcg0KKwkgKiB1ZnNoY2RfaG9zdF9yZXNldF9hbmRfcmVzdG9yZSgp IGluIHVmc2hjZF9zdXNwZW5kKCkNCisJICogZm9yIGNvbXBsZXRlZCBob3N0IHJlc2V0Lg0KKwkg Ki8NCisJdWZzaGNkX3NldF9saW5rX29mZihoYmEpOw0KKwlyZXR1cm4gLUVBR0FJTjsNCiB9DQog DQogc3RhdGljIGludCB1ZnNfbXRrX3Jlc3VtZShzdHJ1Y3QgdWZzX2hiYSAqaGJhLCBlbnVtIHVm c19wbV9vcCBwbV9vcCkNCiB7DQogCWludCBlcnI7DQogDQorCWVyciA9IHVmc19tdGtfbXBoeV9w b3dlcl9vbihoYmEsIHRydWUpOw0KKwlpZiAoZXJyKQ0KKwkJZ290byBmYWlsOw0KKw0KKwl1ZnNf bXRrX3ZyZWdfc2V0X2xwbShoYmEsIGZhbHNlKTsNCisNCiAJaWYgKHVmc2hjZF9pc19saW5rX2hp YmVybjgoaGJhKSkgew0KLQkJdWZzX210a192cmVnX3NldF9scG0oaGJhLCBmYWxzZSk7DQogCQll cnIgPSB1ZnNfbXRrX2xpbmtfc2V0X2hwbShoYmEpOw0KLQkJaWYgKGVycikgew0KLQkJCWVyciA9 IHVmc2hjZF9saW5rX3JlY292ZXJ5KGhiYSk7DQotCQkJcmV0dXJuIGVycjsNCi0JCX0NCisJCWlm IChlcnIpDQorCQkJZ290byBmYWlsOw0KIAl9DQogDQogCXJldHVybiAwOw0KK2ZhaWw6DQorCXJl dHVybiB1ZnNoY2RfbGlua19yZWNvdmVyeShoYmEpOw0KIH0NCiANCiBzdGF0aWMgdm9pZCB1ZnNf bXRrX2RiZ19yZWdpc3Rlcl9kdW1wKHN0cnVjdCB1ZnNfaGJhICpoYmEpDQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9zY3NpL3Vmcy91ZnMtbWVkaWF0ZWsuaCBiL2RyaXZlcnMvc2NzaS91ZnMvdWZzLW1l ZGlhdGVrLmgNCmluZGV4IDJiNmExMzEyYzliYy4uZjY2ODI0MWQzN2Y4IDEwMDY0NA0KLS0tIGEv ZHJpdmVycy9zY3NpL3Vmcy91ZnMtbWVkaWF0ZWsuaA0KKysrIGIvZHJpdmVycy9zY3NpL3Vmcy91 ZnMtbWVkaWF0ZWsuaA0KQEAgLTY5LDYgKzY5LDcgQEAgZW51bSB7DQogICogU2lQIGNvbW1hbmRz DQogICovDQogI2RlZmluZSBNVEtfU0lQX1VGU19DT05UUk9MICAgICAgICAgICAgICAgTVRLX1NJ UF9TTUNfQ01EKDB4Mjc2KQ0KKyNkZWZpbmUgVUZTX01US19TSVBfVkEwOV9QV1JfQ1RSTCAgICAg ICAgIEJJVCgwKQ0KICNkZWZpbmUgVUZTX01US19TSVBfREVWSUNFX1JFU0VUICAgICAgICAgIEJJ VCgxKQ0KICNkZWZpbmUgVUZTX01US19TSVBfQ1JZUFRPX0NUUkwgICAgICAgICAgIEJJVCgyKQ0K ICNkZWZpbmUgVUZTX01US19TSVBfUkVGX0NMS19OT1RJRklDQVRJT04gIEJJVCgzKQ0KQEAgLTk0 LDYgKzk1LDcgQEAgZW51bSB7DQogICovDQogZW51bSB1ZnNfbXRrX2hvc3RfY2FwcyB7DQogCVVG U19NVEtfQ0FQX0JPT1NUX0NSWVBUX0VOR0lORSAgICAgICAgID0gMSA8PCAwLA0KKwlVRlNfTVRL X0NBUF9WQTA5X1BXUl9DVFJMICAgICAgICAgICAgICA9IDEgPDwgMSwNCiB9Ow0KIA0KIHN0cnVj dCB1ZnNfbXRrX2NyeXB0X2NmZyB7DQpAQCAtMTEzLDYgKzExNSw3IEBAIHN0cnVjdCB1ZnNfbXRr X2hvc3Qgew0KIAlzdHJ1Y3QgcGh5ICptcGh5Ow0KIAlzdHJ1Y3QgdWZzX210a19ob3N0X2NmZyAq Y2ZnOw0KIAlzdHJ1Y3QgdWZzX210a19jcnlwdF9jZmcgKmNyeXB0Ow0KKwlzdHJ1Y3QgcmVndWxh dG9yICpyZWdfdmEwOTsNCiAJZW51bSB1ZnNfbXRrX2hvc3RfY2FwcyBjYXBzOw0KIAlzdHJ1Y3Qg cmVzZXRfY29udHJvbCAqaGNpX3Jlc2V0Ow0KIAlzdHJ1Y3QgcmVzZXRfY29udHJvbCAqdW5pcHJv X3Jlc2V0Ow0KLS0gDQoyLjE4LjANCg==