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 988FAC55162 for ; Thu, 30 Jul 2026 14:38:49 +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=ZjRlQPhl38vy0KdQ61BbxetCaEqRq3PDzBLGFy2pvUc=; b=A1YltA8pVwDQdp YDzvQV/qdkuRCa5GkNJCzzzr8DS1d1NfbLEHvtDkjq13Fpl/nOhjEzKMRqPpGgassjluOH2Ys/U2Q dAp3EJW35wRr1870QpLddfPxNFZfCXKjBXn7a8ukHrddI0S0lWYHjYUeWqh+F4OwBiGCvuv/pGmhW E7Sya85ZROPEFCfWLxNTZwgxS2/2Czng7R5AsJpC1ruXSLDu4CGNpT2DANwVZ010RfUen+1sWKysD TbYHgIbMcG8DeVdzJ2qQ7rFURN+4pkVEg2U/w14kmfRSUBKMYwR0zv3EKeuXysxrxKht4aEV3abIW zkj2YieBcdf3+TmBvopw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wpRuL-0000000Am0f-1EbZ; Thu, 30 Jul 2026 14:38:49 +0000 Received: from tor.source.kernel.org ([172.105.4.254]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wpRuJ-0000000Am0T-2D4S for linux-phy@lists.infradead.org; Thu, 30 Jul 2026 14:38:47 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by tor.source.kernel.org (Postfix) with ESMTP id B378B600C8; Thu, 30 Jul 2026 14:38:46 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 881DB1F00A3A; Thu, 30 Jul 2026 14:38:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1785422326; bh=R0SY6WtUf5LdAt8KtbXPAeRYOI7YDuTl4nXXiAoA+m0=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=E/berVpgQog5J1hcOd0XKQJa82hnS3cdDBSgFAdyebMXCgEYSIVVIaLszTQ62bZ+Z Tl1fhqSbu3+sBdsR9wYFrrcSPB6l10iA0trot7eUQL7lKYQYVVH40Bnb48Xp7QtRwB HyG+GF6xX2/Ei8Hc8AU1eFTRZXKN6u/vil44lQhkdyd6wJ/5bMvpEnO9TnE8dHrpSM TaIPbYbOW//e7Rr/IrVBXN/B/aF4CDTqGjro7WzRkEtGSo87JgAdOS8Ggd9EdA6gvQ yf45McdUSbIL+jthUjScFBVC5Q8RAsyC6sNEBQWUOj/Rdj3ydihMex1MA3R3Ybv7kq ezdfuUjmCIfzA== From: sashiko-bot@kernel.org Subject: Re: [PATCH v3 3/5] phy: qualcomm: qmp-combo: Add preliminary USB4 support To: "Konrad Dybcio" Cc: vkoul@kernel.org, olteanv@gmail.com, neil.armstrong@linaro.org, conor+dt@kernel.org, devicetree@vger.kernel.org, robh@kernel.org, linux-phy@lists.infradead.org In-Reply-To: <20260730-topic-usb4phy-v3-3-ccf0f7ea98b5@oss.qualcomm.com> References: <20260730-topic-usb4phy-v3-0-ccf0f7ea98b5@oss.qualcomm.com> <20260730-topic-usb4phy-v3-3-ccf0f7ea98b5@oss.qualcomm.com> Date: Thu, 30 Jul 2026 14:38:45 +0000 Message-Id: <20260730143845.881DB1F00A3A@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 OCBwb3RlbnRpYWwgaXNzdWUocykgdG8gY29uc2lkZXI6CgpOZXcgaXNzdWVzOgotIFtIaWdoXSBV bmNvbmRpdGlvbmFsIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSBvZiBwY3NfYW9uIGluIHFtcF9j b21ib19jb21faW5pdCgpIHdoZW4gY29uZmlndXJpbmcgVVNCNCBtb2RlLgotIFtIaWdoXSBEb3Vi bGUgaW5pdGlhbGl6YXRpb24gb2YgdGhlIFVTQiBQSFkgaGFyZHdhcmUgcmVnaXN0ZXJzIGluIHFt cF9jb21ib191c2I0X2luaXQoKS4KLSBbSGlnaF0gVHlwZS1DIG11eCBldmVudHMgYXJlIGNvbXBs ZXRlbHkgbG9zdCBpZiB0aGUgUEhZIGlzIHVuaW5pdGlhbGl6ZWQsIGxlYWRpbmcgdG8gaW5jb3Jy ZWN0IGhhcmR3YXJlIGNvbmZpZ3VyYXRpb24uCi0gW01lZGl1bV0gUmVzb3VyY2UgbGVhayBvZiBw MnJyMnBfcGlwZV9jbGsgb24gZXJyb3IgcGF0aHMgaW4gcW1wX2NvbWJvX3VzYjRfaW5pdCgpLgot IFtNZWRpdW1dIERhdGEgcmFjZSBkdWUgdG8gdW5sb2NrZWQgYWNjZXNzIHRvIHFtcHBoeV9tb2Rl IGFuZCBvcmllbnRhdGlvbiBpbiBxbXBfY29tYm9fdHlwZWNfc3dpdGNoX3NldCgpLgoKUHJlLWV4 aXN0aW5nIGlzc3VlczoKLSBbSGlnaF0gTWlzc2luZyBsb2NrIGluIHFtcF9jb21ib190eXBlY19t dXhfc2V0KCkgY2F1c2VzIHJhY2UgY29uZGl0aW9ucyB3aXRoIGNvbmN1cnJlbnQgUEhZIGluaXRp YWxpemF0aW9ucy4KLSBbSGlnaF0gRXJyb3IgcGF0aHMgaW4gcW1wX2NvbWJvX2NvbV9pbml0KCkg dW5jb25kaXRpb25hbGx5IGRlY3JlbWVudCBpbml0X2NvdW50LCBsZWFkaW5nIHRvIHVuZGVyZmxv dyB3aGVuIGZvcmNlPXRydWUuCi0gW0hpZ2hdIFRoZSByZXR1cm4gdmFsdWUgb2YgcW1wX2NvbWJv X2NvbV9pbml0KCkgaXMgaWdub3JlZCBkdXJpbmcgUEhZIHJlY29uZmlndXJhdGlvbi4KLS0KCi0t LSBQYXRjaCBbM106IFtQQVRDSCB2MyAzLzVdIHBoeTogcXVhbGNvbW06IHFtcC1jb21ibzogQWRk IHByZWxpbWluYXJ5IFVTQjQgc3VwcG9ydCAtLS0KY29tbWl0IDc3Y2NjMDc3ZjNiMjBiZmRhMjk4 NWVjODc3YWNkZjYyYWM4MzdiMmYKQXV0aG9yOiBLb25yYWQgRHliY2lvIDxrb25yYWQuZHliY2lv QG9zcy5xdWFsY29tbS5jb20+CgpwaHk6IHF1YWxjb21tOiBxbXAtY29tYm86IEFkZCBwcmVsaW1p bmFyeSBVU0I0IHN1cHBvcnQKClNvbWUgQ29tYm8gUEhZcyAoc28gZmFyIG9ubHkgb24gU0M4Mjgw WFAsIFgxRTgwMTAwIGFuZCBHbHltdXIpLCBjb21lIGluCmEgZmxhdm9yIGNhbGxlZCBVU0I0M0RQ LCB3aGljaCBhcyB0aGUgbmFtZSBpbXBsaWVzLCBmZWF0dXJlcyBVU0I0LCBVU0IzCmFuZCBEUCBz aWduYWwgcHJvY2Vzc2luZyBjYXBhYmlsaXRpZXMuIFRoaXMgY29tbWl0IGFkZHMgYSBuZXcgc3Ry dWN0IHBoeQp0byBleHBvc2UgdGhlIFVTQjQgbW9kZSwgYWxvbmcgd2l0aCBhIC5zZXRfbW9kZSBj YWxsYmFjayB0byBhbGxvdwp0b2dnbGluZyBiZXR3ZWVuIFVTQjQgYW5kIFRCVDMgc3VibW9kZXMu Cgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BoeS9xdWFsY29tbS9waHktcWNvbS1xbXAtY29tYm8u YyBiL2RyaXZlcnMvcGh5L3F1YWxjb21tL3BoeS1xY29tLXFtcC1jb21iby5jCj4gaW5kZXggY2Rj ZmFkMmU4NmIxZC4uYjgwZWFjOWQ3MTQwMSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3BoeS9xdWFs Y29tbS9waHktcWNvbS1xbXAtY29tYm8uYwo+ICsrKyBiL2RyaXZlcnMvcGh5L3F1YWxjb21tL3Bo eS1xY29tLXFtcC1jb21iby5jCgpbIC4uLiBdCgo+IEBAIC0zNjYxLDE0ICszNjkxLDI2IEBAIHN0 YXRpYyBpbnQgcW1wX2NvbWJvX2NvbV9pbml0KHN0cnVjdCBxbXBfY29tYm8gKnFtcCwgYm9vbCBm b3JjZSkKPiAgewo+ICAJY29uc3Qgc3RydWN0IHFtcF9waHlfY2ZnICpjZmcgPSBxbXAtPmNmZzsK PiArCXUzMiBkcF9yZXNldF92YWwgPSBTV19EUFBIWV9SRVNFVF9NVVggfCBTV19EUFBIWV9SRVNF VDsKPiAgCXZvaWQgX19pb21lbSAqY29tID0gcW1wLT5jb207Cj4gIAl2b2lkIF9faW9tZW0gKnBj c19hb24gPSBxbXAtPnBjc19hb247Cj4gKwl2b2lkIF9faW9tZW0gKnBjcyA9IHFtcC0+cGNzOwo+ ICAJaW50IHJldDsKPiAgCXUzMiB2YWw7Cj4gIAo+ICAJaWYgKCFmb3JjZSAmJiBxbXAtPmluaXRf Y291bnQrKykKPiAgCQlyZXR1cm4gMDsKCltTZXZlcml0eTogSGlnaF0KVGhpcyBpcyBhIHByZS1l eGlzdGluZyBpc3N1ZSwgYnV0IGRvZXMgY2FsbGluZyBxbXBfY29tYm9fY29tX2luaXQocW1wLCB0 cnVlKQpjYXVzZSBhbiB1bmRlcmZsb3cgb24gZXJyb3IgcGF0aHM/CgpXaGVuIGZvcmNlPXRydWUs IHRoZSBmdW5jdGlvbiBza2lwcyBxbXAtPmluaXRfY291bnQrKywgYnV0IGlmIHJlZ3VsYXRvcnMg b3IKY2xvY2tzIGZhaWwgdG8gZW5hYmxlLCBpdCBqdW1wcyB0byBlcnJfZGVjcmVtZW50X2NvdW50 IGFuZCB1bmNvbmRpdGlvbmFsbHkKZXhlY3V0ZXMgcW1wLT5pbml0X2NvdW50LS0uCgo+ICAKPiAr CWlmIChxbXAtPnFtcHBoeV9tb2RlID09IFFNUFBIWV9NT0RFX1VTQjQpIHsKPiArCQlwY3MgPSBx bXAtPnVzYjRfcGNzOwo+ICsKPiArCQlxcGh5X3NldGJpdHMocGNzX2FvbiwgY2ZnLT5yZWdzW1FQ SFlfUENTX1VTQjRfQ0xBTVBfRU5BQkxFXSwgQ0xBTVBfRU4pOwoKW1NldmVyaXR5OiBIaWdoXQpE b2VzIHRoaXMgdW5jb25kaXRpb25hbGx5IGRlcmVmZXJlbmNlIHBjc19hb24/IAoKT3RoZXIgcGFy dHMgb2YgdGhlIGRyaXZlciBleHBsaWNpdGx5IGNoZWNrIGlmIChwY3NfYW9uKSBiZWZvcmUgYWNj ZXNzaW5nIFVTQjQKY2xhbXAgcmVnaXN0ZXJzLCBzdWdnZXN0aW5nIHRoaXMgcmVnaXN0ZXIgYmxv Y2sgaXMgb3B0aW9uYWwgYW5kIGNvdWxkIGJlIE5VTEwuCgpbIC4uLiBdCgo+IEBAIC0zOTkzLDYg KzQxMDAsMTE5IEBAIHN0YXRpYyBpbnQgcW1wX2NvbWJvX3VzYl9zZXRfbW9kZShzdHJ1Y3QgcGh5 ICpwaHksIGVudW0gcGh5X21vZGUgbW9kZSwgaW50IHN1Ym1vCj4gIAlyZXR1cm4gMDsKPiAgfQo+ ICAKPiArc3RhdGljIGludCBxbXBfY29tYm9fcmVjb25maWd1cmVfcGh5KHN0cnVjdCBxbXBfY29t Ym8gKnFtcCwgZW51bSBxbXBwaHlfbW9kZSBuZXdfbW9kZSkKPiArewo+ICsJZGV2X2RiZyhxbXAt PmRldiwgInFtcF9jb21ib19yZWNvbmZpZ3VyZV9waHk6IHN3aXRjaGluZyBmcm9tIHFtcHBoeSBt b2RlICVkIHRvICVkXG4iLAo+ICsJCXFtcC0+cW1wcGh5X21vZGUsIG5ld19tb2RlKTsKPiArCj4g KwlpZiAocW1wLT51c2JfaW5pdF9jb3VudCB8fCBxbXAtPnVzYjRwaHlfaW5pdF9jb3VudCkKPiAr CQlxbXBfY29tYm9fdXNiX3Bvd2VyX29mZihxbXAtPnVzYl9waHkpOwo+ICsKPiArCWlmIChxbXAt PmRwX2luaXRfY291bnQpCj4gKwkJd3JpdGVsKERQX1BIWV9QRF9DVExfUFNSX1BXUkROLCBxbXAt PmRwX2RwX3BoeSArIFFTRVJERVNfRFBfUEhZX1BEX0NUTCk7Cj4gKwo+ICsJcW1wX2NvbWJvX2Nv bV9leGl0KHFtcCwgdHJ1ZSk7Cj4gKwo+ICsJcW1wLT5xbXBwaHlfbW9kZSA9IG5ld19tb2RlOwo+ ICsKPiArCS8qIE5vdyBldmVyeXRoaW5nJ3MgcG93ZXJlZCBkb3duLCBwb3dlciB1cCB0aGUgcmln aHQgUEhZcyAqLwo+ICsJcW1wX2NvbWJvX2NvbV9pbml0KHFtcCwgdHJ1ZSk7CgpbU2V2ZXJpdHk6 IEhpZ2hdClRoaXMgaXMgYSBwcmUtZXhpc3RpbmcgaXNzdWUsIGJ1dCBpcyBpdCBzYWZlIHRvIGln bm9yZSB0aGUgcmV0dXJuIHZhbHVlIG9mCnFtcF9jb21ib19jb21faW5pdCgpIGhlcmU/IAoKSWYg aXQgZmFpbHMgKGUuZy4sIGZhaWxlZCBjbG9jayBlbmFibGUpLCB0aGUgc3Vic2VxdWVudCBjYWxs IHRvCnFtcF9jb21ib191c2JfcG93ZXJfb24oKSBleGVjdXRlcyBoYXJkd2FyZSByZWdpc3RlciB3 cml0ZXMgd2hpY2ggbWlnaHQgY2F1c2UgYQpzeW5jaHJvbm91cyBleHRlcm5hbCBhYm9ydC4KCj4g Kwo+ICsJaWYgKChxbXAtPnVzYl9pbml0X2NvdW50IHx8IHFtcC0+dXNiNHBoeV9pbml0X2NvdW50 KSAmJgo+ICsJICAgIG5ld19tb2RlICE9IFFNUFBIWV9NT0RFX0RQX09OTFkpCj4gKwkJcW1wX2Nv bWJvX3VzYl9wb3dlcl9vbihxbXAtPnVzYl9waHkpOwo+ICsKPiArCWlmICgobmV3X21vZGUgPT0g UU1QUEhZX01PREVfVVNCM0RQIHx8IG5ld19tb2RlID09IFFNUFBIWV9NT0RFX0RQX09OTFkpICYm Cj4gKwkgICAgcW1wLT5kcF9pbml0X2NvdW50KQo+ICsJCXFtcC0+Y2ZnLT5kcF9hdXhfaW5pdChx bXApOwo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IHFtcF9jb21ib191 c2I0X2luaXQoc3RydWN0IHBoeSAqcGh5KQo+ICt7Cj4gKwlzdHJ1Y3QgcW1wX2NvbWJvICpxbXAg PSBwaHlfZ2V0X2RydmRhdGEocGh5KTsKPiArCWludCByZXQ7Cj4gKwo+ICsJZ3VhcmQobXV0ZXgp KCZxbXAtPnBoeV9tdXRleCk7Cj4gKwo+ICsJaWYgKCFxbXAtPnAycnIycF9waXBlX2Nsaykgewo+ ICsJCWRldl9lcnIocW1wLT5kZXYsICJtaXNzaW5nIHAycnIycF9waXBlIGNsb2NrIGhhbmRsZS4g VXBkYXRlIHlvdXIgRGV2aWNlIFRyZWUuXG4iKTsKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiArCX0K PiArCj4gKwlyZXQgPSBjbGtfcHJlcGFyZV9lbmFibGUocW1wLT5wMnJyMnBfcGlwZV9jbGspOwo+ ICsJaWYgKHJldCkgewo+ICsJCWRldl9lcnIocW1wLT5kZXYsICJwMnJyMnBfcGlwZSBlbmFibGUg ZmFpbGVkOiAlZFxuIiwgcmV0KTsKPiArCQlyZXR1cm4gcmV0Owo+ICsJfQo+ICsKPiArCXJldCA9 IHFtcF9jb21ib19jb21faW5pdChxbXAsIGZhbHNlKTsKPiArCWlmIChyZXQpCj4gKwkJcmV0dXJu IHJldDsKCltTZXZlcml0eTogTWVkaXVtXQpEb2VzIHRoaXMgbGVhayB0aGUgcDJycjJwX3BpcGVf Y2xrIHJlZmVyZW5jZT8KCklmIHFtcF9jb21ib19jb21faW5pdCgpIG9yIHN1YnNlcXVlbnQgaW5p dGlhbGl6YXRpb24gc3RlcHMgZmFpbCwgdGhpcyByZXR1cm5zCmRpcmVjdGx5IHdpdGhvdXQgY2Fs bGluZyBjbGtfZGlzYWJsZV91bnByZXBhcmUoKS4KCj4gKwo+ICsJLyogVVNCNCBtb2RlIHRha2Vz IHByZWNlZGVuY2UgdG8gVVNCMygrRFApLCBmb3JjZSByZWNvbmZpZ3VyZSB0aGUgUEhZICovCj4g KwlyZXQgPSBxbXBfY29tYm9fcmVjb25maWd1cmVfcGh5KHFtcCwgUU1QUEhZX01PREVfVVNCNCk7 Cj4gKwlpZiAocmV0KQo+ICsJCXJldHVybiByZXQ7Cj4gKwo+ICsJcmV0ID0gcW1wX2NvbWJvX3Vz Yl9wb3dlcl9vbihwaHkpOwoKW1NldmVyaXR5OiBIaWdoXQpDYW4gdGhpcyBjYXVzZSBhIGRvdWJs ZSBpbml0aWFsaXphdGlvbiBvZiB0aGUgVVNCIFBIWSBoYXJkd2FyZSByZWdpc3RlcnM/CgpJZiB0 aGUgVVNCIFBIWSB3YXMgcHJldmlvdXNseSBpbml0aWFsaXplZCwgcW1wX2NvbWJvX3JlY29uZmln dXJlX3BoeSgpCmltcGxpY2l0bHkgY2FsbHMgcW1wX2NvbWJvX3VzYl9wb3dlcl9vbihxbXAtPnVz Yl9waHkpLiBUaGVuIHRoaXMgY29kZQppbW1lZGlhdGVseSBjYWxscyBxbXBfY29tYm9fdXNiX3Bv d2VyX29uKHBoeSkgYSBzZWNvbmQgdGltZSwgd2hpY2ggbWlnaHQgbGVhZAp0byBoYXJkd2FyZSBz dGF0ZSBtYWNoaW5lIGxvY2t1cHMgb3IgcG9sbGluZyB0aW1lb3V0cy4KClsgLi4uIF0KCj4gQEAg LTQ0MjksMjQgKzQ2NjIsMjkgQEAgc3RhdGljIGludCBxbXBfY29tYm9fdHlwZWNfc3dpdGNoX3Nl dChzdHJ1Y3QgdHlwZWNfc3dpdGNoX2RldiAqc3csCj4gIAlzdHJ1Y3QgcW1wX2NvbWJvICpxbXAg PSB0eXBlY19zd2l0Y2hfZ2V0X2RydmRhdGEoc3cpOwo+ICAJY29uc3Qgc3RydWN0IHFtcF9waHlf Y2ZnICpjZmcgPSBxbXAtPmNmZzsKPiAgCj4gKwlpZiAocW1wLT5xbXBwaHlfbW9kZSA9PSBRTVBQ SFlfTU9ERV9VU0I0KSB7Cj4gKwkJLyogUU1QUEhZIGhhcyBubyBvcmllbnRhdGlvbiBoYW5kbGlu ZyBpbiBVU0I0IG1vZGUsIGRvbid0IGNhY2hlIHRoZSBzZXR0aW5nICovCj4gKwkJcW1wLT5vcmll bnRhdGlvbiA9IFRZUEVDX09SSUVOVEFUSU9OX05PTkU7Cj4gKwkJcmV0dXJuIDA7Cj4gKwl9Cgpb U2V2ZXJpdHk6IE1lZGl1bV0KQ2FuIHRoaXMgcmVzdWx0IGluIGEgZGF0YSByYWNlIG9uIHFtcC0+ cW1wcGh5X21vZGUgYW5kIHFtcC0+b3JpZW50YXRpb24/CgpUaGlzIHJlYWRzIHFtcC0+cW1wcGh5 X21vZGUgYW5kIG1vZGlmaWVzIHFtcC0+b3JpZW50YXRpb24gYmVmb3JlIGFjcXVpcmluZyB0aGUK bXV0ZXggZ3VhcmQsIHdoaWxlIG90aGVyIHJvdXRpbmVzIGxpa2UgcW1wX2NvbWJvX3JlY29uZmln dXJlX3BoeSgpIG1vZGlmeSB0aGVzZQpmaWVsZHMgY29uY3VycmVudGx5IHVuZGVyIHRoZSBsb2Nr LgoKPiArCj4gIAlpZiAob3JpZW50YXRpb24gPT0gcW1wLT5vcmllbnRhdGlvbiB8fCBvcmllbnRh dGlvbiA9PSBUWVBFQ19PUklFTlRBVElPTl9OT05FKQo+ICAJCXJldHVybiAwOwo+ICAKPiAtCW11 dGV4X2xvY2soJnFtcC0+cGh5X211dGV4KTsKPiArCWd1YXJkKG11dGV4KSgmcW1wLT5waHlfbXV0 ZXgpOwoKWyAuLi4gXQoKPiBAQCAtNDQ5Nyw0MSArNDc1NywxMSBAQCBzdGF0aWMgaW50IHFtcF9j b21ib190eXBlY19tdXhfc2V0KHN0cnVjdCB0eXBlY19tdXhfZGV2ICptdXgsIHN0cnVjdCB0eXBl Y19tdXhfcwo+ICAJCXJldHVybiAwOwo+ICAJfQo+ICAKPiAtCWRldl9kYmcocW1wLT5kZXYsICJ0 eXBlY19tdXhfc2V0OiBzd2l0Y2hpbmcgZnJvbSBxbXBwaHkgbW9kZSAlZCB0byAlZFxuIiwKPiAt CQlxbXAtPnFtcHBoeV9tb2RlLCBuZXdfbW9kZSk7Cj4gLQo+IC0JcW1wLT5xbXBwaHlfbW9kZSA9 IG5ld19tb2RlOwo+IC0KPiAtCWlmIChxbXAtPmluaXRfY291bnQpIHsKPiAtCQlpZiAocW1wLT51 c2JfaW5pdF9jb3VudCkKPiAtCQkJcW1wX2NvbWJvX3VzYl9wb3dlcl9vZmYocW1wLT51c2JfcGh5 KTsKClsgLi4uIF0KCj4gKwkvKiBUaGUgbXV4IHN0aWxsIHJlY2VpdmVzIFR5cGUtQyBldmVudHMs IGV2ZW4gaWYgYWxsIFBIWXMgYXJlIHVuaW5pdGlhbGl6ZWQgKi8KPiArCWlmICghcW1wLT5pbml0 X2NvdW50KQo+ICsJCXJldHVybiAwOwoKW1NldmVyaXR5OiBIaWdoXQpXaWxsIFR5cGUtQyBtdXgg ZXZlbnRzIGJlIGNvbXBsZXRlbHkgbG9zdCBpZiB0aGUgUEhZIGlzIHVuaW5pdGlhbGl6ZWQ/CgpQ cmV2aW91c2x5LCB0aGUgaW5jb21pbmcgbmV3X21vZGUgd2FzIHVuY29uZGl0aW9uYWxseSBjYWNo ZWQgaW4gcW1wLT5xbXBwaHlfbW9kZQpyZWdhcmRsZXNzIG9mIGluaXRfY291bnQuIE5vdyB0aGF0 IHRoZSBzdGF0ZSBzYXZlIGlzIGJ1cmllZCBpbnNpZGUKcW1wX2NvbWJvX3JlY29uZmlndXJlX3Bo eSgpLCByZXR1cm5pbmcgZWFybHkgaGVyZSBtZWFucyB0aGUgcmVxdWVzdGVkIG1vZGUKaXMgbG9z dCBpZiB0aGUgUEhZIGhhc24ndCBpbml0aWFsaXplZCB5ZXQuCgo+ICAKPiAtCXJldHVybiAwOwo+ ICsJcmV0dXJuIHFtcF9jb21ib19yZWNvbmZpZ3VyZV9waHkocW1wLCBuZXdfbW9kZSk7CgpbU2V2 ZXJpdHk6IEhpZ2hdClRoaXMgaXMgYSBwcmUtZXhpc3RpbmcgaXNzdWUsIGJ1dCBpcyBxbXBfY29t Ym9fdHlwZWNfbXV4X3NldCgpIG1pc3NpbmcgYSBsb2NrCnRvIHByZXZlbnQgcmFjZSBjb25kaXRp b25zPwoKVGhpcyBleGVjdXRlcyB3aXRob3V0IGhvbGRpbmcgcW1wLT5waHlfbXV0ZXggYW5kIGNh bGxzCnFtcF9jb21ib19yZWNvbmZpZ3VyZV9waHkoKSB3aGljaCBtYW5pcHVsYXRlcyBoYXJkd2Fy ZSByZWdpc3RlcnMuIENvbmN1cnJlbnRseSwKcW1wX2NvbWJvX3VzYl9pbml0KCkgb3IgcW1wX2Nv bWJvX3VzYjRfaW5pdCgpIGNhbiBleGVjdXRlIGZyb20gb3RoZXIgcGF0aHMgdGhhdApkbyBob2xk IHRoZSBsb2NrLCBwb3RlbnRpYWxseSBjbG9iYmVyaW5nIHRoZSBzYW1lIHJlZ2lzdGVycy4KCj4g IH0KCi0tIApTYXNoaWtvIEFJIHJldmlldyDCtyBodHRwczovL3Nhc2hpa28uZGV2LyMvcGF0Y2hz ZXQvMjAyNjA3MzAtdG9waWMtdXNiNHBoeS12My0wLWNjZjBmN2VhOThiNUBvc3MucXVhbGNvbW0u Y29tP3BhcnQ9MwoKLS0gCmxpbnV4LXBoeSBtYWlsaW5nIGxpc3QKbGludXgtcGh5QGxpc3RzLmlu ZnJhZGVhZC5vcmcKaHR0cHM6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8v bGludXgtcGh5Cg==