From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: Re: [PATCH 1/5] drm/i915: add and enable DP AUX CH mutex Date: Wed, 14 Feb 2018 08:21:52 -0800 Message-ID: <20180214162152.hakaidro2uma2sh6@intel.com> References: <20180214002917.31252-1-jose.souza@intel.com> <87a7wb7vjf.fsf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7881F6E420 for ; Wed, 14 Feb 2018 16:21:55 +0000 (UTC) Content-Disposition: inline In-Reply-To: <87a7wb7vjf.fsf@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Jani Nikula Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBGZWIgMTQsIDIwMTggYXQgMDk6NDc6MDBBTSArMDAwMCwgSmFuaSBOaWt1bGEgd3Jv dGU6Cj4gT24gVHVlLCAxMyBGZWIgMjAxOCwgSm9zw6kgUm9iZXJ0byBkZSBTb3V6YSA8am9zZS5z b3V6YUBpbnRlbC5jb20+IHdyb3RlOgo+ID4gV2hlbiBQU1IvUFNSMiBpcyBlbmFibGVkIGhhcmR3 YXJlIGNhbiBkbyBBVVggdHJhbnNhY3Rpb25zIGJ5IGl0IHNlbGYsIHNvCj4gPiBsZXRzIHVzZSB0 aGUgbXV0ZXggcmVnaXN0ZXIgdGhhdCBpcyBhdmFpbGFibGUgaW4gZ2VuOSsgdG8gYXZvaWQgY29u Y3VycmVudAo+ID4gYWNjZXNzIGJ5IGhhcmR3YXJlIGFuZCBkcml2ZXIuCj4gPgo+ID4gUmVmZXJl bmNlOiBodHRwczovLzAxLm9yZy9zaXRlcy9kZWZhdWx0L2ZpbGVzL2RvY3VtZW50YXRpb24vaW50 ZWwtZ2Z4LXBybS1vc3JjLXNrbC12b2wxMi1kaXNwbGF5LnBkZgo+ID4gUGFnZSAxOTggLSBBVVgg cHJvZ3JhbW1pbmcgc2VxdWVuY2UKPiA+Cj4gPiBBcyBnZW4gPCA5IGRvbid0IGhhdmUgdGhlIG11 dGV4IFBTUiBuZWVkcyB0byBiZSBkaXNhYmxlZCwgdGhhdCBpcyB3aHkgdGhlCj4gPiAnZWxzZSBU T0RPJyB3YXMgYWRkZWQuIFRoaXMgaXMgYWxzbyBiYWNrZWQgYnkgc3BlYzoKPiA+ICJEREkgQSBB VVggY2hhbm5lbCB0cmFuc2FjdGlvbnMgbXVzdCBub3QgYmUgc2VudCB3aGlsZSBTUkQgaXMgZW5h YmxlZC4KPiA+IFNSRCBtdXN0IGJlIGNvbXBsZXRlbHkgZGlzYWJsZWQgYmVmb3JlIGEgRERJIEEg QVVYIGNoYW5uZWwgdHJhbnNhY3Rpb24gY2FuCj4gPiBiZSBzZW50LiIgQlNwZWM6IDc1MzAKPiAK PiBXZSBleHBsaWNpdGx5IHJlamVjdGVkIHRoZSB1c2Ugb2YgdGhlIGh3IG11dGV4IHdheSBiYWNr IHdoZW4gU2t5bGFrZSB3YXMKPiBlbmFibGVkLiBBdCB0aGF0IHRpbWUgdGhlIHVuZGVyc3RhbmRp bmcgd2FzIHRoYXQgdGhlIGh3IHdpbGwgdHJ5IHRvIGRvCj4gdGhlIGFyYml0cmF0aW9uIGl0c2Vs Zi4gSGFzIHNvbWV0aGluZyBjaGFuZ2VkPwoKQnkgdGhhdCB0aW1lIHNwZWMgd2Fzbid0IGNsZWFy IGFib3V0IHRoZSBhY3R1YWwgbmVlZCBvciBpdHMgcmVsaWFiaWxpdHkuCk5vd2RheXMgc3BlYyBp cyBjbGVhciB0aGF0IHRoYXQgaXMgYWJzb2x1dGVseSBuZWVkZWQgZm9yIFBTUi9QU1IyL0dUQy4K CkFsc28gd2Ugd2VyZSB1c2luZyBhIGxvdCBvZiBTVyB0cmFja2luZyBhbmQgbm93YWRheXMgd2Ug YXJlIG1vdmluZyBQU1IKdG8gdXNlIG1vcmUgSFcgdHJhY2tpbmcuCgpTbyBJIGJlbGlldmUgd2Ug c2hvdWxkIGFkZCB0aGlzIHRvIGdldCBhIHN0YWJsZSBQU1IuCgo+IAo+IFNvbWUgY29tbWVudHMg aW5saW5lLgo+IAo+ID4KPiA+IENjOiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRlbC5j b20+Cj4gPiBTaWduZWQtb2ZmLWJ5OiBKb3PDqSBSb2JlcnRvIGRlIFNvdXphIDxqb3NlLnNvdXph QGludGVsLmNvbT4KPiA+IC0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgg IHwgIDkgKysrKysrKysKPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jICB8IDQ4 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiA+ICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaCB8ICAxICsKPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9wc3IuYyB8ICA2ICsrKysrCj4gPiAgNCBmaWxlcyBjaGFuZ2VkLCA2NCBpbnNlcnRpb25z KCspCj4gPgo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gPiBpbmRleCBmNmFmYTVlNWU3YzEu LjVkNzczNjExN2NiOSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf cmVnLmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiA+IEBAIC01 MzE4LDYgKzUzMTgsNyBAQCBlbnVtIHsKPiA+ICAjZGVmaW5lIF9EUEFfQVVYX0NIX0RBVEEzCShk ZXZfcHJpdi0+aW5mby5kaXNwbGF5X21taW9fb2Zmc2V0ICsgMHg2NDAxYykKPiA+ICAjZGVmaW5l IF9EUEFfQVVYX0NIX0RBVEE0CShkZXZfcHJpdi0+aW5mby5kaXNwbGF5X21taW9fb2Zmc2V0ICsg MHg2NDAyMCkKPiA+ICAjZGVmaW5lIF9EUEFfQVVYX0NIX0RBVEE1CShkZXZfcHJpdi0+aW5mby5k aXNwbGF5X21taW9fb2Zmc2V0ICsgMHg2NDAyNCkKPiA+ICsjZGVmaW5lIF9EUEFfQVVYX0NIX01V VEVYCShkZXZfcHJpdi0+aW5mby5kaXNwbGF5X21taW9fb2Zmc2V0ICsgMHg2NDAyQykKPiA+ICAK PiA+ICAjZGVmaW5lIF9EUEJfQVVYX0NIX0NUTAkJKGRldl9wcml2LT5pbmZvLmRpc3BsYXlfbW1p b19vZmZzZXQgKyAweDY0MTEwKQo+ID4gICNkZWZpbmUgX0RQQl9BVVhfQ0hfREFUQTEJKGRldl9w cml2LT5pbmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAweDY0MTE0KQo+ID4gQEAgLTUzMjUsNiAr NTMyNiw3IEBAIGVudW0gewo+ID4gICNkZWZpbmUgX0RQQl9BVVhfQ0hfREFUQTMJKGRldl9wcml2 LT5pbmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAweDY0MTFjKQo+ID4gICNkZWZpbmUgX0RQQl9B VVhfQ0hfREFUQTQJKGRldl9wcml2LT5pbmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAweDY0MTIw KQo+ID4gICNkZWZpbmUgX0RQQl9BVVhfQ0hfREFUQTUJKGRldl9wcml2LT5pbmZvLmRpc3BsYXlf bW1pb19vZmZzZXQgKyAweDY0MTI0KQo+ID4gKyNkZWZpbmUgX0RQQl9BVVhfQ0hfTVVURVgJKGRl dl9wcml2LT5pbmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAweDY0MTJDKQo+ID4gIAo+ID4gICNk ZWZpbmUgX0RQQ19BVVhfQ0hfQ1RMCQkoZGV2X3ByaXYtPmluZm8uZGlzcGxheV9tbWlvX29mZnNl dCArIDB4NjQyMTApCj4gPiAgI2RlZmluZSBfRFBDX0FVWF9DSF9EQVRBMQkoZGV2X3ByaXYtPmlu Zm8uZGlzcGxheV9tbWlvX29mZnNldCArIDB4NjQyMTQpCj4gPiBAQCAtNTMzMiw2ICs1MzM0LDcg QEAgZW51bSB7Cj4gPiAgI2RlZmluZSBfRFBDX0FVWF9DSF9EQVRBMwkoZGV2X3ByaXYtPmluZm8u ZGlzcGxheV9tbWlvX29mZnNldCArIDB4NjQyMWMpCj4gPiAgI2RlZmluZSBfRFBDX0FVWF9DSF9E QVRBNAkoZGV2X3ByaXYtPmluZm8uZGlzcGxheV9tbWlvX29mZnNldCArIDB4NjQyMjApCj4gPiAg I2RlZmluZSBfRFBDX0FVWF9DSF9EQVRBNQkoZGV2X3ByaXYtPmluZm8uZGlzcGxheV9tbWlvX29m ZnNldCArIDB4NjQyMjQpCj4gPiArI2RlZmluZSBfRFBDX0FVWF9DSF9NVVRFWAkoZGV2X3ByaXYt PmluZm8uZGlzcGxheV9tbWlvX29mZnNldCArIDB4NjQyMkMpCj4gPiAgCj4gPiAgI2RlZmluZSBf RFBEX0FVWF9DSF9DVEwJCShkZXZfcHJpdi0+aW5mby5kaXNwbGF5X21taW9fb2Zmc2V0ICsgMHg2 NDMxMCkKPiA+ICAjZGVmaW5lIF9EUERfQVVYX0NIX0RBVEExCShkZXZfcHJpdi0+aW5mby5kaXNw bGF5X21taW9fb2Zmc2V0ICsgMHg2NDMxNCkKPiA+IEBAIC01MzM5LDYgKzUzNDIsNyBAQCBlbnVt IHsKPiA+ICAjZGVmaW5lIF9EUERfQVVYX0NIX0RBVEEzCShkZXZfcHJpdi0+aW5mby5kaXNwbGF5 X21taW9fb2Zmc2V0ICsgMHg2NDMxYykKPiA+ICAjZGVmaW5lIF9EUERfQVVYX0NIX0RBVEE0CShk ZXZfcHJpdi0+aW5mby5kaXNwbGF5X21taW9fb2Zmc2V0ICsgMHg2NDMyMCkKPiA+ICAjZGVmaW5l IF9EUERfQVVYX0NIX0RBVEE1CShkZXZfcHJpdi0+aW5mby5kaXNwbGF5X21taW9fb2Zmc2V0ICsg MHg2NDMyNCkKPiA+ICsjZGVmaW5lIF9EUERfQVVYX0NIX01VVEVYCShkZXZfcHJpdi0+aW5mby5k aXNwbGF5X21taW9fb2Zmc2V0ICsgMHg2NDMyQykKPiA+ICAKPiA+ICAjZGVmaW5lIF9EUEZfQVVY X0NIX0NUTAkJKGRldl9wcml2LT5pbmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAweDY0NTEwKQo+ ID4gICNkZWZpbmUgX0RQRl9BVVhfQ0hfREFUQTEJKGRldl9wcml2LT5pbmZvLmRpc3BsYXlfbW1p b19vZmZzZXQgKyAweDY0NTE0KQo+ID4gQEAgLTUzNDYsOSArNTM1MCwxMSBAQCBlbnVtIHsKPiA+ ICAjZGVmaW5lIF9EUEZfQVVYX0NIX0RBVEEzCShkZXZfcHJpdi0+aW5mby5kaXNwbGF5X21taW9f b2Zmc2V0ICsgMHg2NDUxYykKPiA+ICAjZGVmaW5lIF9EUEZfQVVYX0NIX0RBVEE0CShkZXZfcHJp di0+aW5mby5kaXNwbGF5X21taW9fb2Zmc2V0ICsgMHg2NDUyMCkKPiA+ICAjZGVmaW5lIF9EUEZf QVVYX0NIX0RBVEE1CShkZXZfcHJpdi0+aW5mby5kaXNwbGF5X21taW9fb2Zmc2V0ICsgMHg2NDUy NCkKPiA+ICsjZGVmaW5lIF9EUEZfQVVYX0NIX01VVEVYCShkZXZfcHJpdi0+aW5mby5kaXNwbGF5 X21taW9fb2Zmc2V0ICsgMHg2NDUyQykKPiA+ICAKPiA+ICAjZGVmaW5lIERQX0FVWF9DSF9DVEwo cG9ydCkJX01NSU9fUE9SVChwb3J0LCBfRFBBX0FVWF9DSF9DVEwsIF9EUEJfQVVYX0NIX0NUTCkK PiA+ICAjZGVmaW5lIERQX0FVWF9DSF9EQVRBKHBvcnQsIGkpCV9NTUlPKF9QT1JUKHBvcnQsIF9E UEFfQVVYX0NIX0RBVEExLCBfRFBCX0FVWF9DSF9EQVRBMSkgKyAoaSkgKiA0KSAvKiA1IHJlZ2lz dGVycyAqLwo+ID4gKyNkZWZpbmUgRFBfQVVYX0NIX01VVEVYKHBvcnQpCV9NTUlPX1BPUlQocG9y dCwgX0RQQV9BVVhfQ0hfTVVURVgsIF9EUEJfQVVYX0NIX01VVEVYKQo+ID4gIAo+ID4gICNkZWZp bmUgICBEUF9BVVhfQ0hfQ1RMX1NFTkRfQlVTWQkgICAgKDEgPDwgMzEpCj4gPiAgI2RlZmluZSAg IERQX0FVWF9DSF9DVExfRE9ORQkJICAgICgxIDw8IDMwKQo+ID4gQEAgLTUzNzgsNiArNTM4NCw5 IEBAIGVudW0gewo+ID4gICNkZWZpbmUgICBEUF9BVVhfQ0hfQ1RMX0ZXX1NZTkNfUFVMU0VfU0tM KGMpICgoKGMpIC0gMSkgPDwgNSkKPiA+ICAjZGVmaW5lICAgRFBfQVVYX0NIX0NUTF9TWU5DX1BV TFNFX1NLTChjKSAgICgoYykgLSAxKQo+ID4gIAo+ID4gKyNkZWZpbmUgICBEUF9BVVhfQ0hfTVVU RVhfRU5BQkxFCQkoMSA8PCAzMSkKPiA+ICsjZGVmaW5lICAgRFBfQVVYX0NIX01VVEVYX1NUQVRV UwkJKDEgPDwgMzApCj4gCj4gVGhlIGJpdCBkZWZpbml0aW9ucyBzaG91bGQgaW1tZWRpYXRlbHkg Zm9sbG93IHRoZSByZWdpc3RlciBvZmZzZXQKPiBkZWZpbml0aW9uLiBJLmUuIERQX0FVWF9DSF9N VVRFWCgpIHNob3VsZCBiZSByaWdodCBhYm92ZSB0aGVzZS4KPiAKPiA+ICsKPiA+ICAvKgo+ID4g ICAqIENvbXB1dGluZyBHTUNIIE0gYW5kIE4gdmFsdWVzIGZvciB0aGUgRGlzcGxheSBQb3J0IGxp bmsKPiA+ICAgKgo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rw LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiBpbmRleCBmMjBiMjVmOThl NWEuLmJkNWYxYmI3MzBmZiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RwLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiA+IEBA IC0xMDgxLDYgKzEwODEsMjggQEAgc3RhdGljIHVpbnQzMl90IGludGVsX2RwX2dldF9hdXhfc2Vu ZF9jdGwoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiA+ICAJCQkJCQlhdXhfY2xvY2tfZGl2 aWRlcik7Cj4gPiAgfQo+ID4gIAo+ID4gK3N0YXRpYyBib29sIGludGVsX2RwX2F1eF9nZXQoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gKwkJCSAgICAgc3RydWN0IGludGVs X2RwICppbnRlbF9kcCkKPiAKPiBZb3UgY2FuIGdldCBhdCBkZXZfcHJpdiBmcm9tIGludGVsX2Rw LCBwbGVhc2UgZG9uJ3QgcGFzcyBib3RoLgo+IAo+IFRoZSBuYW1lcyBfZ2V0L19wdXQgaW1wbHkg dGhlIGNhbGxzIGNhbiBiZSBuZXN0ZWQsIHdoaWNoIGlzIG5vdCB0aGUgY2FzZQo+IGhlcmUuIFBs ZWFzZSB1c2UgX2xvY2svX3VubG9jayBpbnN0ZWFkLgo+IAo+IElmIHRoZSBsb2NraW5nIGNhbiBm YWlsLCBjYWxsIGl0IF90cnlsb2NrLgo+IAo+ID4gK3sKPiA+ICsJaW50IHRyeSwgcmV0Owo+ID4g Kwo+ID4gKwlmb3IgKHRyeSA9IDAsIHJldCA9IC0xOyB0cnkgPCAzICYmIHJldDsgdHJ5KyspCj4g PiArCQlyZXQgPSB3YWl0X2ZvcighKEk5MTVfUkVBRF9OT1RSQUNFKGludGVsX2RwLT5hdXhfY2hf bXV0ZXhfcmVnKQo+ID4gKwkJCQkgJiBEUF9BVVhfQ0hfTVVURVhfU1RBVFVTKSwgMC41KTsKPiAK PiAwLjU/IFJlYWxseT8KPiAKPiBXaGF0J3MgdGhlIHBvaW50IG9mIHRoZSBsb29wIGFyb3VuZCB0 aGUgd2FpdF9mb3I/IHdhaXRfZm9yIGFscmVhZHkgbG9vcHMKPiB3aXRoIGluY3JlYXNpbmcgZGVs YXlzIGluIGJldHdlZW4gdGhlIGNvbmRpdGlvbiBjaGVjay4KPiAKPiA+ICsKPiA+ICsJcmV0dXJu IHJldCA9PSAwOwo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgdm9pZCBpbnRlbF9kcF9hdXhfcHV0 KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ICsJCQkgICAgIHN0cnVjdCBp bnRlbF9kcCAqaW50ZWxfZHApCj4gPiArewo+ID4gKwkvKiBzZXR0aW5nIHRoZSBzdGF0dXMgYml0 IHJlbGVhc2VzIHRoZSBtdXRleCArIGtlZXAgc2V0IHRoZSBiaXQKPiA+ICsJICogdG8ga2VlcCB0 aGUgbXV0ZXggZW5hYmxlZC4KPiA+ICsJICovCj4gPiArCUk5MTVfV1JJVEUoaW50ZWxfZHAtPmF1 eF9jaF9tdXRleF9yZWcsIERQX0FVWF9DSF9NVVRFWF9FTkFCTEUgfAo+ID4gKwkJICAgRFBfQVVY X0NIX01VVEVYX1NUQVRVUyk7Cj4gPiArfQo+ID4gKwo+ID4gIHN0YXRpYyBpbnQKPiA+ICBpbnRl bF9kcF9hdXhfY2goc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiA+ICAJCWNvbnN0IHVpbnQ4 X3QgKnNlbmQsIGludCBzZW5kX2J5dGVzLAo+ID4gQEAgLTExMTUsNiArMTEzNywyMSBAQCBpbnRl bF9kcF9hdXhfY2goc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiA+ICAKPiA+ICAJaW50ZWxf ZHBfY2hlY2tfZWRwKGludGVsX2RwKTsKPiA+ICAKPiA+ICsJLyogR2V0IGhhcmR3YXJlIG11dGV4 IHdoZW4gUFNSIGlzIGVuYWJsZWQgKi8KPiA+ICsJaWYgKGRldl9wcml2LT5wc3IuZW5hYmxlZCA9 PSBpbnRlbF9kcCkgewo+ID4gKwkJaWYgKGludGVsX2RwLT5hdXhfY2hfbXV0ZXhfcmVnLnJlZykg ewo+IAo+IFNlZSBpOTE1X21taW9fcmVnX3ZhbGlkKCkuIEJ1dCBJJ2QgcmF0aGVyIHRoZSBjaGVj ayB3YXMgd2l0aGluIHRoZQo+IGxvY2tpbmcgcHJpbWl0aXZlcy4KPiAKPiBPdmVyYWxsIEkgdGhp bmsgbWl4aW5nIGFsbCB0aGlzIFBTUiBjb25kaXRpb25hbCBzdHVmZiBpbiB0aGUgYXV4IGNoYW5u ZWwKPiBwcmltaXRpdmVzIGlzIHZlcnksIHZlcnkgd3JvbmcuCj4gCj4gQXQgdGhlIHZlcnkgbGVh c3QgdGhpcyBpcyByYWN5IHdpdGggUFNSIGVuYWJsaW5nL2Rpc2FibGluZy4KPiAKPiA+ICsJCQlp ZiAoaW50ZWxfZHBfYXV4X2dldChkZXZfcHJpdiwgaW50ZWxfZHApKSB7Cj4gPiArCQkJCURSTV9X QVJOKCJkcF9hdXhfY2ggcG9ydCBsb2NrZWQgZm9yIHRvbyBsb25nIik7Cj4gPiArCQkJCXJldCA9 IC1FQlVTWTsKPiA+ICsJCQkJZ290byBvdXRfbG9ja2VkOwo+ID4gKwkJCX0KPiA+ICsJCX0gZWxz ZSB7Cj4gPiArCQkJLyogVE9ETzogZ28gdG8gUFNSIGV4aXQgc3RhdGUgd2FpdGluZyBmb3IgY2hh bmdlIGJlZm9yZQo+ID4gKwkJCSAqIGRvIGEgYXV4IGNoIHRyYW5zYWN0aW9uLgo+ID4gKwkJCSAq Lwo+ID4gKwkJfQo+ID4gKwl9Cj4gPiArCj4gPiAgCS8qIFRyeSB0byB3YWl0IGZvciBhbnkgcHJl dmlvdXMgQVVYIGNoYW5uZWwgYWN0aXZpdHkgKi8KPiA+ICAJZm9yICh0cnkgPSAwOyB0cnkgPCAz OyB0cnkrKykgewo+ID4gIAkJc3RhdHVzID0gSTkxNV9SRUFEX05PVFJBQ0UoY2hfY3RsKTsKPiA+ IEBAIC0xMjQzLDcgKzEyODAsMTYgQEAgaW50ZWxfZHBfYXV4X2NoKHN0cnVjdCBpbnRlbF9kcCAq aW50ZWxfZHAsCj4gPiAgCQkJCSAgICByZWN2ICsgaSwgcmVjdl9ieXRlcyAtIGkpOwo+ID4gIAo+ ID4gIAlyZXQgPSByZWN2X2J5dGVzOwo+ID4gKwo+ID4gIG91dDoKPiA+ICsJaWYgKGRldl9wcml2 LT5wc3IuZW5hYmxlZCA9PSBpbnRlbF9kcCkgewo+ID4gKwkJaWYgKGludGVsX2RwLT5hdXhfY2hf bXV0ZXhfcmVnLnJlZykKPiA+ICsJCQlpbnRlbF9kcF9hdXhfcHV0KGRldl9wcml2LCBpbnRlbF9k cCk7Cj4gPiArCQllbHNlCj4gPiArCQkJLyogVE9ETzogc2NoZWR1bGUgUFNSIHdvcmsgdG8gYWN0 aXZlIFBTUiBhZ2FpbiAqLwo+ID4gKwl9Cj4gPiArCj4gPiArb3V0X2xvY2tlZDoKPiA+ICAJcG1f cW9zX3VwZGF0ZV9yZXF1ZXN0KCZkZXZfcHJpdi0+cG1fcW9zLCBQTV9RT1NfREVGQVVMVF9WQUxV RSk7Cj4gPiAgCj4gPiAgCWlmICh2ZGQpCj4gPiBAQCAtMTQ5Niw2ICsxNTQyLDggQEAgc3RhdGlj IHZvaWQgaW50ZWxfYXV4X3JlZ19pbml0KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gPiAg CWludGVsX2RwLT5hdXhfY2hfY3RsX3JlZyA9IGludGVsX2F1eF9jdGxfcmVnKGRldl9wcml2LCBw b3J0KTsKPiA+ICAJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoaW50ZWxfZHAtPmF1eF9jaF9k YXRhX3JlZyk7IGkrKykKPiA+ICAJCWludGVsX2RwLT5hdXhfY2hfZGF0YV9yZWdbaV0gPSBpbnRl bF9hdXhfZGF0YV9yZWcoZGV2X3ByaXYsIHBvcnQsIGkpOwo+ID4gKwlpZiAoSU5URUxfSU5GTyhk ZXZfcHJpdiktPmdlbiA+PSA5KQo+ID4gKwkJaW50ZWxfZHAtPmF1eF9jaF9tdXRleF9yZWcgPSBE UF9BVVhfQ0hfTVVURVgocG9ydCk7Cj4gPiAgfQo+ID4gIAo+ID4gIHN0YXRpYyB2b2lkCj4gPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gaW5kZXggODk4MDY0ZThiZWE3Li4wZDIzNWI3ZGFi MjEgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+IEBAIC0xMDQwLDYgKzEw NDAsNyBAQCBzdHJ1Y3QgaW50ZWxfZHAgewo+ID4gIAlpOTE1X3JlZ190IG91dHB1dF9yZWc7Cj4g PiAgCWk5MTVfcmVnX3QgYXV4X2NoX2N0bF9yZWc7Cj4gPiAgCWk5MTVfcmVnX3QgYXV4X2NoX2Rh dGFfcmVnWzVdOwo+ID4gKwlpOTE1X3JlZ190IGF1eF9jaF9tdXRleF9yZWc7Cj4gPiAgCXVpbnQz Ml90IERQOwo+ID4gIAlpbnQgbGlua19yYXRlOwo+ID4gIAl1aW50OF90IGxhbmVfY291bnQ7Cj4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcHNyLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYwo+ID4gaW5kZXggMmVmMzc0ZjkzNmI5Li44YjQ1NmU0 ZTFiNDcgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYwo+ ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcHNyLmMKPiA+IEBAIC00ODQsNiAr NDg0LDkgQEAgc3RhdGljIHZvaWQgaHN3X3Bzcl9lbmFibGVfc291cmNlKHN0cnVjdCBpbnRlbF9k cCAqaW50ZWxfZHAsCj4gPiAgCQkJICAgRURQX1BTUl9ERUJVR19NQVNLX0hQRCB8Cj4gPiAgCQkJ ICAgRURQX1BTUl9ERUJVR19NQVNLX0xQU1ApOwo+ID4gIAl9Cj4gPiArCj4gPiArCWlmIChpbnRl bF9kcC0+YXV4X2NoX211dGV4X3JlZy5yZWcpCj4gPiArCQlJOTE1X1dSSVRFKGludGVsX2RwLT5h dXhfY2hfbXV0ZXhfcmVnLCBEUF9BVVhfQ0hfTVVURVhfRU5BQkxFKTsKPiAKPiBZb3UgY2FuJ3Qg anVzdCBnbyBzdG9tcGluZyBvbiB0aGUgcmVnaXN0ZXIgd2l0aG91dCBsb2NraW5nLiBSYWN5Lgo+ IAo+ID4gIH0KPiA+ICAKPiA+ICAvKioKPiA+IEBAIC02MTcsNiArNjIwLDkgQEAgc3RhdGljIHZv aWQgaHN3X3Bzcl9kaXNhYmxlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gPiAgCQllbHNl Cj4gPiAgCQkJV0FSTl9PTihJOTE1X1JFQUQoRURQX1BTUl9DVEwpICYgRURQX1BTUl9FTkFCTEUp Owo+ID4gIAl9Cj4gPiArCj4gPiArCWlmIChpbnRlbF9kcC0+YXV4X2NoX211dGV4X3JlZy5yZWcp Cj4gPiArCQlJOTE1X1dSSVRFKGludGVsX2RwLT5hdXhfY2hfbXV0ZXhfcmVnLCB+RFBfQVVYX0NI X01VVEVYX0VOQUJMRSk7Cj4gCj4gQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHNldCBhbGwgb3Ro ZXIgYml0cyB0aGFuIGVuYWJsZT8KPiAKPiAKPiBCUiwKPiBKYW5pLgo+IAo+ID4gIH0KPiA+ICAK PiA+ICAvKioKPiAKPiAtLSAKPiBKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5v bG9neSBDZW50ZXIKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cg==