From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v2 1/6] drm/i915: Use atomic state to obtain load detection crtc, v2. Date: Tue, 2 Feb 2016 19:32:29 +0200 Message-ID: <20160202173229.GX23290@intel.com> References: <1454334242-23354-1-git-send-email-maarten.lankhorst@linux.intel.com> <1454334242-23354-2-git-send-email-maarten.lankhorst@linux.intel.com> <56B0A591.1040801@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id B7E406E0E7 for ; Tue, 2 Feb 2016 09:32:32 -0800 (PST) Content-Disposition: inline In-Reply-To: <56B0A591.1040801@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: Maarten Lankhorst Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBGZWIgMDIsIDIwMTYgYXQgMDE6NDg6MTdQTSArMDEwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gZHJtL2k5MTU6IFVzZSBhdG9taWMgc3RhdGUgdG8gb2J0YWluIGxvYWQgZGV0 ZWN0aW9uIGNydGMsIHYyLgo+IAo+IEluc3RlYWQgb2YgcmVzdG9yaW5nIGRwbXMgYW5kIGEgZmxh ZyBmb3Igd2hldGhlciBhIHRlbXAgZmIgaXMgYWxsb2NhdGVkIGR1cGxpY2F0ZQo+IGFuIGF0b21p YyBzdGF0ZSBiZWZvcmUgdGhlIG5ldyBzdGF0ZSBpcyBjb21taXR0ZWQsIGFuZCBjb21taXQgaXQg dGhlIG9sZCBzdGF0ZQo+IGluIGludGVsX3JlbGVhc2VfbG9hZF9kZXRlY3RfcGlwZS4KPiAKPiBD aGFuZ2VzIHNpbmNlIHYxOgo+IC0gVXNlIGEgcmVhbCBhdG9taWMgc3RhdGUuCj4gCj4gU2lnbmVk LW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVs LmNvbT4KPiAtLS0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gaW5kZXggNGQ4 YzlmNzg1N2RiLi5jN2JhOGY0YTk3MWUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jCj4gQEAgLTEwMzYxLDYgKzEwMzYxLDcgQEAgbW9kZV9maXRzX2luX2ZiZGV2KHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsCj4gIAlpZiAob2JqLT5iYXNlLnNpemUgPCBtb2RlLT52ZGlzcGxh eSAqIGZiLT5waXRjaGVzWzBdKQo+ICAJCXJldHVybiBOVUxMOwo+ICAKPiArCWRybV9mcmFtZWJ1 ZmZlcl9yZWZlcmVuY2UoZmIpOwo+ICAJcmV0dXJuIGZiOwo+ICAjZWxzZQo+ICAJcmV0dXJuIE5V TEw7Cj4gQEAgLTEwNDE2LDcgKzEwNDE3LDcgQEAgYm9vbCBpbnRlbF9nZXRfbG9hZF9kZXRlY3Rf cGlwZShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ICAJc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9IGVuY29kZXItPmRldjsKPiAgCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiOwo+ ICAJc3RydWN0IGRybV9tb2RlX2NvbmZpZyAqY29uZmlnID0gJmRldi0+bW9kZV9jb25maWc7Cj4g LQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBOVUxMOwo+ICsJc3RydWN0IGRybV9h dG9taWNfc3RhdGUgKnN0YXRlID0gTlVMTCwgKnJlc3RvcmVfc3RhdGUgPSBOVUxMOwo+ICAJc3Ry dWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5lY3Rvcl9zdGF0ZTsKPiAgCXN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOwo+ICAJaW50IHJldCwgaSA9IC0xOwo+IEBAIC0xMDQy NSw2ICsxMDQyNiw4IEBAIGJvb2wgaW50ZWxfZ2V0X2xvYWRfZGV0ZWN0X3BpcGUoc3RydWN0IGRy bV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiAgCQkgICAgICBjb25uZWN0b3ItPmJhc2UuaWQsIGNv bm5lY3Rvci0+bmFtZSwKPiAgCQkgICAgICBlbmNvZGVyLT5iYXNlLmlkLCBlbmNvZGVyLT5uYW1l KTsKPiAgCj4gKwlvbGQtPnJlc3RvcmVfc3RhdGUgPSBOVUxMOwo+ICsKPiAgcmV0cnk6Cj4gIAly ZXQgPSBkcm1fbW9kZXNldF9sb2NrKCZjb25maWctPmNvbm5lY3Rpb25fbXV0ZXgsIGN0eCk7Cj4g IAlpZiAocmV0KQo+IEBAIC0xMDQ0MSwyNCArMTA0NDQsMTUgQEAgcmV0cnk6Cj4gIAkgKi8KPiAg Cj4gIAkvKiBTZWUgaWYgd2UgYWxyZWFkeSBoYXZlIGEgQ1JUQyBmb3IgdGhpcyBjb25uZWN0b3Ig Ki8KPiAtCWlmIChlbmNvZGVyLT5jcnRjKSB7Cj4gLQkJY3J0YyA9IGVuY29kZXItPmNydGM7Cj4g KwlpZiAoY29ubmVjdG9yLT5zdGF0ZS0+Y3J0Yykgewo+ICsJCWNydGMgPSBjb25uZWN0b3ItPnN0 YXRlLT5jcnRjOwo+ICAKPiAgCQlyZXQgPSBkcm1fbW9kZXNldF9sb2NrKCZjcnRjLT5tdXRleCwg Y3R4KTsKPiAgCQlpZiAocmV0KQo+ICAJCQlnb3RvIGZhaWw7Cj4gLQkJcmV0ID0gZHJtX21vZGVz ZXRfbG9jaygmY3J0Yy0+cHJpbWFyeS0+bXV0ZXgsIGN0eCk7Cj4gLQkJaWYgKHJldCkKPiAtCQkJ Z290byBmYWlsOwo+IC0KPiAtCQlvbGQtPmRwbXNfbW9kZSA9IGNvbm5lY3Rvci0+ZHBtczsKPiAt CQlvbGQtPmxvYWRfZGV0ZWN0X3RlbXAgPSBmYWxzZTsKPiAgCj4gIAkJLyogTWFrZSBzdXJlIHRo ZSBjcnRjIGFuZCBjb25uZWN0b3IgYXJlIHJ1bm5pbmcgKi8KPiAtCQlpZiAoY29ubmVjdG9yLT5k cG1zICE9IERSTV9NT0RFX0RQTVNfT04pCj4gLQkJCWNvbm5lY3Rvci0+ZnVuY3MtPmRwbXMoY29u bmVjdG9yLCBEUk1fTU9ERV9EUE1TX09OKTsKPiAtCj4gLQkJcmV0dXJuIHRydWU7Cj4gKwkJZ290 byBmb3VuZDsKPiAgCX0KPiAgCj4gIAkvKiBGaW5kIGFuIHVudXNlZCBvbmUgKGlmIHBvc3NpYmxl KSAqLwo+IEBAIC0xMDQ2Niw4ICsxMDQ2MCwxNSBAQCByZXRyeToKPiAgCQlpKys7Cj4gIAkJaWYg KCEoZW5jb2Rlci0+cG9zc2libGVfY3J0Y3MgJiAoMSA8PCBpKSkpCj4gIAkJCWNvbnRpbnVlOwo+ IC0JCWlmIChwb3NzaWJsZV9jcnRjLT5zdGF0ZS0+ZW5hYmxlKQo+ICsKPiArCQlyZXQgPSBkcm1f bW9kZXNldF9sb2NrKCZwb3NzaWJsZV9jcnRjLT5tdXRleCwgY3R4KTsKPiArCQlpZiAocmV0KQo+ ICsJCQlnb3RvIGZhaWw7Cj4gKwo+ICsJCWlmIChwb3NzaWJsZV9jcnRjLT5zdGF0ZS0+ZW5hYmxl KSB7Cj4gKwkJCWRybV9tb2Rlc2V0X3VubG9jaygmcG9zc2libGVfY3J0Yy0+bXV0ZXgpOwo+ICAJ CQljb250aW51ZTsKPiArCQl9Cj4gIAo+ICAJCWNydGMgPSBwb3NzaWJsZV9jcnRjOwo+ICAJCWJy ZWFrOwo+IEBAIC0xMDQ4MSwyMyArMTA0ODIsMjIgQEAgcmV0cnk6Cj4gIAkJZ290byBmYWlsOwo+ ICAJfQo+ICAKPiAtCXJldCA9IGRybV9tb2Rlc2V0X2xvY2soJmNydGMtPm11dGV4LCBjdHgpOwo+ IC0JaWYgKHJldCkKPiAtCQlnb3RvIGZhaWw7Cj4gK2ZvdW5kOgo+ICsJaW50ZWxfY3J0YyA9IHRv X2ludGVsX2NydGMoY3J0Yyk7Cj4gKwo+ICAJcmV0ID0gZHJtX21vZGVzZXRfbG9jaygmY3J0Yy0+ cHJpbWFyeS0+bXV0ZXgsIGN0eCk7Cj4gIAlpZiAocmV0KQo+ICAJCWdvdG8gZmFpbDsKPiAgCj4g LQlpbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPiAtCW9sZC0+ZHBtc19tb2RlID0g Y29ubmVjdG9yLT5kcG1zOwo+IC0Jb2xkLT5sb2FkX2RldGVjdF90ZW1wID0gdHJ1ZTsKPiAtCW9s ZC0+cmVsZWFzZV9mYiA9IE5VTEw7Cj4gLQo+ICAJc3RhdGUgPSBkcm1fYXRvbWljX3N0YXRlX2Fs bG9jKGRldik7Cj4gLQlpZiAoIXN0YXRlKQo+IC0JCXJldHVybiBmYWxzZTsKPiArCXJlc3RvcmVf c3RhdGUgPSBkcm1fYXRvbWljX3N0YXRlX2FsbG9jKGRldik7Cj4gKwlpZiAoIXN0YXRlIHx8ICFy ZXN0b3JlX3N0YXRlKSB7Cj4gKwkJcmV0ID0gLUVOT01FTTsKPiArCQlnb3RvIGZhaWw7Cj4gKwl9 Cj4gIAo+ICAJc3RhdGUtPmFjcXVpcmVfY3R4ID0gY3R4Owo+ICsJcmVzdG9yZV9zdGF0ZS0+YWNx dWlyZV9jdHggPSBjdHg7Cj4gIAo+ICAJY29ubmVjdG9yX3N0YXRlID0gZHJtX2F0b21pY19nZXRf Y29ubmVjdG9yX3N0YXRlKHN0YXRlLCBjb25uZWN0b3IpOwo+ICAJaWYgKElTX0VSUihjb25uZWN0 b3Jfc3RhdGUpKSB7Cj4gQEAgLTEwNTA1LDcgKzEwNTA1LDkgQEAgcmV0cnk6Cj4gIAkJZ290byBm YWlsOwo+ICAJfQo+ICAKPiAtCWNvbm5lY3Rvcl9zdGF0ZS0+Y3J0YyA9IGNydGM7Cj4gKwlyZXQg PSBkcm1fYXRvbWljX3NldF9jcnRjX2Zvcl9jb25uZWN0b3IoY29ubmVjdG9yX3N0YXRlLCBjcnRj KTsKPiArCWlmIChyZXQpCj4gKwkJZ290byBmYWlsOwo+ICAKPiAgCWNydGNfc3RhdGUgPSBpbnRl bF9hdG9taWNfZ2V0X2NydGNfc3RhdGUoc3RhdGUsIGludGVsX2NydGMpOwo+ICAJaWYgKElTX0VS UihjcnRjX3N0YXRlKSkgewo+IEBAIC0xMDUyOSw3ICsxMDUzMSw2IEBAIHJldHJ5Ogo+ICAJaWYg KGZiID09IE5VTEwpIHsKPiAgCQlEUk1fREVCVUdfS01TKCJjcmVhdGluZyB0bXAgZmIgZm9yIGxv YWQtZGV0ZWN0aW9uXG4iKTsKPiAgCQlmYiA9IGludGVsX2ZyYW1lYnVmZmVyX2NyZWF0ZV9mb3Jf bW9kZShkZXYsIG1vZGUsIDI0LCAzMik7Cj4gLQkJb2xkLT5yZWxlYXNlX2ZiID0gZmI7Cj4gIAl9 IGVsc2UKPiAgCQlEUk1fREVCVUdfS01TKCJyZXVzaW5nIGZiZGV2IGZvciBsb2FkLWRldGVjdGlv biBmcmFtZWJ1ZmZlclxuIik7Cj4gIAlpZiAoSVNfRVJSKGZiKSkgewo+IEBAIC0xMDU0MSwxNSAr MTA1NDIsMjggQEAgcmV0cnk6Cj4gIAlpZiAocmV0KQo+ICAJCWdvdG8gZmFpbDsKPiAgCj4gLQlk cm1fbW9kZV9jb3B5KCZjcnRjX3N0YXRlLT5iYXNlLm1vZGUsIG1vZGUpOwo+ICsJZHJtX2ZyYW1l YnVmZmVyX3VucmVmZXJlbmNlKGZiKTsKPiArCj4gKwlyZXQgPSBkcm1fYXRvbWljX3NldF9tb2Rl X2Zvcl9jcnRjKCZjcnRjX3N0YXRlLT5iYXNlLCBtb2RlKTsKPiArCWlmIChyZXQpCj4gKwkJZ290 byBmYWlsOwo+ICsKPiArCXJldCA9IFBUUl9FUlJfT1JfWkVSTyhkcm1fYXRvbWljX2dldF9jb25u ZWN0b3Jfc3RhdGUocmVzdG9yZV9zdGF0ZSwgY29ubmVjdG9yKSk7Cj4gKwlpZiAoIXJldCkKPiAr CQlyZXQgPSBQVFJfRVJSX09SX1pFUk8oZHJtX2F0b21pY19nZXRfY3J0Y19zdGF0ZShyZXN0b3Jl X3N0YXRlLCBjcnRjKSk7Cj4gKwlpZiAoIXJldCkKPiArCQlyZXQgPSBQVFJfRVJSX09SX1pFUk8o ZHJtX2F0b21pY19nZXRfcGxhbmVfc3RhdGUocmVzdG9yZV9zdGF0ZSwgY3J0Yy0+cHJpbWFyeSkp Owo+ICsJaWYgKHJldCkgewo+ICsJCURSTV9ERUJVR19LTVMoIkZhaWxlZCB0byBjcmVhdGUgYSBj b3B5IG9mIG9sZCBzdGF0ZSB0byByZXN0b3JlOiAlaVxuIiwgcmV0KTsKPiArCQlnb3RvIGZhaWw7 Cj4gKwl9Cj4gIAo+ICAJaWYgKGRybV9hdG9taWNfY29tbWl0KHN0YXRlKSkgewo+ICAJCURSTV9E RUJVR19LTVMoImZhaWxlZCB0byBzZXQgbW9kZSBvbiBsb2FkLWRldGVjdCBwaXBlXG4iKTsKPiAt CQlpZiAob2xkLT5yZWxlYXNlX2ZiKQo+IC0JCQlvbGQtPnJlbGVhc2VfZmItPmZ1bmNzLT5kZXN0 cm95KG9sZC0+cmVsZWFzZV9mYik7Cj4gIAkJZ290byBmYWlsOwo+ICAJfQo+IC0JY3J0Yy0+cHJp bWFyeS0+Y3J0YyA9IGNydGM7Cj4gKwo+ICsJb2xkLT5yZXN0b3JlX3N0YXRlID0gcmVzdG9yZV9z dGF0ZTsKPiAgCj4gIAkvKiBsZXQgdGhlIGNvbm5lY3RvciBnZXQgdGhyb3VnaCBvbmUgZnVsbCBj eWNsZSBiZWZvcmUgdGVzdGluZyAqLwo+ICAJaW50ZWxfd2FpdF9mb3JfdmJsYW5rKGRldiwgaW50 ZWxfY3J0Yy0+cGlwZSk7Cj4gQEAgLTEwNTU3LDcgKzEwNTcxLDggQEAgcmV0cnk6Cj4gIAo+ICBm YWlsOgo+ICAJZHJtX2F0b21pY19zdGF0ZV9mcmVlKHN0YXRlKTsKPiAtCXN0YXRlID0gTlVMTDsK PiArCWRybV9hdG9taWNfc3RhdGVfZnJlZShyZXN0b3JlX3N0YXRlKTsKPiArCXJlc3RvcmVfc3Rh dGUgPSBzdGF0ZSA9IE5VTEw7Cj4gIAo+ICAJaWYgKHJldCA9PSAtRURFQURMSykgewo+ICAJCWRy bV9tb2Rlc2V0X2JhY2tvZmYoY3R4KTsKPiBAQCAtMTA1NzEsMTQgKzEwNTg2LDEyIEBAIHZvaWQg aW50ZWxfcmVsZWFzZV9sb2FkX2RldGVjdF9waXBlKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25u ZWN0b3IsCj4gIAkJCQkgICAgc3RydWN0IGludGVsX2xvYWRfZGV0ZWN0X3BpcGUgKm9sZCwKPiAg CQkJCSAgICBzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggKmN0eCkKPiAgewo+IC0Jc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IGNvbm5lY3Rvci0+ZGV2Owo+ICAJc3RydWN0IGludGVsX2Vu Y29kZXIgKmludGVsX2VuY29kZXIgPQo+ICAJCWludGVsX2F0dGFjaGVkX2VuY29kZXIoY29ubmVj dG9yKTsKPiAgCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciA9ICZpbnRlbF9lbmNvZGVyLT5i YXNlOwo+IC0Jc3RydWN0IGRybV9jcnRjICpjcnRjID0gZW5jb2Rlci0+Y3J0YzsKPiArCXN0cnVj dCBkcm1fY3J0YyAqY3J0YyA9IGNvbm5lY3Rvci0+c3RhdGUtPmNydGM7Cj4gIAlzdHJ1Y3QgaW50 ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Cj4gLQlzdHJ1Y3QgZHJt X2F0b21pY19zdGF0ZSAqc3RhdGU7Cj4gLQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29u bmVjdG9yX3N0YXRlOwo+ICsJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0gb2xkLT5y ZXN0b3JlX3N0YXRlOwo+ICAJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7Cj4g IAlpbnQgcmV0Owo+ICAKPiBAQCAtMTA1ODYsNTAgKzEwNTk5LDE3IEBAIHZvaWQgaW50ZWxfcmVs ZWFzZV9sb2FkX2RldGVjdF9waXBlKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4g IAkJICAgICAgY29ubmVjdG9yLT5iYXNlLmlkLCBjb25uZWN0b3ItPm5hbWUsCj4gIAkJICAgICAg ZW5jb2Rlci0+YmFzZS5pZCwgZW5jb2Rlci0+bmFtZSk7Cj4gIAo+IC0JaWYgKG9sZC0+bG9hZF9k ZXRlY3RfdGVtcCkgewo+IC0JCXN0YXRlID0gZHJtX2F0b21pY19zdGF0ZV9hbGxvYyhkZXYpOwo+ IC0JCWlmICghc3RhdGUpCj4gLQkJCWdvdG8gZmFpbDsKPiAtCj4gLQkJc3RhdGUtPmFjcXVpcmVf Y3R4ID0gY3R4Owo+IC0KPiAtCQljb25uZWN0b3Jfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9jb25u ZWN0b3Jfc3RhdGUoc3RhdGUsIGNvbm5lY3Rvcik7Cj4gLQkJaWYgKElTX0VSUihjb25uZWN0b3Jf c3RhdGUpKQo+IC0JCQlnb3RvIGZhaWw7Cj4gLQo+IC0JCWNydGNfc3RhdGUgPSBpbnRlbF9hdG9t aWNfZ2V0X2NydGNfc3RhdGUoc3RhdGUsIGludGVsX2NydGMpOwo+IC0JCWlmIChJU19FUlIoY3J0 Y19zdGF0ZSkpCj4gLQkJCWdvdG8gZmFpbDsKPiAtCj4gLQkJY29ubmVjdG9yX3N0YXRlLT5jcnRj ID0gTlVMTDsKPiAtCj4gLQkJY3J0Y19zdGF0ZS0+YmFzZS5lbmFibGUgPSBjcnRjX3N0YXRlLT5i YXNlLmFjdGl2ZSA9IGZhbHNlOwo+IC0KPiAtCQlyZXQgPSBpbnRlbF9tb2Rlc2V0X3NldHVwX3Bs YW5lX3N0YXRlKHN0YXRlLCBjcnRjLCBOVUxMLCBOVUxMLAo+IC0JCQkJCQkgICAgICAwLCAwKTsK PiAtCQlpZiAocmV0KQo+IC0JCQlnb3RvIGZhaWw7Cj4gLQo+IC0JCXJldCA9IGRybV9hdG9taWNf Y29tbWl0KHN0YXRlKTsKPiAtCQlpZiAocmV0KQo+IC0JCQlnb3RvIGZhaWw7Cj4gLQo+IC0JCWlm IChvbGQtPnJlbGVhc2VfZmIpIHsKPiAtCQkJZHJtX2ZyYW1lYnVmZmVyX3VucmVnaXN0ZXJfcHJp dmF0ZShvbGQtPnJlbGVhc2VfZmIpOwo+IC0JCQlkcm1fZnJhbWVidWZmZXJfdW5yZWZlcmVuY2Uo b2xkLT5yZWxlYXNlX2ZiKTsKPiAtCQl9Cj4gLQo+ICsJaWYgKCFzdGF0ZSkKPiAgCQlyZXR1cm47 Cj4gLQl9Cj4gIAo+IC0JLyogU3dpdGNoIGNydGMgYW5kIGVuY29kZXIgYmFjayBvZmYgaWYgbmVj ZXNzYXJ5ICovCj4gLQlpZiAob2xkLT5kcG1zX21vZGUgIT0gRFJNX01PREVfRFBNU19PTikKPiAt CQljb25uZWN0b3ItPmZ1bmNzLT5kcG1zKGNvbm5lY3Rvciwgb2xkLT5kcG1zX21vZGUpOwo+ICsJ Y3J0Y19zdGF0ZSA9IGludGVsX2F0b21pY19nZXRfY3J0Y19zdGF0ZShzdGF0ZSwgaW50ZWxfY3J0 Yyk7Cj4gKwljcnRjX3N0YXRlLT5zaGFyZWRfZHBsbCA9IHRvX2ludGVsX2NydGNfc3RhdGUoY3J0 Yy0+c3RhdGUpLT5zaGFyZWRfZHBsbDsKCkhtbS4gV2hhdCdzIHRoaXMgc2hhcmVkX2RwbGwgc3R1 ZmY/Cgo+ICAKPiAtCXJldHVybjsKPiAtZmFpbDoKPiAtCURSTV9ERUJVR19LTVMoIkNvdWxkbid0 IHJlbGVhc2UgbG9hZCBkZXRlY3QgcGlwZS5cbiIpOwo+IC0JZHJtX2F0b21pY19zdGF0ZV9mcmVl KHN0YXRlKTsKPiArCXJldCA9IGRybV9hdG9taWNfY29tbWl0KHN0YXRlKTsKPiArCWlmIChyZXQp IHsKPiArCQlEUk1fREVCVUdfS01TKCJDb3VsZG4ndCByZWxlYXNlIGxvYWQgZGV0ZWN0IHBpcGU6 ICVpXG4iLCByZXQpOwo+ICsJCWRybV9hdG9taWNfc3RhdGVfZnJlZShzdGF0ZSk7Cj4gKwl9Cj4g IH0KPiAgCj4gIHN0YXRpYyBpbnQgaTl4eF9wbGxfcmVmY2xrKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBpbmRleCA5M2JhMTRhM2JiNzYuLjdkMTBj YTc3OTdhOSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gQEAgLTkxMiw5ICs5MTIs NyBAQCBzdHJ1Y3QgaW50ZWxfdW5waW5fd29yayB7Cj4gIH07Cj4gIAo+ICBzdHJ1Y3QgaW50ZWxf bG9hZF9kZXRlY3RfcGlwZSB7Cj4gLQlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpyZWxlYXNlX2Zi Owo+IC0JYm9vbCBsb2FkX2RldGVjdF90ZW1wOwo+IC0JaW50IGRwbXNfbW9kZTsKPiArCXN0cnVj dCBkcm1fYXRvbWljX3N0YXRlICpyZXN0b3JlX3N0YXRlOwo+ICB9Owo+ICAKPiAgc3RhdGljIGlu bGluZSBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqCgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsIE9U QwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1n ZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=