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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id D78BAD3B7CC for ; Mon, 25 Nov 2024 03:42:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:To:Subject:Cc: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=4ZqT0HdhU7hg2eyDNW+pFBhevO/j+fo6iPPYC9fmZC8=; b=ztFBj6wKUs3lH8 F68JpkKNDbb/JjdGofdwYgroneRKDDWVHOAaoehM+XyvYHu3rQ7P2lMuFhx4fmdN3YqPeYSbbgBTs 3U++8NorIoM9EhIk8QdFo7/DinsuNq8FoZT8lJWaOEy20vhsjainPBMEUqRzmFzrNgNjnJ7Kj2kmr hnqYooWK1MNBZdx/MKP1/NcJK8W21oZRTftsMpY3dTSo3TJT/0CFVixsDiVVEX6NzQphiPRSS0xk3 5G/mNDkmdHwzpOdabqCSqC5+xjKYmMDBkjZjP9By4s5JqGA/t2vIpz0e5l2xSmvfvHrCNf8sRWMtq eLRK9T3HC0PvnJ1wxiVg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tFPyx-00000006ydA-2yWP; Mon, 25 Nov 2024 03:41:51 +0000 Received: from mail-m1973184.qiye.163.com ([220.197.31.84]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tFPyv-00000006yca-0p7f for linux-rockchip@lists.infradead.org; Mon, 25 Nov 2024 03:41:51 +0000 Received: from [172.16.12.45] (unknown [58.22.7.114]) by smtp.qiye.163.com (Hmail) with ESMTP id 3b1cab9c; Mon, 25 Nov 2024 11:41:35 +0800 (GMT+08:00) Message-ID: Date: Mon, 25 Nov 2024 11:41:36 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Cc: shawn.lin@rock-chips.com, Rob Herring , "James E . J . Bottomley" , "Martin K . Petersen" , Krzysztof Kozlowski , Conor Dooley , Ulf Hansson , Heiko Stuebner , "Rafael J . Wysocki" , Alim Akhtar , Avri Altman , Bart Van Assche , YiFeng Zhao , Liang Chen , linux-scsi@vger.kernel.org, linux-rockchip@lists.infradead.org, devicetree@vger.kernel.org, linux-pm@vger.kernel.org Subject: Re: [PATCH v5 6/7] scsi: ufs: rockchip: initial support for UFS To: Manivannan Sadhasivam References: <1731048987-229149-1-git-send-email-shawn.lin@rock-chips.com> <1731048987-229149-7-git-send-email-shawn.lin@rock-chips.com> <20241123050118.g52fxwdzggsyk6en@thinkpad> Content-Language: en-GB From: Shawn Lin In-Reply-To: <20241123050118.g52fxwdzggsyk6en@thinkpad> X-HM-Spam-Status: e1kfGhgUHx5ZQUpXWQgPGg8OCBgUHx5ZQUlOS1dZFg8aDwILHllBWSg2Ly tZV1koWUFDSUNOT01LS0k3V1ktWUFJV1kPCRoVCBIfWUFZGkhPT1ZLSkpKGUgYHUIYSh9WFRQJFh oXVRMBExYaEhckFA4PWVdZGBILWUFZTkNVSUlVTFVKSk9ZV1kWGg8SFR0UWUFZT0tIVUpLSUhCSE NVSktLVUpCS0tZBg++ X-HM-Tid: 0a93616910fb09cckunm3b1cab9c X-HM-MType: 1 X-HM-Sender-Digest: e1kMHhlZQR0aFwgeV1kSHx4VD1lBWUc6PDI6KBw4CDIaDTErTRoWNjUT FzQaFAtVSlVKTEhJTktNS0JMTUhDVTMWGhIXVQgTGgwVVRcSFTsJFBgQVhgTEgsIVRgUFkVZV1kS C1lBWU5DVUlJVUxVSkpPWVdZCAFZQUNMSEI3Bg++ DKIM-Signature: a=rsa-sha256; b=P06I1za6ziF5dhQt+0I0awvyNGvvhnRarGtPoT2DWRphFOdywbPVa7alTXMbppqm7BnrklAzMp9ldMsPkk/GYVlK8xIxALFQEAgStZDWfB5eBS/ntUQKfsVaW+nG8r0wv//IZ7NB/IjJC37gF3ZdV8pkVzn8bgdemsfO3jRf+EI=; s=default; c=relaxed/relaxed; d=rock-chips.com; v=1; bh=a7sIHQbo5it0LvIWy6bOuOFcXjjrX3CWrnDlJ+wrRI4=; h=date:mime-version:subject:message-id:from; X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20241124_194149_770554_BD7B489E X-CRM114-Status: GOOD ( 30.65 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org 5ZyoIDIwMjQvMTEvMjMgMTM6MDEsIE1hbml2YW5uYW4gU2FkaGFzaXZhbSDlhpnpgZM6Cj4gT24g RnJpLCBOb3YgMDgsIDIwMjQgYXQgMDI6NTY6MjVQTSArMDgwMCwgU2hhd24gTGluIHdyb3RlOgo+ PiBSSzM1NzYgU29DIGNvbnRhaW5zIGEgVUZTIGNvbnRyb2xsZXIsIGFkZCBpbml0aWFsIHN1cHBv cnQgZm9yIGl0Lgo+PiBUaGUgZmVhdHVyZXMgYXJlOgo+PiAoMSkgc3VwcG9ydCBVRlMgMi4wIGZl YXR1cmVzCj4+ICgyKSBIaWdoIHNwZWVkIHVwIHRvIEhTLUczCj4+ICgzKSAyUlgtMlRYIGxhbmVz Cj4+ICg0KSBhdXRvIEg4IGVudHJ5IGFuZCBleGl0Cj4+Cj4+IFNvZnR3YXJlIGxpbWl0YXRpb246 Cj4+ICgxKSBIQ0UgcHJvY2VkdXJlOiBlbmFibGUgY29udHJvbGxlci0+ZW5hYmxlIGludHItPmRt ZV9yZXNldC0+ZG1lX2VuYWJsZQo+PiAoMikgZGlzYWJsZSB1bmlwcm8gdGltZW91dCB2YWx1ZXMg YmVmb3JlIHBvd2VyIG1vZGUgY2hhbmdlCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IFNoYXduIExpbiA8 c2hhd24ubGluQHJvY2stY2hpcHMuY29tPgo+PiAtLS0KPj4KPj4gQ2hhbmdlcyBpbiB2NToKPj4g LSB1c2UgZGV2aWNlX3NldF9hd2FrZV9wYXRoKCkgYW5kIGRpc2FibGUgcmVmX291dF9jbGsgaW4g c3VzcGVuZAo+PiAtIHJlbW92ZSBwZF9pZCBmcm9tIGhlYWRlcgo+PiAtIHJlY29udHJ1Y3QgdWZz X3JvY2tjaGlwX2hjZV9lbmFibGVfbm90aWZ5KCkgdG8gd29ya2Fyb3VuZCBoY2UgZW5hYmxlCj4+ ICAgIHdpdGhvdXQgdXNpbmcgbmV3IHF1aXJrCj4+Cj4+IENoYW5nZXMgaW4gdjQ6Cj4+IC0gZGVh bCB3aXRoIHBvd2VyIGRvbWFpbiBvZiBycG0gYW5kIHNwbSBzdWdnZXN0ZWQgYnkgVWxmCj4+IC0g Rml4IHR5cG8gYW5kIGRpc2FibGUgY2xrcyBpbiB1ZnNfcm9ja2NoaXBfcmVtb3ZlCj4+IC0gcmVt b3ZlIGNsa19kaXNhYmxlX3VucHJlcGFyZShob3N0LT5yZWZfb3V0X2NsaykgZnJvbQo+PiAgICB1 ZnNfcm9ja2NoaXBfcmVtb3ZlCj4+Cj4+IENoYW5nZXMgaW4gdjM6Cj4+IC0gcmV3b3JkIEtjb25m aWcgZGVzY3JpcHRpb24KPj4gLSBlbGFib3JhdGUgbW9yZSBhYm91dCBjb250cm9sbGVyIGluIGNv bW1pdCBtc2cKPj4gLSB1c2Ugcm9ja2NoaXAscmszNTc2LXVmc2hjIGZvciBjb21wYXRpYmxlCj4+ IC0gcmVtb3ZlIHVzZWxlc3MgaGVhZGVyIGZpbGUKPj4gLSByZW1vdmUgaW5saW5lIGZvciB1ZnNo Y2RfaXNfZGV2aWNlX3ByZXNlbnQKPj4gLSB1c2UgdXNsZWVwX3JhbmdlIGluc3RlYWQKPj4gLSBy ZW1vdmUgaW5pdGlhbGl6YXRpb24sIHJldmVyc2UgWG1hcyBvcmRlcgo+PiAtIHJlbW92ZSB1c2Vs ZXNzIHZhcmlibGVzCj4+IC0gY2hlY2sgdm9wcyBmb3IgbnVsbAo+PiAtIG90aGVyIHNtYWxsIGZp eGVzIGZvciBlcnIgcGF0aAo+PiAtIHJlbW92ZSBwbV9ydW50aW1lX3NldF9hY3RpdmUKPj4gLSBm aXggdGhlIGFjdGl2ZSBhbmQgaW5hY3RpdmUgcmVzZXQtZ3Bpb3MgbG9naWMKPj4gLSBmaXggcnBt X2x2bCBhbmQgc3BtX2x2bCB0byA1IGFuZCBtb3ZlIHRvIGVuZCBvZiBwcm9iZSBwYXRoCj4+IC0g cmVtb3ZlIHVubmVjZXNzYXJ5IHN5c3RlbSBQTSBjYWxsYmFja3MKPj4gLSB1c2UgVUZTSENJX1FV SVJLX0RNRV9SRVNFVF9FTkFCTEVfQUZURVJfSENFIGluc3RlYWQKPj4gICAgb2YgVUZTSENJX1FV SVJLX0JST0tFTl9IQ0UKPj4KPj4gQ2hhbmdlcyBpbiB2MjogTm9uZQo+Pgo+PiAgIGRyaXZlcnMv dWZzL2hvc3QvS2NvbmZpZyAgICAgICAgfCAgMTIgKysKPj4gICBkcml2ZXJzL3Vmcy9ob3N0L01h a2VmaWxlICAgICAgIHwgICAxICsKPj4gICBkcml2ZXJzL3Vmcy9ob3N0L3Vmcy1yb2NrY2hpcC5j IHwgMzY4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPj4gICBkcml2 ZXJzL3Vmcy9ob3N0L3Vmcy1yb2NrY2hpcC5oIHwgIDQ4ICsrKysrKwo+PiAgIDQgZmlsZXMgY2hh bmdlZCwgNDI5IGluc2VydGlvbnMoKykKPj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy91 ZnMvaG9zdC91ZnMtcm9ja2NoaXAuYwo+PiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3Vm cy9ob3N0L3Vmcy1yb2NrY2hpcC5oCj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3Vmcy9ob3N0 L0tjb25maWcgYi9kcml2ZXJzL3Vmcy9ob3N0L0tjb25maWcKPj4gaW5kZXggNTgwYzhkMC4uMTkx ZmJkNyAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy91ZnMvaG9zdC9LY29uZmlnCj4+ICsrKyBiL2Ry aXZlcnMvdWZzL2hvc3QvS2NvbmZpZwo+PiBAQCAtMTQyLDMgKzE0MiwxNSBAQCBjb25maWcgU0NT SV9VRlNfU1BSRAo+PiAgIAo+PiAgIAkgIFNlbGVjdCB0aGlzIGlmIHlvdSBoYXZlIFVGUyBjb250 cm9sbGVyIG9uIFVuaXNvYyBjaGlwc2V0Lgo+PiAgIAkgIElmIHVuc3VyZSwgc2F5IE4uCj4+ICsK Pj4gK2NvbmZpZyBTQ1NJX1VGU19ST0NLQ0hJUAo+PiArCXRyaXN0YXRlICJSb2NrY2hpcCBVRlMg aG9zdCBjb250cm9sbGVyIGRyaXZlciIKPj4gKwlkZXBlbmRzIG9uIFNDU0lfVUZTSENEX1BMQVRG T1JNICYmIChBUkNIX1JPQ0tDSElQIHx8IENPTVBJTEVfVEVTVCkKPj4gKwloZWxwCj4+ICsJICBU aGlzIHNlbGVjdHMgdGhlIFJvY2tjaGlwIHNwZWNpZmljIGFkZGl0aW9ucyB0byBVRlNIQ0QgcGxh dGZvcm0gZHJpdmVyLgo+PiArCSAgVUZTIGhvc3Qgb24gUm9ja2NoaXAgbmVlZHMgc29tZSB2ZW5k b3Igc3BlY2lmaWMgY29uZmlndXJhdGlvbiBiZWZvcmUKPj4gKwkgIGFjY2Vzc2luZyB0aGUgaGFy ZHdhcmUgd2hpY2ggaW5jbHVkZXMgUEhZIGNvbmZpZ3VyYXRpb24gYW5kIHZlbmRvcgo+PiArCSAg c3BlY2lmaWMgcmVnaXN0ZXJzLgo+PiArCj4+ICsJICBTZWxlY3QgdGhpcyBpZiB5b3UgaGF2ZSBV RlMgY29udHJvbGxlciBvbiBSb2NrY2hpcCBjaGlwc2V0Lgo+PiArCSAgSWYgdW5zdXJlLCBzYXkg Ti4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdWZzL2hvc3QvTWFrZWZpbGUgYi9kcml2ZXJzL3Vm cy9ob3N0L01ha2VmaWxlCj4+IGluZGV4IDQ1NzNhZWEuLjJmOTdmZWIgMTAwNjQ0Cj4+IC0tLSBh L2RyaXZlcnMvdWZzL2hvc3QvTWFrZWZpbGUKPj4gKysrIGIvZHJpdmVycy91ZnMvaG9zdC9NYWtl ZmlsZQo+PiBAQCAtMTAsNSArMTAsNiBAQCBvYmotJChDT05GSUdfU0NTSV9VRlNIQ0RfUExBVEZP Uk0pICs9IHVmc2hjZC1wbHRmcm0ubwo+PiAgIG9iai0kKENPTkZJR19TQ1NJX1VGU19ISVNJKSAr PSB1ZnMtaGlzaS5vCj4+ICAgb2JqLSQoQ09ORklHX1NDU0lfVUZTX01FRElBVEVLKSArPSB1ZnMt bWVkaWF0ZWsubwo+PiAgIG9iai0kKENPTkZJR19TQ1NJX1VGU19SRU5FU0FTKSArPSB1ZnMtcmVu ZXNhcy5vCj4+ICtvYmotJChDT05GSUdfU0NTSV9VRlNfUk9DS0NISVApICs9IHVmcy1yb2NrY2hp cC5vCj4+ICAgb2JqLSQoQ09ORklHX1NDU0lfVUZTX1NQUkQpICs9IHVmcy1zcHJkLm8KPj4gICBv YmotJChDT05GSUdfU0NTSV9VRlNfVElfSjcyMUUpICs9IHRpLWo3MjFlLXVmcy5vCj4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL3Vmcy9ob3N0L3Vmcy1yb2NrY2hpcC5jIGIvZHJpdmVycy91ZnMvaG9z dC91ZnMtcm9ja2NoaXAuYwo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRleCAwMDAwMDAw Li5iMDg3Y2UwCj4+IC0tLSAvZGV2L251bGwKPj4gKysrIGIvZHJpdmVycy91ZnMvaG9zdC91ZnMt cm9ja2NoaXAuYwo+IAo+IFsuLi5dCj4gCj4+ICsKPj4gKwlob3N0LT5jbGtzWzBdLmlkID0gImNv cmUiOwo+PiArCWhvc3QtPmNsa3NbMV0uaWQgPSAicGNsayI7Cj4+ICsJaG9zdC0+Y2xrc1syXS5p ZCA9ICJwY2xrX21waHkiOwo+PiArCWVyciA9IGRldm1fY2xrX2J1bGtfZ2V0X29wdGlvbmFsKGRl diwgVUZTX01BWF9DTEtTLCBob3N0LT5jbGtzKTsKPiAKPiBTdGlsbCBub3QgdXNpbmcgY2xrX2J1 bGtfZ2V0X2FsbCgpPyBhcyBzdWdnZXN0ZWQgcHJldmlvdXNseT8KCkkgbWlzc2VkIHRoZSBjb21t ZW50LCB3aWxsIGZpeC4KCj4gCj4+ICsJaWYgKGVycikKPj4gKwkJcmV0dXJuIGRldl9lcnJfcHJv YmUoZGV2LCBlcnIsICJmYWlsZWQgdG8gZ2V0IGNsb2Nrc1xuIik7Cj4+ICsKPj4gKwllcnIgPSBj bGtfYnVsa19wcmVwYXJlX2VuYWJsZShVRlNfTUFYX0NMS1MsIGhvc3QtPmNsa3MpOwo+PiArCWlm IChlcnIpCj4+ICsJCXJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgZXJyLCAiZmFpbGVkIHRvIGVu YWJsZSBjbG9ja3NcbiIpOwo+PiArCj4+ICsJaG9zdC0+aGJhID0gaGJhOwo+PiArCj4+ICsJdWZz aGNkX3NldF92YXJpYW50KGhiYSwgaG9zdCk7Cj4+ICsKPj4gKwlyZXR1cm4gMDsKPj4gK30KPj4g Kwo+PiArc3RhdGljIGludCB1ZnNfcm9ja2NoaXBfcmszNTc2X2luaXQoc3RydWN0IHVmc19oYmEg KmhiYSkKPj4gK3sKPj4gKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBoYmEtPmRldjsKPj4gKwlpbnQg cmV0Owo+PiArCj4+ICsJaGJhLT5xdWlya3MgPSBVRlNIQ0RfUVVJUktfU0tJUF9ERUZfVU5JUFJP X1RJTUVPVVRfU0VUVElORzsKPj4gKwo+PiArCS8qIEVuYWJsZSBCS09QUyB3aGVuIHN1c3BlbmQg Ki8KPj4gKwloYmEtPmNhcHMgfD0gVUZTSENEX0NBUF9BVVRPX0JLT1BTX1NVU1BFTkQ7Cj4+ICsJ LyogRW5hYmxlIHB1dHRpbmcgZGV2aWNlIGludG8gZGVlcCBzbGVlcCAqLwo+PiArCWhiYS0+Y2Fw cyB8PSBVRlNIQ0RfQ0FQX0RFRVBTTEVFUDsKPj4gKwkvKiBFbmFibGUgZGV2ZnJlcSBvZiBVRlMg Ki8KPj4gKwloYmEtPmNhcHMgfD0gVUZTSENEX0NBUF9DTEtfU0NBTElORzsKPj4gKwkvKiBFbmFi bGUgV3JpdGVCb29zdGVyICovCj4+ICsJaGJhLT5jYXBzIHw9IFVGU0hDRF9DQVBfV0JfRU47Cj4+ ICsKPj4gKwlyZXQgPSB1ZnNfcm9ja2NoaXBfY29tbW9uX2luaXQoaGJhKTsKPj4gKwlpZiAocmV0 KQo+PiArCQlyZXR1cm4gZGV2X2Vycl9wcm9iZShkZXYsIHJldCwgInVmcyBjb21tb24gaW5pdCBm YWlsXG4iKTsKPj4gKwo+PiArCXJldHVybiAwOwo+PiArfQo+PiArCj4+ICtzdGF0aWMgaW50IHVm c19yb2NrY2hpcF9kZXZpY2VfcmVzZXQoc3RydWN0IHVmc19oYmEgKmhiYSkKPj4gK3sKPj4gKwlz dHJ1Y3QgdWZzX3JvY2tjaGlwX2hvc3QgKmhvc3QgPSB1ZnNoY2RfZ2V0X3ZhcmlhbnQoaGJhKTsK Pj4gKwo+PiArCS8qIEFjdGl2ZSB0aGUgcmVzZXQtZ3Bpb3MgKi8KPj4gKwlncGlvZF9zZXRfdmFs dWVfY2Fuc2xlZXAoaG9zdC0+cnN0X2dwaW8sIDEpOwo+PiArCXVzbGVlcF9yYW5nZSgyMCwgMjUp Owo+PiArCj4+ICsJLyogSW5hY3RpdmUgdGhlIHJlc2V0LWdwaW9zICovCj4+ICsJZ3Bpb2Rfc2V0 X3ZhbHVlX2NhbnNsZWVwKGhvc3QtPnJzdF9ncGlvLCAwKTsKPj4gKwl1c2xlZXBfcmFuZ2UoMjAs IDI1KTsKPj4gKwo+PiArCXJldHVybiAwOwo+PiArfQo+PiArCj4+ICtzdGF0aWMgY29uc3Qgc3Ry dWN0IHVmc19oYmFfdmFyaWFudF9vcHMgdWZzX2hiYV9yazM1NzZfdm9wcyA9IHsKPj4gKwkubmFt ZSA9ICJyazM1NzYiLAo+PiArCS5pbml0ID0gdWZzX3JvY2tjaGlwX3JrMzU3Nl9pbml0LAo+PiAr CS5kZXZpY2VfcmVzZXQgPSB1ZnNfcm9ja2NoaXBfZGV2aWNlX3Jlc2V0LAo+PiArCS5oY2VfZW5h YmxlX25vdGlmeSA9IHVmc19yb2NrY2hpcF9oY2VfZW5hYmxlX25vdGlmeSwKPj4gKwkucGh5X2lu aXRpYWxpemF0aW9uID0gdWZzX3JvY2tjaGlwX3JrMzU3Nl9waHlfaW5pdCwKPj4gK307Cj4+ICsK Pj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHVmc19yb2NrY2hpcF9vZl9tYXRj aFtdID0gewo+PiArCXsgLmNvbXBhdGlibGUgPSAicm9ja2NoaXAscmszNTc2LXVmc2hjIiwgLmRh dGEgPSAmdWZzX2hiYV9yazM1NzZfdm9wcyB9LAo+PiArfTsKPj4gK01PRFVMRV9ERVZJQ0VfVEFC TEUob2YsIHVmc19yb2NrY2hpcF9vZl9tYXRjaCk7Cj4+ICsKPj4gK3N0YXRpYyBpbnQgdWZzX3Jv Y2tjaGlwX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4+ICt7Cj4+ICsJc3Ry dWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsKPj4gKwljb25zdCBzdHJ1Y3QgdWZzX2hiYV92 YXJpYW50X29wcyAqdm9wczsKPj4gKwlzdHJ1Y3QgdWZzX2hiYSAqaGJhOwo+PiArCWludCBlcnI7 Cj4+ICsKPj4gKwl2b3BzID0gZGV2aWNlX2dldF9tYXRjaF9kYXRhKGRldik7Cj4+ICsJaWYgKCF2 b3BzKQo+PiArCQlyZXR1cm4gZGV2X2Vycl9wcm9iZShkZXYsIC1FSU5WQUwsICJ1ZnNfaGJhX3Zh cmlhbnRfb3BzIG5vdCBkZWZpbmVkLlxuIik7Cj4+ICsKPj4gKwllcnIgPSB1ZnNoY2RfcGx0ZnJt X2luaXQocGRldiwgdm9wcyk7Cj4+ICsJaWYgKGVycikKPj4gKwkJcmV0dXJuIGRldl9lcnJfcHJv YmUoZGV2LCBlcnIsICJ1ZnNoY2RfcGx0ZnJtX2luaXQgZmFpbGVkXG4iKTsKPj4gKwo+PiArCWhi YSA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOwo+PiArCS8qIFNldCB0aGUgZGVmYXVsdCBk ZXNpcmVkIHBtIGxldmVsIGluIGNhc2Ugbm8gdXNlcnMgc2V0IHZpYSBzeXNmcyAqLwo+PiArCXVm c19yb2NrY2hpcF9zZXRfcG1fbHZsKGhiYSk7Cj4gCj4gSXMgaXQgcG9zc2libGUgdG8gbW92ZSB0 aGlzIHRvIHVmc19yb2NrY2hpcF9yazM1NzZfaW5pdCgpPwoKU3VyZS4KCj4gCj4+ICsKPj4gKwly ZXR1cm4gMDsKPj4gK30KPj4gKwo+PiArc3RhdGljIHZvaWQgdWZzX3JvY2tjaGlwX3JlbW92ZShz dHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+PiArewo+PiArCXN0cnVjdCB1ZnNfaGJhICpo YmEgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKPj4gKwlzdHJ1Y3QgdWZzX3JvY2tjaGlw X2hvc3QgKmhvc3QgPSB1ZnNoY2RfZ2V0X3ZhcmlhbnQoaGJhKTsKPj4gKwo+PiArCXBtX3J1bnRp bWVfZm9yYmlkKCZwZGV2LT5kZXYpOwo+PiArCXBtX3J1bnRpbWVfZ2V0X25vcmVzdW1lKCZwZGV2 LT5kZXYpOwo+PiArCXVmc2hjZF9yZW1vdmUoaGJhKTsKPj4gKwl1ZnNoY2RfZGVhbGxvY19ob3N0 KGhiYSk7Cj4gCj4gWW91IHdvdWxkbid0IG5lZWQgdGhlc2UgaWYgeW91IHJlYmFzZSB0aGlzIHNl cmllcyBvbiB0b3Agb2Ygc2NzaS9mb3ItbmV4dC4KPiAKPj4gKwljbGtfYnVsa19kaXNhYmxlX3Vu cHJlcGFyZShVRlNfTUFYX0NMS1MsIGhvc3QtPmNsa3MpOwo+PiArfQo+PiArCj4+ICsjaWZkZWYg Q09ORklHX1BNCj4+ICtzdGF0aWMgaW50IHVmc19yb2NrY2hpcF9ydW50aW1lX3N1c3BlbmQoc3Ry dWN0IGRldmljZSAqZGV2KQo+PiArewo+PiArCXN0cnVjdCB1ZnNfaGJhICpoYmEgPSBkZXZfZ2V0 X2RydmRhdGEoZGV2KTsKPj4gKwlzdHJ1Y3QgdWZzX3JvY2tjaGlwX2hvc3QgKmhvc3QgPSB1ZnNo Y2RfZ2V0X3ZhcmlhbnQoaGJhKTsKPj4gKwo+PiArCWNsa19kaXNhYmxlX3VucHJlcGFyZShob3N0 LT5yZWZfb3V0X2Nsayk7Cj4+ICsKPj4gKwkvKiBTaG91bGRuJ3QgcG93ZXIgZG93biBpZiBycG1f bHZsIGlzIGxlc3MgdGhhbiBsZXZlbCA1LiAqLwo+PiArCWRldl9wbV9nZW5wZF9ycG1fYWx3YXlz X29uKGRldiwgaGJhLT5ycG1fbHZsIDwgVUZTX1BNX0xWTF81ID8gdHJ1ZSA6IGZhbHNlKTsKPj4g Kwo+PiArCXJldHVybiB1ZnNoY2RfcnVudGltZV9zdXNwZW5kKGRldik7Cj4+ICt9Cj4+ICsKPj4g K3N0YXRpYyBpbnQgdWZzX3JvY2tjaGlwX3J1bnRpbWVfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRl dikKPj4gK3sKPj4gKwlzdHJ1Y3QgdWZzX2hiYSAqaGJhID0gZGV2X2dldF9kcnZkYXRhKGRldik7 Cj4+ICsJc3RydWN0IHVmc19yb2NrY2hpcF9ob3N0ICpob3N0ID0gdWZzaGNkX2dldF92YXJpYW50 KGhiYSk7Cj4+ICsJaW50IGVycjsKPj4gKwo+PiArCWVyciA9IGNsa19wcmVwYXJlX2VuYWJsZSho b3N0LT5yZWZfb3V0X2Nsayk7Cj4+ICsJaWYgKGVycikgewo+PiArCQlkZXZfZXJyKGhiYS0+ZGV2 LCAiZmFpbGVkIHRvIGVuYWJsZSByZWYgb3V0IGNsb2NrICVkXG4iLCBlcnIpOwo+PiArCQlyZXR1 cm4gZXJyOwo+PiArCX0KPj4gKwo+PiArCXJlc2V0X2NvbnRyb2xfYXNzZXJ0KGhvc3QtPnJzdCk7 Cj4+ICsJdXNsZWVwX3JhbmdlKDEsIDIpOwo+PiArCXJlc2V0X2NvbnRyb2xfZGVhc3NlcnQoaG9z dC0+cnN0KTsKPj4gKwo+PiArCXJldHVybiB1ZnNoY2RfcnVudGltZV9yZXN1bWUoZGV2KTsKPj4g K30KPj4gKyNlbmRpZgo+PiArCj4+ICsjaWZkZWYgQ09ORklHX1BNX1NMRUVQCj4+ICtzdGF0aWMg aW50IHVmc19yb2NrY2hpcF9zeXN0ZW1fc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpCj4+ICt7 Cj4+ICsJc3RydWN0IHVmc19oYmEgKmhiYSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+PiArCXN0 cnVjdCB1ZnNfcm9ja2NoaXBfaG9zdCAqaG9zdCA9IHVmc2hjZF9nZXRfdmFyaWFudChoYmEpOwo+ PiArCWludCBlcnI7Cj4+ICsKPj4gKwlpZiAoaGJhLT5zcG1fbHZsIDwgVUZTX1BNX0xWTF81KQo+ PiArCQlkZXZpY2Vfc2V0X2F3YWtlX3BhdGgoZGV2KTsKPiAKPiBJdCdkIGJlIHdvcnRoIGFkZGlu ZyBhIGNvbW1lbnQgaGVyZSBhcyB0aGUgQVBJIG5hbWluZyBpcyBub3QgdmVyeSBjbGVhciBub3cu Cj4gCgpXaWxsIGFkZC4gVGhhbmtzLgoKPiAtIE1hbmkKPiAKCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51eC1yb2NrY2hpcCBtYWlsaW5nIGxpc3QK TGludXgtcm9ja2NoaXBAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFk Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJvY2tjaGlwCg==