From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH 1/5] drm/i915: add and enable DP AUX CH mutex Date: Wed, 14 Feb 2018 11:47:00 +0200 Message-ID: <87a7wb7vjf.fsf@intel.com> References: <20180214002917.31252-1-jose.souza@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 ESMTPS id 7CF166E3BE for ; Wed, 14 Feb 2018 09:47:08 +0000 (UTC) In-Reply-To: <20180214002917.31252-1-jose.souza@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: =?utf-8?Q?Jos=C3=A9?= Roberto de Souza , intel-gfx@lists.freedesktop.org Cc: Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCAxMyBGZWIgMjAxOCwgSm9zw6kgUm9iZXJ0byBkZSBTb3V6YSA8am9zZS5zb3V6YUBp bnRlbC5jb20+IHdyb3RlOgo+IFdoZW4gUFNSL1BTUjIgaXMgZW5hYmxlZCBoYXJkd2FyZSBjYW4g ZG8gQVVYIHRyYW5zYWN0aW9ucyBieSBpdCBzZWxmLCBzbwo+IGxldHMgdXNlIHRoZSBtdXRleCBy ZWdpc3RlciB0aGF0IGlzIGF2YWlsYWJsZSBpbiBnZW45KyB0byBhdm9pZCBjb25jdXJyZW50Cj4g YWNjZXNzIGJ5IGhhcmR3YXJlIGFuZCBkcml2ZXIuCj4KPiBSZWZlcmVuY2U6IGh0dHBzOi8vMDEu b3JnL3NpdGVzL2RlZmF1bHQvZmlsZXMvZG9jdW1lbnRhdGlvbi9pbnRlbC1nZngtcHJtLW9zcmMt c2tsLXZvbDEyLWRpc3BsYXkucGRmCj4gUGFnZSAxOTggLSBBVVggcHJvZ3JhbW1pbmcgc2VxdWVu Y2UKPgo+IEFzIGdlbiA8IDkgZG9uJ3QgaGF2ZSB0aGUgbXV0ZXggUFNSIG5lZWRzIHRvIGJlIGRp c2FibGVkLCB0aGF0IGlzIHdoeSB0aGUKPiAnZWxzZSBUT0RPJyB3YXMgYWRkZWQuIFRoaXMgaXMg YWxzbyBiYWNrZWQgYnkgc3BlYzoKPiAiRERJIEEgQVVYIGNoYW5uZWwgdHJhbnNhY3Rpb25zIG11 c3Qgbm90IGJlIHNlbnQgd2hpbGUgU1JEIGlzIGVuYWJsZWQuCj4gU1JEIG11c3QgYmUgY29tcGxl dGVseSBkaXNhYmxlZCBiZWZvcmUgYSBEREkgQSBBVVggY2hhbm5lbCB0cmFuc2FjdGlvbiBjYW4K PiBiZSBzZW50LiIgQlNwZWM6IDc1MzAKCldlIGV4cGxpY2l0bHkgcmVqZWN0ZWQgdGhlIHVzZSBv ZiB0aGUgaHcgbXV0ZXggd2F5IGJhY2sgd2hlbiBTa3lsYWtlIHdhcwplbmFibGVkLiBBdCB0aGF0 IHRpbWUgdGhlIHVuZGVyc3RhbmRpbmcgd2FzIHRoYXQgdGhlIGh3IHdpbGwgdHJ5IHRvIGRvCnRo ZSBhcmJpdHJhdGlvbiBpdHNlbGYuIEhhcyBzb21ldGhpbmcgY2hhbmdlZD8KClNvbWUgY29tbWVu dHMgaW5saW5lLgoKPgo+IENjOiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+ Cj4gU2lnbmVkLW9mZi1ieTogSm9zw6kgUm9iZXJ0byBkZSBTb3V6YSA8am9zZS5zb3V6YUBpbnRl bC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggIHwgIDkgKysr KysrKysKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyAgfCA0OCArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oIHwgIDEgKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYyB8ICA2 ICsrKysrCj4gIDQgZmlsZXMgY2hhbmdlZCwgNjQgaW5zZXJ0aW9ucygrKQo+Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3JlZy5oCj4gaW5kZXggZjZhZmE1ZTVlN2MxLi41ZDc3MzYxMTdjYjkgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfcmVnLmgKPiBAQCAtNTMxOCw2ICs1MzE4LDcgQEAgZW51bSB7Cj4gICNk ZWZpbmUgX0RQQV9BVVhfQ0hfREFUQTMJKGRldl9wcml2LT5pbmZvLmRpc3BsYXlfbW1pb19vZmZz ZXQgKyAweDY0MDFjKQo+ICAjZGVmaW5lIF9EUEFfQVVYX0NIX0RBVEE0CShkZXZfcHJpdi0+aW5m by5kaXNwbGF5X21taW9fb2Zmc2V0ICsgMHg2NDAyMCkKPiAgI2RlZmluZSBfRFBBX0FVWF9DSF9E QVRBNQkoZGV2X3ByaXYtPmluZm8uZGlzcGxheV9tbWlvX29mZnNldCArIDB4NjQwMjQpCj4gKyNk ZWZpbmUgX0RQQV9BVVhfQ0hfTVVURVgJKGRldl9wcml2LT5pbmZvLmRpc3BsYXlfbW1pb19vZmZz ZXQgKyAweDY0MDJDKQo+ICAKPiAgI2RlZmluZSBfRFBCX0FVWF9DSF9DVEwJCShkZXZfcHJpdi0+ aW5mby5kaXNwbGF5X21taW9fb2Zmc2V0ICsgMHg2NDExMCkKPiAgI2RlZmluZSBfRFBCX0FVWF9D SF9EQVRBMQkoZGV2X3ByaXYtPmluZm8uZGlzcGxheV9tbWlvX29mZnNldCArIDB4NjQxMTQpCj4g QEAgLTUzMjUsNiArNTMyNiw3IEBAIGVudW0gewo+ICAjZGVmaW5lIF9EUEJfQVVYX0NIX0RBVEEz CShkZXZfcHJpdi0+aW5mby5kaXNwbGF5X21taW9fb2Zmc2V0ICsgMHg2NDExYykKPiAgI2RlZmlu ZSBfRFBCX0FVWF9DSF9EQVRBNAkoZGV2X3ByaXYtPmluZm8uZGlzcGxheV9tbWlvX29mZnNldCAr IDB4NjQxMjApCj4gICNkZWZpbmUgX0RQQl9BVVhfQ0hfREFUQTUJKGRldl9wcml2LT5pbmZvLmRp c3BsYXlfbW1pb19vZmZzZXQgKyAweDY0MTI0KQo+ICsjZGVmaW5lIF9EUEJfQVVYX0NIX01VVEVY CShkZXZfcHJpdi0+aW5mby5kaXNwbGF5X21taW9fb2Zmc2V0ICsgMHg2NDEyQykKPiAgCj4gICNk ZWZpbmUgX0RQQ19BVVhfQ0hfQ1RMCQkoZGV2X3ByaXYtPmluZm8uZGlzcGxheV9tbWlvX29mZnNl dCArIDB4NjQyMTApCj4gICNkZWZpbmUgX0RQQ19BVVhfQ0hfREFUQTEJKGRldl9wcml2LT5pbmZv LmRpc3BsYXlfbW1pb19vZmZzZXQgKyAweDY0MjE0KQo+IEBAIC01MzMyLDYgKzUzMzQsNyBAQCBl bnVtIHsKPiAgI2RlZmluZSBfRFBDX0FVWF9DSF9EQVRBMwkoZGV2X3ByaXYtPmluZm8uZGlzcGxh eV9tbWlvX29mZnNldCArIDB4NjQyMWMpCj4gICNkZWZpbmUgX0RQQ19BVVhfQ0hfREFUQTQJKGRl dl9wcml2LT5pbmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAweDY0MjIwKQo+ICAjZGVmaW5lIF9E UENfQVVYX0NIX0RBVEE1CShkZXZfcHJpdi0+aW5mby5kaXNwbGF5X21taW9fb2Zmc2V0ICsgMHg2 NDIyNCkKPiArI2RlZmluZSBfRFBDX0FVWF9DSF9NVVRFWAkoZGV2X3ByaXYtPmluZm8uZGlzcGxh eV9tbWlvX29mZnNldCArIDB4NjQyMkMpCj4gIAo+ICAjZGVmaW5lIF9EUERfQVVYX0NIX0NUTAkJ KGRldl9wcml2LT5pbmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAweDY0MzEwKQo+ICAjZGVmaW5l IF9EUERfQVVYX0NIX0RBVEExCShkZXZfcHJpdi0+aW5mby5kaXNwbGF5X21taW9fb2Zmc2V0ICsg MHg2NDMxNCkKPiBAQCAtNTMzOSw2ICs1MzQyLDcgQEAgZW51bSB7Cj4gICNkZWZpbmUgX0RQRF9B VVhfQ0hfREFUQTMJKGRldl9wcml2LT5pbmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAweDY0MzFj KQo+ICAjZGVmaW5lIF9EUERfQVVYX0NIX0RBVEE0CShkZXZfcHJpdi0+aW5mby5kaXNwbGF5X21t aW9fb2Zmc2V0ICsgMHg2NDMyMCkKPiAgI2RlZmluZSBfRFBEX0FVWF9DSF9EQVRBNQkoZGV2X3By aXYtPmluZm8uZGlzcGxheV9tbWlvX29mZnNldCArIDB4NjQzMjQpCj4gKyNkZWZpbmUgX0RQRF9B VVhfQ0hfTVVURVgJKGRldl9wcml2LT5pbmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAweDY0MzJD KQo+ICAKPiAgI2RlZmluZSBfRFBGX0FVWF9DSF9DVEwJCShkZXZfcHJpdi0+aW5mby5kaXNwbGF5 X21taW9fb2Zmc2V0ICsgMHg2NDUxMCkKPiAgI2RlZmluZSBfRFBGX0FVWF9DSF9EQVRBMQkoZGV2 X3ByaXYtPmluZm8uZGlzcGxheV9tbWlvX29mZnNldCArIDB4NjQ1MTQpCj4gQEAgLTUzNDYsOSAr NTM1MCwxMSBAQCBlbnVtIHsKPiAgI2RlZmluZSBfRFBGX0FVWF9DSF9EQVRBMwkoZGV2X3ByaXYt PmluZm8uZGlzcGxheV9tbWlvX29mZnNldCArIDB4NjQ1MWMpCj4gICNkZWZpbmUgX0RQRl9BVVhf Q0hfREFUQTQJKGRldl9wcml2LT5pbmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAweDY0NTIwKQo+ ICAjZGVmaW5lIF9EUEZfQVVYX0NIX0RBVEE1CShkZXZfcHJpdi0+aW5mby5kaXNwbGF5X21taW9f b2Zmc2V0ICsgMHg2NDUyNCkKPiArI2RlZmluZSBfRFBGX0FVWF9DSF9NVVRFWAkoZGV2X3ByaXYt PmluZm8uZGlzcGxheV9tbWlvX29mZnNldCArIDB4NjQ1MkMpCj4gIAo+ICAjZGVmaW5lIERQX0FV WF9DSF9DVEwocG9ydCkJX01NSU9fUE9SVChwb3J0LCBfRFBBX0FVWF9DSF9DVEwsIF9EUEJfQVVY X0NIX0NUTCkKPiAgI2RlZmluZSBEUF9BVVhfQ0hfREFUQShwb3J0LCBpKQlfTU1JTyhfUE9SVChw b3J0LCBfRFBBX0FVWF9DSF9EQVRBMSwgX0RQQl9BVVhfQ0hfREFUQTEpICsgKGkpICogNCkgLyog NSByZWdpc3RlcnMgKi8KPiArI2RlZmluZSBEUF9BVVhfQ0hfTVVURVgocG9ydCkJX01NSU9fUE9S VChwb3J0LCBfRFBBX0FVWF9DSF9NVVRFWCwgX0RQQl9BVVhfQ0hfTVVURVgpCj4gIAo+ICAjZGVm aW5lICAgRFBfQVVYX0NIX0NUTF9TRU5EX0JVU1kJICAgICgxIDw8IDMxKQo+ICAjZGVmaW5lICAg RFBfQVVYX0NIX0NUTF9ET05FCQkgICAgKDEgPDwgMzApCj4gQEAgLTUzNzgsNiArNTM4NCw5IEBA IGVudW0gewo+ICAjZGVmaW5lICAgRFBfQVVYX0NIX0NUTF9GV19TWU5DX1BVTFNFX1NLTChjKSAo KChjKSAtIDEpIDw8IDUpCj4gICNkZWZpbmUgICBEUF9BVVhfQ0hfQ1RMX1NZTkNfUFVMU0VfU0tM KGMpICAgKChjKSAtIDEpCj4gIAo+ICsjZGVmaW5lICAgRFBfQVVYX0NIX01VVEVYX0VOQUJMRQkJ KDEgPDwgMzEpCj4gKyNkZWZpbmUgICBEUF9BVVhfQ0hfTVVURVhfU1RBVFVTCQkoMSA8PCAzMCkK ClRoZSBiaXQgZGVmaW5pdGlvbnMgc2hvdWxkIGltbWVkaWF0ZWx5IGZvbGxvdyB0aGUgcmVnaXN0 ZXIgb2Zmc2V0CmRlZmluaXRpb24uIEkuZS4gRFBfQVVYX0NIX01VVEVYKCkgc2hvdWxkIGJlIHJp Z2h0IGFib3ZlIHRoZXNlLgoKPiArCj4gIC8qCj4gICAqIENvbXB1dGluZyBHTUNIIE0gYW5kIE4g dmFsdWVzIGZvciB0aGUgRGlzcGxheSBQb3J0IGxpbmsKPiAgICoKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RwLmMKPiBpbmRleCBmMjBiMjVmOThlNWEuLmJkNWYxYmI3MzBmZiAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHAuYwo+IEBAIC0xMDgxLDYgKzEwODEsMjggQEAgc3RhdGljIHVpbnQzMl90IGlu dGVsX2RwX2dldF9hdXhfc2VuZF9jdGwoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiAgCQkJ CQkJYXV4X2Nsb2NrX2RpdmlkZXIpOwo+ICB9Cj4gIAo+ICtzdGF0aWMgYm9vbCBpbnRlbF9kcF9h dXhfZ2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiArCQkJICAgICBzdHJ1 Y3QgaW50ZWxfZHAgKmludGVsX2RwKQoKWW91IGNhbiBnZXQgYXQgZGV2X3ByaXYgZnJvbSBpbnRl bF9kcCwgcGxlYXNlIGRvbid0IHBhc3MgYm90aC4KClRoZSBuYW1lcyBfZ2V0L19wdXQgaW1wbHkg dGhlIGNhbGxzIGNhbiBiZSBuZXN0ZWQsIHdoaWNoIGlzIG5vdCB0aGUgY2FzZQpoZXJlLiBQbGVh c2UgdXNlIF9sb2NrL191bmxvY2sgaW5zdGVhZC4KCklmIHRoZSBsb2NraW5nIGNhbiBmYWlsLCBj YWxsIGl0IF90cnlsb2NrLgoKPiArewo+ICsJaW50IHRyeSwgcmV0Owo+ICsKPiArCWZvciAodHJ5 ID0gMCwgcmV0ID0gLTE7IHRyeSA8IDMgJiYgcmV0OyB0cnkrKykKPiArCQlyZXQgPSB3YWl0X2Zv cighKEk5MTVfUkVBRF9OT1RSQUNFKGludGVsX2RwLT5hdXhfY2hfbXV0ZXhfcmVnKQo+ICsJCQkJ ICYgRFBfQVVYX0NIX01VVEVYX1NUQVRVUyksIDAuNSk7CgowLjU/IFJlYWxseT8KCldoYXQncyB0 aGUgcG9pbnQgb2YgdGhlIGxvb3AgYXJvdW5kIHRoZSB3YWl0X2Zvcj8gd2FpdF9mb3IgYWxyZWFk eSBsb29wcwp3aXRoIGluY3JlYXNpbmcgZGVsYXlzIGluIGJldHdlZW4gdGhlIGNvbmRpdGlvbiBj aGVjay4KCj4gKwo+ICsJcmV0dXJuIHJldCA9PSAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBp bnRlbF9kcF9hdXhfcHV0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiArCQkJ ICAgICBzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ICt7Cj4gKwkvKiBzZXR0aW5nIHRoZSBz dGF0dXMgYml0IHJlbGVhc2VzIHRoZSBtdXRleCArIGtlZXAgc2V0IHRoZSBiaXQKPiArCSAqIHRv IGtlZXAgdGhlIG11dGV4IGVuYWJsZWQuCj4gKwkgKi8KPiArCUk5MTVfV1JJVEUoaW50ZWxfZHAt PmF1eF9jaF9tdXRleF9yZWcsIERQX0FVWF9DSF9NVVRFWF9FTkFCTEUgfAo+ICsJCSAgIERQX0FV WF9DSF9NVVRFWF9TVEFUVVMpOwo+ICt9Cj4gKwo+ICBzdGF0aWMgaW50Cj4gIGludGVsX2RwX2F1 eF9jaChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ICAJCWNvbnN0IHVpbnQ4X3QgKnNlbmQs IGludCBzZW5kX2J5dGVzLAo+IEBAIC0xMTE1LDYgKzExMzcsMjEgQEAgaW50ZWxfZHBfYXV4X2No KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gIAo+ICAJaW50ZWxfZHBfY2hlY2tfZWRwKGlu dGVsX2RwKTsKPiAgCj4gKwkvKiBHZXQgaGFyZHdhcmUgbXV0ZXggd2hlbiBQU1IgaXMgZW5hYmxl ZCAqLwo+ICsJaWYgKGRldl9wcml2LT5wc3IuZW5hYmxlZCA9PSBpbnRlbF9kcCkgewo+ICsJCWlm IChpbnRlbF9kcC0+YXV4X2NoX211dGV4X3JlZy5yZWcpIHsKClNlZSBpOTE1X21taW9fcmVnX3Zh bGlkKCkuIEJ1dCBJJ2QgcmF0aGVyIHRoZSBjaGVjayB3YXMgd2l0aGluIHRoZQpsb2NraW5nIHBy aW1pdGl2ZXMuCgpPdmVyYWxsIEkgdGhpbmsgbWl4aW5nIGFsbCB0aGlzIFBTUiBjb25kaXRpb25h bCBzdHVmZiBpbiB0aGUgYXV4IGNoYW5uZWwKcHJpbWl0aXZlcyBpcyB2ZXJ5LCB2ZXJ5IHdyb25n LgoKQXQgdGhlIHZlcnkgbGVhc3QgdGhpcyBpcyByYWN5IHdpdGggUFNSIGVuYWJsaW5nL2Rpc2Fi bGluZy4KCj4gKwkJCWlmIChpbnRlbF9kcF9hdXhfZ2V0KGRldl9wcml2LCBpbnRlbF9kcCkpIHsK PiArCQkJCURSTV9XQVJOKCJkcF9hdXhfY2ggcG9ydCBsb2NrZWQgZm9yIHRvbyBsb25nIik7Cj4g KwkJCQlyZXQgPSAtRUJVU1k7Cj4gKwkJCQlnb3RvIG91dF9sb2NrZWQ7Cj4gKwkJCX0KPiArCQl9 IGVsc2Ugewo+ICsJCQkvKiBUT0RPOiBnbyB0byBQU1IgZXhpdCBzdGF0ZSB3YWl0aW5nIGZvciBj aGFuZ2UgYmVmb3JlCj4gKwkJCSAqIGRvIGEgYXV4IGNoIHRyYW5zYWN0aW9uLgo+ICsJCQkgKi8K PiArCQl9Cj4gKwl9Cj4gKwo+ICAJLyogVHJ5IHRvIHdhaXQgZm9yIGFueSBwcmV2aW91cyBBVVgg Y2hhbm5lbCBhY3Rpdml0eSAqLwo+ICAJZm9yICh0cnkgPSAwOyB0cnkgPCAzOyB0cnkrKykgewo+ ICAJCXN0YXR1cyA9IEk5MTVfUkVBRF9OT1RSQUNFKGNoX2N0bCk7Cj4gQEAgLTEyNDMsNyArMTI4 MCwxNiBAQCBpbnRlbF9kcF9hdXhfY2goc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiAgCQkJ CSAgICByZWN2ICsgaSwgcmVjdl9ieXRlcyAtIGkpOwo+ICAKPiAgCXJldCA9IHJlY3ZfYnl0ZXM7 Cj4gKwo+ICBvdXQ6Cj4gKwlpZiAoZGV2X3ByaXYtPnBzci5lbmFibGVkID09IGludGVsX2RwKSB7 Cj4gKwkJaWYgKGludGVsX2RwLT5hdXhfY2hfbXV0ZXhfcmVnLnJlZykKPiArCQkJaW50ZWxfZHBf YXV4X3B1dChkZXZfcHJpdiwgaW50ZWxfZHApOwo+ICsJCWVsc2UKPiArCQkJLyogVE9ETzogc2No ZWR1bGUgUFNSIHdvcmsgdG8gYWN0aXZlIFBTUiBhZ2FpbiAqLwo+ICsJfQo+ICsKPiArb3V0X2xv Y2tlZDoKPiAgCXBtX3Fvc191cGRhdGVfcmVxdWVzdCgmZGV2X3ByaXYtPnBtX3FvcywgUE1fUU9T X0RFRkFVTFRfVkFMVUUpOwo+ICAKPiAgCWlmICh2ZGQpCj4gQEAgLTE0OTYsNiArMTU0Miw4IEBA IHN0YXRpYyB2b2lkIGludGVsX2F1eF9yZWdfaW5pdChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2Rw KQo+ICAJaW50ZWxfZHAtPmF1eF9jaF9jdGxfcmVnID0gaW50ZWxfYXV4X2N0bF9yZWcoZGV2X3By aXYsIHBvcnQpOwo+ICAJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoaW50ZWxfZHAtPmF1eF9j aF9kYXRhX3JlZyk7IGkrKykKPiAgCQlpbnRlbF9kcC0+YXV4X2NoX2RhdGFfcmVnW2ldID0gaW50 ZWxfYXV4X2RhdGFfcmVnKGRldl9wcml2LCBwb3J0LCBpKTsKPiArCWlmIChJTlRFTF9JTkZPKGRl dl9wcml2KS0+Z2VuID49IDkpCj4gKwkJaW50ZWxfZHAtPmF1eF9jaF9tdXRleF9yZWcgPSBEUF9B VVhfQ0hfTVVURVgocG9ydCk7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmgKPiBpbmRleCA4OTgwNjRlOGJlYTcuLjBkMjM1YjdkYWIyMSAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gQEAgLTEwNDAsNiArMTA0MCw3IEBAIHN0cnVjdCBpbnRl bF9kcCB7Cj4gIAlpOTE1X3JlZ190IG91dHB1dF9yZWc7Cj4gIAlpOTE1X3JlZ190IGF1eF9jaF9j dGxfcmVnOwo+ICAJaTkxNV9yZWdfdCBhdXhfY2hfZGF0YV9yZWdbNV07Cj4gKwlpOTE1X3JlZ190 IGF1eF9jaF9tdXRleF9yZWc7Cj4gIAl1aW50MzJfdCBEUDsKPiAgCWludCBsaW5rX3JhdGU7Cj4g IAl1aW50OF90IGxhbmVfY291bnQ7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3Bzci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcHNyLmMKPiBpbmRleCAy ZWYzNzRmOTM2YjkuLjhiNDU2ZTRlMWI0NyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9wc3IuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5j Cj4gQEAgLTQ4NCw2ICs0ODQsOSBAQCBzdGF0aWMgdm9pZCBoc3dfcHNyX2VuYWJsZV9zb3VyY2Uo c3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiAgCQkJICAgRURQX1BTUl9ERUJVR19NQVNLX0hQ RCB8Cj4gIAkJCSAgIEVEUF9QU1JfREVCVUdfTUFTS19MUFNQKTsKPiAgCX0KPiArCj4gKwlpZiAo aW50ZWxfZHAtPmF1eF9jaF9tdXRleF9yZWcucmVnKQo+ICsJCUk5MTVfV1JJVEUoaW50ZWxfZHAt PmF1eF9jaF9tdXRleF9yZWcsIERQX0FVWF9DSF9NVVRFWF9FTkFCTEUpOwoKWW91IGNhbid0IGp1 c3QgZ28gc3RvbXBpbmcgb24gdGhlIHJlZ2lzdGVyIHdpdGhvdXQgbG9ja2luZy4gUmFjeS4KCj4g IH0KPiAgCj4gIC8qKgo+IEBAIC02MTcsNiArNjIwLDkgQEAgc3RhdGljIHZvaWQgaHN3X3Bzcl9k aXNhYmxlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gIAkJZWxzZQo+ICAJCQlXQVJOX09O KEk5MTVfUkVBRChFRFBfUFNSX0NUTCkgJiBFRFBfUFNSX0VOQUJMRSk7Cj4gIAl9Cj4gKwo+ICsJ aWYgKGludGVsX2RwLT5hdXhfY2hfbXV0ZXhfcmVnLnJlZykKPiArCQlJOTE1X1dSSVRFKGludGVs X2RwLT5hdXhfY2hfbXV0ZXhfcmVnLCB+RFBfQVVYX0NIX01VVEVYX0VOQUJMRSk7CgpBcmUgeW91 IHN1cmUgeW91IHdhbnQgdG8gc2V0IGFsbCBvdGhlciBiaXRzIHRoYW4gZW5hYmxlPwoKCkJSLApK YW5pLgoKPiAgfQo+ICAKPiAgLyoqCgotLSAKSmFuaSBOaWt1bGEsIEludGVsIE9wZW4gU291cmNl IFRlY2hub2xvZ3kgQ2VudGVyCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeAo=