From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v2 4/6] drm/i915/bxt: add dsi transcoders Date: Fri, 18 Mar 2016 17:38:27 +0200 Message-ID: <20160318153827.GK4329@intel.com> References: <299740536b7941e31b2744f3ce34f7afe936a771.1458313400.git.jani.nikula@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 530076E3F8 for ; Fri, 18 Mar 2016 15:38:31 +0000 (UTC) Content-Disposition: inline In-Reply-To: <299740536b7941e31b2744f3ce34f7afe936a771.1458313400.git.jani.nikula@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Jani Nikula Cc: Deepak M , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBNYXIgMTgsIDIwMTYgYXQgMDU6MDU6NDJQTSArMDIwMCwgSmFuaSBOaWt1bGEgd3Jv dGU6Cj4gVGhlIEJYVCBkaXNwbGF5IGNvbm5lY3Rpb25zIGhhdmUgRFNJIHRyYW5zY29kZXJzIEEg YW5kIEMgdGhhdCBjYW4gYmUKPiBtdXhlZCB0byBhbnkgcGlwZSwgbm90IHVubGlrZSB0aGUgZURQ IHRyYW5zY29kZXIuIEFkZCB0aGUgbm90aW9uIG9mIERTSQo+IHRyYW5zY29kZXJzLgo+IAo+IFRo ZSAibm9ybWFsIiB0cmFuc2NvZGVycyBBLCBCIGFuZCBDIGFyZSBub3QgdXNlZCB3aXRoIEJYVCBE U0ksIHNvIGNhcmUKPiBtdXN0IGJlIHRha2VuIHRvIGF2b2lkIGFjY2Vzc2luZyB0aG9zZSByZWdp c3RlcnMgd2l0aCBEU0kgdHJhbnNjb2RlcnMgaW4KPiB0aGUgaGFyZHdhcmUgc3RhdGUgcmVhZG91 dCwgbW9kZXNldCwgYW5kIGdlbmVyYWxseSBldmVyeXdoZXJlLgo+IAo+IHYyOiBhZGRyZXNzaW5n IGNvbW1lbnRzIGJ5IFZpbGxlOgo+ICAtIHJlbmFtZSB0aGUgZHNpIGdldCBjb25maWcgZnVuY3Rp b24gdG8gaHN3X2dldF9kc2lfdHJhbnNjb2Rlcl9zdGF0ZQo+ICAtIHJlYmFzZSBvbnRvIHRoZSBo aWdoZXIgbGV2ZWwgc3BsaXQgb2YgcGlwZS90cmFuc2NvZGVyIGZ1bmN0aW9ucwo+ICAtIHVzZSBt b3JlIGhhc19kc2lfZW5jb2RlciBhcyB3ZSBjYW4gbm93IGJlY2F1c2Ugb2YgdGhlIGFib3ZlLAo+ ICAgIHdpdGggbm8gbmVlZCB0byBsb29rIGF0IHRoZSB0cmFuc2NvZGVyIHNvIG11Y2gKPiAgLSBy ZW5hbWUgSVNfRFNJX1RSQU5TQ09ERVIgdG8gdHJhbnNjb2Rlcl9pc19kc2kKPiAgLSB1c2UgdGhl IGFib3ZlIGEgYml0IG1vcmUgaW5zdGVhZCBvZiBjb21wYXJpbmcgdG8gPCBUUkFOU0NPREVSX0VE UAo+IAo+IFNpZ25lZC1vZmYtYnk6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBpbnRlbC5jb20+ Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICB8IDEzICsr KysrCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jICAgICAgICB8ICA2ICsrKwo+ ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgICAgfCA5MSArKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2 LmggICAgICAgIHwgIDMgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMgICAg ICAgIHwgIDkgKysrKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMg fCAgNiArKysKPiAgNiBmaWxlcyBjaGFuZ2VkLCAxMTYgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRp b25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2Lmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5kZXggZjMzMGE1M2MxOWI5Li41 ZTcwMDc3MGM0MDMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBAQCAtMTI3LDYgKzEy Nyw4IEBAIGVudW0gdHJhbnNjb2RlciB7Cj4gIAlUUkFOU0NPREVSX0IsCj4gIAlUUkFOU0NPREVS X0MsCj4gIAlUUkFOU0NPREVSX0VEUCwKPiArCVRSQU5TQ09ERVJfRFNJX0EsCj4gKwlUUkFOU0NP REVSX0RTSV9DLAo+ICAJSTkxNV9NQVhfVFJBTlNDT0RFUlMKPiAgfTsKPiAgCj4gQEAgLTE0MSwx MSArMTQzLDIwIEBAIHN0YXRpYyBpbmxpbmUgY29uc3QgY2hhciAqdHJhbnNjb2Rlcl9uYW1lKGVu dW0gdHJhbnNjb2RlciB0cmFuc2NvZGVyKQo+ICAJCXJldHVybiAiQyI7Cj4gIAljYXNlIFRSQU5T Q09ERVJfRURQOgo+ICAJCXJldHVybiAiRURQIjsKPiArCWNhc2UgVFJBTlNDT0RFUl9EU0lfQToK PiArCQlyZXR1cm4gIkRTSSBBIjsKPiArCWNhc2UgVFJBTlNDT0RFUl9EU0lfQzoKPiArCQlyZXR1 cm4gIkRTSSBDIjsKPiAgCWRlZmF1bHQ6Cj4gIAkJcmV0dXJuICI8aW52YWxpZD4iOwo+ICAJfQo+ ICB9Cj4gIAo+ICtzdGF0aWMgaW5saW5lIGJvb2wgdHJhbnNjb2Rlcl9pc19kc2koZW51bSB0cmFu c2NvZGVyIHRyYW5zY29kZXIpCj4gK3sKPiArCXJldHVybiB0cmFuc2NvZGVyID09IFRSQU5TQ09E RVJfRFNJX0EgfHwgdHJhbnNjb2RlciA9PSBUUkFOU0NPREVSX0RTSV9DOwo+ICt9Cj4gKwo+ICAv Kgo+ICAgKiBJOTE1X01BWF9QTEFORVMgaW4gdGhlIGVudW0gYmVsb3cgaXMgdGhlIG1heGltdW0g KGFjcm9zcyBhbGwgcGxhdGZvcm1zKQo+ICAgKiBudW1iZXIgb2YgcGxhbmVzIHBlciBDUlRDLiAg Tm90IGFsbCBwbGF0Zm9ybXMgcmVhbGx5IGhhdmUgdGhpcyBtYW55IHBsYW5lcywKPiBAQCAtMTk2 LDYgKzIwNyw4IEBAIGVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gewo+ICAJUE9XRVJf RE9NQUlOX1RSQU5TQ09ERVJfQiwKPiAgCVBPV0VSX0RPTUFJTl9UUkFOU0NPREVSX0MsCj4gIAlQ T1dFUl9ET01BSU5fVFJBTlNDT0RFUl9FRFAsCj4gKwlQT1dFUl9ET01BSU5fVFJBTlNDT0RFUl9E U0lfQSwKPiArCVBPV0VSX0RPTUFJTl9UUkFOU0NPREVSX0RTSV9DLAo+ICAJUE9XRVJfRE9NQUlO X1BPUlRfRERJX0FfTEFORVMsCj4gIAlQT1dFUl9ET01BSU5fUE9SVF9ERElfQl9MQU5FUywKPiAg CVBPV0VSX0RPTUFJTl9QT1JUX0RESV9DX0xBTkVTLAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kZGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5j Cj4gaW5kZXggOTE2NTRmZmMzYTQyLi5lNmMzYTgwZTEzNjAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kZGkuYwo+IEBAIC0xMDYxLDYgKzEwNjEsOCBAQCB2b2lkIGludGVsX2RkaV9zZXRfcGlw ZV9zZXR0aW5ncyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIAl1aW50MzJfdCB0ZW1wOwo+ICAK PiAgCWlmICh0eXBlID09IElOVEVMX09VVFBVVF9ESVNQTEFZUE9SVCB8fCB0eXBlID09IElOVEVM X09VVFBVVF9FRFAgfHwgdHlwZSA9PSBJTlRFTF9PVVRQVVRfRFBfTVNUKSB7Cj4gKwkJV0FSTl9P Tih0cmFuc2NvZGVyX2lzX2RzaShjcHVfdHJhbnNjb2RlcikpOwo+ICsKPiAgCQl0ZW1wID0gVFJB TlNfTVNBX1NZTkNfQ0xLOwo+ICAJCXN3aXRjaCAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5waXBlX2Jw cCkgewo+ICAJCWNhc2UgMTg6Cj4gQEAgLTE5NDIsNiArMTk0NCwxMCBAQCB2b2lkIGludGVsX2Rk aV9nZXRfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJc3RydWN0IGlu dGVsX2hkbWkgKmludGVsX2hkbWk7Cj4gIAl1MzIgdGVtcCwgZmxhZ3MgPSAwOwo+ICAKPiArCS8q IFhYWDogRFNJIHRyYW5zY29kZXIgcGFyYW5vaWEgKi8KPiArCWlmIChXQVJOX09OKHRyYW5zY29k ZXJfaXNfZHNpKGNwdV90cmFuc2NvZGVyKSkpCj4gKwkJcmV0dXJuOwo+ICsKPiAgCXRlbXAgPSBJ OTE1X1JFQUQoVFJBTlNfRERJX0ZVTkNfQ1RMKGNwdV90cmFuc2NvZGVyKSk7Cj4gIAlpZiAodGVt cCAmIFRSQU5TX0RESV9QSFNZTkMpCj4gIAkJZmxhZ3MgfD0gRFJNX01PREVfRkxBR19QSFNZTkM7 Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IGluZGV4IDk4ZDhiNTYzYjlhMS4u MjhlYWQ2NmVkOTg3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBA IC00OTAwLDYgKzQ5MDAsNyBAQCBzdGF0aWMgdm9pZCBoYXN3ZWxsX2NydGNfZW5hYmxlKHN0cnVj dCBkcm1fY3J0YyAqY3J0YykKPiAgCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9f aW50ZWxfY3J0YyhjcnRjKTsKPiAgCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyOwo+ICAJ aW50IHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlLCBoc3dfd29ya2Fyb3VuZF9waXBlOwo+ICsJZW51 bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyID0gaW50ZWxfY3J0Yy0+Y29uZmlnLT5jcHVfdHJh bnNjb2RlcjsKPiAgCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZyA9Cj4gIAkJ dG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjLT5zdGF0ZSk7Cj4gIAo+IEBAIC00OTE2LDExICs0OTE3 LDE0IEBAIHN0YXRpYyB2b2lkIGhhc3dlbGxfY3J0Y19lbmFibGUoc3RydWN0IGRybV9jcnRjICpj cnRjKQo+ICAJaWYgKGludGVsX2NydGMtPmNvbmZpZy0+aGFzX2RwX2VuY29kZXIpCj4gIAkJaW50 ZWxfZHBfc2V0X21fbihpbnRlbF9jcnRjLCBNMV9OMSk7Cj4gIAo+IC0JaW50ZWxfc2V0X3BpcGVf dGltaW5ncyhpbnRlbF9jcnRjKTsKPiArCWlmICghaW50ZWxfY3J0Yy0+Y29uZmlnLT5oYXNfZHNp X2VuY29kZXIpCj4gKwkJaW50ZWxfc2V0X3BpcGVfdGltaW5ncyhpbnRlbF9jcnRjKTsKPiArCj4g IAlpbnRlbF9zZXRfcGlwZV9zcmNfc2l6ZShpbnRlbF9jcnRjKTsKPiAgCj4gLQlpZiAoaW50ZWxf Y3J0Yy0+Y29uZmlnLT5jcHVfdHJhbnNjb2RlciAhPSBUUkFOU0NPREVSX0VEUCkgewo+IC0JCUk5 MTVfV1JJVEUoUElQRV9NVUxUKGludGVsX2NydGMtPmNvbmZpZy0+Y3B1X3RyYW5zY29kZXIpLAo+ ICsJaWYgKGNwdV90cmFuc2NvZGVyICE9IFRSQU5TQ09ERVJfRURQICYmCj4gKwkgICAgIXRyYW5z Y29kZXJfaXNfZHNpKGNwdV90cmFuc2NvZGVyKSkgewo+ICsJCUk5MTVfV1JJVEUoUElQRV9NVUxU KGNwdV90cmFuc2NvZGVyKSwKPiAgCQkJICAgaW50ZWxfY3J0Yy0+Y29uZmlnLT5waXhlbF9tdWx0 aXBsaWVyIC0gMSk7Cj4gIAl9Cj4gIAo+IEBAIC00OTI5LDcgKzQ5MzMsOSBAQCBzdGF0aWMgdm9p ZCBoYXN3ZWxsX2NydGNfZW5hYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAgCQkJCSAgICAg JmludGVsX2NydGMtPmNvbmZpZy0+ZmRpX21fbiwgTlVMTCk7Cj4gIAl9Cj4gIAo+IC0JaGFzd2Vs bF9zZXRfcGlwZWNvbmYoY3J0Yyk7Cj4gKwlpZiAoIWludGVsX2NydGMtPmNvbmZpZy0+aGFzX2Rz aV9lbmNvZGVyKQo+ICsJCWhhc3dlbGxfc2V0X3BpcGVjb25mKGNydGMpOwo+ICsKPiAgCWhhc3dl bGxfc2V0X3BpcGVfZ2FtbWEoY3J0Yyk7Cj4gIAloYXN3ZWxsX3NldF9waXBlbWlzYyhjcnRjKTsK PiAgCj4gQEAgLTQ5NzIsNyArNDk3OCwxMCBAQCBzdGF0aWMgdm9pZCBoYXN3ZWxsX2NydGNfZW5h YmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAgCQlkZXZfcHJpdi0+ZGlzcGxheS5pbml0aWFs X3dhdGVybWFya3MocGlwZV9jb25maWcpOwo+ICAJZWxzZQo+ICAJCWludGVsX3VwZGF0ZV93YXRl cm1hcmtzKGNydGMpOwo+IC0JaW50ZWxfZW5hYmxlX3BpcGUoaW50ZWxfY3J0Yyk7Cj4gKwo+ICsJ LyogWFhYOiBEbyB0aGUgcGlwZSBhc3NlcnRpb25zIGF0IHRoZSByaWdodCBwbGFjZSBmb3IgQlhU IERTSS4gKi8KPiArCWlmICghaW50ZWxfY3J0Yy0+Y29uZmlnLT5oYXNfZHNpX2VuY29kZXIpCj4g KwkJaW50ZWxfZW5hYmxlX3BpcGUoaW50ZWxfY3J0Yyk7Cj4gIAo+ICAJaWYgKGludGVsX2NydGMt PmNvbmZpZy0+aGFzX3BjaF9lbmNvZGVyKQo+ICAJCWxwdF9wY2hfZW5hYmxlKGNydGMpOwo+IEBA IC01MTA1LDcgKzUxMTQsOSBAQCBzdGF0aWMgdm9pZCBoYXN3ZWxsX2NydGNfZGlzYWJsZShzdHJ1 Y3QgZHJtX2NydGMgKmNydGMpCj4gIAlkcm1fY3J0Y192Ymxhbmtfb2ZmKGNydGMpOwo+ICAJYXNz ZXJ0X3ZibGFua19kaXNhYmxlZChjcnRjKTsKPiAgCj4gLQlpbnRlbF9kaXNhYmxlX3BpcGUoaW50 ZWxfY3J0Yyk7Cj4gKwkvKiBYWFg6IERvIHRoZSBwaXBlIGFzc2VydGlvbnMgYXQgdGhlIHJpZ2h0 IHBsYWNlIGZvciBCWFQgRFNJLiAqLwo+ICsJaWYgKCFpbnRlbF9jcnRjLT5jb25maWctPmhhc19k c2lfZW5jb2RlcikKPiArCQlpbnRlbF9kaXNhYmxlX3BpcGUoaW50ZWxfY3J0Yyk7Cj4gIAo+ICAJ aWYgKGludGVsX2NydGMtPmNvbmZpZy0+ZHBfZW5jb2Rlcl9pc19tc3QpCj4gIAkJaW50ZWxfZGRp X3NldF92Y19wYXlsb2FkX2FsbG9jKGNydGMsIGZhbHNlKTsKPiBAQCAtOTk1Nyw2ICs5OTY4LDQ3 IEBAIHN0YXRpYyBib29sIGhzd19nZXRfdHJhbnNjb2Rlcl9zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YywKPiAgCXJldHVybiB0bXAgJiBQSVBFQ09ORl9FTkFCTEU7Cj4gIH0KPiAgCj4gK3N0 YXRpYyBib29sIGJ4dF9nZXRfZHNpX3RyYW5zY29kZXJfc3RhdGUoc3RydWN0IGludGVsX2NydGMg KmNydGMsCj4gKwkJCQkJIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKPiAr CQkJCQkgdW5zaWduZWQgbG9uZyAqcG93ZXJfZG9tYWluX21hc2spCj4gK3sKPiArCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gKwllbnVtIGludGVsX2Rpc3BsYXlf cG93ZXJfZG9tYWluIHBvd2VyX2RvbWFpbjsKPiArCWVudW0gcG9ydCBwb3J0Owo+ICsJZW51bSB0 cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyOwo+ICsJdTMyIHRtcDsKPiArCj4gKwlwaXBlX2NvbmZp Zy0+aGFzX2RzaV9lbmNvZGVyID0gZmFsc2U7Cj4gKwo+ICsJZm9yX2VhY2hfcG9ydF9tYXNrZWQo cG9ydCwgQklUKFBPUlRfQSkgfCBCSVQoUE9SVF9DKSkgewo+ICsJCWlmIChwb3J0ID09IFBPUlRf QSkKPiArCQkJY3B1X3RyYW5zY29kZXIgPSBUUkFOU0NPREVSX0RTSV9BOwo+ICsJCWVsc2UKPiAr CQkJY3B1X3RyYW5zY29kZXIgPSBUUkFOU0NPREVSX0RTSV9DOwo+ICsKPiArCQlwb3dlcl9kb21h aW4gPSBQT1dFUl9ET01BSU5fVFJBTlNDT0RFUihjcHVfdHJhbnNjb2Rlcik7Cj4gKwkJaWYgKCFp bnRlbF9kaXNwbGF5X3Bvd2VyX2dldF9pZl9lbmFibGVkKGRldl9wcml2LCBwb3dlcl9kb21haW4p KQo+ICsJCQljb250aW51ZTsKPiArCQkqcG93ZXJfZG9tYWluX21hc2sgfD0gQklUKHBvd2VyX2Rv bWFpbik7Cj4gKwo+ICsJCS8qIFhYWDogdGhpcyB3b3JrcyBmb3IgdmlkZW8gbW9kZSBvbmx5ICov Cj4gKwkJdG1wID0gSTkxNV9SRUFEKEJYVF9NSVBJX1BPUlRfQ1RSTChwb3J0KSk7Cj4gKwkJaWYg KCEodG1wICYgRFBJX0VOQUJMRSkpCj4gKwkJCWNvbnRpbnVlOwo+ICsKPiArCQl0bXAgPSBJOTE1 X1JFQUQoTUlQSV9DVFJMKHBvcnQpKTsKPiArCQlpZiAoKHRtcCAmIEJYVF9QSVBFX1NFTEVDVF9N QVNLKSAhPSBCWFRfUElQRV9TRUxFQ1QoY3J0Yy0+cGlwZSkpCj4gKwkJCWNvbnRpbnVlOwo+ICsK PiArCQlwaXBlX2NvbmZpZy0+Y3B1X3RyYW5zY29kZXIgPSBjcHVfdHJhbnNjb2RlcjsKPiArCQlw aXBlX2NvbmZpZy0+aGFzX2RzaV9lbmNvZGVyID0gdHJ1ZTsKPiArCQlicmVhazsKPiArCX0KPiAr Cj4gKwlyZXR1cm4gcGlwZV9jb25maWctPmhhc19kc2lfZW5jb2RlcjsKPiArfQo+ICsKPiAgc3Rh dGljIHZvaWQgaGFzd2VsbF9nZXRfZGRpX3BvcnRfc3RhdGUoc3RydWN0IGludGVsX2NydGMgKmNy dGMsCj4gIAkJCQkgICAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQo+ ICB7Cj4gQEAgLTEwMDE4LDEyICsxMDA3MCwyMiBAQCBzdGF0aWMgYm9vbCBoYXN3ZWxsX2dldF9w aXBlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiAgCj4gIAlhY3RpdmUgPSBoc3df Z2V0X3RyYW5zY29kZXJfc3RhdGUoY3J0YywgcGlwZV9jb25maWcsICZwb3dlcl9kb21haW5fbWFz ayk7Cj4gIAo+ICsJaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKSB7Cj4gKwkJYnh0X2dldF9kc2lf dHJhbnNjb2Rlcl9zdGF0ZShjcnRjLCBwaXBlX2NvbmZpZywKPiArCQkJCQkgICAgICZwb3dlcl9k b21haW5fbWFzayk7Cj4gKwkJV0FSTl9PTihhY3RpdmUgJiYgcGlwZV9jb25maWctPmhhc19kc2lf ZW5jb2Rlcik7CgpUaGUgd2FybiBjb3VsZCB1c2UgYSBzbWFsbCBjb21tZW50IHBlcmhhcHMsIGV4 cGxhaW5pbmcgdGhhdCBEU0kgYW5kIERESQp0cmFuc2NvZGVycyBzaG91bGRuJ3QgYmUgZW5hYmxl ZCBhdCB0aGUgc2FtZSB0aW1lLgoKQW55d2F5LCBwYXRjaCBsb29rcyBnb29kIHRvIG1lClJldmll d2VkLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgoK PiArCQlpZiAocGlwZV9jb25maWctPmhhc19kc2lfZW5jb2RlcikKPiArCQkJYWN0aXZlID0gdHJ1 ZTsKPiArCX0KPiArCj4gIAlpZiAoIWFjdGl2ZSkKPiAgCQlnb3RvIG91dDsKPiAgCj4gLQloYXN3 ZWxsX2dldF9kZGlfcG9ydF9zdGF0ZShjcnRjLCBwaXBlX2NvbmZpZyk7Cj4gKwlpZiAoIXBpcGVf Y29uZmlnLT5oYXNfZHNpX2VuY29kZXIpIHsKPiArCQloYXN3ZWxsX2dldF9kZGlfcG9ydF9zdGF0 ZShjcnRjLCBwaXBlX2NvbmZpZyk7Cj4gKwkJaW50ZWxfZ2V0X3BpcGVfdGltaW5ncyhjcnRjLCBw aXBlX2NvbmZpZyk7Cj4gKwl9Cj4gIAo+IC0JaW50ZWxfZ2V0X3BpcGVfdGltaW5ncyhjcnRjLCBw aXBlX2NvbmZpZyk7Cj4gIAlpbnRlbF9nZXRfcGlwZV9zcmNfc2l6ZShjcnRjLCBwaXBlX2NvbmZp Zyk7Cj4gIAo+ICAJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDkpIHsKPiBAQCAtMTAwNDgs NyArMTAxMTAsOCBAQCBzdGF0aWMgYm9vbCBoYXN3ZWxsX2dldF9waXBlX2NvbmZpZyhzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YywKPiAgCQlwaXBlX2NvbmZpZy0+aXBzX2VuYWJsZWQgPSBoc3dfY3J0 Y19zdXBwb3J0c19pcHMoY3J0YykgJiYKPiAgCQkJKEk5MTVfUkVBRChJUFNfQ1RMKSAmIElQU19F TkFCTEUpOwo+ICAKPiAtCWlmIChwaXBlX2NvbmZpZy0+Y3B1X3RyYW5zY29kZXIgIT0gVFJBTlND T0RFUl9FRFApIHsKPiArCWlmIChwaXBlX2NvbmZpZy0+Y3B1X3RyYW5zY29kZXIgIT0gVFJBTlND T0RFUl9FRFAgJiYKPiArCSAgICAhdHJhbnNjb2Rlcl9pc19kc2kocGlwZV9jb25maWctPmNwdV90 cmFuc2NvZGVyKSkgewo+ICAJCXBpcGVfY29uZmlnLT5waXhlbF9tdWx0aXBsaWVyID0KPiAgCQkJ STkxNV9SRUFEKFBJUEVfTVVMVChwaXBlX2NvbmZpZy0+Y3B1X3RyYW5zY29kZXIpKSArIDE7Cj4g IAl9IGVsc2Ugewo+IEBAIC0xNTUyMCwxMCArMTU1ODMsMTUgQEAgc3RhdGljIHZvaWQgaW50ZWxf c2FuaXRpemVfY3J0YyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKPiAgewo+ICAJc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9IGNydGMtPmJhc2UuZGV2Owo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAtCWk5MTVfcmVnX3QgcmVnID0gUElQ RUNPTkYoY3J0Yy0+Y29uZmlnLT5jcHVfdHJhbnNjb2Rlcik7Cj4gKwllbnVtIHRyYW5zY29kZXIg Y3B1X3RyYW5zY29kZXIgPSBjcnRjLT5jb25maWctPmNwdV90cmFuc2NvZGVyOwo+ICAKPiAgCS8q IENsZWFyIGFueSBmcmFtZSBzdGFydCBkZWxheXMgdXNlZCBmb3IgZGVidWdnaW5nIGxlZnQgYnkg dGhlIEJJT1MgKi8KPiAtCUk5MTVfV1JJVEUocmVnLCBJOTE1X1JFQUQocmVnKSAmIH5QSVBFQ09O Rl9GUkFNRV9TVEFSVF9ERUxBWV9NQVNLKTsKPiArCWlmICghdHJhbnNjb2Rlcl9pc19kc2koY3B1 X3RyYW5zY29kZXIpKSB7Cj4gKwkJaTkxNV9yZWdfdCByZWcgPSBQSVBFQ09ORihjcHVfdHJhbnNj b2Rlcik7Cj4gKwo+ICsJCUk5MTVfV1JJVEUocmVnLAo+ICsJCQkgICBJOTE1X1JFQUQocmVnKSAm IH5QSVBFQ09ORl9GUkFNRV9TVEFSVF9ERUxBWV9NQVNLKTsKPiArCX0KPiAgCj4gIAkvKiByZXN0 b3JlIHZibGFuayBpbnRlcnJ1cHRzIHRvIGNvcnJlY3Qgc3RhdGUgKi8KPiAgCWRybV9jcnRjX3Zi bGFua19yZXNldCgmY3J0Yy0+YmFzZSk7Cj4gQEAgLTE2MTk0LDYgKzE2MjYyLDcgQEAgaW50ZWxf ZGlzcGxheV9jYXB0dXJlX2Vycm9yX3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAkJ CWVycm9yLT5waXBlW2ldLnN0YXQgPSBJOTE1X1JFQUQoUElQRVNUQVQoaSkpOwo+ICAJfQo+ICAK PiArCS8qIE5vdGU6IHRoaXMgZG9lcyBub3QgaW5jbHVkZSBEU0kgdHJhbnNjb2RlcnMuICovCj4g IAllcnJvci0+bnVtX3RyYW5zY29kZXJzID0gSU5URUxfSU5GTyhkZXYpLT5udW1fcGlwZXM7Cj4g IAlpZiAoSEFTX0RESShkZXZfcHJpdi0+ZGV2KSkKPiAgCQllcnJvci0+bnVtX3RyYW5zY29kZXJz Kys7IC8qIEFjY291bnQgZm9yIGVEUC4gKi8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IGlu ZGV4IDUxMzZlZWZmYzI0ZS4uYmE0NTI0NWFkNmM4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmgKPiBAQCAtNDM3LDcgKzQzNyw4IEBAIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlIHsKPiAg CWJvb2wgaGFzX2luZm9mcmFtZTsKPiAgCj4gIAkvKiBDUFUgVHJhbnNjb2RlciBmb3IgdGhlIHBp cGUuIEN1cnJlbnRseSB0aGlzIGNhbiBvbmx5IGRpZmZlciBmcm9tIHRoZQo+IC0JICogcGlwZSBv biBIYXN3ZWxsICh3aGVyZSB3ZSBoYXZlIGEgc3BlY2lhbCBlRFAgdHJhbnNjb2RlcikuICovCj4g KwkgKiBwaXBlIG9uIEhhc3dlbGwgYW5kIGxhdGVyICh3aGVyZSB3ZSBoYXZlIGEgc3BlY2lhbCBl RFAgdHJhbnNjb2RlcikKPiArCSAqIGFuZCBCcm94dG9uICh3aGVyZSB3ZSBoYXZlIHNwZWNpYWwg RFNJIHRyYW5zY29kZXJzKS4gKi8KPiAgCWVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2RlcjsK PiAgCj4gIAkvKgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2ku YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jCj4gaW5kZXggMzU2MmJmMzM3ZTYy Li4xOTgxMjEyZmZjOGQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHNpLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYwo+IEBAIC0yNjgs NiArMjY4LDcgQEAgc3RhdGljIGlubGluZSBib29sIGlzX2NtZF9tb2RlKHN0cnVjdCBpbnRlbF9k c2kgKmludGVsX2RzaSkKPiAgc3RhdGljIGJvb2wgaW50ZWxfZHNpX2NvbXB1dGVfY29uZmlnKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCQkJICAgICBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqcGlwZV9jb25maWcpCj4gIHsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IGVuY29kZXItPmJhc2UuZGV2LT5kZXZfcHJpdmF0ZTsKPiAgCXN0cnVjdCBpbnRl bF9kc2kgKmludGVsX2RzaSA9IGNvbnRhaW5lcl9vZihlbmNvZGVyLCBzdHJ1Y3QgaW50ZWxfZHNp LAo+ICAJCQkJCQkgICBiYXNlKTsKPiAgCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nv bm5lY3RvciA9IGludGVsX2RzaS0+YXR0YWNoZWRfY29ubmVjdG9yOwo+IEBAIC0yODQsNiArMjg1 LDE0IEBAIHN0YXRpYyBib29sIGludGVsX2RzaV9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKPiAgCS8qIERTSSB1c2VzIHNob3J0IHBhY2tldHMgZm9yIHN5bmMg ZXZlbnRzLCBzbyBjbGVhciBtb2RlIGZsYWdzIGZvciBEU0kgKi8KPiAgCWFkanVzdGVkX21vZGUt PmZsYWdzID0gMDsKPiAgCj4gKwlpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpIHsKPiArCQkvKiBE dWFsIGxpbmsgZ29lcyB0byBEU0kgdHJhbnNjb2RlciBBLiAqLwo+ICsJCWlmIChpbnRlbF9kc2kt PnBvcnRzID09IEJJVChQT1JUX0MpKQo+ICsJCQlwaXBlX2NvbmZpZy0+Y3B1X3RyYW5zY29kZXIg PSBUUkFOU0NPREVSX0RTSV9DOwo+ICsJCWVsc2UKPiArCQkJcGlwZV9jb25maWctPmNwdV90cmFu c2NvZGVyID0gVFJBTlNDT0RFUl9EU0lfQTsKPiArCX0KPiArCj4gIAlyZXR1cm4gdHJ1ZTsKPiAg fQo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9w bS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jCj4gaW5kZXggMmU4 OGE1ZTA2ODg0Li5kMTg5YTAwMTIyNzcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcnVudGltZV9wbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cnVudGltZV9wbS5jCj4gQEAgLTg5LDYgKzg5LDEwIEBAIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9t YWluX3N0cihlbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluIGRvbWFpbikKPiAgCQlyZXR1 cm4gIlRSQU5TQ09ERVJfQyI7Cj4gIAljYXNlIFBPV0VSX0RPTUFJTl9UUkFOU0NPREVSX0VEUDoK PiAgCQlyZXR1cm4gIlRSQU5TQ09ERVJfRURQIjsKPiArCWNhc2UgUE9XRVJfRE9NQUlOX1RSQU5T Q09ERVJfRFNJX0E6Cj4gKwkJcmV0dXJuICJUUkFOU0NPREVSX0RTSV9BIjsKPiArCWNhc2UgUE9X RVJfRE9NQUlOX1RSQU5TQ09ERVJfRFNJX0M6Cj4gKwkJcmV0dXJuICJUUkFOU0NPREVSX0RTSV9D IjsKPiAgCWNhc2UgUE9XRVJfRE9NQUlOX1BPUlRfRERJX0FfTEFORVM6Cj4gIAkJcmV0dXJuICJQ T1JUX0RESV9BX0xBTkVTIjsKPiAgCWNhc2UgUE9XRVJfRE9NQUlOX1BPUlRfRERJX0JfTEFORVM6 Cj4gQEAgLTQxOSw2ICs0MjMsOCBAQCBzdGF0aWMgdm9pZCBoc3dfc2V0X3Bvd2VyX3dlbGwoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJQlhUX0RJU1BMQVlfUE9XRVJXRUxM XzJfUE9XRVJfRE9NQUlOUyB8CQlcCj4gIAlCSVQoUE9XRVJfRE9NQUlOX1BJUEVfQSkgfAkJCVwK PiAgCUJJVChQT1dFUl9ET01BSU5fVFJBTlNDT0RFUl9FRFApIHwJCVwKPiArCUJJVChQT1dFUl9E T01BSU5fVFJBTlNDT0RFUl9EU0lfQSkgfAkJXAo+ICsJQklUKFBPV0VSX0RPTUFJTl9UUkFOU0NP REVSX0RTSV9DKSB8CQlcCj4gIAlCSVQoUE9XRVJfRE9NQUlOX1BJUEVfQV9QQU5FTF9GSVRURVIp IHwJCVwKPiAgCUJJVChQT1dFUl9ET01BSU5fUE9SVF9ERElfQV9MQU5FUykgfAkJXAo+ICAJQklU KFBPV0VSX0RPTUFJTl9QT1JUX0RTSSkgfAkJCVwKPiAtLSAKPiAyLjEuNAoKLS0gClZpbGxlIFN5 cmrDpGzDpApJbnRlbCBPVEMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4Cg==