From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: Re: [PATCH v2 1/1] drm/i915: Add and enable DP AUX CH mutex Date: Thu, 22 Feb 2018 12:13:42 -0800 Message-ID: <20180222201340.GC5777@intel.com> References: <20180221022347.16405-1-jose.souza@intel.com> <20180221022347.16405-2-jose.souza@intel.com> <20180222185948.GC5453@intel.com> <20180222193403.GB19951@intel.com> <1519330831.10195.6.camel@dk-H97M-D3H> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8E0326E0E3 for ; Thu, 22 Feb 2018 20:13:42 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1519330831.10195.6.camel@dk-H97M-D3H> 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" List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBGZWIgMjIsIDIwMTggYXQgMTE6NTc6MDNBTSAtMDgwMCwgUGFuZGl5YW4sIERoaW5h a2FyYW4gd3JvdGU6Cj4gT24gVGh1LCAyMDE4LTAyLTIyIGF0IDExOjM0IC0wODAwLCBSb2RyaWdv IFZpdmkgd3JvdGU6Cj4gPiBPbiBUaHUsIEZlYiAyMiwgMjAxOCBhdCAwODo1OTo0OVBNICswMjAw LCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4gPiA+IE9uIFR1ZSwgRmViIDIwLCAyMDE4IGF0IDA2 OjIzOjQ3UE0gLTA4MDAsIEpvc8OpIFJvYmVydG8gZGUgU291emEgd3JvdGU6Cj4gPiA+ID4gV2hl biBQU1IvUFNSMi9HVEMgaXMgZW5hYmxlZCBoYXJkd2FyZSBjYW4gZG8gQVVYIHRyYW5zYWN0aW9u cyBieSBpdAo+ID4gPiA+IHNlbGYsIHNvIGxldHMgdXNlIHRoZSBtdXRleCByZWdpc3RlciB0aGF0 IGlzIGF2YWlsYWJsZSBpbiBnZW45KyB0bwo+ID4gPiA+IGF2b2lkIGNvbmN1cnJlbnQgYWNjZXNz IGJ5IGhhcmR3YXJlIGFuZCBkcml2ZXIuCj4gPiA+ID4gCj4gPiA+ID4gUmVmZXJlbmNlOiBodHRw czovLzAxLm9yZy9zaXRlcy9kZWZhdWx0L2ZpbGVzL2RvY3VtZW50YXRpb24vaW50ZWwtZ2Z4LXBy bS1vc3JjLXNrbC12b2wxMi1kaXNwbGF5LnBkZgo+ID4gPiA+IFBhZ2UgMTk4IC0gQVVYIHByb2dy YW1taW5nIHNlcXVlbmNlCj4gPiA+IAo+ID4gPiBCVFcgc2luY2UgSFNXL0JEVyBkb24ndCBoYXZl IHRoZSBtdXRleCB3ZSBzaG91bGQgcmVhbGx5IGJlIGRpc2FibGluZyBQU1IKPiA+ID4gYXJvdW5k IGF1eCBjaCB1c2FnZSBvbiB0aG9zZSBwbGF0Zm9ybXMuIE5vdCBzdXJlIGhvdyBiaWcgb2YgYSBs b2NraW5nCj4gPiA+IGludmVyc2lvbiBleGVyY2lzZSBpdCB3b3VsZCBiZSB0byBtYWtlIHRoYXQg aGFwcGVuIHRob3VnaC4KPiA+IAo+ID4gVHJ1ZS4gQnV0IEkgYmVsaWV2ZSB0aGF0IGNhbiBiZSBo YW5kbGVkIGRpZmZlcmVudGx5Lgo+ID4gUHJvYmFibHkgd2l0aCBBdXggcG93ZXIgZG9tYWlucyBi bG9ja2luZyBQU1Igb2ZmICJkb21haW4iLgo+ID4gU29tZXRoaW5nIHNpbWlsYXIgdG8gREMgb2Zm Lgo+ID4gCj4gPiBJIGFjdHVhbGx5IGhhZCBwYXRjaGVzIGZvciB0aGF0IGxvc3Qgc29tZXdoZXJl Li4uIDooCj4gPiAKPiAKPiBKdXN0IGEgbm90ZSwgdGhlIHNwZWMgZXhwbGljaXRseSBzYXlzIHdl IHNob3VsZCBkaXNhYmxlIFBTUiBhcm91bmQgQVVYCj4gdHJhbnNhY3Rpb25zIGZvciBCRFcgKGFu ZCBIU1cgaWlyYykuCj4gCj4gQWJvdXQgdXNpbmcgdGhlIHBvd2VyIGRvbWFpbiBpbmZyYSwgSSBh bSBub3QgcXVpdGUgc3VyZS4gVGhlIF9nZXQoKSBhbmQKPiBfcHV0KCkgaWRpb20gbWFrZXMgc2Vu c2Ugd2hlbiB3ZSB3YW50IHJlZmVyZW5jZSBjb3VudGluZyB0byBoYW5kbGUKPiBtdWx0aXBsZSBj b25zdW1lcnMgdGhhdCB3YW50IFBTUiB0byBiZSBkaXNhYmxlZC4gRG9lcyBhbnl0aGluZyBlbHNl IG5lZWQKPiB0byBlbmFibGUvZGlzYWJsZSBQU1I/CgpWTFYvQ0hWIHZibGFua3M/ISA6LwoKPiAK PiAKPiA+ID4gCj4gPiA+ID4gCj4gPiA+ID4gQ2M6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZp QGludGVsLmNvbT4KPiA+ID4gPiBDYzogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGxpbnV4Lmlu dGVsLmNvbT4KPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBKb3PDqSBSb2JlcnRvIGRlIFNvdXphIDxq b3NlLnNvdXphQGludGVsLmNvbT4KPiA+ID4gPiAtLS0KPiA+ID4gPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9yZWcuaCAgfCAgOSArKysrKysrKwo+ID4gPiA+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcC5jICB8IDUwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysKPiA+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggfCAgMSArCj4g PiA+ID4gIDMgZmlsZXMgY2hhbmdlZCwgNjAgaW5zZXJ0aW9ucygrKQo+ID4gPiA+IAo+ID4gPiA+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ID4gPiA+IGluZGV4IDE0MTJhYmNiMjdkNC4uYTYyZTNj MWJhZGFiIDEwMDY0NAo+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVn LmgKPiA+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gPiA+ID4g QEAgLTUzMTgsNiArNTMxOCw3IEBAIGVudW0gewo+ID4gPiA+ICAjZGVmaW5lIF9EUEFfQVVYX0NI X0RBVEEzCShkZXZfcHJpdi0+aW5mby5kaXNwbGF5X21taW9fb2Zmc2V0ICsgMHg2NDAxYykKPiA+ ID4gPiAgI2RlZmluZSBfRFBBX0FVWF9DSF9EQVRBNAkoZGV2X3ByaXYtPmluZm8uZGlzcGxheV9t bWlvX29mZnNldCArIDB4NjQwMjApCj4gPiA+ID4gICNkZWZpbmUgX0RQQV9BVVhfQ0hfREFUQTUJ KGRldl9wcml2LT5pbmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAweDY0MDI0KQo+ID4gPiA+ICsj ZGVmaW5lIF9EUEFfQVVYX0NIX01VVEVYCShkZXZfcHJpdi0+aW5mby5kaXNwbGF5X21taW9fb2Zm c2V0ICsgMHg2NDAyQykKPiA+ID4gPiAgCj4gPiA+ID4gICNkZWZpbmUgX0RQQl9BVVhfQ0hfQ1RM CQkoZGV2X3ByaXYtPmluZm8uZGlzcGxheV9tbWlvX29mZnNldCArIDB4NjQxMTApCj4gPiA+ID4g ICNkZWZpbmUgX0RQQl9BVVhfQ0hfREFUQTEJKGRldl9wcml2LT5pbmZvLmRpc3BsYXlfbW1pb19v ZmZzZXQgKyAweDY0MTE0KQo+ID4gPiA+IEBAIC01MzI1LDYgKzUzMjYsNyBAQCBlbnVtIHsKPiA+ ID4gPiAgI2RlZmluZSBfRFBCX0FVWF9DSF9EQVRBMwkoZGV2X3ByaXYtPmluZm8uZGlzcGxheV9t bWlvX29mZnNldCArIDB4NjQxMWMpCj4gPiA+ID4gICNkZWZpbmUgX0RQQl9BVVhfQ0hfREFUQTQJ KGRldl9wcml2LT5pbmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAweDY0MTIwKQo+ID4gPiA+ICAj ZGVmaW5lIF9EUEJfQVVYX0NIX0RBVEE1CShkZXZfcHJpdi0+aW5mby5kaXNwbGF5X21taW9fb2Zm c2V0ICsgMHg2NDEyNCkKPiA+ID4gPiArI2RlZmluZSBfRFBCX0FVWF9DSF9NVVRFWAkoZGV2X3By aXYtPmluZm8uZGlzcGxheV9tbWlvX29mZnNldCArIDB4NjQxMkMpCj4gPiA+ID4gIAo+ID4gPiA+ ICAjZGVmaW5lIF9EUENfQVVYX0NIX0NUTAkJKGRldl9wcml2LT5pbmZvLmRpc3BsYXlfbW1pb19v ZmZzZXQgKyAweDY0MjEwKQo+ID4gPiA+ICAjZGVmaW5lIF9EUENfQVVYX0NIX0RBVEExCShkZXZf cHJpdi0+aW5mby5kaXNwbGF5X21taW9fb2Zmc2V0ICsgMHg2NDIxNCkKPiA+ID4gPiBAQCAtNTMz Miw2ICs1MzM0LDcgQEAgZW51bSB7Cj4gPiA+ID4gICNkZWZpbmUgX0RQQ19BVVhfQ0hfREFUQTMJ KGRldl9wcml2LT5pbmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAweDY0MjFjKQo+ID4gPiA+ICAj ZGVmaW5lIF9EUENfQVVYX0NIX0RBVEE0CShkZXZfcHJpdi0+aW5mby5kaXNwbGF5X21taW9fb2Zm c2V0ICsgMHg2NDIyMCkKPiA+ID4gPiAgI2RlZmluZSBfRFBDX0FVWF9DSF9EQVRBNQkoZGV2X3By aXYtPmluZm8uZGlzcGxheV9tbWlvX29mZnNldCArIDB4NjQyMjQpCj4gPiA+ID4gKyNkZWZpbmUg X0RQQ19BVVhfQ0hfTVVURVgJKGRldl9wcml2LT5pbmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAw eDY0MjJDKQo+ID4gPiA+ICAKPiA+ID4gPiAgI2RlZmluZSBfRFBEX0FVWF9DSF9DVEwJCShkZXZf cHJpdi0+aW5mby5kaXNwbGF5X21taW9fb2Zmc2V0ICsgMHg2NDMxMCkKPiA+ID4gPiAgI2RlZmlu ZSBfRFBEX0FVWF9DSF9EQVRBMQkoZGV2X3ByaXYtPmluZm8uZGlzcGxheV9tbWlvX29mZnNldCAr IDB4NjQzMTQpCj4gPiA+ID4gQEAgLTUzMzksNiArNTM0Miw3IEBAIGVudW0gewo+ID4gPiA+ICAj ZGVmaW5lIF9EUERfQVVYX0NIX0RBVEEzCShkZXZfcHJpdi0+aW5mby5kaXNwbGF5X21taW9fb2Zm c2V0ICsgMHg2NDMxYykKPiA+ID4gPiAgI2RlZmluZSBfRFBEX0FVWF9DSF9EQVRBNAkoZGV2X3By aXYtPmluZm8uZGlzcGxheV9tbWlvX29mZnNldCArIDB4NjQzMjApCj4gPiA+ID4gICNkZWZpbmUg X0RQRF9BVVhfQ0hfREFUQTUJKGRldl9wcml2LT5pbmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAw eDY0MzI0KQo+ID4gPiA+ICsjZGVmaW5lIF9EUERfQVVYX0NIX01VVEVYCShkZXZfcHJpdi0+aW5m by5kaXNwbGF5X21taW9fb2Zmc2V0ICsgMHg2NDMyQykKPiA+ID4gPiAgCj4gPiA+ID4gICNkZWZp bmUgX0RQRl9BVVhfQ0hfQ1RMCQkoZGV2X3ByaXYtPmluZm8uZGlzcGxheV9tbWlvX29mZnNldCAr IDB4NjQ1MTApCj4gPiA+ID4gICNkZWZpbmUgX0RQRl9BVVhfQ0hfREFUQTEJKGRldl9wcml2LT5p bmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAweDY0NTE0KQo+ID4gPiA+IEBAIC01MzQ2LDYgKzUz NTAsNyBAQCBlbnVtIHsKPiA+ID4gPiAgI2RlZmluZSBfRFBGX0FVWF9DSF9EQVRBMwkoZGV2X3By aXYtPmluZm8uZGlzcGxheV9tbWlvX29mZnNldCArIDB4NjQ1MWMpCj4gPiA+ID4gICNkZWZpbmUg X0RQRl9BVVhfQ0hfREFUQTQJKGRldl9wcml2LT5pbmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAw eDY0NTIwKQo+ID4gPiA+ICAjZGVmaW5lIF9EUEZfQVVYX0NIX0RBVEE1CShkZXZfcHJpdi0+aW5m by5kaXNwbGF5X21taW9fb2Zmc2V0ICsgMHg2NDUyNCkKPiA+ID4gPiArI2RlZmluZSBfRFBGX0FV WF9DSF9NVVRFWAkoZGV2X3ByaXYtPmluZm8uZGlzcGxheV9tbWlvX29mZnNldCArIDB4NjQ1MkMp Cj4gPiA+ID4gIAo+ID4gPiA+ICAjZGVmaW5lIERQX0FVWF9DSF9DVEwocG9ydCkJX01NSU9fUE9S VChwb3J0LCBfRFBBX0FVWF9DSF9DVEwsIF9EUEJfQVVYX0NIX0NUTCkKPiA+ID4gPiAgI2RlZmlu ZSBEUF9BVVhfQ0hfREFUQShwb3J0LCBpKQlfTU1JTyhfUE9SVChwb3J0LCBfRFBBX0FVWF9DSF9E QVRBMSwgX0RQQl9BVVhfQ0hfREFUQTEpICsgKGkpICogNCkgLyogNSByZWdpc3RlcnMgKi8KPiA+ ID4gPiBAQCAtNTM3OCw2ICs1MzgzLDEwIEBAIGVudW0gewo+ID4gPiA+ICAjZGVmaW5lICAgRFBf QVVYX0NIX0NUTF9GV19TWU5DX1BVTFNFX1NLTChjKSAoKChjKSAtIDEpIDw8IDUpCj4gPiA+ID4g ICNkZWZpbmUgICBEUF9BVVhfQ0hfQ1RMX1NZTkNfUFVMU0VfU0tMKGMpICAgKChjKSAtIDEpCj4g PiA+ID4gIAo+ID4gPiA+ICsjZGVmaW5lIERQX0FVWF9DSF9NVVRFWChwb3J0KQlfTU1JT19QT1JU KHBvcnQsIF9EUEFfQVVYX0NIX01VVEVYLCBfRFBCX0FVWF9DSF9NVVRFWCkKPiA+ID4gPiArI2Rl ZmluZSAgIERQX0FVWF9DSF9NVVRFWF9FTkFCTEUJCSgxIDw8IDMxKQo+ID4gPiA+ICsjZGVmaW5l ICAgRFBfQVVYX0NIX01VVEVYX1NUQVRVUwkJKDEgPDwgMzApCj4gPiA+ID4gKwo+ID4gPiA+ICAv Kgo+ID4gPiA+ICAgKiBDb21wdXRpbmcgR01DSCBNIGFuZCBOIHZhbHVlcyBmb3IgdGhlIERpc3Bs YXkgUG9ydCBsaW5rCj4gPiA+ID4gICAqCj4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4g PiA+ID4gaW5kZXggZjIwYjI1Zjk4ZTVhLi5hZjA3NTYzYmFmYmEgMTAwNjQ0Cj4gPiA+ID4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gPiA+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiA+ID4gPiBAQCAtMTA4MSw2ICsxMDgxLDQ1IEBAIHN0 YXRpYyB1aW50MzJfdCBpbnRlbF9kcF9nZXRfYXV4X3NlbmRfY3RsKHN0cnVjdCBpbnRlbF9kcCAq aW50ZWxfZHAsCj4gPiA+ID4gIAkJCQkJCWF1eF9jbG9ja19kaXZpZGVyKTsKPiA+ID4gPiAgfQo+ ID4gPiA+ICAKPiA+ID4gPiArc3RhdGljIGJvb2wgaW50ZWxfZHBfYXV4X2NoX3RyeWxvY2soc3Ry dWN0IGludGVsX2RwICppbnRlbF9kcCkKPiA+ID4gPiArewo+ID4gPiA+ICsJc3RydWN0IGludGVs X2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCk7 Cj4gPiA+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPQo+ID4gPiA+ICsJ CQl0b19pOTE1KGludGVsX2RpZ19wb3J0LT5iYXNlLmJhc2UuZGV2KTsKPiA+ID4gPiArCj4gPiA+ ID4gKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8IDkpCj4gPiA+ID4gKwkJcmV0dXJuIHRydWU7 Cj4gPiA+ID4gKwo+ID4gPiA+ICsJSTkxNV9XUklURShpbnRlbF9kcC0+YXV4X2NoX211dGV4X3Jl ZywgRFBfQVVYX0NIX01VVEVYX0VOQUJMRSk7Cj4gPiA+ID4gKwo+ID4gPiA+ICsJLyogU3BlYyBz YXlzIHRoYXQgbXV0ZXggaXMgYWNxdWlyZWQgd2hlbiBzdGF0dXMgYml0IGlzIHJlYWQgYXMgdW5z ZXQsCj4gPiA+ID4gKwkgKiBpZiBzZXQgaXQgc2hvdWxkIGJlIHJlYWQgYWdhaW4gYWZ0ZXIgNTAw dXNlYy4gSGVyZSB3YWl0aW5nIGZvcgo+ID4gPiA+ICsJICogMm1zZWMgb3IgNCB0cmllcyBiZWZv cmUgZ2l2ZSB1cC4KPiA+ID4gPiArCSAqLwo+ID4gPiA+ICsJaWYgKF9faW50ZWxfd2FpdF9mb3Jf cmVnaXN0ZXIoZGV2X3ByaXYsIGludGVsX2RwLT5hdXhfY2hfbXV0ZXhfcmVnLAo+ID4gPiA+ICsJ CQkJICAgICAgRFBfQVVYX0NIX01VVEVYX1NUQVRVUywgMCwgNTAwLCAyLAo+ID4gPiA+ICsJCQkJ ICAgICAgTlVMTCkpIHsKPiA+ID4gPiArCQlEUk1fV0FSTigiZHBfYXV4X2NoIHBvcnQgbG9ja2Vk IGZvciB0b28gbG9uZyIpOwo+ID4gPiA+ICsJCXJldHVybiBmYWxzZTsKPiA+ID4gPiArCX0KPiA+ ID4gPiArCj4gPiA+ID4gKwlyZXR1cm4gdHJ1ZTsKPiA+ID4gPiArfQo+ID4gPiA+ICsKPiA+ID4g PiArc3RhdGljIHZvaWQgaW50ZWxfZHBfYXV4X2NoX3VubG9jayhzdHJ1Y3QgaW50ZWxfZHAgKmlu dGVsX2RwKQo+ID4gPiA+ICt7Cj4gPiA+ID4gKwlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpp bnRlbF9kaWdfcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKPiA+ID4gPiArCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9Cj4gPiA+ID4gKwkJCXRvX2k5MTUoaW50ZWxf ZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXYpOwo+ID4gPiA+ICsKPiA+ID4gPiArCWlmIChJTlRFTF9H RU4oZGV2X3ByaXYpIDwgOSkKPiA+ID4gPiArCQlyZXR1cm47Cj4gPiA+ID4gKwo+ID4gPiA+ICsJ Lyogc2V0dGluZyB0aGUgc3RhdHVzIGJpdCByZWxlYXNlcyB0aGUgbXV0ZXggKyBrZWVwIG11dGV4 IGVuYWJsZWQgKi8KPiA+ID4gPiArCUk5MTVfV1JJVEUoaW50ZWxfZHAtPmF1eF9jaF9tdXRleF9y ZWcsIERQX0FVWF9DSF9NVVRFWF9FTkFCTEUgfAo+ID4gPiA+ICsJCSAgIERQX0FVWF9DSF9NVVRF WF9TVEFUVVMpOwo+ID4gPiA+ICt9Cj4gPiA+ID4gKwo+ID4gPiA+ICBzdGF0aWMgaW50Cj4gPiA+ ID4gIGludGVsX2RwX2F1eF9jaChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ID4gPiA+ICAJ CWNvbnN0IHVpbnQ4X3QgKnNlbmQsIGludCBzZW5kX2J5dGVzLAo+ID4gPiA+IEBAIC0xMTE1LDYg KzExNTQsMTEgQEAgaW50ZWxfZHBfYXV4X2NoKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4g PiA+ID4gIAo+ID4gPiA+ICAJaW50ZWxfZHBfY2hlY2tfZWRwKGludGVsX2RwKTsKPiA+ID4gPiAg Cj4gPiA+ID4gKwlpZiAoIWludGVsX2RwX2F1eF9jaF90cnlsb2NrKGludGVsX2RwKSkgewo+ID4g PiA+ICsJCXJldCA9IC1FQlVTWTsKPiA+ID4gPiArCQlnb3RvIG91dF9sb2NrZWQ7Cj4gPiA+ID4g Kwl9Cj4gPiA+ID4gKwo+ID4gPiA+ICAJLyogVHJ5IHRvIHdhaXQgZm9yIGFueSBwcmV2aW91cyBB VVggY2hhbm5lbCBhY3Rpdml0eSAqLwo+ID4gPiA+ICAJZm9yICh0cnkgPSAwOyB0cnkgPCAzOyB0 cnkrKykgewo+ID4gPiA+ICAJCXN0YXR1cyA9IEk5MTVfUkVBRF9OT1RSQUNFKGNoX2N0bCk7Cj4g PiA+ID4gQEAgLTEyNDQsNiArMTI4OCw4IEBAIGludGVsX2RwX2F1eF9jaChzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwLAo+ID4gPiA+ICAKPiA+ID4gPiAgCXJldCA9IHJlY3ZfYnl0ZXM7Cj4gPiA+ ID4gIG91dDoKPiA+ID4gPiArCWludGVsX2RwX2F1eF9jaF91bmxvY2soaW50ZWxfZHApOwo+ID4g PiA+ICtvdXRfbG9ja2VkOgo+ID4gPiA+ICAJcG1fcW9zX3VwZGF0ZV9yZXF1ZXN0KCZkZXZfcHJp di0+cG1fcW9zLCBQTV9RT1NfREVGQVVMVF9WQUxVRSk7Cj4gPiA+ID4gIAo+ID4gPiA+ICAJaWYg KHZkZCkKPiA+ID4gPiBAQCAtMTQ5Niw2ICsxNTQyLDEwIEBAIHN0YXRpYyB2b2lkIGludGVsX2F1 eF9yZWdfaW5pdChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ID4gPiA+ICAJaW50ZWxfZHAt PmF1eF9jaF9jdGxfcmVnID0gaW50ZWxfYXV4X2N0bF9yZWcoZGV2X3ByaXYsIHBvcnQpOwo+ID4g PiA+ICAJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoaW50ZWxfZHAtPmF1eF9jaF9kYXRhX3Jl Zyk7IGkrKykKPiA+ID4gPiAgCQlpbnRlbF9kcC0+YXV4X2NoX2RhdGFfcmVnW2ldID0gaW50ZWxf YXV4X2RhdGFfcmVnKGRldl9wcml2LCBwb3J0LCBpKTsKPiA+ID4gPiArCWlmIChJTlRFTF9JTkZP KGRldl9wcml2KS0+Z2VuID49IDkpIHsKPiA+ID4gPiArCQlpbnRlbF9kcC0+YXV4X2NoX211dGV4 X3JlZyA9IERQX0FVWF9DSF9NVVRFWChwb3J0KTsKPiA+ID4gPiArCQlJOTE1X1dSSVRFKGludGVs X2RwLT5hdXhfY2hfbXV0ZXhfcmVnLCBEUF9BVVhfQ0hfTVVURVhfRU5BQkxFKTsKPiA+ID4gPiAr CX0KPiA+ID4gPiAgfQo+ID4gPiA+ICAKPiA+ID4gPiAgc3RhdGljIHZvaWQKPiA+ID4gPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gPiA+IGluZGV4IDUwODc0ZjQwMzVjZi4uMGM4ODY1N2Q2 MDY2IDEwMDY0NAo+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o Cj4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+ID4gPiBA QCAtMTA0Myw2ICsxMDQzLDcgQEAgc3RydWN0IGludGVsX2RwIHsKPiA+ID4gPiAgCWk5MTVfcmVn X3Qgb3V0cHV0X3JlZzsKPiA+ID4gPiAgCWk5MTVfcmVnX3QgYXV4X2NoX2N0bF9yZWc7Cj4gPiA+ ID4gIAlpOTE1X3JlZ190IGF1eF9jaF9kYXRhX3JlZ1s1XTsKPiA+ID4gPiArCWk5MTVfcmVnX3Qg YXV4X2NoX211dGV4X3JlZzsKPiA+ID4gPiAgCXVpbnQzMl90IERQOwo+ID4gPiA+ICAJaW50IGxp bmtfcmF0ZTsKPiA+ID4gPiAgCXVpbnQ4X3QgbGFuZV9jb3VudDsKPiA+ID4gPiAtLSAKPiA+ID4g PiAyLjE2LjIKPiA+ID4gPiAKPiA+ID4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwo+ID4gPiA+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiA+ID4gPiBJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPiA+ID4gaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKPiA+ID4gCj4gPiA+IC0tIAo+ ID4gPiBWaWxsZSBTeXJqw6Rsw6QKPiA+ID4gSW50ZWwgT1RDCj4gPiBfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ID4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlz dAo+ID4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ID4gaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==