From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 1/6] drm/i915: Use atomic state to obtain load detection crtc. Date: Thu, 11 Feb 2016 09:56:49 +0100 Message-ID: <20160211085649.GK11240@phenom.ffwll.local> References: <1454334242-23354-1-git-send-email-maarten.lankhorst@linux.intel.com> <1454334242-23354-2-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 mail-wm0-f48.google.com (mail-wm0-f48.google.com [74.125.82.48]) by gabe.freedesktop.org (Postfix) with ESMTPS id D93D36E7DB for ; Thu, 11 Feb 2016 00:56:26 -0800 (PST) Received: by mail-wm0-f48.google.com with SMTP id p63so58726271wmp.1 for ; Thu, 11 Feb 2016 00:56:26 -0800 (PST) Content-Disposition: inline In-Reply-To: <1454334242-23354-2-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: Maarten Lankhorst Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBGZWIgMDEsIDIwMTYgYXQgMDI6NDM6NTdQTSArMDEwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gSW5zdGVhZCBvZiByZXN0b3JpbmcgZHBtcyBhbmQgYSBmbGFnIGZvciB3aGV0 aGVyIGEgdGVtcCBmYiBpcyBhbGxvY2F0ZWQgZHVwbGljYXRlCj4gdGhlIG9sZCBwbGFuZV9zdGF0 ZSBhbmQgY3J0Y19zdGF0ZSwgYW5kIHJlc3RvcmUgdGhlIG1lbWJlcnMgd2UgcG90ZW50aWFsbHkg dG91Y2hlZC4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5s YW5raG9yc3RAbGludXguaW50ZWwuY29tPgoKRG8gd2UgaGF2ZSB0aGUgbG9hZC1kZXRlY3QgaWd0 IHRlc3RjYXNlIG5vdyBpbiB0aGUgQkFUIHNldD8gV2UndmUgYnJva2VuCnRoaXMgd2F5IHRvbyBt YW55IHRpbWVzIHRvIG5vdCBkbyB0aGF0LiBJbW8gdGhhdCBzaG91bGQgYmUgZG9uZSBiZWZvcmUK bWVyZ2luZyB0aGlzIGZpeC4KLURhbmllbAoKPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jIHwgMTI4ICsrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0t Cj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICB8ICAgNCArLQo+ICAyIGZp bGVzIGNoYW5nZWQsIDc2IGluc2VydGlvbnMoKyksIDU2IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRleCA0ZDhjOWY3ODU3ZGIuLjA3MDJjZThl YzM2YSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBAQCAtMTAzNjEs NiArMTAzNjEsNyBAQCBtb2RlX2ZpdHNfaW5fZmJkZXYoc3RydWN0IGRybV9kZXZpY2UgKmRldiwK PiAgCWlmIChvYmotPmJhc2Uuc2l6ZSA8IG1vZGUtPnZkaXNwbGF5ICogZmItPnBpdGNoZXNbMF0p Cj4gIAkJcmV0dXJuIE5VTEw7Cj4gIAo+ICsJZHJtX2ZyYW1lYnVmZmVyX3JlZmVyZW5jZShmYik7 Cj4gIAlyZXR1cm4gZmI7Cj4gICNlbHNlCj4gIAlyZXR1cm4gTlVMTDsKPiBAQCAtMTA0MjYsNiAr MTA0MjcsOSBAQCBib29sIGludGVsX2dldF9sb2FkX2RldGVjdF9waXBlKHN0cnVjdCBkcm1fY29u bmVjdG9yICpjb25uZWN0b3IsCj4gIAkJICAgICAgZW5jb2Rlci0+YmFzZS5pZCwgZW5jb2Rlci0+ bmFtZSk7Cj4gIAo+ICByZXRyeToKPiArCW9sZC0+b2xkX3BpcGVfY29uZmlnID0gTlVMTDsKPiAr CW9sZC0+b2xkX3BsYW5lX3N0YXRlID0gTlVMTDsKPiArCj4gIAlyZXQgPSBkcm1fbW9kZXNldF9s b2NrKCZjb25maWctPmNvbm5lY3Rpb25fbXV0ZXgsIGN0eCk7Cj4gIAlpZiAocmV0KQo+ICAJCWdv dG8gZmFpbDsKPiBAQCAtMTA0NDEsMjQgKzEwNDQ1LDE1IEBAIHJldHJ5Ogo+ICAJICovCj4gIAo+ ICAJLyogU2VlIGlmIHdlIGFscmVhZHkgaGF2ZSBhIENSVEMgZm9yIHRoaXMgY29ubmVjdG9yICov Cj4gLQlpZiAoZW5jb2Rlci0+Y3J0Yykgewo+IC0JCWNydGMgPSBlbmNvZGVyLT5jcnRjOwo+ICsJ aWYgKGNvbm5lY3Rvci0+c3RhdGUtPmNydGMpIHsKPiArCQljcnRjID0gY29ubmVjdG9yLT5zdGF0 ZS0+Y3J0YzsKPiAgCj4gIAkJcmV0ID0gZHJtX21vZGVzZXRfbG9jaygmY3J0Yy0+bXV0ZXgsIGN0 eCk7Cj4gIAkJaWYgKHJldCkKPiAgCQkJZ290byBmYWlsOwo+IC0JCXJldCA9IGRybV9tb2Rlc2V0 X2xvY2soJmNydGMtPnByaW1hcnktPm11dGV4LCBjdHgpOwo+IC0JCWlmIChyZXQpCj4gLQkJCWdv dG8gZmFpbDsKPiAtCj4gLQkJb2xkLT5kcG1zX21vZGUgPSBjb25uZWN0b3ItPmRwbXM7Cj4gLQkJ b2xkLT5sb2FkX2RldGVjdF90ZW1wID0gZmFsc2U7Cj4gIAo+ICAJCS8qIE1ha2Ugc3VyZSB0aGUg Y3J0YyBhbmQgY29ubmVjdG9yIGFyZSBydW5uaW5nICovCj4gLQkJaWYgKGNvbm5lY3Rvci0+ZHBt cyAhPSBEUk1fTU9ERV9EUE1TX09OKQo+IC0JCQljb25uZWN0b3ItPmZ1bmNzLT5kcG1zKGNvbm5l Y3RvciwgRFJNX01PREVfRFBNU19PTik7Cj4gLQo+IC0JCXJldHVybiB0cnVlOwo+ICsJCWdvdG8g Zm91bmQ7Cj4gIAl9Cj4gIAo+ICAJLyogRmluZCBhbiB1bnVzZWQgb25lIChpZiBwb3NzaWJsZSkg Ki8KPiBAQCAtMTA0NjYsOCArMTA0NjEsMTUgQEAgcmV0cnk6Cj4gIAkJaSsrOwo+ICAJCWlmICgh KGVuY29kZXItPnBvc3NpYmxlX2NydGNzICYgKDEgPDwgaSkpKQo+ICAJCQljb250aW51ZTsKPiAt CQlpZiAocG9zc2libGVfY3J0Yy0+c3RhdGUtPmVuYWJsZSkKPiArCj4gKwkJcmV0ID0gZHJtX21v ZGVzZXRfbG9jaygmcG9zc2libGVfY3J0Yy0+bXV0ZXgsIGN0eCk7Cj4gKwkJaWYgKHJldCkKPiAr CQkJZ290byBmYWlsOwo+ICsKPiArCQlpZiAocG9zc2libGVfY3J0Yy0+c3RhdGUtPmVuYWJsZSkg ewo+ICsJCQlkcm1fbW9kZXNldF91bmxvY2soJnBvc3NpYmxlX2NydGMtPm11dGV4KTsKPiAgCQkJ Y29udGludWU7Cj4gKwkJfQo+ICAKPiAgCQljcnRjID0gcG9zc2libGVfY3J0YzsKPiAgCQlicmVh azsKPiBAQCAtMTA0ODEsMTcgKzEwNDgzLDE5IEBAIHJldHJ5Ogo+ICAJCWdvdG8gZmFpbDsKPiAg CX0KPiAgCj4gLQlyZXQgPSBkcm1fbW9kZXNldF9sb2NrKCZjcnRjLT5tdXRleCwgY3R4KTsKPiAt CWlmIChyZXQpCj4gLQkJZ290byBmYWlsOwo+ICtmb3VuZDoKPiArCWludGVsX2NydGMgPSB0b19p bnRlbF9jcnRjKGNydGMpOwo+ICsKPiAgCXJldCA9IGRybV9tb2Rlc2V0X2xvY2soJmNydGMtPnBy aW1hcnktPm11dGV4LCBjdHgpOwo+ICAJaWYgKHJldCkKPiAgCQlnb3RvIGZhaWw7Cj4gIAo+IC0J aW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Cj4gLQlvbGQtPmRwbXNfbW9kZSA9IGNv bm5lY3Rvci0+ZHBtczsKPiAtCW9sZC0+bG9hZF9kZXRlY3RfdGVtcCA9IHRydWU7Cj4gLQlvbGQt PnJlbGVhc2VfZmIgPSBOVUxMOwo+ICsJb2xkLT5vbGRfcGlwZV9jb25maWcgPSBpbnRlbF9jcnRj X2R1cGxpY2F0ZV9zdGF0ZShjcnRjKTsKPiArCW9sZC0+b2xkX3BsYW5lX3N0YXRlID0gaW50ZWxf cGxhbmVfZHVwbGljYXRlX3N0YXRlKGNydGMtPnByaW1hcnkpOwo+ICsJaWYgKCFvbGQtPm9sZF9w aXBlX2NvbmZpZyB8fCAhb2xkLT5vbGRfcGxhbmVfc3RhdGUpIHsKPiArCQlyZXQgPSAtRU5PTUVN Owo+ICsJCWdvdG8gZmFpbDsKPiArCX0KPiAgCj4gIAlzdGF0ZSA9IGRybV9hdG9taWNfc3RhdGVf YWxsb2MoZGV2KTsKPiAgCWlmICghc3RhdGUpCj4gQEAgLTEwNTA1LDcgKzEwNTA5LDkgQEAgcmV0 cnk6Cj4gIAkJZ290byBmYWlsOwo+ICAJfQo+ICAKPiAtCWNvbm5lY3Rvcl9zdGF0ZS0+Y3J0YyA9 IGNydGM7Cj4gKwlyZXQgPSBkcm1fYXRvbWljX3NldF9jcnRjX2Zvcl9jb25uZWN0b3IoY29ubmVj dG9yX3N0YXRlLCBjcnRjKTsKPiArCWlmIChyZXQpCj4gKwkJZ290byBmYWlsOwo+ICAKPiAgCWNy dGNfc3RhdGUgPSBpbnRlbF9hdG9taWNfZ2V0X2NydGNfc3RhdGUoc3RhdGUsIGludGVsX2NydGMp Owo+ICAJaWYgKElTX0VSUihjcnRjX3N0YXRlKSkgewo+IEBAIC0xMDUyOSw3ICsxMDUzNSw2IEBA IHJldHJ5Ogo+ICAJaWYgKGZiID09IE5VTEwpIHsKPiAgCQlEUk1fREVCVUdfS01TKCJjcmVhdGlu ZyB0bXAgZmIgZm9yIGxvYWQtZGV0ZWN0aW9uXG4iKTsKPiAgCQlmYiA9IGludGVsX2ZyYW1lYnVm ZmVyX2NyZWF0ZV9mb3JfbW9kZShkZXYsIG1vZGUsIDI0LCAzMik7Cj4gLQkJb2xkLT5yZWxlYXNl X2ZiID0gZmI7Cj4gIAl9IGVsc2UKPiAgCQlEUk1fREVCVUdfS01TKCJyZXVzaW5nIGZiZGV2IGZv ciBsb2FkLWRldGVjdGlvbiBmcmFtZWJ1ZmZlclxuIik7Cj4gIAlpZiAoSVNfRVJSKGZiKSkgewo+ IEBAIC0xMDU0MSwxNSArMTA1NDYsMTYgQEAgcmV0cnk6Cj4gIAlpZiAocmV0KQo+ICAJCWdvdG8g ZmFpbDsKPiAgCj4gLQlkcm1fbW9kZV9jb3B5KCZjcnRjX3N0YXRlLT5iYXNlLm1vZGUsIG1vZGUp Owo+ICsJZHJtX2ZyYW1lYnVmZmVyX3VucmVmZXJlbmNlKGZiKTsKPiArCj4gKwlyZXQgPSBkcm1f YXRvbWljX3NldF9tb2RlX2Zvcl9jcnRjKCZjcnRjX3N0YXRlLT5iYXNlLCBtb2RlKTsKPiArCWlm IChyZXQpCj4gKwkJZ290byBmYWlsOwo+ICAKPiAgCWlmIChkcm1fYXRvbWljX2NvbW1pdChzdGF0 ZSkpIHsKPiAgCQlEUk1fREVCVUdfS01TKCJmYWlsZWQgdG8gc2V0IG1vZGUgb24gbG9hZC1kZXRl Y3QgcGlwZVxuIik7Cj4gLQkJaWYgKG9sZC0+cmVsZWFzZV9mYikKPiAtCQkJb2xkLT5yZWxlYXNl X2ZiLT5mdW5jcy0+ZGVzdHJveShvbGQtPnJlbGVhc2VfZmIpOwo+ICAJCWdvdG8gZmFpbDsKPiAg CX0KPiAtCWNydGMtPnByaW1hcnktPmNydGMgPSBjcnRjOwo+ICAKPiAgCS8qIGxldCB0aGUgY29u bmVjdG9yIGdldCB0aHJvdWdoIG9uZSBmdWxsIGN5Y2xlIGJlZm9yZSB0ZXN0aW5nICovCj4gIAlp bnRlbF93YWl0X2Zvcl92YmxhbmsoZGV2LCBpbnRlbF9jcnRjLT5waXBlKTsKPiBAQCAtMTA1NTks NiArMTA1NjUsMTIgQEAgZmFpbDoKPiAgCWRybV9hdG9taWNfc3RhdGVfZnJlZShzdGF0ZSk7Cj4g IAlzdGF0ZSA9IE5VTEw7Cj4gIAo+ICsJaWYgKG9sZC0+b2xkX3BpcGVfY29uZmlnKQo+ICsJCWlu dGVsX2NydGNfZGVzdHJveV9zdGF0ZShjcnRjLCBvbGQtPm9sZF9waXBlX2NvbmZpZyk7Cj4gKwo+ ICsJaWYgKG9sZC0+b2xkX3BsYW5lX3N0YXRlKQo+ICsJCWludGVsX3BsYW5lX2Rlc3Ryb3lfc3Rh dGUoY3J0Yy0+cHJpbWFyeSwgb2xkLT5vbGRfcGxhbmVfc3RhdGUpOwo+ICsKPiAgCWlmIChyZXQg PT0gLUVERUFETEspIHsKPiAgCQlkcm1fbW9kZXNldF9iYWNrb2ZmKGN0eCk7Cj4gIAkJZ290byBy ZXRyeTsKPiBAQCAtMTA1NzUsNjEgKzEwNTg3LDY5IEBAIHZvaWQgaW50ZWxfcmVsZWFzZV9sb2Fk X2RldGVjdF9waXBlKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gIAlzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlciA9Cj4gIAkJaW50ZWxfYXR0YWNoZWRfZW5jb2Rl cihjb25uZWN0b3IpOwo+ICAJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyID0gJmludGVsX2Vu Y29kZXItPmJhc2U7Cj4gLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBlbmNvZGVyLT5jcnRjOwo+ ICsJc3RydWN0IGRybV9jcnRjICpjcnRjID0gY29ubmVjdG9yLT5zdGF0ZS0+Y3J0YzsKPiAgCXN0 cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPiAgCXN0 cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZTsKPiAgCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0 YXRlICpjb25uZWN0b3Jfc3RhdGU7Cj4gIAlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZTsKPiArCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlOwo+ICAJaW50IHJl dDsKPiAgCj4gIAlEUk1fREVCVUdfS01TKCJbQ09OTkVDVE9SOiVkOiVzXSwgW0VOQ09ERVI6JWQ6 JXNdXG4iLAo+ICAJCSAgICAgIGNvbm5lY3Rvci0+YmFzZS5pZCwgY29ubmVjdG9yLT5uYW1lLAo+ ICAJCSAgICAgIGVuY29kZXItPmJhc2UuaWQsIGVuY29kZXItPm5hbWUpOwo+ICAKPiAtCWlmIChv bGQtPmxvYWRfZGV0ZWN0X3RlbXApIHsKPiAtCQlzdGF0ZSA9IGRybV9hdG9taWNfc3RhdGVfYWxs b2MoZGV2KTsKPiAtCQlpZiAoIXN0YXRlKQo+IC0JCQlnb3RvIGZhaWw7Cj4gKwlpZiAoIW9sZC0+ b2xkX3BpcGVfY29uZmlnKQo+ICsJCXJldHVybjsKPiAgCj4gLQkJc3RhdGUtPmFjcXVpcmVfY3R4 ID0gY3R4Owo+ICsJc3RhdGUgPSBkcm1fYXRvbWljX3N0YXRlX2FsbG9jKGRldik7Cj4gKwlpZiAo IXN0YXRlKQo+ICsJCWdvdG8gZmFpbDsKPiAgCj4gLQkJY29ubmVjdG9yX3N0YXRlID0gZHJtX2F0 b21pY19nZXRfY29ubmVjdG9yX3N0YXRlKHN0YXRlLCBjb25uZWN0b3IpOwo+IC0JCWlmIChJU19F UlIoY29ubmVjdG9yX3N0YXRlKSkKPiAtCQkJZ290byBmYWlsOwo+ICsJc3RhdGUtPmFjcXVpcmVf Y3R4ID0gY3R4Owo+ICAKPiAtCQljcnRjX3N0YXRlID0gaW50ZWxfYXRvbWljX2dldF9jcnRjX3N0 YXRlKHN0YXRlLCBpbnRlbF9jcnRjKTsKPiAtCQlpZiAoSVNfRVJSKGNydGNfc3RhdGUpKQo+IC0J CQlnb3RvIGZhaWw7Cj4gKwljb25uZWN0b3Jfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9jb25uZWN0 b3Jfc3RhdGUoc3RhdGUsIGNvbm5lY3Rvcik7Cj4gKwlpZiAoSVNfRVJSKGNvbm5lY3Rvcl9zdGF0 ZSkpCj4gKwkJZ290byBmYWlsOwo+ICAKPiAtCQljb25uZWN0b3Jfc3RhdGUtPmNydGMgPSBOVUxM Owo+ICsJY3J0Y19zdGF0ZSA9IGludGVsX2F0b21pY19nZXRfY3J0Y19zdGF0ZShzdGF0ZSwgaW50 ZWxfY3J0Yyk7Cj4gKwlpZiAoSVNfRVJSKGNydGNfc3RhdGUpKQo+ICsJCWdvdG8gZmFpbDsKPiAg Cj4gLQkJY3J0Y19zdGF0ZS0+YmFzZS5lbmFibGUgPSBjcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSA9 IGZhbHNlOwo+ICsJcGxhbmVfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9wbGFuZV9zdGF0ZShzdGF0 ZSwgY3J0Yy0+cHJpbWFyeSk7Cj4gKwlpZiAoSVNfRVJSKHBsYW5lX3N0YXRlKSkKPiArCQlnb3Rv IGZhaWw7Cj4gIAo+IC0JCXJldCA9IGludGVsX21vZGVzZXRfc2V0dXBfcGxhbmVfc3RhdGUoc3Rh dGUsIGNydGMsIE5VTEwsIE5VTEwsCj4gLQkJCQkJCSAgICAgIDAsIDApOwo+ICsJaWYgKCFvbGQt Pm9sZF9waXBlX2NvbmZpZy0+ZW5hYmxlKSB7Cj4gKwkJcmV0ID0gZHJtX2F0b21pY19zZXRfY3J0 Y19mb3JfY29ubmVjdG9yKGNvbm5lY3Rvcl9zdGF0ZSwgTlVMTCk7Cj4gIAkJaWYgKHJldCkKPiAg CQkJZ290byBmYWlsOwo+ICsJfQo+ICAKPiAtCQlyZXQgPSBkcm1fYXRvbWljX2NvbW1pdChzdGF0 ZSk7Cj4gLQkJaWYgKHJldCkKPiAtCQkJZ290byBmYWlsOwo+ICsJY3J0Y19zdGF0ZS0+YmFzZS5l bmFibGUgPSBvbGQtPm9sZF9waXBlX2NvbmZpZy0+ZW5hYmxlOwo+ICsJY3J0Y19zdGF0ZS0+YmFz ZS5hY3RpdmUgPSBvbGQtPm9sZF9waXBlX2NvbmZpZy0+YWN0aXZlOwo+ICAKPiAtCQlpZiAob2xk LT5yZWxlYXNlX2ZiKSB7Cj4gLQkJCWRybV9mcmFtZWJ1ZmZlcl91bnJlZ2lzdGVyX3ByaXZhdGUo b2xkLT5yZWxlYXNlX2ZiKTsKPiAtCQkJZHJtX2ZyYW1lYnVmZmVyX3VucmVmZXJlbmNlKG9sZC0+ cmVsZWFzZV9mYik7Cj4gLQkJfQo+ICsJZHJtX2F0b21pY19zZXRfZmJfZm9yX3BsYW5lKHBsYW5l X3N0YXRlLCBvbGQtPm9sZF9wbGFuZV9zdGF0ZS0+ZmIpOwo+ICsJcmV0ID0gZHJtX2F0b21pY19z ZXRfY3J0Y19mb3JfcGxhbmUocGxhbmVfc3RhdGUsIG9sZC0+b2xkX3BsYW5lX3N0YXRlLT5jcnRj KTsKPiArCWlmIChyZXQpCj4gKwkJZ290byBmYWlsOwo+ICAKPiAtCQlyZXR1cm47Cj4gLQl9Cj4g KwlvbGQtPm9sZF9wbGFuZV9zdGF0ZS0+c3RhdGUgPSBwbGFuZV9zdGF0ZS0+c3RhdGU7Cj4gKwkq cGxhbmVfc3RhdGUgPSAqb2xkLT5vbGRfcGxhbmVfc3RhdGU7Cj4gIAo+IC0JLyogU3dpdGNoIGNy dGMgYW5kIGVuY29kZXIgYmFjayBvZmYgaWYgbmVjZXNzYXJ5ICovCj4gLQlpZiAob2xkLT5kcG1z X21vZGUgIT0gRFJNX01PREVfRFBNU19PTikKPiAtCQljb25uZWN0b3ItPmZ1bmNzLT5kcG1zKGNv bm5lY3Rvciwgb2xkLT5kcG1zX21vZGUpOwo+ICsJcmV0ID0gZHJtX2F0b21pY19jb21taXQoc3Rh dGUpOwo+ICsJaWYgKHJldCkKPiArCQlnb3RvIGZhaWw7Cj4gIAo+ICsJaW50ZWxfcGxhbmVfZGVz dHJveV9zdGF0ZShjcnRjLT5wcmltYXJ5LCBvbGQtPm9sZF9wbGFuZV9zdGF0ZSk7Cj4gKwlpbnRl bF9jcnRjX2Rlc3Ryb3lfc3RhdGUoY3J0Yywgb2xkLT5vbGRfcGlwZV9jb25maWcpOwo+ICAJcmV0 dXJuOwo+ICsKPiAgZmFpbDoKPiAgCURSTV9ERUJVR19LTVMoIkNvdWxkbid0IHJlbGVhc2UgbG9h ZCBkZXRlY3QgcGlwZS5cbiIpOwo+ICAJZHJtX2F0b21pY19zdGF0ZV9mcmVlKHN0YXRlKTsKPiAr CWludGVsX3BsYW5lX2Rlc3Ryb3lfc3RhdGUoY3J0Yy0+cHJpbWFyeSwgb2xkLT5vbGRfcGxhbmVf c3RhdGUpOwo+ICsJaW50ZWxfY3J0Y19kZXN0cm95X3N0YXRlKGNydGMsIG9sZC0+b2xkX3BpcGVf Y29uZmlnKTsKPiAgfQo+ICAKPiAgc3RhdGljIGludCBpOXh4X3BsbF9yZWZjbGsoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IGluZGV4IDkzYmExNGEz YmI3Ni4uZWVkYTdkMDJhNGY3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBAQCAt OTEzLDggKzkxMyw4IEBAIHN0cnVjdCBpbnRlbF91bnBpbl93b3JrIHsKPiAgCj4gIHN0cnVjdCBp bnRlbF9sb2FkX2RldGVjdF9waXBlIHsKPiAgCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKnJlbGVh c2VfZmI7Cj4gLQlib29sIGxvYWRfZGV0ZWN0X3RlbXA7Cj4gLQlpbnQgZHBtc19tb2RlOwo+ICsJ c3RydWN0IGRybV9jcnRjX3N0YXRlICpvbGRfcGlwZV9jb25maWc7Cj4gKwlzdHJ1Y3QgZHJtX3Bs YW5lX3N0YXRlICpvbGRfcGxhbmVfc3RhdGU7Cj4gIH07Cj4gIAo+ICBzdGF0aWMgaW5saW5lIHN0 cnVjdCBpbnRlbF9lbmNvZGVyICoKPiAtLSAKPiAyLjEuMAo+IAo+IF9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+ IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0 d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==