From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A0721606A319 for ; Wed, 21 Oct 2026 18:35:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key, unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=bombadil.20210309 header.b=nZCYsj0u; dkim=fail reason="signature verification failed" (2048-bit key, unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20260515 header.b=Few5V957 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:Date:References: In-Reply-To:Cc:To:Subject:From:Message-ID:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=EVKL2FnP4ocJ4R7FVjeYSL4wKMZVSgDKmLveAP2Vrpo=; b=nZCYsj0usq9XqT +fwzweA8wVeBxAFGv7hlePtNVW3n16h1vaf5qOJQwg5Xvot2PUvfzI6iN7PxdTUZftiFB40i68WDp XsU5Kr1vqBgn0rWxOheML8KrPRKBFD3H0TTlhM9Qx/hqoFPvslHSGzuKN6HXqMG3csaAGtrNjCQVJ PIwmHUgBsy8rOnCceUyXV+PjtpFO/N+qxKuLXtvg38O+s9pyQmhGhAMgg/94DziwKqSv//ANjzKja YhnlNEKWEFYzjeo6AWnwIcvq7tqH7ZB4ImMSuzYUIvW9lemmdYwGukRyhpRsGjRFMTMriVY8eQUNM 0UxZ66fl1CclJrKMuQIA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1xJb9V-0000000Cf3g-1d52; Wed, 21 Oct 2026 18:35:05 +0000 Received: from sea.source.kernel.org ([172.234.252.31]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1xJb9T-0000000Cf34-1FIN for linux-phy@lists.infradead.org; Wed, 21 Oct 2026 18:35:03 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by sea.source.kernel.org (Postfix) with ESMTP id 9EBFE40603; Wed, 21 Oct 2026 18:35:02 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 28E141F000C1; Wed, 21 Oct 2026 18:35:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1792607702; bh=5bSXgYHag6XhfKBLXHCQ97tdahL4BUPMsc+StpA2gEw=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=Few5V957kHeZ8D/fUuKAIVEsl0/M9Rq0QGGQU9M5rNsWkDV9m4Q7JOcvpILFsclU+ 1ksgkLM6+BWOFg2uZpMmXRzvOQihjKiOWY5o6DMXBbb+U/hhLJhsD81gySfNwf1UNy 4QwRsUrSSyZ4sptlF/eThDBDnTsSgkpT9fQ72lQvn7U2boZZwqjrlPFazDFGRrJR9i oC+WMa5MkdLHrE5RFrfbs69rOSOBwRhMsHYroq1daGKzmG00dDhHshmLAOS4vdUdP1 wh3ffoLUXgey5ANjxHek+pFAcGZXXwfFLgUKsxZJu5tB8WPsxPvjJwETo2OoA86Nza 88FCLhruUGLxA== Message-ID: From: sashiko-bot@kernel.org Subject: Re: [PATCH v18 5/7] usb: dwc3: rockchip: add USBDP PHY reset quirk To: "Sebastian Reichel" Cc: linux-usb@vger.kernel.org, linux-phy@lists.infradead.org, vkoul@kernel.org, neil.armstrong@linaro.org, olteanv@gmail.com In-Reply-To: <20261021-b4-rockchip-dwc3-rockchip-glue-v18-5-60000d03fca2@collabora.com> References: <20261021-b4-rockchip-dwc3-rockchip-glue-v18-0-60000d03fca2@collabora.com> <20261021-b4-rockchip-dwc3-rockchip-glue-v18-5-60000d03fca2@collabora.com> Date: Wed, 21 Oct 2026 18:35:01 +0000 X-BeenThere: linux-phy@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux Phy Mailing list List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: sashiko-reviews@lists.linux.dev X-Archived-By: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-phy" X-Spam-Status: No, score=-9.2 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=4.0.1 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on aws-us-west-2-korg-listserv-alma10-1 VGhhbmsgeW91IGZvciB5b3VyIGNvbnRyaWJ1dGlvbiEgU2FzaGlrbyBBSSByZXZpZXcgZm91bmQg MyBwb3RlbnRpYWwgaXNzdWUocykgdG8gY29uc2lkZXI6Ci0gW0hpZ2hdIHVzYjogZHdjMzogcm9j a2NoaXA6IGR3YzNfcm9ja2NoaXBfcGh5X3ByZV9yZXNldCgpIHNraXBzIFJQTV9SRVNVTUlORyBz dGF0ZQotIFtIaWdoXSB1c2I6IGR3YzM6IHJvY2tjaGlwOiB1bnN5bmNocm9uaXplZCBydW50aW1l IFBNIGluIGR3YzNfcm9ja2NoaXBfcGh5X3Jlc2V0KCkKLSBbTWVkaXVtXSB1c2I6IGR3YzM6IHJv Y2tjaGlwOiByYWNlIGJldHdlZW4gUEhZIHJlc2V0IHF1aXJrIGFuZCBfX2R3YzNfc2V0X21vZGUo KQotLQoKY29tbWl0IDE3NTEyOGRkMGJlMjFjNzEyYTk1MTM3N2E0ZmVlMGZlNDk2YzRjZjcKQXV0 aG9yOiBTZWJhc3RpYW4gUmVpY2hlbCA8c2ViYXN0aWFuLnJlaWNoZWxAY29sbGFib3JhLmNvbT4K CnVzYjogZHdjMzogcm9ja2NoaXA6IGFkZCBVU0JEUCBQSFkgcmVzZXQgcXVpcmsKClRoaXMgY29t bWl0IGFkZHMgYSByZXNldCBoYW5kbGVyIGZvciB0aGUgUm9ja2NoaXAgVVNCRFAgUEhZIGluIHRo ZSBSb2NrY2hpcApEV0MzIGdsdWUgZHJpdmVyIHRvIGFzc2VydCBhbmQgZGVhc3NlcnQgRFdDM19H VVNCM1BJUEVDVExfUEhZU09GVFJTVCBhcm91bmQKZXh0ZXJuYWwgUEhZIHJlc2V0cywgcHJldmVu dGluZyBEV0MzIFBJUEUgdHJhZmZpYyBmcm9tIGludGVyZmVyaW5nIHdpdGggUEhZClBMTCBsb2Nr aW5nLiBJdCBhbHNvIGV4cG9ydHMgdGhlIGR3YzNfcmVhZGwgYW5kIGR3YzNfd3JpdGVsIHRyYWNl cG9pbnQKc3ltYm9scyBmb3IgdXNlIGJ5IHRoZSBnbHVlIGRyaXZlci4KCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvdXNiL2R3YzMvZHdjMy1yb2NrY2hpcC5jIGIvZHJpdmVycy91c2IvZHdjMy9kd2Mz LXJvY2tjaGlwLmMKPiBpbmRleCA0MTI5YWVmZDZhOGIwLi43NWU2NDdlMDRjYzUyIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvdXNiL2R3YzMvZHdjMy1yb2NrY2hpcC5jCj4gKysrIGIvZHJpdmVycy91 c2IvZHdjMy9kd2MzLXJvY2tjaGlwLmMKPiBAQCAtMiwxMSArMiwxMDUgQEAKPiAgLyogQ29weXJp Z2h0IChjKSAyMDI2LCBDb2xsYWJvcmEgTHRkLiAqLwo+ICAjaW5jbHVkZSA8bGludXgvbW9kdWxl Lmg+Cj4gICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KPiArI2luY2x1ZGUgPGxp bnV4L3BoeS9yb2NrY2hpcC11c2JkcC5oPgo+ICAjaW5jbHVkZSA8bGludXgvcG1fcnVudGltZS5o Pgo+ICAjaW5jbHVkZSAiZ2x1ZS5oIgo+ICsjaW5jbHVkZSAiaW8uaCIKPiAgCj4gIHN0cnVjdCBk d2MzX3JvY2tjaGlwIHsKPiAgCXN0cnVjdCBkd2MzCQlkd2M7Cj4gKwl1OAkJCXBoeV9yZXNldF9h Y3RpdmU7Cj4gK307Cj4gKwo+ICtzdGF0aWMgdm9pZCBkd2MzX3JvY2tjaGlwX3BoeV9wcmVfcmVz ZXQoc3RydWN0IGR3YzNfcm9ja2NoaXAgKmR3Y19yaywgaW50IHBvcnQpCj4gK3sKPiArCXN0cnVj dCBkd2MzICpkd2MgPSAmZHdjX3JrLT5kd2M7Cj4gKwl1MzIgcmVnOwo+ICsKPiArCS8qCj4gKwkg KiBJZiB0aGUgZGV2aWNlIGlzIHJ1bnRpbWUgc3VzcGVuZGVkLCB0aGVyZSBpcyBub3RoaW5nIHRv IGRvIGFuZCBSUE0KPiArCSAqIHJlc3VtZSB3aWxsIGRvIHRoZSBuZWNlc3NhcnkgdGhpbmdzLiBU aGVyZSBpcyBubyBuZWVkIGZvciBhIFJQTQo+ICsJICogcmVmZXJlbmNlIGVpdGhlciwgc2luY2Ug RFdDMyBydW50aW1lIHN1c3BlbmQvcmVzdW1lIHdpbGwgY2FsbCBwaHkKPiArCSAqIGluaXQvZXhp dCBhbmQgdGhhdCBpcyBzeW5jaHJvbml6ZWQgYWdhaW5zdCBvbmdvaW5nIHJlc2V0cy4KPiArCSAq Lwo+ICsJaWYgKCFwbV9ydW50aW1lX2FjdGl2ZShkd2MtPmRldikpCj4gKwkJcmV0dXJuOwoKW1Nl dmVyaXR5OiBIaWdoXQpEb2VzIGNoZWNraW5nIHBtX3J1bnRpbWVfYWN0aXZlKGR3Yy0+ZGV2KSBo ZXJlIG1pc3MgdGhlIGNhc2Ugd2hlcmUgRFdDMyBpcyBpbgp0aGUgbWlkZGxlIG9mIHJ1bnRpbWUg cmVzdW1lIG9yIHJ1bnRpbWUgc3VzcGVuZD8KCkluIGRyaXZlcnMvYmFzZS9wb3dlci9ydW50aW1l LmM6cnBtX3Jlc3VtZSgpLCB0aGUgUE0gY29yZSBzZXRzCmRldi0+cG93ZXIucnVudGltZV9zdGF0 dXMgdG8gUlBNX1JFU1VNSU5HIGJlZm9yZSBpbnZva2luZyB0aGUgZHJpdmVyJ3MKcnVudGltZV9y ZXN1bWUgY2FsbGJhY2ssIGFuZCBvbmx5IHVwZGF0ZXMgaXQgdG8gUlBNX0FDVElWRSBhZnRlciB0 aGUgY2FsbGJhY2sKcmV0dXJuczoKCmRyaXZlcnMvYmFzZS9wb3dlci9ydW50aW1lLmM6cnBtX3Jl c3VtZSgpIHsKCS4uLgoJX191cGRhdGVfcnVudGltZV9zdGF0dXMoZGV2LCBSUE1fUkVTVU1JTkcp OwoKCWNhbGxiYWNrID0gUlBNX0dFVF9DQUxMQkFDSyhkZXYsIHJ1bnRpbWVfcmVzdW1lKTsKCglk ZXZfcG1fZGlzYWJsZV93YWtlX2lycV9jaGVjayhkZXYsIGZhbHNlKTsKCXJldHZhbCA9IHJwbV9j YWxsYmFjayhjYWxsYmFjaywgZGV2KTsKCS4uLgp9CgpNZWFud2hpbGUsIGluY2x1ZGUvbGludXgv cG1fcnVudGltZS5oOnBtX3J1bnRpbWVfYWN0aXZlKCkgb25seSByZXR1cm5zIHRydWUKd2hlbiBy dW50aW1lX3N0YXR1cyBpcyBSUE1fQUNUSVZFIChvciBydW50aW1lIFBNIGlzIGRpc2FibGVkKToK CnN0YXRpYyBpbmxpbmUgYm9vbCBwbV9ydW50aW1lX2FjdGl2ZShzdHJ1Y3QgZGV2aWNlICpkZXYp CnsKCXJldHVybiBkZXYtPnBvd2VyLnJ1bnRpbWVfc3RhdHVzID09IFJQTV9BQ1RJVkUKCQl8fCBk ZXYtPnBvd2VyLmRpc2FibGVfZGVwdGg7Cn0KCkR1cmluZyBydW50aW1lIHJlc3VtZSBpbiBEV0Mz X0dDVExfUFJUQ0FQX0RFVklDRSBtb2RlLCB0aGUgY2FsbCBjaGFpbiBpczoKCmR3YzNfcm9ja2No aXBfcnVudGltZV9yZXN1bWUoKQogIC0+IGR3YzNfcnVudGltZV9yZXN1bWUoKQogICAgLT4gZHdj M19yZXN1bWVfY29tbW9uKCkKICAgICAgLT4gZHdjM19jb3JlX2luaXRfZm9yX3Jlc3VtZSgpCiAg ICAgICAgLT4gcmVzZXRfY29udHJvbF9kZWFzc2VydChkd2MtPnJlc2V0KQogICAgICAgIC0+IGR3 YzNfY2xrX2VuYWJsZShkd2MpCiAgICAgICAgLT4gZHdjM19jb3JlX2luaXQoZHdjKQogICAgICAg ICAgLT4gZHdjM19waHlfc2V0dXAoZHdjKQogICAgICAgICAgLT4gZHdjM19waHlfaW5pdChkd2Mp CiAgICAgICAgICAgIC0+IHBoeV9pbml0KCkKICAgICAgICAgICAgICAtPiBya191ZHBoeV91c2Iz X3BoeV9pbml0KCkKICAgICAgICAgICAgICAgIC0+IHJrX3VkcGh5X3Bvd2VyX29uKCkKICAgICAg ICAgICAgICAgICAgLT4gcmtfdWRwaHlfcnVuX3Jlc2V0X2hhbmRsZXIodWRwaHksIHRydWUpCiAg ICAgICAgICAgICAgICAgICAgLT4gZHdjM19yb2NrY2hpcF9waHlfcHJlX3Jlc2V0KCkKCkF0IHRo YXQgcG9pbnQsIERXQzMgcmVzZXQgaGFzIGJlZW4gZGVhc3NlcnRlZCwgY2xvY2tzIGFyZSBlbmFi bGVkLCBhbmQKZHdjM19waHlfc2V0dXAoKSBoYXMgY29uZmlndXJlZCBEV0MzX0dVU0IzUElQRUNU TCgwKSwgYnV0CmRldi0+cG93ZXIucnVudGltZV9zdGF0dXMgaXMgc3RpbGwgUlBNX1JFU1VNSU5H LiBXaGVuIHJrX3VkcGh5X3Bvd2VyX29uKCkKcnVucyB0aGUgcmVzZXQgaGFuZGxlciAoYmVjYXVz ZSB1ZHBoeS0+c3RhdHVzID09IFVEUEhZX01PREVfTk9ORSBvcgp1ZHBoeS0+cGh5X25lZWRzX3Jl aW5pdCBpcyB0cnVlIGFmdGVyIGEgVVNCLUMgcmVjb25uZWN0IG9yIG9yaWVudGF0aW9uCmNoYW5n ZSksIHdvbid0IGR3YzNfcm9ja2NoaXBfcGh5X3ByZV9yZXNldCgpIHNlZSAhcG1fcnVudGltZV9h Y3RpdmUoZHdjLT5kZXYpCmFuZCByZXR1cm4gZWFybHkgd2l0aG91dCBhc3NlcnRpbmcgRFdDM19H VVNCM1BJUEVDVExfUEhZU09GVFJTVCwgY2F1c2luZwpya191ZHBoeV9zdGF0dXNfY2hlY2soKSB0 byBmYWlsIExDUExMIGxvY2sgYW5kIGZhaWxpbmcgZHdjM19ydW50aW1lX3Jlc3VtZSgpCihhcyB3 ZWxsIGFzIHNraXBwaW5nIHRoZSBWQlVTIG5vdGlmaWNhdGlvbiBpbiB0aGUgZm9sbG93LXVwIGNv bW1pdCAidXNiOgpkd2MzOiByb2NrY2hpcDogZml4IFVTQi1DIHJlY29ubmVjdCBpbiBnYWRnZXQg bW9kZSIpPwoKU2ltaWxhcmx5LCBkdXJpbmcgcnVudGltZSBzdXNwZW5kLCBycG1fc3VzcGVuZCgp IHNldHMgcnVudGltZV9zdGF0dXMgdG8KUlBNX1NVU1BFTkRJTkcgYmVmb3JlIGludm9raW5nIHRo ZSBkcml2ZXIgY2FsbGJhY2suIFdoaWxlCmR3YzNfc3VzcGVuZF9jb21tb24oKSBpcyBleGVjdXRp bmcgZHdjM19nYWRnZXRfc3VzcGVuZCgpLCBzeW5jaHJvbml6ZV9pcnEoKSwKb3Igd2FpdGluZyBv biB1ZHBoeS0+bXV0ZXggaW4gZHdjM19waHlfZXhpdCgpIGJlZm9yZSBjbG9ja3MgYXJlIGRpc2Fi bGVkIGFuZApyZXNldCBpcyBhc3NlcnRlZCwgd291bGRuJ3QgYSBjb25jdXJyZW50IFBIWSByZXNl dCB2aWEKcmtfdWRwaHlfZHBfcGh5X3Bvd2VyX29uKCkgYWxzbyBzZWUgIXBtX3J1bnRpbWVfYWN0 aXZlKGR3Yy0+ZGV2KSBhbmQgc2tpcAphc3NlcnRpbmcgRFdDM19HVVNCM1BJUEVDVExfUEhZU09G VFJTVCB3aGlsZSBEV0MzIGlzIHN0aWxsIHJ1bm5pbmc/Cgo+ICsKPiArCS8qCj4gKwkgKiBBc3Nl cnQgVVNCMyBQSFkgc29mdCByZXNldCB3aXRoaW4gRFdDMyBiZWZvcmUgdGhlIGV4dGVybmFsCj4g KwkgKiBQSFkgcmVzZXRzLiBUaGlzIGRpc2Nvbm5lY3RzIHRoZSBQSVBFIGludGVyZmFjZSwgcHJl dmVudGluZwo+ICsJICogdGhlIERXQzMgZnJvbSBpbnRlcmZlcmluZyB3aXRoIFBIWSByZWluaXRp YWxpemF0aW9uIGFuZAo+ICsJICogYXZvaWRpbmcgTENQTEwgbG9jayBmYWlsdXJlcy4KPiArCSAq Lwo+ICsJc2NvcGVkX2d1YXJkKHNwaW5sb2NrX2lycXNhdmUsICZkd2MtPmxvY2spIHsKPiArCQlk d2NfcmstPnBoeV9yZXNldF9hY3RpdmUgfD0gQklUKHBvcnQpOwo+ICsJCXJlZyA9IGR3YzNfcmVh ZGwoZHdjLCBEV0MzX0dVU0IzUElQRUNUTChwb3J0KSk7Cj4gKwkJcmVnIHw9IERXQzNfR1VTQjNQ SVBFQ1RMX1BIWVNPRlRSU1Q7Cj4gKwkJZHdjM193cml0ZWwoZHdjLCBEV0MzX0dVU0IzUElQRUNU TChwb3J0KSwgcmVnKTsKPiArCX0KPiArfQoKW1NldmVyaXR5OiBNZWRpdW1dCkNhbiB0aGUgUEhZ IHJlc2V0IGNhbGxiYWNrcyByYWNlIHdpdGggRFdDMyByb2xlIHN3aXRjaGluZyBpbgpfX2R3YzNf c2V0X21vZGUoKT8KCldoZW4gYSBVU0ItQyBkZXZpY2Ugd2l0aCBEaXNwbGF5UG9ydCBBbHRNb2Rl IGlzIHBsdWdnZWQgaW4sIHVucGx1Z2dlZCwgb3IKdW5kZXJnb2VzIGEgcm9sZSBzd2FwLCB0Y3Bt X211eF9zZXQoKSB1cGRhdGVzIHRoZSBtdXgvb3JpZW50YXRpb24gc3RhdGUKKHNldHRpbmcgdWRw aHktPnBoeV9uZWVkc19yZWluaXQgPSB0cnVlIGluIHJrX3VkcGh5X29yaWVuX3N3X3NldCgpIG9y CnJrX3VkcGh5X3R5cGVjX211eF9zZXQoKSkgYW5kIGNhbGxzIHVzYl9yb2xlX3N3aXRjaF9zZXRf cm9sZSgpIC0+CmR3YzNfdXNiX3JvbGVfc3dpdGNoX3NldCgpIC0+IGR3YzNfc2V0X21vZGUoKSwg cXVldWluZyBfX2R3YzNfc2V0X21vZGUoKSBvbgpzeXN0ZW1fZnJlZXphYmxlX3dxLiBDb25jdXJy ZW50bHksIERQIEhQRC9saW5rIGVuYWJsZW1lbnQgaW52b2tlcwpwaHlfcG93ZXJfb24oZHAtPnBo eSkgLT4gcmtfdWRwaHlfZHBfcGh5X3Bvd2VyX29uKCkgLT4gcmtfdWRwaHlfcG93ZXJfb24oKQp1 bmRlciB1ZHBoeS0+bXV0ZXguCgpGaXJzdCwgX19kd2MzX3NldF9tb2RlKCkgY2FsbHMgZHdjM19o b3N0X2V4aXQoKSwgZHdjM19nYWRnZXRfZXhpdCgpLCBhbmQKZHdjM19ob3N0X2luaXQoKSAtPiBk d2MzX3hoY2lfcGxhdF9zdGFydCgpLCBhbGwgb2Ygd2hpY2ggY2FsbApkd2MzX2VuYWJsZV9zdXNw aHkoKSB3aXRob3V0IGhvbGRpbmcgZHdjLT5sb2NrOgoKZHJpdmVycy91c2IvZHdjMy9jb3JlLmM6 ZHdjM19lbmFibGVfc3VzcGh5KCkgewoJLi4uCglmb3IgKGkgPSAwOyBpIDwgZHdjLT5udW1fdXNi M19wb3J0czsgaSsrKSB7CgkJcmVnID0gZHdjM19yZWFkbChkd2MsIERXQzNfR1VTQjNQSVBFQ1RM KGkpKTsKCQlpZiAoZW5hYmxlICYmICFkd2MtPmRpc191M19zdXNwaHlfcXVpcmspCgkJCXJlZyB8 PSBEV0MzX0dVU0IzUElQRUNUTF9TVVNQSFk7CgkJZWxzZQoJCQlyZWcgJj0gfkRXQzNfR1VTQjNQ SVBFQ1RMX1NVU1BIWTsKCgkJZHdjM193cml0ZWwoZHdjLCBEV0MzX0dVU0IzUElQRUNUTChpKSwg cmVnKTsKCX0KfQoKQ291bGQgYW4gdW5sb2NrZWQgcmVhZC1tb2RpZnktd3JpdGUgaW4gZHdjM19l bmFibGVfc3VzcGh5KCkgaW50ZXJsZWF2ZSB3aXRoCmR3YzNfcm9ja2NoaXBfcGh5X3ByZV9yZXNl dCgpIG9yIGR3YzNfcm9ja2NoaXBfcGh5X3Bvc3RfcmVzZXQoKSBhbmQgY2xlYXIKRFdDM19HVVNC M1BJUEVDVExfUEhZU09GVFJTVCBkdXJpbmcgdGhlIFBIWSByZXNldCBvciByZS1hc3NlcnQgaXQg YWZ0ZXIKZHdjM19yb2NrY2hpcF9waHlfcG9zdF9yZXNldCgpIGNsZWFycyBpdD8KClNlY29uZCwg YmV0d2VlbiBkd2MzX3JvY2tjaGlwX3BoeV9wcmVfcmVzZXQoKSBhbmQKZHdjM19yb2NrY2hpcF9w aHlfcG9zdF9yZXNldCgpLCBya191ZHBoeV9pbml0KCkgc2xlZXBzIGluIHVzbGVlcF9yYW5nZSgp IGFuZApwb2xscyBQTEwgc3RhdHVzIGluIHJlZ21hcF9yZWFkX3BvbGxfdGltZW91dCgpIHdoaWxl IGhvbGRpbmcgb25seQp1ZHBoeS0+bXV0ZXguIFNpbmNlIF9fZHdjM19zZXRfbW9kZSgpIGhvbGRz IG9ubHkgZHdjLT5tdXRleCwgY2FuCl9fZHdjM19zZXRfbW9kZSgpIGFzc2VydCBhbmQgZGVhc3Nl cnQgRFdDM19HQ1RMX0NPUkVTT0ZUUkVTRVQgZHVyaW5nIHRoZSBQSFkKcmVzZXQgd2luZG93OgoK ZHJpdmVycy91c2IvZHdjMy9jb3JlLmM6X19kd2MzX3NldF9tb2RlKCkgewoJLi4uCgkJcmVnID0g ZHdjM19yZWFkbChkd2MsIERXQzNfR0NUTCk7CgkJcmVnIHw9IERXQzNfR0NUTF9DT1JFU09GVFJF U0VUOwoJCWR3YzNfd3JpdGVsKGR3YywgRFdDM19HQ1RMLCByZWcpOwoKCQltc2xlZXAoMTAwKTsK CgkJcmVnID0gZHdjM19yZWFkbChkd2MsIERXQzNfR0NUTCk7CgkJcmVnICY9IH5EV0MzX0dDVExf Q09SRVNPRlRSRVNFVDsKCQlkd2MzX3dyaXRlbChkd2MsIERXQzNfR0NUTCwgcmVnKTsKCS4uLgp9 CgpyZXNldHRpbmcgRFdDMyBnbG9iYWwgcmVnaXN0ZXJzIGFuZCBjbGVhcmluZyBEV0MzX0dVU0Iz UElQRUNUTF9QSFlTT0ZUUlNUCndoaWxlIHRoZSBVU0JEUCBQSFkgcmVzZXQgaXMgc3RpbGwgaW4g cHJvZ3Jlc3M/Cgo+ICsKPiArc3RhdGljIHZvaWQgZHdjM19yb2NrY2hpcF9waHlfcG9zdF9yZXNl dChzdHJ1Y3QgZHdjM19yb2NrY2hpcCAqZHdjX3JrLCBpbnQgcG9ydCkKPiArewo+ICsJc3RydWN0 IGR3YzMgKmR3YyA9ICZkd2NfcmstPmR3YzsKPiArCXUzMiByZWc7Cj4gKwo+ICsJc2NvcGVkX2d1 YXJkKHNwaW5sb2NrX2lycXNhdmUsICZkd2MtPmxvY2spIHsKPiArCQlpZiAoIShkd2NfcmstPnBo eV9yZXNldF9hY3RpdmUgJiBCSVQocG9ydCkpKQo+ICsJCQlyZXR1cm47Cj4gKwo+ICsJCWR3Y19y ay0+cGh5X3Jlc2V0X2FjdGl2ZSAmPSB+QklUKHBvcnQpOwo+ICsKPiArCQkvKiBSZXN0b3JlIG5v cm1hbCBvcGVyYXRpb24gKi8KPiArCQlyZWcgPSBkd2MzX3JlYWRsKGR3YywgRFdDM19HVVNCM1BJ UEVDVEwocG9ydCkpOwo+ICsJCXJlZyAmPSB+RFdDM19HVVNCM1BJUEVDVExfUEhZU09GVFJTVDsK PiArCQlkd2MzX3dyaXRlbChkd2MsIERXQzNfR1VTQjNQSVBFQ1RMKHBvcnQpLCByZWcpOwo+ICsJ fQo+ICt9CgpbU2V2ZXJpdHk6IEhpZ2hdCklzIGl0IHNhZmUgdG8gcmVseSBvbiBEV0MzIHJ1bnRp bWUgc3VzcGVuZC9yZXN1bWUgY2FsbGluZyBwaHlfaW5pdCgpIGFuZApwaHlfZXhpdCgpIGluc3Rl YWQgb2YgaG9sZGluZyBhIHJ1bnRpbWUgUE0gcmVmZXJlbmNlIGFjcm9zcyB0aGUgUEhZIHJlc2V0 PwoKSW4gZHJpdmVycy91c2IvZHdjMy9jb3JlLmMsIGR3YzNfc3VzcGVuZF9jb21tb24oKSBhbmQg ZHdjM19yZXN1bWVfY29tbW9uKCkKb25seSBjYWxsIGR3YzNfY29yZV9leGl0KCkgKHdoaWNoIGNh bGxzIGR3YzNfcGh5X2V4aXQoKSAtPiBwaHlfZXhpdCgpKSBhbmQKZHdjM19jb3JlX2luaXRfZm9y X3Jlc3VtZSgpICh3aGljaCBjYWxscyBkd2MzX2NvcmVfaW5pdCgpIC0+IGR3YzNfcGh5X2luaXQo KQotPiBwaHlfaW5pdCgpKSBkdXJpbmcgcnVudGltZSBQTSB3aGVuIGluIERXQzNfR0NUTF9QUlRD QVBfREVWSUNFIG1vZGUuIEluCkRXQzNfR0NUTF9QUlRDQVBfSE9TVCBhbmQgRFdDM19HQ1RMX1BS VENBUF9PVEcgbW9kZXMsIHJ1bnRpbWUgc3VzcGVuZCBhbmQKcmVzdW1lIHNraXAgZHdjM19jb3Jl X2V4aXQoKSBhbmQgZHdjM19jb3JlX2luaXRfZm9yX3Jlc3VtZSgpOgoKZHJpdmVycy91c2IvZHdj My9jb3JlLmM6ZHdjM19zdXNwZW5kX2NvbW1vbigpIHsKCS4uLgoJY2FzZSBEV0MzX0dDVExfUFJU Q0FQX0hPU1Q6CgkJaWYgKCFQTVNHX0lTX0FVVE8obXNnKSAmJgoJCSAgICAoIWRldmljZV9tYXlf d2FrZXVwKGR3Yy0+ZGV2KSB8fCBkd2MtPm5lZWRzX2Z1bGxfcmVpbml0KSkgewoJCQlkd2MzX2Nv cmVfZXhpdChkd2MpOwoJCQlicmVhazsKCQl9CgkuLi4KCWNhc2UgRFdDM19HQ1RMX1BSVENBUF9P VEc6CgkJLyogZG8gbm90aGluZyBkdXJpbmcgcnVudGltZV9zdXNwZW5kICovCgkJaWYgKFBNU0df SVNfQVVUTyhtc2cpKQoJCQlicmVhazsKCS4uLgp9CgpCZWNhdXNlIHBoeV9leGl0KCkgaXMgbm90 IGNhbGxlZCBvbiBydW50aW1lIHN1c3BlbmQgaW4gaG9zdCBvciBPVEcgbW9kZXMsCnJrX3VkcGh5 X3VzYjNfcGh5X2V4aXQoKSBkb2VzIG5vdCBydW4sIHVkcGh5LT5tdXRleCBpcyBub3QgYWNxdWly ZWQgYnkKcnVudGltZSBzdXNwZW5kL3Jlc3VtZSwgYW5kIHVkcGh5LT5zd19tb2RlIHJldGFpbnMg VURQSFlfTU9ERV9VU0Igd2hpbGUKZHdjLT5kZXYgaXMgcnVudGltZS1zdXNwZW5kZWQuCgpJZiBk d2MtPmRldiBpcyBSUE1fQUNUSVZFIGluIERXQzNfR0NUTF9QUlRDQVBfSE9TVCBvciBEV0MzX0dD VExfUFJUQ0FQX09URwptb2RlIHdoZW4gZHdjM19yb2NrY2hpcF9waHlfcHJlX3Jlc2V0KCkgcnVu cyAoZm9yIGV4YW1wbGUsIHZpYQpya191ZHBoeV9kcF9waHlfcG93ZXJfb24oKSAtPiBya191ZHBo eV9wb3dlcl9vbigpKSwgaXQgc2V0cwpkd2NfcmstPnBoeV9yZXNldF9hY3RpdmUgfD0gQklUKHBv cnQpIHdpdGhvdXQgaG9sZGluZyBhIHJ1bnRpbWUgUE0gcmVmZXJlbmNlLgpXaGlsZSBya191ZHBo eV9wb3dlcl9vbigpIHNsZWVwcyBpbiBya191ZHBoeV9pbml0KCksIGR3Yy0+ZGV2IGNhbgpydW50 aW1lLXN1c3BlbmQgY29uY3VycmVudGx5IHdpdGhvdXQgYmxvY2tpbmcgb24gdWRwaHktPm11dGV4 LCBhbGxvd2luZyB0aGUKVVNCIHBvd2VyIGRvbWFpbiAoUkszNTg4X1BEX1VTQiAvIFJLMzU3Nl9Q RF9VU0IpIHRvIHBvd2VyIGRvd24uIFdoZW4KZHdjM19yb2NrY2hpcF9waHlfcG9zdF9yZXNldCgp IHRoZW4gZXhlY3V0ZXMsIHdvbid0IGl0IHNlZQpkd2NfcmstPnBoeV9yZXNldF9hY3RpdmUgJiBC SVQocG9ydCkgc2V0IGFuZCBjYWxsIGR3YzNfcmVhZGwoKSBhbmQKZHdjM193cml0ZWwoKSBvbiBE V0MzX0dVU0IzUElQRUNUTChwb3J0KSB3aGlsZSBkd2MtPmRldiBpcyBydW50aW1lLXN1c3BlbmRl ZCwKdHJpZ2dlcmluZyBhbiBhcm02NCBTRXJyb3I/CgpDb252ZXJzZWx5LCBpZiBkd2MtPmRldiBp cyBhbHJlYWR5IHJ1bnRpbWUtc3VzcGVuZGVkIGluIERXQzNfR0NUTF9QUlRDQVBfSE9TVApvciBE V0MzX0dDVExfUFJUQ0FQX09URyBtb2RlIHdoaWxlIERXQzMgY2xvY2tzIGFuZCByZXNldCByZW1h aW4gYWN0aXZlIChhbmQKdGhlIHNoYXJlZCBVU0IgcG93ZXIgZG9tYWluIGlzIGtlcHQgb24gYnkg c2libGluZyBjb250cm9sbGVycyksIHdvbid0CmR3YzNfcm9ja2NoaXBfcGh5X3ByZV9yZXNldCgp IHNlZSAhcG1fcnVudGltZV9hY3RpdmUoZHdjLT5kZXYpIGFuZCByZXR1cm4KZWFybHkgd2l0aG91 dCBhc3NlcnRpbmcgRFdDM19HVVNCM1BJUEVDVExfUEhZU09GVFJTVCwgY2F1c2luZyB0aGUgVVNC RFAgUEhZCnJlc2V0IHRvIGZhaWwgTENQTEwgbG9jayB3aGlsZSBzdWJzZXF1ZW50IHJ1bnRpbWUg cmVzdW1lIGluIGhvc3Qgb3IgT1RHIG1vZGUKZG9lcyBub3QgcmVpbml0aWFsaXplIHRoZSBEV0Mz IGNvcmUgb3IgUEhZPwoKWyAuLi4gXQoKPgoKLS0gClNhc2hpa28gQUkgcmV2aWV3IMK3IGh0dHBz Oi8vc2FzaGlrby5kZXYvIy9wYXRjaHNldC8yMDI2MTAyMS1iNC1yb2NrY2hpcC1kd2MzLXJvY2tj aGlwLWdsdWUtdjE4LTAtNjAwMDBkMDNmY2EyQGNvbGxhYm9yYS5jb20/cGFydD01CgotLSAKbGlu dXgtcGh5IG1haWxpbmcgbGlzdApsaW51eC1waHlAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwczov L2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1waHkK