From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH v3 02/13] drm/i915: Convert intel_tv connector properties to atomic, v5. Date: Mon, 10 Apr 2017 11:07:08 +0200 Message-ID: <1491815239-10685-3-git-send-email-maarten.lankhorst@linux.intel.com> References: <1491815239-10685-1-git-send-email-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mblankhorst.nl (mblankhorst.nl [141.105.120.124]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0199A6E298 for ; Mon, 10 Apr 2017 09:07:24 +0000 (UTC) In-Reply-To: <1491815239-10685-1-git-send-email-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 List-Id: intel-gfx@lists.freedesktop.org aW50ZWxfdHYgaGFzIHByb3BlcnRpZXMgdGhhdCBhcmUgaGFuZGxlZCBpbiB0aGUgYXRvbWljIGNv cmUsIGJ1dApuZWVkcyBhIG1vZGVzZXQgdG8gdXBkYXRlIHRoZSBwcm9wZXJ0aWVzIGluc2lkZSB0 aGUgY29ubmVjdG9yLgoKVGhlIGRldGVjdCgpLCBnZXRfbW9kZSgpIGFuZCBtb2RlX3ZhbGlkKCkg cHJvYmUgY2FsbGJhY2tzIGFsc28KZGVwZW5kIG9uIHRoZSBjb25uZWN0b3Igc3RhdGUsIHdoaWNo IG1hZGUgdGhpcyBhIGdvb2QgY29ubmVjdG9yCnRvIGNvbnZlcnQgZmlyc3QuIEl0IGhlbHBlZCBm aW5kIGFsbCB0aGUgaXNzdWVzIHdoZW4gY29udmVydGluZwpjb25uZWN0b3JzIHRvIGF0b21pYy4K CkJlY2F1c2Ugb2YgdGhlc2UgcmVxdWlyZW1lbnRzLCBjb25uZWN0b3IgYXRvbWljX2NoZWNrKCkg d2FzIGFkZGVkCmFuZCBjb25uZWN0aW9uX211dGV4IGlzIGhlbGQgZHVyaW5nIHByb2JpbmcuIFRo ZSBkaWZmc3RhdCBsb29rcwptb3JlIGZhdm9yYWJsZSBub3cuIDopCgpDaGFuZ2VzIHNpbmNlIHYx OgotIEFkZCBpbnRlbF9lbmNvZGVyLT5zd2FwX3N0YXRlIHRvIGFsbG93IHVwZGF0aW5nIGNvbm5l Y3RvciBzdGF0ZS4KLSBBZGQgaW50ZWxfdHYtPmZvcm1hdCBmb3IgZGV0ZWN0X21vZGUgYW5kIG1v ZGVfdmFsaWQsIHVwZGF0ZWQgb24gYXRvbWljIGNvbW1pdC4KQ2hhbmdlcyBzaW5jZSB2MjoKLSBG aXggdHlwbyBpbiB0dl9jaG9vc2VfcHJlZmVycmVkIG1vZGVzIGZ1bmN0aW9uIG5hbWUuCi0gQXNz aWdubWVudCBvZiB0diBwcm9wZXJ0aWVzIGlzIGRvbmUgaW4gY29yZSwgc28gaW50ZWxfdHYgb25s eSBuZWVkcwogIGEgYXRvbWljX2NoZWNrIGZ1bmN0aW9uLiBUaGFua3MgVmlsbGUhCkNoYW5nZXMg c2luY2UgdjM6Ci0gY29ubmVjdGlvbl9tdXRleCBpcyBub3cgaGVsZCBpbiBtb2RlX3ZhbGlkKCkg YW5kIGdldF9tb2RlcygpLAogIHRoaXMgcmVtb3ZlcyB0aGUgbmVlZCBmb3IgY2FjaGluZyBwYXJ0 cyBvZiB0aGUgY29ubmVjdG9yX3N0YXRlLgpDaGFuZ2VzIHNpbmNlIHY0OgotIFVzZSB0aGUgbmV3 IGF0b21pYyBjb25uZWN0b3IgY2hlY2sgZnVuY3Rpb24uCgpTaWduZWQtb2ZmLWJ5OiBNYWFydGVu IExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3R2LmMgfCAxNzUgKysrKysrKysrKysrKysrLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDYzIGluc2VydGlvbnMoKyksIDExMiBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF90di5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdHYuYwppbmRleCAzYWY4NTdhNzVmYWIuLjc4 NGRmMDI0ZTIzMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdHYuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF90di5jCkBAIC00OCw4ICs0OCw2IEBAIHN0 cnVjdCBpbnRlbF90diB7CiAJc3RydWN0IGludGVsX2VuY29kZXIgYmFzZTsKIAogCWludCB0eXBl OwotCWNvbnN0IGNoYXIgKnR2X2Zvcm1hdDsKLQlpbnQgbWFyZ2luWzRdOwogfTsKIAogc3RydWN0 IHZpZGVvX2xldmVscyB7CkBAIC04NDAsMzIgKzgzOCwxOCBAQCBpbnRlbF9kaXNhYmxlX3R2KHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCUk5MTVfV1JJVEUoVFZfQ1RMLCBJOTE1X1JF QUQoVFZfQ1RMKSAmIH5UVl9FTkNfRU5BQkxFKTsKIH0KIAotc3RhdGljIGNvbnN0IHN0cnVjdCB0 dl9tb2RlICoKLWludGVsX3R2X21vZGVfbG9va3VwKGNvbnN0IGNoYXIgKnR2X2Zvcm1hdCkKK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgdHZfbW9kZSAqaW50ZWxfdHZfbW9kZV9maW5kKHN0cnVjdCBkcm1f Y29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQogewotCWludCBpOwotCi0JZm9yIChpID0gMDsg aSA8IEFSUkFZX1NJWkUodHZfbW9kZXMpOyBpKyspIHsKLQkJY29uc3Qgc3RydWN0IHR2X21vZGUg KnR2X21vZGUgPSAmdHZfbW9kZXNbaV07CisJaW50IGZvcm1hdCA9IGNvbm5fc3RhdGUtPnR2Lm1v ZGU7CiAKLQkJaWYgKCFzdHJjbXAodHZfZm9ybWF0LCB0dl9tb2RlLT5uYW1lKSkKLQkJCXJldHVy biB0dl9tb2RlOwotCX0KLQlyZXR1cm4gTlVMTDsKLX0KLQotc3RhdGljIGNvbnN0IHN0cnVjdCB0 dl9tb2RlICoKLWludGVsX3R2X21vZGVfZmluZChzdHJ1Y3QgaW50ZWxfdHYgKmludGVsX3R2KQot ewotCXJldHVybiBpbnRlbF90dl9tb2RlX2xvb2t1cChpbnRlbF90di0+dHZfZm9ybWF0KTsKKwly ZXR1cm4gJnR2X21vZGVzW2Zvcm1hdF07CiB9CiAKIHN0YXRpYyBlbnVtIGRybV9tb2RlX3N0YXR1 cwogaW50ZWxfdHZfbW9kZV92YWxpZChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAog CQkgICAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUpCiB7Ci0Jc3RydWN0IGludGVsX3R2 ICppbnRlbF90diA9IGludGVsX2F0dGFjaGVkX3R2KGNvbm5lY3Rvcik7Ci0JY29uc3Qgc3RydWN0 IHR2X21vZGUgKnR2X21vZGUgPSBpbnRlbF90dl9tb2RlX2ZpbmQoaW50ZWxfdHYpOworCWNvbnN0 IHN0cnVjdCB0dl9tb2RlICp0dl9tb2RlID0gaW50ZWxfdHZfbW9kZV9maW5kKGNvbm5lY3Rvci0+ c3RhdGUpOwogCWludCBtYXhfZG90Y2xrID0gdG9faTkxNShjb25uZWN0b3ItPmRldiktPm1heF9k b3RjbGtfZnJlcTsKIAogCWlmIChtb2RlLT5jbG9jayA+IG1heF9kb3RjbGspCkBAIC04OTIsOCAr ODc2LDcgQEAgaW50ZWxfdHZfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCiAJCQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCiAJCQlzdHJ1 Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfdHYg KmludGVsX3R2ID0gZW5jX3RvX3R2KGVuY29kZXIpOwotCWNvbnN0IHN0cnVjdCB0dl9tb2RlICp0 dl9tb2RlID0gaW50ZWxfdHZfbW9kZV9maW5kKGludGVsX3R2KTsKKwljb25zdCBzdHJ1Y3QgdHZf bW9kZSAqdHZfbW9kZSA9IGludGVsX3R2X21vZGVfZmluZChjb25uX3N0YXRlKTsKIAogCWlmICgh dHZfbW9kZSkKIAkJcmV0dXJuIGZhbHNlOwpAQCAtOTk5LDcgKzk4Miw3IEBAIHN0YXRpYyB2b2lk IGludGVsX3R2X3ByZV9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRl dik7CiAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGVuY29k ZXItPmJhc2UuY3J0Yyk7CiAJc3RydWN0IGludGVsX3R2ICppbnRlbF90diA9IGVuY190b190dihl bmNvZGVyKTsKLQljb25zdCBzdHJ1Y3QgdHZfbW9kZSAqdHZfbW9kZSA9IGludGVsX3R2X21vZGVf ZmluZChpbnRlbF90dik7CisJY29uc3Qgc3RydWN0IHR2X21vZGUgKnR2X21vZGUgPSBpbnRlbF90 dl9tb2RlX2ZpbmQoY29ubl9zdGF0ZSk7CiAJdTMyIHR2X2N0bDsKIAl1MzIgc2NjdGwxLCBzY2N0 bDIsIHNjY3RsMzsKIAlpbnQgaSwgajsKQEAgLTExMDIsMTIgKzEwODUsMTIgQEAgc3RhdGljIHZv aWQgaW50ZWxfdHZfcHJlX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAll bHNlCiAJCXlzaXplID0gMip0dl9tb2RlLT5uYnJfZW5kICsgMTsKIAotCXhwb3MgKz0gaW50ZWxf dHYtPm1hcmdpbltUVl9NQVJHSU5fTEVGVF07Ci0JeXBvcyArPSBpbnRlbF90di0+bWFyZ2luW1RW X01BUkdJTl9UT1BdOwotCXhzaXplIC09IChpbnRlbF90di0+bWFyZ2luW1RWX01BUkdJTl9MRUZU XSArCi0JCSAgaW50ZWxfdHYtPm1hcmdpbltUVl9NQVJHSU5fUklHSFRdKTsKLQl5c2l6ZSAtPSAo aW50ZWxfdHYtPm1hcmdpbltUVl9NQVJHSU5fVE9QXSArCi0JCSAgaW50ZWxfdHYtPm1hcmdpbltU Vl9NQVJHSU5fQk9UVE9NXSk7CisJeHBvcyArPSBjb25uX3N0YXRlLT50di5tYXJnaW5zLmxlZnQ7 CisJeXBvcyArPSBjb25uX3N0YXRlLT50di5tYXJnaW5zLnRvcDsKKwl4c2l6ZSAtPSAoY29ubl9z dGF0ZS0+dHYubWFyZ2lucy5sZWZ0ICsKKwkJICBjb25uX3N0YXRlLT50di5tYXJnaW5zLnJpZ2h0 KTsKKwl5c2l6ZSAtPSAoY29ubl9zdGF0ZS0+dHYubWFyZ2lucy50b3AgKworCQkgIGNvbm5fc3Rh dGUtPnR2Lm1hcmdpbnMuYm90dG9tKTsKIAlJOTE1X1dSSVRFKFRWX1dJTl9QT1MsICh4cG9zPDwx Nil8eXBvcyk7CiAJSTkxNV9XUklURShUVl9XSU5fU0laRSwgKHhzaXplPDwxNil8eXNpemUpOwog CkBAIC0xMjU1LDcgKzEyMzgsNyBAQCBpbnRlbF90dl9kZXRlY3RfdHlwZShzdHJ1Y3QgaW50ZWxf dHYgKmludGVsX3R2LAogc3RhdGljIHZvaWQgaW50ZWxfdHZfZmluZF9iZXR0ZXJfZm9ybWF0KHN0 cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiB7CiAJc3RydWN0IGludGVsX3R2ICppbnRl bF90diA9IGludGVsX2F0dGFjaGVkX3R2KGNvbm5lY3Rvcik7Ci0JY29uc3Qgc3RydWN0IHR2X21v ZGUgKnR2X21vZGUgPSBpbnRlbF90dl9tb2RlX2ZpbmQoaW50ZWxfdHYpOworCWNvbnN0IHN0cnVj dCB0dl9tb2RlICp0dl9tb2RlID0gaW50ZWxfdHZfbW9kZV9maW5kKGNvbm5lY3Rvci0+c3RhdGUp OwogCWludCBpOwogCiAJaWYgKChpbnRlbF90di0+dHlwZSA9PSBEUk1fTU9ERV9DT05ORUNUT1Jf Q29tcG9uZW50KSA9PQpAQCAtMTI3MSw5ICsxMjU0LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfdHZf ZmluZF9iZXR0ZXJfZm9ybWF0KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiAJCQli cmVhazsKIAl9CiAKLQlpbnRlbF90di0+dHZfZm9ybWF0ID0gdHZfbW9kZS0+bmFtZTsKLQlkcm1f b2JqZWN0X3Byb3BlcnR5X3NldF92YWx1ZSgmY29ubmVjdG9yLT5iYXNlLAotCQljb25uZWN0b3It PmRldi0+bW9kZV9jb25maWcudHZfbW9kZV9wcm9wZXJ0eSwgaSk7CisJY29ubmVjdG9yLT5zdGF0 ZS0+dHYubW9kZSA9IGk7CiB9CiAKIC8qKgpAQCAtMTMxNCwxNiArMTI5NSwxNSBAQCBpbnRlbF90 dl9kZXRlY3Qoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKIAkJCQljb25uZWN0b3Jf c3RhdHVzX2Nvbm5lY3RlZDsKIAkJfSBlbHNlCiAJCQlzdGF0dXMgPSBjb25uZWN0b3Jfc3RhdHVz X3Vua25vd247Ci0JfSBlbHNlCi0JCXJldHVybiBjb25uZWN0b3ItPnN0YXR1czsKIAotCWlmIChz dGF0dXMgIT0gY29ubmVjdG9yX3N0YXR1c19jb25uZWN0ZWQpCi0JCXJldHVybiBzdGF0dXM7Ci0K LQlpbnRlbF90di0+dHlwZSA9IHR5cGU7Ci0JaW50ZWxfdHZfZmluZF9iZXR0ZXJfZm9ybWF0KGNv bm5lY3Rvcik7CisJCWlmIChzdGF0dXMgPT0gY29ubmVjdG9yX3N0YXR1c19jb25uZWN0ZWQpIHsK KwkJCWludGVsX3R2LT50eXBlID0gdHlwZTsKKwkJCWludGVsX3R2X2ZpbmRfYmV0dGVyX2Zvcm1h dChjb25uZWN0b3IpOworCQl9CiAKLQlyZXR1cm4gY29ubmVjdG9yX3N0YXR1c19jb25uZWN0ZWQ7 CisJCXJldHVybiBzdGF0dXM7CisJfSBlbHNlCisJCXJldHVybiBjb25uZWN0b3ItPnN0YXR1czsK IH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBpbnB1dF9yZXMgewpAQCAtMTM0MywxMiArMTMyMyw5 IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW5wdXRfcmVzIHsKICAqIENob3NlIHByZWZlcnJlZCBt b2RlICBhY2NvcmRpbmcgdG8gbGluZSBudW1iZXIgb2YgVFYgZm9ybWF0CiAgKi8KIHN0YXRpYyB2 b2lkCi1pbnRlbF90dl9jaG9zZV9wcmVmZXJyZWRfbW9kZXMoc3RydWN0IGRybV9jb25uZWN0b3Ig KmNvbm5lY3RvciwKK2ludGVsX3R2X2Nob29zZV9wcmVmZXJyZWRfbW9kZXMoY29uc3Qgc3RydWN0 IHR2X21vZGUgKnR2X21vZGUsCiAJCQkgICAgICAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1v ZGVfcHRyKQogewotCXN0cnVjdCBpbnRlbF90diAqaW50ZWxfdHYgPSBpbnRlbF9hdHRhY2hlZF90 dihjb25uZWN0b3IpOwotCWNvbnN0IHN0cnVjdCB0dl9tb2RlICp0dl9tb2RlID0gaW50ZWxfdHZf bW9kZV9maW5kKGludGVsX3R2KTsKLQogCWlmICh0dl9tb2RlLT5uYnJfZW5kIDwgNDgwICYmIG1v ZGVfcHRyLT52ZGlzcGxheSA9PSA0ODApCiAJCW1vZGVfcHRyLT50eXBlIHw9IERSTV9NT0RFX1RZ UEVfUFJFRkVSUkVEOwogCWVsc2UgaWYgKHR2X21vZGUtPm5icl9lbmQgPiA0ODApIHsKQEAgLTEz NzEsOCArMTM0OCw3IEBAIHN0YXRpYyBpbnQKIGludGVsX3R2X2dldF9tb2RlcyhzdHJ1Y3QgZHJt X2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2Rl X3B0cjsKLQlzdHJ1Y3QgaW50ZWxfdHYgKmludGVsX3R2ID0gaW50ZWxfYXR0YWNoZWRfdHYoY29u bmVjdG9yKTsKLQljb25zdCBzdHJ1Y3QgdHZfbW9kZSAqdHZfbW9kZSA9IGludGVsX3R2X21vZGVf ZmluZChpbnRlbF90dik7CisJY29uc3Qgc3RydWN0IHR2X21vZGUgKnR2X21vZGUgPSBpbnRlbF90 dl9tb2RlX2ZpbmQoY29ubmVjdG9yLT5zdGF0ZSk7CiAJaW50IGosIGNvdW50ID0gMDsKIAl1NjQg dG1wOwogCkBAIC0xNDE1LDcgKzEzOTEsNyBAQCBpbnRlbF90dl9nZXRfbW9kZXMoc3RydWN0IGRy bV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIAkJbW9kZV9wdHItPmNsb2NrID0gKGludCkgdG1wOwog CiAJCW1vZGVfcHRyLT50eXBlID0gRFJNX01PREVfVFlQRV9EUklWRVI7Ci0JCWludGVsX3R2X2No b3NlX3ByZWZlcnJlZF9tb2Rlcyhjb25uZWN0b3IsIG1vZGVfcHRyKTsKKwkJaW50ZWxfdHZfY2hv b3NlX3ByZWZlcnJlZF9tb2Rlcyh0dl9tb2RlLCBtb2RlX3B0cik7CiAJCWRybV9tb2RlX3Byb2Jl ZF9hZGQoY29ubmVjdG9yLCBtb2RlX3B0cik7CiAJCWNvdW50Kys7CiAJfQpAQCAtMTQzMCw3NCAr MTQwNiw0NyBAQCBpbnRlbF90dl9kZXN0cm95KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3IpCiAJa2ZyZWUoY29ubmVjdG9yKTsKIH0KIAotCi1zdGF0aWMgaW50Ci1pbnRlbF90dl9zZXRf cHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rvciwgc3RydWN0IGRybV9wcm9w ZXJ0eSAqcHJvcGVydHksCi0JCSAgICAgIHVpbnQ2NF90IHZhbCkKLXsKLQlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gY29ubmVjdG9yLT5kZXY7Ci0Jc3RydWN0IGludGVsX3R2ICppbnRlbF90diA9 IGludGVsX2F0dGFjaGVkX3R2KGNvbm5lY3Rvcik7Ci0Jc3RydWN0IGRybV9jcnRjICpjcnRjID0g aW50ZWxfdHYtPmJhc2UuYmFzZS5jcnRjOwotCWludCByZXQgPSAwOwotCWJvb2wgY2hhbmdlZCA9 IGZhbHNlOwotCi0JcmV0ID0gZHJtX29iamVjdF9wcm9wZXJ0eV9zZXRfdmFsdWUoJmNvbm5lY3Rv ci0+YmFzZSwgcHJvcGVydHksIHZhbCk7Ci0JaWYgKHJldCA8IDApCi0JCWdvdG8gb3V0OwotCi0J aWYgKHByb3BlcnR5ID09IGRldi0+bW9kZV9jb25maWcudHZfbGVmdF9tYXJnaW5fcHJvcGVydHkg JiYKLQkJaW50ZWxfdHYtPm1hcmdpbltUVl9NQVJHSU5fTEVGVF0gIT0gdmFsKSB7Ci0JCWludGVs X3R2LT5tYXJnaW5bVFZfTUFSR0lOX0xFRlRdID0gdmFsOwotCQljaGFuZ2VkID0gdHJ1ZTsKLQl9 IGVsc2UgaWYgKHByb3BlcnR5ID09IGRldi0+bW9kZV9jb25maWcudHZfcmlnaHRfbWFyZ2luX3By b3BlcnR5ICYmCi0JCWludGVsX3R2LT5tYXJnaW5bVFZfTUFSR0lOX1JJR0hUXSAhPSB2YWwpIHsK LQkJaW50ZWxfdHYtPm1hcmdpbltUVl9NQVJHSU5fUklHSFRdID0gdmFsOwotCQljaGFuZ2VkID0g dHJ1ZTsKLQl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGRldi0+bW9kZV9jb25maWcudHZfdG9wX21h cmdpbl9wcm9wZXJ0eSAmJgotCQlpbnRlbF90di0+bWFyZ2luW1RWX01BUkdJTl9UT1BdICE9IHZh bCkgewotCQlpbnRlbF90di0+bWFyZ2luW1RWX01BUkdJTl9UT1BdID0gdmFsOwotCQljaGFuZ2Vk ID0gdHJ1ZTsKLQl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGRldi0+bW9kZV9jb25maWcudHZfYm90 dG9tX21hcmdpbl9wcm9wZXJ0eSAmJgotCQlpbnRlbF90di0+bWFyZ2luW1RWX01BUkdJTl9CT1RU T01dICE9IHZhbCkgewotCQlpbnRlbF90di0+bWFyZ2luW1RWX01BUkdJTl9CT1RUT01dID0gdmFs OwotCQljaGFuZ2VkID0gdHJ1ZTsKLQl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGRldi0+bW9kZV9j b25maWcudHZfbW9kZV9wcm9wZXJ0eSkgewotCQlpZiAodmFsID49IEFSUkFZX1NJWkUodHZfbW9k ZXMpKSB7Ci0JCQlyZXQgPSAtRUlOVkFMOwotCQkJZ290byBvdXQ7Ci0JCX0KLQkJaWYgKCFzdHJj bXAoaW50ZWxfdHYtPnR2X2Zvcm1hdCwgdHZfbW9kZXNbdmFsXS5uYW1lKSkKLQkJCWdvdG8gb3V0 OwotCi0JCWludGVsX3R2LT50dl9mb3JtYXQgPSB0dl9tb2Rlc1t2YWxdLm5hbWU7Ci0JCWNoYW5n ZWQgPSB0cnVlOwotCX0gZWxzZSB7Ci0JCXJldCA9IC1FSU5WQUw7Ci0JCWdvdG8gb3V0OwotCX0K LQotCWlmIChjaGFuZ2VkICYmIGNydGMpCi0JCWludGVsX2NydGNfcmVzdG9yZV9tb2RlKGNydGMp Owotb3V0OgotCXJldHVybiByZXQ7Ci19Ci0KIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5l Y3Rvcl9mdW5jcyBpbnRlbF90dl9jb25uZWN0b3JfZnVuY3MgPSB7CiAJLmRwbXMgPSBkcm1fYXRv bWljX2hlbHBlcl9jb25uZWN0b3JfZHBtcywKIAkubGF0ZV9yZWdpc3RlciA9IGludGVsX2Nvbm5l Y3Rvcl9yZWdpc3RlciwKIAkuZWFybHlfdW5yZWdpc3RlciA9IGludGVsX2Nvbm5lY3Rvcl91bnJl Z2lzdGVyLAogCS5kZXN0cm95ID0gaW50ZWxfdHZfZGVzdHJveSwKLQkuc2V0X3Byb3BlcnR5ID0g aW50ZWxfdHZfc2V0X3Byb3BlcnR5LAotCS5hdG9taWNfZ2V0X3Byb3BlcnR5ID0gaW50ZWxfY29u bmVjdG9yX2F0b21pY19nZXRfcHJvcGVydHksCisJLnNldF9wcm9wZXJ0eSA9IGRybV9hdG9taWNf aGVscGVyX2Nvbm5lY3Rvcl9zZXRfcHJvcGVydHksCiAJLmZpbGxfbW9kZXMgPSBkcm1faGVscGVy X3Byb2JlX3NpbmdsZV9jb25uZWN0b3JfbW9kZXMsCiAJLmF0b21pY19kZXN0cm95X3N0YXRlID0g ZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2Rlc3Ryb3lfc3RhdGUsCiAJLmF0b21pY19kdXBs aWNhdGVfc3RhdGUgPSBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZHVwbGljYXRlX3N0YXRl LAogfTsKIAorc3RhdGljIGludCBpbnRlbF90dl9hdG9taWNfY2hlY2soc3RydWN0IGRybV9jb25u ZWN0b3IgKmNvbm5lY3RvciwKKwkJCQkgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKm5ld19z dGF0ZSkKK3sKKwlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm5ld19jcnRjX3N0YXRlOworCXN0cnVj dCBkcm1fY29ubmVjdG9yX3N0YXRlICpvbGRfc3RhdGU7CisKKwlpZiAoIW5ld19zdGF0ZS0+Y3J0 YykKKwkJcmV0dXJuIDA7CisKKwlvbGRfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9vbGRfY29ubmVj dG9yX3N0YXRlKG5ld19zdGF0ZS0+c3RhdGUsIGNvbm5lY3Rvcik7CisJbmV3X2NydGNfc3RhdGUg PSBkcm1fYXRvbWljX2dldF9uZXdfY3J0Y19zdGF0ZShuZXdfc3RhdGUtPnN0YXRlLCBuZXdfc3Rh dGUtPmNydGMpOworCisJaWYgKG9sZF9zdGF0ZS0+dHYubW9kZSAhPSBuZXdfc3RhdGUtPnR2Lm1v ZGUgfHwKKwkgICAgb2xkX3N0YXRlLT50di5tYXJnaW5zLmxlZnQgIT0gbmV3X3N0YXRlLT50di5t YXJnaW5zLmxlZnQgfHwKKwkgICAgb2xkX3N0YXRlLT50di5tYXJnaW5zLnJpZ2h0ICE9IG5ld19z dGF0ZS0+dHYubWFyZ2lucy5yaWdodCB8fAorCSAgICBvbGRfc3RhdGUtPnR2Lm1hcmdpbnMudG9w ICE9IG5ld19zdGF0ZS0+dHYubWFyZ2lucy50b3AgfHwKKwkgICAgb2xkX3N0YXRlLT50di5tYXJn aW5zLmJvdHRvbSAhPSBuZXdfc3RhdGUtPnR2Lm1hcmdpbnMuYm90dG9tKSB7CisJCS8qIEZvcmNl IGEgbW9kZXNldC4gKi8KKworCQluZXdfY3J0Y19zdGF0ZS0+Y29ubmVjdG9yc19jaGFuZ2VkID0g dHJ1ZTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29u bmVjdG9yX2hlbHBlcl9mdW5jcyBpbnRlbF90dl9jb25uZWN0b3JfaGVscGVyX2Z1bmNzID0gewog CS5kZXRlY3RfY3R4ID0gaW50ZWxfdHZfZGV0ZWN0LAogCS5tb2RlX3ZhbGlkID0gaW50ZWxfdHZf bW9kZV92YWxpZCwKIAkuZ2V0X21vZGVzID0gaW50ZWxfdHZfZ2V0X21vZGVzLAorCS5hdG9taWNf Y2hlY2sgPSBpbnRlbF90dl9hdG9taWNfY2hlY2ssCiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0 IGRybV9lbmNvZGVyX2Z1bmNzIGludGVsX3R2X2VuY19mdW5jcyA9IHsKQEAgLTE1MTUsNiArMTQ2 NCw3IEBAIGludGVsX3R2X2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQog CXUzMiB0dl9kYWNfb24sIHR2X2RhY19vZmYsIHNhdmVfdHZfZGFjOwogCWNvbnN0IGNoYXIgKnR2 X2Zvcm1hdF9uYW1lc1tBUlJBWV9TSVpFKHR2X21vZGVzKV07CiAJaW50IGksIGluaXRpYWxfbW9k ZSA9IDA7CisJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKnN0YXRlOwogCiAJaWYgKChJOTE1 X1JFQUQoVFZfQ1RMKSAmIFRWX0ZVU0VfU1RBVEVfTUFTSykgPT0gVFZfRlVTRV9TVEFURV9ESVNB QkxFRCkKIAkJcmV0dXJuOwpAQCAtMTU2MCw2ICsxNTEwLDcgQEAgaW50ZWxfdHZfaW5pdChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAKIAlpbnRlbF9lbmNvZGVyID0gJmludGVs X3R2LT5iYXNlOwogCWNvbm5lY3RvciA9ICZpbnRlbF9jb25uZWN0b3ItPmJhc2U7CisJc3RhdGUg PSBjb25uZWN0b3ItPnN0YXRlOwogCiAJLyogVGhlIGRvY3VtZW50YXRpb24sIGZvciB0aGUgb2xk ZXIgY2hpcHNldHMgYXQgbGVhc3QsIHJlY29tbWVuZAogCSAqIHVzaW5nIGEgcG9sbGluZyBtZXRo b2QgcmF0aGVyIHRoYW4gaG90cGx1ZyBkZXRlY3Rpb24gZm9yIFRWcy4KQEAgLTE1OTcsMTIgKzE1 NDgsMTIgQEAgaW50ZWxfdHZfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp CiAJaW50ZWxfdHYtPnR5cGUgPSBEUk1fTU9ERV9DT05ORUNUT1JfVW5rbm93bjsKIAogCS8qIEJJ T1MgbWFyZ2luIHZhbHVlcyAqLwotCWludGVsX3R2LT5tYXJnaW5bVFZfTUFSR0lOX0xFRlRdID0g NTQ7Ci0JaW50ZWxfdHYtPm1hcmdpbltUVl9NQVJHSU5fVE9QXSA9IDM2OwotCWludGVsX3R2LT5t YXJnaW5bVFZfTUFSR0lOX1JJR0hUXSA9IDQ2OwotCWludGVsX3R2LT5tYXJnaW5bVFZfTUFSR0lO X0JPVFRPTV0gPSAzNzsKKwlzdGF0ZS0+dHYubWFyZ2lucy5sZWZ0ID0gNTQ7CisJc3RhdGUtPnR2 Lm1hcmdpbnMudG9wID0gMzY7CisJc3RhdGUtPnR2Lm1hcmdpbnMucmlnaHQgPSA0NjsKKwlzdGF0 ZS0+dHYubWFyZ2lucy5ib3R0b20gPSAzNzsKIAotCWludGVsX3R2LT50dl9mb3JtYXQgPSB0dl9t b2Rlc1tpbml0aWFsX21vZGVdLm5hbWU7CisJc3RhdGUtPnR2Lm1vZGUgPSBpbml0aWFsX21vZGU7 CiAKIAlkcm1fY29ubmVjdG9yX2hlbHBlcl9hZGQoY29ubmVjdG9yLCAmaW50ZWxfdHZfY29ubmVj dG9yX2hlbHBlcl9mdW5jcyk7CiAJY29ubmVjdG9yLT5pbnRlcmxhY2VfYWxsb3dlZCA9IGZhbHNl OwpAQCAtMTYxNiwxNyArMTU2NywxNyBAQCBpbnRlbF90dl9pbml0KHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKIAkJCQkgICAgICB0dl9mb3JtYXRfbmFtZXMpOwogCiAJZHJtX29i amVjdF9hdHRhY2hfcHJvcGVydHkoJmNvbm5lY3Rvci0+YmFzZSwgZGV2LT5tb2RlX2NvbmZpZy50 dl9tb2RlX3Byb3BlcnR5LAotCQkJCSAgIGluaXRpYWxfbW9kZSk7CisJCQkJICAgc3RhdGUtPnR2 Lm1vZGUpOwogCWRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5KCZjb25uZWN0b3ItPmJhc2UsCiAJ CQkJICAgZGV2LT5tb2RlX2NvbmZpZy50dl9sZWZ0X21hcmdpbl9wcm9wZXJ0eSwKLQkJCQkgICBp bnRlbF90di0+bWFyZ2luW1RWX01BUkdJTl9MRUZUXSk7CisJCQkJICAgc3RhdGUtPnR2Lm1hcmdp bnMubGVmdCk7CiAJZHJtX29iamVjdF9hdHRhY2hfcHJvcGVydHkoJmNvbm5lY3Rvci0+YmFzZSwK IAkJCQkgICBkZXYtPm1vZGVfY29uZmlnLnR2X3RvcF9tYXJnaW5fcHJvcGVydHksCi0JCQkJICAg aW50ZWxfdHYtPm1hcmdpbltUVl9NQVJHSU5fVE9QXSk7CisJCQkJICAgc3RhdGUtPnR2Lm1hcmdp bnMudG9wKTsKIAlkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0eSgmY29ubmVjdG9yLT5iYXNlLAog CQkJCSAgIGRldi0+bW9kZV9jb25maWcudHZfcmlnaHRfbWFyZ2luX3Byb3BlcnR5LAotCQkJCSAg IGludGVsX3R2LT5tYXJnaW5bVFZfTUFSR0lOX1JJR0hUXSk7CisJCQkJICAgc3RhdGUtPnR2Lm1h cmdpbnMucmlnaHQpOwogCWRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5KCZjb25uZWN0b3ItPmJh c2UsCiAJCQkJICAgZGV2LT5tb2RlX2NvbmZpZy50dl9ib3R0b21fbWFyZ2luX3Byb3BlcnR5LAot CQkJCSAgIGludGVsX3R2LT5tYXJnaW5bVFZfTUFSR0lOX0JPVFRPTV0pOworCQkJCSAgIHN0YXRl LT50di5tYXJnaW5zLmJvdHRvbSk7CiB9Ci0tIAoyLjcuNAoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==