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 37F15C531D0 for ; Sat, 25 Jul 2026 05:04:41 +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=zYfwJ+/kndErtowzLMElNmhveDAmOGs9IbuMz6kMGcg=; b=z7Zokskgl6ZR6M 5sHw9Spg9P34Djh6SOme9Elaqa6dLc95z4Ye2F7f3YEZMPPcPeQ178r9Wepp3YIFKrZF2Td2yL3Ks efaYSsexPtI+K+bbAkEiPBMRcqbgB98mu57U7s38gxu78O9XE6hSiMP1lIOTE/I530WcFuUoofmsK /fULQi+u3gDICj840iUGVqG4CgTQoWG1mU2oY2biM+Pfd4gSuWHwazSZ6ePRKDn9U77JaOKcqo4qz HmZhNWyqxrziunEtnPWelPTSxGAq8oij6ths3nl0nFMQomBImzNAG965M19q2oIGoh+2evTrifd3v IKRlfGEKx8BtzCQTJySw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wnUYy-000000002s5-3xSz; Sat, 25 Jul 2026 05:04:40 +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 1wnUYx-000000002rq-35JN for linux-phy@lists.infradead.org; Sat, 25 Jul 2026 05:04:39 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by tor.source.kernel.org (Postfix) with ESMTP id E87CD60A77; Sat, 25 Jul 2026 05:04:38 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 302CF1F000E9; Sat, 25 Jul 2026 05:04:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1784955878; bh=ScRUpYKSPgrAR31jwAZGd/CQy0c2eVCu1switjuiMik=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=Hr9jAH+YvHTEq0AGIB7/3HUqt0JXUefr/Es4AhZaem2ROXOxLiRtCOXz/H2Ya9Rvf fPDO1tOSGXYYbPe3QRutjzViVyJBE8rqJikvVr+ejOkgF/NfU0mYiA7e3EOsS28Nrw Iv/LNFLxwcJ1JT8QeLSbb+WBlcHPTF3hm0n26/92bn5b/skImha7/OMYBqGvQ2nt1j 1AC5HdKn9YpXtXi4dyTNdGhv3WKLoLN9gBgf7CC4QmTODKrePOJKKdXdDq1JJZJxbs VI4IivNw8nq4zPRqqEZu8zN/CBPQ9L/PW6JfxNBFJTAG7jtlggiJSOBGheTQ2VvpFb Z0CWTsYh1EeWw== From: sashiko-bot@kernel.org Subject: Re: [PATCH RESEND 12/17] drm/spacemit: add Innosilicon DP/eDP controller bridge driver To: "Cody Kang" Cc: neil.armstrong@linaro.org, conor+dt@kernel.org, devicetree@vger.kernel.org, robh@kernel.org, linux-phy@lists.infradead.org, olteanv@gmail.com, dri-devel@lists.freedesktop.org, vkoul@kernel.org In-Reply-To: <20260725-k3-display-v1-12-6de34d80e86c@gmail.com> References: <20260725-k3-display-v1-0-6de34d80e86c@gmail.com> <20260725-k3-display-v1-12-6de34d80e86c@gmail.com> Date: Sat, 25 Jul 2026 05:04:37 +0000 Message-Id: <20260725050438.302CF1F000E9@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 MTEgcG90ZW50aWFsIGlzc3VlKHMpIHRvIGNvbnNpZGVyOgotIFtIaWdoXSBDdXN0b20gRURJRCBy ZWFkIGZ1bmN0aW9uIGJ5cGFzc2VzIERSTSBjb3JlIGFuZCBicmVha3MgSTJDIHJlcGVhdGVkLXN0 YXJ0IChNT1QpIHJ1bGVzLCBjb3JydXB0aW5nIEVESUQgcmVhZHMgZm9yIGJsb2NrcyA+IDAgb3Ig b24gYWN0aXZlIGFkYXB0ZXJzLgotIFtIaWdoXSBUaGUgaGFyZGlycSBoYW5kbGVyIHJldHVybnMg YElSUV9OT05FYCBhZnRlciBjbGVhcmluZyBoYXJkd2FyZSBpbnRlcnJ1cHQgZmxhZ3MsIHBlcm1h bmVudGx5IGRpc2FibGluZyB0aGUgSVJRIGxpbmUuCi0gW0hpZ2hdIExhdGUgYXR0YWNobWVudCBv ZiB0aGUgZURQIHBhbmVsIGJyaWRnZSB2aW9sYXRlcyBkcm1fYnJpZGdlX2Nvbm5lY3RvciBhcmNo aXRlY3R1cmUgYW5kIGJyZWFrcyBwYW5lbCBzdXBwb3J0IGlmIHRoZSBwYW5lbCBwcm9iZXMgYXN5 bmNocm9ub3VzbHkuCi0gW0hpZ2hdIERQIFRyYW5zZmVyIFVuaXQgKFRVKSBtaXNjYWxjdWxhdGlv biBkdWUgdG8gcGl4ZWwgY2xvY2sgdHJ1bmNhdGlvbi4KLSBbSGlnaF0gVGhlIElSUSBoYW5kbGVy IHJldHVybnMgYElSUV9OT05FYCB3aXRob3V0IGNsZWFyaW5nIHRoZSBoYXJkd2FyZSBpbnRlcnJ1 cHQgd2hlbiBgZHJtX2Rldl9lbnRlcigpYCBmYWlscywgbGVhZGluZyB0byBhbiBpbnRlcnJ1cHQg c3Rvcm0uCi0gW0hpZ2hdIGBzcGFjZW1pdF9kcF9icmlkZ2VfYXRvbWljX2NyZWF0ZV9zdGF0ZWAg cmV0dXJucyBhbiBlcnJvciBwb2ludGVyIGluc3RlYWQgb2YgYE5VTExgIG9uIGFsbG9jYXRpb24g ZmFpbHVyZSwgY2F1c2luZyBhIGtlcm5lbCBjcmFzaCBpbiB0aGUgRFJNIGNvcmUuCi0gW0hpZ2hd IFRoZSBoYXJkaXJxIGhhbmRsZXIgY2FsbHMgcmVnbWFwIGZ1bmN0aW9ucyB3aGljaCB1c2UgYSBz bGVlcGFibGUgbG9jayBvbiBQUkVFTVBUX1JULgotIFtNZWRpdW1dIFRoZSBhdG9taWNfY2hlY2sg YW5kIG1vZGVfdmFsaWQgY2FsbGJhY2tzIGFjY2VzcyBEUENEIGxpbmsgY2FwYWJpbGl0aWVzIHdp dGhvdXQgaG9sZGluZyBtb2RlX2xvY2ssIGxlYWRpbmcgdG8gZGF0YSByYWNlcyB3aXRoIHRoZSBo b3RwbHVnIElSUSBoYW5kbGVyLgotIFtNZWRpdW1dIFRoZSBEUCBJUlEgaGFuZGxlciBzaWxlbnRs eSBkcm9wcyBob3RwbHVnIG5vdGlmaWNhdGlvbnMgYmVjYXVzZSBkcm1fYnJpZGdlX2hwZF9ub3Rp ZnkoKSBpcyBhIG5vLW9wIHdoZW4gRFJNX0JSSURHRV9PUF9IUEQgaXMgb21pdHRlZC4KLSBbTWVk aXVtXSBDYWxsaW5nIGNsa19zZXRfcGFyZW50KCkgb24gYW4gYWxyZWFkeSBlbmFibGVkIGNsb2Nr LgotIFtNZWRpdW1dIFJlc2V0dGluZyB0aGUgQVVYIGNvbnRyb2xsZXIgd2l0aG91dCBob2xkaW5n IGF1eC0+aHdfbXV0ZXggcmFjZXMgd2l0aCBjb25jdXJyZW50IEFVWCB0cmFuc2ZlcnMuCi0tCgot LS0gUGF0Y2ggWzEyXTogW1BBVENIIFJFU0VORCAxMi8xN10gZHJtL3NwYWNlbWl0OiBhZGQgSW5u b3NpbGljb24gRFAvZURQIGNvbnRyb2xsZXIgYnJpZGdlIGRyaXZlciAtLS0KY29tbWl0IGI3ZWFj ZTM3MjI1NGFiMjdlMTIwMjEzZDM4YzNhNjU2YjJhMTk1YjgKQXV0aG9yOiBDb2R5IEthbmcgPGNv ZHlrYW5nLmhrQGdtYWlsLmNvbT4KCmRybS9zcGFjZW1pdDogYWRkIElubm9zaWxpY29uIERQL2VE UCBjb250cm9sbGVyIGJyaWRnZSBkcml2ZXIKCkFkZCB0aGUgRFAvZURQIGNvbnRyb2xsZXIgdGhh dCBzaXRzIGRvd25zdHJlYW0gb2YgdGhlIFNhdHVybiBEUFUuIFR3bwppZGVudGljYWwgaW5zdGFu Y2VzIHNoYXJlIG9uZSBjb21wYXRpYmxlOyB0aGUgZURQLXZzLURQIHJvbGUgaXMgYm9hcmQKd2ly aW5nLCBzbyBpdCBpcyB0YWtlbiBmcm9tIHRoZSBkZXZpY2V0cmVlLgoKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3NwYWNlbWl0L3NwYWNlbWl0X2lubm9fZHAuYyBiL2RyaXZlcnMvZ3B1 L2RybS9zcGFjZW1pdC9zcGFjZW1pdF9pbm5vX2RwLmMKPiBpbmRleCAwMDAwMDAwMDAwMDAwLi5l ODg3MzFkOWIxOGJmCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9zcGFj ZW1pdC9zcGFjZW1pdF9pbm5vX2RwLmMKPiBAQCAtMjQ4LDE2ICsyNDgsMTAgQEAKPiAgc3RhdGlj IGlubGluZSBzdHJ1Y3Qgc3BhY2VtaXRfZHBfYnJpZGdlX3N0YXRlICoKPiAgdG9fc3BhY2VtaXRf ZHBfYnJpZGdlX3N0YXRlKHN0cnVjdCBkcm1fYnJpZGdlX3N0YXRlICpzdGF0ZSkKPiAgewo+ICAJ cmV0dXJuIGNvbnRhaW5lcl9vZihzdGF0ZSwgc3RydWN0IHNwYWNlbWl0X2RwX2JyaWRnZV9zdGF0 ZSwgYmFzZSk7Cj4gIH0KPiAgCj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcmVnbWFwX2NvbmZpZyBz cGFjZW1pdF9kcF9yZWdtYXBfY29uZmlnID0gewo+ICAJLm5hbWUJCT0gImRwIiwKPiAgCS5yZWdf Yml0cwk9IDMyLAo+ICAJLnZhbF9iaXRzCT0gMzIsCj4gIAkucmVnX3N0cmlkZQk9IDQsCj4gIAku bWF4X3JlZ2lzdGVyCT0gMHgzZmZjLAkvKiBmdWxsIDB4NDAwMCByZWcgcmVnaW9uIGZyb20gYmlu ZGluZyAqLwo+ICB9OwoKW1NldmVyaXR5OiBIaWdoXQpJcyBpdCBzYWZlIHRvIG9taXQgdXNlX3Jh d19zcGlubG9jayBmcm9tIHRoZSByZWdtYXAgY29uZmlndXJhdGlvbj8gQmVjYXVzZQp0aGlzIGlz IG5vdCBzZXQgdG8gdHJ1ZSwgdGhlIHJlZ21hcCBkZWZhdWx0cyB0byBhIHNsZWVwYWJsZSBsb2Nr IG9uClBSRUVNUFRfUlQuIFRoaXMgY2F1c2VzIGEgQlVHIHdoZW4gcmVnbWFwIHJlYWQvd3JpdGUg ZnVuY3Rpb25zIGFyZSBjYWxsZWQKZnJvbSB0aGUgaGFyZGlycSBoYW5kbGVyIHNwYWNlbWl0X2Rw X2lycV9oYW5kbGVyKCkuCgo+IFsgLi4uIF0KPiBAQCAtNjYxLDE2ICs2NjEsMTAgQEAKPiAgc3Rh dGljIHZvaWQgc3BhY2VtaXRfZHBfbGlua19kaXNhYmxlKHN0cnVjdCBzcGFjZW1pdF9kcF9kZXYg KmRwKQo+ICB7Cj4gIAlyZWdtYXBfd3JpdGVfYml0cyhkcC0+cmVncywgRFBfVklERU9fVlNBTVBM RV9SRUcsCj4gIAkJCSAgRFBfVklERU9fU1RSRUFNX0VOQUJMRSwKPiAgCQkJICBGSUVMRF9QUkVQ KERQX1ZJREVPX1NUUkVBTV9FTkFCTEUsIDApKTsKPiAgCXNwYWNlbWl0X2RwX3BoeV9vZmYoZHAp Owo+ICAKPiAgCXJlZ21hcF93cml0ZV9iaXRzKGRwLT5yZWdzLCBEUF9TT0ZUX1JFU0VULCBEUF9B VVhfUkVTRVQsCj4gIAkJCSAgRklFTERfUFJFUChEUF9BVVhfUkVTRVQsIDB4MSkpOwoKW1NldmVy aXR5OiBNZWRpdW1dCkNvdWxkIHRoaXMgcmVzZXQgY29ycnVwdCBjb25jdXJyZW50IEFVWCB0cmFu c2ZlcnM/IE1vZGlmeWluZyB0aGUgQVVYCmhhcmR3YXJlIGluIHNwYWNlbWl0X2RwX2xpbmtfZGlz YWJsZSgpIHdpdGhvdXQgaG9sZGluZyB0aGUgYXV4LT5od19tdXRleApjb3VsZCByYWNlIGFnYWlu c3QgYSB1c2Vyc3BhY2Ugb3IgZGVmZXJyZWQgdHJhbnNmZXIsIHBvdGVudGlhbGx5IHdlZGdpbmcK dGhlIGNvbnRyb2xsZXIuCgo+IFsgLi4uIF0KPiBAQCAtOTM2LDE1ICs5MzYsMTAgQEAKPiAgc3Rh dGljIHZvaWQgc3BhY2VtaXRfZHBfaHdfc2V0X21zYV9hbmRfZW5hYmxlX3ZpZGVvKHN0cnVjdCBz cGFjZW1pdF9kcF9kZXYgKmRwLAo+ICAJCQkJCQkgICAgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgKm1vZGUsCj4gIAkJCQkJICAgICAgIGVudW0gc3BhY2VtaXRfZHBfbGlua19yYXRlIHJh dGUsCj4gIAkJCQkJICAgICAgIGVudW0gc3BhY2VtaXRfZHBfbGFuZV9jb3VudCBsYW5lcywKPiAg CQl1MzIgY29sb3JfZm9ybWF0KQo+ICB7Cj4gIAl1NjQgaGJfbnVtOwo+ICAJdTMyIGxpbmtfcmF0 ZTsKPiAgCXUzMiBmcDsgLyogUGl4ZWwgY2xvY2sgaW4gTUh6ICovCj4gIAl1MzIgYnBwLCBtaXNj MDsKPiAgCXUzMiB0dSwgdHVfZnJhYywgdHVfaW50LCByZF90aHJlczsKPiAgCXUzMiBoc3luY19s ZW47Cj4gIAo+ICAJLyogbW9kZS0+Y2xvY2sgdW5pdCBpcyBrSHosIGZwIHVuaXQgaXMgTUh6ICov Cj4gIAlpZiAoZHAtPnVzZV9leHRfcGl4ZWxfY2xvY2spCj4gIAkJZnAgPSBkcC0+cGl4ZWxfY2xv Y2sgLyAxMDAwOwo+ICAJZWxzZQo+ICAJCWZwID0gbW9kZS0+Y2xvY2sgLyAxMDAwOwoKW1NldmVy aXR5OiBIaWdoXQpDYW4gdGhpcyB0cnVuY2F0aW9uIG9mIHRoZSBwaXhlbCBjbG9jayB0byBhbiBp bnRlZ2VyIE1IeiB2YWx1ZSBjYXVzZSBEUApGSUZPIHVuZGVyZmxvd3Mgb3Igb3ZlcmZsb3dzPyBG b3Igbm9uLWludGVnZXIgTUh6IHBpeGVsIGNsb2NrcyBsaWtlCjE0OC41IE1IeiwgdGhpcyB0cnVu Y2F0ZXMgdG8gMTQ4LCBpbnRyb2R1Y2luZyBwcmVjaXNpb24gZXJyb3JzIGluIHRoZQpUcmFuc2Zl ciBVbml0IChUVSkgY2FsY3VsYXRpb25zIHdoaWNoIHJlc3VsdHMgaW4gY29ycnVwdGVkIHZpZGVv LgoKPiBbIC4uLiBdCj4gQEAgLTEyODYsMTMgKzEyODYsMTAgQEAKPiAgc3RhdGljIGludCBzcGFj ZW1pdF9kcF9jb25uX2dldF9lZGlkX2Jsb2NrKHZvaWQgKmRhdGEsIHU4ICpidWYsCj4gIAkJCQkJ ICAgdW5zaWduZWQgaW50IGJsb2NrLCBzaXplX3QgbGVuKQo+ICB7Cj4gIAlzdHJ1Y3Qgc3BhY2Vt aXRfZHBfZGV2ICpkcCA9IGRhdGE7Cj4gIAl1bnNpZ25lZCBpbnQgc3RhcnQgPSBibG9jayAqIEVE SURfTEVOR1RIOwo+ICAJdTggc2VnbWVudCA9IGJsb2NrID4+IDE7Cj4gIAlpbnQgcmV0LCByZXRy eTsKPiAgCXNpemVfdCBvZmZzZXQ7Cj4gIAo+ICAJaWYgKHNlZ21lbnQpIHsKPiAgCQlmb3IgKHJl dHJ5ID0gMDsgcmV0cnkgPCAzOyByZXRyeSsrKSB7Cj4gIAkJCXJldCA9IHNwYWNlbWl0X2RwX2F1 eF9pMmNfd3JpdGUoZHAsCj4gIAkJCQlTUEFDRU1JVF9EUF9ERENfU0VHTUVOVF9BRERSLCAmc2Vn bWVudCwgMSk7CgpbU2V2ZXJpdHk6IEhpZ2hdCkRvZXMgdGhpcyBjdXN0b20gRURJRCByZWFkIGZ1 bmN0aW9uIGJ5cGFzcyB0aGUgTWlkZGxlLU9mLVRyYW5zYWN0aW9uIChNT1QpCnJ1bGVzIGZvciBJ MkMgcmVwZWF0ZWQtc3RhcnQ/IElzc3Vpbmcgd3JpdGVzIGFuZCByZWFkcyB3aXRob3V0IHRoZSBN T1QgZmxhZwpyZXNldHMgdGhlIEREQyBzZWdtZW50IHBvaW50ZXIgdG8gMCwgYnJlYWtpbmcgRURJ RCByZWFkcyBmb3IgZGlzcGxheXMgd2l0aAptdWx0aXBsZSBFRElEIGJsb2NrcyAoYmxvY2sgPj0g MSkgb3Igb24gYWN0aXZlIGFkYXB0ZXJzLgoKPiBbIC4uLiBdCj4gQEAgLTE2MzIsMTUgKzE2MzIs MTAgQEAKPiAgc3RhdGljIGludCBzcGFjZW1pdF9kcF9icmlkZ2VfYXRvbWljX2NoZWNrKHN0cnVj dCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gIAkJCQkJICAgc3RydWN0IGRybV9icmlkZ2Vfc3RhdGUg KmJyaWRnZV9zdGF0ZSwKPiAgCQkJCSAgICAgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSwKPiAgCQkJCSAgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRl KQo+ICB7Cj4gIAlzdHJ1Y3Qgc3BhY2VtaXRfZHBfZGV2ICpkcCA9IGNvbnRhaW5lcl9vZihicmlk Z2UsCj4gIAkJCQkJCSAgc3RydWN0IHNwYWNlbWl0X2RwX2RldiwKPiAgCQkJCQkJICBicmlkZ2Up Owo+ICAJc3RydWN0IHNwYWNlbWl0X2RwX2JyaWRnZV9zdGF0ZSAqc3QgPQo+ICAJCQl0b19zcGFj ZW1pdF9kcF9icmlkZ2Vfc3RhdGUoYnJpZGdlX3N0YXRlKTsKPiAgCWNvbnN0IHN0cnVjdCBkcm1f ZGlzcGxheV9tb2RlICptb2RlID0gJmNydGNfc3RhdGUtPmFkanVzdGVkX21vZGU7Cj4gIAlpbnQg YnBwOwo+ICAJdTMyIHJlcV9idzsKPiAgCWludCBpOwo+ICAKPiAgCS8qIEEgc2luZ2xlIG91dHB1 dCBidXMgZm9ybWF0LCBzZWUgLT5hdG9taWNfZ2V0X291dHB1dF9idXNfZm10cygpLiAqLwo+ICAJ c3QtPmNvbG9yX2Zvcm1hdCA9IFNPQ19WSURFT19SR0JfOEJJVDsKPiAgCWJwcCA9IHNwYWNlbWl0 X2RwX2dldF9icHAoZHAsIHN0LT5jb2xvcl9mb3JtYXQpOwo+ICAJcmVxX2J3ID0gc3BhY2VtaXRf ZHBfY2FsY19yZXF1aXJlZF9idyhtb2RlLCBicHApOwo+ICAKPiAgCS8qIE5vIGNhcHMgeWV0OiBs ZWF2ZSBpZHggdW5zZXQgYW5kIGxldCAtPmF0b21pY19lbmFibGUoKSByZXRyeS4gKi8KPiAgCWlm ICghZHAtPmxpbmsubWF4X3JhdGUgfHwgIWRwLT5saW5rLm1heF9udW1fbGFuZXMpIHsKCltTZXZl cml0eTogTWVkaXVtXQpDb3VsZCByZWFkaW5nIHRoZSBEUENEIGxpbmsgY2FwYWJpbGl0aWVzIGhl cmUgcmFjZSB3aXRoIHRoZSBob3RwbHVnIElSUQpoYW5kbGVyPyBBY2Nlc3NpbmcgdGhlIGRwLT5s aW5rIGNhcGFiaWxpdGllcyBpbgpzcGFjZW1pdF9kcF9icmlkZ2VfYXRvbWljX2NoZWNrKCkgd2l0 aG91dCBob2xkaW5nIG1vZGVfbG9jayBtaWdodCBvYnNlcnZlCmludGVybWVkaWF0ZSBvciB0b3Ju IHN0YXRlcyBpZiBhIGNvbmN1cnJlbnQgaW50ZXJydXB0IHRyaWdnZXJzIGEgY2FwYWJpbGl0eQpy ZS1yZWFkLCBsZWFkaW5nIHRvIHRyYW5zaWVudCByZWplY3Rpb25zIG9mIHZhbGlkIG1vZGVzLgoK PiBbIC4uLiBdCj4gQEAgLTE3MDUsMTAgKzE3MDUsMTAgQEAKPiAgc3RhdGljIHN0cnVjdCBkcm1f YnJpZGdlX3N0YXRlICoKPiAgc3BhY2VtaXRfZHBfYnJpZGdlX2F0b21pY19jcmVhdGVfc3RhdGUo c3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKPiAgewo+ICAJc3RydWN0IHNwYWNlbWl0X2RwX2Jy aWRnZV9zdGF0ZSAqbmV3Owo+ICAKPiAgCW5ldyA9IGt6YWxsb2Nfb2JqKCpuZXcpOwo+ICAJaWYg KCFuZXcpCj4gIAkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CgpbU2V2ZXJpdHk6IEhpZ2hdClNo b3VsZCB0aGlzIHJldHVybiBOVUxMIG9uIGFsbG9jYXRpb24gZmFpbHVyZSBpbnN0ZWFkIG9mIGFu IGVycm9yIHBvaW50ZXI/ClRoZSBEUk0gY29yZSdzIHJlc2V0IGhlbHBlciBhc3NpZ25zIHRoZSBy ZXR1cm5lZCBzdGF0ZSBkaXJlY3RseSB3aXRob3V0CmNoZWNraW5nIGZvciBlcnJvcnMuIFJldHVy bmluZyBhbiBlcnJvciBwb2ludGVyIGhlcmUgY2F1c2VzIGEgZmF0YWwgcGFnZQpmYXVsdCB3aGVu IHRoZSBEUk0gY29yZSBsYXRlciBkZXJlZmVyZW5jZXMgaXQuCgo+IFsgLi4uIF0KPiBAQCAtMTc0 MiwxNiArMTc0MiwxMCBAQAo+ICBzdGF0aWMgaW50IHNwYWNlbWl0X2RwX2VkcF9saW5rX3BhbmVs KHN0cnVjdCBkcm1fZHBfYXV4ICphdXgpCj4gIHsKPiAgCXN0cnVjdCBzcGFjZW1pdF9kcF9kZXYg KmRwID0gY29udGFpbmVyX29mKGF1eCwgc3RydWN0IHNwYWNlbWl0X2RwX2RldiwKPiAgCQkJCQkJ ICBhdXgpOwo+ICAJc3RydWN0IGRybV9icmlkZ2UgKm5leHQ7Cj4gIAlpbnQgcmV0Owo+ICAKPiAg CW5leHQgPSBkZXZtX2RybV9vZl9nZXRfYnJpZGdlKGRwLT5kZXYsIGRwLT5kZXYtPm9mX25vZGUs IDEsIDApOwo+ICAJaWYgKElTX0VSUihuZXh0KSkKPiAgCQlyZXR1cm4gUFRSX0VSUihuZXh0KTsK PiAgCj4gIAlkcC0+bmV4dF9icmlkZ2UgPSBuZXh0Owo+ICAKPiAgCS8qCj4gIAkgKiBBIG5vbi1O VUxMIGJyaWRnZS5lbmNvZGVyIG1lYW5zIC5hdHRhY2ggYWxyZWFkeSByYW46IGxhdGUtY2hhaW4K PiAgCSAqIHBhbmVsLWVkcC4KPiAgCSAqLwo+ICAJaWYgKGRwLT5icmlkZ2UuZW5jb2Rlcikgewo+ ICAJCXJldCA9IGRybV9icmlkZ2VfYXR0YWNoKGRwLT5icmlkZ2UuZW5jb2RlciwgbmV4dCwKPiAg CQkJCQkmZHAtPmJyaWRnZSwKPiAgCQkJCQlEUk1fQlJJREdFX0FUVEFDSF9OT19DT05ORUNUT1Ip OwoKW1NldmVyaXR5OiBIaWdoXQpEb2VzIGR5bmFtaWNhbGx5IGF0dGFjaGluZyB0aGUgcGFuZWwg YnJpZGdlIGxhdGUgYnlwYXNzIGNvbm5lY3Rvcgppbml0aWFsaXphdGlvbj8gSWYgdGhlIGVEUCBw YW5lbCBkZWZlcnMgaXRzIHByb2JlLApkcm1fYnJpZGdlX2Nvbm5lY3Rvcl9pbml0KCkgYnVpbGRz IHRoZSBjb25uZWN0b3Igd2l0aG91dCB0aGUgcGFuZWwgYnJpZGdlLgpBdHRhY2hpbmcgaXQgaGVy ZSBsYXRlciB2aW9sYXRlcyB0aGUgZHJtX2JyaWRnZV9jb25uZWN0b3IgYXJjaGl0ZWN0dXJlIGFu ZApicmVha3MgcGFuZWwgc3VwcG9ydCwgYmVjYXVzZSB0aGUgY29ubmVjdG9yIHdpbGwgbGFjayB0 aGUgcGFuZWwncyBtb2RlIG9yCkVESUQgb3BlcmF0aW9ucy4KCj4gWyAuLi4gXQo+IEBAIC0xNzgy LDEwICsxNzgyLDEwIEBACj4gIHN0YXRpYyBpcnFyZXR1cm5fdCBzcGFjZW1pdF9kcF9pcnFfaGFu ZGxlcihpbnQgaXJxLCB2b2lkICpkYXRhKQo+ICB7Cj4gIAlzdHJ1Y3Qgc3BhY2VtaXRfZHBfZGV2 ICpkcCA9IGRhdGE7Cj4gIAlpcnFyZXR1cm5fdCByZXQgPSBJUlFfTk9ORTsKPiAgCWludCBpZHg7 Cj4gIAo+ICAJaWYgKCFkcm1fZGV2X2VudGVyKGRwLT5kcm0sICZpZHgpKQo+ICAJCXJldHVybiBJ UlFfTk9ORTsKCltTZXZlcml0eTogSGlnaF0KV2lsbCByZXR1cm5pbmcgSVJRX05PTkUgaGVyZSB3 aXRob3V0IGNsZWFyaW5nIHRoZSBoYXJkd2FyZSBpbnRlcnJ1cHQgY2F1c2UKYW4gaW50ZXJydXB0 IHN0b3JtPyBJZiBhbiBpbnRlcnJ1cHQgZmlyZXMgd2hpbGUgdGhlIERSTSBkZXZpY2UgaXMKdW5y ZWdpc3RlcmVkIChzdWNoIGFzIGR1cmluZyBtb2R1bGUgdW5sb2FkKSwgdGhlIGhhbmRsZXIgZXhp dHMgd2l0aG91dAphY2tub3dsZWRnaW5nIHRoZSBoYXJkd2FyZSBpbnRlcnJ1cHQsIGNhdXNpbmcg aXQgdG8gY29udGludW91c2x5IGZpcmUgYW5kCnN0YWxsIHRoZSBDUFUuCgo+IFsgLi4uIF0KPiBA QCAtMTc5NiwxMSArMTc5NiwxMCBAQAo+ICAJLyoKPiAgCSAqIE9ubHkgY29tcGFyZSBoZXJlOiB0 aGUgYXV0aG9yaXRhdGl2ZSBjb25uZWN0b3Jfc3RhdHVzIHVwZGF0ZQo+ICAJICogaGFwcGVucyBp biB0aGUgdGhyZWFkIHVuZGVyIG1vZGVfbG9jaywgdmlhIC5kZXRlY3QoKS4KPiAgCSAqLwo+ICAJ aWYgKHNwYWNlbWl0X2RwX2h3X2RldGVjdF9ocGQoZHApICE9IFJFQURfT05DRShkcC0+Y29ubmVj dG9yX3N0YXR1cykpCj4gIAkJcmV0ID0gSVJRX1dBS0VfVEhSRUFEOyAvKiBDYWxsIGhvdHBsdWdf ZXZlbnQgKi8KPiAgCXNwYWNlbWl0X2RwX2h3X2NsZWFuX2hwZChkcCk7Cj4gIAo+ICAJZHJtX2Rl dl9leGl0KGlkeCk7Cj4gIAlyZXR1cm4gcmV0Owo+ICB9CgpbU2V2ZXJpdHk6IEhpZ2hdCklzIGl0 IHNhZmUgdG8gcmV0dXJuIElSUV9OT05FIGFmdGVyIGNsZWFyaW5nIHRoZSBoYXJkd2FyZSBpbnRl cnJ1cHQgZmxhZ3M/CklmIHRoZSBsb2dpY2FsIHN0YXRlIGhhcyBub3QgY2hhbmdlZCAoZS5nLiBm cm9tIGEgdHJhbnNpZW50IGhhcmR3YXJlCmdsaXRjaCksIHJldHVybmluZyBJUlFfTk9ORSBjYXVz ZXMgdGhlIGtlcm5lbCdzIHNwdXJpb3VzIGludGVycnVwdCBkZXRlY3Rvcgp0byBldmVudHVhbGx5 IGRpc2FibGUgdGhlIElSUSBsaW5lLCB3aGljaCByZXN1bHRzIGluIGFsbCBmdXR1cmUgaG90cGx1 ZwpldmVudHMgYmVpbmcgcGVybWFuZW50bHkgbWlzc2VkLgoKPiBbIC4uLiBdCj4gQEAgLTE4MTMs MTEgKzE4MTMsMTAgQEAKPiAgc3RhdGljIGlycXJldHVybl90IHNwYWNlbWl0X2RwX2hvdHBsdWdf ZXZlbnRfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpkYXRhKQo+ICB7Cj4gIAlzdHJ1Y3Qgc3BhY2Vt aXRfZHBfZGV2ICpkcCA9IGRhdGE7Cj4gIAllbnVtIGRybV9jb25uZWN0b3Jfc3RhdHVzIHN0YXR1 czsKPiAgCWludCBpZHg7Cj4gIAo+ICAJaWYgKCFkcm1fZGV2X2VudGVyKGRwLT5kcm0sICZpZHgp KQo+ICAJCXJldHVybiBJUlFfSEFORExFRDsKPiAgCj4gIAkvKgo+ICAJICogLmRldGVjdCgpIG93 bnMgbW9kZV9sb2NrIGFuZCByZS1yZWFkcyB0aGUgc2luayBjYXBzIG9uIGEgZnJlc2ggcGx1Zwo+ ICAJICovCj4gIAlzdGF0dXMgPSBzcGFjZW1pdF9kcF9icmlkZ2VfZGV0ZWN0KCZkcC0+YnJpZGdl LCBkcC0+Y29ubmVjdG9yKTsKPiAgCWRybV9icmlkZ2VfaHBkX25vdGlmeSgmZHAtPmJyaWRnZSwg c3RhdHVzKTsKCltTZXZlcml0eTogTWVkaXVtXQpXaWxsIHRoaXMgaG90cGx1ZyBub3RpZmljYXRp b24gYmUgc2lsZW50bHkgZHJvcHBlZD8gU2luY2UKRFJNX0JSSURHRV9PUF9IUEQgaXMgbm90IHNl dCBmb3IgdGhlIERQIGJyaWRnZSBkdXJpbmcgaW5ub19kcF9wcm9iZSgpLCB0aGUKYnJpZGdlLT5o cGRfY2IgaXMgTlVMTCwgbWFraW5nIGRybV9icmlkZ2VfaHBkX25vdGlmeSgpIGEgbm8tb3AgYW5k IGZvcmNpbmcKdGhlIERSTSBjb3JlIHRvIHJlbHkgZW50aXJlbHkgb24gcGVyaW9kaWMgcG9sbGlu Zy4KCj4gWyAuLi4gXQo+IEBAIC0yMzM4LDEwICsyMzM4LDE1IEBACj4gIHN0YXRpYyBpbnQgaW5u b19kcF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICB7Cj4gIAlzdHJ1Y3Qg ZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2Owo+IFsgLi4uIF0KPiAgCWlmIChkcC0+cHhjbGspIHsK PiAgCQlyZXQgPSBjbGtfcHJlcGFyZV9lbmFibGUoZHAtPnB4Y2xrKTsKPiAgCQlpZiAocmV0KSB7 Cj4gIAkJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGVuYWJsZSBweGNsazogJWRcbiIsIHJldCk7 Cj4gIAkJCWdvdG8gZXJyX3Jlc2V0Owo+ICAJCX0KPiAgCX0KPiBbIC4uLiBdCj4gIAlpZiAoZHAt PnB4Y2xrKSB7Cj4gIAkJcmV0ID0gY2xrX3NldF9wYXJlbnQoZHAtPnB4Y2xrLCBkcC0+cGxsX2Ns ayk7CgpbU2V2ZXJpdHk6IE1lZGl1bV0KQ2FuIGNhbGxpbmcgY2xrX3NldF9wYXJlbnQoKSBvbiBh biBhbHJlYWR5IGVuYWJsZWQgY2xvY2sgY2F1c2UgaGFyZHdhcmUKZ2xpdGNoZXM/IFRoZSBweGNs ayBpcyBwcmVwYXJlZCBhbmQgZW5hYmxlZCBlYXJsaWVyIGluIGlubm9fZHBfcHJvYmUoKSwgYW5k CnJlcGFyZW50aW5nIGEgcnVubmluZyBjbG9jayB3aXRob3V0IGhhcmR3YXJlLXNwZWNpZmljIGds aXRjaC1mcmVlIG11eGluZwpjYW4gbG9jayB1cCBkb3duc3RyZWFtIGxvZ2ljLgoKPiBbIC4uLiBd CgotLSAKU2FzaGlrbyBBSSByZXZpZXcgwrcgaHR0cHM6Ly9zYXNoaWtvLmRldi8jL3BhdGNoc2V0 LzIwMjYwNzI1LWszLWRpc3BsYXktdjEtMC02ZGUzNGQ4MGU4NmNAZ21haWwuY29tP3BhcnQ9MTIK Ci0tIApsaW51eC1waHkgbWFpbGluZyBsaXN0CmxpbnV4LXBoeUBsaXN0cy5pbmZyYWRlYWQub3Jn Cmh0dHBzOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXBoeQo=