Received: by 2002:a05:6a10:9e8c:0:0:0:0 with SMTP id y12csp377948pxx; Thu, 29 Oct 2020 05:01:12 -0700 (PDT) X-Google-Smtp-Source: ABdhPJySGCkrEWxY67r6TxDixGu9XMMhLSwuOZpmT32FabZr5+tMB0igbMlxPoToczIkpqQajZHb X-Received: by 2002:a17:906:38d8:: with SMTP id r24mr3831169ejd.32.1603972872237; Thu, 29 Oct 2020 05:01:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1603972872; cv=none; d=google.com; s=arc-20160816; b=ewEavRKvXZuMQlIRg9xfy+fJ5nr8OUd6RjJ2z9C79Dqe5mrFzXSvWXWq844ygjTeXg P5OATW7liftfLFQlq/0RxyD8ZTB5tOiUXxB/5nPcWsYGm5D4DVBkQpnfNG7J/O4CGkA6 uCTzNFTsr+fpZen0dI1mvsvJv7oyBV+bScQoecUT+ALNX0PPmVETvNqx6Jq0fwgjGjec 8cXjLWpBdjvfn1Q7FKfElZa0pI9+y8g9UEMAkxrapitI0pAec2p5htGMHlB9hiB0SaZE jCE5ccePGVBkLLzh/vPoTDJOCzs0t6jVf2/ypTCasmhLW6LWG3/qjEkxp+1mv7kGEzg7 eqaQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=LOQmyP54SIzhf8yxDPWaDlmMn9uAWwzmBOlolnQyTaU=; b=KHQKZzFvQfnZUPGrQ4W3tVQmE7BpKUVK38zcnc/otSkruWHH5dmLne9jvyLQoDHfDT L9hFeubFC7jsYSY9GQeZXT+qkFMo5QK7i0ho+yQ9+tAEjVgkKE9SyqGAzaZhYCNifIlO kAR3MUlsBs69/uxznjM53/qP2PDqHseTQeuNnMeKkgAQ00F9J74xD7AkER/0AMn65+Qd IU9RYZRstJfPBnSguU/Dnm/6QE01jav1hOKqe0J8hTdcxYNAkx7dxWU7eT89zI0y+8ka 1swz3QLCNU6hO25vASSSZF8PtdV2iFL0Uo52q55ZqyCZkNIFCS2nJEt+Qzhzqzy927hN xheQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=OTF+tDpo; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id d23si1683913ejd.151.2020.10.29.05.00.48; Thu, 29 Oct 2020 05:01:12 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=OTF+tDpo; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726013AbgJ2L6J (ORCPT + 99 others); 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-kernel@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==