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 2A9C3CD4F3D for ; Thu, 21 May 2026 06:22:26 +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=oWvIZm49oDQfswRs4Fsa3+nbWCRtKAKhsXShkfvqLAw=; b=snFRbChYHKevLU D2eJtnTq9lSA+v2zaccsbxteOUJBMpHzvsEeH+PNSf+ZUWBz63bzxDwfuI2N3lqy8qIupHE9ws5jv wwVAvXcBxADMGMTgWKza1mxm6Ck8+CqftSFnd1yxoOerSAmMlMeTaBU25NuSG4qU0IJ9bU0Wmh4wT xCNTlFBMpit2rMUOz3p78cHWz24aqKcL/RNLnUxyG6KDfoHPAVNjH9Ni7Ox/wpjRjSUtVWnbr3e/w knpzoc11YeYQp3HDk6CncHKwE8r4oQ5k1r3c4ecE8sYVDi0Iy2O6TXLFkIkdRUEkJkSTDR8A9PCPf 3O140zp3l3Pjuw2JEC9g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wPwnZ-00000006o8f-2hBD; Thu, 21 May 2026 06:22:25 +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 1wPwnZ-00000006o8J-09k5 for linux-phy@lists.infradead.org; Thu, 21 May 2026 06:22:25 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by tor.source.kernel.org (Postfix) with ESMTP id 1349860212; Thu, 21 May 2026 06:22:24 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 913FB1F000E9; Thu, 21 May 2026 06:22:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1779344543; bh=SDwZKv+kfwUHC+PmF0fMvEQb0tjgPIthPjspSldcRoE=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=X5YiK8t6k1q85BCke3NQ2ce8OOvyBmJMflEvTcAnK0D3up/DrrEbqtUifBqEnfoja qBc1qJPbAe1GLEicZSCKDWWjSaeYp2Lnjm5QTqn5eWoWqFZJSaPb7c2wrx4YU4vEYc RrfzV2KrB8AlZwRnckEmSf5pF534K/K1J32QjY/uPjE4QhLWOZ/qrJrzJOT2w8TIIm i2KofFhcRDPo6ha3IHBkvrSIvIMx1F98I+478uHSzzrBZe5U2jWBnQVpa+mIwUtW8w DZmd4QnNAwlxLAQWTfAJXKwtzl+sdJr+0ToD+p2WMUFkGLHNVhpWl5Bu7JbPFupMH4 5XquZGa693+Cw== From: sashiko-bot@kernel.org Subject: Re: [PATCH 5/5] drm/rockchip: cdn-dp: Add multiple bridges to support PHY port selection To: "Chaoyi Chen" Cc: vkoul@kernel.org, linux-phy@lists.infradead.org, neil.armstrong@linaro.org, olteanv@gmail.com In-Reply-To: <20260521032854.103-6-kernel@airkyi.com> References: <20260521032854.103-6-kernel@airkyi.com> Date: Thu, 21 May 2026 06:22:23 +0000 Message-Id: <20260521062223.913FB1F000E9@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 MTEgcG90ZW50aWFsIGlzc3VlKHMpIHRvIGNvbnNpZGVyOgotIFtIaWdoXSBQcmVtYXR1cmVseSBk cm9wcGluZyB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIHRoZSBsYXN0IGJyaWRnZSBpbiBgY2RuX2Jy aWRnZV9hZGQoKWAgd2lsbCBjYXVzZSBhIHVzZS1hZnRlci1mcmVlLgotIFtIaWdoXSBUaGUgYHBy ZXZfcG9ydGAgcG9pbnRlciBpcyB1c2VkIHVuaW5pdGlhbGl6ZWQgaW4gYGNkbl9kcF9icmlkZ2Vf ZWRpZF9yZWFkKClgLCBsZWFkaW5nIHRvIGEga2VybmVsIGNyYXNoLgotIFtIaWdoXSBgY2RuX2Rw X2Nvbm5lY3RlZF9wb3J0KClgIGlnbm9yZXMgY29ubmVjdGlvbiBzdGF0dXMgZm9yIGV4dGNvbiBj b25maWd1cmF0aW9ucywgYnJlYWtpbmcgaG90cGx1ZyBkZXRlY3Rpb24uCi0gW0hpZ2hdIE1pc3Np bmcgYm91bmRzIGNoZWNrIGluIGBjZG5fZHBfcGFyc2VfbmV4dF9icmlkZ2VfZHQoKWAgYWxsb3dz IGFuIG91dC1vZi1ib3VuZHMgd3JpdGUgdG8gdGhlIGBuZXh0X2JyaWRnZV9saXN0YCBhcnJheS4K LSBbSGlnaF0gVGhlIGBsYW5lc2Agc3RhY2sgYXJyYXkgaXMgcmVhZCBvdXQtb2YtYm91bmRzIG9y IHVuaW5pdGlhbGl6ZWQgaW4gYGNkbl9kcF9jb25uZWN0ZWRfcG9ydCgpYC4KLSBbSGlnaF0gRFJN IGJyaWRnZSByZWZlcmVuY2VzIGFyZSBsZWFrZWQgb24gZXJyb3IgcGF0aHMgZHVyaW5nIERUIHBh cnNpbmcgYW5kIGRyaXZlciBiaW5kaW5nLgotIFtIaWdoXSBJZiBsaW5rIHRyYWluaW5nIGZhaWxz IGluIGBjZG5fZHBfc3dpdGNoX3BvcnQoKWAsIGl0IHJldHVybnMgYW4gZXJyb3IgYnV0IGxlYXZl cyB0aGUgRFAgY29udHJvbGxlciBlcnJvbmVvdXNseSBtYXJrZWQgYXMgYWN0aXZlLgotIFtIaWdo XSBgY2RuX2RwX3N3aXRjaF9wb3J0KClgIGluY29ycmVjdGx5IGFib3J0cyBoYXJkd2FyZSBzd2l0 Y2hpbmcgd2hlbiB0aGUgRFAgY29udHJvbGxlciBpcyBhY3RpdmUsIGNhdXNpbmcgRURJRCByZWFk cyBmcm9tIHRoZSB3cm9uZyBwb3J0LgotIFtIaWdoXSBEaXNhYmxpbmcgYW4gaW5hY3RpdmUgYnJp ZGdlIGVycm9uZW91c2x5IGRpc2FibGVzIHRoZSBhY3RpdmUgRFAgY29udHJvbGxlciBmb3IgYW5v dGhlciBicmlkZ2UuCi0gW01lZGl1bV0gT3ZlcndyaXRpbmcgYGNvbm5lY3Rvci0+Zndub2RlYCBp biBgY2RuX2JyaWRnZV9hZGQoKWAgY2F1c2VzIGEgbWVtb3J5IGxlYWsuCi0gW01lZGl1bV0gSW5j b3JyZWN0IGNoZWNrIGZvciB0aGUgYWN0aXZlIHBvcnQgdHJlYXRzIHZhbGlkIGluZGV4IDAgYXMg aW52YWxpZC4KLS0KCkhpLAoKSSBoYXZlIHJldmlld2VkIHRoZSBwYXRjaCBhbmQgZm91bmQgc29t ZSBwb3RlbnRpYWwgaXNzdWVzIHRvIHNoYXJlLgoKY29tbWl0IDA4MmM3MDVhYTc1NDdiNTIxYWQ5 ZGYyMGFjNzZlMDU5MmI0MTg2NGYKQXV0aG9yOiBDaGFveWkgQ2hlbiA8Y2hhb3lpLmNoZW5Acm9j ay1jaGlwcy5jb20+CgogICAgZHJtL3JvY2tjaGlwOiBjZG4tZHA6IEFkZCBtdWx0aXBsZSBicmlk Z2VzIHRvIHN1cHBvcnQgUEhZIHBvcnQgc2VsZWN0aW9uCgpUaGlzIGNvbW1pdCBhZGRzIHN1cHBv cnQgZm9yIG11bHRpcGxlIGJyaWRnZXMgdG8gdGhlIFJvY2tjaGlwIGNkbi1kcCBkcml2ZXIKdG8g YWxsb3cgc3dpdGNoaW5nIGJldHdlZW4gdHdvIFVTQi9EUCBjb21ibyBQSFlzLiBJdCBjaGFuZ2Vz IHRoZSBkcml2ZXIgdG8KdXNlIHRoZSBEUk0gQVVYIEhQRCBicmlkZ2UgYW5kIGFkZHMgRFQgcGFy c2luZyBsb2dpYyB0byByZWdpc3RlciBtdWx0aXBsZQpicmlkZ2VzLgoKPiBAQCAtMTkyLDE0ICsx OTMsMjcgQEAgc3RhdGljIGludCBjZG5fZHBfZ2V0X3NpbmtfY291bnQoc3RydWN0IGNkbl9kcF9k ZXZpY2UgKmRwLCB1OCAqc2lua19jb3VudCkKPiAgc3RhdGljIHN0cnVjdCBjZG5fZHBfcG9ydCAq Y2RuX2RwX2Nvbm5lY3RlZF9wb3J0KHN0cnVjdCBjZG5fZHBfZGV2aWNlICpkcCkKPiAgewo+ICAJ c3RydWN0IGNkbl9kcF9wb3J0ICpwb3J0Owo+IC0JaW50IGksIGxhbmVzOwo+ICsJaW50IGksIGxh bmVzW01BWF9QSFldOwo+ICAKPiAgCWZvciAoaSA9IDA7IGkgPCBkcC0+cG9ydHM7IGkrKykgewo+ ICAJCXBvcnQgPSBkcC0+cG9ydFtpXTsKPiAtCQlsYW5lcyA9IGNkbl9kcF9nZXRfcG9ydF9sYW5l cyhwb3J0KTsKPiAtCQlpZiAobGFuZXMpCj4gKwkJbGFuZXNbaV0gPSBjZG5fZHBfZ2V0X3BvcnRf bGFuZXMocG9ydCk7Cj4gKwkJaWYgKCFkcC0+bmV4dF9icmlkZ2VfdmFsaWQpCj4gIAkJCXJldHVy biBwb3J0OwoKW1NldmVyaXR5OiBIaWdoXQpEb2VzIHRoaXMgdW5jb25kaXRpb25hbGx5IHJldHVy biB0aGUgZmlyc3QgcG9ydCB3aXRob3V0IGNoZWNraW5nIGlmIGl0IGlzCmFjdHVhbGx5IGNvbm5l Y3RlZD8gSWYgZHAtPm5leHRfYnJpZGdlX3ZhbGlkIGlzIGZhbHNlICh3aGljaCBpcyB0aGUgY2Fz ZSBmb3IKZXh0Y29uIHNldHVwcyksIGl0IGFwcGVhcnMgdG8gcmV0dXJuIHBvcnQgb24gdGhlIGZp cnN0IGl0ZXJhdGlvbiByZWdhcmRsZXNzCm9mIGxhbmVzW2ldLCBjb21wbGV0ZWx5IGJyZWFraW5n IGhvdHBsdWcgZGV0ZWN0aW9uLgoKPiAgCX0KPiArCj4gKwlpZiAoZHAtPm5leHRfYnJpZGdlX3Zh bGlkKSB7Cj4gKwkJLyogSWYgbW9yZSB0aGFuIG9uZSBwb3J0IGlzIGF2YWlsYWJsZSwgcGljayB0 aGUgbGFzdCBhY3RpdmUgcG9ydCAqLwo+ICsJCWlmIChkcC0+YWN0aXZlX3BvcnQgPiAwICYmIGxh bmVzW2RwLT5hY3RpdmVfcG9ydF0pCgpbU2V2ZXJpdHk6IE1lZGl1bV0KU2luY2UgZHAtPmFjdGl2 ZV9wb3J0IGlzIGluaXRpYWxpemVkIHRvIC0xLCB2YWxpZCBwb3J0IGluZGljZXMgYXJlIDAgYW5k IDEuCkRvZXMgdGhlIGNoZWNrIGRwLT5hY3RpdmVfcG9ydCA+IDAgaW5jb3JyZWN0bHkgZXZhbHVh dGUgdG8gZmFsc2Ugd2hlbiB0aGUKYWN0aXZlIHBvcnQgaXMgMCwgc2tpcHBpbmcgdGhlIGFjdGl2 ZSBwb3J0PwoKPiArCQkJcmV0dXJuIGRwLT5wb3J0W2RwLT5hY3RpdmVfcG9ydF07Cj4gKwo+ICsJ CS8qIElmIHRoZSBsYXN0IGFjdGl2ZSBwb3J0IGlzIG5vdCBhdmFpbGFibGUsIHBpY2sgYW4gYXZh aWxhYmxlIHBvcnQgaW4gb3JkZXIgKi8KPiArCQlmb3IgKGkgPSAwOyBpIDwgZHAtPmJyaWRnZV9j b3VudDsgaSsrKSB7Cj4gKwkJCWlmIChsYW5lc1tpXSkKCltTZXZlcml0eTogSGlnaF0KQ2FuIHRo aXMgcmVhZCB1bmluaXRpYWxpemVkIHN0YWNrIG1lbW9yeT8gVGhlIGxhbmVzIHN0YWNrIGFycmF5 IGlzIHBvcHVsYXRlZAppbiBhIGxvb3AgYm91bmRlZCBieSBkcC0+cG9ydHMsIGJ1dCBhY2Nlc3Nl ZCBoZXJlIGluIGEgbG9vcCBib3VuZGVkIGJ5CmRwLT5icmlkZ2VfY291bnQuCgpJZiBkcC0+YnJp ZGdlX2NvdW50ID4gZHAtPnBvcnRzLCB0aGlzIHdpbGwgcmVhZCB1bmluaXRpYWxpemVkIHZhbHVl cy4KRnVydGhlcm1vcmUsIHNpbmNlIGxhbmVzIGlzIHNpemVkIHRvIE1BWF9QSFksIGlmIGRwLT5i cmlkZ2VfY291bnQgPiBNQVhfUEhZLAppdCB3aWxsIHBlcmZvcm0gYW4gb3V0LW9mLWJvdW5kcyBz dGFjayByZWFkLgoKPiArCQkJCXJldHVybiBkcC0+cG9ydFtpXTsKPiArCQl9Cj4gKwl9Cj4gKwo+ ICAJcmV0dXJuIE5VTEw7Cj4gIH0KClsgLi4uIF0KCj4gQEAgLTI1NCwxMiArMjY4LDQ1IEBAIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2VkaWQgKgo+ICBjZG5fZHBfYnJpZGdlX2VkaWRfcmVhZChz dHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLCBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9y KQo+ICB7Cj4gIAlzdHJ1Y3QgY2RuX2RwX2RldmljZSAqZHAgPSBicmlkZ2VfdG9fZHAoYnJpZGdl KTsKPiAtCWNvbnN0IHN0cnVjdCBkcm1fZWRpZCAqZHJtX2VkaWQ7Cj4gKwlzdHJ1Y3QgY2RuX2Rw X2JyaWRnZSAqZHBfYnJpZGdlID0gYnJpZGdlX3RvX2RwX2JyaWRnZShicmlkZ2UpOwo+ICsJc3Ry dWN0IGNkbl9kcF9wb3J0ICpwb3J0ID0gZHAtPnBvcnRbZHBfYnJpZGdlLT5pZF07Cj4gKwlzdHJ1 Y3QgY2RuX2RwX3BvcnQgKnByZXZfcG9ydDsKPiArCWNvbnN0IHN0cnVjdCBkcm1fZWRpZCAqZHJt X2VkaWQgPSBOVUxMOwo+ICAJaW50IGksIHJldDsKPiAgCj4gIAltdXRleF9sb2NrKCZkcC0+bG9j ayk7Cj4gKwo+ICsJLyogTW9yZSB0aGFuIG9uZSBwb3J0IGlzIGF2YWlsYWJsZSAqLwo+ICsJaWYg KGRwLT5icmlkZ2VfY291bnQgPiAxICYmICFwb3J0LT5waHlfZW5hYmxlZCkgewo+ICsJCWZvciAo aSA9IDA7IGkgPCBkcC0+YnJpZGdlX2NvdW50OyBpKyspIHsKPiArCQkJLyogQW5vdGhlciBwb3J0 IGFscmVhZHkgZW5hYmxlICovCj4gKwkJCWlmIChkcC0+YnJpZGdlX2xpc3RbaV0gIT0gZHBfYnJp ZGdlICYmIGRwLT5icmlkZ2VfbGlzdFtpXS0+ZW5hYmxlZCkKPiArCQkJCWdvdG8gZ2V0X2NhY2hl Owo+ICsJCQkvKiBGaW5kIGFscmVhZHkgZW5hYmxlZCBwb3J0ICovCj4gKwkJCWlmIChkcC0+cG9y dFtpXS0+cGh5X2VuYWJsZWQpCj4gKwkJCQlwcmV2X3BvcnQgPSBkcC0+cG9ydFtpXTsKPiArCQl9 Cj4gKwo+ICsJCS8qIFN3aXRjaCB0byBjdXJyZW50IHBvcnQgKi8KPiArCQlpZiAocHJldl9wb3J0 KSB7CgpbU2V2ZXJpdHk6IEhpZ2hdCkNhbiB0aGlzIGxlYWQgdG8gYSBrZXJuZWwgY3Jhc2ggYnkg ZGVyZWZlcmVuY2luZyBhbiB1bmluaXRpYWxpemVkIHBvaW50ZXI/ClRoZSBwcmV2X3BvcnQgdmFy aWFibGUgaXMgbm90IGluaXRpYWxpemVkLiBJZiBubyBwb3J0cyBhcmUgY3VycmVudGx5IGVuYWJs ZWQKKHdoaWNoIGlzIGNvbW1vbiBhdCBib290KSwgdGhlIGZvciBsb29wIHdpbGwgY29tcGxldGUg d2l0aG91dCBhc3NpZ25pbmcKYW55dGhpbmcgdG8gcHJldl9wb3J0LgoKVGhlbiBpZiAocHJldl9w b3J0KSBldmFsdWF0ZXMgZ2FyYmFnZSBtZW1vcnksIGFuZCBjYWxsaW5nIGNkbl9kcF9zd2l0Y2hf cG9ydAp3aXRoIGl0IHdpbGwgY2F1c2UgYSBrZXJuZWwgcGFuaWMuCgo+ICsJCQlyZXQgPSBjZG5f ZHBfc3dpdGNoX3BvcnQoZHAsIHByZXZfcG9ydCwgcG9ydCk7Cj4gKwkJCWlmIChyZXQpCj4gKwkJ CQlnb3RvIGdldF9jYWNoZTsKPiArCQl9Cj4gKwl9CgpbIC4uLiBdCgo+IEBAIC01NTEsNiArNTk5 LDU0IEBAIHN0YXRpYyBib29sIGNkbl9kcF9jaGVja19saW5rX3N0YXR1cyhzdHJ1Y3QgY2RuX2Rw X2RldmljZSAqZHApCj4gIAlyZXR1cm4gZHJtX2RwX2NoYW5uZWxfZXFfb2sobGlua19zdGF0dXMs IG1pbihwb3J0LT5sYW5lcywgc2lua19sYW5lcykpOwo+ICB9Cj4gIAo+ICtzdGF0aWMgaW50IGNk bl9kcF9zd2l0Y2hfcG9ydChzdHJ1Y3QgY2RuX2RwX2RldmljZSAqZHAsIHN0cnVjdCBjZG5fZHBf cG9ydCAqcHJldl9wb3J0LAo+ICsJCQkgICAgICBzdHJ1Y3QgY2RuX2RwX3BvcnQgKnBvcnQpCj4g K3sKPiArCWludCByZXQ7Cj4gKwo+ICsJaWYgKGRwLT5hY3RpdmUpCj4gKwkJcmV0dXJuIDA7Cgpb U2V2ZXJpdHk6IEhpZ2hdCkRvZXMgdGhpcyBpbmNvcnJlY3RseSBhYm9ydCBoYXJkd2FyZSBzd2l0 Y2hpbmc/IElmIHRoZSBEUCBjb250cm9sbGVyIGlzCmFscmVhZHkgYWN0aXZlIGJ1dCBjdXJyZW50 bHkgb24gYSBkaWZmZXJlbnQgcG9ydCwgcmV0dXJuaW5nIDAgc2tpcHMgdGhlCmFjdHVhbCBwb3J0 IHN3aXRjaC4gVGhlIGNhbGxlciBjZG5fZHBfYnJpZGdlX2VkaWRfcmVhZCgpIHdpbGwgcHJvY2Vl ZCB3aXRoCnJlYWRpbmcgRURJRCBmcm9tIHRoZSB3cm9uZyAoYWxyZWFkeS1hY3RpdmUpIHBvcnQg YW5kIGNhY2hpbmcgaXQgZm9yIHRoZQpuZXcgcG9ydC4KCj4gKwo+ICsJcmV0ID0gY2RuX2RwX2Rp c2FibGVfcGh5KGRwLCBwcmV2X3BvcnQpOwo+ICsJaWYgKHJldCkKPiArCQlnb3RvIG91dDsKPiAr CXJldCA9IGNkbl9kcF9lbmFibGVfcGh5KGRwLCBwb3J0KTsKPiArCWlmIChyZXQpCj4gKwkJZ290 byBvdXQ7Cj4gKwo+ICsJcmV0ID0gY2RuX2RwX2dldF9zaW5rX2NhcGFiaWxpdHkoZHApOwo+ICsJ aWYgKHJldCkgewo+ICsJCWNkbl9kcF9kaXNhYmxlX3BoeShkcCwgcG9ydCk7Cj4gKwkJZ290byBv dXQ7Cj4gKwl9Cj4gKwo+ICsJZHAtPmFjdGl2ZSA9IHRydWU7Cj4gKwlkcC0+bGFuZXMgPSBwb3J0 LT5sYW5lczsKPiArCj4gKwlpZiAoIWNkbl9kcF9jaGVja19saW5rX3N0YXR1cyhkcCkpIHsKPiAr CQlkZXZfaW5mbyhkcC0+ZGV2LCAiQ29ubmVjdGVkIHdpdGggc2luazsgcmUtdHJhaW4gbGlua1xu Iik7Cj4gKwo+ICsJCXJldCA9IGNkbl9kcF90cmFpbl9saW5rKGRwKTsKPiArCQlpZiAocmV0KSB7 Cj4gKwkJCWRldl9lcnIoZHAtPmRldiwgIlRyYWluaW5nIGxpbmsgZmFpbGVkOiAlZFxuIiwgcmV0 KTsKPiArCQkJZ290byBvdXQ7CgpbU2V2ZXJpdHk6IEhpZ2hdCklmIGxpbmsgdHJhaW5pbmcgZmFp bHMsIHRoaXMganVtcHMgdG8gb3V0IGFuZCByZXR1cm5zIHRoZSBlcnJvciBjb2RlLCBidXQKbGVh dmVzIGRwLT5hY3RpdmUgPSB0cnVlLiBEb2VzIHRoaXMgdHJhcCB0aGUgcG9ydCBpbiBhIHBlcm1h bmVudGx5IGJyb2tlbiwKdW50cmFpbmVkIHN0YXRlIHNpbmNlIHN1YnNlcXVlbnQgY2FsbHMgdG8g Y2RuX2RwX3N3aXRjaF9wb3J0KCkgd2lsbAppbW1lZGlhdGVseSByZXR1cm4gMD8KCj4gKwkJfQoK WyAuLi4gXQoKPiBAQCAtNjM5LDkgKzc0MCwxMSBAQCBzdGF0aWMgdm9pZCBjZG5fZHBfYnJpZGdl X2F0b21pY19lbmFibGUoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwgc3RydWN0IGRybV9hdAo+ ICBzdGF0aWMgdm9pZCBjZG5fZHBfYnJpZGdlX2F0b21pY19kaXNhYmxlKHN0cnVjdCBkcm1fYnJp ZGdlICpicmlkZ2UsIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiAgewo+ICAJc3Ry dWN0IGNkbl9kcF9kZXZpY2UgKmRwID0gYnJpZGdlX3RvX2RwKGJyaWRnZSk7Cj4gKwlzdHJ1Y3Qg Y2RuX2RwX2JyaWRnZSAqZHBfYnJpZGdlID0gYnJpZGdlX3RvX2RwX2JyaWRnZShicmlkZ2UpOwo+ ICAJaW50IHJldDsKPiAgCj4gIAltdXRleF9sb2NrKCZkcC0+bG9jayk7Cj4gKwlkcF9icmlkZ2Ut PmVuYWJsZWQgPSBmYWxzZTsKPiAgCj4gIAlpZiAoZHAtPmFjdGl2ZSkgewo+ICAJCXJldCA9IGNk bl9kcF9kaXNhYmxlKGRwKTsKCltTZXZlcml0eTogSGlnaF0KRG9lcyB0aGlzIGFjY2lkZW50YWxs eSBkaXNhYmxlIHRoZSBhY3RpdmUgRFAgY29udHJvbGxlciB3aGVuIGFub3RoZXIgaW5hY3RpdmUK YnJpZGdlIGlzIGRpc2FibGVkPyBJZiBkcC0+YWN0aXZlIGlzIHRydWUsIHRoZSBlbnRpcmUgRFAg Y29udHJvbGxlciBpcwpkaXNhYmxlZCwgd2l0aG91dCBjaGVja2luZyBpZiB0aGUgYnJpZGdlIGJl aW5nIGRpc2FibGVkIChkcF9icmlkZ2UpIGlzCmFjdHVhbGx5IHRoZSBvbmUgZHJpdmluZyB0aGUg YWN0aXZlIERQIHBvcnQuIFRoaXMgd291bGQgYnJlYWsgYW4gYWN0aXZlCkJyaWRnZSBBIGlmIHVz ZXJzcGFjZSBkaXNhYmxlcyBhbiBpbmFjdGl2ZSBCcmlkZ2UgQi4KClsgLi4uIF0KCj4gQEAgLTk2 NywyOCArMTA4NSwxNiBAQCBzdGF0aWMgaW50IGNkbl9kcF9wZF9ldmVudChzdHJ1Y3Qgbm90aWZp ZXJfYmxvY2sgKm5iLAo+ICAJcmV0dXJuIE5PVElGWV9ET05FOwo+ICB9Cj4gIAo+IC1zdGF0aWMg aW50IGNkbl9kcF9iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqbWFzdGVy LCB2b2lkICpkYXRhKQo+ICtzdGF0aWMgaW50IGNkbl9icmlkZ2VfYWRkKHN0cnVjdCBkZXZpY2Ug KmRldiwKPiArCQkJICBzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAo+ICsJCQkgIHN0cnVjdCBk cm1fYnJpZGdlICpuZXh0X2JyaWRnZSwKPiArCQkJICBzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29k ZXIpCj4gIHsKPiAgCXN0cnVjdCBjZG5fZHBfZGV2aWNlICpkcCA9IGRldl9nZXRfZHJ2ZGF0YShk ZXYpOwo+IC0Jc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyOwo+ICsJc3RydWN0IGRybV9kZXZp Y2UgKmRybV9kZXYgPSBkcC0+ZHJtX2RldjsKPiArCXN0cnVjdCBkcm1fYnJpZGdlICpsYXN0X2Jy aWRnZSBfX2ZyZWUoZHJtX2JyaWRnZV9wdXQpID0gTlVMTDsKCltTZXZlcml0eTogSGlnaF0KV2ls bCB0aGlzIGNhdXNlIGEgcmVmZXJlbmNlIGNvdW50IHVuZGVyZmxvdyBhbmQgYSB1c2UtYWZ0ZXIt ZnJlZQp2dWxuZXJhYmlsaXR5PyBUaGUgbGFzdF9icmlkZ2UgcG9pbnRlciBpcyBwb3B1bGF0ZWQg YnkKZHJtX2JyaWRnZV9jaGFpbl9nZXRfbGFzdF9icmlkZ2UoKSwgd2hpY2ggcmV0dXJucyBhIHJh dyBwb2ludGVyIHdpdGhvdXQKaW5jcmVtZW50aW5nIHRoZSBicmlkZ2UncyByZWZlcmVuY2UgY291 bnQuIFdoZW4gbGFzdF9icmlkZ2UgZ29lcyBvdXQgb2YKc2NvcGUsIHRoZSBhdXRvbWF0aWMgZHJt X2JyaWRnZV9wdXQoKSB3aWxsIHByZW1hdHVyZWx5IGRlY3JlbWVudCB0aGUKcmVmY291bnQuCgo+ ICAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKPiAtCXN0cnVjdCBjZG5fZHBfcG9y dCAqcG9ydDsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2ID0gZGF0YTsKPiAtCWludCBy ZXQsIGk7Cj4gLQoKWyAuLi4gXQoKPiArCWlmIChuZXh0X2JyaWRnZSkgewo+ICsJCXJldCA9IGRy bV9icmlkZ2VfYXR0YWNoKGVuY29kZXIsIG5leHRfYnJpZGdlLCBicmlkZ2UsCj4gKwkJCQkJRFJN X0JSSURHRV9BVFRBQ0hfTk9fQ09OTkVDVE9SKTsKPiArCQlpZiAocmV0KQo+ICsJCQlyZXR1cm4g cmV0Owo+ICsKPiArCQlsYXN0X2JyaWRnZSA9IGRybV9icmlkZ2VfY2hhaW5fZ2V0X2xhc3RfYnJp ZGdlKGJyaWRnZS0+ZW5jb2Rlcik7Cj4gKwl9Cj4gKwo+ICAJY29ubmVjdG9yID0gZHJtX2JyaWRn ZV9jb25uZWN0b3JfaW5pdChkcm1fZGV2LCBlbmNvZGVyKTsKPiAgCWlmIChJU19FUlIoY29ubmVj dG9yKSkgewo+ICAJCXJldCA9IFBUUl9FUlIoY29ubmVjdG9yKTsKPiBAQCAtMTAzMCw4ICsxMTQ1 LDk5IEBAIHN0YXRpYyBpbnQgY2RuX2RwX2JpbmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qg ZGV2aWNlICptYXN0ZXIsIHZvaWQgKmRhdGEpCj4gIAkJcmV0dXJuIHJldDsKPiAgCX0KPiAgCj4g KwlpZiAobGFzdF9icmlkZ2UpCj4gKwkJY29ubmVjdG9yLT5md25vZGUgPSBmd25vZGVfaGFuZGxl X2dldChvZl9md25vZGVfaGFuZGxlKGxhc3RfYnJpZGdlLT5vZl9ub2RlKSk7CgpbU2V2ZXJpdHk6 IE1lZGl1bV0KSXMgdGhpcyBhc3NpZ25tZW50IGxlYWtpbmcgYW4gZndub2RlIHJlZmVyZW5jZT8g ZHJtX2JyaWRnZV9jb25uZWN0b3JfaW5pdCgpCmF1dG9tYXRpY2FsbHkgc2V0cyBjb25uZWN0b3It PmZ3bm9kZSB1c2luZyB0aGUgb2Zfbm9kZSBvZiB0aGUgbGFzdCBicmlkZ2UKYW5kIGFjcXVpcmVz IGEgcmVmZXJlbmNlIHZpYSBmd25vZGVfaGFuZGxlX2dldCgpLiBPdmVyd3JpdGluZyBpdCBoZXJl IHdpdGhvdXQKZHJvcHBpbmcgdGhlIG9yaWdpbmFsIHJlZmVyZW5jZSB3aWxsIGNhdXNlIGEgbWVt b3J5IGxlYWsuCgo+ICsKPiAgCWRybV9jb25uZWN0b3JfYXR0YWNoX2VuY29kZXIoY29ubmVjdG9y LCBlbmNvZGVyKTsKPiAgCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIGludCBjZG5f ZHBfcGFyc2VfbmV4dF9icmlkZ2VfZHQoc3RydWN0IGNkbl9kcF9kZXZpY2UgKmRwKQo+ICt7Cj4g KwlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wID0gZHAtPmRldi0+b2Zfbm9kZTsKPiArCXN0cnVjdCBk ZXZpY2Vfbm9kZSAqcG9ydCBfX2ZyZWUoZGV2aWNlX25vZGUpID0gb2ZfZ3JhcGhfZ2V0X3BvcnRf YnlfaWQobnAsIDEpOwo+ICsJc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZTsKPiArCWludCBjb3Vu dCA9IDA7Cj4gKwlpbnQgcmV0ID0gMDsKPiArCWludCBpOwo+ICsKPiArCS8qIElmIGRldmljZSB1 c2UgZXh0Y29uLCBkbyBub3QgdXNlIGhwZCBicmlkZ2UgKi8KPiArCWZvciAoaSA9IDA7IGkgPCBk cC0+cG9ydHM7IGkrKykgewo+ICsJCWlmIChkcC0+cG9ydFtpXS0+ZXh0Y29uKSB7Cj4gKwkJCWRw LT5icmlkZ2VfY291bnQgPSAxOwo+ICsJCQlyZXR1cm4gMDsKPiArCQl9Cj4gKwl9Cj4gKwo+ICsJ LyogT25lIGVuZHBvaW50IG1heSBjb3JyZXNwb25kIHRvIG9uZSBuZXh0IGJyaWRnZS4gKi8KPiAr CWZvcl9lYWNoX29mX2dyYXBoX3BvcnRfZW5kcG9pbnQocG9ydCwgZHBfZXApIHsKPiArCQlzdHJ1 Y3QgZGV2aWNlX25vZGUgKm5leHRfYnJpZGdlX25vZGUgX19mcmVlKGRldmljZV9ub2RlKSA9Cj4g KwkJCW9mX2dyYXBoX2dldF9yZW1vdGVfcG9ydF9wYXJlbnQoZHBfZXApOwo+ICsKPiArCQlicmlk Z2UgPSBvZl9kcm1fZmluZF9icmlkZ2UobmV4dF9icmlkZ2Vfbm9kZSk7Cj4gKwkJaWYgKCFicmlk Z2UpIHsKPiArCQkJcmV0ID0gLUVQUk9CRV9ERUZFUjsKPiArCQkJZ290byBvdXQ7CgpbU2V2ZXJp dHk6IEhpZ2hdCkRvZXMgdGhpcyBsZWFrIHRoZSBEUk0gYnJpZGdlIHJlZmVyZW5jZXMgYWNxdWly ZWQgaW4gZWFybGllciBsb29wIGl0ZXJhdGlvbnM/CklmIG9mX2RybV9maW5kX2JyaWRnZSgpIHJl dHVybnMgTlVMTCBvbiBhIHN1YnNlcXVlbnQgaXRlcmF0aW9uLCBpdCBqdW1wcyB0bwpvdXQgYW5k IHJldHVybnMgLUVQUk9CRV9ERUZFUiB3aXRob3V0IHJlbGVhc2luZyB0aGUgcmVmZXJlbmNlcyBw cmV2aW91c2x5Cm9idGFpbmVkIHdpdGggZHJtX2JyaWRnZV9nZXQoKS4KCj4gKwkJfQo+ICsKPiAr CQlkcC0+bmV4dF9icmlkZ2VfdmFsaWQgPSB0cnVlOwo+ICsJCWRwLT5uZXh0X2JyaWRnZV9saXN0 W2NvdW50XSA9IGRybV9icmlkZ2VfZ2V0KGJyaWRnZSk7Cj4gKwkJY291bnQrKzsKCltTZXZlcml0 eTogSGlnaF0KQ291bGQgdGhpcyBvdmVyZmxvdyB0aGUgbmV4dF9icmlkZ2VfbGlzdCBhcnJheT8g bmV4dF9icmlkZ2VfbGlzdCBpcyBzaXplZCB0bwpNQVhfUEhZICgyKS4gSWYgYSBkZXZpY2UgdHJl ZSBzcGVjaWZpZXMgbW9yZSB0aGFuIHR3byBlbmRwb2ludHMsIGNvdW50IHdpbGwKZXhjZWVkIHRo ZSBhcnJheSBib3VuZHMgYW5kIGNvcnJ1cHQgYWRqYWNlbnQgZmllbGRzIGluIHRoZSBjZG5fZHBf ZGV2aWNlCnN0cnVjdC4KCj4gKwl9Cj4gKwo+ICtvdXQ6Cj4gKwlkcC0+YnJpZGdlX2NvdW50ID0g Y291bnQgPyBjb3VudCA6IDE7Cj4gKwlyZXR1cm4gcmV0Owo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50 IGNkbl9kcF9iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqbWFzdGVyLCB2 b2lkICpkYXRhKQo+ICt7CgpbIC4uLiBdCgo+ICsJZm9yIChpID0gMDsgaSA8IGRwLT5icmlkZ2Vf Y291bnQ7IGkrKykgewo+ICsJCWVuY29kZXIgPSAmZHAtPmJyaWRnZV9saXN0W2ldLT5lbmNvZGVy LmVuY29kZXI7Cj4gKwkJYnJpZGdlID0gJmRwLT5icmlkZ2VfbGlzdFtpXS0+YnJpZGdlOwo+ICsJ CW5leHRfYnJpZGdlID0gZHAtPm5leHRfYnJpZGdlX2xpc3RbaV07Cj4gKwkJcmV0ID0gY2RuX2Jy aWRnZV9hZGQoZGV2LCBicmlkZ2UsIG5leHRfYnJpZGdlLCBlbmNvZGVyKTsKPiArCQlpZiAocmV0 KQo+ICsJCQlyZXR1cm4gcmV0OwoKW1NldmVyaXR5OiBIaWdoXQpEb2VzIHRoaXMgbGVhayB0aGUg YnJpZGdlIHJlZmVyZW5jZXMgYWNxdWlyZWQgaW4gY2RuX2RwX3BhcnNlX25leHRfYnJpZGdlX2R0 CmlmIGNkbl9icmlkZ2VfYWRkKCkgZmFpbHM/IFJldHVybmluZyBkaXJlY3RseSB3aXRob3V0IGEg Y2xlYW51cCBwYXRoIG1lYW5zCmRybV9icmlkZ2VfcHV0KCkgaXMgbmV2ZXIgY2FsbGVkIGZvciBk cC0+bmV4dF9icmlkZ2VfbGlzdC4KCj4gKwl9CgotLSAKU2FzaGlrbyBBSSByZXZpZXcgwrcgaHR0 cHM6Ly9zYXNoaWtvLmRldi8jL3BhdGNoc2V0LzIwMjYwNTIxMDMyODU0LjEwMy0xLWtlcm5lbEBh aXJreWkuY29tP3BhcnQ9NQoKLS0gCmxpbnV4LXBoeSBtYWlsaW5nIGxpc3QKbGludXgtcGh5QGxp c3RzLmluZnJhZGVhZC5vcmcKaHR0cHM6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlz dGluZm8vbGludXgtcGh5Cg==