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 C2572C5DF85 for ; Thu, 20 Aug 2026 14:40:18 +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=qYPv8Z6vXBRoCQlObMqNcaSlVFGy+zIge9SSu65Xn+0=; b=XBEG0fcQhUT/l5 Pl4bc9NsOWslCtNMmiuLDbINbMjin5pgm1SkkEXMKSBsNhSqMYd4yYr2MEmOcjzxvK/XRMk4+zGZU 7CxQ/meW0DYr2yec5UaETmqncO8rGKV1HhqJbWzafi64v/gofL1xPQtnFLo6oTbF90FiHB4tNdffz uunVEhdXcNjk4BfRwrVetB2BzWIvgMFyl5v8HhAR5NZnhBDF3pGyOJf2cup7wdPXSFaOHXQ4vQTeS 7w20o9oDsihDEkt5/be/5abDROtg4blUNNuNYbVdqz5osBYkcEQpxcs+4tFBgSLge9aTpDHjrP+B4 T/xWDfUyXRf60s9RKC+g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wx3wI-0000000Bixm-1wyz; Thu, 20 Aug 2026 14:40:18 +0000 Received: from sea.source.kernel.org ([2600:3c0a:e001:78e:0:1991:8:25]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wx3wG-0000000BixX-1o3x for linux-phy@lists.infradead.org; Thu, 20 Aug 2026 14:40:16 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by sea.source.kernel.org (Postfix) with ESMTP id B669743F1D; Thu, 20 Aug 2026 14:40:15 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 32F2E1F000E9; Thu, 20 Aug 2026 14:40:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1787236815; bh=OMd4GEi2ju9VDRjtlLPVOJJPY1azifUxAoFFL5QIjUE=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=QM990qQULApX6hUs2d9Nz9UbsCAO//KWBUISXAvfSN4Rg33tptpzFpFJSCylmtJu5 0qQbJoP3hi9Anm9FqreUHOYGPw4uJXe4dLRu5zX+/x/jF3gWoaM1UCxFchgGivy72M JqOlFBpYBtneks2qq/bydRZcrbSczD20qg2aN5t+ul1l1LdgHsy7YT1HaUKhVEdQgx cQsPiBlWaxOhzgHx9Ob1jubHCIopqyrDM+Z+hUQ/4sZ9t3dwU3m1hySN+mZh7zcar3 fda5R4/3MwbKgYWtuWFSF4Sp5Iq2pMPmHfy4EoleiUpgHYxZDgbMSk+dOWKHrAfYAV tnJuciFlsI2gw== From: sashiko-bot@kernel.org Subject: Re: [PATCH v4 3/5] phy: qualcomm: qmp-combo: Add preliminary USB4 support To: "Konrad Dybcio" Cc: robh@kernel.org, olteanv@gmail.com, linux-phy@lists.infradead.org, conor+dt@kernel.org, devicetree@vger.kernel.org, vkoul@kernel.org, neil.armstrong@linaro.org In-Reply-To: <20260820-topic-usb4phy-v4-3-aec9d2cb31f6@oss.qualcomm.com> References: <20260820-topic-usb4phy-v4-0-aec9d2cb31f6@oss.qualcomm.com> <20260820-topic-usb4phy-v4-3-aec9d2cb31f6@oss.qualcomm.com> Date: Thu, 20 Aug 2026 14:40:14 +0000 Message-Id: <20260820144015.32F2E1F000E9@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 MTAgcG90ZW50aWFsIGlzc3VlKHMpIHRvIGNvbnNpZGVyOgoKTmV3IGlzc3VlczoKLSBbQ3JpdGlj YWxdIFVuY2xvY2tlZCBoYXJkd2FyZSByZWdpc3RlciBhY2Nlc3MgaW4gYHFtcF9jb21ib19jb21f aW5pdCgpYCBkdXJpbmcgVVNCNCBtb2RlIHNlbGVjdGlvbi4KLSBbSGlnaF0gRG91YmxlIGluaXRp YWxpemF0aW9uIG9mIHRoZSBVU0I0IFBIWSBoYXJkd2FyZSBpbiBgcW1wX2NvbWJvX3VzYjRfaW5p dCgpYC4KLSBbSGlnaF0gTG9ja2xlc3MgY2hlY2sgb2YgYHFtcHBoeV9tb2RlYCBpbiBgcW1wX2Nv bWJvX3R5cGVjX3N3aXRjaF9zZXQoKWAgbGVhZHMgdG8gYSBUT0NUT1UgcmFjZSBhbmQgdW5jb29y ZGluYXRlZCBQSFkgcmVzZXRzLgotIFtIaWdoXSBXaXBpbmcgVHlwZS1DIG9yaWVudGF0aW9uIHN0 YXRlIGR1cmluZyBVU0I0IG1vZGUgcGVybWFuZW50bHkgYnJlYWtzIHN1YnNlcXVlbnQgZmFsbGJh Y2sgdG8gVVNCMy4KLSBbSGlnaF0gU2lsZW50bHkgZHJvcHBpbmcgVHlwZS1DIG11eCBldmVudHMg ZHVyaW5nIFVTQjQgbW9kZSBwZXJtYW5lbnRseSBzdHJhbmRzIHRoZSBQSFkuCi0gW0hpZ2hdIFBN IHJ1bnRpbWUgbGVhayBvbiBgdXNiNF9waHlgIGNyZWF0aW9uIGZhaWx1cmUgaW4gYHFtcF9jb21i b19wcm9iZSgpYC4KLSBbSGlnaF0gSW5jb25zaXN0ZW50IFBDUyBzZWxlY3Rpb24gYmV0d2VlbiBg cG93ZXJfb25gIGFuZCBgcG93ZXJfb2ZmYCBsZWF2ZXMgdGhlIFVTQjQgUENTIHBlcm1hbmVudGx5 IHJ1bm5pbmcgb24gZXJyb3IgcGF0aHMuCgpQcmUtZXhpc3RpbmcgaXNzdWVzOgotIFtIaWdoXSBV bmJhbGFuY2VkIGBpbml0X2NvdW50YCBkZWNyZW1lbnQgb24gZXJyb3IgcGF0aCB3aGVuIGBmb3Jj ZSA9PSB0cnVlYCBpbiBgcW1wX2NvbWJvX2NvbV9pbml0KClgLgotIFtIaWdoXSBNaXNzaW5nIGBw aHlfbXV0ZXhgIGxvY2sgaW4gYHFtcF9jb21ib190eXBlY19tdXhfc2V0KClgIGNhdXNlcyB1bnNh ZmUgY29uY3VycmVudCBoYXJkd2FyZSBhY2Nlc3MuCi0gW01lZGl1bV0gRG91YmxlLWRpc2FibGUg b2YgYHBpcGVfY2xrYCBvbiBgcW1wX2NvbWJvX3VzYl9wb3dlcl9vbigpYCB0aW1lb3V0IGVycm9y LgotLQoKLS0tIFBhdGNoIFszXTogW1BBVENIIHY0IDMvNV0gcGh5OiBxdWFsY29tbTogcW1wLWNv bWJvOiBBZGQgcHJlbGltaW5hcnkgVVNCNCBzdXBwb3J0IC0tLQpjb21taXQgMWVkOWM4NDg1ZWQ2 OTdiNjQ0MDI1YmFkMTBlMjhkMWRlNmZkYTc0MApBdXRob3I6IEtvbnJhZCBEeWJjaW8gPGtvbnJh ZC5keWJjaW9Ab3NzLnF1YWxjb21tLmNvbT4KCnBoeTogcXVhbGNvbW06IHFtcC1jb21ibzogQWRk IHByZWxpbWluYXJ5IFVTQjQgc3VwcG9ydAoKU29tZSBDb21ibyBQSFlzIChzbyBmYXIgb25seSBv biBTQzgyODBYUCwgWDFFODAxMDAgYW5kIEdseW11ciksIGNvbWUgaW4KYSBmbGF2b3IgY2FsbGVk IFVTQjQzRFAsIHdoaWNoIGFzIHRoZSBuYW1lIGltcGxpZXMsIGZlYXR1cmVzIFVTQjQsIFVTQjMK YW5kIERQIHNpZ25hbCBwcm9jZXNzaW5nIGNhcGFiaWxpdGllcy4gSW4gdGhhdCBhcmNoaXRlY3R1 cmUsIFVTQjMgYW5kClVTQjQgUEhZcyBzaGFyZSB0aGUgc2FtZSBVU0JfUExMIHdoaWxlIGZlYXR1 cmluZyBzZXBhcmF0ZSBsb2dpYyBzcGFjZXMuCgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BoeS9x dWFsY29tbS9waHktcWNvbS1xbXAtY29tYm8uYyBiL2RyaXZlcnMvcGh5L3F1YWxjb21tL3BoeS1x Y29tLXFtcC1jb21iby5jCj4gaW5kZXggYzM5Y2VkMTY4ZDAzNS4uZGZkZWVjM2VlNGY1ZiAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL3BoeS9xdWFsY29tbS9waHktcWNvbS1xbXAtY29tYm8uYwo+ICsr KyBiL2RyaXZlcnMvcGh5L3F1YWxjb21tL3BoeS1xY29tLXFtcC1jb21iby5jClsgLi4uIF0KPiBA QCAtNDAxOSw2ICs0MDUyLDE2IEBAIHN0YXRpYyBpbnQgcW1wX2NvbWJvX2NvbV9pbml0KHN0cnVj dCBxbXBfY29tYm8gKnFtcCwgYm9vbCBmb3JjZSkKPiAgCWVsc2UKPiAgCQlhb25fdG9nZ2xlID0g cW1wLT5wY3NfYW9uOwo+ICAKPiArCWlmIChxbXAtPnFtcHBoeV9tb2RlID09IFFNUFBIWV9NT0RF X1VTQjQpIHsKPiArCQlwY3MgPSBxbXAtPnVzYjRfcGNzOwo+ICsKPiArCQlxcGh5X3NldGJpdHMo cGNzX2FvbiwgY2ZnLT5yZWdzW1FQSFlfUENTX1VTQjRfQ0xBTVBfRU5BQkxFXSwgQ0xBTVBfRU4p Owo+ICsKPiArCQkvKiBEbyBub3QgZGlzdHVyYiB0aGUgRFAgUExMIGluIGNhc2UgdGhlcmUncyBh biBhY3RpdmUgRFAgdHVubmVsICovCj4gKwkJaWYgKHJlYWRsKGNvbSArIFFQSFlfVjNfRFBfQ09N X1JFU0VUX09WUkRfQ1RSTCkgJiBEUF9UVU5ORUxJTkdfQ0xPQ0tfR0VOX0VOKQo+ICsJCQlkcF9y ZXNldF92YWwgJj0gflNXX0RQUEhZX1JFU0VUX01VWDsKPiArCX0KPiArCj4gIAlyZXQgPSByZWd1 bGF0b3JfYnVsa19lbmFibGUoY2ZnLT5udW1fdnJlZ3MsIHFtcC0+dnJlZ3MpOwo+ICAJaWYgKHJl dCkgewo+ICAJCWRldl9lcnIocW1wLT5kZXYsICJmYWlsZWQgdG8gZW5hYmxlIHJlZ3VsYXRvcnMs IGVycj0lZFxuIiwgcmV0KTsKCltTZXZlcml0eTogQ3JpdGljYWxdCkRvZXMgdGhpcyBjb2RlIGV4 ZWN1dGUgbWVtb3J5LW1hcHBlZCBJL08gcmVhZHMvd3JpdGVzIGJlZm9yZSB0aGUKY2xrX2J1bGtf cHJlcGFyZV9lbmFibGUoKSBjYWxsPwoKV2hlbiBxbXBfY29tYm9fcmVjb25maWd1cmVfcGh5KCkg c3dpdGNoZXMgdG8gUU1QUEhZX01PREVfVVNCNCwgaXQgY2FsbHMKcW1wX2NvbWJvX2NvbV9leGl0 KCkgdG8gdHVybiBvZmYgY2xvY2tzIGFuZCByZWd1bGF0b3JzLCB0aGVuIGNhbGxzCnFtcF9jb21i b19jb21faW5pdCgpLiBUaGVzZSByZWdpc3RlciBhY2Nlc3NlcyBoYXBwZW4gYmVmb3JlIHRoZSBj bG9ja3MKYW5kIHJlZ3VsYXRvcnMgYXJlIHJlLWVuYWJsZWQsIHdoaWNoIG1pZ2h0IGNhdXNlIGEg c3luY2hyb25vdXMgZXh0ZXJuYWwKYWJvcnQgb3IgYnVzIGVycm9yLgoKWyAuLi4gXQo+IEBAIC00 MjE5LDYgKzQyNzYsMTAgQEAgc3RhdGljIGludCBxbXBfY29tYm9fdXNiX3Bvd2VyX29uKHN0cnVj dCBwaHkgKnBoeSkKPiAgCXN0cnVjdCBxbXBfY29tYm8gKnFtcCA9IHBoeV9nZXRfZHJ2ZGF0YShw aHkpOwo+ICAJY29uc3Qgc3RydWN0IHFtcF9waHlfY2ZnICpjZmcgPSBxbXAtPmNmZzsKPiAgCXZv aWQgX19pb21lbSAqc2VyZGVzID0gcW1wLT5zZXJkZXM7Cj4gKwljb25zdCBzdHJ1Y3QgcW1wX3Bo eV9pbml0X3RibCAqcGNzX3RibDsKPiArCWNvbnN0IHN0cnVjdCBxbXBfcGh5X2luaXRfdGJsICpy eF90Ymw7Cj4gKwljb25zdCBzdHJ1Y3QgcW1wX3BoeV9pbml0X3RibCAqc2VyZGVzX3RibDsKPiAr CWNvbnN0IHN0cnVjdCBxbXBfcGh5X2luaXRfdGJsICp0eF90Ymw7Cj4gIAl2b2lkIF9faW9tZW0g KnR4ID0gcW1wLT50eDsKCltTZXZlcml0eTogTWVkaXVtXQpUaGlzIGlzIGEgcHJlLWV4aXN0aW5n IGlzc3VlLCBidXQgZG9lcyBhIHRpbWVvdXQgZXJyb3IgaGVyZSBjYXVzZSBhCmRvdWJsZS1kaXNh YmxlIG9mIHBpcGVfY2xrPwoKSWYgUEhZIGluaXRpYWxpemF0aW9uIHRpbWVzIG91dCBpbiBxbXBf Y29tYm9fdXNiX3Bvd2VyX29uKCksIGl0IGp1bXBzIHRvCmVycl9kaXNhYmxlX3BpcGVfY2xrOgoK ZHJpdmVycy9waHkvcXVhbGNvbW0vcGh5LXFjb20tcW1wLWNvbWJvLmM6cW1wX2NvbWJvX3VzYl9w b3dlcl9vbigpIHsKICAgIC4uLgplcnJfZGlzYWJsZV9waXBlX2NsazoKICAgIGNsa19kaXNhYmxl X3VucHJlcGFyZShxbXAtPnBpcGVfY2xrKTsKICAgIHJldHVybiByZXQ7Cn0KCkl0IHRoZW4gcmV0 dXJucyB0aGUgZXJyb3IgdG8gcW1wX2NvbWJvX3VzYl9pbml0KCksIHdoaWNoIGNhbGxzCnFtcF9j b21ib19jb21fZXhpdCgpLiBUaGUgZXhpdCBmdW5jdGlvbiB1bmNvbmRpdGlvbmFsbHkgZGlzYWJs ZXMKcGlwZV9jbGsgYWdhaW4sIHBvdGVudGlhbGx5IGxlYWRpbmcgdG8gYSBjbG9jayByZWZlcmVu Y2UgY291bnQgdW5kZXJmbG93LgoKWyAuLi4gXQo+IEBAIC00Mjc1LDE2ICs0MzY3LDIwIEBAIHN0 YXRpYyBpbnQgcW1wX2NvbWJvX3VzYl9wb3dlcl9vZmYoc3RydWN0IHBoeSAqcGh5KQo+ICB7Cj4g IAlzdHJ1Y3QgcW1wX2NvbWJvICpxbXAgPSBwaHlfZ2V0X2RydmRhdGEocGh5KTsKPiAgCWNvbnN0 IHN0cnVjdCBxbXBfcGh5X2NmZyAqY2ZnID0gcW1wLT5jZmc7Cj4gKwl2b2lkIF9faW9tZW0gKnBj cyA9IHFtcC0+cGNzOwo+ICsKPiArCWlmIChxbXAtPnVzYjRfaW5pdF9jb3VudCkKPiArCQlwY3Mg PSBxbXAtPnVzYjRfcGNzOwo+ICAKPiAgCS8qIFBIWSByZXNldCAqLwo+IC0JcXBoeV9zZXRiaXRz KHFtcC0+cGNzLCBjZmctPnJlZ3NbUVBIWV9TV19SRVNFVF0sIFNXX1JFU0VUKTsKCltTZXZlcml0 eTogSGlnaF0KQ2FuIHRoaXMgYXN5bW1ldHJ5IGxlYXZlIHRoZSBVU0I0IFBDUyBydW5uaW5nIG9u IGVycm9yIHBhdGhzPwoKSW4gcW1wX2NvbWJvX3VzYl9wb3dlcl9vbigpLCB0aGUgY29kZSB1c2Vz IHFtcHBoeV9tb2RlIHRvIHNlbGVjdCB1c2I0X3Bjcy4KSGVyZSwgcW1wX2NvbWJvX3VzYl9wb3dl cl9vZmYoKSB1c2VzIHVzYjRfaW5pdF9jb3VudCB0byBzZWxlY3QgaXQuCgpJZiBxbXBfY29tYm9f dXNiNF9pbml0KCkgZW5jb3VudGVycyBhIGZhaWx1cmUgYW5kIGVycm9ycyBvdXQsIGl0IGRvZXMg bm90CmluY3JlbWVudCB1c2I0X2luaXRfY291bnQuIEhvd2V2ZXIsIHRoZSBoYXJkd2FyZSB3YXMg YWxyZWFkeSBzdGFydGVkIGluIFVTQjQKbW9kZS4gQSBzdWJzZXF1ZW50IGNhbGwgdG8gcW1wX2Nv bWJvX3VzYl9leGl0KCkgd2lsbCBzZWUgdXNiNF9pbml0X2NvdW50ID09IDAKYW5kIG1pZ2h0IHBv d2VyIG9mZiB0aGUgVVNCMyBQQ1MgaW5zdGVhZCBvZiB0aGUgYWN0aXZlIFVTQjQgUENTLgoKWyAu Li4gXQo+ICtzdGF0aWMgaW50IHFtcF9jb21ib19yZWNvbmZpZ3VyZV9waHkoc3RydWN0IHFtcF9j b21ibyAqcW1wLCBlbnVtIHFtcHBoeV9tb2RlIG5ld19tb2RlKQo+ICt7Cj4gKwlkZXZfZGJnKHFt cC0+ZGV2LCAicW1wX2NvbWJvX3JlY29uZmlndXJlX3BoeTogc3dpdGNoaW5nIGZyb20gcW1wcGh5 IG1vZGUgJWQgdG8gJWRcbiIsCj4gKwkJcW1wLT5xbXBwaHlfbW9kZSwgbmV3X21vZGUpOwo+ICsK PiArCWlmIChxbXAtPnVzYl9pbml0X2NvdW50IHx8IHFtcC0+dXNiNF9pbml0X2NvdW50KQo+ICsJ CXFtcF9jb21ib191c2JfcG93ZXJfb2ZmKHFtcC0+dXNiX3BoeSk7Cj4gKwo+ICsJaWYgKHFtcC0+ ZHBfaW5pdF9jb3VudCkKPiArCQl3cml0ZWwoRFBfUEhZX1BEX0NUTF9QU1JfUFdSRE4sIHFtcC0+ ZHBfZHBfcGh5ICsgUVNFUkRFU19EUF9QSFlfUERfQ1RMKTsKPiArCj4gKwlxbXBfY29tYm9fY29t X2V4aXQocW1wLCB0cnVlKTsKPiArCj4gKwlxbXAtPnFtcHBoeV9tb2RlID0gbmV3X21vZGU7Cj4g Kwo+ICsJLyogTm93IGV2ZXJ5dGhpbmcncyBwb3dlcmVkIGRvd24sIHBvd2VyIHVwIHRoZSByaWdo dCBQSFlzICovCj4gKwlxbXBfY29tYm9fY29tX2luaXQocW1wLCB0cnVlKTsKCltTZXZlcml0eTog SGlnaF0KVGhpcyBpcyBhIHByZS1leGlzdGluZyBpc3N1ZSwgYnV0IGRvZXMgdGhlIGVycm9yIHBh dGggaW4gcW1wX2NvbWJvX2NvbV9pbml0KCkKY2F1c2UgYW4gdW5iYWxhbmNlZCBpbml0X2NvdW50 IGRlY3JlbWVudCB3aGVuIGZvcmNlID09IHRydWU/CgpJZiBmb3JjZSA9PSB0cnVlLCB0aGUgY29k ZSBza2lwcyBpbmNyZW1lbnRpbmcgcW1wLT5pbml0X2NvdW50LiBIb3dldmVyLCBpZiBhbnkKaW5p dGlhbGl6YXRpb24gc3RlcCBmYWlscywgdGhlIGZ1bmN0aW9uIGp1bXBzIHRvIGVycl9kZWNyZW1l bnRfY291bnQ6Cgpkcml2ZXJzL3BoeS9xdWFsY29tbS9waHktcWNvbS1xbXAtY29tYm8uYzpxbXBf Y29tYm9fY29tX2luaXQoKSB7CiAgICBpZiAoIWZvcmNlICYmIHFtcC0+aW5pdF9jb3VudCsrKQog ICAgICAgIHJldHVybiAwOwogICAgLi4uCiAgICByZXQgPSByZWd1bGF0b3JfYnVsa19lbmFibGUo Y2ZnLT5udW1fdnJlZ3MsIHFtcC0+dnJlZ3MpOwogICAgaWYgKHJldCkgewogICAgICAgIC4uLgog ICAgICAgIGdvdG8gZXJyX2RlY3JlbWVudF9jb3VudDsKICAgIH0KICAgIC4uLgplcnJfZGVjcmVt ZW50X2NvdW50OgogICAgcW1wLT5pbml0X2NvdW50LS07Cn0KClRoaXMgY291bGQgcHVzaCB0aGUg Y291bnRlciB0byAtMSwgd2hpY2ggZXZhbHVhdGVzIHRvIHRydWUgaW4gc3Vic2VxdWVudAppZiAo cW1wLT5pbml0X2NvdW50KyspIGNoZWNrcywgcG90ZW50aWFsbHkgYnlwYXNzaW5nIGhhcmR3YXJl IGluaXRpYWxpemF0aW9uLgoKWyAuLi4gXQo+ICsJaWYgKChxbXAtPnVzYl9pbml0X2NvdW50IHx8 IHFtcC0+dXNiNF9pbml0X2NvdW50KSAmJgo+ICsJICAgIG5ld19tb2RlICE9IFFNUFBIWV9NT0RF X0RQX09OTFkpCj4gKwkJcW1wX2NvbWJvX3VzYl9wb3dlcl9vbihxbXAtPnVzYl9waHkpOwo+ICsK PiArCWlmICgobmV3X21vZGUgPT0gUU1QUEhZX01PREVfVVNCM0RQIHx8IG5ld19tb2RlID09IFFN UFBIWV9NT0RFX0RQX09OTFkpICYmCj4gKwkgICAgcW1wLT5kcF9pbml0X2NvdW50KQo+ICsJCXFt cC0+Y2ZnLT5kcF9hdXhfaW5pdChxbXApOwo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICtz dGF0aWMgaW50IHFtcF9jb21ib191c2I0X2luaXQoc3RydWN0IHBoeSAqcGh5KQo+ICt7Cj4gKwlz dHJ1Y3QgcW1wX2NvbWJvICpxbXAgPSBwaHlfZ2V0X2RydmRhdGEocGh5KTsKPiArCWludCByZXQ7 ClsgLi4uIF0KPiArCS8qIFVTQjQgbW9kZSB0YWtlcyBwcmVjZWRlbmNlIHRvIFVTQjMoK0RQKSwg Zm9yY2UgcmVjb25maWd1cmUgdGhlIFBIWSAqLwo+ICsJcmV0ID0gcW1wX2NvbWJvX3JlY29uZmln dXJlX3BoeShxbXAsIFFNUFBIWV9NT0RFX1VTQjQpOwo+ICsJaWYgKHJldCkgewo+ICsJCWNsa19k aXNhYmxlX3VucHJlcGFyZShxbXAtPnAycnIycF9waXBlX2Nsayk7Cj4gKwkJcW1wX2NvbWJvX2Nv bV9leGl0KHFtcCwgZmFsc2UpOwo+ICsJCXJldHVybiByZXQ7Cj4gKwl9Cj4gKwo+ICsJcmV0ID0g cW1wX2NvbWJvX3VzYl9wb3dlcl9vbihwaHkpOwoKW1NldmVyaXR5OiBIaWdoXQpEb2VzIHRoaXMg Y29kZSBmb3JjZSBhIHJlZHVuZGFudCBoYXJkd2FyZSBwb3dlci1vbiBzZXF1ZW5jZSBvbiB0aGUg c2FtZQpwaHlzaWNhbCBibG9jaz8KCldoZW4gcW1wX2NvbWJvX3JlY29uZmlndXJlX3BoeSgpIGlz IGNhbGxlZCwgaXQgYWxyZWFkeSBjYWxscwpxbXBfY29tYm9fdXNiX3Bvd2VyX29uKHFtcC0+dXNi X3BoeSkgaWYgdGhlIFVTQiBQSFkgd2FzIGFjdGl2ZS4gV2hlbiBleGVjdXRpb24KcmV0dXJucyB0 byBxbXBfY29tYm9fdXNiNF9pbml0KCksIGl0IHVuY29uZGl0aW9uYWxseSBjYWxscwpxbXBfY29t Ym9fdXNiX3Bvd2VyX29uKHBoeSkgYWdhaW4uIFRoaXMgd3JpdGVzIGluaXRpYWxpemF0aW9uIHNl cXVlbmNlcyBhbmQKU1RBUlQgYml0cyB0d2ljZSB0byBhIHJ1bm5pbmcgUEhZIHdpdGhvdXQgYSBw b3dlciBjeWNsZS4KClsgLi4uIF0KPiBAQCAtNDc3OSwyNCArNTAxOSwyOSBAQCBzdGF0aWMgaW50 IHFtcF9jb21ib190eXBlY19zd2l0Y2hfc2V0KHN0cnVjdCB0eXBlY19zd2l0Y2hfZGV2ICpzdywK PiAgCXN0cnVjdCBxbXBfY29tYm8gKnFtcCA9IHR5cGVjX3N3aXRjaF9nZXRfZHJ2ZGF0YShzdyk7 Cj4gIAljb25zdCBzdHJ1Y3QgcW1wX3BoeV9jZmcgKmNmZyA9IHFtcC0+Y2ZnOwo+ICAKPiArCWlm IChxbXAtPnFtcHBoeV9tb2RlID09IFFNUFBIWV9NT0RFX1VTQjQpIHsKPiArCQkvKiBRTVBQSFkg aGFzIG5vIG9yaWVudGF0aW9uIGhhbmRsaW5nIGluIFVTQjQgbW9kZSwgZG9uJ3QgY2FjaGUgdGhl IHNldHRpbmcgKi8KPiArCQlxbXAtPm9yaWVudGF0aW9uID0gVFlQRUNfT1JJRU5UQVRJT05fTk9O RTsKPiArCQlyZXR1cm4gMDsKPiArCX0KPiArCgpbU2V2ZXJpdHk6IEhpZ2hdCkNvdWxkIHRoaXMg ZGVzdHJ1Y3RpdmVseSBjbGVhciB0aGUgVHlwZS1DIG9yaWVudGF0aW9uIHN0YXRlLCBjYXVzaW5n IHN0YXRlCmxvc3MgdXBvbiBmYWxsYmFjayB0byBVU0IzPwoKSWYgcW1wX2NvbWJvX3R5cGVjX3N3 aXRjaF9zZXQoKSBmb3JjZXMgcW1wLT5vcmllbnRhdGlvbiA9IFRZUEVDX09SSUVOVEFUSU9OX05P TkUsCmFuZCBsYXRlciB0aGUgcG9ydCBmYWxscyBiYWNrIHRvIFVTQjMsIHRoZSBUQ1BNIGlzc3Vl cyBhIHN3aXRjaF9zZXQgKHdoaWNoCm1heSBkcm9wIHRoZSBvcmllbnRhdGlvbiBkdWUgdG8gc3Rh bGUgbW9kZSkgZm9sbG93ZWQgYnkgbXV4X3NldChVU0IzKS4gVGhlIFBIWQptaWdodCB0aGVuIGNv bmZpZ3VyZSBmb3IgVVNCMyB3aXRoIE5PUk1BTCBvcmllbnRhdGlvbiwgY2F1c2luZyB0aGUgbGlu ayB0bwpmYWlsIGlmIHRoZSBjYWJsZSBpcyBwaHlzaWNhbGx5IFJFVkVSU0UuCgpbU2V2ZXJpdHk6 IEhpZ2hdCklzIHFtcHBoeV9tb2RlIHVuc2FmZWx5IGFjY2Vzc2VkIG91dHNpZGUgdGhlIGxvY2sg aGVyZT8KClRoZSBjaGVjayBmb3IgcW1wcGh5X21vZGUgaXMgZG9uZSBiZWZvcmUgYWNxdWlyaW5n IHFtcC0+cGh5X211dGV4LiBJZgpxbXBfY29tYm9fdXNiNF9pbml0KCkgaXMgZXhlY3V0aW5nIGNv bmN1cnJlbnRseSwgaXQgY2FuIGhvbGQgdGhlIG11dGV4IGFuZApjaGFuZ2UgdGhlIG1vZGUgdG8g UU1QUEhZX01PREVfVVNCNC4gSWYgc3dpdGNoX3NldCgpIGV2YWx1YXRlcyB0aGUgbW9kZSBiZWZv cmUKdGhpcyBoYXBwZW5zLCBpdCB3aWxsIGJsb2NrIG9uIHRoZSBtdXRleCBhbmQgZXhlY3V0ZSBh IGZ1bGwgaGFyZHdhcmUgcG93ZXIKY3ljbGUgd2hpbGUgdGhlIGhvc3Qgcm91dGVyIGRyaXZlciBl eHBlY3RzIGV4Y2x1c2l2ZSBtYW51YWwgY29udHJvbCBvdmVyIHRoZQpVU0I0IFBIWS4KCj4gIAlp ZiAob3JpZW50YXRpb24gPT0gcW1wLT5vcmllbnRhdGlvbiB8fCBvcmllbnRhdGlvbiA9PSBUWVBF Q19PUklFTlRBVElPTl9OT05FKQo+ICAJCXJldHVybiAwOwo+ICAKPiAtCW11dGV4X2xvY2soJnFt cC0+cGh5X211dGV4KTsKPiArCWd1YXJkKG11dGV4KSgmcW1wLT5waHlfbXV0ZXgpOwoKWyAuLi4g XQo+IEBAIC00ODA0LDcgKzUwNDksNiBAQCBzdGF0aWMgaW50IHFtcF9jb21ib190eXBlY19zd2l0 Y2hfc2V0KHN0cnVjdCB0eXBlY19zd2l0Y2hfZGV2ICpzdywKPiAgc3RhdGljIGludCBxbXBfY29t Ym9fdHlwZWNfbXV4X3NldChzdHJ1Y3QgdHlwZWNfbXV4X2RldiAqbXV4LCBzdHJ1Y3QgdHlwZWNf bXV4X3N0YXRlICpzdGF0ZSkKPiAgewo+ICAJc3RydWN0IHFtcF9jb21ibyAqcW1wID0gdHlwZWNf bXV4X2dldF9kcnZkYXRhKG11eCk7Cj4gLQljb25zdCBzdHJ1Y3QgcW1wX3BoeV9jZmcgKmNmZyA9 IHFtcC0+Y2ZnOwo+ICAJZW51bSBxbXBwaHlfbW9kZSBuZXdfbW9kZTsKPiAgCXVuc2lnbmVkIGlu dCBzdmlkOwo+ICAKPiBAQCAtNDgxNSw2ICs1MDU5LDI5IEBAIHN0YXRpYyBpbnQgcW1wX2NvbWJv X3R5cGVjX211eF9zZXQoc3RydWN0IHR5cGVjX211eF9kZXYgKm11eCwgc3RydWN0IHR5cGVjX211 eF9zCj4gIAllbHNlCj4gIAkJc3ZpZCA9IDA7Cj4gIAo+ICsJLyoKPiArCSAqIFRoZSBVU0I0IHJv dXRlciBkcml2ZXIgbXVzdCBleGNlcmNpc2UgZmluZS1ncmFpbmVkIGNvbnRyb2wgb3ZlciB0aGUg dGltaW5nIG9mCj4gKwkgKiBVU0I0IFFNUFBIWSBtb2RlIGVudHJ5L2V4aXQsIHdoaWNoIGlzIGRp ZmZpY3VsdCB0byBvdGhlcndpc2UgZW5zdXJlIHdpdGhpbiBMaW51eCdzCj4gKwkgKiBUeXBlLUMg ZnJhbWV3b3JrIGlmIHRoZSBQSFkgYWN0cyBhcyBhIHNlbGYtZGVjaXNpdmUgbW9kZSBtdXggaW4g cGFyYWxsZWwuCj4gKwkgKgo+ICsJICogS2VlcCB0aGUgaGFyZHdhcmUgaW4gUU1QUEhZX01PREVf VVNCNCBhdCBhbGwgdGltZXMgYmV0d2VlbiAuaW5pdCBhbmQgLmV4aXQgb2YgdGhlCj4gKwkgKiAo TGludXgpIFVTQjQgUEhZIGFuZCB3YWl0IGZvciB0aGUgcm91dGVyIGRyaXZlciB0byB0dXJuIGl0 IG9mZiBhdCBpdHMgZGlzY3JldGlvbi4KPiArCSAqIE9uY2UgdGhhdCBoYXBwZW5zLCBmYWxsIGJh Y2sgdG8gdGhlIHVzdWFsIFVTQjMvRFAvQ29tYm8gbW9kZSBsb2dpYy4KPiArCSAqCj4gKwkgKiBB ZnRlciB0aGUgUU1QUEhZIGhhcyBiZWVuIHR1cm5lZCBvZmYgdGhyb3VnaCBwaHlfZXhpdCh1c2I0 X3BoeSksIHRoZSBuZXh0IG11eF9zZXQKPiArCSAqIHdpbGwgaW5pdGlhbGl6ZSBpdCBpbiB0aGUg cmlnaHQgbW9kZS4KPiArCSAqLwo+ICsJaWYgKHFtcC0+dXNiNF9pbml0X2NvdW50KQo+ICsJCXJl dHVybiAwOwoKW1NldmVyaXR5OiBIaWdoXQpXaWxsIHJldHVybmluZyAwIGhlcmUgc2lsZW50bHkg ZHJvcCBUeXBlLUMgbXV4IGV2ZW50cyBhbmQgcGVybWFuZW50bHkgc3RyYW5kCnRoZSBQSFkgaW4g VVNCNCBtb2RlPwoKSWYgVENQTSBpc3N1ZXMgbXV4X3NldChVU0IzKSBiZWZvcmUgdGhlIFVTQjQg cm91dGVyIGRyaXZlciBoYXMgZmluaXNoZWQgaXRzCnRlYXJkb3duICh3aGlsZSB1c2I0X2luaXRf Y291bnQgPiAwKSwgdGhlIGV2ZW50IGlzIHNpbGVudGx5IGlnbm9yZWQuIFdoZW4KdXNiNF9leGl0 KCkgZXZlbnR1YWxseSBydW5zLCBpdCBsZWF2ZXMgdGhlIFBIWSBwb3dlcmVkIG9mZiwgYnV0IHRo ZSBUQ1BNCmJlbGlldmVzIHRoZSBVU0IzIHRyYW5zaXRpb24gYWxyZWFkeSBzdWNjZWVkZWQgYW5k IG1pZ2h0IG5vdCByZXNlbmQgaXQuCgpbIC4uLiBdCj4gLQkJaWYgKG5ld19tb2RlID09IFFNUFBI WV9NT0RFX0RQX09OTFkgfHwgbmV3X21vZGUgPT0gUU1QUEhZX01PREVfVVNCM0RQKSB7Cj4gLQkJ CWlmIChxbXAtPmRwX2luaXRfY291bnQpCj4gLQkJCQljZmctPmRwX2F1eF9pbml0KHFtcCk7Cj4g LQkJfQo+IC0JfQo+ICsJLyogVGhlIG11eCBzdGlsbCByZWNlaXZlcyBUeXBlLUMgZXZlbnRzLCBl dmVuIGlmIGFsbCBQSFlzIGFyZSB1bmluaXRpYWxpemVkICovCj4gKwlpZiAoIXFtcC0+aW5pdF9j b3VudCkKPiArCQlyZXR1cm4gMDsKPiAgCj4gLQlyZXR1cm4gMDsKPiArCXJldHVybiBxbXBfY29t Ym9fcmVjb25maWd1cmVfcGh5KHFtcCwgbmV3X21vZGUpOwo+ICB9CgpbU2V2ZXJpdHk6IEhpZ2hd ClRoaXMgaXMgYSBwcmUtZXhpc3RpbmcgaXNzdWUsIGJ1dCBkb2VzIG1pc3NpbmcgYSBsb2NrIGhl cmUgY2F1c2UgdW5zYWZlCmNvbmN1cnJlbnQgaGFyZHdhcmUgYWNjZXNzPwoKcW1wX2NvbWJvX3R5 cGVjX211eF9zZXQoKSBkaXJlY3RseSBpbnZva2VzIHFtcF9jb21ib19yZWNvbmZpZ3VyZV9waHko KSwKd2hpY2ggbW9kaWZpZXMgc2hhcmVkIHN0YXRlIChxbXBwaHlfbW9kZSwgdXNiX2luaXRfY291 bnQpIGFuZCBwZXJmb3JtcwpmdWxsIGhhcmR3YXJlIHBvd2VyIGN5Y2xlcy4gVGhpcyBmdW5jdGlv biBkb2VzIG5vdCBob2xkIHFtcC0+cGh5X211dGV4LAptZWFuaW5nIGNvbmN1cnJlbnQgZXhlY3V0 aW9uIHdpdGggdXNiNF9pbml0IG9yIHVzYl9pbml0IGNvdWxkIGNhdXNlCnNpbXVsdGFuZW91cyB1 bmNvb3JkaW5hdGVkIFBIWSByZWdpc3RlciB3cml0ZXMuCgpbIC4uLiBdCj4gQEAgLTUzMjUsNiAr NTU3MywxNyBAQCBzdGF0aWMgaW50IHFtcF9jb21ib19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2 aWNlICpwZGV2KQo+ICAKPiAgCXBoeV9zZXRfZHJ2ZGF0YShxbXAtPmRwX3BoeSwgcW1wKTsKPiAg Cj4gKwlpZiAocW1wLT5jZmctPnVzYjRfc2VyZGVzX3RibCkgewo+ICsJCXFtcC0+dXNiNF9waHkg PSBkZXZtX3BoeV9jcmVhdGUoZGV2LCBkZXYtPm9mX25vZGUsICZxbXBfY29tYm9fdXNiNF9waHlf b3BzKTsKPiArCQlpZiAoSVNfRVJSKHFtcC0+dXNiNF9waHkpKSB7Cj4gKwkJCXJldCA9IFBUUl9F UlIocW1wLT51c2I0X3BoeSk7Cj4gKwkJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGNyZWF0ZSBV U0I0IFBIWTogJWRcbiIsIHJldCk7Cj4gKwkJCWdvdG8gZXJyX25vZGVfcHV0Owo+ICsJCX0KCltT ZXZlcml0eTogSGlnaF0KRG9lcyB0aGlzIGp1bXAgYnlwYXNzIHRoZSBwbV9ydW50aW1lX3B1dF9u b2lkbGUoKSBjbGVhbnVwPwoKSW4gcW1wX2NvbWJvX3Byb2JlKCksIHRoZSBkZXZpY2UgYWNxdWly ZXMgYSBQTSBydW50aW1lIHJlZmVyZW5jZS4gSWYKZGV2bV9waHlfY3JlYXRlKCkgZm9yIHVzYjRf cGh5IGZhaWxzLCB0aGUgY29kZSBleGVjdXRlcyBnb3RvIGVycl9ub2RlX3B1dC4KVGhpcyBieXBh c3NlcyB0aGUgZXJyX3BtX3B1dCBsYWJlbCwgbGVha2luZyB0aGUgUE0gcnVudGltZSByZWZlcmVu Y2UgYW5kCnByZXZlbnRpbmcgdGhlIGRldmljZSBmcm9tIHN1c3BlbmRpbmcuCgotLSAKU2FzaGlr byBBSSByZXZpZXcgwrcgaHR0cHM6Ly9zYXNoaWtvLmRldi8jL3BhdGNoc2V0LzIwMjYwODIwLXRv cGljLXVzYjRwaHktdjQtMC1hZWM5ZDJjYjMxZjZAb3NzLnF1YWxjb21tLmNvbT9wYXJ0PTMKCi0t IApsaW51eC1waHkgbWFpbGluZyBsaXN0CmxpbnV4LXBoeUBsaXN0cy5pbmZyYWRlYWQub3JnCmh0 dHBzOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXBoeQo=