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 4BF7CCD4F5B for ; Tue, 19 May 2026 23:23:50 +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-Transfer-Encoding:Content-Type:MIME-Version:Reply-To:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:Message-Id:Date: References:In-Reply-To:Cc:To:Subject:From:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=Yole5+1DWdx0ALEqNkILIDumm95dZefeTOFpuLtm6Z8=; b=R9/UXAFHKLxYUr 0HdIcHTRY8FBxQxR1/9pcm9PZVamfDBXbp0yF0YNSmUnxvW9OAtLIJ3M2jAnyXhOp+qFP0+PRzTBM rP23nWjLb2FJC+2+57lRtesWzoL5Khr37ie0SsMTRKY3yF8OjAgjhXDUQI0bQy56AuLYYXzfrxgL0 2HBZwnHF3mEWTjfzr9qQ8ew17zduxqvBOaUMpc5C83boyDchuTCIf1Xn1hfNBzKHUkhU+z/YfEqnp UJZSYV7o/aFLijkPgPRII3clUiQQzwzxzVx48ZhHQlIPLZ/UnWMFDjjFOXpBPcxdkxJYd4BZgfGXL 18NzQeHStaO4Ej9tWT7w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wPTmv-000000033Dj-30K8; Tue, 19 May 2026 23:23:49 +0000 Received: from tor.source.kernel.org ([2600:3c04:e001:324:0:1991:8:25]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wPTmu-000000033DX-41gB for linux-phy@lists.infradead.org; Tue, 19 May 2026 23:23:49 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by tor.source.kernel.org (Postfix) with ESMTP id F339160216; Tue, 19 May 2026 23:23:47 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 627351F000E9; Tue, 19 May 2026 23:23:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1779233027; bh=xDYvsgh0WVc8xHu7PLSnhKuOFUZffVVzdaQVfEtry+o=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=Pr+DwcyUiYkV2ijTjoo/bCjdTEfkR/eD66jCyWCtCQA5RF/dLuoLhD5SvL+FDb/em dF/J6jBBiea/WUfEQ8lECk08LfkdP59RjQ5oGGkfM6lTvRcn4UDREfefls5sHXGOtO 2J7/2nYmo0Ge5Az37ot8pgHwkVOn+d70AxvK1n3VxmX2CI0+kvFg2tiG61m6bHuwL/ BE1hxKw76U9c+sIDQrCi8FZPpTaVbWiL3u4BiZtncGuWpWTZYbDk2zJsweBX2Inyr9 ikAVifdiSm8wlzMvZNFAwNer69GKZbGCp00GLA8b+p1L32QMxpPetPt5P3yffXgYOg H4dpZ44oEm/TA== From: sashiko-bot@kernel.org Subject: Re: [PATCH v7 6/6] phy: airoha: Add support for Airoha AN7581 USB PHY To: "Christian Marangi" Cc: olteanv@gmail.com, linux-phy@lists.infradead.org, neil.armstrong@linaro.org, devicetree@vger.kernel.org, robh@kernel.org, vkoul@kernel.org, conor+dt@kernel.org In-Reply-To: <20260519220813.28468-7-ansuelsmth@gmail.com> References: <20260519220813.28468-7-ansuelsmth@gmail.com> Date: Tue, 19 May 2026 23:23:46 +0000 Message-Id: <20260519232347.627351F000E9@smtp.kernel.org> X-BeenThere: linux-phy@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux Phy Mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: sashiko-reviews@lists.linux.dev MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-phy" Errors-To: linux-phy-bounces+linux-phy=archiver.kernel.org@lists.infradead.org VGhhbmsgeW91IGZvciB5b3VyIGNvbnRyaWJ1dGlvbiEgU2FzaGlrbyBBSSByZXZpZXcgZm91bmQg NiBwb3RlbnRpYWwgaXNzdWUocykgdG8gY29uc2lkZXI6Ci0gW0hpZ2hdIGBkZXZfZXJyX3Byb2Jl YCBpcyBjYWxsZWQgd2l0aCBgSVNfRVJSKClgIGluc3RlYWQgb2YgYFBUUl9FUlIoKWAsIGJyZWFr aW5nIGVycm9yIHByb3BhZ2F0aW9uIGFuZCBwcm9iZSBkZWZlcnJhbC4KLSBbSGlnaF0gSW5jb3Jy ZWN0IGNvbmZpZ3VyYXRpb24gb2YgYEZPUkNFX0lERElHYCBpbiBgUEhZX01PREVfVVNCX0RFVklD RWAgZHVlIHRvIGEgbWlzc2luZyBmbGFnLgotIFtNZWRpdW1dIGBmbV9vdXRgIG1heSBiZSB1c2Vk IHVuaW5pdGlhbGl6ZWQgaWYgYHJlZ21hcF9yZWFkX3BvbGxfdGltZW91dGAgZmFpbHMuCi0gW01l ZGl1bV0gTWlzc2luZyBgc2VsZWN0IFJFR01BUF9NTUlPYCBkZXBlbmRlbmN5IGluIEtjb25maWcu Ci0gW0xvd10gRGVhZCBjb2RlIGluIGBhbjc1ODFfdXNiX3BoeV9wb3dlcl9vbmAgY2hlY2tpbmcg dGhlIFVTQiBQSFkncyBtb2RlIGluc3RlYWQgb2YgdGhlIFNlckRlcyBQSFkncyBtb2RlLgotIFtM b3ddIEFzc2lnbmluZyBnZW5lcmljIGBQSFlfVFlQRV9VU0IyYCB2YWx1ZXMgdG8gYSB2YXJpYWJs ZSB0eXBlZCBhcyBhIGxvY2FsIGludGVybmFsIGVudW0uCi0tCgpjb21taXQgYTU0ZGE0NGZlOTUy NTIyYjA2NzYxZTgxZmI2NDNlZmZmMGRhZDc3YQpBdXRob3I6IENocmlzdGlhbiBNYXJhbmdpIDxh bnN1ZWxzbXRoQGdtYWlsLmNvbT4KCnBoeTogYWlyb2hhOiBBZGQgc3VwcG9ydCBmb3IgQWlyb2hh IEFONzU4MSBVU0IgUEhZCgpBZGQgc3VwcG9ydCBmb3IgQWlyb2hhIEFONzU4MSBVU0IgUEhZIGRy aXZlci4gQU43NTgxIHN1cHBvcnRzIHVwIHRvIDIKVVNCIHBvcnQgd2l0aCBVU0IgMi4wIG1vZGUg YWx3YXlzIHN1cHBvcnRlZCBhbmQgVVNCIDMuMCBtb2RlIGF2YWlsYWJsZQpvbmx5IGlmIHRoZSBT ZXJkZXMgcG9ydCBpcyBjb3JyZWN0bHkgY29uZmlndXJlZCBmb3IgVVNCIDMuMC4KCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvcGh5L2Fpcm9oYS9LY29uZmlnIGIvZHJpdmVycy9waHkvYWlyb2hhL0tj b25maWcKPiBpbmRleCA5YTFiNjI1YTc3MDEyLi5iYjRlMzM2N2JhYTU4IDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvcGh5L2Fpcm9oYS9LY29uZmlnCj4gKysrIGIvZHJpdmVycy9waHkvYWlyb2hhL0tj b25maWcKWyAuLi4gXQo+IEBAIC0xMSwzICsxMSwxMyBAQCBjb25maWcgUEhZX0FJUk9IQV9BTjc1 ODFfUENJRQo+ICAJICBTYXkgWSBoZXJlIHRvIGFkZCBzdXBwb3J0IGZvciBBaXJvaGEgQU43NTgx IFBDSWUgUEhZIGRyaXZlci4KPiAgCSAgVGhpcyBkcml2ZXIgY3JlYXRlIHRoZSBiYXNpYyBQSFkg aW5zdGFuY2UgYW5kIHByb3ZpZGVzIGluaXRpYWxpemUKPiAgCSAgY2FsbGJhY2sgZm9yIFBDSWUg R0VOMyBwb3J0Lgo+ICsKPiArY29uZmlnIFBIWV9BSVJPSEFfQU43NTgxX1VTQgo+ICsJdHJpc3Rh dGUgIkFpcm9oYSBBTjc1ODEgVVNCIFBIWSBEcml2ZXIiCj4gKwlkZXBlbmRzIG9uIEFSQ0hfQUlS T0hBIHx8IENPTVBJTEVfVEVTVAo+ICsJZGVwZW5kcyBvbiBPRgo+ICsJc2VsZWN0IEdFTkVSSUNf UEhZCgpbU2V2ZXJpdHk6IE1lZGl1bV0KV2lsbCB0aGlzIGZhaWwgdG8gbGluayB1bmRlciBDT01Q SUxFX1RFU1Qgb24gYXJjaGl0ZWN0dXJlcyB3aXRob3V0IFJFR01BUF9NTUlPPwpUaGUgZHJpdmVy IHJlbGllcyBvbiBkZXZtX3JlZ21hcF9pbml0X21taW8oKSwgc28gaXQgbWlnaHQgbmVlZCB0byBl eHBsaWNpdGx5CnNlbGVjdCBSRUdNQVBfTU1JTy4KCj4gKwloZWxwCj4gKwkgIFNheSAnWScgaGVy ZSB0byBhZGQgc3VwcG9ydCBmb3IgQWlyb2hhIEFONzU4MSBVU0IgUEhZIGRyaXZlci4KPiArCSAg VGhpcyBkcml2ZXIgY3JlYXRlIHRoZSBiYXNpYyBQSFkgaW5zdGFuY2UgYW5kIHByb3ZpZGVzIGlu aXRpYWxpemUKPiArCSAgY2FsbGJhY2sgZm9yIFVTQiBwb3J0Lgo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL3BoeS9haXJvaGEvcGh5LWFuNzU4MS11c2IuYyBiL2RyaXZlcnMvcGh5L2Fpcm9oYS9waHkt YW43NTgxLXVzYi5jCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwMDAw Li45MGZkMmNiZTY4ZDQyCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2RyaXZlcnMvcGh5L2Fpcm9o YS9waHktYW43NTgxLXVzYi5jClsgLi4uIF0KPiArc3RhdGljIHZvaWQgYW43NTgxX3VzYl9waHlf dTJfc2xld19yYXRlX2NhbGlicmF0aW9uKHN0cnVjdCBhbjc1ODFfdXNiX3BoeV9wcml2ICpwcml2 KQo+ICt7Cj4gKwl1MzIgZm1fb3V0Owo+ICsJdTMyIHNyY3RybDsKWyAuLi4gXQo+ICsJLyogVGlt ZW91dCBjYW4gaGFwcGVuIGFuZCB3ZSB3aWxsIGFwcGx5IHdvcmthcm91bmQgYXQgdGhlIGVuZCAq Lwo+ICsJcmVnbWFwX3JlYWRfcG9sbF90aW1lb3V0KHByaXYtPnJlZ21hcCwgQUlST0hBX1VTQl9Q SFlfRk1NT05SMCwgZm1fb3V0LAo+ICsJCQkJIGZtX291dCwgQUlST0hBX1VTQl9QSFlfRlJFUURF VF9TTEVFUCwKPiArCQkJCSBBSVJPSEFfVVNCX1BIWV9GUkVRREVUX1RJTUVPVVQpOwo+ICsKPiAr CS8qIERpc2FibGUgRnJlcXVlbmN5IG1ldGVyICovCj4gKwlyZWdtYXBfY2xlYXJfYml0cyhwcml2 LT5yZWdtYXAsIEFJUk9IQV9VU0JfUEhZX0ZNQ1IwLAo+ICsJCQkgIEFJUk9IQV9VU0JfUEhZX0ZS RVFERVRfRU4pOwo+ICsKPiArCS8qIERpc2FibGUgRnJlZSBydW4gY2xvY2sgKi8KPiArCXJlZ21h cF9jbGVhcl9iaXRzKHByaXYtPnJlZ21hcCwgQUlST0hBX1VTQl9QSFlfRk1NT05SMSwKPiArCQkJ ICBBSVJPSEFfVVNCX1BIWV9GUkNLX0VOKTsKPiArCj4gKwkvKiBEaXNhYmxlIEhTIFRYIFNSIGNh bGlicmF0aW9uICovCj4gKwlyZWdtYXBfY2xlYXJfYml0cyhwcml2LT5yZWdtYXAsIEFJUk9IQV9V U0JfUEhZX1VTQlBIWUFDUjUsCj4gKwkJCSAgQUlST0hBX1VTQl9QSFlfVVNCMjBfSFNUWF9TUkNB TF9FTik7Cj4gKwo+ICsJdXNsZWVwX3JhbmdlKDEwMDAsIDE1MDApOwo+ICsKPiArCS8qIEZyZXF1 ZW5jeSB3YXMgbm90IGRldGVjdGVkLCB1c2UgZGVmYXVsdCBTUiBjYWxpYnJhdGlvbiB2YWx1ZSAq Lwo+ICsJaWYgKCFmbV9vdXQpIHsKCltTZXZlcml0eTogTWVkaXVtXQpJZiB0aGUgdW5kZXJseWlu ZyByZWdtYXBfcmVhZCgpIGZhaWxzIGltbWVkaWF0ZWx5IChlLmcuLCBkdWUgdG8gYW4gSS9PIGVy cm9yKSwKZG9lcyBmbV9vdXQgcmVtYWluIHVuaW5pdGlhbGl6ZWQ/CgpTaW5jZSB0aGUgcmV0dXJu IHZhbHVlIG9mIHJlZ21hcF9yZWFkX3BvbGxfdGltZW91dCgpIGlzbid0IGNoZWNrZWQsIGFuCnVu aW5pdGlhbGl6ZWQgc3RhY2sgdmFsdWUgY291bGQgYnlwYXNzIHRoaXMgY2hlY2sgYW5kIGNhdXNl IHVucHJlZGljdGFibGUKYmVoYXZpb3IgZHVyaW5nIHRoZSBzdWJzZXF1ZW50IGRpdmlzaW9uLgoK PiArCQlzcmN0cmwgPSBBSVJPSEFfVVNCX1BIWV9ERUZBVUxUX1NSX0NBTElCUkFUSU9OOwo+ICsJ CWRldl9lcnIocHJpdi0+ZGV2LCAiRnJlcXVlbmN5IG5vdCBkZXRlY3RlZCwgdXNpbmcgZGVmYXVs dCBTUiBjYWxpYnJhdGlvbi5cbiIpOwo+ICsJfSBlbHNlIHsKPiArCQkvKiAoMTAyNCAvIEZNX09V VCkgKiBSRUZfQ0sgKiBVMl9TUl9DT0VGIChyb3VuZCB0byB0aGUgbmVhcmVzdCBkaWdpdHMpICov Cj4gKwkJc3JjdHJsID0gQUlST0hBX1VTQl9QSFlfUkVGX0NLICogQUlST0hBX1VTQl9QSFlfVTJf U1JfQ09FRjsKPiArCQlzcmN0cmwgPSAoc3JjdHJsICogQUlST0hBX1VTQl9QSFlfVTJfRk1fREVU X0NZQ0xFX0NOVCkgLyBmbV9vdXQ7Cj4gKwkJc3JjdHJsID0gRElWX1JPVU5EX0NMT1NFU1Qoc3Jj dHJsLCBBSVJPSEFfVVNCX1BIWV9VMl9TUl9DT0VGX0RJVklTT1IpOwo+ICsJCWRldl9kYmcocHJp di0+ZGV2LCAiU1IgY2FsaWJyYXRpb24gYXBwbGllZDogJXhcbiIsIHNyY3RybCk7Cj4gKwl9Clsg Li4uIF0KPiArc3RhdGljIGludCBhbjc1ODFfdXNiX3BoeV9wb3dlcl9vbihzdHJ1Y3QgcGh5ICpw aHkpCj4gK3sKPiArCXN0cnVjdCBhbjc1ODFfdXNiX3BoeV9pbnN0YW5jZSAqaW5zdGFuY2UgPSBw aHlfZ2V0X2RydmRhdGEocGh5KTsKPiArCXN0cnVjdCBhbjc1ODFfdXNiX3BoeV9wcml2ICpwcml2 ID0gZGV2X2dldF9kcnZkYXRhKHBoeS0+ZGV2LnBhcmVudCk7Cj4gKwo+ICsJc3dpdGNoIChpbnN0 YW5jZS0+dHlwZSkgewo+ICsJY2FzZSBQSFlfVFlQRV9VU0IyOgo+ICsJCWFuNzU4MV91c2JfcGh5 X3UyX3Bvd2VyX29uKHByaXYpOwo+ICsJCWJyZWFrOwo+ICsJY2FzZSBQSFlfVFlQRV9VU0IzOgo+ ICsJCWlmIChwaHlfZ2V0X21vZGUocGh5KSA9PSBQSFlfTU9ERV9QQ0lFIHx8Cj4gKwkJICAgIHBo eV9nZXRfbW9kZShwaHkpID09IFBIWV9NT0RFX0VUSEVSTkVUKQo+ICsJCQlyZXR1cm4gMDsKCltT ZXZlcml0eTogTG93XQpJcyB0aGlzIGNoZWNrIGV4YW1pbmluZyB0aGUgd3JvbmcgcGh5IG9iamVj dD8KCkl0IHNlZW1zIHRvIGJlIGNoZWNraW5nIHRoZSBVU0IgUEhZJ3MgbW9kZSBpbnN0ZWFkIG9m IHRoZSBzaGFyZWQgU2VyRGVzIGNvbWJvClBIWSAocHJpdi0+c2VyZGVzX3BoeSkuIFNpbmNlIHRo ZSBVU0IgUEhZJ3MgbW9kZSB3aWxsIHByZXN1bWFibHkgbmV2ZXIgYmUgUENJZQpvciBFdGhlcm5l dCwgd2lsbCB0aGlzIGNvbmRpdGlvbiBldmVyIGV2YWx1YXRlIHRvIHRydWU/Cgo+ICsKPiArCQlh bjc1ODFfdXNiX3BoeV91M19wb3dlcl9vbihwcml2KTsKPiArCQlicmVhazsKPiArCWRlZmF1bHQ6 Cj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwl9Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KWyAuLi4g XQo+ICtzdGF0aWMgaW50IGFuNzU4MV91c2JfcGh5X3Bvd2VyX29mZihzdHJ1Y3QgcGh5ICpwaHkp Cj4gK3sKPiArCXN0cnVjdCBhbjc1ODFfdXNiX3BoeV9pbnN0YW5jZSAqaW5zdGFuY2UgPSBwaHlf Z2V0X2RydmRhdGEocGh5KTsKPiArCXN0cnVjdCBhbjc1ODFfdXNiX3BoeV9wcml2ICpwcml2ID0g ZGV2X2dldF9kcnZkYXRhKHBoeS0+ZGV2LnBhcmVudCk7Cj4gKwo+ICsJc3dpdGNoIChpbnN0YW5j ZS0+dHlwZSkgewo+ICsJY2FzZSBQSFlfVFlQRV9VU0IyOgo+ICsJCWFuNzU4MV91c2JfcGh5X3Uy X3Bvd2VyX29mZihwcml2KTsKPiArCQlicmVhazsKPiArCWNhc2UgUEhZX1RZUEVfVVNCMzoKPiAr CQlpZiAocGh5X2dldF9tb2RlKHBoeSkgPT0gUEhZX01PREVfUENJRSB8fAo+ICsJCSAgICBwaHlf Z2V0X21vZGUocGh5KSA9PSBQSFlfTU9ERV9FVEhFUk5FVCkKPiArCQkJcmV0dXJuIDA7CgpbU2V2 ZXJpdHk6IExvd10KU2ltaWxhciB0byB0aGUgYW43NTgxX3VzYl9waHlfcG93ZXJfb24oKSBjaGVj ayBhYm92ZSwgZG9lcyB0aGlzIGNoZWNrIHRoZQp3cm9uZyBwaHkgb2JqZWN0PwoKPiArCj4gKwkJ YW43NTgxX3VzYl9waHlfdTNfcG93ZXJfb2ZmKHByaXYpOwo+ICsJCWJyZWFrOwo+ICsJZGVmYXVs dDoKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiArCX0KPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsK PiArc3RhdGljIGludCBhbjc1ODFfdXNiX3BoeV91Ml9zZXRfbW9kZShzdHJ1Y3QgYW43NTgxX3Vz Yl9waHlfcHJpdiAqcHJpdiwKPiArCQkJCSAgICAgIGVudW0gcGh5X21vZGUgbW9kZSkKPiArewo+ ICsJdTMyIHZhbDsKPiArCj4gKwkvKgo+ICsJICogRm9yIERldmljZSBhbmQgSG9zdCBtb2RlLCBl bmFibGUgZm9yY2UgSURESUcuCj4gKwkgKiBGb3IgRGV2aWNlIHNldCBJRERJRywgZm9yIEhvc3Qg Y2xlYXIgSURESUcuCj4gKwkgKiBGb3IgT1RHIGRpc2FibGUgZm9yY2UgYW5kIGNsZWFyIElERElH IGJpdCB3aGlsZSBhdCBpdC4KPiArCSAqLwo+ICsJc3dpdGNoIChtb2RlKSB7Cj4gKwljYXNlIFBI WV9NT0RFX1VTQl9ERVZJQ0U6Cj4gKwkJdmFsID0gQUlST0hBX1VTQl9QSFlfSURESUc7CgpbU2V2 ZXJpdHk6IEhpZ2hdClRoZSBjb21tZW50IG1lbnRpb25zIGVuYWJsaW5nIGZvcmNlIElERElHIGZv ciBEZXZpY2UgbW9kZSwgYnV0IHZhbCBpcyBvbmx5CmFzc2lnbmVkIEFJUk9IQV9VU0JfUEhZX0lE RElHIGhlcmUuIFNob3VsZCBBSVJPSEFfVVNCX1BIWV9GT1JDRV9JRERJRyBiZQppbmNsdWRlZCBh cyB3ZWxsPwoKPiArCQlicmVhazsKPiArCWNhc2UgUEhZX01PREVfVVNCX0hPU1Q6Cj4gKwkJdmFs ID0gQUlST0hBX1VTQl9QSFlfRk9SQ0VfSURESUcgfAo+ICsJCSAgICAgIEFJUk9IQV9VU0JfUEhZ X0ZPUkNFX0lERElHOwoKW1NldmVyaXR5OiBMb3ddClRoaXMgaXNuJ3QgYSBidWcsIGJ1dCB0aGUg QUlST0hBX1VTQl9QSFlfRk9SQ0VfSURESUcgZmxhZyBpcyBkdXBsaWNhdGVkIGhlcmUuCgo+ICsJ CWJyZWFrOwo+ICsJY2FzZSBQSFlfTU9ERV9VU0JfT1RHOgo+ICsJCXZhbCA9IDA7Cj4gKwkJYnJl YWs7Cj4gKwlkZWZhdWx0Ogo+ICsJCXJldHVybiAwOwo+ICsJfQo+ICsKPiArCXJlZ21hcF91cGRh dGVfYml0cyhwcml2LT5yZWdtYXAsIEFJUk9IQV9VU0JfUEhZX1UyUEhZRFRNMSwKPiArCQkJICAg QUlST0hBX1VTQl9QSFlfRk9SQ0VfSURESUcgfAo+ICsJCQkgICBBSVJPSEFfVVNCX1BIWV9JRERJ RywgdmFsKTsKPiArCj4gKwlyZXR1cm4gMDsKPiArfQpbIC4uLiBdCj4gK3N0YXRpYyBpbnQgYW43 NTgxX3VzYl9waHlfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiArewo+ICsJ c3RydWN0IHBoeV9wcm92aWRlciAqcGh5X3Byb3ZpZGVyOwo+ICsJc3RydWN0IGFuNzU4MV91c2Jf cGh5X3ByaXYgKnByaXY7Cj4gKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2Owo+ICsJ dW5zaWduZWQgaW50IGluZGV4Owo+ICsJdm9pZCBfX2lvbWVtICpiYXNlOwo+ICsJaW50IHJldDsK WyAuLi4gXQo+ICsJZm9yIChpbmRleCA9IDA7IGluZGV4IDwgQUlST0hBX1BIWV9VU0JfTUFYOyBp bmRleCsrKSB7Cj4gKwkJZW51bSBhbjc1ODFfdXNiX3BoeV9pbnN0YW5jZV90eXBlIHBoeV90eXBl Owo+ICsJCXN0cnVjdCBhbjc1ODFfdXNiX3BoeV9pbnN0YW5jZSAqaW5zdGFuY2U7Cj4gKwo+ICsJ CXN3aXRjaCAoaW5kZXgpIHsKPiArCQljYXNlIEFJUk9IQV9QSFlfVVNCMjoKPiArCQkJcGh5X3R5 cGUgPSBQSFlfVFlQRV9VU0IyOwo+ICsJCQlicmVhazsKPiArCQljYXNlIEFJUk9IQV9QSFlfVVNC MzoKPiArCQkJcGh5X3R5cGUgPSBQSFlfVFlQRV9VU0IzOwo+ICsJCQlicmVhazsKPiArCQl9Cgpb U2V2ZXJpdHk6IExvd10KU2hvdWxkIHBoeV90eXBlIGJlIGRlY2xhcmVkIGFzIGFuIGludGVnZXIg b3IgdTMyPwoKVGhlIGdlbmVyaWMgUEhZX1RZUEVfVVNCMiBtYWNybyBldmFsdWF0ZXMgdG8gMywg YnV0IHBoeV90eXBlIGlzIHR5cGVkIGFzCmVudW0gYW43NTgxX3VzYl9waHlfaW5zdGFuY2VfdHlw ZSB3aGljaCBvbmx5IGRlZmluZXMgdmFsdWVzIDAgdG8gMi4KCj4gKwo+ICsJCWlmIChwaHlfdHlw ZSA9PSBQSFlfVFlQRV9VU0IzKSB7Cj4gKwkJCXByaXYtPnNlcmRlc19waHkgPSBkZXZtX3BoeV9n ZXQoZGV2LCBOVUxMKTsKPiArCQkJaWYgKElTX0VSUihwcml2LT5zZXJkZXNfcGh5KSkKPiArCQkJ CXJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgSVNfRVJSKHByaXYtPnNlcmRlc19waHkpLCAibWlz c2luZyBzZXJkZXMgcGh5IGZvciBVU0IgMy4wXG4iKTsKCltTZXZlcml0eTogSGlnaF0KRG9lcyB0 aGlzIGluYWR2ZXJ0ZW50bHkgcmV0dXJuIDEgaW5zdGVhZCBvZiBhIHByb3BlciBuZWdhdGl2ZSBl cnJvciBjb2RlPwoKU2luY2UgSVNfRVJSKCkgcmV0dXJucyBhIGJvb2xlYW4sIHJldHVybmluZyBp dCBicmVha3MgZXJyb3IgcHJvcGFnYXRpb24gYW5kCnByb2JlIGRlZmVycmFsIChlLmcuIC1FUFJP QkVfREVGRVIpLiBTaG91bGQgdGhpcyBiZSBQVFJfRVJSKCkgaW5zdGVhZD8KCj4gKwkJfQo+ICsK PiArCQlpbnN0YW5jZSA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqaW5zdGFuY2UpLCBHRlBf S0VSTkVMKTsKPiArCQlpZiAoIWluc3RhbmNlKQo+ICsJCQlyZXR1cm4gLUVOT01FTTsKWyAuLi4g XQoKLS0gClNhc2hpa28gQUkgcmV2aWV3IMK3IGh0dHBzOi8vc2FzaGlrby5kZXYvIy9wYXRjaHNl dC8yMDI2MDUxOTIyMDgxMy4yODQ2OC0xLWFuc3VlbHNtdGhAZ21haWwuY29tP3BhcnQ9NgoKLS0g CmxpbnV4LXBoeSBtYWlsaW5nIGxpc3QKbGludXgtcGh5QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0 cHM6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtcGh5Cg==