From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: [PATCH 02/10] drm: Extract drm_bridge.h Date: Wed, 31 Aug 2016 18:09:05 +0200 Message-ID: <20160831160913.12991-3-daniel.vetter@ffwll.ch> References: <20160831160913.12991-1-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20160831160913.12991-1-daniel.vetter@ffwll.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: DRI Development Cc: Daniel Vetter , Intel Graphics Development , Archit Taneja , Daniel Vetter List-Id: dri-devel@lists.freedesktop.org V2UgZG9uJ3Qgd2FudCB0byBidXJyeSB0aGUgYnJpZGdlIHN0cnVjdHVyZXMga2VybmVsZG9jIGlu IGRybV9jcnRjLmguCgpDYzogQXJjaGl0IFRhbmVqYSA8YXJjaGl0LnRhbmVqYUBnbWFpbC5jb20+ ClNpZ25lZC1vZmYtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAaW50ZWwuY29tPgot LS0KIERvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMtaGVscGVycy5yc3QgfCAgIDcgKysKIGRyaXZl cnMvZ3B1L2RybS9kcm1fYnJpZGdlLmMgICAgICAgICAgfCAgIDUgKy0KIGluY2x1ZGUvZHJtL2Ry bV9icmlkZ2UuaCAgICAgICAgICAgICAgfCAyMTggKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKwogaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oICAgICAgICAgICB8ICAgNCArCiBp bmNsdWRlL2RybS9kcm1fY3J0Yy5oICAgICAgICAgICAgICAgIHwgMTg3ICstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCiBpbmNsdWRlL2RybS9kcm1fbW9kZV9vYmplY3QuaCAgICAgICAgIHwg ICAxICsKIGluY2x1ZGUvZHJtL2RybV9tb2Rlcy5oICAgICAgICAgICAgICAgfCAgIDQgKwogNyBm aWxlcyBjaGFuZ2VkLCAyMzcgaW5zZXJ0aW9ucygrKSwgMTg5IGRlbGV0aW9ucygtKQogY3JlYXRl IG1vZGUgMTAwNjQ0IGluY2x1ZGUvZHJtL2RybV9icmlkZ2UuaAoKZGlmZiAtLWdpdCBhL0RvY3Vt ZW50YXRpb24vZ3B1L2RybS1rbXMtaGVscGVycy5yc3QgYi9Eb2N1bWVudGF0aW9uL2dwdS9kcm0t a21zLWhlbHBlcnMucnN0CmluZGV4IDU5ZmEzYzExZWZhYi4uNDhmYzVhOTZiZjk1IDEwMDY0NAot LS0gYS9Eb2N1bWVudGF0aW9uL2dwdS9kcm0ta21zLWhlbHBlcnMucnN0CisrKyBiL0RvY3VtZW50 YXRpb24vZ3B1L2RybS1rbXMtaGVscGVycy5yc3QKQEAgLTEyNiw2ICsxMjYsMTMgQEAgRGVmYXVs dCBicmlkZ2UgY2FsbGJhY2sgc2VxdWVuY2UKIC4uIGtlcm5lbC1kb2M6OiBkcml2ZXJzL2dwdS9k cm0vZHJtX2JyaWRnZS5jCiAgICA6ZG9jOiBicmlkZ2UgY2FsbGJhY2tzCiAKKworQnJpZGdlIEhl bHBlciBSZWZlcmVuY2UKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLi4ga2VybmVsLWRv Yzo6IGluY2x1ZGUvZHJtL2RybV9icmlkZ2UuaAorICAgOmludGVybmFsOgorCiAuLiBrZXJuZWwt ZG9jOjogZHJpdmVycy9ncHUvZHJtL2RybV9icmlkZ2UuYwogICAgOmV4cG9ydDoKIApkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9icmlkZ2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f YnJpZGdlLmMKaW5kZXggNDg0MDQ2NjY0ZDZjLi4wZWUwNTJiN2MyMWEgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9kcm1fYnJpZGdlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9icmlk Z2UuYwpAQCAtMjMsMTAgKzIzLDkgQEAKIAogI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgogI2luY2x1 ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CiAKLSNpbmNsdWRl IDxkcm0vZHJtX2NydGMuaD4KLQotI2luY2x1ZGUgImRybS9kcm1QLmgiCisjaW5jbHVkZSA8ZHJt L2RybV9icmlkZ2UuaD4KIAogLyoqCiAgKiBET0M6IG92ZXJ2aWV3CmRpZmYgLS1naXQgYS9pbmNs dWRlL2RybS9kcm1fYnJpZGdlLmggYi9pbmNsdWRlL2RybS9kcm1fYnJpZGdlLmgKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi41MzBhMWQ2ZThjZGUKLS0tIC9kZXYvbnVs bAorKysgYi9pbmNsdWRlL2RybS9kcm1fYnJpZGdlLmgKQEAgLTAsMCArMSwyMTggQEAKKy8qCisg KiBDb3B5cmlnaHQgKGMpIDIwMTYgSW50ZWwgQ29ycG9yYXRpb24KKyAqCisgKiBQZXJtaXNzaW9u IHRvIHVzZSwgY29weSwgbW9kaWZ5LCBkaXN0cmlidXRlLCBhbmQgc2VsbCB0aGlzIHNvZnR3YXJl IGFuZCBpdHMKKyAqIGRvY3VtZW50YXRpb24gZm9yIGFueSBwdXJwb3NlIGlzIGhlcmVieSBncmFu dGVkIHdpdGhvdXQgZmVlLCBwcm92aWRlZCB0aGF0CisgKiB0aGUgYWJvdmUgY29weXJpZ2h0IG5v dGljZSBhcHBlYXIgaW4gYWxsIGNvcGllcyBhbmQgdGhhdCBib3RoIHRoYXQgY29weXJpZ2h0Cisg KiBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgYXBwZWFyIGluIHN1cHBvcnRpbmcg ZG9jdW1lbnRhdGlvbiwgYW5kCisgKiB0aGF0IHRoZSBuYW1lIG9mIHRoZSBjb3B5cmlnaHQgaG9s ZGVycyBub3QgYmUgdXNlZCBpbiBhZHZlcnRpc2luZyBvcgorICogcHVibGljaXR5IHBlcnRhaW5p bmcgdG8gZGlzdHJpYnV0aW9uIG9mIHRoZSBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljLAorICog d3JpdHRlbiBwcmlvciBwZXJtaXNzaW9uLiAgVGhlIGNvcHlyaWdodCBob2xkZXJzIG1ha2Ugbm8g cmVwcmVzZW50YXRpb25zCisgKiBhYm91dCB0aGUgc3VpdGFiaWxpdHkgb2YgdGhpcyBzb2Z0d2Fy ZSBmb3IgYW55IHB1cnBvc2UuICBJdCBpcyBwcm92aWRlZCAiYXMKKyAqIGlzIiB3aXRob3V0IGV4 cHJlc3Mgb3IgaW1wbGllZCB3YXJyYW50eS4KKyAqCisgKiBUSEUgQ09QWVJJR0hUIEhPTERFUlMg RElTQ0xBSU0gQUxMIFdBUlJBTlRJRVMgV0lUSCBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSwKKyAq IElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg RklUTkVTUywgSU4gTk8KKyAqIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSUyBCRSBM SUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBJTkRJUkVDVCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B R0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST00gTE9TUyBPRiBVU0Us CisgKiBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBO RUdMSUdFTkNFIE9SIE9USEVSCisgKiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9S IElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SIFBFUkZPUk1BTkNFCisgKiBPRiBUSElTIFNP RlRXQVJFLgorICovCisKKyNpZm5kZWYgX19EUk1fQlJJREdFX0hfXworI2RlZmluZSBfX0RSTV9C UklER0VfSF9fCisKKyNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CisjaW5jbHVkZSA8bGludXgvY3R5 cGUuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX21vZGVfb2JqZWN0Lmg+CisjaW5jbHVkZSA8ZHJtL2Ry bV9tb2Rlcy5oPgorCitzdHJ1Y3QgZHJtX2JyaWRnZTsKKworLyoqCisgKiBzdHJ1Y3QgZHJtX2Jy aWRnZV9mdW5jcyAtIGRybV9icmlkZ2UgY29udHJvbCBmdW5jdGlvbnMKKyAqLworc3RydWN0IGRy bV9icmlkZ2VfZnVuY3MgeworCS8qKgorCSAqIEBhdHRhY2g6CisJICoKKwkgKiBUaGlzIGNhbGxi YWNrIGlzIGludm9rZWQgd2hlbmV2ZXIgb3VyIGJyaWRnZSBpcyBiZWluZyBhdHRhY2hlZCB0byBh CisJICogJmRybV9lbmNvZGVyLgorCSAqCisJICogVGhlIGF0dGFjaCBjYWxsYmFjayBpcyBvcHRp b25hbC4KKwkgKgorCSAqIFJFVFVSTlM6CisJICoKKwkgKiBaZXJvIG9uIHN1Y2Nlc3MsIGVycm9y IGNvZGUgb24gZmFpbHVyZS4KKwkgKi8KKwlpbnQgKCphdHRhY2gpKHN0cnVjdCBkcm1fYnJpZGdl ICpicmlkZ2UpOworCisJLyoqCisJICogQGRldGFjaDoKKwkgKgorCSAqIFRoaXMgY2FsbGJhY2sg aXMgaW52b2tlZCB3aGVuZXZlciBvdXIgYnJpZGdlIGlzIGJlaW5nIGRldGFjaGVkIGZyb20gYQor CSAqICZkcm1fZW5jb2Rlci4KKwkgKgorCSAqIFRoZSBkZXRhY2ggY2FsbGJhY2sgaXMgb3B0aW9u YWwuCisJICovCisJdm9pZCAoKmRldGFjaCkoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSk7CisK KwkvKioKKwkgKiBAbW9kZV9maXh1cDoKKwkgKgorCSAqIFRoaXMgY2FsbGJhY2sgaXMgdXNlZCB0 byB2YWxpZGF0ZSBhbmQgYWRqdXN0IGEgbW9kZS4gVGhlIHBhcmFtYXRlcgorCSAqIG1vZGUgaXMg dGhlIGRpc3BsYXkgbW9kZSB0aGF0IHNob3VsZCBiZSBmZWQgdG8gdGhlIG5leHQgZWxlbWVudCBp bgorCSAqIHRoZSBkaXNwbGF5IGNoYWluLCBlaXRoZXIgdGhlIGZpbmFsICZkcm1fY29ubmVjdG9y IG9yIHRoZSBuZXh0CisJICogJmRybV9icmlkZ2UuIFRoZSBwYXJhbWV0ZXIgYWRqdXN0ZWRfbW9k ZSBpcyB0aGUgaW5wdXQgbW9kZSB0aGUgYnJpZGdlCisJICogcmVxdWlyZXMuIEl0IGNhbiBiZSBt b2RpZmllZCBieSB0aGlzIGNhbGxiYWNrIGFuZCBkb2VzIG5vdCBuZWVkIHRvCisJICogbWF0Y2gg bW9kZS4KKwkgKgorCSAqIFRoaXMgaXMgdGhlIG9ubHkgaG9vayB0aGF0IGFsbG93cyBhIGJyaWRn ZSB0byByZWplY3QgYSBtb2Rlc2V0LiBJZgorCSAqIHRoaXMgZnVuY3Rpb24gcGFzc2VzIGFsbCBv dGhlciBjYWxsYmFja3MgbXVzdCBzdWNjZWVkIGZvciB0aGlzCisJICogY29uZmlndXJhdGlvbi4K KwkgKgorCSAqIFRoZSBtb2RlX2ZpeHVwIGNhbGxiYWNrIGlzIG9wdGlvbmFsLgorCSAqCisJICog Tk9URToKKwkgKgorCSAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGluIHRoZSBjaGVjayBwaGFz ZSBvZiBhdG9taWMgbW9kZXNldHMsIHdoaWNoCisJICogY2FuIGJlIGFib3J0ZWQgZm9yIGFueSBy ZWFzb24gKGluY2x1ZGluZyBvbiB1c2Vyc3BhY2UncyByZXF1ZXN0IHRvCisJICoganVzdCBjaGVj ayB3aGV0aGVyIGEgY29uZmlndXJhdGlvbiB3b3VsZCBiZSBwb3NzaWJsZSkuIERyaXZlcnMgTVVT VAorCSAqIE5PVCB0b3VjaCBhbnkgcGVyc2lzdGVudCBzdGF0ZSAoaGFyZHdhcmUgb3Igc29mdHdh cmUpIG9yIGRhdGEKKwkgKiBzdHJ1Y3R1cmVzIGV4Y2VwdCB0aGUgcGFzc2VkIGluIEBzdGF0ZSBw YXJhbWV0ZXIuCisJICoKKwkgKiBSRVRVUk5TOgorCSAqCisJICogVHJ1ZSBpZiBhbiBhY2NlcHRh YmxlIGNvbmZpZ3VyYXRpb24gaXMgcG9zc2libGUsIGZhbHNlIGlmIHRoZSBtb2Rlc2V0CisJICog b3BlcmF0aW9uIHNob3VsZCBiZSByZWplY3RlZC4KKwkgKi8KKwlib29sICgqbW9kZV9maXh1cCko c3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKKwkJCSAgIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxh eV9tb2RlICptb2RlLAorCQkJICAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21v ZGUpOworCS8qKgorCSAqIEBkaXNhYmxlOgorCSAqCisJICogVGhpcyBjYWxsYmFjayBzaG91bGQg ZGlzYWJsZSB0aGUgYnJpZGdlLiBJdCBpcyBjYWxsZWQgcmlnaHQgYmVmb3JlCisJICogdGhlIHBy ZWNlZGluZyBlbGVtZW50IGluIHRoZSBkaXNwbGF5IHBpcGUgaXMgZGlzYWJsZWQuIElmIHRoZQor CSAqIHByZWNlZGluZyBlbGVtZW50IGlzIGEgYnJpZGdlIHRoaXMgbWVhbnMgaXQncyBjYWxsZWQg YmVmb3JlIHRoYXQKKwkgKiBicmlkZ2UncyAtPmRpc2FibGUoKSBmdW5jdGlvbi4gSWYgdGhlIHBy ZWNlZGluZyBlbGVtZW50IGlzIGEKKwkgKiAmZHJtX2VuY29kZXIgaXQncyBjYWxsZWQgcmlnaHQg YmVmb3JlIHRoZSBlbmNvZGVyJ3MgLT5kaXNhYmxlKCksCisJICogLT5wcmVwYXJlKCkgb3IgLT5k cG1zKCkgaG9vayBmcm9tIHN0cnVjdCAmZHJtX2VuY29kZXJfaGVscGVyX2Z1bmNzLgorCSAqCisJ ICogVGhlIGJyaWRnZSBjYW4gYXNzdW1lIHRoYXQgdGhlIGRpc3BsYXkgcGlwZSAoaS5lLiBjbG9j a3MgYW5kIHRpbWluZworCSAqIHNpZ25hbHMpIGZlZWRpbmcgaXQgaXMgc3RpbGwgcnVubmluZyB3 aGVuIHRoaXMgY2FsbGJhY2sgaXMgY2FsbGVkLgorCSAqCisJICogVGhlIGRpc2FibGUgY2FsbGJh Y2sgaXMgb3B0aW9uYWwuCisJICovCisJdm9pZCAoKmRpc2FibGUpKHN0cnVjdCBkcm1fYnJpZGdl ICpicmlkZ2UpOworCisJLyoqCisJICogQHBvc3RfZGlzYWJsZToKKwkgKgorCSAqIFRoaXMgY2Fs bGJhY2sgc2hvdWxkIGRpc2FibGUgdGhlIGJyaWRnZS4gSXQgaXMgY2FsbGVkIHJpZ2h0IGFmdGVy CisJICogdGhlIHByZWNlZGluZyBlbGVtZW50IGluIHRoZSBkaXNwbGF5IHBpcGUgaXMgZGlzYWJs ZWQuIElmIHRoZQorCSAqIHByZWNlZGluZyBlbGVtZW50IGlzIGEgYnJpZGdlIHRoaXMgbWVhbnMg aXQncyBjYWxsZWQgYWZ0ZXIgdGhhdAorCSAqIGJyaWRnZSdzIC0+cG9zdF9kaXNhYmxlKCkgZnVu Y3Rpb24uIElmIHRoZSBwcmVjZWRpbmcgZWxlbWVudCBpcyBhCisJICogJmRybV9lbmNvZGVyIGl0 J3MgY2FsbGVkIHJpZ2h0IGFmdGVyIHRoZSBlbmNvZGVyJ3MgLT5kaXNhYmxlKCksCisJICogLT5w cmVwYXJlKCkgb3IgLT5kcG1zKCkgaG9vayBmcm9tIHN0cnVjdCAmZHJtX2VuY29kZXJfaGVscGVy X2Z1bmNzLgorCSAqCisJICogVGhlIGJyaWRnZSBtdXN0IGFzc3VtZSB0aGF0IHRoZSBkaXNwbGF5 IHBpcGUgKGkuZS4gY2xvY2tzIGFuZCB0aW1pbmcKKwkgKiBzaW5nYWxzKSBmZWVkaW5nIGl0IGlz IG5vIGxvbmdlciBydW5uaW5nIHdoZW4gdGhpcyBjYWxsYmFjayBpcworCSAqIGNhbGxlZC4KKwkg KgorCSAqIFRoZSBwb3N0X2Rpc2FibGUgY2FsbGJhY2sgaXMgb3B0aW9uYWwuCisJICovCisJdm9p ZCAoKnBvc3RfZGlzYWJsZSkoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSk7CisKKwkvKioKKwkg KiBAbW9kZV9zZXQ6CisJICoKKwkgKiBUaGlzIGNhbGxiYWNrIHNob3VsZCBzZXQgdGhlIGdpdmVu IG1vZGUgb24gdGhlIGJyaWRnZS4gSXQgaXMgY2FsbGVkCisJICogYWZ0ZXIgdGhlIC0+bW9kZV9z ZXQoKSBjYWxsYmFjayBmb3IgdGhlIHByZWNlZGluZyBlbGVtZW50IGluIHRoZQorCSAqIGRpc3Bs YXkgcGlwZWxpbmUgaGFzIGJlZW4gY2FsbGVkIGFscmVhZHkuIFRoZSBkaXNwbGF5IHBpcGUgKGku ZS4KKwkgKiBjbG9ja3MgYW5kIHRpbWluZyBzaWduYWxzKSBpcyBvZmYgd2hlbiB0aGlzIGZ1bmN0 aW9uIGlzIGNhbGxlZC4KKwkgKi8KKwl2b2lkICgqbW9kZV9zZXQpKHN0cnVjdCBkcm1fYnJpZGdl ICpicmlkZ2UsCisJCQkgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCisJCQkgc3RydWN0 IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUpOworCS8qKgorCSAqIEBwcmVfZW5hYmxl OgorCSAqCisJICogVGhpcyBjYWxsYmFjayBzaG91bGQgZW5hYmxlIHRoZSBicmlkZ2UuIEl0IGlz IGNhbGxlZCByaWdodCBiZWZvcmUKKwkgKiB0aGUgcHJlY2VkaW5nIGVsZW1lbnQgaW4gdGhlIGRp c3BsYXkgcGlwZSBpcyBlbmFibGVkLiBJZiB0aGUKKwkgKiBwcmVjZWRpbmcgZWxlbWVudCBpcyBh IGJyaWRnZSB0aGlzIG1lYW5zIGl0J3MgY2FsbGVkIGJlZm9yZSB0aGF0CisJICogYnJpZGdlJ3Mg LT5wcmVfZW5hYmxlKCkgZnVuY3Rpb24uIElmIHRoZSBwcmVjZWRpbmcgZWxlbWVudCBpcyBhCisJ ICogJmRybV9lbmNvZGVyIGl0J3MgY2FsbGVkIHJpZ2h0IGJlZm9yZSB0aGUgZW5jb2RlcidzIC0+ ZW5hYmxlKCksCisJICogLT5jb21taXQoKSBvciAtPmRwbXMoKSBob29rIGZyb20gc3RydWN0ICZk cm1fZW5jb2Rlcl9oZWxwZXJfZnVuY3MuCisJICoKKwkgKiBUaGUgZGlzcGxheSBwaXBlIChpLmUu IGNsb2NrcyBhbmQgdGltaW5nIHNpZ25hbHMpIGZlZWRpbmcgdGhpcyBicmlkZ2UKKwkgKiB3aWxs IG5vdCB5ZXQgYmUgcnVubmluZyB3aGVuIHRoaXMgY2FsbGJhY2sgaXMgY2FsbGVkLiBUaGUgYnJp ZGdlIG11c3QKKwkgKiBub3QgZW5hYmxlIHRoZSBkaXNwbGF5IGxpbmsgZmVlZGluZyB0aGUgbmV4 dCBicmlkZ2UgaW4gdGhlIGNoYWluIChpZgorCSAqIHRoZXJlIGlzIG9uZSkgd2hlbiB0aGlzIGNh bGxiYWNrIGlzIGNhbGxlZC4KKwkgKgorCSAqIFRoZSBwcmVfZW5hYmxlIGNhbGxiYWNrIGlzIG9w dGlvbmFsLgorCSAqLworCXZvaWQgKCpwcmVfZW5hYmxlKShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJp ZGdlKTsKKworCS8qKgorCSAqIEBlbmFibGU6CisJICoKKwkgKiBUaGlzIGNhbGxiYWNrIHNob3Vs ZCBlbmFibGUgdGhlIGJyaWRnZS4gSXQgaXMgY2FsbGVkIHJpZ2h0IGFmdGVyCisJICogdGhlIHBy ZWNlZGluZyBlbGVtZW50IGluIHRoZSBkaXNwbGF5IHBpcGUgaXMgZW5hYmxlZC4gSWYgdGhlCisJ ICogcHJlY2VkaW5nIGVsZW1lbnQgaXMgYSBicmlkZ2UgdGhpcyBtZWFucyBpdCdzIGNhbGxlZCBh ZnRlciB0aGF0CisJICogYnJpZGdlJ3MgLT5lbmFibGUoKSBmdW5jdGlvbi4gSWYgdGhlIHByZWNl ZGluZyBlbGVtZW50IGlzIGEKKwkgKiAmZHJtX2VuY29kZXIgaXQncyBjYWxsZWQgcmlnaHQgYWZ0 ZXIgdGhlIGVuY29kZXIncyAtPmVuYWJsZSgpLAorCSAqIC0+Y29tbWl0KCkgb3IgLT5kcG1zKCkg aG9vayBmcm9tIHN0cnVjdCAmZHJtX2VuY29kZXJfaGVscGVyX2Z1bmNzLgorCSAqCisJICogVGhl IGJyaWRnZSBjYW4gYXNzdW1lIHRoYXQgdGhlIGRpc3BsYXkgcGlwZSAoaS5lLiBjbG9ja3MgYW5k IHRpbWluZworCSAqIHNpZ25hbHMpIGZlZWRpbmcgaXQgaXMgcnVubmluZyB3aGVuIHRoaXMgY2Fs bGJhY2sgaXMgY2FsbGVkLiBUaGlzCisJICogY2FsbGJhY2sgbXVzdCBlbmFibGUgdGhlIGRpc3Bs YXkgbGluayBmZWVkaW5nIHRoZSBuZXh0IGJyaWRnZSBpbiB0aGUKKwkgKiBjaGFpbiBpZiB0aGVy ZSBpcyBvbmUuCisJICoKKwkgKiBUaGUgZW5hYmxlIGNhbGxiYWNrIGlzIG9wdGlvbmFsLgorCSAq LworCXZvaWQgKCplbmFibGUpKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpOworfTsKKworLyoq CisgKiBzdHJ1Y3QgZHJtX2JyaWRnZSAtIGNlbnRyYWwgRFJNIGJyaWRnZSBjb250cm9sIHN0cnVj dHVyZQorICogQGRldjogRFJNIGRldmljZSB0aGlzIGJyaWRnZSBiZWxvbmdzIHRvCisgKiBAZW5j b2RlcjogZW5jb2RlciB0byB3aGljaCB0aGlzIGJyaWRnZSBpcyBjb25uZWN0ZWQKKyAqIEBuZXh0 OiB0aGUgbmV4dCBicmlkZ2UgaW4gdGhlIGVuY29kZXIgY2hhaW4KKyAqIEBvZl9ub2RlOiBkZXZp Y2Ugbm9kZSBwb2ludGVyIHRvIHRoZSBicmlkZ2UKKyAqIEBsaXN0OiB0byBrZWVwIHRyYWNrIG9m IGFsbCBhZGRlZCBicmlkZ2VzCisgKiBAZnVuY3M6IGNvbnRyb2wgZnVuY3Rpb25zCisgKiBAZHJp dmVyX3ByaXZhdGU6IHBvaW50ZXIgdG8gdGhlIGJyaWRnZSBkcml2ZXIncyBpbnRlcm5hbCBjb250 ZXh0CisgKi8KK3N0cnVjdCBkcm1fYnJpZGdlIHsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2Owor CXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcjsKKwlzdHJ1Y3QgZHJtX2JyaWRnZSAqbmV4dDsK KyNpZmRlZiBDT05GSUdfT0YKKwlzdHJ1Y3QgZGV2aWNlX25vZGUgKm9mX25vZGU7CisjZW5kaWYK KwlzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7CisKKwljb25zdCBzdHJ1Y3QgZHJtX2JyaWRnZV9mdW5j cyAqZnVuY3M7CisJdm9pZCAqZHJpdmVyX3ByaXZhdGU7Cit9OworCitpbnQgZHJtX2JyaWRnZV9h ZGQoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSk7Cit2b2lkIGRybV9icmlkZ2VfcmVtb3ZlKHN0 cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpOworc3RydWN0IGRybV9icmlkZ2UgKm9mX2RybV9maW5k X2JyaWRnZShzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKTsKK2ludCBkcm1fYnJpZGdlX2F0dGFjaChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKTsKK3ZvaWQg ZHJtX2JyaWRnZV9kZXRhY2goc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSk7CisKK2Jvb2wgZHJt X2JyaWRnZV9tb2RlX2ZpeHVwKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCisJCQljb25zdCBz dHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwKKwkJCXN0cnVjdCBkcm1fZGlzcGxheV9tb2Rl ICphZGp1c3RlZF9tb2RlKTsKK3ZvaWQgZHJtX2JyaWRnZV9kaXNhYmxlKHN0cnVjdCBkcm1fYnJp ZGdlICpicmlkZ2UpOwordm9pZCBkcm1fYnJpZGdlX3Bvc3RfZGlzYWJsZShzdHJ1Y3QgZHJtX2Jy aWRnZSAqYnJpZGdlKTsKK3ZvaWQgZHJtX2JyaWRnZV9tb2RlX3NldChzdHJ1Y3QgZHJtX2JyaWRn ZSAqYnJpZGdlLAorCQkJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCisJCQlzdHJ1Y3Qg ZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSk7Cit2b2lkIGRybV9icmlkZ2VfcHJlX2Vu YWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKTsKK3ZvaWQgZHJtX2JyaWRnZV9lbmFibGUo c3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVk ZS9kcm0vZHJtX2Nvbm5lY3Rvci5oIGIvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCmluZGV4 IGU0ZTU0NWU5NTE2ZC4uNTFhMTVkZWRhMTYxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1f Y29ubmVjdG9yLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCkBAIC0yNyw2ICsy NywxMCBAQAogI2luY2x1ZGUgPGxpbnV4L2N0eXBlLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9tb2Rl X29iamVjdC5oPgogCisjaW5jbHVkZSA8dWFwaS9kcm0vZHJtX21vZGUuaD4KKworc3RydWN0IGRy bV9kZXZpY2U7CisKIHN0cnVjdCBkcm1fY29ubmVjdG9yX2hlbHBlcl9mdW5jczsKIHN0cnVjdCBk cm1fZGV2aWNlOwogc3RydWN0IGRybV9jcnRjOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJt X2NydGMuaCBiL2luY2x1ZGUvZHJtL2RybV9jcnRjLmgKaW5kZXggMmE2NDJhZTk2MTI3Li5iZjll ZTFiOTdjMjYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9jcnRjLmgKKysrIGIvaW5jbHVk ZS9kcm0vZHJtX2NydGMuaApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgPGRybS9kcm1fY29u bmVjdG9yLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9lbmNvZGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2Ry bV9wcm9wZXJ0eS5oPgorI2luY2x1ZGUgPGRybS9kcm1fYnJpZGdlLmg+CiAKIHN0cnVjdCBkcm1f ZGV2aWNlOwogc3RydWN0IGRybV9tb2RlX3NldDsKQEAgLTEwMDEsMTc0ICsxMDAyLDYgQEAgc3Ry dWN0IGRybV9wbGFuZSB7CiB9OwogCiAvKioKLSAqIHN0cnVjdCBkcm1fYnJpZGdlX2Z1bmNzIC0g ZHJtX2JyaWRnZSBjb250cm9sIGZ1bmN0aW9ucwotICovCi1zdHJ1Y3QgZHJtX2JyaWRnZV9mdW5j cyB7Ci0JLyoqCi0JICogQGF0dGFjaDoKLQkgKgotCSAqIFRoaXMgY2FsbGJhY2sgaXMgaW52b2tl ZCB3aGVuZXZlciBvdXIgYnJpZGdlIGlzIGJlaW5nIGF0dGFjaGVkIHRvIGEKLQkgKiAmZHJtX2Vu Y29kZXIuCi0JICoKLQkgKiBUaGUgYXR0YWNoIGNhbGxiYWNrIGlzIG9wdGlvbmFsLgotCSAqCi0J ICogUkVUVVJOUzoKLQkgKgotCSAqIFplcm8gb24gc3VjY2VzcywgZXJyb3IgY29kZSBvbiBmYWls dXJlLgotCSAqLwotCWludCAoKmF0dGFjaCkoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSk7Ci0K LQkvKioKLQkgKiBAZGV0YWNoOgotCSAqCi0JICogVGhpcyBjYWxsYmFjayBpcyBpbnZva2VkIHdo ZW5ldmVyIG91ciBicmlkZ2UgaXMgYmVpbmcgZGV0YWNoZWQgZnJvbSBhCi0JICogJmRybV9lbmNv ZGVyLgotCSAqCi0JICogVGhlIGRldGFjaCBjYWxsYmFjayBpcyBvcHRpb25hbC4KLQkgKi8KLQl2 b2lkICgqZGV0YWNoKShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKTsKLQotCS8qKgotCSAqIEBt b2RlX2ZpeHVwOgotCSAqCi0JICogVGhpcyBjYWxsYmFjayBpcyB1c2VkIHRvIHZhbGlkYXRlIGFu ZCBhZGp1c3QgYSBtb2RlLiBUaGUgcGFyYW1hdGVyCi0JICogbW9kZSBpcyB0aGUgZGlzcGxheSBt b2RlIHRoYXQgc2hvdWxkIGJlIGZlZCB0byB0aGUgbmV4dCBlbGVtZW50IGluCi0JICogdGhlIGRp c3BsYXkgY2hhaW4sIGVpdGhlciB0aGUgZmluYWwgJmRybV9jb25uZWN0b3Igb3IgdGhlIG5leHQK LQkgKiAmZHJtX2JyaWRnZS4gVGhlIHBhcmFtZXRlciBhZGp1c3RlZF9tb2RlIGlzIHRoZSBpbnB1 dCBtb2RlIHRoZSBicmlkZ2UKLQkgKiByZXF1aXJlcy4gSXQgY2FuIGJlIG1vZGlmaWVkIGJ5IHRo aXMgY2FsbGJhY2sgYW5kIGRvZXMgbm90IG5lZWQgdG8KLQkgKiBtYXRjaCBtb2RlLgotCSAqCi0J ICogVGhpcyBpcyB0aGUgb25seSBob29rIHRoYXQgYWxsb3dzIGEgYnJpZGdlIHRvIHJlamVjdCBh IG1vZGVzZXQuIElmCi0JICogdGhpcyBmdW5jdGlvbiBwYXNzZXMgYWxsIG90aGVyIGNhbGxiYWNr cyBtdXN0IHN1Y2NlZWQgZm9yIHRoaXMKLQkgKiBjb25maWd1cmF0aW9uLgotCSAqCi0JICogVGhl IG1vZGVfZml4dXAgY2FsbGJhY2sgaXMgb3B0aW9uYWwuCi0JICoKLQkgKiBOT1RFOgotCSAqCi0J ICogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgaW4gdGhlIGNoZWNrIHBoYXNlIG9mIGF0b21pYyBt b2Rlc2V0cywgd2hpY2gKLQkgKiBjYW4gYmUgYWJvcnRlZCBmb3IgYW55IHJlYXNvbiAoaW5jbHVk aW5nIG9uIHVzZXJzcGFjZSdzIHJlcXVlc3QgdG8KLQkgKiBqdXN0IGNoZWNrIHdoZXRoZXIgYSBj b25maWd1cmF0aW9uIHdvdWxkIGJlIHBvc3NpYmxlKS4gRHJpdmVycyBNVVNUCi0JICogTk9UIHRv dWNoIGFueSBwZXJzaXN0ZW50IHN0YXRlIChoYXJkd2FyZSBvciBzb2Z0d2FyZSkgb3IgZGF0YQot CSAqIHN0cnVjdHVyZXMgZXhjZXB0IHRoZSBwYXNzZWQgaW4gQHN0YXRlIHBhcmFtZXRlci4KLQkg KgotCSAqIFJFVFVSTlM6Ci0JICoKLQkgKiBUcnVlIGlmIGFuIGFjY2VwdGFibGUgY29uZmlndXJh dGlvbiBpcyBwb3NzaWJsZSwgZmFsc2UgaWYgdGhlIG1vZGVzZXQKLQkgKiBvcGVyYXRpb24gc2hv dWxkIGJlIHJlamVjdGVkLgotCSAqLwotCWJvb2wgKCptb2RlX2ZpeHVwKShzdHJ1Y3QgZHJtX2Jy aWRnZSAqYnJpZGdlLAotCQkJICAgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUs Ci0JCQkgICBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSk7Ci0JLyoqCi0J ICogQGRpc2FibGU6Ci0JICoKLQkgKiBUaGlzIGNhbGxiYWNrIHNob3VsZCBkaXNhYmxlIHRoZSBi cmlkZ2UuIEl0IGlzIGNhbGxlZCByaWdodCBiZWZvcmUKLQkgKiB0aGUgcHJlY2VkaW5nIGVsZW1l bnQgaW4gdGhlIGRpc3BsYXkgcGlwZSBpcyBkaXNhYmxlZC4gSWYgdGhlCi0JICogcHJlY2VkaW5n IGVsZW1lbnQgaXMgYSBicmlkZ2UgdGhpcyBtZWFucyBpdCdzIGNhbGxlZCBiZWZvcmUgdGhhdAot CSAqIGJyaWRnZSdzIC0+ZGlzYWJsZSgpIGZ1bmN0aW9uLiBJZiB0aGUgcHJlY2VkaW5nIGVsZW1l bnQgaXMgYQotCSAqICZkcm1fZW5jb2RlciBpdCdzIGNhbGxlZCByaWdodCBiZWZvcmUgdGhlIGVu Y29kZXIncyAtPmRpc2FibGUoKSwKLQkgKiAtPnByZXBhcmUoKSBvciAtPmRwbXMoKSBob29rIGZy b20gc3RydWN0ICZkcm1fZW5jb2Rlcl9oZWxwZXJfZnVuY3MuCi0JICoKLQkgKiBUaGUgYnJpZGdl IGNhbiBhc3N1bWUgdGhhdCB0aGUgZGlzcGxheSBwaXBlIChpLmUuIGNsb2NrcyBhbmQgdGltaW5n Ci0JICogc2lnbmFscykgZmVlZGluZyBpdCBpcyBzdGlsbCBydW5uaW5nIHdoZW4gdGhpcyBjYWxs YmFjayBpcyBjYWxsZWQuCi0JICoKLQkgKiBUaGUgZGlzYWJsZSBjYWxsYmFjayBpcyBvcHRpb25h bC4KLQkgKi8KLQl2b2lkICgqZGlzYWJsZSkoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSk7Ci0K LQkvKioKLQkgKiBAcG9zdF9kaXNhYmxlOgotCSAqCi0JICogVGhpcyBjYWxsYmFjayBzaG91bGQg ZGlzYWJsZSB0aGUgYnJpZGdlLiBJdCBpcyBjYWxsZWQgcmlnaHQgYWZ0ZXIKLQkgKiB0aGUgcHJl Y2VkaW5nIGVsZW1lbnQgaW4gdGhlIGRpc3BsYXkgcGlwZSBpcyBkaXNhYmxlZC4gSWYgdGhlCi0J ICogcHJlY2VkaW5nIGVsZW1lbnQgaXMgYSBicmlkZ2UgdGhpcyBtZWFucyBpdCdzIGNhbGxlZCBh ZnRlciB0aGF0Ci0JICogYnJpZGdlJ3MgLT5wb3N0X2Rpc2FibGUoKSBmdW5jdGlvbi4gSWYgdGhl IHByZWNlZGluZyBlbGVtZW50IGlzIGEKLQkgKiAmZHJtX2VuY29kZXIgaXQncyBjYWxsZWQgcmln aHQgYWZ0ZXIgdGhlIGVuY29kZXIncyAtPmRpc2FibGUoKSwKLQkgKiAtPnByZXBhcmUoKSBvciAt PmRwbXMoKSBob29rIGZyb20gc3RydWN0ICZkcm1fZW5jb2Rlcl9oZWxwZXJfZnVuY3MuCi0JICoK LQkgKiBUaGUgYnJpZGdlIG11c3QgYXNzdW1lIHRoYXQgdGhlIGRpc3BsYXkgcGlwZSAoaS5lLiBj bG9ja3MgYW5kIHRpbWluZwotCSAqIHNpbmdhbHMpIGZlZWRpbmcgaXQgaXMgbm8gbG9uZ2VyIHJ1 bm5pbmcgd2hlbiB0aGlzIGNhbGxiYWNrIGlzCi0JICogY2FsbGVkLgotCSAqCi0JICogVGhlIHBv c3RfZGlzYWJsZSBjYWxsYmFjayBpcyBvcHRpb25hbC4KLQkgKi8KLQl2b2lkICgqcG9zdF9kaXNh YmxlKShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKTsKLQotCS8qKgotCSAqIEBtb2RlX3NldDoK LQkgKgotCSAqIFRoaXMgY2FsbGJhY2sgc2hvdWxkIHNldCB0aGUgZ2l2ZW4gbW9kZSBvbiB0aGUg YnJpZGdlLiBJdCBpcyBjYWxsZWQKLQkgKiBhZnRlciB0aGUgLT5tb2RlX3NldCgpIGNhbGxiYWNr IGZvciB0aGUgcHJlY2VkaW5nIGVsZW1lbnQgaW4gdGhlCi0JICogZGlzcGxheSBwaXBlbGluZSBo YXMgYmVlbiBjYWxsZWQgYWxyZWFkeS4gVGhlIGRpc3BsYXkgcGlwZSAoaS5lLgotCSAqIGNsb2Nr cyBhbmQgdGltaW5nIHNpZ25hbHMpIGlzIG9mZiB3aGVuIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVk LgotCSAqLwotCXZvaWQgKCptb2RlX3NldCkoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKLQkJ CSBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwKLQkJCSBzdHJ1Y3QgZHJtX2Rpc3BsYXlf bW9kZSAqYWRqdXN0ZWRfbW9kZSk7Ci0JLyoqCi0JICogQHByZV9lbmFibGU6Ci0JICoKLQkgKiBU aGlzIGNhbGxiYWNrIHNob3VsZCBlbmFibGUgdGhlIGJyaWRnZS4gSXQgaXMgY2FsbGVkIHJpZ2h0 IGJlZm9yZQotCSAqIHRoZSBwcmVjZWRpbmcgZWxlbWVudCBpbiB0aGUgZGlzcGxheSBwaXBlIGlz IGVuYWJsZWQuIElmIHRoZQotCSAqIHByZWNlZGluZyBlbGVtZW50IGlzIGEgYnJpZGdlIHRoaXMg bWVhbnMgaXQncyBjYWxsZWQgYmVmb3JlIHRoYXQKLQkgKiBicmlkZ2UncyAtPnByZV9lbmFibGUo KSBmdW5jdGlvbi4gSWYgdGhlIHByZWNlZGluZyBlbGVtZW50IGlzIGEKLQkgKiAmZHJtX2VuY29k ZXIgaXQncyBjYWxsZWQgcmlnaHQgYmVmb3JlIHRoZSBlbmNvZGVyJ3MgLT5lbmFibGUoKSwKLQkg KiAtPmNvbW1pdCgpIG9yIC0+ZHBtcygpIGhvb2sgZnJvbSBzdHJ1Y3QgJmRybV9lbmNvZGVyX2hl bHBlcl9mdW5jcy4KLQkgKgotCSAqIFRoZSBkaXNwbGF5IHBpcGUgKGkuZS4gY2xvY2tzIGFuZCB0 aW1pbmcgc2lnbmFscykgZmVlZGluZyB0aGlzIGJyaWRnZQotCSAqIHdpbGwgbm90IHlldCBiZSBy dW5uaW5nIHdoZW4gdGhpcyBjYWxsYmFjayBpcyBjYWxsZWQuIFRoZSBicmlkZ2UgbXVzdAotCSAq IG5vdCBlbmFibGUgdGhlIGRpc3BsYXkgbGluayBmZWVkaW5nIHRoZSBuZXh0IGJyaWRnZSBpbiB0 aGUgY2hhaW4gKGlmCi0JICogdGhlcmUgaXMgb25lKSB3aGVuIHRoaXMgY2FsbGJhY2sgaXMgY2Fs bGVkLgotCSAqCi0JICogVGhlIHByZV9lbmFibGUgY2FsbGJhY2sgaXMgb3B0aW9uYWwuCi0JICov Ci0Jdm9pZCAoKnByZV9lbmFibGUpKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpOwotCi0JLyoq Ci0JICogQGVuYWJsZToKLQkgKgotCSAqIFRoaXMgY2FsbGJhY2sgc2hvdWxkIGVuYWJsZSB0aGUg YnJpZGdlLiBJdCBpcyBjYWxsZWQgcmlnaHQgYWZ0ZXIKLQkgKiB0aGUgcHJlY2VkaW5nIGVsZW1l bnQgaW4gdGhlIGRpc3BsYXkgcGlwZSBpcyBlbmFibGVkLiBJZiB0aGUKLQkgKiBwcmVjZWRpbmcg ZWxlbWVudCBpcyBhIGJyaWRnZSB0aGlzIG1lYW5zIGl0J3MgY2FsbGVkIGFmdGVyIHRoYXQKLQkg KiBicmlkZ2UncyAtPmVuYWJsZSgpIGZ1bmN0aW9uLiBJZiB0aGUgcHJlY2VkaW5nIGVsZW1lbnQg aXMgYQotCSAqICZkcm1fZW5jb2RlciBpdCdzIGNhbGxlZCByaWdodCBhZnRlciB0aGUgZW5jb2Rl cidzIC0+ZW5hYmxlKCksCi0JICogLT5jb21taXQoKSBvciAtPmRwbXMoKSBob29rIGZyb20gc3Ry dWN0ICZkcm1fZW5jb2Rlcl9oZWxwZXJfZnVuY3MuCi0JICoKLQkgKiBUaGUgYnJpZGdlIGNhbiBh c3N1bWUgdGhhdCB0aGUgZGlzcGxheSBwaXBlIChpLmUuIGNsb2NrcyBhbmQgdGltaW5nCi0JICog c2lnbmFscykgZmVlZGluZyBpdCBpcyBydW5uaW5nIHdoZW4gdGhpcyBjYWxsYmFjayBpcyBjYWxs ZWQuIFRoaXMKLQkgKiBjYWxsYmFjayBtdXN0IGVuYWJsZSB0aGUgZGlzcGxheSBsaW5rIGZlZWRp bmcgdGhlIG5leHQgYnJpZGdlIGluIHRoZQotCSAqIGNoYWluIGlmIHRoZXJlIGlzIG9uZS4KLQkg KgotCSAqIFRoZSBlbmFibGUgY2FsbGJhY2sgaXMgb3B0aW9uYWwuCi0JICovCi0Jdm9pZCAoKmVu YWJsZSkoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSk7Ci19OwotCi0vKioKLSAqIHN0cnVjdCBk cm1fYnJpZGdlIC0gY2VudHJhbCBEUk0gYnJpZGdlIGNvbnRyb2wgc3RydWN0dXJlCi0gKiBAZGV2 OiBEUk0gZGV2aWNlIHRoaXMgYnJpZGdlIGJlbG9uZ3MgdG8KLSAqIEBlbmNvZGVyOiBlbmNvZGVy IHRvIHdoaWNoIHRoaXMgYnJpZGdlIGlzIGNvbm5lY3RlZAotICogQG5leHQ6IHRoZSBuZXh0IGJy aWRnZSBpbiB0aGUgZW5jb2RlciBjaGFpbgotICogQG9mX25vZGU6IGRldmljZSBub2RlIHBvaW50 ZXIgdG8gdGhlIGJyaWRnZQotICogQGxpc3Q6IHRvIGtlZXAgdHJhY2sgb2YgYWxsIGFkZGVkIGJy aWRnZXMKLSAqIEBmdW5jczogY29udHJvbCBmdW5jdGlvbnMKLSAqIEBkcml2ZXJfcHJpdmF0ZTog cG9pbnRlciB0byB0aGUgYnJpZGdlIGRyaXZlcidzIGludGVybmFsIGNvbnRleHQKLSAqLwotc3Ry dWN0IGRybV9icmlkZ2UgewotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXY7Ci0Jc3RydWN0IGRybV9l bmNvZGVyICplbmNvZGVyOwotCXN0cnVjdCBkcm1fYnJpZGdlICpuZXh0OwotI2lmZGVmIENPTkZJ R19PRgotCXN0cnVjdCBkZXZpY2Vfbm9kZSAqb2Zfbm9kZTsKLSNlbmRpZgotCXN0cnVjdCBsaXN0 X2hlYWQgbGlzdDsKLQotCWNvbnN0IHN0cnVjdCBkcm1fYnJpZGdlX2Z1bmNzICpmdW5jczsKLQl2 b2lkICpkcml2ZXJfcHJpdmF0ZTsKLX07Ci0KLS8qKgogICogc3RydWN0IGRybV9jcnRjX2NvbW1p dCAtIHRyYWNrIG1vZGVzZXQgY29tbWl0cyBvbiBhIENSVEMKICAqCiAgKiBUaGlzIHN0cnVjdHVy ZSBpcyB1c2VkIHRvIHRyYWNrIHBlbmRpbmcgbW9kZXNldCBjaGFuZ2VzIGFuZCBhdG9taWMgY29t bWl0IG9uCkBAIC0yMTg4LDIyICsyMDIxLDQgQEAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmRy bV9tb2RlX2ZpbmRfZG10KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJCSAgIGludCBoc2l6 ZSwgaW50IHZzaXplLCBpbnQgZnJlc2gsCiAJCQkJCSAgIGJvb2wgcmIpOwogCi0vKiBkcm1fYnJp ZGdlLmMgKi8KLWV4dGVybiBpbnQgZHJtX2JyaWRnZV9hZGQoc3RydWN0IGRybV9icmlkZ2UgKmJy aWRnZSk7Ci1leHRlcm4gdm9pZCBkcm1fYnJpZGdlX3JlbW92ZShzdHJ1Y3QgZHJtX2JyaWRnZSAq YnJpZGdlKTsKLWV4dGVybiBzdHJ1Y3QgZHJtX2JyaWRnZSAqb2ZfZHJtX2ZpbmRfYnJpZGdlKHN0 cnVjdCBkZXZpY2Vfbm9kZSAqbnApOwotZXh0ZXJuIGludCBkcm1fYnJpZGdlX2F0dGFjaChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKTsKLWV4dGVybiB2 b2lkIGRybV9icmlkZ2VfZGV0YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpOwotCi1ib29s IGRybV9icmlkZ2VfbW9kZV9maXh1cChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAotCQkJY29u c3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCi0JCQlzdHJ1Y3QgZHJtX2Rpc3BsYXlf bW9kZSAqYWRqdXN0ZWRfbW9kZSk7Ci12b2lkIGRybV9icmlkZ2VfZGlzYWJsZShzdHJ1Y3QgZHJt X2JyaWRnZSAqYnJpZGdlKTsKLXZvaWQgZHJtX2JyaWRnZV9wb3N0X2Rpc2FibGUoc3RydWN0IGRy bV9icmlkZ2UgKmJyaWRnZSk7Ci12b2lkIGRybV9icmlkZ2VfbW9kZV9zZXQoc3RydWN0IGRybV9i cmlkZ2UgKmJyaWRnZSwKLQkJCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlLAotCQkJc3Ry dWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUpOwotdm9pZCBkcm1fYnJpZGdlX3By ZV9lbmFibGUoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSk7Ci12b2lkIGRybV9icmlkZ2VfZW5h YmxlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpOwotCiAjZW5kaWYgLyogX19EUk1fQ1JUQ19I X18gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9tb2RlX29iamVjdC5oIGIvaW5jbHVk ZS9kcm0vZHJtX21vZGVfb2JqZWN0LmgKaW5kZXggYmUzZDkzODM5YWUyLi40MzQ2MGIyMWQxMTIg MTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9tb2RlX29iamVjdC5oCisrKyBiL2luY2x1ZGUv ZHJtL2RybV9tb2RlX29iamVjdC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSA8bGludXgv a3JlZi5oPgogc3RydWN0IGRybV9vYmplY3RfcHJvcGVydGllczsKIHN0cnVjdCBkcm1fcHJvcGVy dHk7CitzdHJ1Y3QgZHJtX2RldmljZTsKIAogLyoqCiAgKiBzdHJ1Y3QgZHJtX21vZGVfb2JqZWN0 IC0gYmFzZSBzdHJ1Y3R1cmUgZm9yIG1vZGVzZXQgb2JqZWN0cwpkaWZmIC0tZ2l0IGEvaW5jbHVk ZS9kcm0vZHJtX21vZGVzLmggYi9pbmNsdWRlL2RybS9kcm1fbW9kZXMuaAppbmRleCA5ODZlZDZm ZjYzNWEuLjk5MzRkOTE2MTljMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX21vZGVzLmgK KysrIGIvaW5jbHVkZS9kcm0vZHJtX21vZGVzLmgKQEAgLTI3LDkgKzI3LDEzIEBACiAjaWZuZGVm IF9fRFJNX01PREVTX0hfXwogI2RlZmluZSBfX0RSTV9NT0RFU19IX18KIAorI2luY2x1ZGUgPGxp bnV4L2hkbWkuaD4KKwogI2luY2x1ZGUgPGRybS9kcm1fbW9kZV9vYmplY3QuaD4KICNpbmNsdWRl IDxkcm0vZHJtX2Nvbm5lY3Rvci5oPgogCitzdHJ1Y3QgdmlkZW9tb2RlOworCiAvKgogICogTm90 ZSBvbiB0ZXJtaW5vbG9neTogIGhlcmUsIGZvciBicmV2aXR5IGFuZCBjb252ZW5pZW5jZSwgd2Ug cmVmZXIgdG8gY29ubmVjdG9yCiAgKiBjb250cm9sIGNoaXBzIGFzICdDUlRDcycuICBUaGV5IGNh biBjb250cm9sIGFueSB0eXBlIG9mIGNvbm5lY3RvciwgVkdBLCBMVkRTLAotLSAKMi45LjMKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=