From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [BXT MIPI PATCH v5 05/14] drm/i915/bxt: DSI encoder support in CRTC modeset Date: Thu, 01 Oct 2015 12:54:25 +0300 Message-ID: <87fv1uc3se.fsf@intel.com> References: <87zj05iszn.fsf@intel.com> <1443632618-19049-1-git-send-email-uma.shankar@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 A02796E12C for ; Thu, 1 Oct 2015 02:51:21 -0700 (PDT) In-Reply-To: <1443632618-19049-1-git-send-email-uma.shankar@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Uma Shankar , intel-gfx@lists.freedesktop.org Cc: shobhit.kumar@intel.com List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCAzMCBTZXAgMjAxNSwgVW1hIFNoYW5rYXIgPHVtYS5zaGFua2FyQGludGVsLmNvbT4g d3JvdGU6Cj4gRnJvbTogU2hhc2hhbmsgU2hhcm1hIDxzaGFzaGFuay5zaGFybWFAaW50ZWwuY29t Pgo+Cj4gU0tMIGFuZCBCWFQgcXVhbGlmaWVzIHRoZSBIQVNfRERJKCkgY2hlY2ssIGFuZCBoZW5j ZSBoYXN3ZWxsCj4gbW9kZXNldCBmdW5jdGlvbnMgYXJlIHJlLXVzZWQgZm9yIG1vZGVzZXQgc2Vx dWVuY2UuIEJ1dCBEREkKPiBpbnRlcmZhY2UgZG9lc24ndCBpbmNsdWRlIHN1cHBvcnQgZm9yIERT SS4KPiBUaGlzIHBhdGNoIGFkZHM6Cj4gMS4gY2FzZXMgZm9yIERTSSBlbmNvZGVyLCBpbiB0aG9z ZSBtb2Rlc2V0IGZ1bmN0aW9ucyBhbmQgYWxsb3dzCj4gICAgYSBDUlRDIG1vZGVzZXQKPiAyLiBB ZGRzIGNhbGwgdG8gcHJlX3BsbCBlbmFibGVkIGZyb20gQ1JUQyBtb2Rlc2V0IGZ1bmN0aW9uLiBO b3RoaW5nCj4gICAgbmVlZHMgdG8gYmUgZG9uZSBhcyBzdWNoIGluIENSVEMgZm9yIERTSSBlbmNv ZGVyLCBhcyBQTEwsIGNsb2NrCj4gICAgYW5kIGFuZCB0cmFuc2NvZGVyIHByb2dyYW1taW5nIHdp bGwgYmUgdGFrZW4gY2FyZSBpbiBlbmNvZGVyJ3MKPiAgICBwcmVfZW5hYmxlIGFuZCBwcmVfcGxs X2VuYWJsZSBmdW5jdGlvbi4KPgo+IHYyOiBGaXhlZCBKYW5pJ3MgcmV2aWV3IGNvbW1lbnRzLiBB ZGRlZCBJTlZBTElEX1BPUlQgZm9yIG5vbiBEREkKPiAgICAgZW5jb2RlciBsaWtlIERTSSBmb3Ig cGxhdGZvcm1zIGhhdmluZyBIQVNfRERJIGFzIHRydWUuCj4KPiB2MzogUmViYXNlZCBvbiBsYXRl c3QgZHJtLW5pZ2h0bHkgYnJhbmNoLiBBZGRlZCBhIFdBUk5fT04gZm9yIGludmFsaWQKPiAgICAg ZW5jb2Rlci4KPgo+IHY0OiBXQVJOX09OIGZvciBpbnZhbGlkIGVuY29kZXIgaXMgcmVmYWN0b3Jl ZCBhcyBwZXIgSmFuaSdzIHN1Z2dlc3Rpb24uCj4gICAgIEZpeGVkIHRoZSBzZXF1ZW5jZSBmb3Ig cHJlX3BsbF9lbmFibGUuCj4KPiB2NTogUHJvdGVjdGVkIERESSBjb2RlIHBhdGhzIGluIGNhc2Ug b2YgRFNJIGVuY29kZXIgY2FsbHMuCj4KPiBTaWduZWQtb2ZmLWJ5OiBTaGFzaGFuayBTaGFybWEg PHNoYXNoYW5rLnNoYXJtYUBpbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogVW1hIFNoYW5rYXIg PHVtYS5zaGFua2FyQGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaCAgICAgICB8ICAgIDEgKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGku YyAgICAgIHwgICA4MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0KPiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jICB8ICAgMjEgKysrKysrLS0tCj4gIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5jICAgfCAgICA4ICsrKy0KPiAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfb3ByZWdpb24uYyB8ICAgIDkgKysrLQo+ICA1IGZpbGVzIGNoYW5n ZWQsIDEwMSBpbnNlcnRpb25zKCspLCAyMSBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaAo+IGluZGV4IGZkMWRlNDUuLmY5N2EyYTIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmgKPiBAQCAtMjQ4Miw2ICsyNDgyLDcgQEAgc3RydWN0IGRybV9pOTE1X2NtZF90YWJsZSB7 Cj4gIAkJCQkgSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gOSkKPiAgCj4gICNkZWZpbmUgSEFTX0RE SShkZXYpCQkoSU5URUxfSU5GTyhkZXYpLT5oYXNfZGRpKQo+ICsjZGVmaW5lIGhhc19lbmNvZGVy X2RkaSh0eXBlKSAgKCh0eXBlKSA9PSAoSU5URUxfT1VUUFVUX0RTSSkgPyAgMCA6IDEpCgpEcm9w IHRoaXMgY2hhbmdlLgoKPiAgI2RlZmluZSBIQVNfRlBHQV9EQkdfVU5DTEFJTUVEKGRldikJKElO VEVMX0lORk8oZGV2KS0+aGFzX2ZwZ2FfZGJnKQo+ICAjZGVmaW5lIEhBU19QU1IoZGV2KQkJKElT X0hBU1dFTEwoZGV2KSB8fCBJU19CUk9BRFdFTEwoZGV2KSB8fCBcCj4gIAkJCQkgSVNfVkFMTEVZ VklFVyhkZXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2KSB8fCBcCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGRpLmMKPiBpbmRleCBjYWNiMDdiLi40YWJjMTNkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGRpLmMKPiBAQCAtMzkwLDggKzM5MCwxMCBAQCB2b2lkIGludGVsX3ByZXBhcmVfZGRpKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpCj4gIAkJZW51bSBwb3J0IHBvcnQ7Cj4gIAkJYm9vbCBzdXBwb3J0 c19oZG1pOwo+ICAKPiAtCQlkZGlfZ2V0X2VuY29kZXJfcG9ydChpbnRlbF9lbmNvZGVyLCAmaW50 ZWxfZGlnX3BvcnQsICZwb3J0KTsKPiArCQlpZiAoaW50ZWxfZW5jb2Rlci0+dHlwZSA9PSBJTlRF TF9PVVRQVVRfRFNJKQo+ICsJCQljb250aW51ZTsKPiAgCgpUaGlzIGlzIGdvb2QuCgo+ICsJCWRk aV9nZXRfZW5jb2Rlcl9wb3J0KGludGVsX2VuY29kZXIsICZpbnRlbF9kaWdfcG9ydCwgJnBvcnQp Owo+ICAJCWlmICh2aXNpdGVkW3BvcnRdKQo+ICAJCQljb250aW51ZTsKPiAgCj4gQEAgLTk3Nyw4 ICs5NzksMTYgQEAgc3RhdGljIHZvaWQgYnh0X2RkaV9jbG9ja19nZXQoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIsCj4gIAkJCQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25m aWcpCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGVuY29kZXIt PmJhc2UuZGV2LT5kZXZfcHJpdmF0ZTsKPiAtCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZGRpX2dl dF9lbmNvZGVyX3BvcnQoZW5jb2Rlcik7Cj4gLQl1aW50MzJfdCBkcGxsID0gcG9ydDsKPiArCWVu dW0gcG9ydCBwb3J0Owo+ICsJdWludDMyX3QgZHBsbDsKPiArCj4gKwlpZiAoIWhhc19lbmNvZGVy X2RkaShlbmNvZGVyLT50eXBlKSkgewo+ICsJCURSTV9ERUJVR19LTVMoIkRESSBmdW5jIGdldHRp bmcgY2FsbGVkIGZvciBEU0k/XG4iKTsKPiArCQlyZXR1cm47Cj4gKwl9Cj4gKwo+ICsJcG9ydCA9 IGludGVsX2RkaV9nZXRfZW5jb2Rlcl9wb3J0KGVuY29kZXIpOwo+ICsJZHBsbCA9IHBvcnQ7CgpO by4gRHJvcCB0aGlzIGNoYW5nZS4KCkFzayB5b3Vyc2VsZiwgaXMgaXQgb2theSB0byBjYWxsIHRo aXMgZnVuY3Rpb24gKGJ4dF9kZGlfY2xvY2tfZ2V0KSBpZgp0aGUgZW5jb2RlciB0eXBlIGlzIERT SS4KCk5vLCBpdCdzIG5vdC4gV2Ugc2hvdWxkIG5vdCBiZSBoZXJlLCBhdCBhbGwsIGlmIGVuY29k ZXIgaXMgRFNJLgoKV2UgaGF2ZSBtb2RpZmllZCBkZGlfZ2V0X2VuY29kZXJfcG9ydCAoYW5kIHRo ZXJlZm9yZQppbnRlbF9kZGlfZ2V0X2VuY29kZXJfcG9ydCkgdG8gZW1pdCBhIGJpZyB3YXJuaW5n IGlmIHRoYXQgZnVuY3Rpb24gaXMKY2FsbGVkIG9uIGEgRFNJIGVuY29kZXIuCgpTbyBkb24ndCBt YWtlIHRob3NlIGV4dHJhIGNoZWNrcy4gV2UnbGwgY2F0Y2ggdGhlIGJ1Z3Mgd2l0aCB0aGUgd2Fy bmluZwppbiBkZGlfZ2V0X2VuY29kZXJfcG9ydC4gV2UnbGwgZml4IHRoZSBjb2RlIHBhdGhzLCBh bmQgbW92ZSBvbi4KCldlIGRvbid0IGNhcmUgaWYgdGhlIGZ1bmN0aW9uIGdvZXMgb24gYW5kIGRv ZXMgc29tZXRoaW5nIHN0dXBpZCBiZWNhdXNlCndlIGNhbGxlZCBpdCB3aXRoIHRoZSB3cm9uZyBw cmVjb25kaXRpb25zLiBTaW1pbGFybHksIHdlIGRvbid0IGNoZWNrCmZvciwgc2F5LCBJU19HRU4y KCkgaW4gRERJIGNvZGUsIGJlY2F1c2UgdGhhdCBzaG91bGQgbm90IGhhdmUKaGFwcGVuZWQuIFRo ZSBidWcgaXMgc29tZXdoZXJlIGVsc2UuCgpOb3csIHRoZXJlICphcmUqIHZhbGlkIGNvZGUgcGF0 aHMgd2hpY2ggd2lsbCBiZSBjYWxsZWQgaWYgZW5jb2RlciBpcwpEU0kuIEluIHRob3NlIGNhc2Vz LCB3ZSBuZWVkIHRvIGhhbmRsZSBEU0kgZ3JhY2VmdWxseSBhbmQgbm90IGNhbGwKZGRpX2dldF9l bmNvZGVyX3BvcnQuIEZvciBleGFtcGxlIGludGVsX3ByZXBhcmVfZGRpIGFib3ZlIGFuZAppbnRl bF9vcHJlZ2lvbl9ub3RpZnlfZW5jb2RlciBiZWxvdy4KCj4gIAo+ICAJcGlwZV9jb25maWctPnBv cnRfY2xvY2sgPQo+ICAJCWJ4dF9jYWxjX3BsbF9saW5rKGRldl9wcml2LCBkcGxsKTsKPiBAQCAt MTU2OCwxMCArMTU3OCwxNiBAQCB2b2lkIGludGVsX2RkaV9lbmFibGVfdHJhbnNjb2Rlcl9mdW5j KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gIAllbnVtIHBpcGUgcGlwZSA9IGludGVsX2NydGMt PnBpcGU7Cj4gIAllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIgPSBpbnRlbF9jcnRjLT5j b25maWctPmNwdV90cmFuc2NvZGVyOwo+IC0JZW51bSBwb3J0IHBvcnQgPSBpbnRlbF9kZGlfZ2V0 X2VuY29kZXJfcG9ydChpbnRlbF9lbmNvZGVyKTsKPiArCWVudW0gcG9ydCBwb3J0Owo+ICAJaW50 IHR5cGUgPSBpbnRlbF9lbmNvZGVyLT50eXBlOwo+ICAJdWludDMyX3QgdGVtcDsKPiAgCj4gKwlp ZiAoIWhhc19lbmNvZGVyX2RkaSh0eXBlKSkgewo+ICsJCURSTV9ERUJVR19LTVMoIkRESSBmdW5j IGdldHRpbmcgY2FsbGVkIGZvciBEU0k/XG4iKTsKPiArCQlyZXR1cm47Cj4gKwl9Cj4gKwo+ICsJ cG9ydCA9IGludGVsX2RkaV9nZXRfZW5jb2Rlcl9wb3J0KGludGVsX2VuY29kZXIpOwoKRHJvcCB0 aGlzIGNoYW5nZS4KCj4gIAkvKiBFbmFibGUgVFJBTlNfRERJX0ZVTkNfQ1RMIGZvciB0aGUgcGlw ZSB0byB3b3JrIGluIEhETUkgbW9kZSAqLwo+ICAJdGVtcCA9IFRSQU5TX0RESV9GVU5DX0VOQUJM RTsKPiAgCXRlbXAgfD0gVFJBTlNfRERJX1NFTEVDVF9QT1JUKHBvcnQpOwo+IEBAIC0xNjc4LDEy ICsxNjk0LDE4IEBAIGJvb2wgaW50ZWxfZGRpX2Nvbm5lY3Rvcl9nZXRfaHdfc3RhdGUoc3RydWN0 IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yKQo+ICAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAgCXN0cnVjdCBpbnRlbF9lbmNv ZGVyICppbnRlbF9lbmNvZGVyID0gaW50ZWxfY29ubmVjdG9yLT5lbmNvZGVyOwo+ICAJaW50IHR5 cGUgPSBpbnRlbF9jb25uZWN0b3ItPmJhc2UuY29ubmVjdG9yX3R5cGU7Cj4gLQllbnVtIHBvcnQg cG9ydCA9IGludGVsX2RkaV9nZXRfZW5jb2Rlcl9wb3J0KGludGVsX2VuY29kZXIpOwo+ICsJZW51 bSBwb3J0IHBvcnQ7Cj4gIAllbnVtIHBpcGUgcGlwZSA9IDA7Cj4gIAllbnVtIHRyYW5zY29kZXIg Y3B1X3RyYW5zY29kZXI7Cj4gIAllbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluIHBvd2Vy X2RvbWFpbjsKPiAgCXVpbnQzMl90IHRtcDsKPiAgCj4gKwlpZiAoIWhhc19lbmNvZGVyX2RkaSh0 eXBlKSkgewo+ICsJCURSTV9ERUJVR19LTVMoIkRESSBmdW5jIGdldHRpbmcgY2FsbGVkIGZvciBE U0k/XG4iKTsKPiArCQlyZXR1cm4gZmFsc2U7Cj4gKwl9Cj4gKwo+ICsJcG9ydCA9IGludGVsX2Rk aV9nZXRfZW5jb2Rlcl9wb3J0KGludGVsX2VuY29kZXIpOwoKRHJvcCB0aGlzIGNoYW5nZS4KCj4g IAlwb3dlcl9kb21haW4gPSBpbnRlbF9kaXNwbGF5X3BvcnRfcG93ZXJfZG9tYWluKGludGVsX2Vu Y29kZXIpOwo+ICAJaWYgKCFpbnRlbF9kaXNwbGF5X3Bvd2VyX2lzX2VuYWJsZWQoZGV2X3ByaXYs IHBvd2VyX2RvbWFpbikpCj4gIAkJcmV0dXJuIGZhbHNlOwo+IEBAIC0xNzI1LDExICsxNzQ3LDE3 IEBAIGJvb2wgaW50ZWxfZGRpX2dldF9od19zdGF0ZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlciwKPiAgewo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmJhc2UuZGV2 Owo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0 ZTsKPiAtCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZGRpX2dldF9lbmNvZGVyX3BvcnQoZW5jb2Rl cik7Cj4gKwllbnVtIHBvcnQgcG9ydDsKPiAgCWVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21h aW4gcG93ZXJfZG9tYWluOwo+ICAJdTMyIHRtcDsKPiAgCWludCBpOwo+ICAKPiArCWlmICghaGFz X2VuY29kZXJfZGRpKGVuY29kZXItPnR5cGUpKSB7Cj4gKwkJRFJNX0RFQlVHX0tNUygiRERJIGZ1 bmMgZ2V0dGluZyBjYWxsZWQgZm9yIERTST9cbiIpOwo+ICsJCXJldHVybiBmYWxzZTsKPiArCX0K PiArCj4gKwlwb3J0ID0gaW50ZWxfZGRpX2dldF9lbmNvZGVyX3BvcnQoZW5jb2Rlcik7CgpEcm9w IHRoaXMgY2hhbmdlLgoKPiAgCXBvd2VyX2RvbWFpbiA9IGludGVsX2Rpc3BsYXlfcG9ydF9wb3dl cl9kb21haW4oZW5jb2Rlcik7Cj4gIAlpZiAoIWludGVsX2Rpc3BsYXlfcG93ZXJfaXNfZW5hYmxl ZChkZXZfcHJpdiwgcG93ZXJfZG9tYWluKSkKPiAgCQlyZXR1cm4gZmFsc2U7Cj4gQEAgLTE3Nzks MTEgKzE4MDcsMTggQEAgYm9vbCBpbnRlbF9kZGlfZ2V0X2h3X3N0YXRlKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyLAo+ICB2b2lkIGludGVsX2RkaV9lbmFibGVfcGlwZV9jbG9jayhzdHJ1 Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YykKPiAgewo+ICAJc3RydWN0IGRybV9jcnRjICpjcnRj ID0gJmludGVsX2NydGMtPmJhc2U7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBjcnRjLT5kZXYtPmRldl9wcml2YXRlOwo+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 IGNydGMtPmRldjsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ ZGV2X3ByaXZhdGU7Cj4gIAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlciA9IGlu dGVsX2RkaV9nZXRfY3J0Y19lbmNvZGVyKGNydGMpOwo+IC0JZW51bSBwb3J0IHBvcnQgPSBpbnRl bF9kZGlfZ2V0X2VuY29kZXJfcG9ydChpbnRlbF9lbmNvZGVyKTsKPiArCWVudW0gcG9ydCBwb3J0 Owo+ICAJZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyID0gaW50ZWxfY3J0Yy0+Y29uZmln LT5jcHVfdHJhbnNjb2RlcjsKPiAgCj4gKwlpZiAoIWhhc19lbmNvZGVyX2RkaShpbnRlbF9lbmNv ZGVyLT50eXBlKSkgewo+ICsJCURSTV9ERUJVR19LTVMoIkRESSBmdW5jIGdldHRpbmcgY2FsbGVk IGZvciBEU0k/XG4iKTsKPiArCQlyZXR1cm47Cj4gKwl9Cj4gKwo+ICsJcG9ydCA9IGludGVsX2Rk aV9nZXRfZW5jb2Rlcl9wb3J0KGludGVsX2VuY29kZXIpOwoKRHJvcCB0aGlzIGNoYW5nZS4KCj4g IAlpZiAoY3B1X3RyYW5zY29kZXIgIT0gVFJBTlNDT0RFUl9FRFApCj4gIAkJSTkxNV9XUklURShU UkFOU19DTEtfU0VMKGNwdV90cmFuc2NvZGVyKSwKPiAgCQkJICAgVFJBTlNfQ0xLX1NFTF9QT1JU KHBvcnQpKTsKPiBAQCAtMTg2NiwxMCArMTkwMSwxNiBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kZGlf cHJlX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcikKPiAgCXN0cnVj dCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5kZXY7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICAJc3RydWN0IGludGVsX2NydGMg KmNydGMgPSB0b19pbnRlbF9jcnRjKGVuY29kZXItPmNydGMpOwo+IC0JZW51bSBwb3J0IHBvcnQg PSBpbnRlbF9kZGlfZ2V0X2VuY29kZXJfcG9ydChpbnRlbF9lbmNvZGVyKTsKPiArCWVudW0gcG9y dCBwb3J0Owo+ICAJaW50IHR5cGUgPSBpbnRlbF9lbmNvZGVyLT50eXBlOwo+ICAJaW50IGhkbWlf bGV2ZWw7Cj4gIAo+ICsJaWYgKCFoYXNfZW5jb2Rlcl9kZGkodHlwZSkpIHsKPiArCQlEUk1fREVC VUdfS01TKCJEREkgZnVuYyBnZXR0aW5nIGNhbGxlZCBmb3IgRFNJP1xuIik7Cj4gKwkJcmV0dXJu Owo+ICsJfQo+ICsKPiArCXBvcnQgPSBpbnRlbF9kZGlfZ2V0X2VuY29kZXJfcG9ydChpbnRlbF9l bmNvZGVyKTsKCkRyb3AgdGhpcyBjaGFuZ2UuCgo+ICAJaWYgKHR5cGUgPT0gSU5URUxfT1VUUFVU X0VEUCkgewo+ICAJCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAo ZW5jb2Rlcik7Cj4gIAkJaW50ZWxfZWRwX3BhbmVsX29uKGludGVsX2RwKTsKPiBAQCAtMTk0Miwx MSArMTk4MywxNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfcG9zdF9kaXNhYmxlKHN0cnVjdCBp bnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyKQo+ICAJc3RydWN0IGRybV9lbmNvZGVyICplbmNv ZGVyID0gJmludGVsX2VuY29kZXItPmJhc2U7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g ZW5jb2Rlci0+ZGV2Owo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2 LT5kZXZfcHJpdmF0ZTsKPiAtCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZGRpX2dldF9lbmNvZGVy X3BvcnQoaW50ZWxfZW5jb2Rlcik7Cj4gKwllbnVtIHBvcnQgcG9ydDsKPiAgCWludCB0eXBlID0g aW50ZWxfZW5jb2Rlci0+dHlwZTsKPiAgCXVpbnQzMl90IHZhbDsKPiAgCWJvb2wgd2FpdCA9IGZh bHNlOwo+ICAKPiArCWlmICghaGFzX2VuY29kZXJfZGRpKHR5cGUpKSB7Cj4gKwkJRFJNX0RFQlVH X0tNUygiRERJIGZ1bmMgZ2V0dGluZyBjYWxsZWQgZm9yIERTST9cbiIpOwo+ICsJCXJldHVybjsK PiArCX0KPiArCj4gKwlwb3J0ID0gaW50ZWxfZGRpX2dldF9lbmNvZGVyX3BvcnQoaW50ZWxfZW5j b2Rlcik7CgpEcm9wIHRoaXMgY2hhbmdlLgoKPiAgCXZhbCA9IEk5MTVfUkVBRChERElfQlVGX0NU TChwb3J0KSk7Cj4gIAlpZiAodmFsICYgRERJX0JVRl9DVExfRU5BQkxFKSB7Cj4gIAkJdmFsICY9 IH5ERElfQlVGX0NUTF9FTkFCTEU7Cj4gQEAgLTE5ODMsOSArMjAzMCwxNSBAQCBzdGF0aWMgdm9p ZCBpbnRlbF9lbmFibGVfZGRpKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyKQo+ ICAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwo+ ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmRldjsKPiAgCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gLQllbnVtIHBvcnQg cG9ydCA9IGludGVsX2RkaV9nZXRfZW5jb2Rlcl9wb3J0KGludGVsX2VuY29kZXIpOwo+ICsJZW51 bSBwb3J0IHBvcnQ7Cj4gIAlpbnQgdHlwZSA9IGludGVsX2VuY29kZXItPnR5cGU7Cj4gIAo+ICsJ aWYgKCFoYXNfZW5jb2Rlcl9kZGkodHlwZSkpIHsKPiArCQlEUk1fREVCVUdfS01TKCJEREkgZnVu YyBnZXR0aW5nIGNhbGxlZCBmb3IgRFNJP1xuIik7Cj4gKwkJcmV0dXJuOwo+ICsJfQo+ICsKPiAr CXBvcnQgPSBpbnRlbF9kZGlfZ2V0X2VuY29kZXJfcG9ydChpbnRlbF9lbmNvZGVyKTsKCkRyb3Ag dGhpcyBjaGFuZ2UuCgo+ICAJaWYgKHR5cGUgPT0gSU5URUxfT1VUUFVUX0hETUkpIHsKPiAgCQlz dHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9Cj4gIAkJCWVuY190b19k aWdfcG9ydChlbmNvZGVyKTsKPiBAQCAtMjcyOSw4ICsyNzgyLDE0IEBAIHN0YXRpYyBib29sIGlu dGVsX2RkaV9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAg CQkJCSAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQo+ICB7Cj4gIAlp bnQgdHlwZSA9IGVuY29kZXItPnR5cGU7Cj4gLQlpbnQgcG9ydCA9IGludGVsX2RkaV9nZXRfZW5j b2Rlcl9wb3J0KGVuY29kZXIpOwo+ICsJaW50IHBvcnQ7Cj4gKwo+ICsJaWYgKCFoYXNfZW5jb2Rl cl9kZGkodHlwZSkpIHsKPiArCQlEUk1fREVCVUdfS01TKCJEREkgZnVuYyBnZXR0aW5nIGNhbGxl ZCBmb3IgRFNJP1xuIik7Cj4gKwkJcmV0dXJuIGZhbHNlOwo+ICsJfQo+ICAKPiArCXBvcnQgPSBp bnRlbF9kZGlfZ2V0X2VuY29kZXJfcG9ydChlbmNvZGVyKTsKCkRyb3AgdGhpcyBjaGFuZ2UuCgo+ ICAJV0FSTih0eXBlID09IElOVEVMX09VVFBVVF9VTktOT1dOLCAiY29tcHV0ZV9jb25maWcoKSBv biB1bmtub3duIG91dHB1dCFcbiIpOwo+ICAKPiAgCWlmIChwb3J0ID09IFBPUlRfQSkKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gaW5kZXggYjhlMDMxMC4uZWEwZjUzMyAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBAQCAtNDk5MSw2ICs0OTkxLDcg QEAgc3RhdGljIHZvaWQgaGFzd2VsbF9jcnRjX2VuYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMp Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRl Owo+ICAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMp Owo+ICAJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXI7Cj4gKwlib29sIGlzX2RzaSA9IGlu dGVsX3BpcGVfaGFzX3R5cGUoaW50ZWxfY3J0YywgSU5URUxfT1VUUFVUX0RTSSk7Cj4gIAlpbnQg cGlwZSA9IGludGVsX2NydGMtPnBpcGU7Cj4gIAo+ICAJV0FSTl9PTighY3J0Yy0+c3RhdGUtPmVu YWJsZSk7Cj4gQEAgLTUwMjMsOSArNTAyNCwxMiBAQCBzdGF0aWMgdm9pZCBoYXN3ZWxsX2NydGNf ZW5hYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAgCWludGVsX2NydGMtPmFjdGl2ZSA9IHRy dWU7Cj4gIAo+ICAJaW50ZWxfc2V0X2NwdV9maWZvX3VuZGVycnVuX3JlcG9ydGluZyhkZXZfcHJp diwgcGlwZSwgdHJ1ZSk7Cj4gLQlmb3JfZWFjaF9lbmNvZGVyX29uX2NydGMoZGV2LCBjcnRjLCBl bmNvZGVyKQo+ICsJZm9yX2VhY2hfZW5jb2Rlcl9vbl9jcnRjKGRldiwgY3J0YywgZW5jb2Rlcikg ewo+ICsJCWlmIChlbmNvZGVyLT5wcmVfcGxsX2VuYWJsZSkKPiArCQkJZW5jb2Rlci0+cHJlX3Bs bF9lbmFibGUoZW5jb2Rlcik7Cj4gIAkJaWYgKGVuY29kZXItPnByZV9lbmFibGUpCj4gIAkJCWVu Y29kZXItPnByZV9lbmFibGUoZW5jb2Rlcik7Cj4gKwl9Cj4gIAo+ICAJaWYgKGludGVsX2NydGMt PmNvbmZpZy0+aGFzX3BjaF9lbmNvZGVyKSB7Cj4gIAkJaW50ZWxfc2V0X3BjaF9maWZvX3VuZGVy cnVuX3JlcG9ydGluZyhkZXZfcHJpdiwgVFJBTlNDT0RFUl9BLAo+IEBAIC01MDMzLDcgKzUwMzcs OCBAQCBzdGF0aWMgdm9pZCBoYXN3ZWxsX2NydGNfZW5hYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0 YykKPiAgCQlkZXZfcHJpdi0+ZGlzcGxheS5mZGlfbGlua190cmFpbihjcnRjKTsKPiAgCX0KPiAg Cj4gLQlpbnRlbF9kZGlfZW5hYmxlX3BpcGVfY2xvY2soaW50ZWxfY3J0Yyk7Cj4gKwlpZiAoIWlz X2RzaSkKPiArCQlpbnRlbF9kZGlfZW5hYmxlX3BpcGVfY2xvY2soaW50ZWxfY3J0Yyk7Cj4gIAo+ ICAJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID09IDkpCj4gIAkJc2t5bGFrZV9wZml0X3VwZGF0 ZShpbnRlbF9jcnRjLCAxKTsKPiBAQCAtNTA0OSw3ICs1MDU0LDggQEAgc3RhdGljIHZvaWQgaGFz d2VsbF9jcnRjX2VuYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIAlpbnRlbF9jcnRjX2xv YWRfbHV0KGNydGMpOwo+ICAKPiAgCWludGVsX2RkaV9zZXRfcGlwZV9zZXR0aW5ncyhjcnRjKTsK PiAtCWludGVsX2RkaV9lbmFibGVfdHJhbnNjb2Rlcl9mdW5jKGNydGMpOwo+ICsJaWYgKCFpc19k c2kpCj4gKwkJaW50ZWxfZGRpX2VuYWJsZV90cmFuc2NvZGVyX2Z1bmMoY3J0Yyk7Cj4gIAo+ICAJ aW50ZWxfdXBkYXRlX3dhdGVybWFya3MoY3J0Yyk7Cj4gIAlpbnRlbF9lbmFibGVfcGlwZShpbnRl bF9jcnRjKTsKPiBAQCAtNTA1Nyw3ICs1MDYzLDcgQEAgc3RhdGljIHZvaWQgaGFzd2VsbF9jcnRj X2VuYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIAlpZiAoaW50ZWxfY3J0Yy0+Y29uZmln LT5oYXNfcGNoX2VuY29kZXIpCj4gIAkJbHB0X3BjaF9lbmFibGUoY3J0Yyk7Cj4gIAo+IC0JaWYg KGludGVsX2NydGMtPmNvbmZpZy0+ZHBfZW5jb2Rlcl9pc19tc3QpCj4gKwlpZiAoaW50ZWxfY3J0 Yy0+Y29uZmlnLT5kcF9lbmNvZGVyX2lzX21zdCAmJiAhaXNfZHNpKQo+ICAJCWludGVsX2RkaV9z ZXRfdmNfcGF5bG9hZF9hbGxvYyhjcnRjLCB0cnVlKTsKPiAgCj4gIAlhc3NlcnRfdmJsYW5rX2Rp c2FibGVkKGNydGMpOwo+IEBAIC01MTU5LDYgKzUxNjUsNyBAQCBzdGF0aWMgdm9pZCBoYXN3ZWxs X2NydGNfZGlzYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIAlzdHJ1Y3QgaW50ZWxfY3J0 YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Cj4gIAlzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlcjsKPiAgCWVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2RlciA9IGludGVs X2NydGMtPmNvbmZpZy0+Y3B1X3RyYW5zY29kZXI7Cj4gKwlib29sIGlzX2RzaSA9IGludGVsX3Bp cGVfaGFzX3R5cGUoaW50ZWxfY3J0YywgSU5URUxfT1VUUFVUX0RTSSk7Cj4gIAo+ICAJaWYgKCFp bnRlbF9jcnRjLT5hY3RpdmUpCj4gIAkJcmV0dXJuOwo+IEBAIC01MTc5LDcgKzUxODYsOCBAQCBz dGF0aWMgdm9pZCBoYXN3ZWxsX2NydGNfZGlzYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4g IAlpZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5kcF9lbmNvZGVyX2lzX21zdCkKPiAgCQlpbnRlbF9k ZGlfc2V0X3ZjX3BheWxvYWRfYWxsb2MoY3J0YywgZmFsc2UpOwo+ICAKPiAtCWludGVsX2RkaV9k aXNhYmxlX3RyYW5zY29kZXJfZnVuYyhkZXZfcHJpdiwgY3B1X3RyYW5zY29kZXIpOwo+ICsJaWYg KCFpc19kc2kpCj4gKwkJaW50ZWxfZGRpX2Rpc2FibGVfdHJhbnNjb2Rlcl9mdW5jKGRldl9wcml2 LCBjcHVfdHJhbnNjb2Rlcik7Cj4gIAo+ICAJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID09IDkp Cj4gIAkJc2t5bGFrZV9wZml0X3VwZGF0ZShpbnRlbF9jcnRjLCAwKTsKPiBAQCAtNTE4OCw3ICs1 MTk2LDggQEAgc3RhdGljIHZvaWQgaGFzd2VsbF9jcnRjX2Rpc2FibGUoc3RydWN0IGRybV9jcnRj ICpjcnRjKQo+ICAJZWxzZQo+ICAJCU1JU1NJTkdfQ0FTRShJTlRFTF9JTkZPKGRldiktPmdlbik7 Cj4gIAo+IC0JaW50ZWxfZGRpX2Rpc2FibGVfcGlwZV9jbG9jayhpbnRlbF9jcnRjKTsKPiArCWlm ICghaXNfZHNpKQo+ICsJCWludGVsX2RkaV9kaXNhYmxlX3BpcGVfY2xvY2soaW50ZWxfY3J0Yyk7 Cj4gIAo+ICAJaWYgKGludGVsX2NydGMtPmNvbmZpZy0+aGFzX3BjaF9lbmNvZGVyKSB7Cj4gIAkJ bHB0X2Rpc2FibGVfcGNoX3RyYW5zY29kZXIoZGV2X3ByaXYpOwo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RwX21zdC5jCj4gaW5kZXggNjAwYWZkYi4uMDAzMjdiYyAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RwX21zdC5jCj4gQEAgLTE3Miw4ICsxNzIsMTQgQEAgc3RhdGljIHZvaWQgaW50 ZWxfbXN0X3ByZV9lbmFibGVfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gIAlp bnRlbF9tc3QtPnBvcnQgPSBmb3VuZC0+cG9ydDsKPiAgCj4gIAlpZiAoaW50ZWxfZHAtPmFjdGl2 ZV9tc3RfbGlua3MgPT0gMCkgewo+IC0JCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZGRpX2dldF9l bmNvZGVyX3BvcnQoZW5jb2Rlcik7Cj4gKwkJZW51bSBwb3J0IHBvcnQ7Cj4gIAo+ICsJCWlmICgh aGFzX2VuY29kZXJfZGRpKGVuY29kZXItPnR5cGUpKSB7Cj4gKwkJCURSTV9ERUJVR19LTVMoIkRE SSBmdW5jIGdldHRpbmcgY2FsbGVkIGZvciBEU0k/XG4iKTsKPiArCQkJcmV0dXJuOwo+ICsJCX0K PiArCj4gKwkJcG9ydCA9IGludGVsX2RkaV9nZXRfZW5jb2Rlcl9wb3J0KGVuY29kZXIpOwoKRHJv cCB0aGlzIGNoYW5nZS4KCj4gIAkJLyogRklYTUU6IGFkZCBzdXBwb3J0IGZvciBTS0wgKi8KPiAg CQlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPCA5KQo+ICAJCQlJOTE1X1dSSVRFKFBPUlRfQ0xL X1NFTChwb3J0KSwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfb3By ZWdpb24uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX29wcmVnaW9uLmMKPiBpbmRleCA0 ODEzMzc0Li42NGI4YmNkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X29wcmVnaW9uLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9vcHJlZ2lvbi5j Cj4gQEAgLTMzNCw4ICszMzQsMTIgQEAgaW50IGludGVsX29wcmVnaW9uX25vdGlmeV9lbmNvZGVy KHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyLAo+ICAJaWYgKCFIQVNfRERJKGRl dikpCj4gIAkJcmV0dXJuIDA7Cj4gIAo+IC0JcG9ydCA9IGludGVsX2RkaV9nZXRfZW5jb2Rlcl9w b3J0KGludGVsX2VuY29kZXIpOwo+IC0JaWYgKHBvcnQgPT0gUE9SVF9FKSB7Cj4gKwlpZiAoIWhh c19lbmNvZGVyX2RkaSh0eXBlKSkKClRoaXMgaXMgZ29vZCwgYnV0IGRvbid0IGFkZCBleHRyYSB3 cmFwcGVyIChoYXNfZW5jb2Rlcl9kZGkpIGZvciB0aGUKZW5jb2RlIHR5cGUgY2hlY2suCgo+ICsJ CXBvcnQgPSAwOwo+ICsJZWxzZQo+ICsJCXBvcnQgPSBpbnRlbF9kZGlfZ2V0X2VuY29kZXJfcG9y dChpbnRlbF9lbmNvZGVyKTsKPiArCj4gKwlpZiAocG9ydCA9PSBQT1JUX0UpICB7Cj4gIAkJcG9y dCA9IDA7Cj4gIAl9IGVsc2Ugewo+ICAJCXBhcm0gfD0gMSA8PCBwb3J0Owo+IEBAIC0zNTYsNiAr MzYwLDcgQEAgaW50IGludGVsX29wcmVnaW9uX25vdGlmeV9lbmNvZGVyKHN0cnVjdCBpbnRlbF9l bmNvZGVyICppbnRlbF9lbmNvZGVyLAo+ICAJCXR5cGUgPSBESVNQTEFZX1RZUEVfRVhURVJOQUxf RkxBVF9QQU5FTDsKPiAgCQlicmVhazsKPiAgCWNhc2UgSU5URUxfT1VUUFVUX0VEUDoKPiArCWNh c2UgSU5URUxfT1VUUFVUX0RTSToKPiAgCQl0eXBlID0gRElTUExBWV9UWVBFX0lOVEVSTkFMX0ZM QVRfUEFORUw7Cj4gIAkJYnJlYWs7Cj4gIAlkZWZhdWx0Ogo+IC0tIAo+IDEuNy45LjUKPgoKLS0g CkphbmkgTmlrdWxhLCBJbnRlbCBPcGVuIFNvdXJjZSBUZWNobm9sb2d5IENlbnRlcgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=