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 54834C52D7C for ; Tue, 13 Aug 2024 07:31:23 +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=b6dwcp42oeOEN+3oUli/0gssZsJTKdHWr96LiSpJo4k=; b=MBxJOg0Z0MCU4P 8UJXvJKHlInJsybWkRFFmeHo2bhKbigkN+2WewrMUAzmM2nZxYtRpdIPSC9C+Nm0o6xNBH/TH80X5 W9/5JbMpNNiNrS3nuDkHxXcbafT0T3dTaDn7pvu0ar75v3SAJq5q5e4qy2m2zcPJSj00malUC37ou 2imibitb1BKRSLbsVFNZpUZBbzmyFqAc1gsIwG+QY4KmP7HBDcHy8LsNS8pNEmHbmeI9MkVaGRpjP Mla5Jx1RxA/nMAvS3mRT/X9UPs2py8b0ng73Gcg4hm8YXNmP50OztqaIOqRocA1uL1jt7MgodczrD nwGswg1frXDHunbseHjQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sdlzy-00000002jlZ-1as5; Tue, 13 Aug 2024 07:31:18 +0000 Received: from mail-m248.xmail.ntesmail.com ([45.195.24.8]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sdlsC-00000002hiS-3NB7 for linux-rockchip@lists.infradead.org; Tue, 13 Aug 2024 07:23:19 +0000 DKIM-Signature: a=rsa-sha256; b=BkA/F/ewQR//WZSnup7zbvfDz2rwkjbNAu+P4X4sEZtl855QX6ip9SbDy3aT1is7t61UMH9018aWuF3FZGzUNBo9dS1ywdXAqK7FgPZEv6QDe/XyUbO/9o9DuqYFLaZ2KQUfkdgoP0/hP0E7QVdjwHTBrQbaFOTPdGbNjjAftUI=; s=default; c=relaxed/relaxed; d=rock-chips.com; v=1; bh=Ean51P6QnEA7VC3XHtCHLqNpmw7mebQanpqRR4wIAz8=; h=date:mime-version:subject:message-id:from; Received: from [172.16.12.45] (unknown [58.22.7.114]) by smtp.qiye.163.com (Hmail) with ESMTPA id 5B5F64602DD; Tue, 13 Aug 2024 15:22:46 +0800 (CST) Message-ID: <9fd536a9-b0bf-46a6-92c2-503ea16f7fcd@rock-chips.com> Date: Tue, 13 Aug 2024 15:22:45 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Cc: shawn.lin@rock-chips.com, Manivannan Sadhasivam , Rob Herring , "James E . J . Bottomley" , "Martin K . Petersen" , Krzysztof Kozlowski , Conor Dooley , Heiko Stuebner , Alim Akhtar , Avri Altman , Bart Van Assche , YiFeng Zhao , Liang Chen , linux-scsi@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org Subject: Re: [PATCH v2 3/3] scsi: ufs: rockchip: init support for UFS To: Manivannan Sadhasivam References: <1723089163-28983-1-git-send-email-shawn.lin@rock-chips.com> <1723089163-28983-4-git-send-email-shawn.lin@rock-chips.com> <20240809062813.GC2826@thinkpad> <421d48b7-4aa7-4202-8b5f-9c60916f6ef6@rock-chips.com> <20240810092817.GA147655@thinkpad> <3b2617f5-acb1-45c6-993c-33249fd19888@rock-chips.com> <20240812041051.GA2861@thinkpad> <49659932-5caf-433b-a140-664b61617c43@rock-chips.com> <20240812165504.GB6003@thinkpad> Content-Language: en-GB From: Shawn Lin In-Reply-To: X-HM-Spam-Status: e1kfGhgUHx5ZQUpXWQgPGg8OCBgUHx5ZQUlOS1dZFg8aDwILHllBWSg2Ly tZV1koWUFDSUNOT01LS0k3V1ktWUFJV1kPCRoVCBIfWUFZQ0pLTlZJHkJMT0hKTE8dHh1WFRQJFh oXVRMBExYaEhckFA4PWVdZGBILWUFZTkNVSUlVTFVKSk9ZV1kWGg8SFR0UWUFZT0tIVUpLSUhCSE NVSktLVUpCS0tZBg++ X-HM-Tid: 0a914a9e33ad03aekunm5b5f64602dd X-HM-MType: 1 X-HM-Sender-Digest: e1kMHhlZQR0aFwgeV1kSHx4VD1lBWUc6PTo6Sgw*DjI8KUoYNzEoNzEf CClPCQNVSlVKTElITkhITE1DSUlKVTMWGhIXVQgTGgwVVRcSFTsJFBgQVhgTEgsIVRgUFkVZV1kS C1lBWU5DVUlJVUxVSkpPWVdZCAFZQUpJS09KNwY+ X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240813_002317_457660_464CB4DF X-CRM114-Status: GOOD ( 44.00 ) 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 5ZyoIDIwMjQvOC8xMyAxMTo1MiwgU2hhd24gTGluIOWGmemBkzoKPiBIaSBNYW5pLAo+IAo+IOWc qCAyMDI0LzgvMTMgMDo1NSwgTWFuaXZhbm5hbiBTYWRoYXNpdmFtIOWGmemBkzoKPj4gT24gTW9u LCBBdWcgMTIsIDIwMjQgYXQgMDI6MjQ6MzFQTSArMDgwMCwgU2hhd24gTGluIHdyb3RlOgo+Pj4g 5ZyoIDIwMjQvOC8xMiAxMjoxMCwgTWFuaXZhbm5hbiBTYWRoYXNpdmFtIOWGmemBkzoKPj4+PiBP biBNb24sIEF1ZyAxMiwgMjAyNCBhdCAwOToyODoyNkFNICswODAwLCBTaGF3biBMaW4gd3JvdGU6 Cj4+Pj4+IEpIaSBNYW5pLAo+Pj4+Pgo+Pj4+PiDlnKggMjAyNC84LzEwIDE3OjI4LCBNYW5pdmFu bmFuIFNhZGhhc2l2YW0g5YaZ6YGTOgo+Pj4+Pj4gT24gRnJpLCBBdWcgMDksIDIwMjQgYXQgMDQ6 MTY6NDFQTSArMDgwMCwgU2hhd24gTGluIHdyb3RlOgo+Pj4+Pj4KPj4+Pj4+IFsuLi5dCj4+Pj4+ Pgo+Pj4+Pj4+Pj4gK3N0YXRpYyBpbnQgdWZzX3JvY2tjaGlwX2hjZV9lbmFibGVfbm90aWZ5KHN0 cnVjdCB1ZnNfaGJhICpoYmEsCj4+Pj4+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBlbnVtIHVmc19ub3RpZnlfY2hhbmdlX3N0YXR1cyBzdGF0dXMpCj4+Pj4+ Pj4+PiArewo+Pj4+Pj4+Pj4gK8KgwqDCoCBpbnQgZXJyID0gMDsKPj4+Pj4+Pj4+ICsKPj4+Pj4+ Pj4+ICvCoMKgwqAgaWYgKHN0YXR1cyA9PSBQUkVfQ0hBTkdFKSB7Cj4+Pj4+Pj4+PiArwqDCoMKg wqDCoMKgwqAgaW50IHJldHJ5X291dGVyID0gMzsKPj4+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoCBp bnQgcmV0cnlfaW5uZXI7Cj4+Pj4+Pj4+PiArc3RhcnQ6Cj4+Pj4+Pj4+PiArwqDCoMKgwqDCoMKg wqAgaWYgKHVmc2hjZF9pc19oYmFfYWN0aXZlKGhiYSkpCj4+Pj4+Pj4+PiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCAvKiBjaGFuZ2UgY29udHJvbGxlciBzdGF0ZSB0byAicmVzZXQgc3RhdGUiICov Cj4+Pj4+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1ZnNoY2RfaGJhX3N0b3AoaGJhKTsK Pj4+Pj4+Pj4+ICsKPj4+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoCAvKiBVbmlQcm8gbGluayBpcyBk aXNhYmxlZCBhdCB0aGlzIHBvaW50ICovCj4+Pj4+Pj4+PiArwqDCoMKgwqDCoMKgwqAgdWZzaGNk X3NldF9saW5rX29mZihoYmEpOwo+Pj4+Pj4+Pj4gKwo+Pj4+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKg IC8qIHN0YXJ0IGNvbnRyb2xsZXIgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UgKi8KPj4+Pj4+Pj4+ ICvCoMKgwqDCoMKgwqDCoCB1ZnNoY2Rfd3JpdGVsKGhiYSwgQ09OVFJPTExFUl9FTkFCTEUsIAo+ Pj4+Pj4+Pj4gUkVHX0NPTlRST0xMRVJfRU5BQkxFKTsKPj4+Pj4+Pj4+ICsKPj4+Pj4+Pj4+ICvC oMKgwqDCoMKgwqDCoCB1c2xlZXBfcmFuZ2UoMTAwLCAyMDApOwo+Pj4+Pj4+Pj4gKwo+Pj4+Pj4+ Pj4gK8KgwqDCoMKgwqDCoMKgIC8qIHdhaXQgZm9yIHRoZSBob3N0IGNvbnRyb2xsZXIgdG8gY29t cGxldGUgCj4+Pj4+Pj4+PiBpbml0aWFsaXphdGlvbiAqLwo+Pj4+Pj4+Pj4gK8KgwqDCoMKgwqDC oMKgIHJldHJ5X2lubmVyID0gNTA7Cj4+Pj4+Pj4+PiArwqDCoMKgwqDCoMKgwqAgd2hpbGUgKCF1 ZnNoY2RfaXNfaGJhX2FjdGl2ZShoYmEpKSB7Cj4+Pj4+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBpZiAocmV0cnlfaW5uZXIpIHsKPj4+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgcmV0cnlfaW5uZXItLTsKPj4+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IH0gZWxzZSB7Cj4+Pj4+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRldl9l cnIoaGJhLT5kZXYsCj4+Pj4+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgIkNvbnRyb2xsZXIgZW5hYmxlIGZhaWxlZFxuIik7Cj4+Pj4+Pj4+PiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmIChyZXRyeV9vdXRlcikgewo+Pj4+Pj4+Pj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHJ5X291dGVyLS07Cj4+Pj4+Pj4+ PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZ290byBzdGFydDsKPj4+ Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfQo+Pj4+Pj4+Pj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gLUVJTzsKPj4+Pj4+Pj4+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIH0KPj4+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHVzbGVl cF9yYW5nZSgxMDAwLCAxMTAwKTsKPj4+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoCB9Cj4+Pj4+Pj4+ Cj4+Pj4+Pj4+IFlvdSBqdXN0IGR1cGxpY2F0ZWQgdWZzaGNkX2hiYV9leGVjdXRlX2hjZSgpIGhl cmUuIFdoeT8gVGhpcyAKPj4+Pj4+Pj4gZG9lc24ndCBtYWtlIHNlbnNlLgo+Pj4+Pj4+Cj4+Pj4+ Pj4gU2luY2Ugd2Ugc2V0IFVGU0hDSV9RVUlSS19CUk9LRU5fSENFLCBhbmQgd2UgYWxzbyBuZWVk IHRvIGRvIAo+Pj4+Pj4+IHNvbWV0aW5nCj4+Pj4+Pj4gd2hpY2ggaXMgdmVyeSBzaW1pbGFyIHRv IHVmc2hjZF9oYmFfZXhlY3V0ZV9oY2UoKSwgYmVmb3JlIGNhbGxpbmcKPj4+Pj4+PiB1ZnNoY2Rf ZG1lX3Jlc2V0KCkuIFNpbWlsYXIgYnV0IG5vdCB0b3RhbGx5IHRoZSBzYW1lLiBJJ2xsIHRyeSB0 byAKPj4+Pj4+PiBzZWUgaWYKPj4+Pj4+PiB3ZSBjYW4gZXhwb3J0IHVmc2hjZF9oYmFfZXhlY3V0 ZV9oY2UoKSB0byBtYWtlIGZ1bGwgdXNlIG9mIGl0Lgo+Pj4+Pj4+Cj4+Pj4+Pgo+Pj4+Pj4gQnV0 IHlvdSBhcmUgc3RhcnRpbmcgdGhlIGNvbnRyb2xsZXIgdXNpbmcgUkVHX0NPTlRST0xMRVJfRU5B QkxFLiAKPj4+Pj4+IElzbid0IHRoYXQKPj4+Pj4+IHN1cHBvc2VkIHRvIGJlIGJyb2tlbiBpZiB5 b3Ugc2V0IFVGU0hDSV9RVUlSS19CUk9LRU5fSENFPyBPciBJIGFtCj4+Pj4+PiBtaXN1bmRlcnN0 YW5kaW5nIHRoZSBxdWlyaz8KPj4+Pj4+Cj4+Pj4+Cj4+Pj4+IE91ciBjb250cm9sbGVyIGRvZXNu J3Qgd29yayB3aXRoIGV4aXRpbmcgY29kZSwgd2hldGhlciBzZXR0aW5nCj4+Pj4+IFVGU0hDSV9R VUlSS19CUk9LRU5fSENFIG9yIG5vdC4KPj4+Pj4KPj4+Pgo+Pj4+IE9rYXkuIFRoZW4gdGhpcyBt ZWFucyB5b3UgZG8gbm90IG5lZWQgdGhpcyBxdWlyayBhdCBhbGwuCj4+Pj4KPj4+Pj4KPj4+Pj4g Rm9yIFVGU0hDSV9RVUlSS19CUk9LRU5fSENFIGNhc2UsIGl0IGNhbGxzIHVmc2hjZF9kbWVfcmVz ZXTvvIjvvIlmaXJzdCwKPj4+Pj4gYnV0IHdlIG5lZWQgdG8gc2V0IFJFR19DT05UUk9MTEVSX0VO QUJMRSBmaXJzdC4KPj4+Pj4KPj4+Pj4gRm9yICFVRlNIQ0lfUVVJUktfQlJPS0VOX0hDRSBjYXNl LCBuYW1seSB1ZnNoY2RfaGJhX2V4ZWN1dGVfaGNlLCBpdAo+Pj4+PiBzZXRzIFJFR19DT05UUk9M TEVSX0VOQUJMRcKgIGZpcnN0IGJ1dCBuZXZlciBzZW5kIERNQV9SRVNFVCBhbmQgY2FsbHMKPj4+ Pj4gdWZzaGNkX2RtZV9lbmFibGUuCj4+Pj4+Cj4+Pj4KPj4+PiBJIGRvbid0IHNlZSB3aGVyZSB1 ZnNoY2RfZG1lX2VuYWJsZSgpIGlzIGdldHRpbmcgY2FsbGVkIGZvcgo+Pj4+ICFVRlNIQ0lfUVVJ UktfQlJPS0VOX0hDRSBjYXNlLgo+Pj4+Cj4+Pj4+IFNvIHRoZSBjbG9zZXQgY29kZSBwYXRoIGlz IHRvIGdvIHRocm91Z2ggVUZTSENJX1FVSVJLX0JST0tFTl9IQ0UgY2FzZSwKPj4+Pj4gYW5kIHNl dCBSRUdfQ09OVFJPTExFUl9FTkFCTEUgYnkgYWRkaW5nIGhjZV9lbmFibGVfbm90aWZ5IGhvb2su Cj4+Pj4+Cj4+Pj4KPj4+PiBObywgdGhhdCBpcyBhYnVzaW5nIHRoZSBxdWlyay4gQnV0IEknbSBj b25mdXNlZCBhYm91dCB3aHkgeW91ciAKPj4+PiBjb250cm9sbGVyIHdhbnRzCj4+Pj4gcmVzZXR0 aW5nIHRoZSB1bmlwcm8gc3RhY2sgX2FmdGVyXyBlbmFibGluZyB0aGUgY29udHJvbGxlcj8gV2h5 IAo+Pj4+IGNhbid0IGl0IGJlCj4+Pj4gcmVzZXQgYmVmb3JlPwo+Pj4+Cj4+Pgo+Pj4gSXQgY2Fu J3QgYmUuIFRoZSBETUVfUkVTRVQgdG8gcmVzZXQgdGhlIHVuaXBybyBzdGFjayB3aWxsIGJlIGZh aWxlZAo+Pj4gd2l0aG91dCBlbmFibGluZyBSRUdfQ09OVFJPTExFUl9FTkFCTEUuIEFuZCB0aGUg Y29udHJvbGxlciBkb2VzIHdhbnQgdXMKPj4+IHRvIHJlc2V0IHRoZSB1bmlwcm8gc3RhY2sgYmVm b3JlIG90aGVyIGNvbWluZyBVSUNzLgo+Pj4KPj4+IFNvIEkgY29uc2lkZXJlZCBpdCdzIGEga2lu ZCBvZiBicm9rZW4gSENFIGNhc2UgYXMgd2VsbC4gU2hvdWxkIEkgYWRkIGEKPj4+IG5ldyBxdWly ayBvciBhZGQgYSBuZXcgaGJhX2VuYWJsZSBob29rIGluIHVmc19oYmFfdmFyaWFudF9vcHM/IE9y IGp1c3QKPj4+IHVzZSBVRlNIQ0lfUVVJUktfQlJPS0VOX0hDRSA/Cj4+Pgo+Pgo+PiBJTU8sIHlv dSBzaG91bGQgYWRkIGEgbmV3IHF1aXJrIGFuZCB1c2UgaXQgZGlyZWN0bHkgaW4gCj4+IHVmc2hj ZF9oYmFfZXhlY3V0ZV9oY2UoKS4KPj4gQnV0IHlvdSBuZWVkIHRvIHBpY2sgdGhlIHF1aXJrIG5h bWUgYXMgcGVyIHRoZSBhY3R1YWwgcXVpcmt5IGJlaGF2aW9yIAo+PiBvZiB0aGUKPj4gY29udHJv bGxlci4KPj4KPiAKPiBUaGFua3MsIE1haW4uIEknbGwgYWRkIGEgbmV3IHF1aXJrIGZvcgo+IHVm c2hjZF9oYmFfZXhlY3V0ZV9oY2UoKSBhcyBwZXIgdGhlIGFjdHVhbCBxdWlya3kgYmVoYXZvdXIu Cj4gCj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiArwqDCoMKgIH0gZWxzZSB7IC8qIFBPU1RfQ0hBTkdFICov Cj4+Pj4+Pj4+PiArwqDCoMKgwqDCoMKgwqAgZXJyID0gdWZzaGNkX3ZvcHNfcGh5X2luaXRpYWxp emF0aW9uKGhiYSk7Cj4+Pj4+Pj4+PiArwqDCoMKgIH0KPj4+Pj4+Pj4+ICsKPj4+Pj4+Pj4+ICvC oMKgwqAgcmV0dXJuIGVycjsKPj4+Pj4+Pj4+ICt9Cj4+Pj4+Pj4+PiArCj4+Pj4KPj4+PiBbLi4u XQo+Pj4+Cj4+Pj4+Pj4+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBkZXZfcG1fb3BzIHVmc19yb2Nr Y2hpcF9wbV9vcHMgPSB7Cj4+Pj4+Pj4+PiArwqDCoMKgIFNFVF9TWVNURU1fU0xFRVBfUE1fT1BT KHVmc19yb2NrY2hpcF9zdXNwZW5kLCAKPj4+Pj4+Pj4+IHVmc19yb2NrY2hpcF9yZXN1bWUpCj4+ Pj4+Pj4+PiArwqDCoMKgIFNFVF9SVU5USU1FX1BNX09QUyh1ZnNfcm9ja2NoaXBfcnVudGltZV9z dXNwZW5kLCAKPj4+Pj4+Pj4+IHVmc19yb2NrY2hpcF9ydW50aW1lX3Jlc3VtZSwgTlVMTCkKPj4+ Pj4+Pj4KPj4+Pj4+Pj4gV2h5IGNhbid0IHlvdSB1c2UgdWZzaGNkIFBNIG9wcyBhcyBsaWtlIG90 aGVyIHZlbmRvciBkcml2ZXJzPwo+Pj4+Pj4+Cj4+Pj4+Pj4gSXQgZG9lc24ndCB3b3JrIGZyb20g dGhlIHRlc3QuIFdlIGhhdmUgbWFueSB1c2UgY2FzZSB0byBwb3dlciAKPj4+Pj4+PiBkb3duIHRo ZQo+Pj4+Pj4+IGNvbnRyb2xsZXIgYW5kIGRldmljZSwgc28gdGhlcmUgaXMgbm8gZmxvdyB0byBy ZWNvdmVyeSB0aGUgbGluay4gCj4+Pj4+Pj4gT25seQo+Pj4+Pj4+IHdoZW4gdGhlIGZpcnN0IGFj Y2Vzc2luZyB0byBVRlMgZmFpbHMsIHRoZSB1ZnNoY2QgZXJyb3IgaGFuZGxlIAo+Pj4+Pj4+IHJl Y292ZXJ5IHRoZQo+Pj4+Pj4+IGxpbmsuIFRoaXMgaXMgbm90IHdoYXQgd2UgZXhwZWN0Lgo+Pj4+ Pj4+Cj4+Pj4+Pgo+Pj4+Pj4gV2hhdCB0ZXN0cz8gVGhlIGV4aXN0aW5nIFVGUyBjb250cm9sbGVy IGRyaXZlcnMgYXJlIHVzZWQgaW4gCj4+Pj4+PiBwcm9kdWN0aW9uIGRldmljZXMKPj4+Pj4+IGFu ZCB0aGV5IG5ldmVyIGhhZCBhIHVzZWNhc2UgdG8gaW52ZW50IHRoZWlyIG93biBQTSBjYWxsYmFj a3MuIFNvIAo+Pj4+Pj4gaWYgeW91cgo+Pj4+Pj4gY29udHJvbGxlciBpcyBzcGVjaWFsLCB0aGVu IHlvdSBuZWVkIHRvIGp1c3RpZnkgaXQgbW9yZSAKPj4+Pj4+IGVsYWJvcmF0ZWx5LiBJZgo+Pj4+ Pj4gc29tZXRoaW5nIGlzIG1pc3NpbmcgaW4gdWZzaGNkIGNhbGxiYWNrcywgdGhlbiB3ZSBjYW4g YWRkIHRoZW0uCj4+Pj4+Pgo+Pj4+Pgo+Pj4+PiBBbGwgdGhlIHJlZ2lzdGVyIGdvdCBsb3N0IGVh Y2ggdGltZSBhcyB3ZSBwb3dlciBkb3duIGJvdGggCj4+Pj4+IGNvbnRyb2xsZXIgJiBQSFkKPj4+ Pj4gYW5kIGRldmljZXMgaW4gc3VzcGVuZC4KPj4+Pgo+Pj4+IFdoaWNoIHN1c3BlbmQ/IHJ1bnRp bWUgb3Igc3lzdGVtIHN1c3BlbmQ/IEkgYmVsaWV2ZSBzeXN0ZW0gc3VzcGVuZC4KPj4+Cj4+PiBC b3RoLgo+Pj4KPj4KPj4gV2l0aCB7cnBtL3NwbX1fbHZsID0gMywgeW91IHNob3VsZCBub3QgcG93 ZXIgZG93biB0aGUgY29udHJvbGxlci4KPj4KPj4+Pgo+Pj4+PiBTbyB3ZSBoYXZlIHRvIHJlc3Rv cmUgdGhlIG5lY2Vzc2FyeQo+Pj4+PiByZWdpc3RlcnMgYW5kIGxpbmsuIEkgZGlkbid0IHNlZSB3 aGVyZSB0aGUgY29kZSByZWNvdmVyeSB0aGUgCj4+Pj4+IGNvbnRyb2xsZXIKPj4+Pj4gc2V0dGlu Z3MgaW4gdWZzaGNkX3Jlc3VtZSwgZXhjZXB0IHVmc2hjZF9lcnJfaGFuZGxlcu+8iO+8iXRyaWdn ZXJzIHRoYXQuCj4+Pj4+IEFtIEkgbWlzc2luZyBhbnkgdGhpbmc/Cj4+Pj4KPj4+PiBDYW4geW91 IGV4cGxhaW4gd2hhdCBpcyBjYXVzaW5nIHRoZSBwb3dlcmRvd24gb2YgdGhlIGNvbnRyb2xsZXIg YW5kIAo+Pj4+IFBIWT8KPj4+PiBCZWNhdXNlLCB1ZnNoY2Rfc3VzcGVuZCgpIGp1c3QgdHVybnMg b2ZmIHRoZSBjbG9ja3MgYW5kIHJlZ3VsYXRvcnMgKGlmCj4+Pj4gVUZTSENEX0NBUF9BR0dSX1BP V0VSX0NPTExBUFNFIGlzIHNldCkgYW5kIHNwbV9sdmwgMyBzZXQgYnkgdGhpcyAKPj4+PiBkcml2 ZXIgb25seQo+Pj4+IHB1dHMgdGhlIGRldmljZSBpbiBzbGVlcCBtb2RlIGFuZCBsaW5rIGluIGhp YmVybjggc3RhdGUuCj4+Pj4KPj4+Cj4+PiBGb3IgcnVudGltZSBQTSBjYXNlLCBpdCdzIHRoZSBw b3dlci1kb21haW4gZHJpdmVyIHdpbGwgcG93ZXIgZG93biB0aGUKPj4+IGNvbnRyb2xsZXIgYW5k IFBIWSBpZiBVRlMgc3RhY2sgaXMgbm90IGFjdGl2ZSBhbnkgbW9yZe+8iGF1dG9zdXNwZW5k77yJ Lgo+Pj4KPj4+IEZvciBzeXN0ZW0gUE0gY2FzZSwgaXQncyB0aGUgU29DJ3MgZmlybXdhcmUgdG8g Y3V0dGluZyBvZiBhbGwgdGhlIHBvd2VyCj4+PiBmb3IgY29udHJvbGxlci9QSFkgYW5kIGRldmlj ZS4KPj4+Cj4+Cj4+IEJvdGggY2FzZXMgYXJlIG5vdCBtYXRjaGluZyB0aGUgZXhwZWN0YXRpb25z IG9mIHtycG0vc3BtfV9sdmwuIFNvIHRoZSAKPj4gcGxhdGZvcm0KPj4gKHBvd2VyIGRvbWFpbiBv ciB0aGUgZmlybXdhcmUpIHNob3VsZCBiZSBmaXhlZC4gV2hhdCBpZiB0aGUgdXNlciBzZXRzIHRo ZQo+PiB7cnBtL3NwbX1fbHZsIHRvIDE/IFdpbGwgdGhlIHBsYXRmb3JtIHBvd2VyIGRvd24gdGhl IGNvbnRyb2xsZXIgZXZlbiAKPj4gdGhlbj8gSWYKPj4gc28sIHRoZW4gSSdkIHNheSB0aGF0IHRo ZSBwbGF0Zm9ybSBpcyBicm9rZW4gYW5kIHNob3VsZCBiZSBmaXhlZC4KPiAKPiBPaywgaXQgc2Vl bXMgSSBuZWVkIHRvIHNldCB7cnBtL3NwbX1fbHZsID0gNiBpZiBJIHdhbnQgcGxhdGZvcm0gdG8g cG93ZXIKPiBkb3duIHRoZSBjb250cm9sbGVyIGZvciB1bHRyYSBwb3dlci1zYXZpbmcuIEJ1dCBJ IHN0aWxsIG5lZWQgdG8gYWRkIG15Cj4gb3duIHN5c3RlbSBQTSBjYWxsYmFjayBpbiB0aGF0IGNh c2UgdG8gcmVjb3ZlcnkgdGhlIGxpbmsgZmlyc3QuIERvIEkKPiBtaXN1bmRlcnN0YW5kIGl0Pwo+ IAo+IEFuZCBmb3IgdGhlIHVzZXIgd2hvIHNldHMgdGhlIHJwbS9zcG0gbGV2ZWwgdmlhCj4gdWZz X3N5c2ZzX3BtX2x2bF9zdG9yZSgpLCBJIHRoaW5rIHRoZXJlIGlzIG5vIHdheSB0byBibG9jayBp dCBjdXJyZW50bHksCj4gZXhjZXB0IHRoYXQgd2UgbmVlZCB0byBmaXggdGhlIHBvd2VyLWRvbWFp biBkcml2ZXIgYW5kIEZpcm13YXJlIHRvCj4gcmVzcGVjdCB0aGUgbGV2ZWwgYW5kIGNob29zZSBj b3JyZWN0IHBvbGljeS4KPiAKPiAKPiBTbyBpbiBzdW1tYXJ5IGZvciB3aGF0IHRoZSBuZXh0IHN0 ZXAgSSBzaG91bGQgdG86Cj4gKDEpIFNldCB7cnBtL3NwbX1fbHZsID0gNiBpbiBob3N0IGRyaXZl ciB0byByZWZsZWN0IHRoZSBleHBlY3RhdGlvbgo+ICgyKSBBZGQgb3duIFBNIGNhbGxiYWNrcyB0 byByZWNvdmVyeSB0aGUgbGluayB0byBtZWV0IHRoZSBleHBlY3RhdGlvbgo+ICgzKSBGaXggdGhl IGJyb2tlbiBiZWhhdmlvdXIgb2YgUEQgb3IgRmlybXdhcmUgdG8gcmVzcGVjdCB0aGUgYWN0dWFs Cj4gZGVzaXJlZCBwbSBsZXZlbCBpZiB1c2VyIGNoYW5nZXMgdGhlIHBtIGxldmVsLgo+IAo+IAoK U29ycnksIEkgbWlzdW5kZXJzdG9vZCB5b3VyIGNvbW1lbnQsIHNvIHRoZSBhY3Rpb24gc2hvdWxk IGJlCigxKSBTZXQge3JwbS9zcG19X2x2bCA9IDUgaW4gaG9zdCBkcml2ZXIgdG8gcmVmbGVjdCB0 aGUgZXhwZWN0YXRpb24KKDIpIFVzZSB1ZnNoY2Rfc3lzdGVtX3N1c3BlbmQvcmVzdW1lLCBidXQg a2VlcCBvdXIgb3duIHJ1bnRpbWUgUE0KY2FsbGJhY2tzIGFzIHdlIG5lZWQgYSBleHRyYSBzdGVw IHRvIGdhdGUgcmVmY2xrLgooMykgRml4IHRoZSBicm9rZW4gYmVoYXZpb3VyIG9mIFBEIG9yIEZp cm13YXJlIHRvIHJlc3BlY3QgdGhlIGFjdHVhbApkZXNpcmVkIHBtIGxldmVsIGlmIHVzZXIgY2hh bmdlcyB0aGUgcG0gbGV2ZWwuCgo+IERvZXMgdGhhdCBzb3VuZCBmZWFzaWJsZSB0byB5b3U/Cj4g Cj4gCj4gVGhhbmtzLgo+IAo+Pgo+PiAtIE1hbmkKPj4KCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCkxpbnV4LXJvY2tjaGlwIG1haWxpbmcgbGlzdApMaW51 eC1yb2NrY2hpcEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3Jn L21haWxtYW4vbGlzdGluZm8vbGludXgtcm9ja2NoaXAK