From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [RFC PATCH 08/10] drm/i915/bxt: add dsi transcoders Date: Wed, 16 Mar 2016 17:24:54 +0200 Message-ID: <20160316152454.GM4329@intel.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id AE06E6E96D for ; Wed, 16 Mar 2016 15:25:12 +0000 (UTC) Content-Disposition: inline In-Reply-To: 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 T24gVHVlLCBNYXIgMTUsIDIwMTYgYXQgMDk6NTE6MTZQTSArMDIwMCwgSmFuaSBOaWt1bGEgd3Jv dGU6Cj4gVGhlIEJYVCBkaXNwbGF5IGNvbm5lY3Rpb25zIGhhdmUgRFNJIHRyYW5zY29kZXJzIEEg YW5kIEMgdGhhdCBjYW4gYmUKPiBtdXhlZCB0byBhbnkgcGlwZSwgbm90IHVubGlrZSB0aGUgZURQ IHRyYW5zY29kZXIuIEFkZCB0aGUgbm90aW9uIG9mIERTSQo+IHRyYW5zY29kZXJzLgo+IAo+IFRo ZSAibm9ybWFsIiB0cmFuc2NvZGVycyBBLCBCIGFuZCBDIGFyZSBub3QgdXNlZCB3aXRoIEJYVCBE U0ksIHNvIGNhcmUKPiBtdXN0IGJlIHRha2VuIHRvIGF2b2lkIGFjY2Vzc2luZyB0aG9zZSByZWdp c3RlcnMgd2l0aCBEU0kgdHJhbnNjb2RlcnMgaW4KPiB0aGUgaGFyZHdhcmUgc3RhdGUgcmVhZG91 dCwgbW9kZXNldCwgYW5kIGdlbmVyYWxseSBldmVyeXdoZXJlLgo+IAo+IFNpZ25lZC1vZmYtYnk6 IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBpbnRlbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICB8IDEwICsrKysKPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGRpLmMgICAgICAgIHwgIDYgKysrCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYyAgICB8IDkwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0t LQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgICAgfCAgMyArLQo+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYyAgICAgICAgfCAgOSArKysrCj4gIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYyB8ICA2ICsrKwo+ICA2IGZpbGVzIGNo YW5nZWQsIDExMiBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmgKPiBpbmRleCA1ZTRhNDJkOTk2ZDguLjBkZGQwZjQ5MmNhOSAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaAo+IEBAIC0xMjMsNiArMTIzLDggQEAgZW51bSB0cmFuc2NvZGVy IHsKPiAgCVRSQU5TQ09ERVJfQiwKPiAgCVRSQU5TQ09ERVJfQywKPiAgCVRSQU5TQ09ERVJfRURQ LAo+ICsJVFJBTlNDT0RFUl9EU0lfQSwKPiArCVRSQU5TQ09ERVJfRFNJX0MsCj4gIAlJOTE1X01B WF9UUkFOU0NPREVSUwo+ICB9Owo+ICAKPiBAQCAtMTM3LDExICsxMzksMTcgQEAgc3RhdGljIGlu bGluZSBjb25zdCBjaGFyICp0cmFuc2NvZGVyX25hbWUoZW51bSB0cmFuc2NvZGVyIHRyYW5zY29k ZXIpCj4gIAkJcmV0dXJuICJDIjsKPiAgCWNhc2UgVFJBTlNDT0RFUl9FRFA6Cj4gIAkJcmV0dXJu ICJlRFAiOwo+ICsJY2FzZSBUUkFOU0NPREVSX0RTSV9BOgo+ICsJCXJldHVybiAiRFNJIEEiOwo+ ICsJY2FzZSBUUkFOU0NPREVSX0RTSV9DOgo+ICsJCXJldHVybiAiRFNJIEMiOwo+ICAJZGVmYXVs dDoKPiAgCQlyZXR1cm4gIjxpbnZhbGlkPiI7Cj4gIAl9Cj4gIH0KPiAgCj4gKyNkZWZpbmUgSVNf RFNJX1RSQU5TQ09ERVIodCkgKCh0KSA9PSBUUkFOU0NPREVSX0RTSV9BIHx8ICh0KSA9PSBUUkFO U0NPREVSX0RTSV9DKQo+ICsKPiAgLyoKPiAgICogSTkxNV9NQVhfUExBTkVTIGluIHRoZSBlbnVt IGJlbG93IGlzIHRoZSBtYXhpbXVtIChhY3Jvc3MgYWxsIHBsYXRmb3JtcykKPiAgICogbnVtYmVy IG9mIHBsYW5lcyBwZXIgQ1JUQy4gIE5vdCBhbGwgcGxhdGZvcm1zIHJlYWxseSBoYXZlIHRoaXMg bWFueSBwbGFuZXMsCj4gQEAgLTE5Miw2ICsyMDAsOCBAQCBlbnVtIGludGVsX2Rpc3BsYXlfcG93 ZXJfZG9tYWluIHsKPiAgCVBPV0VSX0RPTUFJTl9UUkFOU0NPREVSX0IsCj4gIAlQT1dFUl9ET01B SU5fVFJBTlNDT0RFUl9DLAo+ICAJUE9XRVJfRE9NQUlOX1RSQU5TQ09ERVJfRURQLAo+ICsJUE9X RVJfRE9NQUlOX1RSQU5TQ09ERVJfRFNJX0EsCj4gKwlQT1dFUl9ET01BSU5fVFJBTlNDT0RFUl9E U0lfQywKPiAgCVBPV0VSX0RPTUFJTl9QT1JUX0RESV9BX0xBTkVTLAo+ICAJUE9XRVJfRE9NQUlO X1BPUlRfRERJX0JfTEFORVMsCj4gIAlQT1dFUl9ET01BSU5fUE9SVF9ERElfQ19MQU5FUywKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+IGluZGV4IDkxNjU0ZmZjM2E0Mi4uODcyNjcxMTg2NGVi IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiBAQCAtMTA2MSw2ICsxMDYxLDggQEAg dm9pZCBpbnRlbF9kZGlfc2V0X3BpcGVfc2V0dGluZ3Moc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ ICAJdWludDMyX3QgdGVtcDsKPiAgCj4gIAlpZiAodHlwZSA9PSBJTlRFTF9PVVRQVVRfRElTUExB WVBPUlQgfHwgdHlwZSA9PSBJTlRFTF9PVVRQVVRfRURQIHx8IHR5cGUgPT0gSU5URUxfT1VUUFVU X0RQX01TVCkgewo+ICsJCVdBUk5fT04oSVNfRFNJX1RSQU5TQ09ERVIoY3B1X3RyYW5zY29kZXIp KTsKClRoYXQgYWxsIGNhcHMgSVNfRFNJX1RSQU5TQ09ERVIgZG9lc24ndCByZWFsbHkgYWdyZWUg d2l0aCBtZSBmb3Igc29tZQpyZWFzb24uIHN0YXRpYyBpbmxpbmUgd2l0aCBsb3dlciBjYXBzIG5h bWUgbWF5YmU/Cgo+ICsKPiAgCQl0ZW1wID0gVFJBTlNfTVNBX1NZTkNfQ0xLOwo+ICAJCXN3aXRj aCAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5waXBlX2JwcCkgewo+ICAJCWNhc2UgMTg6Cj4gQEAgLTE5 NDIsNiArMTk0NCwxMCBAQCB2b2lkIGludGVsX2RkaV9nZXRfY29uZmlnKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyLAo+ICAJc3RydWN0IGludGVsX2hkbWkgKmludGVsX2hkbWk7Cj4gIAl1 MzIgdGVtcCwgZmxhZ3MgPSAwOwo+ICAKPiArCS8qIFhYWDogRFNJIHRyYW5zY29kZXIgcGFyYW5v aWEgKi8KPiArCWlmIChXQVJOX09OKElTX0RTSV9UUkFOU0NPREVSKGNwdV90cmFuc2NvZGVyKSkp Cj4gKwkJcmV0dXJuOwo+ICsKPiAgCXRlbXAgPSBJOTE1X1JFQUQoVFJBTlNfRERJX0ZVTkNfQ1RM KGNwdV90cmFuc2NvZGVyKSk7Cj4gIAlpZiAodGVtcCAmIFRSQU5TX0RESV9QSFNZTkMpCj4gIAkJ ZmxhZ3MgfD0gRFJNX01PREVfRkxBR19QSFNZTkM7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYwo+IGluZGV4IDg0MjQ2NzUyODg5Mi4uZjFkMGE4NjhlODBjIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC00OTA2LDcgKzQ5MDYsNyBAQCBzdGF0aWMg dm9pZCBoYXN3ZWxsX2NydGNfZW5hYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAgCj4gIAlp bnRlbF9zZXRfcGlwZV90aW1pbmdzKGludGVsX2NydGMpOwo+ICAKPiAtCWlmIChpbnRlbF9jcnRj LT5jb25maWctPmNwdV90cmFuc2NvZGVyICE9IFRSQU5TQ09ERVJfRURQKSB7Cj4gKwlpZiAoaW50 ZWxfY3J0Yy0+Y29uZmlnLT5jcHVfdHJhbnNjb2RlciA8IFRSQU5TQ09ERVJfRURQKSB7Cj4gIAkJ STkxNV9XUklURShQSVBFX01VTFQoaW50ZWxfY3J0Yy0+Y29uZmlnLT5jcHVfdHJhbnNjb2Rlciks Cj4gIAkJCSAgIGludGVsX2NydGMtPmNvbmZpZy0+cGl4ZWxfbXVsdGlwbGllciAtIDEpOwo+ICAJ fQo+IEBAIC00OTU3LDcgKzQ5NTcsMTAgQEAgc3RhdGljIHZvaWQgaGFzd2VsbF9jcnRjX2VuYWJs ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIAkJZGV2X3ByaXYtPmRpc3BsYXkuaW5pdGlhbF93 YXRlcm1hcmtzKHBpcGVfY29uZmlnKTsKPiAgCWVsc2UKPiAgCQlpbnRlbF91cGRhdGVfd2F0ZXJt YXJrcyhjcnRjKTsKPiAtCWludGVsX2VuYWJsZV9waXBlKGludGVsX2NydGMpOwo+ICsKPiArCS8q IFhYWDogRG8gdGhlIHBpcGUgYXNzZXJ0aW9ucyBhdCB0aGUgcmlnaHQgcGxhY2UgZm9yIEJYVCBE U0kuICovCj4gKwlpZiAoIWludGVsX2NydGMtPmNvbmZpZy0+aGFzX2RzaV9lbmNvZGVyKQo+ICsJ CWludGVsX2VuYWJsZV9waXBlKGludGVsX2NydGMpOwo+ICAKPiAgCWlmIChpbnRlbF9jcnRjLT5j b25maWctPmhhc19wY2hfZW5jb2RlcikKPiAgCQlscHRfcGNoX2VuYWJsZShjcnRjKTsKPiBAQCAt NTA5MCw3ICs1MDkzLDkgQEAgc3RhdGljIHZvaWQgaGFzd2VsbF9jcnRjX2Rpc2FibGUoc3RydWN0 IGRybV9jcnRjICpjcnRjKQo+ICAJZHJtX2NydGNfdmJsYW5rX29mZihjcnRjKTsKPiAgCWFzc2Vy dF92YmxhbmtfZGlzYWJsZWQoY3J0Yyk7Cj4gIAo+IC0JaW50ZWxfZGlzYWJsZV9waXBlKGludGVs X2NydGMpOwo+ICsJLyogWFhYOiBEbyB0aGUgcGlwZSBhc3NlcnRpb25zIGF0IHRoZSByaWdodCBw bGFjZSBmb3IgQlhUIERTSS4gKi8KPiArCWlmICghaW50ZWxfY3J0Yy0+Y29uZmlnLT5oYXNfZHNp X2VuY29kZXIpCj4gKwkJaW50ZWxfZGlzYWJsZV9waXBlKGludGVsX2NydGMpOwo+ICAKPiAgCWlm IChpbnRlbF9jcnRjLT5jb25maWctPmRwX2VuY29kZXJfaXNfbXN0KQo+ICAJCWludGVsX2RkaV9z ZXRfdmNfcGF5bG9hZF9hbGxvYyhjcnRjLCBmYWxzZSk7Cj4gQEAgLTc3MDcsNyArNzcxMiw4IEBA IHN0YXRpYyB2b2lkIGludGVsX3NldF9waXBlX3RpbWluZ3Moc3RydWN0IGludGVsX2NydGMgKmlu dGVsX2NydGMpCj4gIAllbnVtIHBpcGUgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7Cj4gIAllbnVt IHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIgPSBpbnRlbF9jcnRjLT5jb25maWctPmNwdV90cmFu c2NvZGVyOwo+ICAKPiAtCWludGVsX3NldF90cmFuc190aW1pbmdzKGludGVsX2NydGMpOwo+ICsJ aWYgKCFJU19EU0lfVFJBTlNDT0RFUihjcHVfdHJhbnNjb2RlcikpCj4gKwkJaW50ZWxfc2V0X3Ry YW5zX3RpbWluZ3MoaW50ZWxfY3J0Yyk7CgpJIHRoaW5rIHdlIHNob3VsZCBwdXQgYWxsIHRoZSBE U0kgY2hlY2tzIHRvIHRoZSB0b3AgbGV2ZWwKLmNydGNfZW5hYmxlL2Rpc2FibGUgaG9va3MuIFdp bGwgbmVlZCB0byBkbyB0aGUgZnVuY3Rpb24gc3BsaXR0aW5nIGEgYml0CmRpZmZlcmVudGx5IHBl cmhhcHMsIGJ1dCBJJ3ZlIGFscmVhZHkgY29tbWVudGVkIG9uIHRob3NlLiBUaGUgbWFpbgpiZW5l Zml0IHdvdWxkIGJlIGEgbW9yZSBpbW1lZGlhdGUgdmlldyBvbiB0aGUgbW9kZXNldCBzZXF1ZW5j ZSB3aXRob3V0CmhhdmluZyB0byBnbyB0aHJvdWdoIGFsbCB0aGUgZnVuY3Rpb25zIHRoYXQgZ2V0 IGNhbGxlZC4gQWxzbyBJIHdvdWxkCmV4cGVjdCBpdCB3b3VsZCB0aGVuIGJlIGVhc2llciB0byBz dGFydCBzaGlmdGluZyBzdHVmZiBpbnRvIHRoZSBlbmNvZGVyCmhvb2tzIGlmIHdlIGNob29zZSB0 byBnbyB0aGF0IHJvdXRlLgoKPiAgCj4gIAkvKiBXb3JrYXJvdW5kOiB3aGVuIHRoZSBFRFAgaW5w dXQgc2VsZWN0aW9uIGlzIEIsIHRoZSBWVE9UQUxfQiBtdXN0IGJlCj4gIAkgKiBwcm9ncmFtbWVk IHdpdGggdGhlIFZUT1RBTF9FRFAgdmFsdWUuIFNhbWUgZm9yIFZUT1RBTF9DLiBUaGlzIGlzCj4g QEAgLTc3NjUsOSArNzc3MSwxMSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9nZXRfcGlwZV90aW1pbmdz KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gY3J0Yy0+YmFzZS5kZXY7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSBkZXYtPmRldl9wcml2YXRlOwo+ICsJZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyID0g cGlwZV9jb25maWctPmNwdV90cmFuc2NvZGVyOwo+ICAJdWludDMyX3QgdG1wOwo+ICAKPiAtCWlu dGVsX2dldF90cmFuc190aW1pbmdzKGNydGMsIHBpcGVfY29uZmlnKTsKPiArCWlmICghSVNfRFNJ X1RSQU5TQ09ERVIoY3B1X3RyYW5zY29kZXIpKQo+ICsJCWludGVsX2dldF90cmFuc190aW1pbmdz KGNydGMsIHBpcGVfY29uZmlnKTsKPiAgCj4gIAl0bXAgPSBJOTE1X1JFQUQoUElQRVNSQyhjcnRj LT5waXBlKSk7Cj4gIAlwaXBlX2NvbmZpZy0+cGlwZV9zcmNfaCA9ICh0bXAgJiAweGZmZmYpICsg MTsKPiBAQCAtODc3Niw5ICs4Nzg0LDExIEBAIHN0YXRpYyB2b2lkIGhhc3dlbGxfc2V0X3BpcGVj b25mKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxf Y3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Cj4gIAllbnVtIHBpcGUgcGlwZSA9IGludGVsX2Ny dGMtPnBpcGU7Cj4gKwllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIgPSBpbnRlbF9jcnRj LT5jb25maWctPmNwdV90cmFuc2NvZGVyOwo+ICAJdTMyIHZhbDsKPiAgCj4gLQloYXN3ZWxsX3Nl dF90cmFuc2NvbmYoY3J0Yyk7Cj4gKwlpZiAoIUlTX0RTSV9UUkFOU0NPREVSKGNwdV90cmFuc2Nv ZGVyKSkKPiArCQloYXN3ZWxsX3NldF90cmFuc2NvbmYoY3J0Yyk7Cj4gIAo+ICAJSTkxNV9XUklU RShHQU1NQV9NT0RFKGludGVsX2NydGMtPnBpcGUpLCBHQU1NQV9NT0RFX01PREVfOEJJVCk7Cj4g IAlQT1NUSU5HX1JFQUQoR0FNTUFfTU9ERShpbnRlbF9jcnRjLT5waXBlKSk7Cj4gQEAgLTk5MzYs NiArOTk0Niw0NyBAQCBzdGF0aWMgYm9vbCBoc3dfZ2V0X3RyYW5zX2NvbmZpZyhzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YywKPiAgCXJldHVybiB0bXAgJiBQSVBFQ09ORl9FTkFCTEU7Cj4gIH0KPiAg Cj4gK3N0YXRpYyBib29sIGJ4dF9nZXRfZHNpX3RyYW5zX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YywKPiArCQkJCSAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmln LAo+ICsJCQkJICAgICB1bnNpZ25lZCBsb25nICpwb3dlcl9kb21haW5fbWFzaykKPiArewo+ICsJ c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmJhc2UuZGV2Owo+ICsJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiArCWVudW0gaW50ZWxf ZGlzcGxheV9wb3dlcl9kb21haW4gcG93ZXJfZG9tYWluOwo+ICsJZW51bSBwb3J0IHBvcnQ7Cj4g KwllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXI7Cj4gKwl1MzIgdG1wOwo+ICsKPiArCXBp cGVfY29uZmlnLT5oYXNfZHNpX2VuY29kZXIgPSBmYWxzZTsKPiArCj4gKwlmb3JfZWFjaF9wb3J0 X21hc2tlZChwb3J0LCBCSVQoUE9SVF9BKSB8IEJJVChQT1JUX0MpKSB7Cj4gKwkJaWYgKHBvcnQg PT0gUE9SVF9BKQo+ICsJCQljcHVfdHJhbnNjb2RlciA9IFRSQU5TQ09ERVJfRFNJX0E7Cj4gKwkJ ZWxzZQo+ICsJCQljcHVfdHJhbnNjb2RlciA9IFRSQU5TQ09ERVJfRFNJX0M7Cj4gKwo+ICsJCXBv d2VyX2RvbWFpbiA9IFBPV0VSX0RPTUFJTl9UUkFOU0NPREVSKGNwdV90cmFuc2NvZGVyKTsKPiAr CQlpZiAoIWludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0X2lmX2VuYWJsZWQoZGV2X3ByaXYsIHBvd2Vy X2RvbWFpbikpCj4gKwkJCWNvbnRpbnVlOwo+ICsJCSpwb3dlcl9kb21haW5fbWFzayB8PSBCSVQo cG93ZXJfZG9tYWluKTsKPiArCj4gKwkJLyogWFhYOiB0aGlzIHdvcmtzIGZvciB2aWRlbyBtb2Rl IG9ubHkgKi8KPiArCQl0bXAgPSBJOTE1X1JFQUQoQlhUX01JUElfUE9SVF9DVFJMKHBvcnQpKTsK PiArCQlpZiAoISh0bXAgJiBEUElfRU5BQkxFKSkKPiArCQkJY29udGludWU7Cj4gKwo+ICsJCXRt cCA9IEk5MTVfUkVBRChNSVBJX0NUUkwocG9ydCkpOwo+ICsJCWlmICgodG1wICYgQlhUX1BJUEVf U0VMRUNUX01BU0spICE9IEJYVF9QSVBFX1NFTEVDVChjcnRjLT5waXBlKSkKPiArCQkJY29udGlu dWU7Cj4gKwo+ICsJCXBpcGVfY29uZmlnLT5jcHVfdHJhbnNjb2RlciA9IGNwdV90cmFuc2NvZGVy Owo+ICsJCXBpcGVfY29uZmlnLT5oYXNfZHNpX2VuY29kZXIgPSB0cnVlOwo+ICsJCWJyZWFrOwo+ ICsJfQo+ICsKPiArCXJldHVybiBwaXBlX2NvbmZpZy0+aGFzX2RzaV9lbmNvZGVyOwo+ICt9Cj4g Kwo+ICBzdGF0aWMgdm9pZCBoYXN3ZWxsX2dldF9kZGlfcG9ydF9zdGF0ZShzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YywKPiAgCQkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9j b25maWcpCj4gIHsKPiBAQCAtOTk5NywxMCArMTAwNDgsMTggQEAgc3RhdGljIGJvb2wgaGFzd2Vs bF9nZXRfcGlwZV9jb25maWcoc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gIAo+ICAJYWN0aXZl ID0gaHN3X2dldF90cmFuc19jb25maWcoY3J0YywgcGlwZV9jb25maWcsICZwb3dlcl9kb21haW5f bWFzayk7Cj4gIAo+ICsJaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKSB7Cj4gKwkJYnh0X2dldF9k c2lfdHJhbnNfY29uZmlnKGNydGMsIHBpcGVfY29uZmlnLCAmcG93ZXJfZG9tYWluX21hc2spOwo+ ICsJCVdBUk5fT04oYWN0aXZlICYmIHBpcGVfY29uZmlnLT5oYXNfZHNpX2VuY29kZXIpOwo+ICsJ CWlmIChwaXBlX2NvbmZpZy0+aGFzX2RzaV9lbmNvZGVyKQo+ICsJCQlhY3RpdmUgPSB0cnVlOwo+ ICsJfQo+ICsKPiAgCWlmICghYWN0aXZlKQo+ICAJCWdvdG8gb3V0Owo+ICAKPiAtCWhhc3dlbGxf Z2V0X2RkaV9wb3J0X3N0YXRlKGNydGMsIHBpcGVfY29uZmlnKTsKPiArCWlmICghcGlwZV9jb25m aWctPmhhc19kc2lfZW5jb2RlcikKPiArCQloYXN3ZWxsX2dldF9kZGlfcG9ydF9zdGF0ZShjcnRj LCBwaXBlX2NvbmZpZyk7Cj4gIAo+ICAJaW50ZWxfZ2V0X3BpcGVfdGltaW5ncyhjcnRjLCBwaXBl X2NvbmZpZyk7Cj4gIAo+IEBAIC0xMDAyNiw3ICsxMDA4NSw3IEBAIHN0YXRpYyBib29sIGhhc3dl bGxfZ2V0X3BpcGVfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICAJCXBpcGVfY29u ZmlnLT5pcHNfZW5hYmxlZCA9IGhzd19jcnRjX3N1cHBvcnRzX2lwcyhjcnRjKSAmJgo+ICAJCQko STkxNV9SRUFEKElQU19DVEwpICYgSVBTX0VOQUJMRSk7Cj4gIAo+IC0JaWYgKHBpcGVfY29uZmln LT5jcHVfdHJhbnNjb2RlciAhPSBUUkFOU0NPREVSX0VEUCkgewo+ICsJaWYgKHBpcGVfY29uZmln LT5jcHVfdHJhbnNjb2RlciA8IFRSQU5TQ09ERVJfRURQKSB7Cj4gIAkJcGlwZV9jb25maWctPnBp eGVsX211bHRpcGxpZXIgPQo+ICAJCQlJOTE1X1JFQUQoUElQRV9NVUxUKHBpcGVfY29uZmlnLT5j cHVfdHJhbnNjb2RlcikpICsgMTsKPiAgCX0gZWxzZSB7Cj4gQEAgLTE1NTE2LDEwICsxNTU3NSwx OCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9zYW5pdGl6ZV9jcnRjKHN0cnVjdCBpbnRlbF9jcnRjICpj cnRjKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7Cj4g IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ IC0JaTkxNV9yZWdfdCByZWcgPSBQSVBFQ09ORihjcnRjLT5jb25maWctPmNwdV90cmFuc2NvZGVy KTsKPiArCWVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2RlciA9IGNydGMtPmNvbmZpZy0+Y3B1 X3RyYW5zY29kZXI7Cj4gIAo+IC0JLyogQ2xlYXIgYW55IGZyYW1lIHN0YXJ0IGRlbGF5cyB1c2Vk IGZvciBkZWJ1Z2dpbmcgbGVmdCBieSB0aGUgQklPUyAqLwo+IC0JSTkxNV9XUklURShyZWcsIEk5 MTVfUkVBRChyZWcpICYgflBJUEVDT05GX0ZSQU1FX1NUQVJUX0RFTEFZX01BU0spOwo+ICsJaWYg KCFJU19EU0lfVFJBTlNDT0RFUihjcHVfdHJhbnNjb2RlcikpIHsKPiArCQlpOTE1X3JlZ190IHJl ZyA9IFBJUEVDT05GKGNwdV90cmFuc2NvZGVyKTsKPiArCj4gKwkJLyoKPiArCQkgKiBDbGVhciBh bnkgZnJhbWUgc3RhcnQgZGVsYXlzIHVzZWQgZm9yIGRlYnVnZ2luZyBsZWZ0IGJ5IHRoZQo+ICsJ CSAqIEJJT1MuCj4gKwkJICovCj4gKwkJSTkxNV9XUklURShyZWcsCj4gKwkJCSAgIEk5MTVfUkVB RChyZWcpICYgflBJUEVDT05GX0ZSQU1FX1NUQVJUX0RFTEFZX01BU0spOwo+ICsJfQo+ICAKPiAg CS8qIHJlc3RvcmUgdmJsYW5rIGludGVycnVwdHMgdG8gY29ycmVjdCBzdGF0ZSAqLwo+ICAJZHJt X2NydGNfdmJsYW5rX3Jlc2V0KCZjcnRjLT5iYXNlKTsKPiBAQCAtMTYxOTUsNiArMTYyNjIsNyBA QCBpbnRlbF9kaXNwbGF5X2NhcHR1cmVfZXJyb3Jfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRl dikKPiAgCQkJZXJyb3ItPnBpcGVbaV0uc3RhdCA9IEk5MTVfUkVBRChQSVBFU1RBVChpKSk7Cj4g IAl9Cj4gIAo+ICsJLyogTm90ZTogdGhpcyBkb2VzIG5vdCBpbmNsdWRlIERTSSB0cmFuc2NvZGVy cy4gKi8KPiAgCWVycm9yLT5udW1fdHJhbnNjb2RlcnMgPSBJTlRFTF9JTkZPKGRldiktPm51bV9w aXBlczsKPiAgCWlmIChIQVNfRERJKGRldl9wcml2LT5kZXYpKQo+ICAJCWVycm9yLT5udW1fdHJh bnNjb2RlcnMrKzsgLyogQWNjb3VudCBmb3IgZURQLiAqLwo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Ry di5oCj4gaW5kZXggMDJiM2QyMjg2MmExLi42ZThjMTM4NjEyOWUgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcnYuaAo+IEBAIC00MzYsNyArNDM2LDggQEAgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgewo+ICAJYm9vbCBoYXNfaW5mb2ZyYW1lOwo+ICAKPiAgCS8qIENQVSBUcmFuc2NvZGVyIGZv ciB0aGUgcGlwZS4gQ3VycmVudGx5IHRoaXMgY2FuIG9ubHkgZGlmZmVyIGZyb20gdGhlCj4gLQkg KiBwaXBlIG9uIEhhc3dlbGwgKHdoZXJlIHdlIGhhdmUgYSBzcGVjaWFsIGVEUCB0cmFuc2NvZGVy KS4gKi8KPiArCSAqIHBpcGUgb24gSGFzd2VsbCBhbmQgbGF0ZXIgKHdoZXJlIHdlIGhhdmUgYSBz cGVjaWFsIGVEUCB0cmFuc2NvZGVyKQo+ICsJICogYW5kIEJyb3h0b24gKHdoZXJlIHdlIGhhdmUg c3BlY2lhbCBEU0kgdHJhbnNjb2RlcnMpLiAqLwo+ICAJZW51bSB0cmFuc2NvZGVyIGNwdV90cmFu c2NvZGVyOwo+ICAKPiAgCS8qCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RzaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMKPiBpbmRleCA3M2Mx NTIxMGZkYjEuLjQ3ZmQwMjk2YTA1YSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kc2kuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jCj4g QEAgLTI2OCw2ICsyNjgsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNfY21kX21vZGUoc3RydWN0 IGludGVsX2RzaSAqaW50ZWxfZHNpKQo+ICBzdGF0aWMgYm9vbCBpbnRlbF9kc2lfY29tcHV0ZV9j b25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJCQkgICAgIHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKPiAgewo+ICsJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gZW5jb2Rlci0+YmFzZS5kZXYtPmRldl9wcml2YXRlOwo+ICAJc3Ry dWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gY29udGFpbmVyX29mKGVuY29kZXIsIHN0cnVjdCBp bnRlbF9kc2ksCj4gIAkJCQkJCSAgIGJhc2UpOwo+ICAJc3RydWN0IGludGVsX2Nvbm5lY3RvciAq aW50ZWxfY29ubmVjdG9yID0gaW50ZWxfZHNpLT5hdHRhY2hlZF9jb25uZWN0b3I7Cj4gQEAgLTI4 NCw2ICsyODUsMTQgQEAgc3RhdGljIGJvb2wgaW50ZWxfZHNpX2NvbXB1dGVfY29uZmlnKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJLyogRFNJIHVzZXMgc2hvcnQgcGFja2V0cyBm b3Igc3luYyBldmVudHMsIHNvIGNsZWFyIG1vZGUgZmxhZ3MgZm9yIERTSSAqLwo+ICAJYWRqdXN0 ZWRfbW9kZS0+ZmxhZ3MgPSAwOwo+ICAKPiArCWlmIChJU19CUk9YVE9OKGRldl9wcml2KSkgewo+ ICsJCS8qIER1YWwgbGluayBnb2VzIHRvIERTSSB0cmFuc2NvZGVyIEEuICovCj4gKwkJaWYgKGlu dGVsX2RzaS0+cG9ydHMgPT0gQklUKFBPUlRfQykpCj4gKwkJCXBpcGVfY29uZmlnLT5jcHVfdHJh bnNjb2RlciA9IFRSQU5TQ09ERVJfRFNJX0M7Cj4gKwkJZWxzZQo+ICsJCQlwaXBlX2NvbmZpZy0+ Y3B1X3RyYW5zY29kZXIgPSBUUkFOU0NPREVSX0RTSV9BOwo+ICsJfQo+ICsKPiAgCXJldHVybiB0 cnVlOwo+ICB9Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9y dW50aW1lX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMKPiBp bmRleCAyZTg4YTVlMDY4ODQuLmQxODlhMDAxMjI3NyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9ydW50aW1lX3BtLmMKPiBAQCAtODksNiArODksMTAgQEAgaW50ZWxfZGlzcGxheV9w b3dlcl9kb21haW5fc3RyKGVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gZG9tYWluKQo+ ICAJCXJldHVybiAiVFJBTlNDT0RFUl9DIjsKPiAgCWNhc2UgUE9XRVJfRE9NQUlOX1RSQU5TQ09E RVJfRURQOgo+ICAJCXJldHVybiAiVFJBTlNDT0RFUl9FRFAiOwo+ICsJY2FzZSBQT1dFUl9ET01B SU5fVFJBTlNDT0RFUl9EU0lfQToKPiArCQlyZXR1cm4gIlRSQU5TQ09ERVJfRFNJX0EiOwo+ICsJ Y2FzZSBQT1dFUl9ET01BSU5fVFJBTlNDT0RFUl9EU0lfQzoKPiArCQlyZXR1cm4gIlRSQU5TQ09E RVJfRFNJX0MiOwo+ICAJY2FzZSBQT1dFUl9ET01BSU5fUE9SVF9ERElfQV9MQU5FUzoKPiAgCQly ZXR1cm4gIlBPUlRfRERJX0FfTEFORVMiOwo+ICAJY2FzZSBQT1dFUl9ET01BSU5fUE9SVF9ERElf Ql9MQU5FUzoKPiBAQCAtNDE5LDYgKzQyMyw4IEBAIHN0YXRpYyB2b2lkIGhzd19zZXRfcG93ZXJf d2VsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAlCWFRfRElTUExBWV9Q T1dFUldFTExfMl9QT1dFUl9ET01BSU5TIHwJCVwKPiAgCUJJVChQT1dFUl9ET01BSU5fUElQRV9B KSB8CQkJXAo+ICAJQklUKFBPV0VSX0RPTUFJTl9UUkFOU0NPREVSX0VEUCkgfAkJXAo+ICsJQklU KFBPV0VSX0RPTUFJTl9UUkFOU0NPREVSX0RTSV9BKSB8CQlcCj4gKwlCSVQoUE9XRVJfRE9NQUlO X1RSQU5TQ09ERVJfRFNJX0MpIHwJCVwKPiAgCUJJVChQT1dFUl9ET01BSU5fUElQRV9BX1BBTkVM X0ZJVFRFUikgfAkJXAo+ICAJQklUKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9BX0xBTkVTKSB8CQlc Cj4gIAlCSVQoUE9XRVJfRE9NQUlOX1BPUlRfRFNJKSB8CQkJXAo+IC0tIAo+IDIuMS40CgotLSAK VmlsbGUgU3lyasOkbMOkCkludGVsIE9UQwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9pbnRlbC1nZngK