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 6652ECCF2D3 for ; Sun, 18 Oct 2026 06:45:53 +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:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Cc:To:From:Subject:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=WznxtOEMy3mUe47E0/K5vDYMItuUSBvjMb3O+gDdBX4=; b=b1mWiR1+QdjjPn QSOgvAB7lTkx70RNhvxF9hNwx2Xw6oYo9VJfE+XLRGxwhwZz92qr78ewFwwSKETtSIxmZYgnStUwj oSy63gKeup/hNx5wXtSdRxJ7ZE/WUWJu+Sy3NAFKlQeGMplRktmpvVo2KoTx0t3kmpFXWjvl+GQpb 3SInCwqedBFd4B+RU6o1Xb461mE4hqcfLEbfmKeP/s2Oe6BGRufUc88eLaYimp9KymTWYE0vO5jsJ csmIK/vC05Hb8Bup5C2e/Dg0SkqgqjgllXkYspOYoccer3aVpG/NHdSJh6g5pOVIP/VRjXmkf5DHF KXaj1XjF2mjC4rBkmaUg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1xIKeO-00000005dpP-2fo4; Sun, 18 Oct 2026 06:45:44 +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 1xIKeF-00000005djR-2HZL; Sun, 18 Oct 2026 06:45:35 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by sea.source.kernel.org (Postfix) with ESMTP id 4D8634451E; Sun, 18 Oct 2026 06:45:35 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 286E31F000C4; Sun, 18 Oct 2026 06:45:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1792305935; bh=5fOP/bMQXaA7taKz4VSpGw2+M+edO4QsSogcgYJEQgU=; h=Subject:From:To:Cc:Date:In-Reply-To:References; b=l7TiaQovMwgw7yDhFnQaELZKPzPGjLxyK8FRg14brB/pN2QmUhPhndHIcTHYH+ISD ft2+aqncxJLOiYtHWQgN0dMCbw3/oziWmdokHhJt2y9lIfwTn/CSOs3DqHXAxkSO2G tF/GVW0ywVDqH72/TDDyMxra6aO6kHRbY/TwoIBfO45WkBaHjMpMd0tlR2bcLckplH iqh9L+BXyJVzBlBJ/Nxtijjm5zamPc2wMfmWjXvKen5zBmGhDFZaeAqcsnfbOaCUK4 CJ66hf0Coit5bYZCQAsvq7UI5Bvnv5HlrlJ3p+ygvdHFL6n3KPmQOBdCEtIZfVBhSE 56+Jf0R1HUTHQ== Subject: Re: [PATCH net-next v12 5/6] net: stmmac: dwmac-rk: add SGMII support for RK3568 From: netdev-bot+sashiko@kernel.org To: coiaprant@gmail.com Cc: kuba@kernel.org, netdev@vger.kernel.org, andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@kernel.org, pabeni@redhat.com, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, heiko@sntech.de, maxime.chevallier@bootlin.com, mcoquelin.stm32@gmail.com, alexandre.torgue@foss.st.com, hkallweit1@gmail.com, linux@armlinux.org.uk, david.wu@rock-chips.com, linux-rockchip@lists.infradead.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Date: Sun, 18 Oct 2026 06:45:33 +0000 Message-ID: <179230593374.3135.1162107426363265471@kernel.org> In-Reply-To: <20261017054406.1828061-6-coiaprant@gmail.com> References: <20261017054406.1828061-6-coiaprant@gmail.com> X-sashiko-severity: Medium MIME-Version: 1.0 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-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org VGhhbmsgeW91IGZvciB5b3VyIGNvbnRyaWJ1dGlvbiEgU2FzaGlrbyBBSSByZXZpZXcgZm91bmQg MyBwb3RlbnRpYWwKaXNzdWUocykgdG8gY29uc2lkZXIuCgpDcml0aWNhbDogMCDCtyBIaWdoOiAw IMK3IE1lZGl1bTogMyAoMikgwrcgTG93OiAwCgpJZiB5b3UgYmVsaWV2ZSBub25lIG9mIHRoZSBp c3N1ZXMgYXJlIGxlZ2l0aW1hdGUsIHBsZWFzZSByZXBseSB0byBlYWNoCmlzc3VlIG9mIE1lZGl1 bSBzZXZlcml0eSBvciBoaWdoZXIgYW5kIGV4cGxhaW4gd2h5IHRoZSBBSSBpcyB3cm9uZy4KSWYg YW55IG9mIHRoZW0gYXJlIGxlZ2l0aW1hdGUgYW5kIHlvdSBwbGFuIHRvIHJlc3BpbiwgcGxlYXNl IGxldCBwYXRjaHdvcmsKa25vdyBieSBpbmNsdWRpbmcgInB3LWJvdDogY3IiIGFzIGEgc2VwYXJh dGUgbGluZSBhdCB0aGUgZW5kIG9mIHlvdXIgcmVwbHkKKG9uZSBzdWNoIHJlcGx5IHBlciBzZXJp ZXMgaXMgZW5vdWdoKS4KCi0gW01lZGl1bV0gT24gU0dNSUksIHBoeWxpbmsgaXMgb2ZmZXJlZCBt b3JlIGludGVyZmFjZSBtb2RlcyB0aGFuIHRoZQogIFJLMzU2OCBnbHVlIGNhbiBjb25maWd1cmUu Ci0gW01lZGl1bV0gVGhlIGNvbW1pdCBtZXNzYWdlIHNheXMgb3V0LW9mLWJhbmQgU0dNSUkgYXQg MTAvMTAwIGdpdmVzCiAgd29ya2luZyBUWCBhbmQgZmFpbGluZyBSWCBvbiBSSzM1NjgsIGJlY2F1 c2UgdGhlIE1BQyBjbG9jayBpcyBmaXhlZCBhdOKApgotIFtNZWRpdW1dIFRoZSBuZXcgU0dNSUkg cGF0aCBjYW5ub3Qgb3BlbiBhIFBIWS1sZXNzIGluLWJhbmQgbGluaywgc3VjaAogIGFzIGEgZGly ZWN0IFNHTUlJIGNvbm5lY3Rpb24gdG8gYSBzd2l0Y2ggd2l0aCBtYW5hZ2VkID0gImluLWJhbmQt 4oCmCgpQcmUtZXhpc3RpbmcgaXNzdWVzOgotIFtNZWRpdW1dIFRoaXMgcHJvYmxlbSB3YXNuJ3Qg aW50cm9kdWNlZCBieSB0aGlzIHBhdGNoLCBidXQKICBya19nbWFjX3Jlc3VtZSgpIHRocm93cyBh d2F5IHRoZSByZXR1cm4gdmFsdWUgb2YgcmtfZ21hY19wb3dlcnVwKCkgYW5k4oCmCi0gW01lZGl1 bV0gVGhpcyBwcm9ibGVtIHdhc24ndCBpbnRyb2R1Y2VkIGJ5IHRoaXMgcGF0Y2gsIGJ1dAogIF9f c3RtbWFjX2R2cl9wcm9iZSgpIGNhbGxzIHBtX3J1bnRpbWVfZ2V0X25vcmVzdW1lKCks4oCmCgot LQoKbmV0OiBzdG1tYWM6IGR3bWFjLXJrOiBhZGQgU0dNSUkgc3VwcG9ydCBmb3IgUkszNTY4CgpU aGlzIHBhdGNoIGFkZHMgU0dNSUkgc3VwcG9ydCB0byB0aGUgUkszNTY4IGR3bWFjLXJrIGdsdWUu IEl0IHNldHMgdGhlCkdSRiBtb2RlIGJpdCBhbmQgY3JlYXRlcyB0aGUgUm9ja2NoaXAgWFBDUyB0 aHJvdWdoIHhwY3NfcmtfY3JlYXRlKCkgaW4KbmV3IHBjc19pbml0L3Bjc19leGl0L3NlbGVjdF9w Y3MgY2FsbGJhY2tzLCBhbmQgaXQgYXNrcyBmb3IgaW4tYmFuZCBtb2RlCnZpYSBkZWZhdWx0X2Fu X2luYmFuZC4gSXQgYWxzbyByZW9yZGVycyBya19nbWFjX3Bvd2VydXAoKSBzbyB0aGUgY2xvY2tz CmFyZSBlbmFibGVkIGJlZm9yZSB0aGUgU0dNSUkgY2hlY2ssIGFuZCBpdCBtZXJnZXMgdGhlIGVy cm9yIHVud2luZGluZwppbnRvIG9uZSBjbGtfZGlzYWJsZSBsYWJlbC4KCkxpbms6IGh0dHBzOi8v ZGwucmFkeGEuY29tL3JvY2szL2RvY3MvaHcvZGF0YXNoZWV0L1JvY2tjaGlwJTIwUkszNTY4JTIw VFJNJTIwUGFydDElMjBWMS4xLTIwMjEwMzAxLnBkZiAoUGFnZSAzODYpCgo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yay5jIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmsuYwo+IGluZGV4IDcyYmRiY2I1 ZTg2M2EuLmM0ZGI5MTllYzE2NDAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQv c3RtaWNyby9zdG1tYWMvZHdtYWMtcmsuYwo+ICsrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0 bWljcm8vc3RtbWFjL2R3bWFjLXJrLmMKClsgLi4uIF0KCj4gQEAgLTEyMTEsNiArMTIzOSw0NCBA QCBzdGF0aWMgdm9pZCBya19waHlfcG93ZXJkb3duKHN0cnVjdCBya19wcml2X2RhdGEgKmJzcF9w cml2KQo+ICAJCWRldl9lcnIoYnNwX3ByaXYtPmRldiwgImZhaWwgdG8gZGlzYWJsZSBwaHktc3Vw cGx5XG4iKTsKPiAgfQo+ICAKPiArc3RhdGljIGludCBya19wY3NfaW5pdChzdHJ1Y3Qgc3RtbWFj X3ByaXYgKnByaXYpCj4gK3sKPiArCXN0cnVjdCBya19wcml2X2RhdGEgKmJzcF9wcml2ID0gcHJp di0+cGxhdC0+YnNwX3ByaXY7Cj4gKwlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUgPSBwcml2LT5k ZXZpY2UtPm9mX25vZGU7Cj4gKwlzdHJ1Y3QgZGV2aWNlX25vZGUgKnBjc19ub2RlOwo+ICsJc3Ry dWN0IGR3X3hwY3MgKnhwY3M7Cj4gKwo+ICsJcGNzX25vZGUgPSBvZl9wYXJzZV9waGFuZGxlKG5v ZGUsICJwY3MtaGFuZGxlIiwgMCk7Cj4gKwlpZiAoIXBjc19ub2RlKQo+ICsJCXJldHVybiAtRU5P REVWOwo+ICsKPiArCXhwY3MgPSB4cGNzX3JrX2NyZWF0ZShwcml2LT5kZXZpY2UsIHBjc19ub2Rl LCBic3BfcHJpdi0+aWQpOwo+ICsJb2Zfbm9kZV9wdXQocGNzX25vZGUpOwo+ICsJaWYgKElTX0VS Uih4cGNzKSkKPiArCQlyZXR1cm4gUFRSX0VSUih4cGNzKTsKCltTZXZlcml0eTogTWVkaXVtXQpU aGlzIGlzIGEgcHJlLWV4aXN0aW5nIGlzc3VlIGluIHRoZSBzdG1tYWMgY29yZSwgYnV0IHRoaXMg bmV3IHBhdGggc2VlbXMKdG8gbWFrZSBpdCBtdWNoIGVhc2llciB0byBoaXQuIHhwY3NfcmtfY3Jl YXRlKCkgcmV0dXJucyAtRVBST0JFX0RFRkVSCnVudGlsIHRoZSBYUENTIGlzIGJvdW5kLiBmd19k ZXZsaW5rIGRvZXMgbm90IGFwcGVhciB0byB0cmFjayBwY3MtaGFuZGxlLApzbyB0aGUgTUFDIGNh biBwcm9iZSBmaXJzdC4KCl9fc3RtbWFjX2R2cl9wcm9iZSgpIHRha2VzIGEgcnVudGltZSBQTSBy ZWZlcmVuY2UgYmVmb3JlCnN0bW1hY19wY3Nfc2V0dXAoKToKCmRyaXZlcnMvbmV0L2V0aGVybmV0 L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6X19zdG1tYWNfZHZyX3Byb2JlKCkgewogICAg Li4uCglwbV9ydW50aW1lX2dldF9ub3Jlc3VtZShkZXZpY2UpOwoJcG1fcnVudGltZV9zZXRfYWN0 aXZlKGRldmljZSk7CglpZiAoIXBtX3J1bnRpbWVfZW5hYmxlZChkZXZpY2UpKQoJCXBtX3J1bnRp bWVfZW5hYmxlKGRldmljZSk7CiAgICAuLi4KZXJyb3JfcGNzX3NldHVwOgoJc3RtbWFjX21kaW9f dW5yZWdpc3RlcihuZGV2KTsKICAgIC4uLgp9CgpUaGUgdW53aW5kIGxhYmVscyBuZXZlciBkcm9w IHRoYXQgcmVmZXJlbmNlIGFuZCBuZXZlciBkaXNhYmxlIHJ1bnRpbWUgUE0uCgpEb2VzIGVhY2gg ZGVmZXJyZWQgcHJvYmUgYXR0ZW1wdCBsZWFrIG9uZSB1c2FnZSBjb3VudCBvbiB0aGUgR01BQyBk ZXZpY2U/ClJ1bnRpbWUgUE0gaXMgbGVmdCBlbmFibGVkLCBzbyBwbV9ydW50aW1lX3JlaW5pdCgp IHdvdWxkIG5vdCByZXNldCB0aGUKY291bnQuIEFmdGVyIHRoZSBldmVudHVhbCBzdWNjZXNzZnVs IHByb2JlLCB0aGUgR01BQyB3b3VsZCB0aGVuIG5ldmVyCnJ1bnRpbWUgc3VzcGVuZCBhbmQgaXRz IGNsb2NrcyB3b3VsZCBzdGF5IG9uLgoKPiArCj4gKwlwcml2LT5ody0+eHBjcyA9IHhwY3M7Cj4g KwlyZXR1cm4gMDsKPiArfQoKW1NldmVyaXR5OiBNZWRpdW1dCkRvZXMgdGhpcyB3b3JrIGZvciBh IFBIWS1sZXNzIGluLWJhbmQgbGluaz8gQW4gZXhhbXBsZSB3b3VsZCBiZQpwaHktbW9kZSA9ICJz Z21paSIgd2l0aCBtYW5hZ2VkID0gImluLWJhbmQtc3RhdHVzIiwgYSBwY3MtaGFuZGxlIGFuZCBu bwpwaHktaGFuZGxlLgoKVGhlIFBDUyBpcyBvbmx5IHN0b3JlZCBpbiBwcml2LT5ody0+eHBjcywg c28gaHctPnBoeWxpbmtfcGNzIHN0YXlzIE5VTEwuCkluIHN0bW1hY19pbml0X3BoeSgpLCBwaHls aW5rX2V4cGVjdHNfcGh5KCkgaXMgdHJ1ZSBmb3IgTUxPX0FOX0lOQkFORCwKYW5kIHRoZSB4cGNz IGJ5cGFzcyBvbmx5IGNvdmVycyBjbGF1c2UgNzM6Cgpkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1p Y3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOnN0bW1hY19pbml0X3BoeSgpIHsKICAgIC4uLgoJaWYg KHByaXYtPmh3LT54cGNzICYmCgkgICAgeHBjc19nZXRfYW5fbW9kZShwcml2LT5ody0+eHBjcywg bW9kZSkgPT0gRFdfQU5fQzczKQoJCXJldHVybiAwOwogICAgLi4uCgkJaWYgKGFkZHIgPCAwKSB7 CgkJCS8qIElmIGEgY3VzdG9tIFBDUyBpcyBpbiB1c2UsIG5vIFBIWSBpcyBuZWVkZWQgKi8KCQkJ aWYgKHByaXYtPmh3LT5waHlsaW5rX3BjcykKCQkJCXJldHVybiAwOwoKCQkJbmV0ZGV2X2Vycihw cml2LT5kZXYsICJubyBwaHkgZm91bmRcbiIpOwoJCQlyZXR1cm4gLUVOT0RFVjsKICAgIC4uLgp9 CgpTR01JSSB1c2VzIERXX0FOX0MzN19TR01JSS4gV2l0aCBwbGF0LT5waHlfYWRkciA9PSAtMSwg dGhpcyB3b3VsZCBsb2cKIm5vIHBoeSBmb3VuZCIgYW5kIHN0bW1hY19vcGVuKCkgd291bGQgZmFp bCB3aXRoIC1FTk9ERVYuCgpJZiB0aGUgRFQgaGFzIG5vIG1kaW8gc3Vibm9kZSwgdGhlIGxlZ2Fj eSBNRElPIHNjYW4gaW4Kc3RtbWFjX21kaW9fcmVnaXN0ZXIoKSB3b3VsZCBpbnN0ZWFkIGZhaWwg cHJvYmUgd2l0aCAiTm8gUEhZIGZvdW5kIi4KClRoZSBjb21taXQgbWVzc2FnZSByZWNvbW1lbmRz IG1hbmFnZWQgPSAiaW4tYmFuZC1zdGF0dXMiLCBzbyBpcyB0aGlzCmNvbmZpZ3VyYXRpb24gZXhw ZWN0ZWQgdG8gd29yaz8KCj4gKwo+ICtzdGF0aWMgdm9pZCBya19wY3NfZXhpdChzdHJ1Y3Qgc3Rt bWFjX3ByaXYgKnByaXYpCj4gK3sKPiArCWlmICghcHJpdi0+aHctPnhwY3MpCj4gKwkJcmV0dXJu Owo+ICsKPiArCXhwY3NfZGVzdHJveShwcml2LT5ody0+eHBjcyk7Cj4gKwlwcml2LT5ody0+eHBj cyA9IE5VTEw7Cj4gK30KPiArCj4gK3N0YXRpYyBzdHJ1Y3QgcGh5bGlua19wY3MgKnJrX3NlbGVj dF9wY3Moc3RydWN0IHN0bW1hY19wcml2ICpwcml2LAo+ICsJCQkJCSBwaHlfaW50ZXJmYWNlX3Qg aW50ZXJmYWNlKQo+ICt7Cj4gKwlpZiAoIXByaXYtPmh3LT54cGNzKQo+ICsJCXJldHVybiBOVUxM Owo+ICsKPiArCXJldHVybiB4cGNzX3RvX3BoeWxpbmtfcGNzKHByaXYtPmh3LT54cGNzKTsKPiAr fQoKW1NldmVyaXR5OiBNZWRpdW1dCkNhbiBwaHlsaW5rIHNlbGVjdCBhbiBpbnRlcmZhY2UgbW9k ZSBoZXJlIHRoYXQgdGhlIGdsdWUgbmV2ZXIgc2V0IHVwPwoKcmtfc2VsZWN0X3BjcygpIGlnbm9y ZXMgdGhlIGludGVyZmFjZSBhcmd1bWVudCBhbmQgcmV0dXJucyB0aGUgWFBDUyBmb3IKZXZlcnkg bW9kZS4gc3RtbWFjX3BoeWxpbmtfc2V0dXAoKSBhZGRzIHRoZSBYUENTIHN1cHBvcnRlZF9pbnRl cmZhY2VzIHRvCnBoeWxpbmsncyBzZXQsIGFuZCB0aGUgZ2x1ZSBkb2VzIG5vdCBmaWx0ZXIgdGhl bToKCmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6c3Rt bWFjX3BoeWxpbmtfc2V0dXAoKSB7CiAgICAuLi4KCWlmIChwcml2LT5ody0+eHBjcykKCQlwY3Mg PSB4cGNzX3RvX3BoeWxpbmtfcGNzKHByaXYtPmh3LT54cGNzKTsKICAgIC4uLgoJCXBoeV9pbnRl cmZhY2Vfb3IoY29uZmlnLT5zdXBwb3J0ZWRfaW50ZXJmYWNlcywKCQkJCSBjb25maWctPnN1cHBv cnRlZF9pbnRlcmZhY2VzLAoJCQkJIHBjcy0+c3VwcG9ydGVkX2ludGVyZmFjZXMpOwogICAgLi4u Cn0KCklmIHRoZSBYUENTIHVzZXMgdGhlIGdlbmVyaWMgc3lub3BzeXNfeHBjc19jb21wYXQgdGFi bGUsCnhwY3NfZ2V0X2ludGVyZmFjZXMoKSBhZHZlcnRpc2VzIDEwMDBCQVNFLVgsIDI1MDBCQVNF LVggYW5kIHRoZSAxMEcrCm1vZGVzIGFsb25nc2lkZSBTR01JSS4gVGhlIEdNQUM0IE1BQyBjYXBh YmlsaXRpZXMgKE1BQ18xMCB8IE1BQ18xMDAgfApNQUNfMTAwMCB8IE1BQ18yNTAwRkQpIGRvIG5v dCBydWxlIG91dCAxMDAwQkFTRS1YIG9yIDI1MDBCQVNFLVgsIHNvIGJvdGgKd291bGQgcGFzcyBw aHlsaW5rIHZhbGlkYXRpb24uCgpUaGUgZ2x1ZSBvbmx5IHByb2dyYW1zIFNHTUlJLCB0aG91Z2gu IHJrX2dtYWNfY2hlY2tfb3BzKCksIHRoZQpya19nbWFjX3Bvd2VydXAoKSBzd2l0Y2ggYW5kIHJr MzU2OF9zZXRfdG9fc2dtaWkoKSBlYWNoIGFjdCBvbmNlLCBvbiB0aGUKcGh5LW1vZGUgZnJvbSBE VC4KClRha2UgYW4gU0ZQIGNhZ2UsIG9yIGEgUEhZIHdob3NlIHBvc3NpYmxlX2ludGVyZmFjZXMg aW5jbHVkZXMgMjUwMEJBU0UtWC4KV291bGQgcGh5bGluayB0aGVuIG1vdmUgdGhlIFhQQ1MgaW50 byBhIG1vZGUgdGhhdCB0aGUgR1JGLCBTZXJEZXMgYW5kCk1BQyBwYXRoIHdlcmUgbmV2ZXIgY29u ZmlndXJlZCBmb3I/CgpUaGlzIGFsc28gc2VlbXMgdG8gY29uZmxpY3Qgd2l0aCB0aGUgY29tbWl0 IG1lc3NhZ2U6CgogICAgMTAwMEJBU0UtWCBpcyBub3QgZW5hYmxlZCBieSB0aGlzIHNlcmllczsg aXQgbWF5IGJlIGFkZGVkIGxhdGVyIGlmCiAgICB0aGVyZSBpcyBhIHVzZXIgZm9yIGl0LgoKU2hv dWxkIHJrX3NlbGVjdF9wY3MoKSByZWplY3QgYW55dGhpbmcgb3RoZXIgdGhhbgpQSFlfSU5URVJG QUNFX01PREVfU0dNSUksIG9yIHNob3VsZCB0aGUgc3VwcG9ydGVkIGludGVyZmFjZXMgYmUgbWFz a2VkCmRvd24gdG8gU0dNSUk/CgpbIC4uLiBdCgo+IEBAIC0xNDUwLDE1ICsxNTIxLDIwIEBAIHN0 YXRpYyBpbnQgcmtfZ21hY19wb3dlcnVwKHN0cnVjdCBya19wcml2X2RhdGEgKmJzcF9wcml2KQoK WyAuLi4gXQoKPiAgCXJldCA9IHJrX3BoeV9wb3dlcnVwKGJzcF9wcml2KTsKPiAtCWlmIChyZXQp IHsKPiAtCQlnbWFjX2Nsa19lbmFibGUoYnNwX3ByaXYsIGZhbHNlKTsKPiAtCQlyZXR1cm4gcmV0 Owo+IC0JfQo+ICsJaWYgKHJldCkKPiArCQlnb3RvIGNsa19kaXNhYmxlOwo+ICAKPiAgCXBtX3J1 bnRpbWVfZ2V0X3N5bmMoZGV2KTsKPiAgCj4gQEAgLTE0NjYsNiArMTU0MiwxMCBAQCBzdGF0aWMg aW50IHJrX2dtYWNfcG93ZXJ1cChzdHJ1Y3QgcmtfcHJpdl9kYXRhICpic3BfcHJpdikKPiAgCQli c3BfcHJpdi0+b3BzLT5pbnRlZ3JhdGVkX3BoeV9wb3dlcnVwKGJzcF9wcml2KTsKPiAgCj4gIAly ZXR1cm4gMDsKPiArCj4gK2Nsa19kaXNhYmxlOgo+ICsJZ21hY19jbGtfZW5hYmxlKGJzcF9wcml2 LCBmYWxzZSk7Cj4gKwlyZXR1cm4gcmV0Owo+ICB9CgpbU2V2ZXJpdHk6IE1lZGl1bV0KVGhpcyBi dWcgd2FzIG5vdCBpbnRyb2R1Y2VkIGJ5IHRoaXMgcGF0Y2gsIGJ1dCBya19nbWFjX3Jlc3VtZSgp IGlnbm9yZXMKdGhlIHJldHVybiB2YWx1ZSBvZiBya19nbWFjX3Bvd2VydXAoKToKCmRyaXZlcnMv bmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJrLmM6cmtfZ21hY19yZXN1bWUoKSB7 CiAgICAuLi4KCWlmICghZGV2aWNlX21heV93YWtldXAoZGV2KSkKCQlya19nbWFjX3Bvd2VydXAo YnNwX3ByaXYpOwoKCXJldHVybiAwOwp9CgpXaGVuIHJrX2dtYWNfcG93ZXJ1cCgpIGZhaWxzLCB0 aGUgY2xrX2Rpc2FibGUgZXhpdCBydW5zIGJlZm9yZQpya19waHlfcG93ZXJ1cCgpIGFuZCBwbV9y dW50aW1lX2dldF9zeW5jKCkgaGF2ZSBiZWVuIGNhbGxlZC4gQSBsYXRlcgpya19nbWFjX3N1c3Bl bmQoKSBvciBya19nbWFjX2V4aXQoKSBzdGlsbCBjYWxscyBya19nbWFjX3Bvd2VyZG93bigpOgoK ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmsuYzpya19nbWFjX3Bv d2VyZG93bigpIHsKICAgIC4uLgoJcG1fcnVudGltZV9wdXRfc3luYyhnbWFjLT5kZXYpOwoKCXJr X3BoeV9wb3dlcmRvd24oZ21hYyk7CglnbWFjX2Nsa19lbmFibGUoZ21hYywgZmFsc2UpOwp9CgpX b3VsZCBhIGZhaWxlZCByZXN1bWUgbGVhdmUgdGhlIHJ1bnRpbWUgUE0gdXNhZ2UgY291bnQgYW5k IHRoZQpwaHktc3VwcGx5IHJlZ3VsYXRvciBlbmFibGUgY291bnQgdW5iYWxhbmNlZD8KClRoZSBu ZXcgZXhpdHMgYWRkZWQgaGVyZSAodGhlIHJrX2dldF9waHlfaW50Zl9zZWwoKSBmYWlsdXJlIGFu ZCB0aGUKZGVmYXVsdCBjYXNlKSBzaG91bGQgbm90IGJlIHJlYWNoYWJsZSBhdCByZXN1bWUsIGJl Y2F1c2UgcHJvYmUgaGFzCmFscmVhZHkgdmFsaWRhdGVkIHRoZSBpbnRlcmZhY2UuIFRoZSBjbG9j ayBlbmFibGUsIEdSRiB3cml0ZSBhbmQKcmVndWxhdG9yIGVuYWJsZSBmYWlsdXJlcyBjYW4gc3Rp bGwgaGFwcGVuLgoKWyAuLi4gXQoKPiBAQCAtMTYwNSw2ICsxNjg1LDE3IEBAIHN0YXRpYyBpbnQg cmtfZ21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICAJcGxhdF9kYXQt PnN1c3BlbmQgPSBya19nbWFjX3N1c3BlbmQ7Cj4gIAlwbGF0X2RhdC0+cmVzdW1lID0gcmtfZ21h Y19yZXN1bWU7Cj4gIAo+ICsJaWYgKHBsYXRfZGF0LT5waHlfaW50ZXJmYWNlID09IFBIWV9JTlRF UkZBQ0VfTU9ERV9TR01JSSkgewo+ICsJCS8qIFNHTUlJIGNsb2NrIGFsd2F5cyBydW5zIGF0IDEy NSBNSHogKi8KPiArCQlwbGF0X2RhdC0+c2V0X2Nsa190eF9yYXRlID0gTlVMTDsKPiArCj4gKwkJ LyogU0dNSUkgcmVxdWlyZXMgYSBQQ1MgKi8KPiArCQlwbGF0X2RhdC0+ZGVmYXVsdF9hbl9pbmJh bmQgPSB0cnVlOwoKW1NldmVyaXR5OiBNZWRpdW1dClRoZSBjb21taXQgbWVzc2FnZSBzYXlzIG91 dC1vZi1iYW5kIFNHTUlJIGF0IDEwLzEwMCBnaXZlcyB3b3JraW5nIFRYIGFuZApmYWlsaW5nIFJY LCBiZWNhdXNlIHRoZSBNQUMgY2xvY2sgaXMgZml4ZWQgYXQgMTI1IE1Iei4gRG9lcyBhbnl0aGlu ZyBpbgp0aGUgZHJpdmVyIGVuZm9yY2Ugb3IgcmVwb3J0IHRoYXQgbGltaXQ/CgpkZWZhdWx0X2Fu X2luYmFuZCBvbmx5IHN0YXRlcyBhIHByZWZlcmVuY2UuIHBoeWxpbmtfcGFyc2VfbW9kZSgpIHR1 cm5zIGEKZml4ZWQtbGluayBub2RlIGludG8gTUxPX0FOX0ZJWEVELiBBIFBIWSB3aG9zZSBwaHlf aW5iYW5kX2NhcHMoKSByZXBvcnRzCm9ubHkgTElOS19JTkJBTkRfRElTQUJMRSBtYWtlcyBwaHls aW5rX3Bjc19uZWdfbW9kZSgpIGZhbGwgYmFjazoKCmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmM6 cGh5bGlua19wY3NfbmVnX21vZGUoKSB7CiAgICAuLi4KCQkJbmVnX21vZGUgPSBQSFlMSU5LX1BD U19ORUdfT1VUQkFORDsKCQkJaWYgKHBsLT5waHlkZXYpCgkJCQltb2RlID0gTUxPX0FOX1BIWTsK ICAgIC4uLgp9CgpGb3IgU0dNSUksIHhwY3NfaW5iYW5kX2NhcHMoKSByZXR1cm5zIExJTktfSU5C QU5EX0RJU0FCTEUgfApMSU5LX0lOQkFORF9FTkFCTEUsIHNvIHRoZSBQQ1MgYWNjZXB0cyB0aGUg b3V0LW9mLWJhbmQgZmFsbGJhY2suCgpzdG1tYWNfbWFjX2xpbmtfdXAoKSB0aGVuIHNldHMgdGhl IE1BQyB0byAxMC8xMDAsIGFuZAp4cGNzX2xpbmtfdXBfc2dtaWlfMTAwMGJhc2V4KCkgd3JpdGVz IHRoZSBzcGVlZCBpbnRvIEJNQ1IsIGJ1dCB0aGUgY2xvY2sKc3RheXMgYXQgMTI1IE1Iei4gV291 bGQgdGhlIGxpbmsgdGhlbiByZXBvcnQgdXAgd2hpbGUgUlggc2lsZW50bHkgZG9lcwpub3Qgd29y az8KCkNvdWxkIHRoZSBkcml2ZXIgcmVqZWN0IG91dC1vZi1iYW5kIFNHTUlJIGJlbG93IDEwMDAg TWJwcywgb3IgYXQgbGVhc3QKd2FybiBhYm91dCBpdD8gZml4X21hY19zcGVlZCgpIHJlY2VpdmVz IHRoZSBtb2RlIGFuZCBjb3VsZCBkbyB0aGlzLCBvcgp0aGUgTUFDIGNhcGFiaWxpdGllcyBjb3Vs ZCBiZSBsaW1pdGVkLgoKPiArCQlwbGF0X2RhdC0+cGNzX2luaXQgPSBya19wY3NfaW5pdDsKPiAr CQlwbGF0X2RhdC0+cGNzX2V4aXQgPSBya19wY3NfZXhpdDsKPiArCQlwbGF0X2RhdC0+c2VsZWN0 X3BjcyA9IHJrX3NlbGVjdF9wY3M7Cj4gKwl9CgpbIC4uLiBdCgotLSAKU2FzaGlrbyBBSSByZXZp ZXcgwrcgaHR0cHM6Ly9uZXRkZXYtYWkuYm90cy5saW51eC5kZXYvc2FzaGlrby8jL3BhdGNoc2V0 LzIwMjYxMDE3MDU0NDA2LjE4MjgwNjEtMS1jb2lhcHJhbnQlNDBnbWFpbC5jb20KCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkxpbnV4LXJvY2tjaGlwIG1h aWxpbmcgbGlzdApMaW51eC1yb2NrY2hpcEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0 cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtcm9ja2NoaXAK