From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shobhit Kumar Subject: Re: [RFC PATCH 08/12] drm/i915/dsi: add drm mipi dsi host support Date: Fri, 23 Jan 2015 17:51:27 +0530 Message-ID: <54C23CC7.6090508@linux.intel.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 286336E3FB for ; Fri, 23 Jan 2015 04:21:54 -0800 (PST) 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 , intel-gfx@lists.freedesktop.org Cc: Shobhit Kumar , Thierry Reding List-Id: intel-gfx@lists.freedesktop.org T24gMDEvMTYvMjAxNSAwNTo1NyBQTSwgSmFuaSBOaWt1bGEgd3JvdGU6Cj4gQWRkIGJhc2ljIHN1 cHBvcnQgZm9yIHVzaW5nIHRoZSBkcm0gbWlwaSBkc2kgZnJhbWV3b3JrIGZvciBEU0kuIFdlIGRv bid0Cj4gdXNlIGRldmljZSB0cmVlIHdoaWNoIGlzIHByZXR0eSBtdWNoIHJlcXVpcmVkIGJ5IG1p cGlfZHNpX2hvc3RfcmVnaXN0ZXIKPiBhbmQgZnJpZW5kcywgYW5kIHdlIGRvbid0IGhhdmUgdGhl IGtpbmQgb2YgZGV2aWNlIG1vZGVsIHRoZSBmdW5jdGlvbnMKPiBleHBlY3QgZWl0aGVyLiBTbyB3 ZSBjaGVhdCBhbmQgdXNlIGl0IGFzIGEgbGlicmFyeSB0byBhYnN0cmFjdCB3aGF0IHdlCj4gbmVl ZDogYSBuaWNlLCBjbGVhbiBpbnRlcmZhY2UgZm9yIERTSSB0cmFuc2ZlcnMuIFRoaXMgbWVhbnMg d2Ugd2lsbCBoYXZlCj4gdG8gYmUgY2FyZWZ1bCB3aXRoIHdoYXQgZnVuY3Rpb25zIHdlIGNhbGws IGFzIHRoZSBkcml2ZXIgbW9kZWwgZGV2aWNlcwo+IGluIG1pcGlfZHNpX2hvc3QgYW5kIG1pcGlf ZHNpX2RldmljZSB3aWxsICpub3QqIGJlIGluaXRpYWxpemVkLgo+Cj4gU2lnbmVkLW9mZi1ieTog SmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGludGVsLmNvbT4KCkxvb2tzIGdvb2QuCgpSZXZpZXdl ZC1CeTogU2hvYmhpdCBLdW1hciA8c2hvYmhpdC5rdW1hckBpbnRlbC5jb20+Cgo+IC0tLQo+ICAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvS2NvbmZpZyAgICAgICAgICAgICAgIHwgICAxICsKPiAgIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jICAgICAgICAgICB8IDE2MiArKysrKysrKysr KysrKysrKysrKysrKysrKysrLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmgg ICAgICAgICAgIHwgIDE4ICsrKysKPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaV9w YW5lbF92YnQuYyB8ICAgMyAtCj4gICA0IGZpbGVzIGNoYW5nZWQsIDE4MCBpbnNlcnRpb25zKCsp LCA0IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L0tj b25maWcgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9LY29uZmlnCj4gaW5kZXggZGExOTZjZDA3MjYz Li43NGFjY2E5YmNkOWQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvS2NvbmZp Zwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L0tjb25maWcKPiBAQCAtMTIsNiArMTIsNyBA QCBjb25maWcgRFJNX0k5MTUKPiAgIAlzZWxlY3QgVE1QRlMKPiAgIAlzZWxlY3QgRFJNX0tNU19I RUxQRVIKPiAgIAlzZWxlY3QgRFJNX1BBTkVMCj4gKwlzZWxlY3QgRFJNX01JUElfRFNJCj4gICAJ IyBpOTE1IGRlcGVuZHMgb24gQUNQSV9WSURFTyB3aGVuIEFDUEkgaXMgZW5hYmxlZAo+ICAgCSMg YnV0IGZvciBzZWxlY3QgdG8gd29yaywgbmVlZCB0byBzZWxlY3QgQUNQSV9WSURFTydzIGRlcGVu ZGVuY2llcywgaWNrCj4gICAJc2VsZWN0IEJBQ0tMSUdIVF9MQ0RfU1VQUE9SVCBpZiBBQ1BJCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMKPiBpbmRleCAxOWE5OTU1ZWFiMGUuLjVjZmEzNDMxNzg1 YSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jCj4gQEAgLTI4LDYgKzI4LDcgQEAKPiAg ICNpbmNsdWRlIDxkcm0vZHJtX2VkaWQuaD4KPiAgICNpbmNsdWRlIDxkcm0vaTkxNV9kcm0uaD4K PiAgICNpbmNsdWRlIDxkcm0vZHJtX3BhbmVsLmg+Cj4gKyNpbmNsdWRlIDxkcm0vZHJtX21pcGlf ZHNpLmg+Cj4gICAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgo+ICAgI2luY2x1ZGUgImk5MTVfZHJ2 LmgiCj4gICAjaW5jbHVkZSAiaW50ZWxfZHJ2LmgiCj4gQEAgLTU4LDYgKzU5LDE0OSBAQCBzdGF0 aWMgdm9pZCB3YWl0X2Zvcl9kc2lfZmlmb19lbXB0eShzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9k c2ksIGVudW0gcG9ydCBwb3J0KQo+ICAgCQlEUk1fRVJST1IoIkRQSSBGSUZPcyBhcmUgbm90IGVt cHR5XG4iKTsKPiAgIH0KPgo+ICtzdGF0aWMgdm9pZCB3cml0ZV9kYXRhKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIHJlZywKPiArCQkgICAgICAgY29uc3QgdTggKmRhdGEs IHUzMiBsZW4pCj4gK3sKPiArCXUzMiBpLCBqOwo+ICsKPiArCWZvciAoaSA9IDA7IGkgPCBsZW47 IGkgKz0gNCkgewo+ICsJCXUzMiB2YWwgPSAwOwo+ICsKPiArCQlmb3IgKGogPSAwOyBqIDwgbWlu X3QodTMyLCBsZW4gLSBpLCA0KTsgaisrKQo+ICsJCQl2YWwgfD0gKmRhdGErKyA8PCA4ICogajsK PiArCj4gKwkJSTkxNV9XUklURShyZWcsIHZhbCk7Cj4gKwl9Cj4gK30KPiArCj4gK3N0YXRpYyB2 b2lkIHJlYWRfZGF0YShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiByZWcs Cj4gKwkJICAgICAgdTggKmRhdGEsIHUzMiBsZW4pCj4gK3sKPiArCXUzMiBpLCBqOwo+ICsKPiAr CWZvciAoaSA9IDA7IGkgPCBsZW47IGkgKz0gNCkgewo+ICsJCXUzMiB2YWwgPSBJOTE1X1JFQUQo cmVnKTsKPiArCj4gKwkJZm9yIChqID0gMDsgaiA8IG1pbl90KHUzMiwgbGVuIC0gaSwgNCk7IGor KykKPiArCQkJKmRhdGErKyA9IHZhbCA+PiA4ICogajsKPiArCX0KPiArfQo+ICsKPiArc3RhdGlj IHNzaXplX3QgaW50ZWxfZHNpX2hvc3RfdHJhbnNmZXIoc3RydWN0IG1pcGlfZHNpX2hvc3QgKmhv c3QsCj4gKwkJCQkgICAgICAgY29uc3Qgc3RydWN0IG1pcGlfZHNpX21zZyAqbXNnKQo+ICt7Cj4g KwlzdHJ1Y3QgaW50ZWxfZHNpX2hvc3QgKmludGVsX2RzaV9ob3N0ID0gdG9faW50ZWxfZHNpX2hv c3QoaG9zdCk7Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfZHNpX2hvc3QtPmlu dGVsX2RzaS0+YmFzZS5iYXNlLmRldjsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gKwllbnVtIHBvcnQgcG9ydCA9IGludGVsX2RzaV9o b3N0LT5wb3J0Owo+ICsJc3RydWN0IG1pcGlfZHNpX3BhY2tldCBwYWNrZXQ7Cj4gKwlzc2l6ZV90 IHJldDsKPiArCWNvbnN0IHU4ICpoZWFkZXIsICpkYXRhOwo+ICsJdTMyIGRhdGFfcmVnLCBkYXRh X21hc2ssIGN0cmxfcmVnLCBjdHJsX21hc2s7Cj4gKwo+ICsJcmV0ID0gbWlwaV9kc2lfY3JlYXRl X3BhY2tldCgmcGFja2V0LCBtc2cpOwo+ICsJaWYgKHJldCA8IDApCj4gKwkJcmV0dXJuIHJldDsK PiArCj4gKwloZWFkZXIgPSBwYWNrZXQuaGVhZGVyOwo+ICsJZGF0YSA9IHBhY2tldC5wYXlsb2Fk Owo+ICsKPiArCWlmIChtc2ctPmZsYWdzICYgTUlQSV9EU0lfTVNHX1VTRV9MUE0pIHsKPiArCQlk YXRhX3JlZyA9IE1JUElfTFBfR0VOX0RBVEEocG9ydCk7Cj4gKwkJZGF0YV9tYXNrID0gTFBfREFU QV9GSUZPX0ZVTEw7Cj4gKwkJY3RybF9yZWcgPSBNSVBJX0xQX0dFTl9DVFJMKHBvcnQpOwo+ICsJ CWN0cmxfbWFzayA9IExQX0NUUkxfRklGT19GVUxMOwo+ICsJfSBlbHNlIHsKPiArCQlkYXRhX3Jl ZyA9IE1JUElfSFNfR0VOX0RBVEEocG9ydCk7Cj4gKwkJZGF0YV9tYXNrID0gSFNfREFUQV9GSUZP X0ZVTEw7Cj4gKwkJY3RybF9yZWcgPSBNSVBJX0hTX0dFTl9DVFJMKHBvcnQpOwo+ICsJCWN0cmxf bWFzayA9IEhTX0NUUkxfRklGT19GVUxMOwo+ICsJfQo+ICsKPiArCS8qIG5vdGU6IHRoaXMgaXMg bmV2ZXIgdHJ1ZSBmb3IgcmVhZHMgKi8KPiArCWlmIChwYWNrZXQucGF5bG9hZF9sZW5ndGgpIHsK PiArCj4gKwkJaWYgKHdhaXRfZm9yKChJOTE1X1JFQUQoTUlQSV9HRU5fRklGT19TVEFUKHBvcnQp KSAmIGRhdGFfbWFzaykgPT0gMCwgNTApKQo+ICsJCQlEUk1fRVJST1IoIlRpbWVvdXQgd2FpdGlu ZyBmb3IgSFMvTFAgREFUQSBGSUZPICFmdWxsXG4iKTsKPiArCj4gKwkJd3JpdGVfZGF0YShkZXZf cHJpdiwgZGF0YV9yZWcsIHBhY2tldC5wYXlsb2FkLAo+ICsJCQkgICBwYWNrZXQucGF5bG9hZF9s ZW5ndGgpOwo+ICsJfQo+ICsKPiArCWlmIChtc2ctPnJ4X2xlbikgewo+ICsJCUk5MTVfV1JJVEUo TUlQSV9JTlRSX1NUQVQocG9ydCksIEdFTl9SRUFEX0RBVEFfQVZBSUwpOwo+ICsJfQo+ICsKPiAr CWlmICh3YWl0X2ZvcigoSTkxNV9SRUFEKE1JUElfR0VOX0ZJRk9fU1RBVChwb3J0KSkgJiBjdHJs X21hc2spID09IDAsIDUwKSkgewo+ICsJCURSTV9FUlJPUigiVGltZW91dCB3YWl0aW5nIGZvciBI Uy9MUCBDVFJMIEZJRk8gIWZ1bGxcbiIpOwo+ICsJfQo+ICsKPiArCUk5MTVfV1JJVEUoY3RybF9y ZWcsIGhlYWRlclsyXSA8PCAxNiB8IGhlYWRlclsxXSA8PCA4IHwgaGVhZGVyWzBdKTsKPiArCj4g KwkvKiAtPnJ4X2xlbiBpcyBzZXQgb25seSBmb3IgcmVhZHMgKi8KPiArCWlmIChtc2ctPnJ4X2xl bikgewo+ICsJCWRhdGFfbWFzayA9IEdFTl9SRUFEX0RBVEFfQVZBSUw7Cj4gKwkJaWYgKHdhaXRf Zm9yKChJOTE1X1JFQUQoTUlQSV9JTlRSX1NUQVQocG9ydCkpICYgZGF0YV9tYXNrKSA9PSBkYXRh X21hc2ssIDUwKSkKPiArCQkJRFJNX0VSUk9SKCJUaW1lb3V0IHdhaXRpbmcgZm9yIHJlYWQgZGF0 YS5cbiIpOwo+ICsKPiArCQlyZWFkX2RhdGEoZGV2X3ByaXYsIGRhdGFfcmVnLCBtc2ctPnJ4X2J1 ZiwgbXNnLT5yeF9sZW4pOwo+ICsJfQo+ICsKPiArCS8qIFhYWDogZml4IGZvciByZWFkcyBhbmQg d3JpdGVzICovCj4gKwlyZXR1cm4gNCArIHBhY2tldC5wYXlsb2FkX2xlbmd0aDsKPiArfQo+ICsK PiArc3RhdGljIGludCBpbnRlbF9kc2lfaG9zdF9hdHRhY2goc3RydWN0IG1pcGlfZHNpX2hvc3Qg Kmhvc3QsCj4gKwkJCQkgc3RydWN0IG1pcGlfZHNpX2RldmljZSAqZHNpKQo+ICt7Cj4gKwlyZXR1 cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIGludCBpbnRlbF9kc2lfaG9zdF9kZXRhY2goc3RydWN0 IG1pcGlfZHNpX2hvc3QgKmhvc3QsCj4gKwkJCQkgc3RydWN0IG1pcGlfZHNpX2RldmljZSAqZHNp KQo+ICt7Cj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBtaXBp X2RzaV9ob3N0X29wcyBpbnRlbF9kc2lfaG9zdF9vcHMgPSB7Cj4gKwkuYXR0YWNoID0gaW50ZWxf ZHNpX2hvc3RfYXR0YWNoLAo+ICsJLmRldGFjaCA9IGludGVsX2RzaV9ob3N0X2RldGFjaCwKPiAr CS50cmFuc2ZlciA9IGludGVsX2RzaV9ob3N0X3RyYW5zZmVyLAo+ICt9Owo+ICsKPiArc3RhdGlj IHN0cnVjdCBpbnRlbF9kc2lfaG9zdCAqaW50ZWxfZHNpX2hvc3RfaW5pdChzdHJ1Y3QgaW50ZWxf ZHNpICppbnRlbF9kc2ksCj4gKwkJCQkJCSAgZW51bSBwb3J0IHBvcnQpCj4gK3sKPiArCXN0cnVj dCBpbnRlbF9kc2lfaG9zdCAqaG9zdDsKPiArCXN0cnVjdCBtaXBpX2RzaV9kZXZpY2UgKmRldmlj ZTsKPiArCj4gKwlob3N0ID0ga3phbGxvYyhzaXplb2YoKmhvc3QpLCBHRlBfS0VSTkVMKTsKPiAr CWlmICghaG9zdCkKPiArCQlyZXR1cm4gTlVMTDsKPiArCj4gKwlob3N0LT5iYXNlLm9wcyA9ICZp bnRlbF9kc2lfaG9zdF9vcHM7Cj4gKwlob3N0LT5pbnRlbF9kc2kgPSBpbnRlbF9kc2k7Cj4gKwlo b3N0LT5wb3J0ID0gcG9ydDsKPiArCj4gKwkvKgo+ICsJICogV2Ugc2hvdWxkIGNhbGwgbWlwaV9k c2lfaG9zdF9yZWdpc3RlcigmaG9zdC0+YmFzZSkgaGVyZSwgYnV0IHdlIGRvbid0Cj4gKwkgKiBo YXZlIGEgaG9zdC0+ZGV2LCBhbmQgd2UgZG9uJ3QgaGF2ZSBPRiBzdHVmZiBlaXRoZXIuIFNvIGp1 c3QgdXNlIHRoZQo+ICsJICogZHNpIGZyYW1ld29yayBhcyBhIGxpYnJhcnkgYW5kIGhvcGUgZm9y IHRoZSBiZXN0LiBDcmVhdGUgdGhlIGRzaQo+ICsJICogZGV2aWNlcyBieSBvdXJzZWx2ZXMgaGVy ZSB0b28uIE5lZWQgdG8gYmUgY2FyZWZ1bCB0aG91Z2gsIGJlY2F1c2Ugd2UKPiArCSAqIGRvbid0 IGluaXRpYWxpemUgYW55IG9mIHRoZSBkcml2ZXIgbW9kZWwgZGV2aWNlcyBoZXJlLgo+ICsJICov Cj4gKwlkZXZpY2UgPSBremFsbG9jKHNpemVvZigqZGV2aWNlKSwgR0ZQX0tFUk5FTCk7Cj4gKwlp ZiAoIWRldmljZSkgewo+ICsJCWtmcmVlKGhvc3QpOwo+ICsJCXJldHVybiBOVUxMOwo+ICsJfQo+ ICsKPiArCWRldmljZS0+aG9zdCA9ICZob3N0LT5iYXNlOwo+ICsJaG9zdC0+ZGV2aWNlID0gZGV2 aWNlOwo+ICsKPiArCXJldHVybiBob3N0Owo+ICt9Cj4gKwo+ICAgc3RhdGljIHZvaWQgYmFuZF9n YXBfcmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgewo+ICAgCW11 dGV4X2xvY2soJmRldl9wcml2LT5kcGlvX2xvY2spOwo+IEBAIC04MDYsNiArOTUwLDcgQEAgdm9p ZCBpbnRlbF9kc2lfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAgCXN0cnVjdCBkcm1f Y29ubmVjdG9yICpjb25uZWN0b3I7Cj4gICAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKnNjYW4s ICpmaXhlZF9tb2RlID0gTlVMTDsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICsJZW51bSBwb3J0IHBvcnQ7Cj4gICAJdW5zaWduZWQg aW50IGk7Cj4KPiAgIAlEUk1fREVCVUdfS01TKCJcbiIpOwo+IEBAIC04NTQsNyArOTk5LDExIEBA IHZvaWQgaW50ZWxfZHNpX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgIAlpbnRlbF9j b25uZWN0b3ItPnVucmVnaXN0ZXIgPSBpbnRlbF9jb25uZWN0b3JfdW5yZWdpc3RlcjsKPgo+ICAg CS8qIFBpcGUgQSBtYXBzIHRvIE1JUEkgRFNJIHBvcnQgQSwgcGlwZSBCIG1hcHMgdG8gTUlQSSBE U0kgcG9ydCBDICovCj4gLQlpZiAoZGV2X3ByaXYtPnZidC5kc2kucG9ydCA9PSBEVk9fUE9SVF9N SVBJQSkgewo+ICsJaWYgKGRldl9wcml2LT52YnQuZHNpLmNvbmZpZy0+ZHVhbF9saW5rKSB7Cj4g KwkJLyogWFhYOiBkb2VzIGR1YWwgbGluayB3b3JrIG9uIGVpdGhlciBwaXBlPyAqLwo+ICsJCWlu dGVsX2VuY29kZXItPmNydGNfbWFzayA9ICgxIDw8IFBJUEVfQSk7Cj4gKwkJaW50ZWxfZHNpLT5w b3J0cyA9ICgoMSA8PCBQT1JUX0EpIHwgKDEgPDwgUE9SVF9DKSk7Cj4gKwl9IGVsc2UgaWYgKGRl dl9wcml2LT52YnQuZHNpLnBvcnQgPT0gRFZPX1BPUlRfTUlQSUEpIHsKPiAgIAkJaW50ZWxfZW5j b2Rlci0+Y3J0Y19tYXNrID0gKDEgPDwgUElQRV9BKTsKPiAgIAkJaW50ZWxfZHNpLT5wb3J0cyA9 ICgxIDw8IFBPUlRfQSk7Cj4gICAJfSBlbHNlIGlmIChkZXZfcHJpdi0+dmJ0LmRzaS5wb3J0ID09 IERWT19QT1JUX01JUElDKSB7Cj4gQEAgLTg2Miw2ICsxMDExLDE3IEBAIHZvaWQgaW50ZWxfZHNp X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgIAkJaW50ZWxfZHNpLT5wb3J0cyA9ICgx IDw8IFBPUlRfQyk7Cj4gICAJfQo+Cj4gKwkvKiBDcmVhdGUgYSBEU0kgaG9zdCAoYW5kIGEgZGV2 aWNlKSBmb3IgZWFjaCBwb3J0LiAqLwo+ICsJZm9yX2VhY2hfZHNpX3BvcnQocG9ydCwgaW50ZWxf ZHNpLT5wb3J0cykgewo+ICsJCXN0cnVjdCBpbnRlbF9kc2lfaG9zdCAqaG9zdDsKPiArCj4gKwkJ aG9zdCA9IGludGVsX2RzaV9ob3N0X2luaXQoaW50ZWxfZHNpLCBwb3J0KTsKPiArCQlpZiAoIWhv c3QpCj4gKwkJCWdvdG8gZXJyOwo+ICsKPiArCQlpbnRlbF9kc2ktPmRzaV9ob3N0c1twb3J0XSA9 IGhvc3Q7Cj4gKwl9Cj4gKwo+ICAgCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGludGVsX2Rz aV9kcml2ZXJzKTsgaSsrKSB7Cj4gICAJCWludGVsX2RzaS0+cGFuZWwgPSBpbnRlbF9kc2lfZHJp dmVyc1tpXS5pbml0KGludGVsX2RzaSwKPiAgIAkJCQkJCQkgICAgIGludGVsX2RzaV9kcml2ZXJz W2ldLnBhbmVsX2lkKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHNpLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuaAo+IGluZGV4IGZjMGIyYjhk OTBmMS4uMjc4NGFjNDQyMzY4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RzaS5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmgKPiBAQCAt MjYsNiArMjYsNyBAQAo+Cj4gICAjaW5jbHVkZSA8ZHJtL2RybVAuaD4KPiAgICNpbmNsdWRlIDxk cm0vZHJtX2NydGMuaD4KPiArI2luY2x1ZGUgPGRybS9kcm1fbWlwaV9kc2kuaD4KPiAgICNpbmNs dWRlICJpbnRlbF9kcnYuaCIKPgo+ICAgLyogRHVhbCBMaW5rIHN1cHBvcnQgKi8KPiBAQCAtMzMs MTAgKzM0LDEzIEBACj4gICAjZGVmaW5lIERTSV9EVUFMX0xJTktfRlJPTlRfQkFDSwkxCj4gICAj ZGVmaW5lIERTSV9EVUFMX0xJTktfUElYRUxfQUxUCQkyCj4KPiArc3RydWN0IGludGVsX2RzaV9o b3N0Owo+ICsKPiAgIHN0cnVjdCBpbnRlbF9kc2kgewo+ICAgCXN0cnVjdCBpbnRlbF9lbmNvZGVy IGJhc2U7Cj4KPiAgIAlzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbDsKPiArCXN0cnVjdCBpbnRlbF9k c2lfaG9zdCAqZHNpX2hvc3RzW0k5MTVfTUFYX1BPUlRTXTsKPgo+ICAgCXN0cnVjdCBpbnRlbF9j b25uZWN0b3IgKmF0dGFjaGVkX2Nvbm5lY3RvcjsKPgo+IEBAIC05NCw2ICs5OCwyMCBAQCBzdHJ1 Y3QgaW50ZWxfZHNpIHsKPiAgIAl1MTYgcGFuZWxfcHdyX2N5Y2xlX2RlbGF5Owo+ICAgfTsKPgo+ ICtzdHJ1Y3QgaW50ZWxfZHNpX2hvc3Qgewo+ICsJc3RydWN0IG1pcGlfZHNpX2hvc3QgYmFzZTsK PiArCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaTsKPiArCWVudW0gcG9ydCBwb3J0Owo+ICsK PiArCS8qIG91ciBsaXR0bGUgaGFjayAqLwo+ICsJc3RydWN0IG1pcGlfZHNpX2RldmljZSAqZGV2 aWNlOwo+ICt9Owo+ICsKPiArc3RhdGljIGlubGluZSBzdHJ1Y3QgaW50ZWxfZHNpX2hvc3QgKnRv X2ludGVsX2RzaV9ob3N0KHN0cnVjdCBtaXBpX2RzaV9ob3N0ICpoKQo+ICt7Cj4gKwlyZXR1cm4g Y29udGFpbmVyX29mKGgsIHN0cnVjdCBpbnRlbF9kc2lfaG9zdCwgYmFzZSk7Cj4gK30KPiArCj4g ICAjZGVmaW5lIGZvcl9lYWNoX2RzaV9wb3J0KF9fcG9ydCwgX19wb3J0c19tYXNrKSBcCj4gICAJ Zm9yICgoX19wb3J0KSA9IFBPUlRfQTsgKF9fcG9ydCkgPCBJOTE1X01BWF9QT1JUUzsgKF9fcG9y dCkrKykJXAo+ICAgCQlpZiAoKF9fcG9ydHNfbWFzaykgJiAoMSA8PCAoX19wb3J0KSkpCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaV9wYW5lbF92YnQuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaV9wYW5lbF92YnQuYwo+IGluZGV4IDIwNGY1NGRm OGZlMS4uZTM2M2MyNmEyYjA1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RzaV9wYW5lbF92YnQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rz aV9wYW5lbF92YnQuYwo+IEBAIC0zOTksOSArMzk5LDYgQEAgc3RydWN0IGRybV9wYW5lbCAqdmJ0 X3BhbmVsX2luaXQoc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpLCB1MTYgcGFuZWxfaWQpCj4g ICAJaW50ZWxfZHNpLT5kdWFsX2xpbmsgPSBtaXBpX2NvbmZpZy0+ZHVhbF9saW5rOwo+ICAgCWlu dGVsX2RzaS0+cGl4ZWxfb3ZlcmxhcCA9IG1pcGlfY29uZmlnLT5waXhlbF9vdmVybGFwOwo+Cj4g LQlpZiAoaW50ZWxfZHNpLT5kdWFsX2xpbmspCj4gLQkJaW50ZWxfZHNpLT5wb3J0cyA9ICgoMSA8 PCBQT1JUX0EpIHwgKDEgPDwgUE9SVF9DKSk7Cj4gLQo+ICAgCWlmIChpbnRlbF9kc2ktPnBpeGVs X2Zvcm1hdCA9PSBWSURfTU9ERV9GT1JNQVRfUkdCNjY2KQo+ICAgCQliaXRzX3Blcl9waXhlbCA9 IDE4Owo+ICAgCWVsc2UgaWYgKGludGVsX2RzaS0+cGl4ZWxfZm9ybWF0ID09IFZJRF9NT0RFX0ZP Uk1BVF9SR0I1NjUpCj4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n ZngK