From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Souza, Jose" Subject: Re: [PATCH 1/1] drm/i915/skl+: Add and enable DP AUX CH mutex Date: Mon, 26 Feb 2018 18:31:12 +0000 Message-ID: <1519669781.8017.11.camel@intel.com> References: <20180224015140.13803-1-jose.souza@intel.com> <20180224015140.13803-2-jose.souza@intel.com> <1519443340.27620.30.camel@dk-H97M-D3H> 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 AD1636E501 for ; Mon, 26 Feb 2018 18:31:14 +0000 (UTC) In-Reply-To: <1519443340.27620.30.camel@dk-H97M-D3H> Content-Language: en-US Content-ID: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Pandiyan, Dhinakaran" Cc: "intel-gfx@lists.freedesktop.org" , "Vivi, Rodrigo" List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCAyMDE4LTAyLTIzIGF0IDE5OjEyIC0wODAwLCBQYW5kaXlhbiwgRGhpbmFrYXJhbiB3 cm90ZToNCj4gT24gRnJpLCAyMDE4LTAyLTIzIGF0IDE3OjUxIC0wODAwLCBKb3PDqSBSb2JlcnRv IGRlIFNvdXphIHdyb3RlOg0KPiA+IFdoZW4gUFNSL1BTUjIvR1RDIGlzIGVuYWJsZWQgaGFyZHdh cmUgY2FuIGRvIEFVWCB0cmFuc2FjdGlvbnMgYnkgaXQNCj4gPiBzZWxmLCBzbyBsZXRzIHVzZSB0 aGUgbXV0ZXggcmVnaXN0ZXIgdGhhdCBpcyBhdmFpbGFibGUgaW4gZ2VuOSsgdG8NCj4gPiBhdm9p ZCBjb25jdXJyZW50IGFjY2VzcyBieSBoYXJkd2FyZSBhbmQgZHJpdmVyLg0KPiA+IE9sZGVyIGdl biBoYW5kbGluZyB3aWxsIGJlIGRvbmUgc2VwYXJhdGVkLg0KPiA+IA0KPiA+IFJlZmVyZW5jZTog aHR0cHM6Ly8wMS5vcmcvc2l0ZXMvZGVmYXVsdC9maWxlcy9kb2N1bWVudGF0aW9uL2ludGVsLWcN Cj4gPiBmeC1wcm0tb3NyYy1za2wtdm9sMTItZGlzcGxheS5wZGYNCj4gPiBQYWdlIDE5OCAtIEFV WCBwcm9ncmFtbWluZyBzZXF1ZW5jZQ0KPiA+IA0KPiA+IENjOiBSb2RyaWdvIFZpdmkgPHJvZHJp Z28udml2aUBpbnRlbC5jb20+DQo+ID4gQ2M6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBsaW51 eC5pbnRlbC5jb20+DQo+ID4gQ2M6IERoaW5ha2FyYW4gUGFuZGl5YW4gPGRoaW5ha2FyYW4ucGFu ZGl5YW5AaW50ZWwuY29tPg0KPiA+IENjOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFA bGludXguaW50ZWwuY29tPg0KPiA+IFNpZ25lZC1vZmYtYnk6IEpvc8OpIFJvYmVydG8gZGUgU291 emEgPGpvc2Uuc291emFAaW50ZWwuY29tPg0KPiA+IC0tLQ0KPiA+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3JlZy5oICB8ICA5ICsrKysrKw0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcC5jICB8IDY3DQo+ID4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKw0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCB8ICAxICsNCj4gPiAg MyBmaWxlcyBjaGFuZ2VkLCA3NyBpbnNlcnRpb25zKCspDQo+ID4gDQo+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgNCj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfcmVnLmgNCj4gPiBpbmRleCBlZWE1YjJjNTM3ZDQuLmYzNmU4MzliNGI0ZiAxMDA2 NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oDQo+ID4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaA0KPiA+IEBAIC01Mzg1LDYgKzUzODUsMTUg QEAgZW51bSB7DQo+ID4gICNkZWZpbmUgICBEUF9BVVhfQ0hfQ1RMX0ZXX1NZTkNfUFVMU0VfU0tM KGMpICgoKGMpIC0gMSkgPDwgNSkNCj4gPiAgI2RlZmluZSAgIERQX0FVWF9DSF9DVExfU1lOQ19Q VUxTRV9TS0woYykgICAoKGMpIC0gMSkNCj4gPiAgDQo+ID4gKyNkZWZpbmUgX0RQQV9BVVhfQ0hf TVVURVgJKGRldl9wcml2LQ0KPiA+ID5pbmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAweDY0MDJD KQ0KPiA+ICsjZGVmaW5lIF9EUEJfQVVYX0NIX01VVEVYCShkZXZfcHJpdi0NCj4gPiA+aW5mby5k aXNwbGF5X21taW9fb2Zmc2V0ICsgMHg2NDEyQykNCj4gPiArI2RlZmluZSBfRFBDX0FVWF9DSF9N VVRFWAkoZGV2X3ByaXYtDQo+ID4gPmluZm8uZGlzcGxheV9tbWlvX29mZnNldCArIDB4NjQyMkMp DQo+ID4gKyNkZWZpbmUgX0RQRF9BVVhfQ0hfTVVURVgJKGRldl9wcml2LQ0KPiA+ID5pbmZvLmRp c3BsYXlfbW1pb19vZmZzZXQgKyAweDY0MzJDKQ0KPiA+ICsjZGVmaW5lIF9EUEZfQVVYX0NIX01V VEVYCShkZXZfcHJpdi0NCj4gPiA+aW5mby5kaXNwbGF5X21taW9fb2Zmc2V0ICsgMHg2NDUyQykN Cj4gPiArI2RlZmluZSBEUF9BVVhfQ0hfTVVURVgocG9ydCkJX01NSU9fUE9SVChwb3J0LA0KPiA+ IF9EUEFfQVVYX0NIX01VVEVYLCBfRFBCX0FVWF9DSF9NVVRFWCkNCj4gDQo+IAkJCSAgXmF1eF9j aCBzaW1pbGFyIHRvIGN0bCBhbmQgZGF0YS4NCj4gDQo+ID4gKyNkZWZpbmUgICBEUF9BVVhfQ0hf TVVURVhfRU5BQkxFCQkoMSA8PCAzMSkNCj4gPiArI2RlZmluZSAgIERQX0FVWF9DSF9NVVRFWF9T VEFUVVMJCSgxIDw8IDMwKQ0KPiA+ICsNCj4gPiAgLyoNCj4gPiAgICogQ29tcHV0aW5nIEdNQ0gg TSBhbmQgTiB2YWx1ZXMgZm9yIHRoZSBEaXNwbGF5IFBvcnQgbGluaw0KPiA+ICAgKg0KPiA+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jDQo+ID4gYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jDQo+ID4gaW5kZXggMmMzZWI5MGI5NDk5Li43YmUyZmVj NTE2NTEgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYw0K PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMNCj4gPiBAQCAtMTA4MSw2 ICsxMDgxLDQ1IEBAIHN0YXRpYyB1aW50MzJfdA0KPiA+IGludGVsX2RwX2dldF9hdXhfc2VuZF9j dGwoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwNCj4gPiAgCQkJCQkJYXV4X2Nsb2NrX2Rpdmlk ZXIpDQo+ID4gOw0KPiA+ICB9DQo+ID4gIA0KPiA+ICtzdGF0aWMgYm9vbCBpbnRlbF9kcF9hdXhf Y2hfdHJ5bG9jayhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQ0KPiA+ICt7DQo+ID4gKwlzdHJ1 Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9DQo+ID4gZHBfdG9fZGlnX3Bv cnQoaW50ZWxfZHApOw0KPiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0N Cj4gPiArCQkJdG9faTkxNShpbnRlbF9kaWdfcG9ydC0+YmFzZS5iYXNlLmRldik7DQo+ID4gKwlp OTE1X3JlZ190IGNoX211dGV4Ow0KPiA+ICsNCj4gPiArCWlmICghaW50ZWxfZHAtPmF1eF9jaF9t dXRleF9yZWcpDQo+ID4gKwkJcmV0dXJuIHRydWU7DQo+ID4gKw0KPiA+ICsJY2hfbXV0ZXggPSBp bnRlbF9kcC0+YXV4X2NoX211dGV4X3JlZyhpbnRlbF9kcCk7DQo+ID4gKwlJOTE1X1dSSVRFKGNo X211dGV4LCBEUF9BVVhfQ0hfTVVURVhfRU5BQkxFKTsNCj4gDQo+IA0KPiA+ID4gPiANCj4gPiA+ ID4gWW91IG1pZ2h0IGJlIHRvdWNoaW5nIGJpdHMuIFdlIGRvbid0IGtub3cgaWYgSFcgaXMgdXNp bmcgdGhlDQo+ID4gPiA+IHJlc2VydmVkDQo+ID4gPiA+IGJpdHMgb3Igbm90Lg0KPiA+ID4gPiBT byBSTVcgfD0gYml0IDMxIGhlcmUgaXMgYSBnb29kIGlkZWEuDQo+ID4gPiANCj4gPiA+IEFzIGEg cmVhZCBpbiB0aGlzIHJlZ2lzdGVyIHJlcXVlc3QgdGhlIG11dGV4IGxvY2sgaXMgYmV0dGVyIGF2 b2lkDQo+ID4gPiBhbnkNCj4gPiA+IHJlYWQgdGhhdCBpcyBub3QgbWVhbnQgdG8gcmVxdWVzdCBp dC4NCj4gPiANCj4gPiBvay4uLiBJIGFjY2VwdCB0aGUgZmFjdCB0aGF0IHJlYWQgdGhhdCBpcyBs b2NraW5nDQo+ID4gc28geW91IGFyZSByaWdodCBoZXJlLg0KPiA+IA0KPiANCj4gSSBkbyBub3Qg YWdyZWUgd2l0aCB0aGUgaW50ZXJwcmV0YXRpb24gaGVyZSwgcmVhZGluZyB0aGUgcmVnaXN0ZXIN Cj4gKmFmdGVyKiB0aGUgbXV0ZXggaXMgZW5hYmxlZCA9PSByZXF1ZXN0IGZvciBsb2NraW5nLiBZ b3UgY2FuIHJlYWQgdGhlDQo+IHJlZ2lzdGVyIGJlZm9yZSBlbmFibGluZywgYW5kIHlvdSBoYXZl IHRvIHJlYWQgc28gdGhhdCB5b3UgZG9uJ3QNCj4gb3ZlcndyaXRlIGFueSBvdGhlciBiaXQuDQo+ IA0KPiBSZWY6ICJTdGlja3kgYml0IHNldCB0byAxIGFmdGVyIGEgcmVhZCB0byB0aGlzIHJlZ2lz dGVyIHdoZW4gTXV0ZXggaXMNCj4gZW5hYmxlZC4iDQoNClRoaXMgaXMgdHJ1ZSBidXQgd2UgbXVz dCBrZWVwIHRoZSBtdXRleCBlbmFibGVkIGFsbCB0aGUgdGltZSB0bw0KZ3VhcmFudGVlIHRoYXQg aGFyZHdhcmUgd2lsbCByZXF1ZXN0IGxvY2sgdG9vLCBzbyBhbnkgcmVhZCB0byB0aGUNCnJlZ2lz dGVyIGZyb20gb3VyIHNpZGUgd2lsbCByZXF1ZXN0IHRoZSBsb2NrLg0KDQo+IA0KPiANCj4gPiAr DQo+ID4gKwkvKiBTcGVjIHNheXMgdGhhdCBtdXRleCBpcyBhY3F1aXJlZCB3aGVuIHN0YXR1cyBi aXQgaXMNCj4gPiByZWFkIGFzIHVuc2V0LA0KPiA+ICsJICogaGVyZSB3YWl0aW5nIGZvciAybXNl YyBvciA0IHRyaWVzIGJlZm9yZSBnaXZlIHVwLg0KPiANCj4gCQkJICAgICAyIG1zLiAgICBeIHRo aXMgaXMgbm90IHRydWUNCj4gDQo+ID4gKwkgKi8NCj4gPiArCWlmIChpbnRlbF93YWl0X2Zvcl9y ZWdpc3RlcihkZXZfcHJpdiwgY2hfbXV0ZXgsDQo+ID4gRFBfQVVYX0NIX01VVEVYX1NUQVRVUywN Cj4gPiArCQkJCSAgICAwLCAyKSkgew0KPiA+ICsJCURSTV9XQVJOKCJkcF9hdXhfY2ggcG9ydCBs b2NrZWQgZm9yIHRvbyBsb25nIik7DQo+IA0KPiAJCSBEUk1fREVCVUdfS01TKCJhdXggY2hhbm5l bCAlYyBsb2NrZWQgZm9yIDIgbXMsIHRpbWluZw0KPiBvdXRcbiIpOw0KPiANCj4gMS4gRFJNX0RF QlVHX0tNUyBpcyB0aGUgY29udmVudGlvbiBpbiB0aGlzIGZpbGUgYW5kIG1vc3QgcGFydHMgb2Yg dGhlDQo+IGRyaXZlciBmb3IgdGhpbmdzIGxpa2UgdGhpcy4NCg0KSSdtIG9rYXkgaW4gY2hhbmdl IEkgd2FzIGp1c3QgdXNpbmcgRFJNX1dBUk4gYmVjYXVzZSBtb3N0IG9mIHRoZQ0KbWVzc2FnZXMg aW4gaW50ZWxfZHBfYXV4X2NoKCkgaXMgdXNpbmcgaXQuDQoNCj4gMi4gSSBwcmVmZXIgdG8gYWRk IGRldGFpbHMgbGlrZSBwb3J0L2NoYW5uZWwvcGlwZS9jb25uZWN0b3Igd2hlbg0KPiBwcmludGlu ZyBkZWJ1ZyBtZXNzYWdlcyBpZiBpdCBkb2Vzbid0IGNvc3QgYW55IGV4dHJhIHNwYWNlLg0KPiAN Cj4gDQo+ICANCj4gPiArCQlyZXR1cm4gZmFsc2U7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJcmV0 dXJuIHRydWU7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyB2b2lkIGludGVsX2RwX2F1eF9j aF91bmxvY2soc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkNCj4gPiArew0KPiA+ICsJc3RydWN0 IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPQ0KPiA+IGRwX3RvX2RpZ19wb3J0 KGludGVsX2RwKTsNCj4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9DQo+ ID4gKwkJCXRvX2k5MTUoaW50ZWxfZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXYpOw0KPiA+ICsNCj4g PiArCWlmICghaW50ZWxfZHAtPmF1eF9jaF9tdXRleF9yZWcpDQo+ID4gKwkJcmV0dXJuOw0KPiA+ ICsNCj4gPiArCS8qIHNldHRpbmcgdGhlIHN0YXR1cyBiaXQgcmVsZWFzZXMgdGhlIG11dGV4ICsg a2VlcCBtdXRleA0KPiA+IGVuYWJsZWQgKi8NCj4gPiArCUk5MTVfV1JJVEUoaW50ZWxfZHAtPmF1 eF9jaF9tdXRleF9yZWcoaW50ZWxfZHApLA0KPiA+ICsJCSAgIERQX0FVWF9DSF9NVVRFWF9FTkFC TEUgfA0KPiA+IERQX0FVWF9DSF9NVVRFWF9TVEFUVVMpOw0KPiANCj4gSWYgeW91IGFyZSBsZWF2 aW5nIHRoZSBtdXRleCBlbmFibGVkLCB5b3UgZG9uJ3QgaGF2ZSB0byBlbmFibGUgaXQgZm9yDQo+ IHRoZSBzZWNvbmQgdHJhbnNhY3Rpb24gb253YXJkcy4gSW4gdGhhdCBjYXNlLCB3aHkgbm90IG1v dmUgdGhlIG11dGV4DQo+IGVuYWJsaW5nIHN0ZXAgdG8gaW50ZWxfZHBfYXV4X2luaXQoKSBhZnRl ciBjaGVja2luZyBmb3IgUFNSIHN1cHBvcnQNCj4gb3INCj4gZW5hYmxlIHRoZSBtdXRleCBqdXN0 IGJlZm9yZSBpbnRlbF9wc3JfZW5hYmxlKCkuIFBsZWFzZSBnZXQgYW4NCj4gYWx0ZXJuYXRlDQo+ IG9waW5pb24gb24gdGhpcy4NCj4gDQo+IA0KPiBJIHRoaW5rIHRoZXJlIGFyZSB0d28gb3B0aW9u czoNCj4gMSkNCj4gRW5hYmxlIG11dGV4IGJlZm9yZSBwc3JfZW5hYmxlDQo+IFJlYWQgc3RhdHVz ICg9PSByZXF1ZXN0IGZvciBsb2NrKQ0KPiAJYXV4X3hmZXINCj4gV3JpdGUgc3RhdHVzKD09IHJl bGVhc2UgbG9jaykNCj4gRGlzYWJsZSBtdXRleCBhZnRlciBwc3JfZGlzYWJsZQ0KDQpUaGUgbXV0 ZXggd2lsbCBhbHNvIGJlIG5lZWRlZCB3aGVuIGVuYWJsaW5nIEdUQyBhbmQgdGhlIGNvc3Qgb2Yg YWx3YXlzDQpsZWF2ZSBlbmFibGVkIGlzIHNvIGxvdyB0aGF0IGlzIG5vdCB3b3J0aHkgY2hlY2sg aWYgd2UgaGF2ZSBQU1IgZW5hYmxlZA0KaW4gdGhlIHBvcnQuDQoNCj4gDQo+IDIpDQo+IEZvciBl dmVyeSBhdXggdHJhbnNhY3Rpb24uDQo+IEVuYWJsZSBtdXRleCAoUk1XIGlzIG9rYXkgYmVjYXVz ZSBtdXRleCBpcyBub3QgZW5hYmxlZCkNCj4gUmVhZCBzdGF0dXMgKD09IHJlcXVlc3QgZm9yIGxv Y2spDQo+IAlhdXhfeGZlcg0KPiBXcml0ZSBzdGF0dXMoPT0gIHJlbGVhc2UgbG9jaykNCj4gRGlz YWJsZSBtdXRleA0KDQpFbmFibGUgYXQgZWFjaCBhdXggdHJhbnNhY3Rpb24gaXMgd3JvbmcsIHRo aXMgd2F5IGhhcmR3YXJlIHdpbGwgbm90DQpyZXF1ZXN0IHRoZSBsb2NrIHdoZW4gaXQgaXMgZGlz YWJsZWQuDQoNCj4gDQo+IEFzIG9mIG5vdywgeW91IGVuZCB1cCB3cml0aW5nIHRvIHRoZSBzdGF0 dXMgYml0IGluDQo+IGludGVsX2RwX2F1eF9jaF90cnlsb2NrKCksIHdoaWNoIGxvb2tzIHdyb25n Lg0KDQpWaXZpIGJlbGl2ZXMgdGhhIHdlIG5lZWQgdG8gcG9rZSByZWdpc3RlcnMgYmVmb3JlIHJl YWQgaXQsIGluIG15IHRlc3RzDQpJIGNhbiBkZXRlY3QgdGhhdCBoYXJkd2FyZSBpcyBoZWxkaW5n IHRoZSBtdXRleCB3aXRoIG9yIHdpdGhvdXQNCmFzc2VydGluZyBlbmFibGUgYml0IGluIGludGVs X2RwX2F1eF9jaF90cnlsb2NrKCksIEknbSBmaW5lIHdpdGggYm90aA0Kd2F5cy4NCg0KDQo+IA0K PiANCj4gLURLDQo+IA0KPiANCj4gPiArfQ0KPiA+ICsNCj4gPiAgc3RhdGljIGludA0KPiA+ICBp bnRlbF9kcF9hdXhfY2goc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwNCj4gPiAgCQljb25zdCB1 aW50OF90ICpzZW5kLCBpbnQgc2VuZF9ieXRlcywNCj4gPiBAQCAtMTExOSw2ICsxMTU4LDExIEBA IGludGVsX2RwX2F1eF9jaChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLA0KPiA+ICANCj4gPiAg CWludGVsX2RwX2NoZWNrX2VkcChpbnRlbF9kcCk7DQo+ID4gIA0KPiA+ICsJaWYgKCFpbnRlbF9k cF9hdXhfY2hfdHJ5bG9jayhpbnRlbF9kcCkpIHsNCj4gPiArCQlyZXQgPSAtRUJVU1k7DQo+ID4g KwkJZ290byBvdXRfbG9ja2VkOw0KPiA+ICsJfQ0KPiA+ICsNCj4gPiAgCS8qIFRyeSB0byB3YWl0 IGZvciBhbnkgcHJldmlvdXMgQVVYIGNoYW5uZWwgYWN0aXZpdHkgKi8NCj4gPiAgCWZvciAodHJ5 ID0gMDsgdHJ5IDwgMzsgdHJ5KyspIHsNCj4gPiAgCQlzdGF0dXMgPSBJOTE1X1JFQURfTk9UUkFD RShjaF9jdGwpOw0KPiA+IEBAIC0xMjQ4LDYgKzEyOTIsOCBAQCBpbnRlbF9kcF9hdXhfY2goc3Ry dWN0IGludGVsX2RwICppbnRlbF9kcCwNCj4gPiAgDQo+ID4gIAlyZXQgPSByZWN2X2J5dGVzOw0K PiA+ICBvdXQ6DQo+ID4gKwlpbnRlbF9kcF9hdXhfY2hfdW5sb2NrKGludGVsX2RwKTsNCj4gPiAr b3V0X2xvY2tlZDoNCj4gPiAgCXBtX3Fvc191cGRhdGVfcmVxdWVzdCgmZGV2X3ByaXYtPnBtX3Fv cywNCj4gPiBQTV9RT1NfREVGQVVMVF9WQUxVRSk7DQo+ID4gIA0KPiA+ICAJaWYgKHZkZCkNCj4g PiBAQCAtMTUwNCw2ICsxNTUwLDI0IEBAIHN0YXRpYyBpOTE1X3JlZ190IHNrbF9hdXhfZGF0YV9y ZWcoc3RydWN0DQo+ID4gaW50ZWxfZHAgKmludGVsX2RwLCBpbnQgaW5kZXgpDQo+ID4gIAl9DQo+ ID4gIH0NCj4gPiAgDQo+ID4gK3N0YXRpYyBpOTE1X3JlZ190IHNrbF9hdXhfbXV0ZXhfcmVnKHN0 cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApDQo+ID4gK3sNCj4gPiArCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9DQo+ID4gdG9faTkxNShpbnRlbF9kcF90b19kZXYoaW50ZWxfZHAp KTsNCj4gPiArCWVudW0gYXV4X2NoIGF1eF9jaCA9IGludGVsX2RwLT5hdXhfY2g7DQo+ID4gKw0K PiA+ICsJc3dpdGNoIChhdXhfY2gpIHsNCj4gPiArCWNhc2UgQVVYX0NIX0E6DQo+ID4gKwljYXNl IEFVWF9DSF9COg0KPiA+ICsJY2FzZSBBVVhfQ0hfQzoNCj4gPiArCWNhc2UgQVVYX0NIX0Q6DQo+ ID4gKwljYXNlIEFVWF9DSF9GOg0KPiA+ICsJCXJldHVybiBEUF9BVVhfQ0hfTVVURVgoYXV4X2No KTsNCj4gPiArCWRlZmF1bHQ6DQo+ID4gKwkJTUlTU0lOR19DQVNFKGF1eF9jaCk7DQo+ID4gKwkJ cmV0dXJuIERQX0FVWF9DSF9NVVRFWChBVVhfQ0hfQSk7DQo+ID4gKwl9DQo+ID4gK30NCj4gPiAr DQo+ID4gIHN0YXRpYyB2b2lkDQo+ID4gIGludGVsX2RwX2F1eF9maW5pKHN0cnVjdCBpbnRlbF9k cCAqaW50ZWxfZHApDQo+ID4gIHsNCj4gPiBAQCAtMTU0NCw2ICsxNjA4LDkgQEAgaW50ZWxfZHBf YXV4X2luaXQoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkNCj4gPiAgCWVsc2UNCj4gPiAgCQlp bnRlbF9kcC0+Z2V0X2F1eF9zZW5kX2N0bCA9IGc0eF9nZXRfYXV4X3NlbmRfY3RsOw0KPiA+ICAN Cj4gPiArCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkpDQo+ID4gKwkJaW50ZWxfZHAtPmF1 eF9jaF9tdXRleF9yZWcgPSBza2xfYXV4X211dGV4X3JlZzsNCj4gPiArDQo+IA0KPiBNb3ZlIHRo aXMgdG8gdGhlIGJyYW5jaCB3aGVyZSBjb250cm9sIGFuZCBkYXRhIHZmdW5jcyBhcmUgc2V0dXAu DQo+IA0KPiA+ICAJZHJtX2RwX2F1eF9pbml0KCZpbnRlbF9kcC0+YXV4KTsNCj4gPiAgDQo+ID4g IAkvKiBGYWlsdXJlIHRvIGFsbG9jYXRlIG91ciBwcmVmZXJyZWQgbmFtZSBpcyBub3QgY3JpdGlj YWwNCj4gPiAqLw0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaA0KPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgNCj4gPiBpbmRleCA4 ZjM4ZTU4NGQzNzUuLjI2N2NjNmM1YTg5ZiAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaA0KPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oDQo+ID4gQEAgLTExMjgsNiArMTEyOCw3IEBAIHN0cnVjdCBpbnRlbF9kcCB7DQo+ID4g IA0KPiA+ICAJaTkxNV9yZWdfdCAoKmF1eF9jaF9jdGxfcmVnKShzdHJ1Y3QgaW50ZWxfZHAgKmRw KTsNCj4gPiAgCWk5MTVfcmVnX3QgKCphdXhfY2hfZGF0YV9yZWcpKHN0cnVjdCBpbnRlbF9kcCAq ZHAsIGludA0KPiA+IGluZGV4KTsNCj4gPiArCWk5MTVfcmVnX3QgKCphdXhfY2hfbXV0ZXhfcmVn KShzdHJ1Y3QgaW50ZWxfZHAgKmRwKTsNCj4gPiAgDQo+ID4gIAkvKiBUaGlzIGlzIGNhbGxlZCBi ZWZvcmUgYSBsaW5rIHRyYWluaW5nIGlzIHN0YXJ0ZXJkICovDQo+ID4gIAl2b2lkICgqcHJlcGFy ZV9saW5rX3JldHJhaW4pKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApOwpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK