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 F04B6CD8C9D for ; Mon, 8 Jun 2026 07:22: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: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=QP0cO9+O0cJBMRGBpZ+VHpdQOLvloCdbLNEas4MDSwY=; b=qXgvZN5+z9+pZm /87PZvXi+sK1gCRUXUSBPqJUDPGsKLsvaOfDVWh8kdR6VNYT8krlj7eNAwqVyv1W8oaQeZ9tfyA12 w/3MRCGK/ZBLaYwAJMx3rxnIY71CHfkITMht/ZFRTCnOEUrDFeYe/HPtRIyG1jRxYfTaiCYFlgQmW ulwXhep7CPdYhhmGM5ofQL4kKuK2PVmV+RQR8PHffLhc64EoAMun47sL1u9/Ov5Ru6ey/vXAu0OX6 KanvE7CqAF3Ch9iuheuYoEl+n2k8W7vOnL7NBGcwMwnGW9vY3BlcujNzG1zakl6oL0iS3VGWJYJZg D0MaBtDTL075MftSfMIQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wWUJx-00000002yNu-2qJ1; Mon, 08 Jun 2026 07:22:53 +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 1wWUJw-00000002yNh-0bLJ for linux-phy@lists.infradead.org; Mon, 08 Jun 2026 07:22:52 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by sea.source.kernel.org (Postfix) with ESMTP id 7720542B64; Mon, 8 Jun 2026 07:22:51 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 176A21F00893; Mon, 8 Jun 2026 07:22:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1780903371; bh=chaueDOcCa9nvz2x0OIi4F1O0Po2a82gq6TAG29tfWU=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=P+kNXKqGJHyi7JdUiCk8CtOvh65aAeb77rD0uMOZXXcyUSOh6DNfQtogVJlcKOd3V MLI16T1rqnsbTgsHcODwNPFW2ocKt2UZIuRqU4S0CPY2kpJRlpOqyRDvVKQoNgKJRM d5tbO0NBWUYvZkKk9X7aDNZvPZA0W8Y3r7ReFxN23J/xxFne4e+x2nV8OiUbr5qCSZ u6fWE0VbORAs9CKs7r6YRvRGuDKUtLrEPrFe44HpMnIakqqJFPqPZMA6w4LbVwxFDe E3425DsfQbeZSn1UspUk9BzoZz/6WdepdnzOFxmsIlahN6+1BpA6QlLluLjdRH+s/N j1sgrxrkHpVSg== 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: linux-phy@lists.infradead.org, dri-devel@lists.freedesktop.org, olteanv@gmail.com, vkoul@kernel.org, neil.armstrong@linaro.org In-Reply-To: <20260608070805.88-6-kernel@airkyi.com> References: <20260608070805.88-6-kernel@airkyi.com> Date: Mon, 08 Jun 2026 07:22:50 +0000 Message-Id: <20260608072251.176A21F00893@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 MTEgcG90ZW50aWFsIGlzc3VlKHMpIHRvIGNvbnNpZGVyOgoKTmV3IGlzc3VlczoKLSBbSGlnaF0g YGNkbl9kcF9jb25uZWN0ZWRfcG9ydCgpYCB1bmNvbmRpdGlvbmFsbHkgcmV0dXJucyB0aGUgZmly c3QgcG9ydCBvbiBleHRjb24gc3lzdGVtcywgYnJlYWtpbmcgaG90cGx1ZyBkZXRlY3Rpb24uCi0g W0hpZ2hdIERhbmdsaW5nIHBvaW50ZXJzIGluIGBkcC0+bmV4dF9icmlkZ2VfbGlzdGAgY2F1c2Ug ZG91YmxlLWZyZWUgYW5kIHVzZS1hZnRlci1mcmVlIG9uIGJpbmQgcmV0cnkgb3IgdW5iaW5kLgot IFtIaWdoXSBNaXNtYXRjaCBiZXR3ZWVuIGBkcC0+cG9ydHNgIGFuZCBgZHAtPmJyaWRnZV9jb3Vu dGAgY2F1c2VzIHVuaW5pdGlhbGl6ZWQgc3RhY2sgcmVhZHMgYW5kIE5VTEwgcG9pbnRlciBkZXJl ZmVyZW5jZXMuCi0gW0hpZ2hdIEJ1ZmZlciBvdmVyZmxvdyB3aGVuIHBhcnNpbmcgRFQgZW5kcG9p bnRzIGluIGBjZG5fZHBfcGFyc2VfbmV4dF9icmlkZ2VfZHQoKWAuCi0gW0hpZ2hdIE1lbW9yeSBh bmQgcmVzb3VyY2UgbGVha3MgZHVlIHRvIGRldnJlcyAoYGRldm1fYCkgYWxsb2NhdGlvbnMgaW4g dGhlIGNvbXBvbmVudCBiaW5kIGNhbGxiYWNrLgotIFtIaWdoXSBIYXJkd2FyZSBtdWx0aXBsZXhp bmcgbG9naWMgZXJyb3IgYWxsb3dzIG11bHRpcGxlIGVuY29kZXJzIHRvIGJlIGVuYWJsZWQgc2lt dWx0YW5lb3VzbHksIGNvcnJ1cHRpbmcgaGFyZHdhcmUgc3RhdGUuCi0gW0hpZ2hdIERvdWJsZS1m cmVlIC8gVUFGIG9mIGNhY2hlZCBFRElEcyB1cG9uIHVuYmluZC9iaW5kIGN5Y2xlcy4KLSBbSGln aF0gYGNkbl9kcF9zd2l0Y2hfcG9ydCgpYCB1bmNvbmRpdGlvbmFsbHkgYXR0ZW1wdHMgdmlkZW8g Y29uZmlndXJhdGlvbiBkdXJpbmcgYW4gRURJRCBwcm9iZSwgYWJvcnRpbmcgdGhlIHBvcnQgc3dp dGNoLgotIFtNZWRpdW1dIERhdGEgcmFjZSBvbiBtdWx0aXBsZSBicmlkZ2UgY29ubmVjdGlvbiBz dGF0ZSB2YXJpYWJsZXMuCgpQcmUtZXhpc3RpbmcgaXNzdWVzOgotIFtIaWdoXSBOb3RpZmllciBj aGFpbiBjb3JydXB0aW9uIHZpYSBgZGV2bV9leHRjb25fcmVnaXN0ZXJfbm90aWZpZXIoKWAgaW5z aWRlIHRoZSBjb21wb25lbnQgYmluZCBjYWxsYmFjay4KLSBbSGlnaF0gVXNlLUFmdGVyLUZyZWUg dmlhIHVuY2FuY2VsbGVkIGV4dGNvbiBub3RpZmllcnMgYWZ0ZXIgY29tcG9uZW50IHVuYmluZC4K LS0KCmNvbW1pdCA4ZjczMjg4YTEwYTFlMmNkNjYyMThkYWE4YmU3ODc4NTk5N2RjMGUzCkF1dGhv cjogQ2hhb3lpIENoZW4gPGNoYW95aS5jaGVuQHJvY2stY2hpcHMuY29tPgpTdWJqZWN0OiBkcm0v cm9ja2NoaXA6IGNkbi1kcDogQWRkIG11bHRpcGxlIGJyaWRnZXMgdG8gc3VwcG9ydCBQSFkgcG9y dCBzZWxlY3Rpb24KClRoaXMgY29tbWl0IGFkZHMgc3VwcG9ydCBmb3IgbXVsdGlwbGUgYnJpZGdl cyB0byBhbGxvdyBmbGV4aWJsZSBzZWxlY3Rpb24Kb2YgdGhlIG91dHB1dCBwb3J0IG9uIFJLMzM5 OSBDRE4tRFAgY29udHJvbGxlcnMuIEl0IHJlZ2lzdGVycyBhIHNlcGFyYXRlCmVuY29kZXIgYW5k IGJyaWRnZSBmb3IgZWFjaCBQSFkgcG9ydCBhbmQgcGFyc2VzIERUIGNvbm5lY3Rpb25zIHRvIG1h cAp0aGVtIHByb3Blcmx5LgoKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlw L2Nkbi1kcC1jb3JlLmMgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvY2RuLWRwLWNvcmUuYwo+ IGluZGV4IDkwNjgxMTg4NTllMjEuLmYyZWFhZDYxYmE0NDAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3JvY2tjaGlwL2Nkbi1kcC1jb3JlLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v cm9ja2NoaXAvY2RuLWRwLWNvcmUuYwpbIC4uLiBdCj4gQEAgLTE5MiwxNCArMTkzLDI3IEBAIHN0 YXRpYyBpbnQgY2RuX2RwX2dldF9zaW5rX2NvdW50KHN0cnVjdCBjZG5fZHBfZGV2aWNlICpkcCwg dTggKnNpbmtfY291bnQpCj4gIHN0YXRpYyBzdHJ1Y3QgY2RuX2RwX3BvcnQgKmNkbl9kcF9jb25u ZWN0ZWRfcG9ydChzdHJ1Y3QgY2RuX2RwX2RldmljZSAqZHApCj4gIHsKPiAgCXN0cnVjdCBjZG5f ZHBfcG9ydCAqcG9ydDsKPiAtCWludCBpLCBsYW5lczsKPiArCWludCBpLCBsYW5lc1tNQVhfUEhZ XTsKPiAgCj4gIAlmb3IgKGkgPSAwOyBpIDwgZHAtPnBvcnRzOyBpKyspIHsKPiAgCQlwb3J0ID0g ZHAtPnBvcnRbaV07Cj4gLQkJbGFuZXMgPSBjZG5fZHBfZ2V0X3BvcnRfbGFuZXMocG9ydCk7Cj4g LQkJaWYgKGxhbmVzKQo+ICsJCWxhbmVzW2ldID0gY2RuX2RwX2dldF9wb3J0X2xhbmVzKHBvcnQp Owo+ICsJCWlmICghZHAtPm5leHRfYnJpZGdlX3ZhbGlkKQo+ICAJCQlyZXR1cm4gcG9ydDsKCltT ZXZlcml0eTogSGlnaF0KRG9lcyB0aGlzIHVuY29uZGl0aW9uYWxseSByZXR1cm4gdGhlIGZpcnN0 IHBvcnQgb24gZXh0Y29uIHN5c3RlbXM/CgpJbiBjZG5fZHBfY29ubmVjdGVkX3BvcnQoKSwgdGhl IGxvb3AgZXZhbHVhdGVzIGlmICghZHAtPm5leHRfYnJpZGdlX3ZhbGlkKQphbmQgcmV0dXJucyB0 aGUgcG9ydCBpbW1lZGlhdGVseSBvbiB0aGUgZmlyc3QgaXRlcmF0aW9uLiBJdCBjb21wbGV0ZWx5 Cmlnbm9yZXMgdGhlIGxhbmVzIGNvbm5lY3Rpb24gY2hlY2sgdGhhdCB3YXMgcHJlc2VudCBpbiB0 aGUgb2xkIGNvZGUuIEZvcgpzeXN0ZW1zIHJlbHlpbmcgb24gZXh0Y29uIGZvciBob3RwbHVnIGRl dGVjdGlvbiwgdGhpcyBtaWdodCBjYXVzZSB0aGUKZHJpdmVyIHRvIGFsd2F5cyByZXBvcnQgdGhl IGZpcnN0IHBvcnQgYXMgY29ubmVjdGVkIHRvIHVzZXJzcGFjZSwgZXZlbgp3aGVuIG5vdGhpbmcg aXMgcGx1Z2dlZCBpbi4KCj4gIAl9Cj4gKwo+ICsJaWYgKGRwLT5uZXh0X2JyaWRnZV92YWxpZCkg ewo+ICsJCS8qIElmIG1vcmUgdGhhbiBvbmUgcG9ydCBpcyBhdmFpbGFibGUsIHBpY2sgdGhlIGxh c3QgYWN0aXZlIHBvcnQgKi8KPiArCQlpZiAoZHAtPmFjdGl2ZV9wb3J0ID49IDAgJiYgbGFuZXNb ZHAtPmFjdGl2ZV9wb3J0XSkKPiArCQkJcmV0dXJuIGRwLT5wb3J0W2RwLT5hY3RpdmVfcG9ydF07 Cj4gKwo+ICsJCS8qIElmIHRoZSBsYXN0IGFjdGl2ZSBwb3J0IGlzIG5vdCBhdmFpbGFibGUsIHBp Y2sgYW4gYXZhaWxhYmxlIHBvcnQgaW4gb3JkZXIgKi8KPiArCQlmb3IgKGkgPSAwOyBpIDwgZHAt PmJyaWRnZV9jb3VudDsgaSsrKSB7Cj4gKwkJCWlmIChsYW5lc1tpXSkKPiArCQkJCXJldHVybiBk cC0+cG9ydFtpXTsKPiArCQl9Cj4gKwl9Cj4gKwo+ICAJcmV0dXJuIE5VTEw7Cj4gIH0KCltTZXZl cml0eTogSGlnaF0KQ2FuIHRoaXMgbG9vcCByZWFkIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IGZyb20g dGhlIGxhbmVzIGFycmF5PwoKVGhlIGxhbmVzIGFycmF5IGlzIG9ubHkgcG9wdWxhdGVkIHVwIHRv IGRwLT5wb3J0cywgYnV0IHRoaXMgbG9vcCBpdGVyYXRlcwp1cCB0byBkcC0+YnJpZGdlX2NvdW50 LiBJZiBhIGRldmljZSB0cmVlIGRlZmluZXMgbW9yZSBlbmRwb2ludHMgdGhhbiB0aGVyZQphcmUg c3VjY2Vzc2Z1bGx5IHByb2JlZCBQSFlzLCBkcC0+YnJpZGdlX2NvdW50IHdpbGwgZXhjZWVkIGRw LT5wb3J0cywKY2F1c2luZyBvdXQgb2YgYm91bmRzIHJlYWRzIG9uIHRoZSBzdGFjayBtZW1vcnku Cgo+IEBAIC0yNTQsMTIgKzI2OCw0NSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9lZGlkICoK PiAgY2RuX2RwX2JyaWRnZV9lZGlkX3JlYWQoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwgc3Ry dWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiAgewo+ICAJc3RydWN0IGNkbl9kcF9kZXZp Y2UgKmRwID0gYnJpZGdlX3RvX2RwKGJyaWRnZSk7Cj4gLQljb25zdCBzdHJ1Y3QgZHJtX2VkaWQg KmRybV9lZGlkOwo+ICsJc3RydWN0IGNkbl9kcF9icmlkZ2UgKmRwX2JyaWRnZSA9IGJyaWRnZV90 b19kcF9icmlkZ2UoYnJpZGdlKTsKPiArCXN0cnVjdCBjZG5fZHBfcG9ydCAqcG9ydCA9IGRwLT5w b3J0W2RwX2JyaWRnZS0+aWRdOwoKW1NldmVyaXR5OiBIaWdoXQpDb3VsZCB0aGlzIGRlcmVmZXJl bmNlIGEgTlVMTCBwb2ludGVyPwoKSWYgZHAtPmJyaWRnZV9jb3VudCBleGNlZWRzIGRwLT5wb3J0 cyBkdWUgdG8gYSBQSFkgcHJvYmUgZmFpbHVyZSwKZHBfYnJpZGdlLT5pZCBjYW4gYmUgZ3JlYXRl ciB0aGFuIG9yIGVxdWFsIHRvIGRwLT5wb3J0cy4gSW5kZXhpbmcgZHAtPnBvcnQKd2l0aCBkcF9i cmlkZ2UtPmlkIHdvdWxkIHJldHVybiBOVUxMLCBsZWFkaW5nIHRvIGEga2VybmVsIHBhbmljIHdo ZW4KcG9ydC0+cGh5X2VuYWJsZWQgaXMgZXZhbHVhdGVkIGJlbG93LgoKPiArCXN0cnVjdCBjZG5f ZHBfcG9ydCAqcHJldl9wb3J0ID0gTlVMTDsKPiArCWNvbnN0IHN0cnVjdCBkcm1fZWRpZCAqZHJt X2VkaWQgPSBOVUxMOwo+ICsJaW50IGksIHJldDsKPiAgCj4gIAltdXRleF9sb2NrKCZkcC0+bG9j ayk7Cj4gKwo+ICsJLyogTW9yZSB0aGFuIG9uZSBwb3J0IGlzIGF2YWlsYWJsZSAqLwo+ICsJaWYg KGRwLT5icmlkZ2VfY291bnQgPiAxICYmICFwb3J0LT5waHlfZW5hYmxlZCkgewo+ICsJCWZvciAo aSA9IDA7IGkgPCBkcC0+YnJpZGdlX2NvdW50OyBpKyspIHsKPiArCQkJLyogQW5vdGhlciBwb3J0 IGFscmVhZHkgZW5hYmxlICovCj4gKwkJCWlmIChkcC0+YnJpZGdlX2xpc3RbaV0gIT0gZHBfYnJp ZGdlICYmIGRwLT5icmlkZ2VfbGlzdFtpXS0+ZW5hYmxlZCkKPiArCQkJCWdvdG8gZ2V0X2NhY2hl Owo+ICsJCQkvKiBGaW5kIGFscmVhZHkgZW5hYmxlZCBwb3J0ICovCj4gKwkJCWlmIChkcC0+cG9y dFtpXS0+cGh5X2VuYWJsZWQpCj4gKwkJCQlwcmV2X3BvcnQgPSBkcC0+cG9ydFtpXTsKPiArCQl9 Cj4gKwo+ICsJCS8qIFN3aXRjaCB0byBjdXJyZW50IHBvcnQgKi8KPiArCQlpZiAocHJldl9wb3J0 KSB7Cj4gKwkJCXJldCA9IGNkbl9kcF9zd2l0Y2hfcG9ydChkcCwgcHJldl9wb3J0LCBwb3J0KTsK PiArCQkJaWYgKHJldCkKPiArCQkJCWdvdG8gZ2V0X2NhY2hlOwo+ICsJCX0KPiArCX0KPiArCj4g IAlkcm1fZWRpZCA9IGRybV9lZGlkX3JlYWRfY3VzdG9tKGNvbm5lY3RvciwgY2RuX2RwX2dldF9l ZGlkX2Jsb2NrLCBkcCk7Cj4gKwkvKiByZXBsYWNlIGVkaWQgY2FjaGUgKi8KPiArCWlmIChkcC0+ ZWRpZF9jYWNoZVtkcF9icmlkZ2UtPmlkXSkKPiArCQlkcm1fZWRpZF9mcmVlKGRwLT5lZGlkX2Nh Y2hlW2RwX2JyaWRnZS0+aWRdKTsKPiArCWRwLT5lZGlkX2NhY2hlW2RwX2JyaWRnZS0+aWRdID0g ZHJtX2VkaWRfZHVwKGRybV9lZGlkKTsKCltTZXZlcml0eTogSGlnaF0KQ2FuIHRoaXMgY2F1c2Ug YSBkb3VibGUtZnJlZSBvbiB0aGUgY2FjaGVkIEVESUQ/CgpJbiBjZG5fZHBfdW5iaW5kKCksIHRo ZSBjYWNoZWQgRURJRHMgYXJlIGZyZWVkIGJ1dCB0aGUgYXJyYXkgcG9pbnRlcnMKYXJlIG5vdCBz ZXQgdG8gTlVMTC4gU2luY2UgdGhlIGRwIGNvbnRleHQgc3RydWN0dXJlIG91dGxpdmVzIHRoZSB1 bmJpbmQgYW5kCmJpbmQgY3ljbGUsIHRoZSBuZXh0IHRpbWUgdGhlIGNvbXBvbmVudCBpcyBib3Vu ZCBhbmQgdGhpcyBFRElEIHJlYWQKZnVuY3Rpb24gaXMgY2FsbGVkLCBpdCBtaWdodCBhdHRlbXB0 IHRvIGZyZWUgdGhlIGRhbmdsaW5nIHBvaW50ZXIgYWdhaW4uCgpbIC4uLiBdCj4gQEAgLTU1MSw2 ICs1OTksNTAgQEAgc3RhdGljIGJvb2wgY2RuX2RwX2NoZWNrX2xpbmtfc3RhdHVzKHN0cnVjdCBj ZG5fZHBfZGV2aWNlICpkcCkKPiAgCXJldHVybiBkcm1fZHBfY2hhbm5lbF9lcV9vayhsaW5rX3N0 YXR1cywgbWluKHBvcnQtPmxhbmVzLCBzaW5rX2xhbmVzKSk7Cj4gIH0KPiAgCj4gK3N0YXRpYyBp bnQgY2RuX2RwX3N3aXRjaF9wb3J0KHN0cnVjdCBjZG5fZHBfZGV2aWNlICpkcCwgc3RydWN0IGNk bl9kcF9wb3J0ICpwcmV2X3BvcnQsCj4gKwkJCSAgICAgIHN0cnVjdCBjZG5fZHBfcG9ydCAqcG9y dCkKPiArewpbIC4uLiBdCj4gKwlpZiAoIWNkbl9kcF9jaGVja19saW5rX3N0YXR1cyhkcCkpIHsK PiArCQlkZXZfaW5mbyhkcC0+ZGV2LCAiQ29ubmVjdGVkIHdpdGggc2luazsgcmUtdHJhaW4gbGlu a1xuIik7Cj4gKwo+ICsJCXJldCA9IGNkbl9kcF90cmFpbl9saW5rKGRwKTsKPiArCQlpZiAocmV0 KSB7Cj4gKwkJCWRldl9lcnIoZHAtPmRldiwgIlRyYWluaW5nIGxpbmsgZmFpbGVkOiAlZFxuIiwg cmV0KTsKPiArCQkJZ290byBvdXQ7Cj4gKwkJfQo+ICsKPiArCQlyZXQgPSBjZG5fZHBfc2V0X3Zp ZGVvX3N0YXR1cyhkcCwgQ09OVFJPTF9WSURFT19JRExFKTsKPiArCQlpZiAocmV0KSB7Cj4gKwkJ CWRldl9lcnIoZHAtPmRldiwgIkZhaWxlZCB0byBpZGxlIHZpZGVvICVkXG4iLCByZXQpOwo+ICsJ CQlnb3RvIG91dDsKPiArCQl9Cj4gKwo+ICsJCXJldCA9IGNkbl9kcF9jb25maWdfdmlkZW8oZHAp Owo+ICsJCWlmIChyZXQpCj4gKwkJCWRldl9lcnIoZHAtPmRldiwgIkZhaWxlZCB0byBjb25maWd1 cmUgdmlkZW86ICVkXG4iLCByZXQpOwo+ICsJfQo+ICsKPiArb3V0Ogo+ICsJcmV0dXJuIHJldDsK PiArfQoKW1NldmVyaXR5OiBIaWdoXQpXaWxsIHRoaXMgdmlkZW8gY29uZmlndXJhdGlvbiBmYWls IGFuZCBhYm9ydCB0aGUgcG9ydCBzd2l0Y2ggZHVyaW5nIEVESUQgcHJvYmluZz8KCldoZW4gcmVh ZGluZyBhbiBFRElEIG9uIGFuIGluYWN0aXZlIHBvcnQsIGNkbl9kcF9icmlkZ2VfZWRpZF9yZWFk KCkgY2FsbHMKY2RuX2RwX3N3aXRjaF9wb3J0KCkuIEhvd2V2ZXIsIHRoZXJlIGlzIG5vIGRpc3Bs YXkgbW9kZSBhc3NpZ25lZCB5ZXQgZHVyaW5nCmVhcmx5IEVESUQgcHJvYmluZywgc28gZHAtPm1v ZGUuY2xvY2sgaXMgMC4gQ2FsbGluZyBjZG5fZHBfY29uZmlnX3ZpZGVvKCkKaGVyZSBjYWxjdWxh dGVzIGEgc3ltYm9sIHZhbHVlIG9mIDAsIHdoaWNoIHRyaWdnZXJzIGFuIGFyaXRobWV0aWMKdmFs aWRhdGlvbiBsb29wIGZhaWx1cmUgcmV0dXJuaW5nIC1FSU5WQUwuIFRoaXMgbWlnaHQgYWJvcnQg dGhlIHBvcnQgc3dpdGNoCmVudGlyZWx5LgoKWyAuLi4gXQo+IEBAIC02MDAsNiArNjkzLDkgQEAg c3RhdGljIHZvaWQgY2RuX2RwX2JyaWRnZV9hdG9taWNfZW5hYmxlKHN0cnVjdCBkcm1fYnJpZGdl ICpicmlkZ2UsIHN0cnVjdCBkcm1fYXQKPiAgCj4gIAltdXRleF9sb2NrKCZkcC0+bG9jayk7Cj4g IAo+ICsJaWYgKGRwLT5uZXh0X2JyaWRnZV92YWxpZCkKPiArCQlkcC0+YWN0aXZlX3BvcnQgPSBk cF9icmlkZ2UtPmlkOwo+ICsKPiAgCXJldCA9IGNkbl9kcF9lbmFibGUoZHApOwoKW1NldmVyaXR5 OiBIaWdoXQpEb2VzIHRoaXMgbG9naWMgYWxsb3cgbXVsdGlwbGUgZW5jb2RlcnMgdG8gYmUgZW5h YmxlZCBzaW11bHRhbmVvdXNseSBhbmQKY29ycnVwdCBoYXJkd2FyZSBzdGF0ZT8KCklmIGEgc2Vj b25kIGVuY29kZXIgaXMgZW5hYmxlZCwgY2RuX2RwX2JyaWRnZV9hdG9taWNfZW5hYmxlKCkgc2V0 cwpkcC0+YWN0aXZlX3BvcnQsIGJ1dCBjZG5fZHBfZW5hYmxlKCkgd2lsbCBleGl0IGVhcmx5IGJl Y2F1c2UgZHAtPmFjdGl2ZSBpcwphbHJlYWR5IHRydWUuIFRoZSBoYXJkd2FyZSBwb3J0IHN3aXRj aCBpcyBuZXZlciBleGVjdXRlZC4gV2l0aG91dCBhbgphdG9taWNfY2hlY2sgdG8gcHJldmVudCBj b25jdXJyZW50IGNvbW1pdHMsIHRoZSBzaGFyZWQgaGFyZHdhcmUgY29udHJvbGxlcgptaWdodCBi ZSBwbGFjZWQgaW50byBhbiBpbnZhbGlkIHN0YXRlLgoKWyAuLi4gXQo+IEBAIC02MzksOSArNzM2 LDExIEBAIHN0YXRpYyB2b2lkIGNkbl9kcF9icmlkZ2VfYXRvbWljX2VuYWJsZShzdHJ1Y3QgZHJt X2JyaWRnZSAqYnJpZGdlLCBzdHJ1Y3QgZHJtX2F0Cj4gIHN0YXRpYyB2b2lkIGNkbl9kcF9icmlk Z2VfYXRvbWljX2Rpc2FibGUoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwgc3RydWN0IGRybV9h dG9taWNfc3RhdGUgKnN0YXRlKQo+ICB7Cj4gIAlzdHJ1Y3QgY2RuX2RwX2RldmljZSAqZHAgPSBi cmlkZ2VfdG9fZHAoYnJpZGdlKTsKPiArCXN0cnVjdCBjZG5fZHBfYnJpZGdlICpkcF9icmlkZ2Ug PSBicmlkZ2VfdG9fZHBfYnJpZGdlKGJyaWRnZSk7Cj4gIAlpbnQgcmV0Owo+ICAKPiAgCW11dGV4 X2xvY2soJmRwLT5sb2NrKTsKPiArCWRwX2JyaWRnZS0+ZW5hYmxlZCA9IGZhbHNlOwo+ICAKPiAg CWlmIChkcC0+YWN0aXZlKSB7Cj4gIAkJcmV0ID0gY2RuX2RwX2Rpc2FibGUoZHApOwoKW1NldmVy aXR5OiBIaWdoXQpXaWxsIHRoaXMgdW5jb25kaXRpb25hbGx5IGRpc2FibGUgdGhlIHNoYXJlZCBo YXJkd2FyZSByZWdhcmRsZXNzIG9mIG90aGVyCmFjdGl2ZSBlbmNvZGVycz8KCkJlY2F1c2UgdGhl IERQIGNvbnRyb2xsZXIgaXMgc2hhcmVkLCBpZiBvbmUgZW5jb2RlciBpcyBkaXNhYmxlZCB3aGls ZQphbm90aGVyIGlzIHN0aWxsIGFjdGl2ZSwgY2RuX2RwX2Rpc2FibGUoKSB0dXJucyBvZmYgdGhl IHNoYXJlZCBoYXJkd2FyZQpjb250cm9sbGVyLiBUaGlzIHdvdWxkIGluc3RhbnRseSBjcmFzaCB0 aGUgc3RyZWFtIGZvciB0aGUgb3RoZXIgYWN0aXZlCmVuY29kZXIuCgpbIC4uLiBdCj4gQEAgLTgy OCw2ICs5MjcsMTcgQEAgc3RhdGljIGludCBjZG5fZHBfYXVkaW9fbXV0ZV9zdHJlYW0oc3RydWN0 IGRybV9icmlkZ2UgKmJyaWRnZSwKPiAgCXJldHVybiByZXQ7Cj4gIH0KPiAgCj4gK3N0YXRpYyB2 b2lkIGNkbl9kcF9icmlkZ2VfaHBkX25vdGlmeShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAo+ ICsJCQkJICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ICsJCQkJICAgICBl bnVtIGRybV9jb25uZWN0b3Jfc3RhdHVzIHN0YXR1cykKPiArewo+ICsJc3RydWN0IGNkbl9kcF9i cmlkZ2UgKmRwX2JyaWRnZSA9IGJyaWRnZV90b19kcF9icmlkZ2UoYnJpZGdlKTsKPiArCXN0cnVj dCBjZG5fZHBfZGV2aWNlICpkcCA9IGJyaWRnZV90b19kcChicmlkZ2UpOwo+ICsKPiArCWRwLT5i cmlkZ2VfbGlzdFtkcF9icmlkZ2UtPmlkXS0+Y29ubmVjdGVkID0gc3RhdHVzID09IGNvbm5lY3Rv cl9zdGF0dXNfY29ubmVjdGVkOwo+ICsJc2NoZWR1bGVfd29yaygmZHAtPmV2ZW50X3dvcmspOwo+ ICt9CgpbU2V2ZXJpdHk6IE1lZGl1bV0KSXMgdGhpcyB1cGRhdGluZyBjb25uZWN0aW9uIHN0YXRl IHdpdGhvdXQgaG9sZGluZyB0aGUgYXBwcm9wcmlhdGUgbG9jaz8KClRoZSBjb25uZWN0aW9uIGZs YWcgaXMgbW9kaWZpZWQgaGVyZSB3aXRob3V0IGFjcXVpcmluZyBkcC0+bG9jay4gQXQgdGhlCnNh bWUgdGltZSwgY2RuX2RwX3BkX2V2ZW50X3dvcmsoKSByZWFkcyB0aGVzZSBjb25uZWN0aW9uIHN0 YXRlcyBpdGVyYXRpdmVseQp3aGlsZSBleHBsaWNpdGx5IGRyb3BwaW5nIGRwLT5sb2NrLiBUaGlz IG1pZ2h0IGNhdXNlIGEgZGF0YSByYWNlIHdoZW4KZXZhbHVhdGluZyBjb21wb3VuZCBjb25uZWN0 aW9uIGZsYWdzIGZvciByZXBvcnRpbmcgdG8gdXNlcnNwYWNlLgoKWyAuLi4gXQo+IEBAIC0xMDAz LDI2ICsxMTA2LDM1IEBAIHN0YXRpYyBpbnQgY2RuX2RwX2JpbmQoc3RydWN0IGRldmljZSAqZGV2 LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsIHZvaWQgKmRhdGEpClsgLi4uIF0KPiArc3RhdGljIGlu dCBjZG5fZHBfcGFyc2VfbmV4dF9icmlkZ2VfZHQoc3RydWN0IGNkbl9kcF9kZXZpY2UgKmRwKQo+ ICt7Cj4gKwlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wID0gZHAtPmRldi0+b2Zfbm9kZTsKPiArCXN0 cnVjdCBkZXZpY2Vfbm9kZSAqcG9ydCBfX2ZyZWUoZGV2aWNlX25vZGUpID0gb2ZfZ3JhcGhfZ2V0 X3BvcnRfYnlfaWQobnAsIDEpOwo+ICsJc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZTsKPiArCWlu dCBjb3VudCA9IDA7Cj4gKwlpbnQgcmV0ID0gMDsKPiArCWludCBpOwpbIC4uLiBdCj4gKwkvKiBP bmUgZW5kcG9pbnQgbWF5IGNvcnJlc3BvbmQgdG8gb25lIG5leHQgYnJpZGdlLiAqLwo+ICsJZm9y X2VhY2hfb2ZfZ3JhcGhfcG9ydF9lbmRwb2ludChwb3J0LCBkcF9lcCkgewo+ICsJCXN0cnVjdCBk ZXZpY2Vfbm9kZSAqbmV4dF9icmlkZ2Vfbm9kZSBfX2ZyZWUoZGV2aWNlX25vZGUpID0KPiArCQkJ b2ZfZ3JhcGhfZ2V0X3JlbW90ZV9wb3J0X3BhcmVudChkcF9lcCk7Cj4gKwo+ICsJCWJyaWRnZSA9 IG9mX2RybV9maW5kX2JyaWRnZShuZXh0X2JyaWRnZV9ub2RlKTsKPiArCQlpZiAoIWJyaWRnZSkg ewo+ICsJCQlyZXQgPSAtRVBST0JFX0RFRkVSOwo+ICsJCQlnb3RvIG91dDsKPiArCQl9Cj4gKwo+ ICsJCWRwLT5uZXh0X2JyaWRnZV92YWxpZCA9IHRydWU7Cj4gKwkJZHAtPm5leHRfYnJpZGdlX2xp c3RbY291bnRdID0gZHJtX2JyaWRnZV9nZXQoYnJpZGdlKTsKPiArCQljb3VudCsrOwo+ICsJfQoK W1NldmVyaXR5OiBIaWdoXQpDYW4gdGhpcyBvdmVyZmxvdyB0aGUgbmV4dF9icmlkZ2VfbGlzdCBh cnJheT8KClRoZSBmb3JfZWFjaF9vZl9ncmFwaF9wb3J0X2VuZHBvaW50IGxvb3AgaXRlcmF0ZXMg b3ZlciBhbGwgZW5kcG9pbnRzIGRlZmluZWQKaW4gdGhlIGRldmljZSB0cmVlIGFuZCBzdG9yZXMg ZWFjaCByZXNvbHZlZCBicmlkZ2UgaW4KZHAtPm5leHRfYnJpZGdlX2xpc3RbY291bnRdLiBTaW5j ZSBuZXh0X2JyaWRnZV9saXN0IGlzIGEgZml4ZWQtc2l6ZSBhcnJheQpvZiBNQVhfUEhZICgyKSwg YSBkZXZpY2UgdHJlZSBkZWZpbmluZyAzIG9yIG1vcmUgZW5kcG9pbnRzIHdvdWxkIGNhdXNlIGEK YnVmZmVyIG92ZXJmbG93LCBjb3JydXB0aW5nIGFkamFjZW50IGRyaXZlciBtZW1vcnkuCgpbIC4u LiBdCj4gKwlmb3IgKGkgPSAwOyBpIDwgZHAtPmJyaWRnZV9jb3VudDsgaSsrKSB7Cj4gKwkJZHBf YnJpZGdlID0gZGV2bV9kcm1fYnJpZGdlX2FsbG9jKGRldiwgc3RydWN0IGNkbl9kcF9icmlkZ2Us IGJyaWRnZSwKPiArCQkJCQkJICAgICZjZG5fZHBfYnJpZGdlX2Z1bmNzKTsKPiArCQlpZiAoSVNf RVJSKGRwX2JyaWRnZSkpIHsKPiArCQkJcmV0ID0gUFRSX0VSUihkcF9icmlkZ2UpOwo+ICsJCQln b3RvIG91dDsKPiArCQl9Cj4gKwkJZHBfYnJpZGdlLT5pZCA9IGk7Cj4gKwkJZHBfYnJpZGdlLT5w YXJlbnQgPSBkcDsKPiArCQlpZiAoIWRwLT5uZXh0X2JyaWRnZV92YWxpZCkKPiArCQkJZHBfYnJp ZGdlLT5jb25uZWN0ZWQgPSB0cnVlOwo+ICsJCWRwLT5icmlkZ2VfbGlzdFtpXSA9IGRwX2JyaWRn ZTsKPiArCX0KCltTZXZlcml0eTogSGlnaF0KRG9lcyBhbGxvY2F0aW5nIGRldm0gcmVzb3VyY2Vz IGluc2lkZSB0aGUgY29tcG9uZW50IGJpbmQgY2FsbGJhY2sgY2F1c2UgbWVtb3J5IGxlYWtzPwoK VGhlIGNvbXBvbmVudCBmcmFtZXdvcmsgcmVxdWlyZXMgcmVzb3VyY2VzIGFsbG9jYXRlZCBpbiBi aW5kKCkgdG8gYmUgZnJlZWQKaW4gdW5iaW5kKCkuIFRoZSBkcml2ZXIgdXNlcyBkZXZtX2RybV9i cmlkZ2VfYWxsb2MoKSBhbmQgdGhlbiBjYWxscwpkZXZtX2RybV9icmlkZ2VfYWRkKCkgaW5zaWRl IGNkbl9icmlkZ2VfYWRkKCkuIFRoZXNlIHJlc291cmNlcyBhcmUgdGllZCB0bwp0aGUgbGlmZXRp bWUgb2YgdGhlIGNvbXBvbmVudCBkZXZpY2UsIG5vdCB0aGUgYmluZCBjeWNsZS4gRXZlcnkgdGlt ZSB0aGUKY29tcG9uZW50IGlzIGJvdW5kLCBzdWNoIGFzIGFmdGVyIGFuIC1FUFJPQkVfREVGRVIg b3IgdW5iaW5kL3JlYmluZCwgbmV3CmJyaWRnZSBtZW1vcnkgaXMgYWxsb2NhdGVkIGFuZCBuZXcg YnJpZGdlcyBhcmUgcmVnaXN0ZXJlZCwgbGVha2luZyBtZW1vcnkKYW5kIHBpbGluZyB1cCBkdXBs aWNhdGUgRFJNIGJyaWRnZXMuCgpbIC4uLiBdCj4gIAlmb3IgKGkgPSAwOyBpIDwgZHAtPnBvcnRz OyBpKyspIHsKPiAgCQlwb3J0ID0gZHAtPnBvcnRbaV07Cj4gIAo+IEBAIC0xMDQ1LDcgKzEyNTIs NyBAQCBzdGF0aWMgaW50IGNkbl9kcF9iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRl dmljZSAqbWFzdGVyLCB2b2lkICpkYXRhKQo+ICAJCWlmIChyZXQpIHsKPiAgCQkJRFJNX0RFVl9F UlJPUihkZXYsCj4gIAkJCQkgICAgICAicmVnaXN0ZXIgRVhUQ09OX0RJU1BfRFAgbm90aWZpZXIg ZXJyXG4iKTsKPiAtCQkJcmV0dXJuIHJldDsKPiArCQkJZ290byBvdXQ7Cj4gIAkJfQo+ICAJfQoK W1NldmVyaXR5OiBIaWdoXQpUaGlzIGlzIGEgcHJlLWV4aXN0aW5nIGlzc3VlLCBidXQgZG9lcyB1 c2luZyBkZXZtX2V4dGNvbl9yZWdpc3Rlcl9ub3RpZmllcgppbiB0aGUgYmluZCBjYWxsYmFjayBj b3JydXB0IHRoZSBub3RpZmllciBjaGFpbj8KCkJlY2F1c2UgZGV2bV9leHRjb25fcmVnaXN0ZXJf bm90aWZpZXIgaXMgbWFuYWdlZCBieSBkZXZpY2UgcmVtb3ZhbCwgaXQgZG9lcwpub3QgdW5yZWdp c3RlciB0aGUgbm90aWZpZXIgaW4gY2RuX2RwX3VuYmluZCgpLiBXaGVuIHRoZSBjb21wb25lbnQg aXMgYm91bmQKYSBzZWNvbmQgdGltZSwgdGhlIGV4YWN0IHNhbWUgZXZlbnRfbmIgb2JqZWN0IGlz IHJlLXJlZ2lzdGVyZWQgdG8gdGhlCmV4dGNvbiBub3RpZmllciBjaGFpbi4gQWRkaW5nIGFuIGFs cmVhZHktbGlua2VkIG5vZGUgdG8gYSBsaXN0IGNyZWF0ZXMgYW4KaW5maW5pdGUgY3ljbGUsIGxl YWRpbmcgdG8gYSBoYXJkIGxvY2t1cCB0aGUgbmV4dCB0aW1lIHRoZSBub3RpZmllciBmaXJlcy4K Cj4gQEAgLTEwNTQsMTUgKzEyNjEsMjkgQEAgc3RhdGljIGludCBjZG5fZHBfYmluZChzdHJ1Y3Qg ZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3Rlciwgdm9pZCAqZGF0YSkKPiAgCXNjaGVk dWxlX3dvcmsoJmRwLT5ldmVudF93b3JrKTsKPiAgCj4gIAlyZXR1cm4gMDsKPiArCj4gK291dDoK PiArCWZvciAoaSA9IDA7IGkgPCBNQVhfUEhZOyBpKyspCj4gKwkJZHJtX2JyaWRnZV9wdXQoZHAt Pm5leHRfYnJpZGdlX2xpc3RbaV0pOwo+ICsKPiArCXJldHVybiByZXQ7Cj4gIH0KPiAgCj4gIHN0 YXRpYyB2b2lkIGNkbl9kcF91bmJpbmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNl ICptYXN0ZXIsIHZvaWQgKmRhdGEpCj4gIHsKPiAgCXN0cnVjdCBjZG5fZHBfZGV2aWNlICpkcCA9 IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+IC0Jc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyID0g JmRwLT5lbmNvZGVyLmVuY29kZXI7Cj4gKwlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXI7Cj4g KwlpbnQgaTsKPiAgCj4gIAljYW5jZWxfd29ya19zeW5jKCZkcC0+ZXZlbnRfd29yayk7Cj4gLQll bmNvZGVyLT5mdW5jcy0+ZGVzdHJveShlbmNvZGVyKTsKPiArCWZvciAoaSA9IDA7IGkgPCBkcC0+ YnJpZGdlX2NvdW50OyBpKyspIHsKPiArCQllbmNvZGVyID0gJmRwLT5icmlkZ2VfbGlzdFtpXS0+ ZW5jb2Rlci5lbmNvZGVyOwo+ICsJCWVuY29kZXItPmZ1bmNzLT5kZXN0cm95KGVuY29kZXIpOwo+ ICsJCWRybV9icmlkZ2VfcHV0KGRwLT5uZXh0X2JyaWRnZV9saXN0W2ldKTsKPiArCX0KCltTZXZl cml0eTogSGlnaF0KQ291bGQgdGhpcyBsZWF2ZSBkYW5nbGluZyBwb2ludGVycyBpbiBkcC0+bmV4 dF9icmlkZ2VfbGlzdCBjYXVzaW5nIGEgZG91YmxlLWZyZWU/CgpJZiBjZG5fZHBfYmluZCgpIGVu Y291bnRlcnMgYW4gZXJyb3IgYW5kIGp1bXBzIHRvIHRoZSBvdXQgYmxvY2ssIG9yIHdoZW4KY2Ru X2RwX3VuYmluZCgpIGlzIGNhbGxlZCwgdGhlIGRyaXZlciBjYWxscyBkcm1fYnJpZGdlX3B1dCgp IG9uIHRoZSBwb2ludGVycwpidXQgZmFpbHMgdG8gc2V0IHRoZW0gdG8gTlVMTC4gU2luY2UgdGhl IGRwIGNvbnRleHQgc3RydWN0dXJlIGlzIGFsbG9jYXRlZAppbiBwcm9iZSgpIGFuZCBzdXJ2aXZl cyBjb21wb25lbnQgYmluZCByZXRyaWVzLCBhIHN1YnNlcXVlbnQgYmluZCBmYWlsdXJlIG9yCnVu YmluZCB3aWxsIGNhbGwgZHJtX2JyaWRnZV9wdXQoKSBvbiB0aGUgZXhhY3Qgc2FtZSBkYW5nbGlu ZyBwb2ludGVycy4KCltTZXZlcml0eTogSGlnaF0KVGhpcyBpc24ndCBhIGJ1ZyBpbnRyb2R1Y2Vk IGJ5IHRoaXMgcGF0Y2gsIGJ1dCBkb2VzIGZhaWxpbmcgdG8gdW5yZWdpc3Rlcgp0aGUgbm90aWZp ZXJzIGR1cmluZyB1bmJpbmQgY2F1c2UgYSB1c2UtYWZ0ZXItZnJlZT8KClRoZSBkcml2ZXIgY29y cmVjdGx5IGNhbGxzIGNhbmNlbF93b3JrX3N5bmMoJmRwLT5ldmVudF93b3JrKSwgYnV0IGZhaWxz IHRvCnVucmVnaXN0ZXIgdGhlIGV2ZW50IHNvdXJjZXMgYmVjYXVzZSBkZXZtX2V4dGNvbl9yZWdp c3Rlcl9ub3RpZmllcigpIGlzCm1hbmFnZWQgYnkgZGV2aWNlIHJlbW92YWwuIElmIGEgaG90cGx1 ZyBldmVudCBmaXJlcyBiZXR3ZWVuIHVuYmluZCgpIGFuZApyZW1vdmUoKSwgb3IgaWYgdGhlIHdv cmsgZXhlY3V0ZXMgY29uY3VycmVudGx5LCBpdCB3aWxsIGNhbGwKc2NoZWR1bGVfd29yaygmZHAt PmV2ZW50X3dvcmspIG9uIG1lbW9yeSB0aGF0IG1heSBoYXZlIGFscmVhZHkgYmVlbiBmcmVlZC4K Cj4gKwo+ICsJZm9yIChpID0gMDsgaSA8IE1BWF9QSFk7IGkrKykKPiArCQlkcm1fZWRpZF9mcmVl KGRwLT5lZGlkX2NhY2hlW2ldKTsKCltTZXZlcml0eTogSGlnaF0KQXJlIHRoZXNlIHBvaW50ZXJz IGxlZnQgZGFuZ2xpbmcgYWZ0ZXIgYmVpbmcgZnJlZWQ/CgpUaGUgY2FjaGVkIEVESURzIGFyZSBm cmVlZCB2aWEgZHJtX2VkaWRfZnJlZSgpIGhlcmUsIGJ1dCB0aGUgYXJyYXkgaW5kaWNlcwphcmUg bm90IHJlc2V0IHRvIE5VTEwuIFRoZSBkcCBjb250ZXh0IG91dGxpdmVzIHRoZSB1bmJpbmQvYmlu ZCBjeWNsZSwKbWVhbmluZyBjZG5fZHBfYnJpZGdlX2VkaWRfcmVhZCgpIG1pZ2h0IGxhdGVyIGF0 dGVtcHQgdG8gZnJlZSB0aGVzZSBkYW5nbGluZwpwb2ludGVycyBhZ2Fpbi4KCj4gIAlwbV9ydW50 aW1lX2Rpc2FibGUoZGV2KTsKPiAgCWlmIChkcC0+ZndfbG9hZGVkKQoKLS0gClNhc2hpa28gQUkg cmV2aWV3IMK3IGh0dHBzOi8vc2FzaGlrby5kZXYvIy9wYXRjaHNldC8yMDI2MDYwODA3MDgwNS44 OC0xLWtlcm5lbEBhaXJreWkuY29tP3BhcnQ9NQoKLS0gCmxpbnV4LXBoeSBtYWlsaW5nIGxpc3QK bGludXgtcGh5QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cHM6Ly9saXN0cy5pbmZyYWRlYWQub3Jn L21haWxtYW4vbGlzdGluZm8vbGludXgtcGh5Cg==