From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: Re: [PATCH 02/13] drm/i915: Convert intel_tv connector properties to atomic, v5. Date: Wed, 12 Apr 2017 09:43:00 +0200 Message-ID: <888308be-97e0-df1e-fed1-e41fb7b23ce3@linux.intel.com> References: <1491545282-815-1-git-send-email-maarten.lankhorst@linux.intel.com> <1491545282-815-3-git-send-email-maarten.lankhorst@linux.intel.com> <20170412073824.lxkouiagrgsyytxq@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 833E46E651 for ; Wed, 12 Apr 2017 07:43:02 +0000 (UTC) In-Reply-To: <20170412073824.lxkouiagrgsyytxq@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T3AgMTItMDQtMTcgb20gMDk6Mzggc2NocmVlZiBEYW5pZWwgVmV0dGVyOgo+IE9uIEZyaSwgQXBy IDA3LCAyMDE3IGF0IDA4OjA3OjUxQU0gKzAyMDAsIE1hYXJ0ZW4gTGFua2hvcnN0IHdyb3RlOgo+ PiBBcyBhIHByb29mIG9mIGNvbmNlcHQsIGZpcnN0IHRyeSB0byBjb252ZXJ0IGludGVsX3R2LCB3 aGljaCBpcyBhIHJhcmVseQo+PiB1c2VkIGNvbm5lY3Rvci4gSXQgaGFzIDUgcHJvcGVydGllcywg dHYgZm9ybWF0IGFuZCA0IG1hcmdpbnMuCj4+Cj4+IEknbSBsZXNzIGNlcnRhaW4gYWJvdXQgdGhl IHN0YXRlIGJlaGF2aW9yIGl0c2VsZiwgc2hvdWxkIHdlIHBhc3MgYSBzaXplCj4+IHBhcmFtZXRl ciB0byBpbnRlbF9jb25uZWN0b3JfYWxsb2MgaW5zdGVhZCwgc28gZHVwbGljYXRlX3N0YXRlCj4+ IGNhbiBiZSBkb25lIGdsb2JhbGx5IGlmIGl0IGNhbiBiZSBibGluZGx5IGNvcGllZD8KPj4KPj4g Q2FuIHdlIGFsc28gaGF2ZSBhIGF0b21pY19jaGVjayBmdW5jdGlvbiBmb3IgY29ubmVjdG9ycywg c28gdGhlCj4+IGNydGNfc3RhdGUtPmNvbm5lY3RvcnNfY2hhbmdlZCBjYW4gYmUgc2V0IHRoZXJl PyBJdCB3b3VsZCBiZSBjbGVhbmVyCj4+IGFuZCBtb3JlIGF0b21pYy1saWtlLgo+Pgo+PiBUbyBt YXRjaCB0aGUgbGVnYWN5IGJlaGF2aW9yLCBmb3JtYXQgY2FuIGJlIGNoYW5nZWQgYnkgcHJvYmlu ZyBqdXN0IGxpa2UKPj4gaW4gbGVnYWN5IG1vZGUuCj4+Cj4+IENoYW5nZXMgc2luY2UgdjE6Cj4+ IC0gQWRkIGludGVsX2VuY29kZXItPnN3YXBfc3RhdGUgdG8gYWxsb3cgdXBkYXRpbmcgY29ubmVj dG9yIHN0YXRlLgo+PiAtIEFkZCBpbnRlbF90di0+Zm9ybWF0IGZvciBkZXRlY3RfbW9kZSBhbmQg bW9kZV92YWxpZCwgdXBkYXRlZCBvbiBhdG9taWMgY29tbWl0Lgo+PiBDaGFuZ2VzIHNpbmNlIHYy Ogo+PiAtIEZpeCB0eXBvIGluIHR2X2Nob29zZV9wcmVmZXJyZWQgbW9kZXMgZnVuY3Rpb24gbmFt ZS4KPj4gLSBBc3NpZ25tZW50IG9mIHR2IHByb3BlcnRpZXMgaXMgZG9uZSBpbiBjb3JlLCBzbyBp bnRlbF90diBvbmx5IG5lZWRzCj4+ICAgYSBhdG9taWNfY2hlY2sgZnVuY3Rpb24uIFRoYW5rcyBW aWxsZSEKPj4gQ2hhbmdlcyBzaW5jZSB2MzoKPj4gLSBjb25uZWN0aW9uX211dGV4IGlzIG5vdyBo ZWxkIGluIG1vZGVfdmFsaWQoKSBhbmQgZ2V0X21vZGVzKCksCj4+ICAgdGhpcyByZW1vdmVzIHRo ZSBuZWVkIGZvciBjYWNoaW5nIHBhcnRzIG9mIHRoZSBjb25uZWN0b3Jfc3RhdGUuCj4+IENoYW5n ZXMgc2luY2UgdjQ6Cj4+IC0gVXNlIHRoZSBuZXcgYXRvbWljIGNvbm5lY3RvciBjaGVjayBmdW5j dGlvbi4KPj4KPj4gU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFu a2hvcnN0QGxpbnV4LmludGVsLmNvbT4KPj4gLS0tCj4+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF90di5jIHwgMTc1ICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K Pj4gIDEgZmlsZSBjaGFuZ2VkLCA2MyBpbnNlcnRpb25zKCspLCAxMTIgZGVsZXRpb25zKC0pCj4+ Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF90di5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfdHYuYwo+PiBpbmRleCAzYWY4NTdhNzVmYWIuLjc4NGRmMDI0 ZTIzMCAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdHYuYwo+PiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF90di5jCj4+IEBAIC00OCw4ICs0OCw2IEBA IHN0cnVjdCBpbnRlbF90diB7Cj4+ICAJc3RydWN0IGludGVsX2VuY29kZXIgYmFzZTsKPj4gIAo+ PiAgCWludCB0eXBlOwo+PiAtCWNvbnN0IGNoYXIgKnR2X2Zvcm1hdDsKPj4gLQlpbnQgbWFyZ2lu WzRdOwo+PiAgfTsKPj4gIAo+PiAgc3RydWN0IHZpZGVvX2xldmVscyB7Cj4+IEBAIC04NDAsMzIg KzgzOCwxOCBAQCBpbnRlbF9kaXNhYmxlX3R2KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy LAo+PiAgCUk5MTVfV1JJVEUoVFZfQ1RMLCBJOTE1X1JFQUQoVFZfQ1RMKSAmIH5UVl9FTkNfRU5B QkxFKTsKPj4gIH0KPj4gIAo+PiAtc3RhdGljIGNvbnN0IHN0cnVjdCB0dl9tb2RlICoKPj4gLWlu dGVsX3R2X21vZGVfbG9va3VwKGNvbnN0IGNoYXIgKnR2X2Zvcm1hdCkKPj4gK3N0YXRpYyBjb25z dCBzdHJ1Y3QgdHZfbW9kZSAqaW50ZWxfdHZfbW9kZV9maW5kKHN0cnVjdCBkcm1fY29ubmVjdG9y X3N0YXRlICpjb25uX3N0YXRlKQo+PiAgewo+PiAtCWludCBpOwo+PiAtCj4+IC0JZm9yIChpID0g MDsgaSA8IEFSUkFZX1NJWkUodHZfbW9kZXMpOyBpKyspIHsKPj4gLQkJY29uc3Qgc3RydWN0IHR2 X21vZGUgKnR2X21vZGUgPSAmdHZfbW9kZXNbaV07Cj4+ICsJaW50IGZvcm1hdCA9IGNvbm5fc3Rh dGUtPnR2Lm1vZGU7Cj4+ICAKPj4gLQkJaWYgKCFzdHJjbXAodHZfZm9ybWF0LCB0dl9tb2RlLT5u YW1lKSkKPj4gLQkJCXJldHVybiB0dl9tb2RlOwo+PiAtCX0KPj4gLQlyZXR1cm4gTlVMTDsKPj4g LX0KPj4gLQo+PiAtc3RhdGljIGNvbnN0IHN0cnVjdCB0dl9tb2RlICoKPj4gLWludGVsX3R2X21v ZGVfZmluZChzdHJ1Y3QgaW50ZWxfdHYgKmludGVsX3R2KQo+PiAtewo+PiAtCXJldHVybiBpbnRl bF90dl9tb2RlX2xvb2t1cChpbnRlbF90di0+dHZfZm9ybWF0KTsKPj4gKwlyZXR1cm4gJnR2X21v ZGVzW2Zvcm1hdF07Cj4+ICB9Cj4+ICAKPj4gIHN0YXRpYyBlbnVtIGRybV9tb2RlX3N0YXR1cwo+ PiAgaW50ZWxfdHZfbW9kZV92YWxpZChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ PiAgCQkgICAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUpCj4+ICB7Cj4+IC0Jc3RydWN0 IGludGVsX3R2ICppbnRlbF90diA9IGludGVsX2F0dGFjaGVkX3R2KGNvbm5lY3Rvcik7Cj4+IC0J Y29uc3Qgc3RydWN0IHR2X21vZGUgKnR2X21vZGUgPSBpbnRlbF90dl9tb2RlX2ZpbmQoaW50ZWxf dHYpOwo+PiArCWNvbnN0IHN0cnVjdCB0dl9tb2RlICp0dl9tb2RlID0gaW50ZWxfdHZfbW9kZV9m aW5kKGNvbm5lY3Rvci0+c3RhdGUpOwo+PiAgCWludCBtYXhfZG90Y2xrID0gdG9faTkxNShjb25u ZWN0b3ItPmRldiktPm1heF9kb3RjbGtfZnJlcTsKPj4gIAo+PiAgCWlmIChtb2RlLT5jbG9jayA+ IG1heF9kb3RjbGspCj4+IEBAIC04OTIsOCArODc2LDcgQEAgaW50ZWxfdHZfY29tcHV0ZV9jb25m aWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4+ICAJCQlzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqcGlwZV9jb25maWcsCj4+ICAJCQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAq Y29ubl9zdGF0ZSkKPj4gIHsKPj4gLQlzdHJ1Y3QgaW50ZWxfdHYgKmludGVsX3R2ID0gZW5jX3Rv X3R2KGVuY29kZXIpOwo+PiAtCWNvbnN0IHN0cnVjdCB0dl9tb2RlICp0dl9tb2RlID0gaW50ZWxf dHZfbW9kZV9maW5kKGludGVsX3R2KTsKPj4gKwljb25zdCBzdHJ1Y3QgdHZfbW9kZSAqdHZfbW9k ZSA9IGludGVsX3R2X21vZGVfZmluZChjb25uX3N0YXRlKTsKPj4gIAo+PiAgCWlmICghdHZfbW9k ZSkKPj4gIAkJcmV0dXJuIGZhbHNlOwo+PiBAQCAtOTk5LDcgKzk4Miw3IEBAIHN0YXRpYyB2b2lk IGludGVsX3R2X3ByZV9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4+ICAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNl LmRldik7Cj4+ICAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRj KGVuY29kZXItPmJhc2UuY3J0Yyk7Cj4+ICAJc3RydWN0IGludGVsX3R2ICppbnRlbF90diA9IGVu Y190b190dihlbmNvZGVyKTsKPj4gLQljb25zdCBzdHJ1Y3QgdHZfbW9kZSAqdHZfbW9kZSA9IGlu dGVsX3R2X21vZGVfZmluZChpbnRlbF90dik7Cj4+ICsJY29uc3Qgc3RydWN0IHR2X21vZGUgKnR2 X21vZGUgPSBpbnRlbF90dl9tb2RlX2ZpbmQoY29ubl9zdGF0ZSk7Cj4+ICAJdTMyIHR2X2N0bDsK Pj4gIAl1MzIgc2NjdGwxLCBzY2N0bDIsIHNjY3RsMzsKPj4gIAlpbnQgaSwgajsKPj4gQEAgLTEx MDIsMTIgKzEwODUsMTIgQEAgc3RhdGljIHZvaWQgaW50ZWxfdHZfcHJlX2VuYWJsZShzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPj4gIAllbHNlCj4+ICAJCXlzaXplID0gMip0dl9tb2Rl LT5uYnJfZW5kICsgMTsKPj4gIAo+PiAtCXhwb3MgKz0gaW50ZWxfdHYtPm1hcmdpbltUVl9NQVJH SU5fTEVGVF07Cj4+IC0JeXBvcyArPSBpbnRlbF90di0+bWFyZ2luW1RWX01BUkdJTl9UT1BdOwo+ PiAtCXhzaXplIC09IChpbnRlbF90di0+bWFyZ2luW1RWX01BUkdJTl9MRUZUXSArCj4+IC0JCSAg aW50ZWxfdHYtPm1hcmdpbltUVl9NQVJHSU5fUklHSFRdKTsKPj4gLQl5c2l6ZSAtPSAoaW50ZWxf dHYtPm1hcmdpbltUVl9NQVJHSU5fVE9QXSArCj4+IC0JCSAgaW50ZWxfdHYtPm1hcmdpbltUVl9N QVJHSU5fQk9UVE9NXSk7Cj4+ICsJeHBvcyArPSBjb25uX3N0YXRlLT50di5tYXJnaW5zLmxlZnQ7 Cj4+ICsJeXBvcyArPSBjb25uX3N0YXRlLT50di5tYXJnaW5zLnRvcDsKPj4gKwl4c2l6ZSAtPSAo Y29ubl9zdGF0ZS0+dHYubWFyZ2lucy5sZWZ0ICsKPj4gKwkJICBjb25uX3N0YXRlLT50di5tYXJn aW5zLnJpZ2h0KTsKPj4gKwl5c2l6ZSAtPSAoY29ubl9zdGF0ZS0+dHYubWFyZ2lucy50b3AgKwo+ PiArCQkgIGNvbm5fc3RhdGUtPnR2Lm1hcmdpbnMuYm90dG9tKTsKPj4gIAlJOTE1X1dSSVRFKFRW X1dJTl9QT1MsICh4cG9zPDwxNil8eXBvcyk7Cj4+ICAJSTkxNV9XUklURShUVl9XSU5fU0laRSwg KHhzaXplPDwxNil8eXNpemUpOwo+PiAgCj4+IEBAIC0xMjU1LDcgKzEyMzgsNyBAQCBpbnRlbF90 dl9kZXRlY3RfdHlwZShzdHJ1Y3QgaW50ZWxfdHYgKmludGVsX3R2LAo+PiAgc3RhdGljIHZvaWQg aW50ZWxfdHZfZmluZF9iZXR0ZXJfZm9ybWF0KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3IpCj4+ICB7Cj4+ICAJc3RydWN0IGludGVsX3R2ICppbnRlbF90diA9IGludGVsX2F0dGFjaGVk X3R2KGNvbm5lY3Rvcik7Cj4+IC0JY29uc3Qgc3RydWN0IHR2X21vZGUgKnR2X21vZGUgPSBpbnRl bF90dl9tb2RlX2ZpbmQoaW50ZWxfdHYpOwo+PiArCWNvbnN0IHN0cnVjdCB0dl9tb2RlICp0dl9t b2RlID0gaW50ZWxfdHZfbW9kZV9maW5kKGNvbm5lY3Rvci0+c3RhdGUpOwo+PiAgCWludCBpOwo+ PiAgCj4+ICAJaWYgKChpbnRlbF90di0+dHlwZSA9PSBEUk1fTU9ERV9DT05ORUNUT1JfQ29tcG9u ZW50KSA9PQo+PiBAQCAtMTI3MSw5ICsxMjU0LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfdHZfZmlu ZF9iZXR0ZXJfZm9ybWF0KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4+ICAJCQli cmVhazsKPj4gIAl9Cj4+ICAKPj4gLQlpbnRlbF90di0+dHZfZm9ybWF0ID0gdHZfbW9kZS0+bmFt ZTsKPj4gLQlkcm1fb2JqZWN0X3Byb3BlcnR5X3NldF92YWx1ZSgmY29ubmVjdG9yLT5iYXNlLAo+ PiAtCQljb25uZWN0b3ItPmRldi0+bW9kZV9jb25maWcudHZfbW9kZV9wcm9wZXJ0eSwgaSk7Cj4+ ICsJY29ubmVjdG9yLT5zdGF0ZS0+dHYubW9kZSA9IGk7Cj4+ICB9Cj4+ICAKPj4gIC8qKgo+PiBA QCAtMTMxNCwxNiArMTI5NSwxNSBAQCBpbnRlbF90dl9kZXRlY3Qoc3RydWN0IGRybV9jb25uZWN0 b3IgKmNvbm5lY3RvciwKPj4gIAkJCQljb25uZWN0b3Jfc3RhdHVzX2Nvbm5lY3RlZDsKPj4gIAkJ fSBlbHNlCj4+ICAJCQlzdGF0dXMgPSBjb25uZWN0b3Jfc3RhdHVzX3Vua25vd247Cj4+IC0JfSBl bHNlCj4+IC0JCXJldHVybiBjb25uZWN0b3ItPnN0YXR1czsKPj4gIAo+PiAtCWlmIChzdGF0dXMg IT0gY29ubmVjdG9yX3N0YXR1c19jb25uZWN0ZWQpCj4+IC0JCXJldHVybiBzdGF0dXM7Cj4+IC0K Pj4gLQlpbnRlbF90di0+dHlwZSA9IHR5cGU7Cj4+IC0JaW50ZWxfdHZfZmluZF9iZXR0ZXJfZm9y bWF0KGNvbm5lY3Rvcik7Cj4+ICsJCWlmIChzdGF0dXMgPT0gY29ubmVjdG9yX3N0YXR1c19jb25u ZWN0ZWQpIHsKPj4gKwkJCWludGVsX3R2LT50eXBlID0gdHlwZTsKPj4gKwkJCWludGVsX3R2X2Zp bmRfYmV0dGVyX2Zvcm1hdChjb25uZWN0b3IpOwo+PiArCQl9Cj4+ICAKPj4gLQlyZXR1cm4gY29u bmVjdG9yX3N0YXR1c19jb25uZWN0ZWQ7Cj4+ICsJCXJldHVybiBzdGF0dXM7Cj4+ICsJfSBlbHNl Cj4+ICsJCXJldHVybiBjb25uZWN0b3ItPnN0YXR1czsKPj4gIH0KPj4gIAo+PiAgc3RhdGljIGNv bnN0IHN0cnVjdCBpbnB1dF9yZXMgewo+PiBAQCAtMTM0MywxMiArMTMyMyw5IEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgaW5wdXRfcmVzIHsKPj4gICAqIENob3NlIHByZWZlcnJlZCBtb2RlICBhY2Nv cmRpbmcgdG8gbGluZSBudW1iZXIgb2YgVFYgZm9ybWF0Cj4+ICAgKi8KPj4gIHN0YXRpYyB2b2lk Cj4+IC1pbnRlbF90dl9jaG9zZV9wcmVmZXJyZWRfbW9kZXMoc3RydWN0IGRybV9jb25uZWN0b3Ig KmNvbm5lY3RvciwKPj4gK2ludGVsX3R2X2Nob29zZV9wcmVmZXJyZWRfbW9kZXMoY29uc3Qgc3Ry dWN0IHR2X21vZGUgKnR2X21vZGUsCj4+ICAJCQkgICAgICAgc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKm1vZGVfcHRyKQo+PiAgewo+PiAtCXN0cnVjdCBpbnRlbF90diAqaW50ZWxfdHYgPSBpbnRl bF9hdHRhY2hlZF90dihjb25uZWN0b3IpOwo+PiAtCWNvbnN0IHN0cnVjdCB0dl9tb2RlICp0dl9t b2RlID0gaW50ZWxfdHZfbW9kZV9maW5kKGludGVsX3R2KTsKPj4gLQo+PiAgCWlmICh0dl9tb2Rl LT5uYnJfZW5kIDwgNDgwICYmIG1vZGVfcHRyLT52ZGlzcGxheSA9PSA0ODApCj4+ICAJCW1vZGVf cHRyLT50eXBlIHw9IERSTV9NT0RFX1RZUEVfUFJFRkVSUkVEOwo+PiAgCWVsc2UgaWYgKHR2X21v ZGUtPm5icl9lbmQgPiA0ODApIHsKPj4gQEAgLTEzNzEsOCArMTM0OCw3IEBAIHN0YXRpYyBpbnQK Pj4gIGludGVsX3R2X2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ PiAgewo+PiAgCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlX3B0cjsKPj4gLQlzdHJ1Y3Qg aW50ZWxfdHYgKmludGVsX3R2ID0gaW50ZWxfYXR0YWNoZWRfdHYoY29ubmVjdG9yKTsKPj4gLQlj b25zdCBzdHJ1Y3QgdHZfbW9kZSAqdHZfbW9kZSA9IGludGVsX3R2X21vZGVfZmluZChpbnRlbF90 dik7Cj4+ICsJY29uc3Qgc3RydWN0IHR2X21vZGUgKnR2X21vZGUgPSBpbnRlbF90dl9tb2RlX2Zp bmQoY29ubmVjdG9yLT5zdGF0ZSk7Cj4+ICAJaW50IGosIGNvdW50ID0gMDsKPj4gIAl1NjQgdG1w Owo+PiAgCj4+IEBAIC0xNDE1LDcgKzEzOTEsNyBAQCBpbnRlbF90dl9nZXRfbW9kZXMoc3RydWN0 IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPj4gIAkJbW9kZV9wdHItPmNsb2NrID0gKGludCkg dG1wOwo+PiAgCj4+ICAJCW1vZGVfcHRyLT50eXBlID0gRFJNX01PREVfVFlQRV9EUklWRVI7Cj4+ IC0JCWludGVsX3R2X2Nob3NlX3ByZWZlcnJlZF9tb2Rlcyhjb25uZWN0b3IsIG1vZGVfcHRyKTsK Pj4gKwkJaW50ZWxfdHZfY2hvb3NlX3ByZWZlcnJlZF9tb2Rlcyh0dl9tb2RlLCBtb2RlX3B0cik7 Cj4+ICAJCWRybV9tb2RlX3Byb2JlZF9hZGQoY29ubmVjdG9yLCBtb2RlX3B0cik7Cj4+ICAJCWNv dW50Kys7Cj4+ICAJfQo+PiBAQCAtMTQzMCw3NCArMTQwNiw0NyBAQCBpbnRlbF90dl9kZXN0cm95 KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4+ICAJa2ZyZWUoY29ubmVjdG9yKTsK Pj4gIH0KPj4gIAo+PiAtCj4+IC1zdGF0aWMgaW50Cj4+IC1pbnRlbF90dl9zZXRfcHJvcGVydHko c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rvciwgc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJv cGVydHksCj4+IC0JCSAgICAgIHVpbnQ2NF90IHZhbCkKPj4gLXsKPj4gLQlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gY29ubmVjdG9yLT5kZXY7Cj4+IC0Jc3RydWN0IGludGVsX3R2ICppbnRlbF90 diA9IGludGVsX2F0dGFjaGVkX3R2KGNvbm5lY3Rvcik7Cj4+IC0Jc3RydWN0IGRybV9jcnRjICpj cnRjID0gaW50ZWxfdHYtPmJhc2UuYmFzZS5jcnRjOwo+PiAtCWludCByZXQgPSAwOwo+PiAtCWJv b2wgY2hhbmdlZCA9IGZhbHNlOwo+PiAtCj4+IC0JcmV0ID0gZHJtX29iamVjdF9wcm9wZXJ0eV9z ZXRfdmFsdWUoJmNvbm5lY3Rvci0+YmFzZSwgcHJvcGVydHksIHZhbCk7Cj4+IC0JaWYgKHJldCA8 IDApCj4+IC0JCWdvdG8gb3V0Owo+PiAtCj4+IC0JaWYgKHByb3BlcnR5ID09IGRldi0+bW9kZV9j b25maWcudHZfbGVmdF9tYXJnaW5fcHJvcGVydHkgJiYKPj4gLQkJaW50ZWxfdHYtPm1hcmdpbltU Vl9NQVJHSU5fTEVGVF0gIT0gdmFsKSB7Cj4+IC0JCWludGVsX3R2LT5tYXJnaW5bVFZfTUFSR0lO X0xFRlRdID0gdmFsOwo+PiAtCQljaGFuZ2VkID0gdHJ1ZTsKPj4gLQl9IGVsc2UgaWYgKHByb3Bl cnR5ID09IGRldi0+bW9kZV9jb25maWcudHZfcmlnaHRfbWFyZ2luX3Byb3BlcnR5ICYmCj4+IC0J CWludGVsX3R2LT5tYXJnaW5bVFZfTUFSR0lOX1JJR0hUXSAhPSB2YWwpIHsKPj4gLQkJaW50ZWxf dHYtPm1hcmdpbltUVl9NQVJHSU5fUklHSFRdID0gdmFsOwo+PiAtCQljaGFuZ2VkID0gdHJ1ZTsK Pj4gLQl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGRldi0+bW9kZV9jb25maWcudHZfdG9wX21hcmdp bl9wcm9wZXJ0eSAmJgo+PiAtCQlpbnRlbF90di0+bWFyZ2luW1RWX01BUkdJTl9UT1BdICE9IHZh bCkgewo+PiAtCQlpbnRlbF90di0+bWFyZ2luW1RWX01BUkdJTl9UT1BdID0gdmFsOwo+PiAtCQlj aGFuZ2VkID0gdHJ1ZTsKPj4gLQl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGRldi0+bW9kZV9jb25m aWcudHZfYm90dG9tX21hcmdpbl9wcm9wZXJ0eSAmJgo+PiAtCQlpbnRlbF90di0+bWFyZ2luW1RW X01BUkdJTl9CT1RUT01dICE9IHZhbCkgewo+PiAtCQlpbnRlbF90di0+bWFyZ2luW1RWX01BUkdJ Tl9CT1RUT01dID0gdmFsOwo+PiAtCQljaGFuZ2VkID0gdHJ1ZTsKPj4gLQl9IGVsc2UgaWYgKHBy b3BlcnR5ID09IGRldi0+bW9kZV9jb25maWcudHZfbW9kZV9wcm9wZXJ0eSkgewo+PiAtCQlpZiAo dmFsID49IEFSUkFZX1NJWkUodHZfbW9kZXMpKSB7Cj4+IC0JCQlyZXQgPSAtRUlOVkFMOwo+PiAt CQkJZ290byBvdXQ7Cj4+IC0JCX0KPj4gLQkJaWYgKCFzdHJjbXAoaW50ZWxfdHYtPnR2X2Zvcm1h dCwgdHZfbW9kZXNbdmFsXS5uYW1lKSkKPj4gLQkJCWdvdG8gb3V0Owo+PiAtCj4+IC0JCWludGVs X3R2LT50dl9mb3JtYXQgPSB0dl9tb2Rlc1t2YWxdLm5hbWU7Cj4+IC0JCWNoYW5nZWQgPSB0cnVl Owo+PiAtCX0gZWxzZSB7Cj4+IC0JCXJldCA9IC1FSU5WQUw7Cj4+IC0JCWdvdG8gb3V0Owo+PiAt CX0KPj4gLQo+PiAtCWlmIChjaGFuZ2VkICYmIGNydGMpCj4+IC0JCWludGVsX2NydGNfcmVzdG9y ZV9tb2RlKGNydGMpOwo+PiAtb3V0Ogo+PiAtCXJldHVybiByZXQ7Cj4+IC19Cj4+IC0KPj4gIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9mdW5jcyBpbnRlbF90dl9jb25uZWN0b3Jf ZnVuY3MgPSB7Cj4+ICAJLmRwbXMgPSBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZHBtcywK Pj4gIAkubGF0ZV9yZWdpc3RlciA9IGludGVsX2Nvbm5lY3Rvcl9yZWdpc3RlciwKPj4gIAkuZWFy bHlfdW5yZWdpc3RlciA9IGludGVsX2Nvbm5lY3Rvcl91bnJlZ2lzdGVyLAo+PiAgCS5kZXN0cm95 ID0gaW50ZWxfdHZfZGVzdHJveSwKPj4gLQkuc2V0X3Byb3BlcnR5ID0gaW50ZWxfdHZfc2V0X3By b3BlcnR5LAo+PiAtCS5hdG9taWNfZ2V0X3Byb3BlcnR5ID0gaW50ZWxfY29ubmVjdG9yX2F0b21p Y19nZXRfcHJvcGVydHksCj4+ICsJLnNldF9wcm9wZXJ0eSA9IGRybV9hdG9taWNfaGVscGVyX2Nv bm5lY3Rvcl9zZXRfcHJvcGVydHksCj4+ICAJLmZpbGxfbW9kZXMgPSBkcm1faGVscGVyX3Byb2Jl X3NpbmdsZV9jb25uZWN0b3JfbW9kZXMsCj4+ICAJLmF0b21pY19kZXN0cm95X3N0YXRlID0gZHJt X2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2Rlc3Ryb3lfc3RhdGUsCj4+ICAJLmF0b21pY19kdXBs aWNhdGVfc3RhdGUgPSBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZHVwbGljYXRlX3N0YXRl LAo+PiAgfTsKPj4gIAo+PiArc3RhdGljIGludCBpbnRlbF90dl9hdG9taWNfY2hlY2soc3RydWN0 IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPj4gKwkJCQkgc3RydWN0IGRybV9jb25uZWN0b3Jf c3RhdGUgKm5ld19zdGF0ZSkKPj4gK3sKPj4gKwlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm5ld19j cnRjX3N0YXRlOwo+PiArCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpvbGRfc3RhdGU7Cj4+ ICsKPj4gKwlpZiAoIW5ld19zdGF0ZS0+Y3J0YykKPj4gKwkJcmV0dXJuIDA7Cj4+ICsKPj4gKwlv bGRfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9vbGRfY29ubmVjdG9yX3N0YXRlKG5ld19zdGF0ZS0+ c3RhdGUsIGNvbm5lY3Rvcik7Cj4+ICsJbmV3X2NydGNfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9u ZXdfY3J0Y19zdGF0ZShuZXdfc3RhdGUtPnN0YXRlLCBuZXdfc3RhdGUtPmNydGMpOwo+PiArCj4+ ICsJaWYgKG9sZF9zdGF0ZS0+dHYubW9kZSAhPSBuZXdfc3RhdGUtPnR2Lm1vZGUgfHwKPj4gKwkg ICAgb2xkX3N0YXRlLT50di5tYXJnaW5zLmxlZnQgIT0gbmV3X3N0YXRlLT50di5tYXJnaW5zLmxl ZnQgfHwKPj4gKwkgICAgb2xkX3N0YXRlLT50di5tYXJnaW5zLnJpZ2h0ICE9IG5ld19zdGF0ZS0+ dHYubWFyZ2lucy5yaWdodCB8fAo+PiArCSAgICBvbGRfc3RhdGUtPnR2Lm1hcmdpbnMudG9wICE9 IG5ld19zdGF0ZS0+dHYubWFyZ2lucy50b3AgfHwKPj4gKwkgICAgb2xkX3N0YXRlLT50di5tYXJn aW5zLmJvdHRvbSAhPSBuZXdfc3RhdGUtPnR2Lm1hcmdpbnMuYm90dG9tKSB7Cj4+ICsJCS8qIEZv cmNlIGEgbW9kZXNldC4gKi8KPj4gKwo+PiArCQluZXdfY3J0Y19zdGF0ZS0+Y29ubmVjdG9yc19j aGFuZ2VkID0gdHJ1ZTsKPj4gKwl9Cj4gSSB3b25kZXIgd2hldGhlciB3ZSBzaG91bGQgaGF2ZSBh IGRlZmF1bHQgYXRvbWljX2NoZWNrIGZvciBUViwgd2hpY2ggZG9lcwo+IGV4YWN0bHkgdGhlIGFi b3ZlPyBPdG9oLCAybmQgZHJpdmVyIHRvIHVzZSB0aGVtIGNhbiBkbyB0aGlzIDotKQo+Cj4+ICsK Pj4gKwlyZXR1cm4gMDsKPj4gK30KPj4gKwo+PiAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29u bmVjdG9yX2hlbHBlcl9mdW5jcyBpbnRlbF90dl9jb25uZWN0b3JfaGVscGVyX2Z1bmNzID0gewo+ PiAgCS5kZXRlY3RfY3R4ID0gaW50ZWxfdHZfZGV0ZWN0LAo+PiAgCS5tb2RlX3ZhbGlkID0gaW50 ZWxfdHZfbW9kZV92YWxpZCwKPj4gIAkuZ2V0X21vZGVzID0gaW50ZWxfdHZfZ2V0X21vZGVzLAo+ PiArCS5hdG9taWNfY2hlY2sgPSBpbnRlbF90dl9hdG9taWNfY2hlY2ssCj4+ICB9Owo+PiAgCj4+ ICBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9lbmNvZGVyX2Z1bmNzIGludGVsX3R2X2VuY19mdW5j cyA9IHsKPj4gQEAgLTE1MTUsNiArMTQ2NCw3IEBAIGludGVsX3R2X2luaXQoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQo+PiAgCXUzMiB0dl9kYWNfb24sIHR2X2RhY19vZmYsIHNh dmVfdHZfZGFjOwo+PiAgCWNvbnN0IGNoYXIgKnR2X2Zvcm1hdF9uYW1lc1tBUlJBWV9TSVpFKHR2 X21vZGVzKV07Cj4+ICAJaW50IGksIGluaXRpYWxfbW9kZSA9IDA7Cj4+ICsJc3RydWN0IGRybV9j b25uZWN0b3Jfc3RhdGUgKnN0YXRlOwo+PiAgCj4+ICAJaWYgKChJOTE1X1JFQUQoVFZfQ1RMKSAm IFRWX0ZVU0VfU1RBVEVfTUFTSykgPT0gVFZfRlVTRV9TVEFURV9ESVNBQkxFRCkKPj4gIAkJcmV0 dXJuOwo+PiBAQCAtMTU2MCw2ICsxNTEwLDcgQEAgaW50ZWxfdHZfaW5pdChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4+ICAKPj4gIAlpbnRlbF9lbmNvZGVyID0gJmludGVsX3R2 LT5iYXNlOwo+PiAgCWNvbm5lY3RvciA9ICZpbnRlbF9jb25uZWN0b3ItPmJhc2U7Cj4+ICsJc3Rh dGUgPSBjb25uZWN0b3ItPnN0YXRlOwo+PiAgCj4+ICAJLyogVGhlIGRvY3VtZW50YXRpb24sIGZv ciB0aGUgb2xkZXIgY2hpcHNldHMgYXQgbGVhc3QsIHJlY29tbWVuZAo+PiAgCSAqIHVzaW5nIGEg cG9sbGluZyBtZXRob2QgcmF0aGVyIHRoYW4gaG90cGx1ZyBkZXRlY3Rpb24gZm9yIFRWcy4KPj4g QEAgLTE1OTcsMTIgKzE1NDgsMTIgQEAgaW50ZWxfdHZfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpCj4+ICAJaW50ZWxfdHYtPnR5cGUgPSBEUk1fTU9ERV9DT05ORUNUT1Jf VW5rbm93bjsKPj4gIAo+PiAgCS8qIEJJT1MgbWFyZ2luIHZhbHVlcyAqLwo+PiAtCWludGVsX3R2 LT5tYXJnaW5bVFZfTUFSR0lOX0xFRlRdID0gNTQ7Cj4+IC0JaW50ZWxfdHYtPm1hcmdpbltUVl9N QVJHSU5fVE9QXSA9IDM2Owo+PiAtCWludGVsX3R2LT5tYXJnaW5bVFZfTUFSR0lOX1JJR0hUXSA9 IDQ2Owo+PiAtCWludGVsX3R2LT5tYXJnaW5bVFZfTUFSR0lOX0JPVFRPTV0gPSAzNzsKPj4gKwlz dGF0ZS0+dHYubWFyZ2lucy5sZWZ0ID0gNTQ7Cj4+ICsJc3RhdGUtPnR2Lm1hcmdpbnMudG9wID0g MzY7Cj4+ICsJc3RhdGUtPnR2Lm1hcmdpbnMucmlnaHQgPSA0NjsKPj4gKwlzdGF0ZS0+dHYubWFy Z2lucy5ib3R0b20gPSAzNzsKPj4gIAo+PiAtCWludGVsX3R2LT50dl9mb3JtYXQgPSB0dl9tb2Rl c1tpbml0aWFsX21vZGVdLm5hbWU7Cj4+ICsJc3RhdGUtPnR2Lm1vZGUgPSBpbml0aWFsX21vZGU7 Cj4+ICAKPj4gIAlkcm1fY29ubmVjdG9yX2hlbHBlcl9hZGQoY29ubmVjdG9yLCAmaW50ZWxfdHZf Y29ubmVjdG9yX2hlbHBlcl9mdW5jcyk7Cj4+ICAJY29ubmVjdG9yLT5pbnRlcmxhY2VfYWxsb3dl ZCA9IGZhbHNlOwo+PiBAQCAtMTYxNiwxNyArMTU2NywxNyBAQCBpbnRlbF90dl9pbml0KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPj4gIAkJCQkgICAgICB0dl9mb3JtYXRfbmFt ZXMpOwo+PiAgCj4+ICAJZHJtX29iamVjdF9hdHRhY2hfcHJvcGVydHkoJmNvbm5lY3Rvci0+YmFz ZSwgZGV2LT5tb2RlX2NvbmZpZy50dl9tb2RlX3Byb3BlcnR5LAo+PiAtCQkJCSAgIGluaXRpYWxf bW9kZSk7Cj4+ICsJCQkJICAgc3RhdGUtPnR2Lm1vZGUpOwo+PiAgCWRybV9vYmplY3RfYXR0YWNo X3Byb3BlcnR5KCZjb25uZWN0b3ItPmJhc2UsCj4+ICAJCQkJICAgZGV2LT5tb2RlX2NvbmZpZy50 dl9sZWZ0X21hcmdpbl9wcm9wZXJ0eSwKPj4gLQkJCQkgICBpbnRlbF90di0+bWFyZ2luW1RWX01B UkdJTl9MRUZUXSk7Cj4+ICsJCQkJICAgc3RhdGUtPnR2Lm1hcmdpbnMubGVmdCk7Cj4+ICAJZHJt X29iamVjdF9hdHRhY2hfcHJvcGVydHkoJmNvbm5lY3Rvci0+YmFzZSwKPj4gIAkJCQkgICBkZXYt Pm1vZGVfY29uZmlnLnR2X3RvcF9tYXJnaW5fcHJvcGVydHksCj4+IC0JCQkJICAgaW50ZWxfdHYt Pm1hcmdpbltUVl9NQVJHSU5fVE9QXSk7Cj4+ICsJCQkJICAgc3RhdGUtPnR2Lm1hcmdpbnMudG9w KTsKPj4gIAlkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0eSgmY29ubmVjdG9yLT5iYXNlLAo+PiAg CQkJCSAgIGRldi0+bW9kZV9jb25maWcudHZfcmlnaHRfbWFyZ2luX3Byb3BlcnR5LAo+PiAtCQkJ CSAgIGludGVsX3R2LT5tYXJnaW5bVFZfTUFSR0lOX1JJR0hUXSk7Cj4+ICsJCQkJICAgc3RhdGUt PnR2Lm1hcmdpbnMucmlnaHQpOwo+PiAgCWRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5KCZjb25u ZWN0b3ItPmJhc2UsCj4+ICAJCQkJICAgZGV2LT5tb2RlX2NvbmZpZy50dl9ib3R0b21fbWFyZ2lu X3Byb3BlcnR5LAo+PiAtCQkJCSAgIGludGVsX3R2LT5tYXJnaW5bVFZfTUFSR0lOX0JPVFRPTV0p Owo+PiArCQkJCSAgIHN0YXRlLT50di5tYXJnaW5zLmJvdHRvbSk7Cj4gQW5vdGhlciBvcHBvcnR1 bml0eSBmb3IgYSBoZWxwZXIgdG8gYXR0YWNoIHRoZSB0dyBtb2RlIHByb3BlcnRpZXMgd2l0aAo+ IGNvcnJlY3QgZGVmYXVsdHMgYW5kIGFsbCB0aGF0LiBIbSwgb24gdGhhdCAuLi4gc2hvdWxkIHdl IGhhdmUgYW4KPiBhdHRhY2hfcHJvcCBmdW5jdGlvbiB3aGljaCBkb2Vzbid0IHJlcXVpcmUgdGhl IGluaXRpYWwgdmFsdWUsIHNpbmNlIHdpdGgKPiBhdG9taWMgdGhhdCdzIG5vdCBuZWVkZWQ/Clll YWggcGVyaGFwcywgYWx0aG91Z2ggd2UgY291bGQganVzdCBpbml0aWFsaXplIHRvIDAgaGVyZSBq dXN0IGZpbmUgd2l0aCB0aGUgYXRvbWljIGdldHByb3BlcnR5LgoKSW4gZmFjdCBwcm9iYWJseSBl dmVuIGJlZm9yZSB0aGlzIHBhdGNoLCBzaW5jZSBJIGJlbGlldmUgaXQncyBicm9rZW4gd2l0aCBp OTE1IGJlaW5nIGEgYXRvbWljIGRyaXZlci4uCgp+TWFhcnRlbgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK