From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Vivi, Rodrigo" Subject: Re: [PATCH] drm/i915/cnl: Implement CNL display init/unit sequence Date: Mon, 5 Jun 2017 16:38:45 +0000 Message-ID: <1496680715.20038.5.camel@rdvivi-vienna> 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> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6017E8999A for ; Mon, 5 Jun 2017 16:38:47 +0000 (UTC) In-Reply-To: <20170605150704.GB28137@ideak-desk.fi.intel.com> Content-Language: en-US Content-ID: <4759C1CC52B05541AF9EF1FF4049D232@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Deak, Imre" Cc: "intel-gfx@lists.freedesktop.org" , "Zanoni, Paulo R" List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCAyMDE3LTA2LTA1IGF0IDE4OjA3ICswMzAwLCBJbXJlIERlYWsgd3JvdGU6DQo+IE9u IFRodSwgQXByIDEzLCAyMDE3IGF0IDA5OjEzOjAyQU0gLTA3MDAsIFJvZHJpZ28gVml2aSB3cm90 ZToNCj4gPiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwu Y29tPg0KPiA+IA0KPiA+IEltcGxlbWVudCB0aGUgQ05MIGRpc3BsYXkgaW5pdC91bmluaXQgc2Vx dWVuY2UgYXMgb3V0bGluZWQgaW4gQnNwZWMuDQo+ID4gDQo+ID4gUXVpdGUgc2ltaWxhciB0byBT S0wvQlhULiBUaGUgbWFpbiBjb21wbGljYWl0b24gaXMgcHJvYmFibHkgdGhlIGV4dHJhDQo+ID4g cHJvY21vbiBzZXR1cCB3ZSBtdXN0IGRvIGJhc2VkIG9uIHRoZSBwcm9jZXNzL3ZvbHRhZ2UgaW5m b3JtYXRpb24gd2UNCj4gPiBjYW4gcmVhZCBvdXQgZnJvbSBzb21lIHJlZ2lzdGVyLg0KPiA+IA0K PiA+IEZvciBub3cgd2UgYXNzdW1lIERNQyB3aWxsIGhhbmRsZSB0aGUgQVVYIHdlbGxzLCBhbmQg d2UnbGwganVzdCBlbmFibGUNCj4gPiBhbGwgb2YgdGhlbSBkdXJpbmcgdGhlIGluaXQgc2VxdWVu Y2UuIEV2ZW4gaWYgRE1DIHdpbGwgaGFuZGxlIHRoZW0sIHdlDQo+ID4gc2hvdWxkIHBlcmhhcHMg dHJpbSB0aGUgc2V0IG9mIGVuYWJsZWQgd2VsbHMgYmFzZWQgb24gd2hpY2ggRERJIHBvcnRzDQo+ ID4gYXJlIGFjdHVhbGx5IHByZXNlbnQuDQo+IA0KPiBUaGUgYWJvdmUgbmVlZHMgdG8gYmUgYWxp Z25lZCB3aXRoIHRoZSBjdXJyZW50IHZlcnNpb24gb2YgdGhlIGNvZGUuDQo+IA0KPiBZZXMsIGxv b2tzIGxpa2UgRE1DIHNhdmVzL3Jlc3RvcmVzIHRoZSBzdGF0ZSBvZiBib3RoIEFVWCBhbmQgRERJ IHBvd2VyDQo+IHdlbGxzLiBUaGUgc3BlYyBzYXlzIHRvIGVuYWJsZSB0aGUgQVVYIHdlbGxzIGR1 cmluZyBpbml0LCBidXQgSSB0aGluaw0KPiBpdCdzIG9rIHRvIGRvIHRoaXMgb24tZGVtYW5kLiAN Cg0KSW5kZWVkLiBJIHVwZGF0ZWQgdGhlIGNvZGUgZHVyaW5nIHNvbWUgcmViYXNlIGJ1dCBmb3Jn b3QgdG8gdXBkYXRlIHRoZQ0KY29tbWl0IG1lc3NhZ2UuIEkgd2lsbCByZW1vdmUgdGhpcyBjaHVj ayBvbiBuZXh0IHJlYmFzZS4NCg0KPiANCj4gPiANCj4gPiB2Mjogcy9za2xfZGJ1Zi9nZW45X2Ri dWYvIHRvIGZvbGxvdyB1cHN0cmVhbQ0KPiA+ICAgICBieHQgbmVlZGVkIGEgY2RjbGsgc2FuaXRp emUgc3RlcCwgc28gbGV0J3MgYWRkIGl0IGZvciBjbmwgdG9vDQo+ID4gdjM6IHMvQ0hJQ0tFTl9N SVNDXzEvQ0hJQ0tFTl9NSVNDXzIvIChBbmRlcikNCj4gPiB2NDogUmViYXNlZCBieSBSb2RyaWdv IGFmdGVyIFZpbGxlJ3MgY2RjbGsgcmV3b3JrDQo+ID4gdjU6IFJlbW92ZWQgdW5lY2Vzc2FyeSBB dXggSU8gZm9yY2VkIGVuYWJsZS9kaXNhYmxlLCBGaXggRFcxMCBzZXR1cA0KPiA+ICAgICBGaXgg cHJvY3BvbiBNYXNrLiAoQ3JlZGl0cy10byBQYXVsbyBhbmQgQ2xpbnQpDQo+ID4gICAgIFJlbW92 ZSBBMCB3b3JrYXJvdW5kLg0KPiA+IHY2OiBSZWJhc2VkIG9uIHRvcCBvZiByZWNlbnQgY29kZSAo Um9kcmlnbykuDQo+ID4gdjc6IFJlc3BlY3QgdGhlIG9yZGVyIG9mIHNhbml0aXplXyBhZnRlciBz ZXRfDQo+ID4gICAgIChEb25lIGJ5IFJvZHJpZ28sIFJlcXVlc3RlZCBieSBWaWxsZSkNCj4gPiB2 ODogKFJvZHJpZ28pIFJlbW92ZSBDSElDS0VOX01JU0NfMiBkb3VibGUgZGVmaW5pdGlvbi4NCj4g PiANCj4gPiBDYzogUGF1bG8gWmFub25pIDxwYXVsby5yLnphbm9uaUBpbnRlbC5jb20+DQo+ID4g Q2M6IENsaW50IFRheWxvciA8Y2xpbnRvbi5hLnRheWxvckBpbnRlbC5jb20+DQo+ID4gU2lnbmVk LW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4N Cj4gPiBTaWduZWQtb2ZmLWJ5OiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+ DQo+ID4gLS0tDQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggICAgICAgICB8 ICAyMyArKysrKysrDQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NkY2xrLmMgICAg ICB8IDEwOCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4gPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgICAgIHwgICAyICsNCj4gPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcnVudGltZV9wbS5jIHwgMTEzICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKystDQo+ID4gIDQgZmlsZXMgY2hhbmdlZCwgMjQ0IGluc2VydGlvbnMoKyksIDIgZGVsZXRp b25zKC0pDQo+ID4gDQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf cmVnLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oDQo+ID4gaW5kZXggODM1Mzg5 Mi4uOWIyZDhjMCAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Jl Zy5oDQo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaA0KPiA+IEBAIC0x NjU1LDYgKzE2NTUsOSBAQCBlbnVtIHNrbF9kaXNwX3Bvd2VyX3dlbGxzIHsNCj4gPiAgI2RlZmlu ZSAgIFBIWV9SRVNFUlZFRAkJCSgxIDw8IDcpDQo+ID4gICNkZWZpbmUgQlhUX1BPUlRfQ0wxQ01f RFcwKHBoeSkJCV9CWFRfUEhZKChwaHkpLCBfUE9SVF9DTDFDTV9EVzBfQkMpDQo+ID4gIA0KPiA+ ICsjZGVmaW5lIENOTF9QT1JUX0NMMUNNX0RXNQkJX01NSU8oMHgxNjIwMTQpDQo+ID4gKyNkZWZp bmUgICBDTF9QT1dFUl9ET1dOX0VOQUJMRQkJKDEgPDwgNCkNCj4gPiArDQo+ID4gICNkZWZpbmUg X1BPUlRfQ0wxQ01fRFc5X0EJCTB4MTYyMDI0DQo+ID4gICNkZWZpbmUgX1BPUlRfQ0wxQ01fRFc5 X0JDCQkweDZDMDI0DQo+ID4gICNkZWZpbmUgICBJUkVGMFJDX09GRlNFVF9TSElGVAkJOA0KPiA+ IEBAIC0xNjg3LDYgKzE2OTAsMjUgQEAgZW51bSBza2xfZGlzcF9wb3dlcl93ZWxscyB7DQo+ID4g ICNkZWZpbmUgQlhUX1BPUlRfQ0wyQ01fRFc2KHBoeSkJCV9CWFRfUEhZKChwaHkpLCBfUE9SVF9D TDJDTV9EVzZfQkMpDQo+ID4gICNkZWZpbmUgICBEVzZfT0xET19EWU5fUFdSX0RPV05fRU4JKDEg PDwgMjgpDQo+ID4gIA0KPiA+ICsjZGVmaW5lIENOTF9QT1JUX0NPTVBfRFcwCQlfTU1JTygweDE2 MjEwMCkNCj4gPiArI2RlZmluZSAgIENPTVBfSU5JVAkJCSgxIDw8IDMxKQ0KPiA+ICsjZGVmaW5l IENOTF9QT1JUX0NPTVBfRFcxCQlfTU1JTygweDE2MjEwNCkNCj4gPiArI2RlZmluZSBDTkxfUE9S VF9DT01QX0RXMwkJX01NSU8oMHgxNjIxMGMpDQo+ID4gKyNkZWZpbmUgICBQUk9DRVNTX0lORk9f RE9UXzAJCSgwIDw8IDI2KQ0KPiA+ICsjZGVmaW5lICAgUFJPQ0VTU19JTkZPX0RPVF8xCQkoMSA8 PCAyNikNCj4gPiArI2RlZmluZSAgIFBST0NFU1NfSU5GT19ET1RfNAkJKDIgPDwgMjYpDQo+ID4g KyNkZWZpbmUgICBQUk9DRVNTX0lORk9fTUFTSwkJKDcgPDwgMjYpDQo+ID4gKyNkZWZpbmUgICBQ Uk9DRVNTX0lORk9fU0hJRlQJCTI2DQo+ID4gKyNkZWZpbmUgICBWT0xUQUdFX0lORk9fMF84NVYJ CSgwIDw8IDI0KQ0KPiA+ICsjZGVmaW5lICAgVk9MVEFHRV9JTkZPXzBfOTVWCQkoMSA8PCAyNCkN Cj4gPiArI2RlZmluZSAgIFZPTFRBR0VfSU5GT18xXzA1VgkJKDIgPDwgMjQpDQo+ID4gKyNkZWZp bmUgICBWT0xUQUdFX0lORk9fTUFTSwkJKDMgPDwgMjQpDQo+ID4gKyNkZWZpbmUgICBWT0xUQUdF X0lORk9fU0hJRlQJCTI0DQo+ID4gKyNkZWZpbmUgQ05MX1BPUlRfQ09NUF9EVzgJCV9NTUlPKDB4 MTYyMTIwKQ0KPiA+ICsjZGVmaW5lICAgUFJESUNfSUNPTVBfRElTCQkoMSA8PCAxNCkNCj4gDQo+ IERXOCBsb29rcyB0byBiZSB1bnVzZWQuDQoNCkkgYmVsaWV2ZSBhbiBlYXJseSB3L2EgZm9yIEEw IHdhcyB1c2luZyB0aGF0LCBidXQgdGhhdCBnb3QgcmVtb3ZlLg0KDQpJIHdpbGwgYWxzbyByZW1v dmUgdGhpcy4NCg0KPiANCj4gPiArI2RlZmluZSBDTkxfUE9SVF9DT01QX0RXOQkJX01NSU8oMHgx NjIxMjQpDQo+ID4gKyNkZWZpbmUgQ05MX1BPUlRfQ09NUF9EVzEwCQlfTU1JTygweDE2MjEyOCkN Cj4gPiArDQo+ID4gIC8qIEJYVCBQSFkgUmVmIHJlZ2lzdGVycyAqLw0KPiA+ICAjZGVmaW5lIF9Q T1JUX1JFRl9EVzNfQQkJCTB4MTYyMThDDQo+ID4gICNkZWZpbmUgX1BPUlRfUkVGX0RXM19CQwkJ MHg2QzE4Qw0KPiA+IEBAIC02NTEzLDYgKzY1MzUsNyBAQCBlbnVtIHsNCj4gPiAgI2RlZmluZSAg S1ZNX0NPTkZJR19DSEFOR0VfTk9USUZJQ0FUSU9OX1NFTEVDVAkoMSA8PCAxNCkNCj4gPiAgDQo+ ID4gICNkZWZpbmUgQ0hJQ0tFTl9NSVNDXzIJCV9NTUlPKDB4NDIwODQpDQo+ID4gKyNkZWZpbmUg IENPTVBfUFdSX0RPV04JCSgxIDw8IDIzKQ0KPiA+ICAjZGVmaW5lICBHTEtfQ0wwX1BXUl9ET1dO CSgxIDw8IDEwKQ0KPiA+ICAjZGVmaW5lICBHTEtfQ0wxX1BXUl9ET1dOCSgxIDw8IDExKQ0KPiA+ ICAjZGVmaW5lICBHTEtfQ0wyX1BXUl9ET1dOCSgxIDw8IDEyKQ0KPiA+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jZGNsay5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfY2RjbGsuYw0KPiA+IGluZGV4IGJlZTQzOTQuLmY5YmExZTcgMTAwNjQ0DQo+ID4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY2RjbGsuYw0KPiA+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2NkY2xrLmMNCj4gPiBAQCAtMTU1NSw2ICsxNTU1LDExNCBAQCBz dGF0aWMgdm9pZCBjbmxfc2V0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwNCj4gPiAgCWludGVsX3VwZGF0ZV9jZGNsayhkZXZfcHJpdik7DQo+ID4gIH0NCj4gPiAgDQo+ ID4gK3N0YXRpYyBpbnQgY25sX2NkY2xrX3BsbF92Y28oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LCBpbnQgY2RjbGspDQo+ID4gK3sNCj4gPiArCWludCByYXRpbzsNCj4gPiArDQo+ ID4gKwlpZiAoY2RjbGsgPT0gZGV2X3ByaXYtPmNkY2xrLmh3LnJlZikNCj4gPiArCQlyZXR1cm4g MDsNCj4gPiArDQo+ID4gKwlzd2l0Y2ggKGNkY2xrKSB7DQo+ID4gKwlkZWZhdWx0Og0KPiA+ICsJ CU1JU1NJTkdfQ0FTRShjZGNsayk7DQo+ID4gKwljYXNlIDE2ODAwMDoNCj4gPiArCWNhc2UgMzM2 MDAwOg0KPiA+ICsJCXJhdGlvID0gZGV2X3ByaXYtPmNkY2xrLmh3LnJlZiA9PSAxOTIwMCA/IDM1 IDogMjg7DQo+ID4gKwkJYnJlYWs7DQo+ID4gKwljYXNlIDUyODAwMDoNCj4gPiArCQlyYXRpbyA9 IGRldl9wcml2LT5jZGNsay5ody5yZWYgPT0gMTkyMDAgPyA1NSA6IDQ0Ow0KPiA+ICsJCWJyZWFr Ow0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCXJldHVybiBkZXZfcHJpdi0+Y2RjbGsuaHcucmVmICog cmF0aW87DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyB2b2lkIGNubF9zYW5pdGl6ZV9jZGNs ayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpDQo+ID4gK3sNCj4gPiArCXUzMiBj ZGN0bCwgZXhwZWN0ZWQ7DQo+ID4gKw0KPiA+ICsJaW50ZWxfdXBkYXRlX2NkY2xrKGRldl9wcml2 KTsNCj4gPiArDQo+ID4gKwlpZiAoZGV2X3ByaXYtPmNkY2xrLmh3LnZjbyA9PSAwIHx8DQo+ID4g KwkgICAgZGV2X3ByaXYtPmNkY2xrLmh3LmNkY2xrID09IGRldl9wcml2LT5jZGNsay5ody5yZWYp DQo+ID4gKwkJZ290byBzYW5pdGl6ZTsNCj4gPiArDQo+ID4gKwkvKiBEUExMIG9rYXk7IHZlcmlm eSB0aGUgY2RjbG9jaw0KPiA+ICsJICoNCj4gPiArCSAqIFNvbWUgQklPUyB2ZXJzaW9ucyBsZWF2 ZSBhbiBpbmNvcnJlY3QgZGVjaW1hbCBmcmVxdWVuY3kgdmFsdWUgYW5kDQo+ID4gKwkgKiBzZXQg cmVzZXJ2ZWQgTUJaIGJpdHMgaW4gQ0RDTEtfQ1RMIGF0IGxlYXN0IGR1cmluZyBleGl0aW5nIGZy b20gUzQsDQo+ID4gKwkgKiBzbyBzYW5pdGl6ZSB0aGlzIHJlZ2lzdGVyLg0KPiA+ICsJICovDQo+ ID4gKwljZGN0bCA9IEk5MTVfUkVBRChDRENMS19DVEwpOw0KPiA+ICsJLyoNCj4gPiArCSAqIExl dCdzIGlnbm9yZSB0aGUgcGlwZSBmaWVsZCwgc2luY2UgQklPUyBjb3VsZCBoYXZlIGNvbmZpZ3Vy ZWQgdGhlDQo+ID4gKwkgKiBkaXZpZGVycyBib3RoIHN5bmNoaW5nIHRvIGFuIGFjdGl2ZSBwaXBl LCBvciBhc3luY2hyb25vdXNseQ0KPiA+ICsJICogKFBJUEVfTk9ORSkuDQo+ID4gKwkgKi8NCj4g PiArCWNkY3RsICY9IH5CWFRfQ0RDTEtfQ0QyWF9QSVBFX05PTkU7DQo+ID4gKw0KPiA+ICsJZXhw ZWN0ZWQgPSAoY2RjdGwgJiBCWFRfQ0RDTEtfQ0QyWF9ESVZfU0VMX01BU0spIHwNCj4gPiArCQkg ICBza2xfY2RjbGtfZGVjaW1hbChkZXZfcHJpdi0+Y2RjbGsuaHcuY2RjbGspOw0KPiA+ICsNCj4g PiArCWlmIChjZGN0bCA9PSBleHBlY3RlZCkNCj4gPiArCQkvKiBBbGwgd2VsbDsgbm90aGluZyB0 byBzYW5pdGl6ZSAqLw0KPiA+ICsJCXJldHVybjsNCj4gPiArDQo+ID4gK3Nhbml0aXplOg0KPiA+ ICsJRFJNX0RFQlVHX0tNUygiU2FuaXRpemluZyBjZGNsayBwcm9ncmFtbWVkIGJ5IHByZS1vc1xu Iik7DQo+ID4gKw0KPiA+ICsJLyogZm9yY2UgY2RjbGsgcHJvZ3JhbW1pbmcgKi8NCj4gPiArCWRl dl9wcml2LT5jZGNsay5ody5jZGNsayA9IDA7DQo+ID4gKw0KPiA+ICsJLyogZm9yY2UgZnVsbCBQ TEwgZGlzYWJsZSArIGVuYWJsZSAqLw0KPiA+ICsJZGV2X3ByaXYtPmNkY2xrLmh3LnZjbyA9IC0x Ow0KPiA+ICt9DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArICogY25sX2luaXRfY2RjbGsgLSBJbml0 aWFsaXplIENEQ0xLIG9uIENOTA0KPiA+ICsgKiBAZGV2X3ByaXY6IGk5MTUgZGV2aWNlDQo+ID4g KyAqDQo+ID4gKyAqIEluaXRpYWxpemUgQ0RDTEsgZm9yIENOTC4gVGhpcyBpcyBnZW5lcmFsbHkN Cj4gPiArICogZG9uZSBvbmx5IGR1cmluZyB0aGUgZGlzcGxheSBjb3JlIGluaXRpYWxpemF0aW9u IHNlcXVlbmNlLA0KPiA+ICsgKiBhZnRlciB3aGljaCB0aGUgRE1DIHdpbGwgdGFrZSBjYXJlIG9m IHR1cm5pbmcgQ0RDTEsgb2ZmL29uDQo+ID4gKyAqIGFzIG5lZWRlZC4NCj4gPiArICovDQo+ID4g Kw0KPiANCj4gRXh0cmEgdy9zLg0KDQp3aGF0IGRvIHlvdSBtZWFuIGhlcmU/DQoNCj4gDQo+IExv b2tzIG9rOg0KPiBSZXZpZXdlZC1ieTogSW1yZSBEZWFrIDxpbXJlLmRlYWtAaW50ZWwuY29tPg0K DQp0aGFua3MNCg0KPiANCj4gPiArdm9pZCBjbmxfaW5pdF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpDQo+ID4gK3sNCj4gPiArCXN0cnVjdCBpbnRlbF9jZGNsa19zdGF0 ZSBjZGNsa19zdGF0ZTsNCj4gPiArDQo+ID4gKwljbmxfc2FuaXRpemVfY2RjbGsoZGV2X3ByaXYp Ow0KPiA+ICsNCj4gPiArCWlmIChkZXZfcHJpdi0+Y2RjbGsuaHcuY2RjbGsgIT0gMCAmJg0KPiA+ ICsJICAgIGRldl9wcml2LT5jZGNsay5ody52Y28gIT0gMCkNCj4gPiArCQlyZXR1cm47DQo+ID4g Kw0KPiA+ICsJY2RjbGtfc3RhdGUgPSBkZXZfcHJpdi0+Y2RjbGsuaHc7DQo+ID4gKw0KPiA+ICsJ Y2RjbGtfc3RhdGUuY2RjbGsgPSAxNjgwMDA7DQo+ID4gKwljZGNsa19zdGF0ZS52Y28gPSBjbmxf Y2RjbGtfcGxsX3ZjbyhkZXZfcHJpdiwgY2RjbGtfc3RhdGUuY2RjbGspOw0KPiA+ICsNCj4gPiAr CWNubF9zZXRfY2RjbGsoZGV2X3ByaXYsICZjZGNsa19zdGF0ZSk7DQo+ID4gK30NCj4gPiArDQo+ ID4gKy8qKg0KPiA+ICsgKiBjbmxfdW5pbml0X2NkY2xrIC0gVW5pbml0aWFsaXplIENEQ0xLIG9u IENOTA0KPiA+ICsgKiBAZGV2X3ByaXY6IGk5MTUgZGV2aWNlDQo+ID4gKyAqDQo+ID4gKyAqIFVu aW5pdGlhbGl6ZSBDRENMSyBmb3IgQ05MLiBUaGlzIGlzIGRvbmUgb25seQ0KPiA+ICsgKiBkdXJp bmcgdGhlIGRpc3BsYXkgY29yZSB1bmluaXRpYWxpemF0aW9uIHNlcXVlbmNlLg0KPiA+ICsgKi8N Cj4gPiArdm9pZCBjbmxfdW5pbml0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikNCj4gPiArew0KPiA+ICsJc3RydWN0IGludGVsX2NkY2xrX3N0YXRlIGNkY2xrX3N0YXRl ID0gZGV2X3ByaXYtPmNkY2xrLmh3Ow0KPiA+ICsNCj4gPiArCWNkY2xrX3N0YXRlLmNkY2xrID0g Y2RjbGtfc3RhdGUucmVmOw0KPiA+ICsJY2RjbGtfc3RhdGUudmNvID0gMDsNCj4gPiArDQo+ID4g Kwljbmxfc2V0X2NkY2xrKGRldl9wcml2LCAmY2RjbGtfc3RhdGUpOw0KPiA+ICt9DQo+ID4gKw0K PiA+ICAvKioNCj4gPiAgICogaW50ZWxfY2RjbGtfc3RhdGVfY29tcGFyZSAtIERldGVybWluZSBp ZiB0d28gQ0RDTEsgc3RhdGVzIGRpZmZlcg0KPiA+ICAgKiBAYTogZmlyc3QgQ0RDTEsgc3RhdGUN Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaA0KPiA+IGluZGV4IDdiYzBjMjUuLmE1MjZlNmUg MTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgNCj4gPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaA0KPiA+IEBAIC0xMjgwLDYgKzEy ODAsOCBAQCB2b2lkIGludGVsX2F1ZGlvX2NvZGVjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlciwNCj4gPiAgLyogaW50ZWxfY2RjbGsuYyAqLw0KPiA+ICB2b2lkIHNrbF9pbml0 X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7DQo+ID4gIHZvaWQgc2ts X3VuaW5pdF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOw0KPiA+ICt2 b2lkIGNubF9pbml0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7DQo+ ID4gK3ZvaWQgY25sX3VuaW5pdF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpOw0KPiA+ICB2b2lkIGJ4dF9pbml0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdik7DQo+ID4gIHZvaWQgYnh0X3VuaW5pdF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpOw0KPiA+ICB2b2lkIGludGVsX2luaXRfY2RjbGtfaG9va3Moc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsNCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcnVudGltZV9wbS5jDQo+ID4gaW5kZXggMTc5N2M5MS4uNWMzYzZlYyAxMDA2NDQNCj4gPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMNCj4gPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMNCj4gPiBAQCAtMjY5OCw2ICsy Njk4LDExMSBAQCB2b2lkIGJ4dF9kaXNwbGF5X2NvcmVfdW5pbml0KHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikNCj4gPiAgCW11dGV4X3VubG9jaygmcG93ZXJfZG9tYWlucy0+bG9j ayk7DQo+ID4gIH0NCj4gPiAgDQo+ID4gKyNkZWZpbmUgQ05MX1BST0NNT05fSURYKHZhbCkgXA0K PiA+ICsJKCgodmFsKSAmIChQUk9DRVNTX0lORk9fTUFTSyB8IFZPTFRBR0VfSU5GT19NQVNLKSkg Pj4gVk9MVEFHRV9JTkZPX1NISUZUKQ0KPiA+ICsjZGVmaW5lIE5VTV9DTkxfUFJPQ01PTiBcDQo+ ID4gKwkoQ05MX1BST0NNT05fSURYKFZPTFRBR0VfSU5GT19NQVNLIHwgUFJPQ0VTU19JTkZPX01B U0spICsgMSkNCj4gPiArDQo+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY25sX3Byb2Ntb24gew0K PiA+ICsJdTMyIGR3MSwgZHc5LCBkdzEwOw0KPiA+ICt9IGNubF9wcm9jbW9uX3ZhbHVlc1tOVU1f Q05MX1BST0NNT05dID0gew0KPiA+ICsJW0NOTF9QUk9DTU9OX0lEWChWT0xUQUdFX0lORk9fMF84 NVYgfCBQUk9DRVNTX0lORk9fRE9UXzApXSA9DQo+ID4gKwkJeyAuZHcxID0gMHgwMCA8PCAxNiwg LmR3OSA9IDB4NjJBQjY3QkIsIC5kdzEwID0gMHg1MTkxNEY5NiwgfSwNCj4gPiArCVtDTkxfUFJP Q01PTl9JRFgoVk9MVEFHRV9JTkZPXzBfOTVWIHwgUFJPQ0VTU19JTkZPX0RPVF8wKV0gPQ0KPiA+ ICsJCXsgLmR3MSA9IDB4MDAgPDwgMTYsIC5kdzkgPSAweDg2RTE3MkM3LCAuZHcxMCA9IDB4NzdD QTVFQUIsIH0sDQo+ID4gKwlbQ05MX1BST0NNT05fSURYKFZPTFRBR0VfSU5GT18wXzk1ViB8IFBS T0NFU1NfSU5GT19ET1RfMSldID0NCj4gPiArCQl7IC5kdzEgPSAweDAwIDw8IDE2LCAuZHc5ID0g MHg5M0Y4N0ZFMSwgLmR3MTAgPSAweDhBRTg3MUM1LCB9LA0KPiA+ICsJW0NOTF9QUk9DTU9OX0lE WChWT0xUQUdFX0lORk9fMV8wNVYgfCBQUk9DRVNTX0lORk9fRE9UXzApXSA9DQo+ID4gKwkJeyAu ZHcxID0gMHgwMCA8PCAxNiwgLmR3OSA9IDB4OThGQTgyREQsIC5kdzEwID0gMHg4OUU0NkRDMSwg fSwNCj4gPiArCVtDTkxfUFJPQ01PTl9JRFgoVk9MVEFHRV9JTkZPXzFfMDVWIHwgUFJPQ0VTU19J TkZPX0RPVF8xKV0gPQ0KPiA+ICsJCXsgLmR3MSA9IDB4NDQgPDwgMTYsIC5kdzkgPSAweDlBMDBB QjI1LCAuZHcxMCA9IDB4OEFFMzhGRjEsIH0sDQo+ID4gK307DQo+ID4gKw0KPiA+ICtzdGF0aWMg dm9pZCBjbmxfZGlzcGxheV9jb3JlX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LCBib29sIHJlc3VtZSkNCj4gPiArew0KPiA+ICsJc3RydWN0IGk5MTVfcG93ZXJfZG9tYWlu cyAqcG93ZXJfZG9tYWlucyA9ICZkZXZfcHJpdi0+cG93ZXJfZG9tYWluczsNCj4gPiArCWNvbnN0 IHN0cnVjdCBjbmxfcHJvY21vbiAqcHJvY21vbjsNCj4gPiArCXN0cnVjdCBpOTE1X3Bvd2VyX3dl bGwgKndlbGw7DQo+ID4gKwl1MzIgdmFsOw0KPiA+ICsNCj4gPiArCWdlbjlfc2V0X2RjX3N0YXRl KGRldl9wcml2LCBEQ19TVEFURV9ESVNBQkxFKTsNCj4gPiArDQo+ID4gKwkvKiAxLiBFbmFibGUg UENIIFJlc2V0IEhhbmRzaGFrZSAqLw0KPiA+ICsJdmFsID0gSTkxNV9SRUFEKEhTV19OREVfUlNU V1JOX09QVCk7DQo+ID4gKwl2YWwgfD0gUkVTRVRfUENIX0hBTkRTSEFLRV9FTkFCTEU7DQo+ID4g KwlJOTE1X1dSSVRFKEhTV19OREVfUlNUV1JOX09QVCwgdmFsKTsNCj4gPiArDQo+ID4gKwkvKiAy LiBFbmFibGUgQ29tcCAqLw0KPiA+ICsJdmFsID0gSTkxNV9SRUFEKENISUNLRU5fTUlTQ18yKTsN Cj4gPiArCXZhbCAmPSB+Q09NUF9QV1JfRE9XTjsNCj4gPiArCUk5MTVfV1JJVEUoQ0hJQ0tFTl9N SVNDXzIsIHZhbCk7DQo+ID4gKw0KPiA+ICsJdmFsID0gSTkxNV9SRUFEKENOTF9QT1JUX0NPTVBf RFczKTsNCj4gPiArCXByb2Ntb24gPSAmY25sX3Byb2Ntb25fdmFsdWVzW0NOTF9QUk9DTU9OX0lE WCh2YWwpXTsNCj4gPiArDQo+ID4gKwlXQVJOX09OKHByb2Ntb24tPmR3MTAgPT0gMCk7DQo+ID4g Kw0KPiA+ICsJdmFsID0gSTkxNV9SRUFEKENOTF9QT1JUX0NPTVBfRFcxKTsNCj4gPiArCXZhbCAm PSB+KCgweGZmIDw8IDE2KSB8IDB4ZmYpOw0KPiA+ICsJdmFsIHw9IHByb2Ntb24tPmR3MTsNCj4g PiArCUk5MTVfV1JJVEUoQ05MX1BPUlRfQ09NUF9EVzEsIHZhbCk7DQo+ID4gKw0KPiA+ICsJSTkx NV9XUklURShDTkxfUE9SVF9DT01QX0RXOSwgcHJvY21vbi0+ZHc5KTsNCj4gPiArCUk5MTVfV1JJ VEUoQ05MX1BPUlRfQ09NUF9EVzEwLCBwcm9jbW9uLT5kdzEwKTsNCj4gPiArDQo+ID4gKwl2YWwg PSBJOTE1X1JFQUQoQ05MX1BPUlRfQ09NUF9EVzApOw0KPiA+ICsJdmFsIHw9IENPTVBfSU5JVDsN Cj4gPiArCUk5MTVfV1JJVEUoQ05MX1BPUlRfQ09NUF9EVzAsIHZhbCk7DQo+ID4gKw0KPiA+ICsJ LyogMy4gKi8NCj4gPiArCXZhbCA9IEk5MTVfUkVBRChDTkxfUE9SVF9DTDFDTV9EVzUpOw0KPiA+ ICsJdmFsIHw9IENMX1BPV0VSX0RPV05fRU5BQkxFOw0KPiA+ICsJSTkxNV9XUklURShDTkxfUE9S VF9DTDFDTV9EVzUsIHZhbCk7DQo+ID4gKw0KPiA+ICsJLyogNC4gRW5hYmxlIFBvd2VyIFdlbGwg MSAoUEcxKSBhbmQgQXV4IElPIFBvd2VyICovDQo+ID4gKwltdXRleF9sb2NrKCZwb3dlcl9kb21h aW5zLT5sb2NrKTsNCj4gPiArCXdlbGwgPSBsb29rdXBfcG93ZXJfd2VsbChkZXZfcHJpdiwgU0tM X0RJU1BfUFdfMSk7DQo+ID4gKwlpbnRlbF9wb3dlcl93ZWxsX2VuYWJsZShkZXZfcHJpdiwgd2Vs bCk7DQo+ID4gKwltdXRleF91bmxvY2soJnBvd2VyX2RvbWFpbnMtPmxvY2spOw0KPiA+ICsNCj4g PiArCS8qIDUuIEVuYWJsZSBDRCBjbG9jayAqLw0KPiA+ICsJY25sX2luaXRfY2RjbGsoZGV2X3By aXYpOw0KPiA+ICsNCj4gPiArCS8qIDYuIEVuYWJsZSBEQlVGICovDQo+ID4gKwlnZW45X2RidWZf ZW5hYmxlKGRldl9wcml2KTsNCj4gPiArfQ0KPiA+ICsNCj4gPiArI3VuZGVmIENOTF9QUk9DTU9O X0lEWA0KPiA+ICsjdW5kZWYgTlVNX0NOTF9QUk9DTU9ODQo+ID4gKw0KPiA+ICtzdGF0aWMgdm9p ZCBjbmxfZGlzcGxheV9jb3JlX3VuaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpDQo+ID4gK3sNCj4gPiArCXN0cnVjdCBpOTE1X3Bvd2VyX2RvbWFpbnMgKnBvd2VyX2RvbWFp bnMgPSAmZGV2X3ByaXYtPnBvd2VyX2RvbWFpbnM7DQo+ID4gKwlzdHJ1Y3QgaTkxNV9wb3dlcl93 ZWxsICp3ZWxsOw0KPiA+ICsJdTMyIHZhbDsNCj4gPiArDQo+ID4gKwlnZW45X3NldF9kY19zdGF0 ZShkZXZfcHJpdiwgRENfU1RBVEVfRElTQUJMRSk7DQo+ID4gKw0KPiA+ICsJLyogMS4gRGlzYWJs ZSBhbGwgZGlzcGxheSBlbmdpbmUgZnVuY3Rpb25zIC0+IGFyZWFkeSBkb25lICovDQo+ID4gKw0K PiA+ICsJLyogMi4gRGlzYWJsZSBEQlVGICovDQo+ID4gKwlnZW45X2RidWZfZGlzYWJsZShkZXZf cHJpdik7DQo+ID4gKw0KPiA+ICsJLyogMy4gRGlzYWJsZSBDRCBjbG9jayAqLw0KPiA+ICsJY25s X3VuaW5pdF9jZGNsayhkZXZfcHJpdik7DQo+ID4gKw0KPiA+ICsJLyogNC4gRGlzYWJsZSBQb3dl ciBXZWxsIDEgKFBHMSkgYW5kIEF1eCBJTyBQb3dlciAqLw0KPiA+ICsJbXV0ZXhfbG9jaygmcG93 ZXJfZG9tYWlucy0+bG9jayk7DQo+ID4gKwl3ZWxsID0gbG9va3VwX3Bvd2VyX3dlbGwoZGV2X3By aXYsIFNLTF9ESVNQX1BXXzEpOw0KPiA+ICsJaW50ZWxfcG93ZXJfd2VsbF9kaXNhYmxlKGRldl9w cml2LCB3ZWxsKTsNCj4gPiArCW11dGV4X3VubG9jaygmcG93ZXJfZG9tYWlucy0+bG9jayk7DQo+ ID4gKw0KPiA+ICsJLyogNS4gRGlzYWJsZSBDb21wICovDQo+ID4gKwl2YWwgPSBJOTE1X1JFQUQo Q0hJQ0tFTl9NSVNDXzIpOw0KPiA+ICsJdmFsIHw9IENPTVBfUFdSX0RPV047DQo+ID4gKwlJOTE1 X1dSSVRFKENISUNLRU5fTUlTQ18yLCB2YWwpOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICBzdGF0aWMg dm9pZCBjaHZfcGh5X2NvbnRyb2xfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpDQo+ID4gIHsNCj4gPiAgCXN0cnVjdCBpOTE1X3Bvd2VyX3dlbGwgKmNtbl9iYyA9DQo+ID4g QEAgLTI4MzAsNyArMjkzNSw5IEBAIHZvaWQgaW50ZWxfcG93ZXJfZG9tYWluc19pbml0X2h3KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgYm9vbCByZXN1bWUpDQo+ID4gIA0KPiA+ ICAJcG93ZXJfZG9tYWlucy0+aW5pdGlhbGl6aW5nID0gdHJ1ZTsNCj4gPiAgDQo+ID4gLQlpZiAo SVNfR0VOOV9CQyhkZXZfcHJpdikpIHsNCj4gPiArCWlmIChJU19DQU5OT05MQUtFKGRldl9wcml2 KSkgew0KPiA+ICsJCWNubF9kaXNwbGF5X2NvcmVfaW5pdChkZXZfcHJpdiwgcmVzdW1lKTsNCj4g PiArCX0gZWxzZSBpZiAoSVNfR0VOOV9CQyhkZXZfcHJpdikpIHsNCj4gPiAgCQlza2xfZGlzcGxh eV9jb3JlX2luaXQoZGV2X3ByaXYsIHJlc3VtZSk7DQo+ID4gIAl9IGVsc2UgaWYgKElTX0dFTjlf TFAoZGV2X3ByaXYpKSB7DQo+ID4gIAkJYnh0X2Rpc3BsYXlfY29yZV9pbml0KGRldl9wcml2LCBy ZXN1bWUpOw0KPiA+IEBAIC0yODY5LDcgKzI5NzYsOSBAQCB2b2lkIGludGVsX3Bvd2VyX2RvbWFp bnNfc3VzcGVuZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpDQo+ID4gIAlpZiAo IWk5MTUuZGlzYWJsZV9wb3dlcl93ZWxsKQ0KPiA+ICAJCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0 KGRldl9wcml2LCBQT1dFUl9ET01BSU5fSU5JVCk7DQo+ID4gIA0KPiA+IC0JaWYgKElTX0dFTjlf QkMoZGV2X3ByaXYpKQ0KPiA+ICsJaWYgKElTX0NBTk5PTkxBS0UoZGV2X3ByaXYpKQ0KPiA+ICsJ CWNubF9kaXNwbGF5X2NvcmVfdW5pbml0KGRldl9wcml2KTsNCj4gPiArCWVsc2UgaWYgKElTX0dF TjlfQkMoZGV2X3ByaXYpKQ0KPiA+ICAJCXNrbF9kaXNwbGF5X2NvcmVfdW5pbml0KGRldl9wcml2 KTsNCj4gPiAgCWVsc2UgaWYgKElTX0dFTjlfTFAoZGV2X3ByaXYpKQ0KPiA+ICAJCWJ4dF9kaXNw bGF5X2NvcmVfdW5pbml0KGRldl9wcml2KTsNCj4gPiAtLSANCj4gPiAxLjkuMQ0KPiA+IA0KPiA+ IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+ID4gSW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdA0KPiA+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcN Cj4gPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeA0KDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJ bnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK