From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH v6 05/12] drm/i915: Add plumbing for digital connector state, v3. Date: Mon, 1 May 2017 15:37:57 +0200 Message-ID: <20170501133804.8116-6-maarten.lankhorst@linux.intel.com> References: <20170501133804.8116-1-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170501133804.8116-1-maarten.lankhorst@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: dri-devel@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org U29tZSBhdG9taWMgcHJvcGVydGllcyBhcmUgY29tbW9uIGJldHdlZW4gdGhlIHZhcmlvdXMga2lu ZHMgb2YKY29ubmVjdG9ycywgZm9yIGV4YW1wbGUgYSBsb3Qgb2YgdGhlbSB1c2UgcGFuZWwgZml0 dGluZyBtb2RlLgpJdCBtYWtlcyBzZW5zZSB0byBwdXQgYSBsb3Qgb2YgaXQgaW4gYSBjb21tb24g cGxhY2UsIHNvIGVhY2gKY29ubmVjdG9yIGNhbiB1c2UgaXQgd2hpbGUgdGhleSdyZSBiZWluZyBj b252ZXJ0ZWQuCgpJbXBsZW1lbnQgdGhlIHByb3BlcnRpZXMgcmVxdWlyZWQgZm9yIHRoZSBjb25u ZWN0b3JzOgotIHNjYWxpbmcgbW9kZSBwcm9wZXJ0eQotIGZvcmNlIGF1ZGlvIHByb3BlcnR5Ci0g YnJvYWRjYXN0IHJnYgotIGFzcGVjdCByYXRpbwoKV2hpbGUgYXQgaXQsIG1ha2UgY2xlYXIgdGhh dCBpbnRlbF9kaWdpdGFsX2Nvbm5lY3Rvcl9hdG9taWNfZ2V0X3Byb3BlcnR5CmlzIGEgaGFjayB0 aGF0IGhhcyB0byBiZSByZW1vdmVkIHdoZW4gYWxsIGNvbm5lY3RvciBwcm9wZXJ0aWVzCmFyZSBj b252ZXJ0ZWQgdG8gYXRvbWljLgoKQ2hhbmdlcyBzaW5jZSB2MToKLSBTY2FsaW5nIG1vZGUgYW5k IGFzcGVjdCByYXRpbyBhcmUgcGFydGx5IGhhbmRsZWQgaW4gY29yZSBub3cuCkNoYW5nZXMgc2lu Y2UgdjI6Ci0gU3BsaXQgb3V0IHRoZSBzY2FsaW5nIG1vZGUgLyBhc3BlY3QgcmF0aW8gY2hhbmdl cyB0byBhIHByZXBhcmF0aW9uCiAgcGF0Y2guCi0gVXNlIG1vZGVfY2hhbmdlZCBmb3IgcGFuZWwg Zml0dGVyLCBjaGFuZ2VzIHRvIHRoaXMgcHJvcGVydHkKICBhcmUgY2hlY2tlZCBieSBmYXN0c2V0 LgotIEFsbG93ZWRfc2NhbGluZ19tb2RlcyBpcyByZW1vdmVkLCBoYW5kbGVkIHRocm91Z2ggY29y ZSBub3cuCgpTaWduZWQtb2ZmLWJ5OiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9y c3RAbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21p Yy5jICB8IDEzMSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgIDE0ICsrKy0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rydi5oICAgICB8ICAyMyArKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgMTU5IGlu c2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfYXRvbWljLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWMu YwppbmRleCA1MGZiMWY3NmNjNWYuLjE4MjkwOWYyNjZmNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfYXRvbWljLmMKQEAgLTM2LDcgKzM2LDcgQEAKICNpbmNsdWRlICJpbnRlbF9kcnYuaCIKIAog LyoqCi0gKiBpbnRlbF9jb25uZWN0b3JfYXRvbWljX2dldF9wcm9wZXJ0eSAtIGZldGNoIGNvbm5l Y3RvciBwcm9wZXJ0eSB2YWx1ZQorICogaW50ZWxfY29ubmVjdG9yX2F0b21pY19nZXRfcHJvcGVy dHkgLSBmZXRjaCBsZWdhY3kgY29ubmVjdG9yIHByb3BlcnR5IHZhbHVlCiAgKiBAY29ubmVjdG9y OiBjb25uZWN0b3IgdG8gZmV0Y2ggcHJvcGVydHkgZm9yCiAgKiBAc3RhdGU6IHN0YXRlIGNvbnRh aW5pbmcgdGhlIHByb3BlcnR5IHZhbHVlCiAgKiBAcHJvcGVydHk6IHByb3BlcnR5IHRvIGxvb2sg dXAKQEAgLTQ1LDEyICs0NSwxNCBAQAogICogVGhlIERSTSBjb3JlIGRvZXMgbm90IHN0b3JlIHNo YWRvdyBjb3BpZXMgb2YgcHJvcGVydGllcyBmb3IKICAqIGF0b21pYy1jYXBhYmxlIGRyaXZlcnMu ICBUaGlzIGVudHJ5cG9pbnQgaXMgdXNlZCB0byBmZXRjaAogICogdGhlIGN1cnJlbnQgdmFsdWUg b2YgYSBkcml2ZXItc3BlY2lmaWMgY29ubmVjdG9yIHByb3BlcnR5LgorICoKKyAqIFRoaXMgaXMg YSBpbnRlcm1lZGlhcnkgc29sdXRpb24gdW50aWwgYWxsIGNvbm5lY3RvcnMgYXJlCisgKiBjb252 ZXJ0ZWQgdG8gc3VwcG9ydCBmdWxsIGF0b21pYyBwcm9wZXJ0aWVzLgogICovCi1pbnQKLWludGVs X2Nvbm5lY3Rvcl9hdG9taWNfZ2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25u ZWN0b3IsCi0JCQkJICAgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpzdGF0ZSwK LQkJCQkgICAgc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcGVydHksCi0JCQkJICAgIHVpbnQ2NF90 ICp2YWwpCitpbnQgaW50ZWxfY29ubmVjdG9yX2F0b21pY19nZXRfcHJvcGVydHkoc3RydWN0IGRy bV9jb25uZWN0b3IgKmNvbm5lY3RvciwKKwkJCQkJY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jf c3RhdGUgKnN0YXRlLAorCQkJCQlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wZXJ0eSwKKwkJCQkJ dWludDY0X3QgKnZhbCkKIHsKIAlpbnQgaTsKIApAQCAtNzMsNyArNzUsMTIyIEBAIGludGVsX2Nv bm5lY3Rvcl9hdG9taWNfZ2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3IsCiAJcmV0dXJuIC1FSU5WQUw7CiB9CiAKLS8qCisvKioKKyAqIGludGVsX2RpZ2l0YWxfY29u bmVjdG9yX2F0b21pY19nZXRfcHJvcGVydHkgLSBob29rIGZvciBjb25uZWN0b3ItPmF0b21pY19n ZXRfcHJvcGVydHkuCisgKiBAY29ubmVjdG9yOiBDb25uZWN0b3IgdG8gZ2V0IHRoZSBwcm9wZXJ0 eSBmb3IuCisgKiBAc3RhdGU6IENvbm5lY3RvciBzdGF0ZSB0byByZXRyaWV2ZSB0aGUgcHJvcGVy dHkgZnJvbS4KKyAqIEBwcm9wZXJ0eTogUHJvcGVydHkgdG8gcmV0cmlldmUuCisgKiBAdmFsOiBS ZXR1cm4gdmFsdWUgZm9yIHRoZSBwcm9wZXJ0eS4KKyAqCisgKiBSZXR1cm5zIHRoZSBhdG9taWMg cHJvcGVydHkgdmFsdWUgZm9yIGEgZGlnaXRhbCBjb25uZWN0b3IuCisgKi8KK2ludCBpbnRlbF9k aWdpdGFsX2Nvbm5lY3Rvcl9hdG9taWNfZ2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9y ICpjb25uZWN0b3IsCisJCQkJCQljb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqc3Rh dGUsCisJCQkJCQlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wZXJ0eSwKKwkJCQkJCXVpbnQ2NF90 ICp2YWwpCit7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNvbm5lY3Rvci0+ZGV2OworCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKKwlzdHJ1Y3Qg aW50ZWxfZGlnaXRhbF9jb25uZWN0b3Jfc3RhdGUgKmludGVsX2Nvbm5fc3RhdGUgPQorCQl0b19p bnRlbF9kaWdpdGFsX2Nvbm5lY3Rvcl9zdGF0ZShzdGF0ZSk7CisKKwlpZiAocHJvcGVydHkgPT0g ZGV2X3ByaXYtPmZvcmNlX2F1ZGlvX3Byb3BlcnR5KQorCQkqdmFsID0gaW50ZWxfY29ubl9zdGF0 ZS0+Zm9yY2VfYXVkaW87CisJZWxzZSBpZiAocHJvcGVydHkgPT0gZGV2X3ByaXYtPmJyb2FkY2Fz dF9yZ2JfcHJvcGVydHkpCisJCSp2YWwgPSBpbnRlbF9jb25uX3N0YXRlLT5icm9hZGNhc3Rfcmdi OworCWVsc2UgeworCQlEUk1fREVCVUdfQVRPTUlDKCJVbmtub3duIHByb3BlcnR5ICVzXG4iLCBw cm9wZXJ0eS0+bmFtZSk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCXJldHVybiAwOworfQor CisvKioKKyAqIGludGVsX2RpZ2l0YWxfY29ubmVjdG9yX2F0b21pY19zZXRfcHJvcGVydHkgLSBo b29rIGZvciBjb25uZWN0b3ItPmF0b21pY19zZXRfcHJvcGVydHkuCisgKiBAY29ubmVjdG9yOiBD b25uZWN0b3IgdG8gc2V0IHRoZSBwcm9wZXJ0eSBmb3IuCisgKiBAc3RhdGU6IENvbm5lY3RvciBz dGF0ZSB0byBzZXQgdGhlIHByb3BlcnR5IG9uLgorICogQHByb3BlcnR5OiBQcm9wZXJ0eSB0byBz ZXQuCisgKiBAdmFsOiBOZXcgdmFsdWUgZm9yIHRoZSBwcm9wZXJ0eS4KKyAqCisgKiBTZXRzIHRo ZSBhdG9taWMgcHJvcGVydHkgdmFsdWUgZm9yIGEgZGlnaXRhbCBjb25uZWN0b3IuCisgKi8KK2lu dCBpbnRlbF9kaWdpdGFsX2Nvbm5lY3Rvcl9hdG9taWNfc2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1f Y29ubmVjdG9yICpjb25uZWN0b3IsCisJCQkJCQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAq c3RhdGUsCisJCQkJCQlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wZXJ0eSwKKwkJCQkJCXVpbnQ2 NF90IHZhbCkKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY29ubmVjdG9yLT5kZXY7CisJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOworCXN0cnVj dCBpbnRlbF9kaWdpdGFsX2Nvbm5lY3Rvcl9zdGF0ZSAqaW50ZWxfY29ubl9zdGF0ZSA9CisJCXRv X2ludGVsX2RpZ2l0YWxfY29ubmVjdG9yX3N0YXRlKHN0YXRlKTsKKworCWlmIChwcm9wZXJ0eSA9 PSBkZXZfcHJpdi0+Zm9yY2VfYXVkaW9fcHJvcGVydHkpIHsKKwkJaW50ZWxfY29ubl9zdGF0ZS0+ Zm9yY2VfYXVkaW8gPSB2YWw7CisJCXJldHVybiAwOworCX0KKworCWlmIChwcm9wZXJ0eSA9PSBk ZXZfcHJpdi0+YnJvYWRjYXN0X3JnYl9wcm9wZXJ0eSkgeworCQlpbnRlbF9jb25uX3N0YXRlLT5i cm9hZGNhc3RfcmdiID0gdmFsOworCQlyZXR1cm4gMDsKKwl9CisKKwlEUk1fREVCVUdfQVRPTUlD KCJVbmtub3duIHByb3BlcnR5ICVzXG4iLCBwcm9wZXJ0eS0+bmFtZSk7CisJcmV0dXJuIC1FSU5W QUw7Cit9CisKK2ludCBpbnRlbF9kaWdpdGFsX2Nvbm5lY3Rvcl9hdG9taWNfY2hlY2soc3RydWN0 IGRybV9jb25uZWN0b3IgKmNvbm4sCisJCQkJCSBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAq bmV3X3N0YXRlKQoreworCXN0cnVjdCBpbnRlbF9kaWdpdGFsX2Nvbm5lY3Rvcl9zdGF0ZSAqbmV3 X2Nvbm5fc3RhdGUgPQorCQl0b19pbnRlbF9kaWdpdGFsX2Nvbm5lY3Rvcl9zdGF0ZShuZXdfc3Rh dGUpOworCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpvbGRfc3RhdGUgPQorCQlkcm1fYXRv bWljX2dldF9vbGRfY29ubmVjdG9yX3N0YXRlKG5ld19zdGF0ZS0+c3RhdGUsIGNvbm4pOworCXN0 cnVjdCBpbnRlbF9kaWdpdGFsX2Nvbm5lY3Rvcl9zdGF0ZSAqb2xkX2Nvbm5fc3RhdGUgPQorCQl0 b19pbnRlbF9kaWdpdGFsX2Nvbm5lY3Rvcl9zdGF0ZShvbGRfc3RhdGUpOworCXN0cnVjdCBkcm1f Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKKworCWlmICghbmV3X3N0YXRlLT5jcnRjKQorCQlyZXR1 cm4gMDsKKworCWNydGNfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9uZXdfY3J0Y19zdGF0ZShuZXdf c3RhdGUtPnN0YXRlLCBuZXdfc3RhdGUtPmNydGMpOworCisJLyoKKwkgKiBUaGVzZSBwcm9wZXJ0 aWVzIGFyZSBoYW5kbGVkIGJ5IGZhc3RzZXQsIGFuZCBtaWdodCBub3QgZW5kCisJICogdXAgaW4g YSBtb2Rlc2V0LgorCSAqLworCWlmIChuZXdfY29ubl9zdGF0ZS0+Zm9yY2VfYXVkaW8gIT0gb2xk X2Nvbm5fc3RhdGUtPmZvcmNlX2F1ZGlvIHx8CisJICAgIG5ld19jb25uX3N0YXRlLT5icm9hZGNh c3RfcmdiICE9IG9sZF9jb25uX3N0YXRlLT5icm9hZGNhc3RfcmdiIHx8CisJICAgIG5ld19jb25u X3N0YXRlLT5iYXNlLnBpY3R1cmVfYXNwZWN0X3JhdGlvICE9IG9sZF9jb25uX3N0YXRlLT5iYXNl LnBpY3R1cmVfYXNwZWN0X3JhdGlvIHx8CisJICAgIG5ld19jb25uX3N0YXRlLT5iYXNlLnNjYWxp bmdfbW9kZSAhPSBvbGRfY29ubl9zdGF0ZS0+YmFzZS5zY2FsaW5nX21vZGUpCisJCWNydGNfc3Rh dGUtPm1vZGVfY2hhbmdlZCA9IHRydWU7CisKKwlyZXR1cm4gMDsKK30KKworLyoqCisgKiBpbnRl bF9kaWdpdGFsX2Nvbm5lY3Rvcl9kdXBsaWNhdGVfc3RhdGUgLSBkdXBsaWNhdGUgY29ubmVjdG9y IHN0YXRlCisgKiBAY29ubmVjdG9yOiBkaWdpdGFsIGNvbm5lY3RvcgorICoKKyAqIEFsbG9jYXRl cyBhbmQgcmV0dXJucyBhIGNvcHkgb2YgdGhlIGNvbm5lY3RvciBzdGF0ZSAoYm90aCBjb21tb24g YW5kCisgKiBkaWdpdGFsIGNvbm5lY3RvciBzcGVjaWZpYykgZm9yIHRoZSBzcGVjaWZpZWQgY29u bmVjdG9yLgorICoKKyAqIFJldHVybnM6IFRoZSBuZXdseSBhbGxvY2F0ZWQgY29ubmVjdG9yIHN0 YXRlLCBvciBOVUxMIG9uIGZhaWx1cmUuCisgKi8KK3N0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRl ICoKK2ludGVsX2RpZ2l0YWxfY29ubmVjdG9yX2R1cGxpY2F0ZV9zdGF0ZShzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqY29ubmVjdG9yKQoreworCXN0cnVjdCBpbnRlbF9kaWdpdGFsX2Nvbm5lY3Rvcl9z dGF0ZSAqc3RhdGU7CisKKwlzdGF0ZSA9IGttZW1kdXAoY29ubmVjdG9yLT5zdGF0ZSwgc2l6ZW9m KCpzdGF0ZSksIEdGUF9LRVJORUwpOworCWlmICghc3RhdGUpCisJCXJldHVybiBOVUxMOworCisJ X19kcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZHVwbGljYXRlX3N0YXRlKGNvbm5lY3Rvciwg JnN0YXRlLT5iYXNlKTsKKwlyZXR1cm4gJnN0YXRlLT5iYXNlOworfQorCisvKioKICAqIGludGVs X2NydGNfZHVwbGljYXRlX3N0YXRlIC0gZHVwbGljYXRlIGNydGMgc3RhdGUKICAqIEBjcnRjOiBk cm0gY3J0YwogICoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCA4NWI5ZTJm NTIxYTAuLjEwODEyMmRhYTgwNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpA QCAtNTk1NiwxMSArNTk1NiwyMSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9jb25uZWN0b3JfdmVyaWZ5 X3N0YXRlKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKIAogaW50IGludGVsX2Nv bm5lY3Rvcl9pbml0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKIHsKLQlkcm1f YXRvbWljX2hlbHBlcl9jb25uZWN0b3JfcmVzZXQoJmNvbm5lY3Rvci0+YmFzZSk7CisJc3RydWN0 IGludGVsX2RpZ2l0YWxfY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlOwogCi0JaWYgKCFjb25u ZWN0b3ItPmJhc2Uuc3RhdGUpCisJLyoKKwkgKiBBbGxvY2F0ZSBlbm91Z2ggbWVtb3J5IHRvIGhv bGQgaW50ZWxfZGlnaXRhbF9jb25uZWN0b3Jfc3RhdGUsCisJICogVGhpcyBtaWdodCBiZSBhIGZl dyBieXRlcyB0b28gbWFueSwgYnV0IGZvciBjb25uZWN0b3JzIHRoYXQgZG9uJ3QKKwkgKiBuZWVk IGl0IHdlJ2xsIGZyZWUgdGhlIHN0YXRlIGFuZCBhbGxvY2F0ZSBhIHNtYWxsZXIgb25lIG9uIHRo ZSBmaXJzdAorCSAqIHN1Y2Nlc2Z1bCBjb21taXQgYW55d2F5LgorCSAqLworCWNvbm5fc3RhdGUg PSBremFsbG9jKHNpemVvZigqY29ubl9zdGF0ZSksIEdGUF9LRVJORUwpOworCWlmICghY29ubl9z dGF0ZSkKIAkJcmV0dXJuIC1FTk9NRU07CiAKKwlfX2RybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rv cl9yZXNldCgmY29ubmVjdG9yLT5iYXNlLAorCQkJCQkgICAgJmNvbm5fc3RhdGUtPmJhc2UpOwor CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKaW5kZXggMmIyNDM0NDRj ZjhiLi40ZTYzZjM5N2M0YTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCkBAIC0zMzAsNiAr MzMwLDE1IEBAIHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgewogCXN0cnVjdCB3b3JrX3N0cnVjdCBt b2Rlc2V0X3JldHJ5X3dvcms7CiB9OwogCitzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9jb25uZWN0b3Jf c3RhdGUgeworCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlIGJhc2U7CisKKwllbnVtIGhkbWlf Zm9yY2VfYXVkaW8gZm9yY2VfYXVkaW87CisJaW50IGJyb2FkY2FzdF9yZ2I7Cit9OworCisjZGVm aW5lIHRvX2ludGVsX2RpZ2l0YWxfY29ubmVjdG9yX3N0YXRlKHgpIGNvbnRhaW5lcl9vZih4LCBz dHJ1Y3QgaW50ZWxfZGlnaXRhbF9jb25uZWN0b3Jfc3RhdGUsIGJhc2UpCisKIHN0cnVjdCBkcGxs IHsKIAkvKiBnaXZlbiB2YWx1ZXMgKi8KIAlpbnQgbjsKQEAgLTE4ODUsNiArMTg5NCwyMCBAQCBp bnQgaW50ZWxfY29ubmVjdG9yX2F0b21pY19nZXRfcHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0 b3IgKmNvbm5lY3RvciwKIAkJCQkJY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKnN0 YXRlLAogCQkJCQlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wZXJ0eSwKIAkJCQkJdWludDY0X3Qg KnZhbCk7CisKK2ludCBpbnRlbF9kaWdpdGFsX2Nvbm5lY3Rvcl9hdG9taWNfZ2V0X3Byb3BlcnR5 KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCisJCQkJCQljb25zdCBzdHJ1Y3QgZHJt X2Nvbm5lY3Rvcl9zdGF0ZSAqc3RhdGUsCisJCQkJCQlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9w ZXJ0eSwKKwkJCQkJCXVpbnQ2NF90ICp2YWwpOworaW50IGludGVsX2RpZ2l0YWxfY29ubmVjdG9y X2F0b21pY19zZXRfcHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKKwkJ CQkJCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpzdGF0ZSwKKwkJCQkJCXN0cnVjdCBkcm1f cHJvcGVydHkgKnByb3BlcnR5LAorCQkJCQkJdWludDY0X3QgdmFsKTsKK2ludCBpbnRlbF9kaWdp dGFsX2Nvbm5lY3Rvcl9hdG9taWNfY2hlY2soc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm4sCisJ CQkJCSBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqbmV3X3N0YXRlKTsKK3N0cnVjdCBkcm1f Y29ubmVjdG9yX3N0YXRlICoKK2ludGVsX2RpZ2l0YWxfY29ubmVjdG9yX2R1cGxpY2F0ZV9zdGF0 ZShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKTsKKwogc3RydWN0IGRybV9jcnRjX3N0 YXRlICppbnRlbF9jcnRjX2R1cGxpY2F0ZV9zdGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpOwog dm9pZCBpbnRlbF9jcnRjX2Rlc3Ryb3lfc3RhdGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCQkJ ICAgICAgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3RhdGUpOwotLSAKMi45LjMKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5n IGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=