From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: Re: [PATCH] drm/i915/cnl: Implement CNL display init/unit sequence Date: Mon, 5 Jun 2017 19:58:39 +0300 Message-ID: <20170605165839.GA2138@ideak-desk.fi.intel.com> References: <1491506163-14587-30-git-send-email-rodrigo.vivi@intel.com> <1492099982-15880-1-git-send-email-rodrigo.vivi@intel.com> <20170605150704.GB28137@ideak-desk.fi.intel.com> <1496680715.20038.5.camel@rdvivi-vienna> Reply-To: imre.deak@intel.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2237589C9C for ; Mon, 5 Jun 2017 16:58:41 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1496680715.20038.5.camel@rdvivi-vienna> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Vivi, Rodrigo" Cc: "intel-gfx@lists.freedesktop.org" , "Zanoni, Paulo R" List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBKdW4gMDUsIDIwMTcgYXQgMDc6Mzg6NDVQTSArMDMwMCwgVml2aSwgUm9kcmlnbyB3 cm90ZToKPiBPbiBNb24sIDIwMTctMDYtMDUgYXQgMTg6MDcgKzAzMDAsIEltcmUgRGVhayB3cm90 ZToKPiA+IE9uIFRodSwgQXByIDEzLCAyMDE3IGF0IDA5OjEzOjAyQU0gLTA3MDAsIFJvZHJpZ28g Vml2aSB3cm90ZToKPiA+ID4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxp bnV4LmludGVsLmNvbT4KPiA+ID4gCj4gPiA+IEltcGxlbWVudCB0aGUgQ05MIGRpc3BsYXkgaW5p dC91bmluaXQgc2VxdWVuY2UgYXMgb3V0bGluZWQgaW4gQnNwZWMuCj4gPiA+IAo+ID4gPiBRdWl0 ZSBzaW1pbGFyIHRvIFNLTC9CWFQuIFRoZSBtYWluIGNvbXBsaWNhaXRvbiBpcyBwcm9iYWJseSB0 aGUgZXh0cmEKPiA+ID4gcHJvY21vbiBzZXR1cCB3ZSBtdXN0IGRvIGJhc2VkIG9uIHRoZSBwcm9j ZXNzL3ZvbHRhZ2UgaW5mb3JtYXRpb24gd2UKPiA+ID4gY2FuIHJlYWQgb3V0IGZyb20gc29tZSBy ZWdpc3Rlci4KPiA+ID4gCj4gPiA+IEZvciBub3cgd2UgYXNzdW1lIERNQyB3aWxsIGhhbmRsZSB0 aGUgQVVYIHdlbGxzLCBhbmQgd2UnbGwganVzdCBlbmFibGUKPiA+ID4gYWxsIG9mIHRoZW0gZHVy aW5nIHRoZSBpbml0IHNlcXVlbmNlLiBFdmVuIGlmIERNQyB3aWxsIGhhbmRsZSB0aGVtLCB3ZQo+ ID4gPiBzaG91bGQgcGVyaGFwcyB0cmltIHRoZSBzZXQgb2YgZW5hYmxlZCB3ZWxscyBiYXNlZCBv biB3aGljaCBEREkgcG9ydHMKPiA+ID4gYXJlIGFjdHVhbGx5IHByZXNlbnQuCj4gPiAKPiA+IFRo ZSBhYm92ZSBuZWVkcyB0byBiZSBhbGlnbmVkIHdpdGggdGhlIGN1cnJlbnQgdmVyc2lvbiBvZiB0 aGUgY29kZS4KPiA+IAo+ID4gWWVzLCBsb29rcyBsaWtlIERNQyBzYXZlcy9yZXN0b3JlcyB0aGUg c3RhdGUgb2YgYm90aCBBVVggYW5kIERESSBwb3dlcgo+ID4gd2VsbHMuIFRoZSBzcGVjIHNheXMg dG8gZW5hYmxlIHRoZSBBVVggd2VsbHMgZHVyaW5nIGluaXQsIGJ1dCBJIHRoaW5rCj4gPiBpdCdz IG9rIHRvIGRvIHRoaXMgb24tZGVtYW5kLiAKPiAKPiBJbmRlZWQuIEkgdXBkYXRlZCB0aGUgY29k ZSBkdXJpbmcgc29tZSByZWJhc2UgYnV0IGZvcmdvdCB0byB1cGRhdGUgdGhlCj4gY29tbWl0IG1l c3NhZ2UuIEkgd2lsbCByZW1vdmUgdGhpcyBjaHVjayBvbiBuZXh0IHJlYmFzZS4KPiAKPiA+IAo+ ID4gPiAKPiA+ID4gdjI6IHMvc2tsX2RidWYvZ2VuOV9kYnVmLyB0byBmb2xsb3cgdXBzdHJlYW0K PiA+ID4gICAgIGJ4dCBuZWVkZWQgYSBjZGNsayBzYW5pdGl6ZSBzdGVwLCBzbyBsZXQncyBhZGQg aXQgZm9yIGNubCB0b28KPiA+ID4gdjM6IHMvQ0hJQ0tFTl9NSVNDXzEvQ0hJQ0tFTl9NSVNDXzIv IChBbmRlcikKPiA+ID4gdjQ6IFJlYmFzZWQgYnkgUm9kcmlnbyBhZnRlciBWaWxsZSdzIGNkY2xr IHJld29yawo+ID4gPiB2NTogUmVtb3ZlZCB1bmVjZXNzYXJ5IEF1eCBJTyBmb3JjZWQgZW5hYmxl L2Rpc2FibGUsIEZpeCBEVzEwIHNldHVwCj4gPiA+ICAgICBGaXggcHJvY3BvbiBNYXNrLiAoQ3Jl ZGl0cy10byBQYXVsbyBhbmQgQ2xpbnQpCj4gPiA+ICAgICBSZW1vdmUgQTAgd29ya2Fyb3VuZC4K PiA+ID4gdjY6IFJlYmFzZWQgb24gdG9wIG9mIHJlY2VudCBjb2RlIChSb2RyaWdvKS4KPiA+ID4g djc6IFJlc3BlY3QgdGhlIG9yZGVyIG9mIHNhbml0aXplXyBhZnRlciBzZXRfCj4gPiA+ICAgICAo RG9uZSBieSBSb2RyaWdvLCBSZXF1ZXN0ZWQgYnkgVmlsbGUpCj4gPiA+IHY4OiAoUm9kcmlnbykg UmVtb3ZlIENISUNLRU5fTUlTQ18yIGRvdWJsZSBkZWZpbml0aW9uLgo+ID4gPiAKPiA+ID4gQ2M6 IFBhdWxvIFphbm9uaSA8cGF1bG8uci56YW5vbmlAaW50ZWwuY29tPgo+ID4gPiBDYzogQ2xpbnQg VGF5bG9yIDxjbGludG9uLmEudGF5bG9yQGludGVsLmNvbT4KPiA+ID4gU2lnbmVkLW9mZi1ieTog VmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+ID4gU2ln bmVkLW9mZi1ieTogUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlAaW50ZWwuY29tPgo+ID4gPiAt LS0KPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggICAgICAgICB8ICAyMyAr KysrKysrCj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jZGNsay5jICAgICAgfCAx MDggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcnYuaCAgICAgICAgfCAgIDIgKwo+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcnVudGltZV9wbS5jIHwgMTEzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KystCj4gPiA+ICA0IGZpbGVzIGNoYW5nZWQsIDI0NCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9u cygtKQo+ID4gPiAKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf cmVnLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gPiA+IGluZGV4IDgzNTM4 OTIuLjliMmQ4YzAgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf cmVnLmgKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ID4gPiBA QCAtMTY1NSw2ICsxNjU1LDkgQEAgZW51bSBza2xfZGlzcF9wb3dlcl93ZWxscyB7Cj4gPiA+ICAj ZGVmaW5lICAgUEhZX1JFU0VSVkVECQkJKDEgPDwgNykKPiA+ID4gICNkZWZpbmUgQlhUX1BPUlRf Q0wxQ01fRFcwKHBoeSkJCV9CWFRfUEhZKChwaHkpLCBfUE9SVF9DTDFDTV9EVzBfQkMpCj4gPiA+ ICAKPiA+ID4gKyNkZWZpbmUgQ05MX1BPUlRfQ0wxQ01fRFc1CQlfTU1JTygweDE2MjAxNCkKPiA+ ID4gKyNkZWZpbmUgICBDTF9QT1dFUl9ET1dOX0VOQUJMRQkJKDEgPDwgNCkKPiA+ID4gKwo+ID4g PiAgI2RlZmluZSBfUE9SVF9DTDFDTV9EVzlfQQkJMHgxNjIwMjQKPiA+ID4gICNkZWZpbmUgX1BP UlRfQ0wxQ01fRFc5X0JDCQkweDZDMDI0Cj4gPiA+ICAjZGVmaW5lICAgSVJFRjBSQ19PRkZTRVRf U0hJRlQJCTgKPiA+ID4gQEAgLTE2ODcsNiArMTY5MCwyNSBAQCBlbnVtIHNrbF9kaXNwX3Bvd2Vy X3dlbGxzIHsKPiA+ID4gICNkZWZpbmUgQlhUX1BPUlRfQ0wyQ01fRFc2KHBoeSkJCV9CWFRfUEhZ KChwaHkpLCBfUE9SVF9DTDJDTV9EVzZfQkMpCj4gPiA+ICAjZGVmaW5lICAgRFc2X09MRE9fRFlO X1BXUl9ET1dOX0VOCSgxIDw8IDI4KQo+ID4gPiAgCj4gPiA+ICsjZGVmaW5lIENOTF9QT1JUX0NP TVBfRFcwCQlfTU1JTygweDE2MjEwMCkKPiA+ID4gKyNkZWZpbmUgICBDT01QX0lOSVQJCQkoMSA8 PCAzMSkKPiA+ID4gKyNkZWZpbmUgQ05MX1BPUlRfQ09NUF9EVzEJCV9NTUlPKDB4MTYyMTA0KQo+ ID4gPiArI2RlZmluZSBDTkxfUE9SVF9DT01QX0RXMwkJX01NSU8oMHgxNjIxMGMpCj4gPiA+ICsj ZGVmaW5lICAgUFJPQ0VTU19JTkZPX0RPVF8wCQkoMCA8PCAyNikKPiA+ID4gKyNkZWZpbmUgICBQ Uk9DRVNTX0lORk9fRE9UXzEJCSgxIDw8IDI2KQo+ID4gPiArI2RlZmluZSAgIFBST0NFU1NfSU5G T19ET1RfNAkJKDIgPDwgMjYpCj4gPiA+ICsjZGVmaW5lICAgUFJPQ0VTU19JTkZPX01BU0sJCSg3 IDw8IDI2KQo+ID4gPiArI2RlZmluZSAgIFBST0NFU1NfSU5GT19TSElGVAkJMjYKPiA+ID4gKyNk ZWZpbmUgICBWT0xUQUdFX0lORk9fMF84NVYJCSgwIDw8IDI0KQo+ID4gPiArI2RlZmluZSAgIFZP TFRBR0VfSU5GT18wXzk1VgkJKDEgPDwgMjQpCj4gPiA+ICsjZGVmaW5lICAgVk9MVEFHRV9JTkZP XzFfMDVWCQkoMiA8PCAyNCkKPiA+ID4gKyNkZWZpbmUgICBWT0xUQUdFX0lORk9fTUFTSwkJKDMg PDwgMjQpCj4gPiA+ICsjZGVmaW5lICAgVk9MVEFHRV9JTkZPX1NISUZUCQkyNAo+ID4gPiArI2Rl ZmluZSBDTkxfUE9SVF9DT01QX0RXOAkJX01NSU8oMHgxNjIxMjApCj4gPiA+ICsjZGVmaW5lICAg UFJESUNfSUNPTVBfRElTCQkoMSA8PCAxNCkKPiA+IAo+ID4gRFc4IGxvb2tzIHRvIGJlIHVudXNl ZC4KPiAKPiBJIGJlbGlldmUgYW4gZWFybHkgdy9hIGZvciBBMCB3YXMgdXNpbmcgdGhhdCwgYnV0 IHRoYXQgZ290IHJlbW92ZS4KPiAKPiBJIHdpbGwgYWxzbyByZW1vdmUgdGhpcy4KPiAKPiA+IAo+ ID4gPiArI2RlZmluZSBDTkxfUE9SVF9DT01QX0RXOQkJX01NSU8oMHgxNjIxMjQpCj4gPiA+ICsj ZGVmaW5lIENOTF9QT1JUX0NPTVBfRFcxMAkJX01NSU8oMHgxNjIxMjgpCj4gPiA+ICsKPiA+ID4g IC8qIEJYVCBQSFkgUmVmIHJlZ2lzdGVycyAqLwo+ID4gPiAgI2RlZmluZSBfUE9SVF9SRUZfRFcz X0EJCQkweDE2MjE4Qwo+ID4gPiAgI2RlZmluZSBfUE9SVF9SRUZfRFczX0JDCQkweDZDMThDCj4g PiA+IEBAIC02NTEzLDYgKzY1MzUsNyBAQCBlbnVtIHsKPiA+ID4gICNkZWZpbmUgIEtWTV9DT05G SUdfQ0hBTkdFX05PVElGSUNBVElPTl9TRUxFQ1QJKDEgPDwgMTQpCj4gPiA+ICAKPiA+ID4gICNk ZWZpbmUgQ0hJQ0tFTl9NSVNDXzIJCV9NTUlPKDB4NDIwODQpCj4gPiA+ICsjZGVmaW5lICBDT01Q X1BXUl9ET1dOCQkoMSA8PCAyMykKPiA+ID4gICNkZWZpbmUgIEdMS19DTDBfUFdSX0RPV04JKDEg PDwgMTApCj4gPiA+ICAjZGVmaW5lICBHTEtfQ0wxX1BXUl9ET1dOCSgxIDw8IDExKQo+ID4gPiAg I2RlZmluZSAgR0xLX0NMMl9QV1JfRE9XTgkoMSA8PCAxMikKPiA+ID4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NkY2xrLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9jZGNsay5jCj4gPiA+IGluZGV4IGJlZTQzOTQuLmY5YmExZTcgMTAwNjQ0Cj4gPiA+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NkY2xrLmMKPiA+ID4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfY2RjbGsuYwo+ID4gPiBAQCAtMTU1NSw2ICsxNTU1LDExNCBA QCBzdGF0aWMgdm9pZCBjbmxfc2V0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKPiA+ID4gIAlpbnRlbF91cGRhdGVfY2RjbGsoZGV2X3ByaXYpOwo+ID4gPiAgfQo+ID4g PiAgCj4gPiA+ICtzdGF0aWMgaW50IGNubF9jZGNsa19wbGxfdmNvKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwgaW50IGNkY2xrKQo+ID4gPiArewo+ID4gPiArCWludCByYXRpbzsK PiA+ID4gKwo+ID4gPiArCWlmIChjZGNsayA9PSBkZXZfcHJpdi0+Y2RjbGsuaHcucmVmKQo+ID4g PiArCQlyZXR1cm4gMDsKPiA+ID4gKwo+ID4gPiArCXN3aXRjaCAoY2RjbGspIHsKPiA+ID4gKwlk ZWZhdWx0Ogo+ID4gPiArCQlNSVNTSU5HX0NBU0UoY2RjbGspOwo+ID4gPiArCWNhc2UgMTY4MDAw Ogo+ID4gPiArCWNhc2UgMzM2MDAwOgo+ID4gPiArCQlyYXRpbyA9IGRldl9wcml2LT5jZGNsay5o dy5yZWYgPT0gMTkyMDAgPyAzNSA6IDI4Owo+ID4gPiArCQlicmVhazsKPiA+ID4gKwljYXNlIDUy ODAwMDoKPiA+ID4gKwkJcmF0aW8gPSBkZXZfcHJpdi0+Y2RjbGsuaHcucmVmID09IDE5MjAwID8g NTUgOiA0NDsKPiA+ID4gKwkJYnJlYWs7Cj4gPiA+ICsJfQo+ID4gPiArCj4gPiA+ICsJcmV0dXJu IGRldl9wcml2LT5jZGNsay5ody5yZWYgKiByYXRpbzsKPiA+ID4gK30KPiA+ID4gKwo+ID4gPiAr c3RhdGljIHZvaWQgY25sX3Nhbml0aXplX2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKPiA+ID4gK3sKPiA+ID4gKwl1MzIgY2RjdGwsIGV4cGVjdGVkOwo+ID4gPiArCj4g PiA+ICsJaW50ZWxfdXBkYXRlX2NkY2xrKGRldl9wcml2KTsKPiA+ID4gKwo+ID4gPiArCWlmIChk ZXZfcHJpdi0+Y2RjbGsuaHcudmNvID09IDAgfHwKPiA+ID4gKwkgICAgZGV2X3ByaXYtPmNkY2xr Lmh3LmNkY2xrID09IGRldl9wcml2LT5jZGNsay5ody5yZWYpCj4gPiA+ICsJCWdvdG8gc2FuaXRp emU7Cj4gPiA+ICsKPiA+ID4gKwkvKiBEUExMIG9rYXk7IHZlcmlmeSB0aGUgY2RjbG9jawo+ID4g PiArCSAqCj4gPiA+ICsJICogU29tZSBCSU9TIHZlcnNpb25zIGxlYXZlIGFuIGluY29ycmVjdCBk ZWNpbWFsIGZyZXF1ZW5jeSB2YWx1ZSBhbmQKPiA+ID4gKwkgKiBzZXQgcmVzZXJ2ZWQgTUJaIGJp dHMgaW4gQ0RDTEtfQ1RMIGF0IGxlYXN0IGR1cmluZyBleGl0aW5nIGZyb20gUzQsCj4gPiA+ICsJ ICogc28gc2FuaXRpemUgdGhpcyByZWdpc3Rlci4KPiA+ID4gKwkgKi8KPiA+ID4gKwljZGN0bCA9 IEk5MTVfUkVBRChDRENMS19DVEwpOwo+ID4gPiArCS8qCj4gPiA+ICsJICogTGV0J3MgaWdub3Jl IHRoZSBwaXBlIGZpZWxkLCBzaW5jZSBCSU9TIGNvdWxkIGhhdmUgY29uZmlndXJlZCB0aGUKPiA+ ID4gKwkgKiBkaXZpZGVycyBib3RoIHN5bmNoaW5nIHRvIGFuIGFjdGl2ZSBwaXBlLCBvciBhc3lu Y2hyb25vdXNseQo+ID4gPiArCSAqIChQSVBFX05PTkUpLgo+ID4gPiArCSAqLwo+ID4gPiArCWNk Y3RsICY9IH5CWFRfQ0RDTEtfQ0QyWF9QSVBFX05PTkU7Cj4gPiA+ICsKPiA+ID4gKwlleHBlY3Rl ZCA9IChjZGN0bCAmIEJYVF9DRENMS19DRDJYX0RJVl9TRUxfTUFTSykgfAo+ID4gPiArCQkgICBz a2xfY2RjbGtfZGVjaW1hbChkZXZfcHJpdi0+Y2RjbGsuaHcuY2RjbGspOwo+ID4gPiArCj4gPiA+ ICsJaWYgKGNkY3RsID09IGV4cGVjdGVkKQo+ID4gPiArCQkvKiBBbGwgd2VsbDsgbm90aGluZyB0 byBzYW5pdGl6ZSAqLwo+ID4gPiArCQlyZXR1cm47Cj4gPiA+ICsKPiA+ID4gK3Nhbml0aXplOgo+ ID4gPiArCURSTV9ERUJVR19LTVMoIlNhbml0aXppbmcgY2RjbGsgcHJvZ3JhbW1lZCBieSBwcmUt b3NcbiIpOwo+ID4gPiArCj4gPiA+ICsJLyogZm9yY2UgY2RjbGsgcHJvZ3JhbW1pbmcgKi8KPiA+ ID4gKwlkZXZfcHJpdi0+Y2RjbGsuaHcuY2RjbGsgPSAwOwo+ID4gPiArCj4gPiA+ICsJLyogZm9y Y2UgZnVsbCBQTEwgZGlzYWJsZSArIGVuYWJsZSAqLwo+ID4gPiArCWRldl9wcml2LT5jZGNsay5o dy52Y28gPSAtMTsKPiA+ID4gK30KPiA+ID4gKwo+ID4gPiArLyoqCj4gPiA+ICsgKiBjbmxfaW5p dF9jZGNsayAtIEluaXRpYWxpemUgQ0RDTEsgb24gQ05MCj4gPiA+ICsgKiBAZGV2X3ByaXY6IGk5 MTUgZGV2aWNlCj4gPiA+ICsgKgo+ID4gPiArICogSW5pdGlhbGl6ZSBDRENMSyBmb3IgQ05MLiBU aGlzIGlzIGdlbmVyYWxseQo+ID4gPiArICogZG9uZSBvbmx5IGR1cmluZyB0aGUgZGlzcGxheSBj b3JlIGluaXRpYWxpemF0aW9uIHNlcXVlbmNlLAo+ID4gPiArICogYWZ0ZXIgd2hpY2ggdGhlIERN QyB3aWxsIHRha2UgY2FyZSBvZiB0dXJuaW5nIENEQ0xLIG9mZi9vbgo+ID4gPiArICogYXMgbmVl ZGVkLgo+ID4gPiArICovCj4gPiA+ICsKPiA+IAo+ID4gRXh0cmEgdy9zLgo+IAo+IHdoYXQgZG8g eW91IG1lYW4gaGVyZT8KClRoZSBibGFuayBsaW5lIGJldHdlZW4gdGhlIGRvY2Jvb2sgcGFydCBh bmQgZnVuY3Rpb24gZGVmaW5pdGlvbi4KCj4gCj4gPiAKPiA+IExvb2tzIG9rOgo+ID4gUmV2aWV3 ZWQtYnk6IEltcmUgRGVhayA8aW1yZS5kZWFrQGludGVsLmNvbT4KPiAKPiB0aGFua3MKPiAKPiA+ IAo+ID4gPiArdm9pZCBjbmxfaW5pdF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCj4gPiA+ICt7Cj4gPiA+ICsJc3RydWN0IGludGVsX2NkY2xrX3N0YXRlIGNkY2xrX3N0 YXRlOwo+ID4gPiArCj4gPiA+ICsJY25sX3Nhbml0aXplX2NkY2xrKGRldl9wcml2KTsKPiA+ID4g Kwo+ID4gPiArCWlmIChkZXZfcHJpdi0+Y2RjbGsuaHcuY2RjbGsgIT0gMCAmJgo+ID4gPiArCSAg ICBkZXZfcHJpdi0+Y2RjbGsuaHcudmNvICE9IDApCj4gPiA+ICsJCXJldHVybjsKPiA+ID4gKwo+ ID4gPiArCWNkY2xrX3N0YXRlID0gZGV2X3ByaXYtPmNkY2xrLmh3Owo+ID4gPiArCj4gPiA+ICsJ Y2RjbGtfc3RhdGUuY2RjbGsgPSAxNjgwMDA7Cj4gPiA+ICsJY2RjbGtfc3RhdGUudmNvID0gY25s X2NkY2xrX3BsbF92Y28oZGV2X3ByaXYsIGNkY2xrX3N0YXRlLmNkY2xrKTsKPiA+ID4gKwo+ID4g PiArCWNubF9zZXRfY2RjbGsoZGV2X3ByaXYsICZjZGNsa19zdGF0ZSk7Cj4gPiA+ICt9Cj4gPiA+ ICsKPiA+ID4gKy8qKgo+ID4gPiArICogY25sX3VuaW5pdF9jZGNsayAtIFVuaW5pdGlhbGl6ZSBD RENMSyBvbiBDTkwKPiA+ID4gKyAqIEBkZXZfcHJpdjogaTkxNSBkZXZpY2UKPiA+ID4gKyAqCj4g PiA+ICsgKiBVbmluaXRpYWxpemUgQ0RDTEsgZm9yIENOTC4gVGhpcyBpcyBkb25lIG9ubHkKPiA+ ID4gKyAqIGR1cmluZyB0aGUgZGlzcGxheSBjb3JlIHVuaW5pdGlhbGl6YXRpb24gc2VxdWVuY2Uu Cj4gPiA+ICsgKi8KPiA+ID4gK3ZvaWQgY25sX3VuaW5pdF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCj4gPiA+ICt7Cj4gPiA+ICsJc3RydWN0IGludGVsX2NkY2xrX3N0 YXRlIGNkY2xrX3N0YXRlID0gZGV2X3ByaXYtPmNkY2xrLmh3Owo+ID4gPiArCj4gPiA+ICsJY2Rj bGtfc3RhdGUuY2RjbGsgPSBjZGNsa19zdGF0ZS5yZWY7Cj4gPiA+ICsJY2RjbGtfc3RhdGUudmNv ID0gMDsKPiA+ID4gKwo+ID4gPiArCWNubF9zZXRfY2RjbGsoZGV2X3ByaXYsICZjZGNsa19zdGF0 ZSk7Cj4gPiA+ICt9Cj4gPiA+ICsKPiA+ID4gIC8qKgo+ID4gPiAgICogaW50ZWxfY2RjbGtfc3Rh dGVfY29tcGFyZSAtIERldGVybWluZSBpZiB0d28gQ0RDTEsgc3RhdGVzIGRpZmZlcgo+ID4gPiAg ICogQGE6IGZpcnN0IENEQ0xLIHN0YXRlCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4g PiA+IGluZGV4IDdiYzBjMjUuLmE1MjZlNmUgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oCj4gPiA+IEBAIC0xMjgwLDYgKzEyODAsOCBAQCB2b2lkIGludGVsX2F1ZGlvX2Nv ZGVjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ID4gIC8qIGludGVs X2NkY2xrLmMgKi8KPiA+ID4gIHZvaWQgc2tsX2luaXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KTsKPiA+ID4gIHZvaWQgc2tsX3VuaW5pdF9jZGNsayhzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ID4gPiArdm9pZCBjbmxfaW5pdF9jZGNsayhzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ID4gPiArdm9pZCBjbmxfdW5pbml0X2Nk Y2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gPiA+ICB2b2lkIGJ4dF9p bml0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gPiA+ICB2b2lk IGJ4dF91bmluaXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiA+ ID4gIHZvaWQgaW50ZWxfaW5pdF9jZGNsa19ob29rcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpOwo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cnVudGltZV9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jCj4g PiA+IGluZGV4IDE3OTdjOTEuLjVjM2M2ZWMgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYwo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9ydW50aW1lX3BtLmMKPiA+ID4gQEAgLTI2OTgsNiArMjY5OCwxMTEgQEAgdm9p ZCBieHRfZGlzcGxheV9jb3JlX3VuaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCj4gPiA+ICAJbXV0ZXhfdW5sb2NrKCZwb3dlcl9kb21haW5zLT5sb2NrKTsKPiA+ID4gIH0K PiA+ID4gIAo+ID4gPiArI2RlZmluZSBDTkxfUFJPQ01PTl9JRFgodmFsKSBcCj4gPiA+ICsJKCgo dmFsKSAmIChQUk9DRVNTX0lORk9fTUFTSyB8IFZPTFRBR0VfSU5GT19NQVNLKSkgPj4gVk9MVEFH RV9JTkZPX1NISUZUKQo+ID4gPiArI2RlZmluZSBOVU1fQ05MX1BST0NNT04gXAo+ID4gPiArCShD TkxfUFJPQ01PTl9JRFgoVk9MVEFHRV9JTkZPX01BU0sgfCBQUk9DRVNTX0lORk9fTUFTSykgKyAx KQo+ID4gPiArCj4gPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGNubF9wcm9jbW9uIHsKPiA+ID4g Kwl1MzIgZHcxLCBkdzksIGR3MTA7Cj4gPiA+ICt9IGNubF9wcm9jbW9uX3ZhbHVlc1tOVU1fQ05M X1BST0NNT05dID0gewo+ID4gPiArCVtDTkxfUFJPQ01PTl9JRFgoVk9MVEFHRV9JTkZPXzBfODVW IHwgUFJPQ0VTU19JTkZPX0RPVF8wKV0gPQo+ID4gPiArCQl7IC5kdzEgPSAweDAwIDw8IDE2LCAu ZHc5ID0gMHg2MkFCNjdCQiwgLmR3MTAgPSAweDUxOTE0Rjk2LCB9LAo+ID4gPiArCVtDTkxfUFJP Q01PTl9JRFgoVk9MVEFHRV9JTkZPXzBfOTVWIHwgUFJPQ0VTU19JTkZPX0RPVF8wKV0gPQo+ID4g PiArCQl7IC5kdzEgPSAweDAwIDw8IDE2LCAuZHc5ID0gMHg4NkUxNzJDNywgLmR3MTAgPSAweDc3 Q0E1RUFCLCB9LAo+ID4gPiArCVtDTkxfUFJPQ01PTl9JRFgoVk9MVEFHRV9JTkZPXzBfOTVWIHwg UFJPQ0VTU19JTkZPX0RPVF8xKV0gPQo+ID4gPiArCQl7IC5kdzEgPSAweDAwIDw8IDE2LCAuZHc5 ID0gMHg5M0Y4N0ZFMSwgLmR3MTAgPSAweDhBRTg3MUM1LCB9LAo+ID4gPiArCVtDTkxfUFJPQ01P Tl9JRFgoVk9MVEFHRV9JTkZPXzFfMDVWIHwgUFJPQ0VTU19JTkZPX0RPVF8wKV0gPQo+ID4gPiAr CQl7IC5kdzEgPSAweDAwIDw8IDE2LCAuZHc5ID0gMHg5OEZBODJERCwgLmR3MTAgPSAweDg5RTQ2 REMxLCB9LAo+ID4gPiArCVtDTkxfUFJPQ01PTl9JRFgoVk9MVEFHRV9JTkZPXzFfMDVWIHwgUFJP Q0VTU19JTkZPX0RPVF8xKV0gPQo+ID4gPiArCQl7IC5kdzEgPSAweDQ0IDw8IDE2LCAuZHc5ID0g MHg5QTAwQUIyNSwgLmR3MTAgPSAweDhBRTM4RkYxLCB9LAo+ID4gPiArfTsKPiA+ID4gKwo+ID4g PiArc3RhdGljIHZvaWQgY25sX2Rpc3BsYXlfY29yZV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwgYm9vbCByZXN1bWUpCj4gPiA+ICt7Cj4gPiA+ICsJc3RydWN0IGk5MTVf cG93ZXJfZG9tYWlucyAqcG93ZXJfZG9tYWlucyA9ICZkZXZfcHJpdi0+cG93ZXJfZG9tYWluczsK PiA+ID4gKwljb25zdCBzdHJ1Y3QgY25sX3Byb2Ntb24gKnByb2Ntb247Cj4gPiA+ICsJc3RydWN0 IGk5MTVfcG93ZXJfd2VsbCAqd2VsbDsKPiA+ID4gKwl1MzIgdmFsOwo+ID4gPiArCj4gPiA+ICsJ Z2VuOV9zZXRfZGNfc3RhdGUoZGV2X3ByaXYsIERDX1NUQVRFX0RJU0FCTEUpOwo+ID4gPiArCj4g PiA+ICsJLyogMS4gRW5hYmxlIFBDSCBSZXNldCBIYW5kc2hha2UgKi8KPiA+ID4gKwl2YWwgPSBJ OTE1X1JFQUQoSFNXX05ERV9SU1RXUk5fT1BUKTsKPiA+ID4gKwl2YWwgfD0gUkVTRVRfUENIX0hB TkRTSEFLRV9FTkFCTEU7Cj4gPiA+ICsJSTkxNV9XUklURShIU1dfTkRFX1JTVFdSTl9PUFQsIHZh bCk7Cj4gPiA+ICsKPiA+ID4gKwkvKiAyLiBFbmFibGUgQ29tcCAqLwo+ID4gPiArCXZhbCA9IEk5 MTVfUkVBRChDSElDS0VOX01JU0NfMik7Cj4gPiA+ICsJdmFsICY9IH5DT01QX1BXUl9ET1dOOwo+ ID4gPiArCUk5MTVfV1JJVEUoQ0hJQ0tFTl9NSVNDXzIsIHZhbCk7Cj4gPiA+ICsKPiA+ID4gKwl2 YWwgPSBJOTE1X1JFQUQoQ05MX1BPUlRfQ09NUF9EVzMpOwo+ID4gPiArCXByb2Ntb24gPSAmY25s X3Byb2Ntb25fdmFsdWVzW0NOTF9QUk9DTU9OX0lEWCh2YWwpXTsKPiA+ID4gKwo+ID4gPiArCVdB Uk5fT04ocHJvY21vbi0+ZHcxMCA9PSAwKTsKPiA+ID4gKwo+ID4gPiArCXZhbCA9IEk5MTVfUkVB RChDTkxfUE9SVF9DT01QX0RXMSk7Cj4gPiA+ICsJdmFsICY9IH4oKDB4ZmYgPDwgMTYpIHwgMHhm Zik7Cj4gPiA+ICsJdmFsIHw9IHByb2Ntb24tPmR3MTsKPiA+ID4gKwlJOTE1X1dSSVRFKENOTF9Q T1JUX0NPTVBfRFcxLCB2YWwpOwo+ID4gPiArCj4gPiA+ICsJSTkxNV9XUklURShDTkxfUE9SVF9D T01QX0RXOSwgcHJvY21vbi0+ZHc5KTsKPiA+ID4gKwlJOTE1X1dSSVRFKENOTF9QT1JUX0NPTVBf RFcxMCwgcHJvY21vbi0+ZHcxMCk7Cj4gPiA+ICsKPiA+ID4gKwl2YWwgPSBJOTE1X1JFQUQoQ05M X1BPUlRfQ09NUF9EVzApOwo+ID4gPiArCXZhbCB8PSBDT01QX0lOSVQ7Cj4gPiA+ICsJSTkxNV9X UklURShDTkxfUE9SVF9DT01QX0RXMCwgdmFsKTsKPiA+ID4gKwo+ID4gPiArCS8qIDMuICovCj4g PiA+ICsJdmFsID0gSTkxNV9SRUFEKENOTF9QT1JUX0NMMUNNX0RXNSk7Cj4gPiA+ICsJdmFsIHw9 IENMX1BPV0VSX0RPV05fRU5BQkxFOwo+ID4gPiArCUk5MTVfV1JJVEUoQ05MX1BPUlRfQ0wxQ01f RFc1LCB2YWwpOwo+ID4gPiArCj4gPiA+ICsJLyogNC4gRW5hYmxlIFBvd2VyIFdlbGwgMSAoUEcx KSBhbmQgQXV4IElPIFBvd2VyICovCj4gPiA+ICsJbXV0ZXhfbG9jaygmcG93ZXJfZG9tYWlucy0+ bG9jayk7Cj4gPiA+ICsJd2VsbCA9IGxvb2t1cF9wb3dlcl93ZWxsKGRldl9wcml2LCBTS0xfRElT UF9QV18xKTsKPiA+ID4gKwlpbnRlbF9wb3dlcl93ZWxsX2VuYWJsZShkZXZfcHJpdiwgd2VsbCk7 Cj4gPiA+ICsJbXV0ZXhfdW5sb2NrKCZwb3dlcl9kb21haW5zLT5sb2NrKTsKPiA+ID4gKwo+ID4g PiArCS8qIDUuIEVuYWJsZSBDRCBjbG9jayAqLwo+ID4gPiArCWNubF9pbml0X2NkY2xrKGRldl9w cml2KTsKPiA+ID4gKwo+ID4gPiArCS8qIDYuIEVuYWJsZSBEQlVGICovCj4gPiA+ICsJZ2VuOV9k YnVmX2VuYWJsZShkZXZfcHJpdik7Cj4gPiA+ICt9Cj4gPiA+ICsKPiA+ID4gKyN1bmRlZiBDTkxf UFJPQ01PTl9JRFgKPiA+ID4gKyN1bmRlZiBOVU1fQ05MX1BST0NNT04KPiA+ID4gKwo+ID4gPiAr c3RhdGljIHZvaWQgY25sX2Rpc3BsYXlfY29yZV91bmluaXQoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQo+ID4gPiArewo+ID4gPiArCXN0cnVjdCBpOTE1X3Bvd2VyX2RvbWFpbnMg KnBvd2VyX2RvbWFpbnMgPSAmZGV2X3ByaXYtPnBvd2VyX2RvbWFpbnM7Cj4gPiA+ICsJc3RydWN0 IGk5MTVfcG93ZXJfd2VsbCAqd2VsbDsKPiA+ID4gKwl1MzIgdmFsOwo+ID4gPiArCj4gPiA+ICsJ Z2VuOV9zZXRfZGNfc3RhdGUoZGV2X3ByaXYsIERDX1NUQVRFX0RJU0FCTEUpOwo+ID4gPiArCj4g PiA+ICsJLyogMS4gRGlzYWJsZSBhbGwgZGlzcGxheSBlbmdpbmUgZnVuY3Rpb25zIC0+IGFyZWFk eSBkb25lICovCj4gPiA+ICsKPiA+ID4gKwkvKiAyLiBEaXNhYmxlIERCVUYgKi8KPiA+ID4gKwln ZW45X2RidWZfZGlzYWJsZShkZXZfcHJpdik7Cj4gPiA+ICsKPiA+ID4gKwkvKiAzLiBEaXNhYmxl IENEIGNsb2NrICovCj4gPiA+ICsJY25sX3VuaW5pdF9jZGNsayhkZXZfcHJpdik7Cj4gPiA+ICsK PiA+ID4gKwkvKiA0LiBEaXNhYmxlIFBvd2VyIFdlbGwgMSAoUEcxKSBhbmQgQXV4IElPIFBvd2Vy ICovCj4gPiA+ICsJbXV0ZXhfbG9jaygmcG93ZXJfZG9tYWlucy0+bG9jayk7Cj4gPiA+ICsJd2Vs bCA9IGxvb2t1cF9wb3dlcl93ZWxsKGRldl9wcml2LCBTS0xfRElTUF9QV18xKTsKPiA+ID4gKwlp bnRlbF9wb3dlcl93ZWxsX2Rpc2FibGUoZGV2X3ByaXYsIHdlbGwpOwo+ID4gPiArCW11dGV4X3Vu bG9jaygmcG93ZXJfZG9tYWlucy0+bG9jayk7Cj4gPiA+ICsKPiA+ID4gKwkvKiA1LiBEaXNhYmxl IENvbXAgKi8KPiA+ID4gKwl2YWwgPSBJOTE1X1JFQUQoQ0hJQ0tFTl9NSVNDXzIpOwo+ID4gPiAr CXZhbCB8PSBDT01QX1BXUl9ET1dOOwo+ID4gPiArCUk5MTVfV1JJVEUoQ0hJQ0tFTl9NSVNDXzIs IHZhbCk7Cj4gPiA+ICt9Cj4gPiA+ICsKPiA+ID4gIHN0YXRpYyB2b2lkIGNodl9waHlfY29udHJv bF9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiA+ID4gIHsKPiA+ID4g IAlzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsICpjbW5fYmMgPQo+ID4gPiBAQCAtMjgzMCw3ICsyOTM1 LDkgQEAgdm9pZCBpbnRlbF9wb3dlcl9kb21haW5zX2luaXRfaHcoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LCBib29sIHJlc3VtZSkKPiA+ID4gIAo+ID4gPiAgCXBvd2VyX2RvbWFp bnMtPmluaXRpYWxpemluZyA9IHRydWU7Cj4gPiA+ICAKPiA+ID4gLQlpZiAoSVNfR0VOOV9CQyhk ZXZfcHJpdikpIHsKPiA+ID4gKwlpZiAoSVNfQ0FOTk9OTEFLRShkZXZfcHJpdikpIHsKPiA+ID4g KwkJY25sX2Rpc3BsYXlfY29yZV9pbml0KGRldl9wcml2LCByZXN1bWUpOwo+ID4gPiArCX0gZWxz ZSBpZiAoSVNfR0VOOV9CQyhkZXZfcHJpdikpIHsKPiA+ID4gIAkJc2tsX2Rpc3BsYXlfY29yZV9p bml0KGRldl9wcml2LCByZXN1bWUpOwo+ID4gPiAgCX0gZWxzZSBpZiAoSVNfR0VOOV9MUChkZXZf cHJpdikpIHsKPiA+ID4gIAkJYnh0X2Rpc3BsYXlfY29yZV9pbml0KGRldl9wcml2LCByZXN1bWUp Owo+ID4gPiBAQCAtMjg2OSw3ICsyOTc2LDkgQEAgdm9pZCBpbnRlbF9wb3dlcl9kb21haW5zX3N1 c3BlbmQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ID4gPiAgCWlmICghaTkx NS5kaXNhYmxlX3Bvd2VyX3dlbGwpCj4gPiA+ICAJCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KGRl dl9wcml2LCBQT1dFUl9ET01BSU5fSU5JVCk7Cj4gPiA+ICAKPiA+ID4gLQlpZiAoSVNfR0VOOV9C QyhkZXZfcHJpdikpCj4gPiA+ICsJaWYgKElTX0NBTk5PTkxBS0UoZGV2X3ByaXYpKQo+ID4gPiAr CQljbmxfZGlzcGxheV9jb3JlX3VuaW5pdChkZXZfcHJpdik7Cj4gPiA+ICsJZWxzZSBpZiAoSVNf R0VOOV9CQyhkZXZfcHJpdikpCj4gPiA+ICAJCXNrbF9kaXNwbGF5X2NvcmVfdW5pbml0KGRldl9w cml2KTsKPiA+ID4gIAllbHNlIGlmIChJU19HRU45X0xQKGRldl9wcml2KSkKPiA+ID4gIAkJYnh0 X2Rpc3BsYXlfY29yZV91bmluaXQoZGV2X3ByaXYpOwo+ID4gPiAtLSAKPiA+ID4gMS45LjEKPiA+ ID4gCj4gPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Cj4gPiA+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiA+ID4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwo+ID4gPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeAo+IApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9p bnRlbC1nZngK