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 0F4BCC44514 for ; Fri, 17 Jul 2026 07:38:22 +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=seI/f9tXCoEvtWJlqe/d5EKfL2UVKzZyuvZd3WJM3/k=; b=2R7zD7K39tihGp AnGxVA4QYhrznxrDJ1rf+FLJ6kDGMpIYhaypg96i+YOqihat+my8UPX7U1J9cQuGFNGHp/EmLa7rK F3SnCIMxDg9sTHFBm3zE4bMzn63LA6Lf3iQTr1U/egysLEgzGB9Z/uJ+99zB0/dLEwU9ALgDmufqR Onv4qGVdqI8sK0/Z5EaQVKrFxm1U12o53/STZfWkkV5LfSdq680AkbYbeW3m73vzewDxZrbb8cgrt seDNvzDq8/P26GNhf2YXKfoI8aLlwrLiOAWQ4+KCT6D/6bhUvCgQpPr6EwcfvwMKDzE6vB2qlMIeS SFfgwgmx9jwAMCsmXZfw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wkd9J-00000001TxG-3ABM; Fri, 17 Jul 2026 07:38:21 +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 1wkd9H-00000001Twk-33IW for linux-phy@lists.infradead.org; Fri, 17 Jul 2026 07:38:19 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by sea.source.kernel.org (Postfix) with ESMTP id 7C2CB41AA9; Fri, 17 Jul 2026 07:38:19 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 130F01F000E9; Fri, 17 Jul 2026 07:38:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1784273899; bh=Khtv+NBajc5FxpYbYEIJ9LfpCaKjFzT6WDUADSHwox4=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=PhAWGk9WMTWaQsGDjQZRCyKjwy6gHZXycXKxNr9gUT59VZp8vB/NL3kRD1QWCw4Rj ld81mPSfCPUs+oUs00WzT9IQRKhA/TiijyWdBa0TkeuLwFTsPaNRGH5+x/UrCidPFZ KtvHOZi8DfDiuzUmUD59IUNFihRJGuOJf8tHdevb+pXw+IOMRm2WDgEMgKdrRA30KM YKFB1ScCL+JSZUbS8/0VpaDTJF5/AJfamUTp0sWUs1v0KdKFu10KQ64gLeTNGEMQAm Wt2rdQw3098kIdKakqD8MOPy1uQuvht95kN6avCoLL3cNT9cCl+sjTNvJOaPNqKXkd zCVKPS8WaSfzA== From: sashiko-bot@kernel.org Subject: Re: [PATCH v3 5/5] drm/rockchip: cdn-dp: Add multiple bridges to support PHY port selection To: "Chaoyi Chen" Cc: dri-devel@lists.freedesktop.org, olteanv@gmail.com, vkoul@kernel.org, linux-phy@lists.infradead.org, neil.armstrong@linaro.org In-Reply-To: <20260717072323.96-6-kernel@airkyi.com> References: <20260717072323.96-1-kernel@airkyi.com> <20260717072323.96-6-kernel@airkyi.com> Date: Fri, 17 Jul 2026 07:38:18 +0000 Message-Id: <20260717073819.130F01F000E9@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 OCBwb3RlbnRpYWwgaXNzdWUocykgdG8gY29uc2lkZXI6CgpOZXcgaXNzdWVzOgotIFtIaWdoXSBC dWZmZXIgb3ZlcmZsb3cgd2hlbiBwYXJzaW5nIGRldmljZSB0cmVlIGVuZHBvaW50cyBkdWUgdG8g bWlzc2luZyBib3VuZHMgY2hlY2suCi0gW0hpZ2hdIEJyb2tlbiBob3RwbHVnIGRldGVjdGlvbiBm b3IgbGVnYWN5IGV4dGNvbiBjb25maWd1cmF0aW9ucyBkdWUgdG8gdW5jb25kaXRpb25hbCBwb3J0 IHJldHVybi4KLSBbSGlnaF0gTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIGFuZCB1bmluaXRpYWxp emVkIG1lbW9yeSByZWFkIGlmIERUIGVuZHBvaW50cyBleGNlZWQgdmFsaWQgUEhZcy4KLSBbSGln aF0gUG9ydCBzd2l0Y2hpbmcgZHVyaW5nIEVESUQgcmVhZCBhbHdheXMgZmFpbHMgYmVjYXVzZSBg Y2RuX2RwX2NvbmZpZ192aWRlb2AgaXMgY2FsbGVkIHdpdGggYSB6ZXJvIGNsb2NrLgotIFtIaWdo XSBTdGFsZSBwb2ludGVycyBpbiBwZXJzaXN0ZW50IGFycmF5cyBjYXVzZSBkb3VibGUtZnJlZSBh bmQgdXNlLWFmdGVyLWZyZWUgb24gY29tcG9uZW50IHJlLWJpbmQuCi0gW0hpZ2hdIFdvcmtxdWV1 ZSBgZHAtPmV2ZW50X3dvcmtgIGlzIHNjaGVkdWxlZCBiZWZvcmUgYmVpbmcgaW5pdGlhbGl6ZWQs IGxlYWRpbmcgdG8gYSBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UuCi0gW01lZGl1bV0gTXVsdGlw bGUgZW5jb2RlcnMgc2hhcmUgYSBzaW5nbGUgaGFyZHdhcmUgRFAgY29udHJvbGxlciBidXQgbGFj ayBhbiBgYXRvbWljX2NoZWNrYCBjYWxsYmFjayB0byBwcmV2ZW50IHNpbXVsdGFuZW91cyBhY3Rp dmF0aW9uLgoKUHJlLWV4aXN0aW5nIGlzc3VlczoKLSBbSGlnaF0gVXNpbmcgYGRldm1fYCBBUElz IGluIHRoZSBjb21wb25lbnQgYGJpbmRgIGNhbGxiYWNrIGNhdXNlcyBzZXZlcmUgcmVzb3VyY2Ug bGVha3MgYW5kIGFjdGl2ZSBzdGFsZSBub3RpZmllcnMgYWZ0ZXIgYHVuYmluZGAuCi0tCgotLS0g UGF0Y2ggWzVdOiBbUEFUQ0ggdjMgNS81XSBkcm0vcm9ja2NoaXA6IGNkbi1kcDogQWRkIG11bHRp cGxlIGJyaWRnZXMgdG8gc3VwcG9ydCBQSFkgcG9ydCBzZWxlY3Rpb24gLS0tCmNvbW1pdCBhMGQ4 YjdhOGEzYTAxZDY4ZGRmOTcxZWNmZGI5MmNjYjExYzYwYjA5CkF1dGhvcjogQ2hhb3lpIENoZW4g PGNoYW95aS5jaGVuQHJvY2stY2hpcHMuY29tPgoKZHJtL3JvY2tjaGlwOiBjZG4tZHA6IEFkZCBt dWx0aXBsZSBicmlkZ2VzIHRvIHN1cHBvcnQgUEhZIHBvcnQgc2VsZWN0aW9uCgpUaGlzIHBhdGNo IGFkZHMgc3VwcG9ydCBmb3IgbXVsdGlwbGUgYnJpZGdlcyB0byBhbGxvdyBzZWxlY3RpbmcgYmV0 d2VlbgpkaWZmZXJlbnQgUEhZIHBvcnRzIG9uIHRoZSBSSzMzOTkgQ0ROLURQIGNvbnRyb2xsZXIu IEl0IHJlZ2lzdGVycyBhIHNlcGFyYXRlCmVuY29kZXIgYW5kIGJyaWRnZSBmb3IgZWFjaCBQSFkg cG9ydCBhbmQgcGFyc2VzIHRoZSBEVCB0byBoYW5kbGUgYnJpZGdlCmNoYWluIGNvbmZpZ3VyYXRp b25zLgoKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2Nkbi1kcC1jb3Jl LmMgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvY2RuLWRwLWNvcmUuYwo+IGluZGV4IDc0ZTFm NTQyMmE2ZTIuLjVlNTEzZjY5MzBjYjkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Jv Y2tjaGlwL2Nkbi1kcC1jb3JlLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvY2Ru LWRwLWNvcmUuYwpbIC4uLiBdCj4gQEAgLTE5MiwxNCArMTkzLDI3IEBAIHN0YXRpYyBpbnQgY2Ru X2RwX2dldF9zaW5rX2NvdW50KHN0cnVjdCBjZG5fZHBfZGV2aWNlICpkcCwgdTggKnNpbmtfY291 bnQpCj4gIHN0YXRpYyBzdHJ1Y3QgY2RuX2RwX3BvcnQgKmNkbl9kcF9jb25uZWN0ZWRfcG9ydChz dHJ1Y3QgY2RuX2RwX2RldmljZSAqZHApCj4gIHsKPiAgCXN0cnVjdCBjZG5fZHBfcG9ydCAqcG9y dDsKPiAtCWludCBpLCBsYW5lczsKPiArCWludCBpLCBsYW5lc1tNQVhfUEhZXTsKPiAgCj4gIAlm b3IgKGkgPSAwOyBpIDwgZHAtPnBvcnRzOyBpKyspIHsKPiAgCQlwb3J0ID0gZHAtPnBvcnRbaV07 Cj4gLQkJbGFuZXMgPSBjZG5fZHBfZ2V0X3BvcnRfbGFuZXMocG9ydCk7Cj4gLQkJaWYgKGxhbmVz KQo+ICsJCWxhbmVzW2ldID0gY2RuX2RwX2dldF9wb3J0X2xhbmVzKHBvcnQpOwo+ICsJCWlmICgh ZHAtPm5leHRfYnJpZGdlX3ZhbGlkKQo+ICAJCQlyZXR1cm4gcG9ydDsKCltTZXZlcml0eTogSGln aF0KRG9lcyB0aGlzIGJyZWFrIGhvdHBsdWcgZGV0ZWN0aW9uIGZvciBsZWdhY3kgZXh0Y29uIGNv bmZpZ3VyYXRpb25zPwoKQnkgcmVtb3ZpbmcgdGhlIGNoZWNrIGZvciBsYW5lcyA+IDAsIHRoaXMg d2lsbCB1bmNvbmRpdGlvbmFsbHkgcmV0dXJuIHRoZQpmaXJzdCBwb3J0IHJlZ2FyZGxlc3Mgb2Yg YWN0dWFsIGNvbm5lY3Rpb24gc3RhdHVzLgoKPiAgCX0KPiArCj4gKwlpZiAoZHAtPm5leHRfYnJp ZGdlX3ZhbGlkKSB7Cj4gKwkJLyogSWYgbW9yZSB0aGFuIG9uZSBwb3J0IGlzIGF2YWlsYWJsZSwg cGljayB0aGUgbGFzdCBhY3RpdmUgcG9ydCAqLwo+ICsJCWlmIChkcC0+YWN0aXZlX3BvcnQgPj0g MCAmJiBsYW5lc1tkcC0+YWN0aXZlX3BvcnRdKQo+ICsJCQlyZXR1cm4gZHAtPnBvcnRbZHAtPmFj dGl2ZV9wb3J0XTsKPiArCj4gKwkJLyogSWYgdGhlIGxhc3QgYWN0aXZlIHBvcnQgaXMgbm90IGF2 YWlsYWJsZSwgcGljayBhbiBhdmFpbGFibGUgcG9ydCBpbiBvcmRlciAqLwo+ICsJCWZvciAoaSA9 IDA7IGkgPCBkcC0+YnJpZGdlX2NvdW50OyBpKyspIHsKPiArCQkJaWYgKGxhbmVzW2ldKQo+ICsJ CQkJcmV0dXJuIGRwLT5wb3J0W2ldOwo+ICsJCX0KPiArCX0KCltTZXZlcml0eTogSGlnaF0KQ291 bGQgdGhpcyBsZWFkIHRvIGFuIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJlYWQgYW5kIE5VTEwgcG9p bnRlcgpkZXJlZmVyZW5jZT8KCklmIHRoZSBkZXZpY2UgdHJlZSBwcm92aWRlcyBtb3JlIGVuZHBv aW50cyB0aGFuIHByb2JlZCBQSFlzLApkcC0+YnJpZGdlX2NvdW50IHdpbGwgZXhjZWVkIGRwLT5w b3J0cy4gVGhpcyBsb29wIHdpbGwgYWNjZXNzCnVuaW5pdGlhbGl6ZWQgc3RhY2sgbWVtb3J5IGlu IGxhbmVzW2ldIGFuZCBwb3RlbnRpYWxseSByZXR1cm4gYSBOVUxMCmRwLT5wb3J0W2ldLCBjYXVz aW5nIGEgY3Jhc2ggbGF0ZXIgaW4gY2RuX2RwX2JyaWRnZV9lZGlkX3JlYWQoKSB3aGVuCmNoZWNr aW5nIHBvcnQtPnBoeV9lbmFibGVkLgoKWyAuLi4gXQo+IEBAIC01NTEsNiArNTk5LDUwIEBAIHN0 YXRpYyBib29sIGNkbl9kcF9jaGVja19saW5rX3N0YXR1cyhzdHJ1Y3QgY2RuX2RwX2RldmljZSAq ZHApCj4gK3N0YXRpYyBpbnQgY2RuX2RwX3N3aXRjaF9wb3J0KHN0cnVjdCBjZG5fZHBfZGV2aWNl ICpkcCwgc3RydWN0IGNkbl9kcF9wb3J0ICpwcmV2X3BvcnQsCj4gKwkJCSAgICAgIHN0cnVjdCBj ZG5fZHBfcG9ydCAqcG9ydCkKPiArewpbIC4uLiBdCj4gKwlpZiAoIWNkbl9kcF9jaGVja19saW5r X3N0YXR1cyhkcCkpIHsKPiArCQlkZXZfaW5mbyhkcC0+ZGV2LCAiQ29ubmVjdGVkIHdpdGggc2lu azsgcmUtdHJhaW4gbGlua1xuIik7Cj4gKwo+ICsJCXJldCA9IGNkbl9kcF90cmFpbl9saW5rKGRw KTsKPiArCQlpZiAocmV0KSB7Cj4gKwkJCWRldl9lcnIoZHAtPmRldiwgIlRyYWluaW5nIGxpbmsg ZmFpbGVkOiAlZFxuIiwgcmV0KTsKPiArCQkJZ290byBvdXQ7Cj4gKwkJfQo+ICsKPiArCQlyZXQg PSBjZG5fZHBfc2V0X3ZpZGVvX3N0YXR1cyhkcCwgQ09OVFJPTF9WSURFT19JRExFKTsKPiArCQlp ZiAocmV0KSB7Cj4gKwkJCWRldl9lcnIoZHAtPmRldiwgIkZhaWxlZCB0byBpZGxlIHZpZGVvICVk XG4iLCByZXQpOwo+ICsJCQlnb3RvIG91dDsKPiArCQl9Cj4gKwo+ICsJCXJldCA9IGNkbl9kcF9j b25maWdfdmlkZW8oZHApOwo+ICsJCWlmIChyZXQpCj4gKwkJCWRldl9lcnIoZHAtPmRldiwgIkZh aWxlZCB0byBjb25maWd1cmUgdmlkZW86ICVkXG4iLCByZXQpOwo+ICsJfQoKW1NldmVyaXR5OiBI aWdoXQpXaWxsIHRoaXMgcG9ydCBzd2l0Y2ggZmFpbCBjb25zaXN0ZW50bHkgZHVyaW5nIEVESUQg cmVhZCBvcGVyYXRpb25zPwoKV2hlbiBjZG5fZHBfYnJpZGdlX2VkaWRfcmVhZCgpIGNhbGxzIHRo aXMgZnVuY3Rpb24sIGRwLT5tb2RlLmNsb2NrIGlzCnR5cGljYWxseSAwLiBBIHplcm8gY2xvY2sg d2lsbCBjYXVzZSBjZG5fZHBfY29uZmlnX3ZpZGVvKCkgdG8gc3BpbiB1bnRpbAp0aW1lb3V0IGFu ZCByZXR1cm4gLUVJTlZBTCwgdGh1cyBhYm9ydGluZyB0aGUgRURJRCByZWFkLgoKWyAuLi4gXQo+ IEBAIC04MjgsNiArOTI3LDE3IEBAIHN0YXRpYyBpbnQgY2RuX2RwX2F1ZGlvX211dGVfc3RyZWFt KHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Jy aWRnZV9mdW5jcyBjZG5fZHBfYnJpZGdlX2Z1bmNzID0gewo+ICAJLmF0b21pY19kdXBsaWNhdGVf c3RhdGUgPSBkcm1fYXRvbWljX2hlbHBlcl9icmlkZ2VfZHVwbGljYXRlX3N0YXRlLAo+ICAJLmF0 b21pY19kZXN0cm95X3N0YXRlID0gZHJtX2F0b21pY19oZWxwZXJfYnJpZGdlX2Rlc3Ryb3lfc3Rh dGUsCj4gIAkuYXRvbWljX3Jlc2V0ID0gZHJtX2F0b21pY19oZWxwZXJfYnJpZGdlX3Jlc2V0LAo+ ICAJLmRldGVjdCA9IGNkbl9kcF9icmlkZ2VfZGV0ZWN0LAo+ICAJLmVkaWRfcmVhZCA9IGNkbl9k cF9icmlkZ2VfZWRpZF9yZWFkLAo+ICAJLmF0b21pY19lbmFibGUgPSBjZG5fZHBfYnJpZGdlX2F0 b21pY19lbmFibGUsCj4gIAkuYXRvbWljX2Rpc2FibGUgPSBjZG5fZHBfYnJpZGdlX2F0b21pY19k aXNhYmxlLAo+ICAJLm1vZGVfdmFsaWQgPSBjZG5fZHBfYnJpZGdlX21vZGVfdmFsaWQsCj4gIAku bW9kZV9zZXQgPSBjZG5fZHBfYnJpZGdlX21vZGVfc2V0LAo+ICsJLmhwZF9ub3RpZnkgPSBjZG5f ZHBfYnJpZGdlX2hwZF9ub3RpZnksCgpbU2V2ZXJpdHk6IE1lZGl1bV0KU2hvdWxkIHRoZXJlIGJl IGFuIGF0b21pY19jaGVjayBjYWxsYmFjayBoZXJlIHRvIHByZXZlbnQgc2ltdWx0YW5lb3VzCmFj dGl2YXRpb24gb2YgbXVsdGlwbGUgQ1JUQ3M/CgpTaW5jZSBhbGwgcmVnaXN0ZXJlZCBlbmNvZGVy cyBzaGFyZSB0aGUgc2FtZSBwb3NzaWJsZV9jcnRjcyBtYXNrIGZvciBhCnNpbmdsZSB1bmRlcmx5 aW5nIERQIGNvbnRyb2xsZXIsIHVzZXJzcGFjZSBjb3VsZCBwb3RlbnRpYWxseSBlbmFibGUKbXVs dGlwbGUgZGlzcGxheXMgYXQgb25jZSwgbGVhZGluZyB0byBoYXJkd2FyZSByZWdpc3RlciBjb3Jy dXB0aW9uLgoKWyAuLi4gXQo+IEBAIC0xMDMwLDYgKzExNDIsMTAxIEBAIHN0YXRpYyBpbnQgY2Ru X2RwX2JpbmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsIHZvaWQg KmRhdGEpCj4gK3N0YXRpYyBpbnQgY2RuX2RwX3BhcnNlX25leHRfYnJpZGdlX2R0KHN0cnVjdCBj ZG5fZHBfZGV2aWNlICpkcCkKPiArewpbIC4uLiBdCj4gKwlmb3JfZWFjaF9vZl9ncmFwaF9wb3J0 X2VuZHBvaW50KHBvcnQsIGRwX2VwKSB7Cj4gKwkJc3RydWN0IGRldmljZV9ub2RlICpuZXh0X2Jy aWRnZV9ub2RlIF9fZnJlZShkZXZpY2Vfbm9kZSkgPQo+ICsJCQlvZl9ncmFwaF9nZXRfcmVtb3Rl X3BvcnRfcGFyZW50KGRwX2VwKTsKPiArCj4gKwkJYnJpZGdlID0gb2ZfZHJtX2ZpbmRfYnJpZGdl KG5leHRfYnJpZGdlX25vZGUpOwo+ICsJCWlmICghYnJpZGdlKSB7Cj4gKwkJCXJldCA9IC1FUFJP QkVfREVGRVI7Cj4gKwkJCWdvdG8gb3V0Owo+ICsJCX0KPiArCj4gKwkJZHAtPm5leHRfYnJpZGdl X3ZhbGlkID0gdHJ1ZTsKPiArCQlkcC0+bmV4dF9icmlkZ2VfbGlzdFtjb3VudF0gPSBkcm1fYnJp ZGdlX2dldChicmlkZ2UpOwo+ICsJCWNvdW50Kys7Cj4gKwl9CgpbU2V2ZXJpdHk6IEhpZ2hdCkNv dWxkIHRoaXMgY29kZSBvdmVyZmxvdyB0aGUgZHAtPm5leHRfYnJpZGdlX2xpc3RbXSBhcnJheT8K ClRoZSBjb3VudCB2YXJpYWJsZSBpcyBpbmNyZW1lbnRlZCBmb3IgZWFjaCBlbmRwb2ludCBhbmQg dXNlZCBhcyBhbiBpbmRleCwKYnV0IGl0IGlzIG5ldmVyIGNoZWNrZWQgYWdhaW5zdCBNQVhfUEhZ LgoKWyAuLi4gXQo+IEBAIC0xMDMwLDYgKzExNDIsMTAxIEBAIHN0YXRpYyBpbnQgY2RuX2RwX2Jp bmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsIHZvaWQgKmRhdGEp Cj4gKwlmb3IgKGkgPSAwOyBpIDwgZHAtPmJyaWRnZV9jb3VudDsgaSsrKSB7Cj4gKwkJZHBfYnJp ZGdlID0gZGV2bV9kcm1fYnJpZGdlX2FsbG9jKGRldiwgc3RydWN0IGNkbl9kcF9icmlkZ2UsIGJy aWRnZSwKPiArCQkJCQkJICAgICZjZG5fZHBfYnJpZGdlX2Z1bmNzKTsKCltTZXZlcml0eTogSGln aF0KVGhpcyBpcyBhIHByZS1leGlzdGluZyBpc3N1ZSwgYnV0IGRvZXMgdXNpbmcgZGV2bV8gQVBJ cyBpbnNpZGUgYSBjb21wb25lbnQKYmluZCBjYWxsYmFjayBjYXVzZSBtZW1vcnkgbGVha3MgYW5k IHVzZS1hZnRlci1mcmVlIGNyYXNoZXM/CgpDb21wb25lbnQgdW5iaW5kIGRvZXMgbm90IHJlbGVh c2UgZGV2bV8gcmVzb3VyY2VzLCBtZWFuaW5nIHN0cnVjdHVyZXMgbGlrZQpkcF9icmlkZ2UgYW5k IHRoZSBleHRjb24gbm90aWZpZXJzIHJlbWFpbiBhY3RpdmUgYWZ0ZXIgdW5iaW5kIGFuZCB3aWxs CmxlYWsgb24gc3Vic2VxdWVudCByZS1iaW5kcy4KClsgLi4uIF0KPiArCWZvciAoaSA9IDA7IGkg PCBkcC0+YnJpZGdlX2NvdW50OyBpKyspIHsKPiArCQllbmNvZGVyID0gJmRwLT5icmlkZ2VfbGlz dFtpXS0+ZW5jb2Rlci5lbmNvZGVyOwo+ICsJCWJyaWRnZSA9ICZkcC0+YnJpZGdlX2xpc3RbaV0t PmJyaWRnZTsKPiArCQluZXh0X2JyaWRnZSA9IGRwLT5uZXh0X2JyaWRnZV9saXN0W2ldOwo+ICsJ CXJldCA9IGNkbl9icmlkZ2VfYWRkKGRldiwgYnJpZGdlLCBuZXh0X2JyaWRnZSwgZW5jb2Rlcik7 Cj4gKwkJaWYgKHJldCkKPiArCQkJZ290byBvdXQ7Cj4gKwl9Cj4gKwo+ICsJSU5JVF9XT1JLKCZk cC0+ZXZlbnRfd29yaywgY2RuX2RwX3BkX2V2ZW50X3dvcmspOwoKW1NldmVyaXR5OiBIaWdoXQpD YW4gdGhpcyBzZXF1ZW5jZSBjYXVzZSBhIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZT8KCkJ5IHJl Z2lzdGVyaW5nIHRoZSBicmlkZ2VzIHZpYSBjZG5fYnJpZGdlX2FkZCgpIGJlZm9yZSBjYWxsaW5n IElOSVRfV09SSywKYW4gZWFybHkgSFBEIGV2ZW50IGNhbiB0cmlnZ2VyIGNkbl9kcF9icmlkZ2Vf aHBkX25vdGlmeSgpIGFuZCBhdHRlbXB0IHRvCnNjaGVkdWxlIHRoZSB1bmluaXRpYWxpemVkIGRw LT5ldmVudF93b3JrIHF1ZXVlLgoKWyAuLi4gXQo+ICtvdXQ6Cj4gKwlmb3IgKGkgPSAwOyBpIDwg TUFYX1BIWTsgaSsrKQo+ICsJCWRybV9icmlkZ2VfcHV0KGRwLT5uZXh0X2JyaWRnZV9saXN0W2ld KTsKPiArCj4gKwlyZXR1cm4gcmV0Owo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZCBjZG5fZHBfdW5i aW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqbWFzdGVyLCB2b2lkICpkYXRh KQo+ICB7Cj4gIAlzdHJ1Y3QgY2RuX2RwX2RldmljZSAqZHAgPSBkZXZfZ2V0X2RydmRhdGEoZGV2 KTsKPiAtCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciA9ICZkcC0+ZW5jb2Rlci5lbmNvZGVy Owo+ICsJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyOwo+ICsJaW50IGk7Cj4gIAo+ICAJY2Fu Y2VsX3dvcmtfc3luYygmZHAtPmV2ZW50X3dvcmspOwo+IC0JZW5jb2Rlci0+ZnVuY3MtPmRlc3Ry b3koZW5jb2Rlcik7Cj4gKwlmb3IgKGkgPSAwOyBpIDwgZHAtPmJyaWRnZV9jb3VudDsgaSsrKSB7 Cj4gKwkJZW5jb2RlciA9ICZkcC0+YnJpZGdlX2xpc3RbaV0tPmVuY29kZXIuZW5jb2RlcjsKPiAr CQllbmNvZGVyLT5mdW5jcy0+ZGVzdHJveShlbmNvZGVyKTsKPiArCQlkcm1fYnJpZGdlX3B1dChk cC0+bmV4dF9icmlkZ2VfbGlzdFtpXSk7Cj4gKwl9Cj4gKwo+ICsJZm9yIChpID0gMDsgaSA8IE1B WF9QSFk7IGkrKykKPiArCQlkcm1fZWRpZF9mcmVlKGRwLT5lZGlkX2NhY2hlW2ldKTsKCltTZXZl cml0eTogSGlnaF0KRG9lcyB0aGlzIGxlYXZlIGRhbmdsaW5nIHBvaW50ZXJzIGluIHBlcnNpc3Rl bnQgYXJyYXlzIGFjcm9zcyBiaW5kL3VuYmluZApjeWNsZXM/CgpCZWNhdXNlIGRwIGlzIGFsbG9j YXRlZCBpbiBwcm9iZSwgZnJlZWluZyBkcC0+bmV4dF9icmlkZ2VfbGlzdCBhbmQKZHAtPmVkaWRf Y2FjaGUgaGVyZSB3aXRob3V0IHNldHRpbmcgdGhlbSB0byBOVUxMIGNhbiBsZWFkIHRvIGRvdWJs ZS1mcmVlcwpvciB1c2UtYWZ0ZXItZnJlZSBpc3N1ZXMgaWYgdGhlIGNvbXBvbmVudCBpcyByZWJv dW5kLgoKLS0gClNhc2hpa28gQUkgcmV2aWV3IMK3IGh0dHBzOi8vc2FzaGlrby5kZXYvIy9wYXRj aHNldC8yMDI2MDcxNzA3MjMyMy45Ni0xLWtlcm5lbEBhaXJreWkuY29tP3BhcnQ9NQoKLS0gCmxp bnV4LXBoeSBtYWlsaW5nIGxpc3QKbGludXgtcGh5QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cHM6 Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtcGh5Cg==