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:47:58 -0800 Message-ID: <20180222204757.GH5777@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> <20180222201340.GC5777@intel.com> <1519332555.10195.16.camel@dk-H97M-D3H> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7ECF26E146 for ; Thu, 22 Feb 2018 20:48:00 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1519332555.10195.16.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 T24gVGh1LCBGZWIgMjIsIDIwMTggYXQgMTI6MjU6NDZQTSAtMDgwMCwgUGFuZGl5YW4sIERoaW5h a2FyYW4gd3JvdGU6Cj4gT24gVGh1LCAyMDE4LTAyLTIyIGF0IDEyOjEzIC0wODAwLCBSb2RyaWdv IFZpdmkgd3JvdGU6Cj4gPiBPbiBUaHUsIEZlYiAyMiwgMjAxOCBhdCAxMTo1NzowM0FNIC0wODAw LCBQYW5kaXlhbiwgRGhpbmFrYXJhbiB3cm90ZToKPiA+ID4gT24gVGh1LCAyMDE4LTAyLTIyIGF0 IDExOjM0IC0wODAwLCBSb2RyaWdvIFZpdmkgd3JvdGU6Cj4gPiA+ID4gT24gVGh1LCBGZWIgMjIs IDIwMTggYXQgMDg6NTk6NDlQTSArMDIwMCwgVmlsbGUgU3lyasOkbMOkIHdyb3RlOgo+ID4gPiA+ ID4gT24gVHVlLCBGZWIgMjAsIDIwMTggYXQgMDY6MjM6NDdQTSAtMDgwMCwgSm9zw6kgUm9iZXJ0 byBkZSBTb3V6YSB3cm90ZToKPiA+ID4gPiA+ID4gV2hlbiBQU1IvUFNSMi9HVEMgaXMgZW5hYmxl ZCBoYXJkd2FyZSBjYW4gZG8gQVVYIHRyYW5zYWN0aW9ucyBieSBpdAo+ID4gPiA+ID4gPiBzZWxm LCBzbyBsZXRzIHVzZSB0aGUgbXV0ZXggcmVnaXN0ZXIgdGhhdCBpcyBhdmFpbGFibGUgaW4gZ2Vu OSsgdG8KPiA+ID4gPiA+ID4gYXZvaWQgY29uY3VycmVudCBhY2Nlc3MgYnkgaGFyZHdhcmUgYW5k IGRyaXZlci4KPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+IFJlZmVyZW5jZTogaHR0cHM6Ly8wMS5v cmcvc2l0ZXMvZGVmYXVsdC9maWxlcy9kb2N1bWVudGF0aW9uL2ludGVsLWdmeC1wcm0tb3NyYy1z a2wtdm9sMTItZGlzcGxheS5wZGYKPiA+ID4gPiA+ID4gUGFnZSAxOTggLSBBVVggcHJvZ3JhbW1p bmcgc2VxdWVuY2UKPiA+ID4gPiA+IAo+ID4gPiA+ID4gQlRXIHNpbmNlIEhTVy9CRFcgZG9uJ3Qg aGF2ZSB0aGUgbXV0ZXggd2Ugc2hvdWxkIHJlYWxseSBiZSBkaXNhYmxpbmcgUFNSCj4gPiA+ID4g PiBhcm91bmQgYXV4IGNoIHVzYWdlIG9uIHRob3NlIHBsYXRmb3Jtcy4gTm90IHN1cmUgaG93IGJp ZyBvZiBhIGxvY2tpbmcKPiA+ID4gPiA+IGludmVyc2lvbiBleGVyY2lzZSBpdCB3b3VsZCBiZSB0 byBtYWtlIHRoYXQgaGFwcGVuIHRob3VnaC4KPiA+ID4gPiAKPiA+ID4gPiBUcnVlLiBCdXQgSSBi ZWxpZXZlIHRoYXQgY2FuIGJlIGhhbmRsZWQgZGlmZmVyZW50bHkuCj4gPiA+ID4gUHJvYmFibHkg d2l0aCBBdXggcG93ZXIgZG9tYWlucyBibG9ja2luZyBQU1Igb2ZmICJkb21haW4iLgo+ID4gPiA+ IFNvbWV0aGluZyBzaW1pbGFyIHRvIERDIG9mZi4KPiA+ID4gPiAKPiA+ID4gPiBJIGFjdHVhbGx5 IGhhZCBwYXRjaGVzIGZvciB0aGF0IGxvc3Qgc29tZXdoZXJlLi4uIDooCj4gPiA+ID4gCj4gPiA+ IAo+ID4gPiBKdXN0IGEgbm90ZSwgdGhlIHNwZWMgZXhwbGljaXRseSBzYXlzIHdlIHNob3VsZCBk aXNhYmxlIFBTUiBhcm91bmQgQVVYCj4gPiA+IHRyYW5zYWN0aW9ucyBmb3IgQkRXIChhbmQgSFNX IGlpcmMpLgo+ID4gPiAKPiA+ID4gQWJvdXQgdXNpbmcgdGhlIHBvd2VyIGRvbWFpbiBpbmZyYSwg SSBhbSBub3QgcXVpdGUgc3VyZS4gVGhlIF9nZXQoKSBhbmQKPiA+ID4gX3B1dCgpIGlkaW9tIG1h a2VzIHNlbnNlIHdoZW4gd2Ugd2FudCByZWZlcmVuY2UgY291bnRpbmcgdG8gaGFuZGxlCj4gPiA+ IG11bHRpcGxlIGNvbnN1bWVycyB0aGF0IHdhbnQgUFNSIHRvIGJlIGRpc2FibGVkLiBEb2VzIGFu eXRoaW5nIGVsc2UgbmVlZAo+ID4gPiB0byBlbmFibGUvZGlzYWJsZSBQU1I/Cj4gPiAKPiA+IFZM Vi9DSFYgdmJsYW5rcz8hIDovCj4gPiAKPiAKPiBJIGtlZXAgZm9yZ2V0dGluZyBWTFYvQ0hWLCBz b3JyeS4gVGhpcyBicmluZ3MgdXMgYmFjayB0byB0aGUgd2hvbGUKPiAiY2FsbGluZyBibG9ja2lu ZyBmdW5jdGlvbnMgZnJvbSBhdG9taWMgY29udGV4dHMiIHByb2JsZW0uIE5vdCBzdXJlIGhvdwo+ IHRvIGhhbmRsZSB0aGF0Lgo+IAo+IEFzc3VtaW5nIHdlIHNvbHZlIHRoYXQgcHJvYmxlbSwgd2Ug c2hvdWxkIGFsc28gcHJvYmFibHkgYXZvaWQgcG9sbHV0aW5nCj4gdGhlIHBvd2VyIGRvbWFpbiBj b2RlIGFuZCBhZGQgcmVmZXJlbmNlIGNvdW50aW5nIGZvciBQU1IuIEhvd2V2ZXIsIHNpbmNlCj4g YWxsIHRoaXMgaXMgbm90IHJlcXVpcmVkIGZvciBCRFcvSFNXLCBJIGFtIGluY2xpbmVkIHRvd2Fy ZHMgYSBzaW1wbGVyCj4gc29sdXRpb24gZm9yIEJEVy9IU1cgQVVYIHVzYWdlLiAKCkkgYWdyZWUu IFRoZW4gcHJvYmFibHkgdGhlIHNpbXBsZXIgc29sdXRpb24gY291bGQgdGhhbiBiZSBhcHBsaWVk IG9uClZMVi9DSFYuLi4gd2hvIGtub3dzLgoKYW55d2F5cyBzZXBhcmF0ZWQgZnJvbSB0aGlzIHBh dGNoIGhlcmUuLi4gbGV0J3Mga2VlcCB0aGlzIG9uZSBjbGVhbi4KCj4gCj4gCj4gPiA+IAo+ID4g PiAKPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gQ2M6IFJvZHJpZ28gVml2aSA8 cm9kcmlnby52aXZpQGludGVsLmNvbT4KPiA+ID4gPiA+ID4gQ2M6IEphbmkgTmlrdWxhIDxqYW5p Lm5pa3VsYUBsaW51eC5pbnRlbC5jb20+Cj4gPiA+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IEpvc8Op IFJvYmVydG8gZGUgU291emEgPGpvc2Uuc291emFAaW50ZWwuY29tPgo+ID4gPiA+ID4gPiAtLS0K PiA+ID4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggIHwgIDkgKysrKysr KysKPiA+ID4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgIHwgNTAgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ID4gPiA+ID4gPiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggfCAgMSArCj4gPiA+ID4gPiA+ICAzIGZpbGVzIGNo YW5nZWQsIDYwIGluc2VydGlvbnMoKykKPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9yZWcuaAo+ID4gPiA+ID4gPiBpbmRleCAxNDEyYWJjYjI3ZDQuLmE2MmUzYzFiYWRh YiAxMDA2NDQKPiA+ID4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcu aAo+ID4gPiA+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gPiA+ ID4gPiA+IEBAIC01MzE4LDYgKzUzMTgsNyBAQCBlbnVtIHsKPiA+ID4gPiA+ID4gICNkZWZpbmUg X0RQQV9BVVhfQ0hfREFUQTMJKGRldl9wcml2LT5pbmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAw eDY0MDFjKQo+ID4gPiA+ID4gPiAgI2RlZmluZSBfRFBBX0FVWF9DSF9EQVRBNAkoZGV2X3ByaXYt PmluZm8uZGlzcGxheV9tbWlvX29mZnNldCArIDB4NjQwMjApCj4gPiA+ID4gPiA+ICAjZGVmaW5l IF9EUEFfQVVYX0NIX0RBVEE1CShkZXZfcHJpdi0+aW5mby5kaXNwbGF5X21taW9fb2Zmc2V0ICsg MHg2NDAyNCkKPiA+ID4gPiA+ID4gKyNkZWZpbmUgX0RQQV9BVVhfQ0hfTVVURVgJKGRldl9wcml2 LT5pbmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAweDY0MDJDKQo+ID4gPiA+ID4gPiAgCj4gPiA+ ID4gPiA+ICAjZGVmaW5lIF9EUEJfQVVYX0NIX0NUTAkJKGRldl9wcml2LT5pbmZvLmRpc3BsYXlf bW1pb19vZmZzZXQgKyAweDY0MTEwKQo+ID4gPiA+ID4gPiAgI2RlZmluZSBfRFBCX0FVWF9DSF9E QVRBMQkoZGV2X3ByaXYtPmluZm8uZGlzcGxheV9tbWlvX29mZnNldCArIDB4NjQxMTQpCj4gPiA+ ID4gPiA+IEBAIC01MzI1LDYgKzUzMjYsNyBAQCBlbnVtIHsKPiA+ID4gPiA+ID4gICNkZWZpbmUg X0RQQl9BVVhfQ0hfREFUQTMJKGRldl9wcml2LT5pbmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAw eDY0MTFjKQo+ID4gPiA+ID4gPiAgI2RlZmluZSBfRFBCX0FVWF9DSF9EQVRBNAkoZGV2X3ByaXYt PmluZm8uZGlzcGxheV9tbWlvX29mZnNldCArIDB4NjQxMjApCj4gPiA+ID4gPiA+ICAjZGVmaW5l IF9EUEJfQVVYX0NIX0RBVEE1CShkZXZfcHJpdi0+aW5mby5kaXNwbGF5X21taW9fb2Zmc2V0ICsg MHg2NDEyNCkKPiA+ID4gPiA+ID4gKyNkZWZpbmUgX0RQQl9BVVhfQ0hfTVVURVgJKGRldl9wcml2 LT5pbmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAweDY0MTJDKQo+ID4gPiA+ID4gPiAgCj4gPiA+ ID4gPiA+ICAjZGVmaW5lIF9EUENfQVVYX0NIX0NUTAkJKGRldl9wcml2LT5pbmZvLmRpc3BsYXlf bW1pb19vZmZzZXQgKyAweDY0MjEwKQo+ID4gPiA+ID4gPiAgI2RlZmluZSBfRFBDX0FVWF9DSF9E QVRBMQkoZGV2X3ByaXYtPmluZm8uZGlzcGxheV9tbWlvX29mZnNldCArIDB4NjQyMTQpCj4gPiA+ ID4gPiA+IEBAIC01MzMyLDYgKzUzMzQsNyBAQCBlbnVtIHsKPiA+ID4gPiA+ID4gICNkZWZpbmUg X0RQQ19BVVhfQ0hfREFUQTMJKGRldl9wcml2LT5pbmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAw eDY0MjFjKQo+ID4gPiA+ID4gPiAgI2RlZmluZSBfRFBDX0FVWF9DSF9EQVRBNAkoZGV2X3ByaXYt PmluZm8uZGlzcGxheV9tbWlvX29mZnNldCArIDB4NjQyMjApCj4gPiA+ID4gPiA+ICAjZGVmaW5l IF9EUENfQVVYX0NIX0RBVEE1CShkZXZfcHJpdi0+aW5mby5kaXNwbGF5X21taW9fb2Zmc2V0ICsg MHg2NDIyNCkKPiA+ID4gPiA+ID4gKyNkZWZpbmUgX0RQQ19BVVhfQ0hfTVVURVgJKGRldl9wcml2 LT5pbmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAweDY0MjJDKQo+ID4gPiA+ID4gPiAgCj4gPiA+ ID4gPiA+ICAjZGVmaW5lIF9EUERfQVVYX0NIX0NUTAkJKGRldl9wcml2LT5pbmZvLmRpc3BsYXlf bW1pb19vZmZzZXQgKyAweDY0MzEwKQo+ID4gPiA+ID4gPiAgI2RlZmluZSBfRFBEX0FVWF9DSF9E QVRBMQkoZGV2X3ByaXYtPmluZm8uZGlzcGxheV9tbWlvX29mZnNldCArIDB4NjQzMTQpCj4gPiA+ ID4gPiA+IEBAIC01MzM5LDYgKzUzNDIsNyBAQCBlbnVtIHsKPiA+ID4gPiA+ID4gICNkZWZpbmUg X0RQRF9BVVhfQ0hfREFUQTMJKGRldl9wcml2LT5pbmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAw eDY0MzFjKQo+ID4gPiA+ID4gPiAgI2RlZmluZSBfRFBEX0FVWF9DSF9EQVRBNAkoZGV2X3ByaXYt PmluZm8uZGlzcGxheV9tbWlvX29mZnNldCArIDB4NjQzMjApCj4gPiA+ID4gPiA+ICAjZGVmaW5l IF9EUERfQVVYX0NIX0RBVEE1CShkZXZfcHJpdi0+aW5mby5kaXNwbGF5X21taW9fb2Zmc2V0ICsg MHg2NDMyNCkKPiA+ID4gPiA+ID4gKyNkZWZpbmUgX0RQRF9BVVhfQ0hfTVVURVgJKGRldl9wcml2 LT5pbmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAweDY0MzJDKQo+ID4gPiA+ID4gPiAgCj4gPiA+ ID4gPiA+ICAjZGVmaW5lIF9EUEZfQVVYX0NIX0NUTAkJKGRldl9wcml2LT5pbmZvLmRpc3BsYXlf bW1pb19vZmZzZXQgKyAweDY0NTEwKQo+ID4gPiA+ID4gPiAgI2RlZmluZSBfRFBGX0FVWF9DSF9E QVRBMQkoZGV2X3ByaXYtPmluZm8uZGlzcGxheV9tbWlvX29mZnNldCArIDB4NjQ1MTQpCj4gPiA+ ID4gPiA+IEBAIC01MzQ2LDYgKzUzNTAsNyBAQCBlbnVtIHsKPiA+ID4gPiA+ID4gICNkZWZpbmUg X0RQRl9BVVhfQ0hfREFUQTMJKGRldl9wcml2LT5pbmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAw eDY0NTFjKQo+ID4gPiA+ID4gPiAgI2RlZmluZSBfRFBGX0FVWF9DSF9EQVRBNAkoZGV2X3ByaXYt PmluZm8uZGlzcGxheV9tbWlvX29mZnNldCArIDB4NjQ1MjApCj4gPiA+ID4gPiA+ICAjZGVmaW5l IF9EUEZfQVVYX0NIX0RBVEE1CShkZXZfcHJpdi0+aW5mby5kaXNwbGF5X21taW9fb2Zmc2V0ICsg MHg2NDUyNCkKPiA+ID4gPiA+ID4gKyNkZWZpbmUgX0RQRl9BVVhfQ0hfTVVURVgJKGRldl9wcml2 LT5pbmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAweDY0NTJDKQo+ID4gPiA+ID4gPiAgCj4gPiA+ ID4gPiA+ICAjZGVmaW5lIERQX0FVWF9DSF9DVEwocG9ydCkJX01NSU9fUE9SVChwb3J0LCBfRFBB X0FVWF9DSF9DVEwsIF9EUEJfQVVYX0NIX0NUTCkKPiA+ID4gPiA+ID4gICNkZWZpbmUgRFBfQVVY X0NIX0RBVEEocG9ydCwgaSkJX01NSU8oX1BPUlQocG9ydCwgX0RQQV9BVVhfQ0hfREFUQTEsIF9E UEJfQVVYX0NIX0RBVEExKSArIChpKSAqIDQpIC8qIDUgcmVnaXN0ZXJzICovCj4gPiA+ID4gPiA+ IEBAIC01Mzc4LDYgKzUzODMsMTAgQEAgZW51bSB7Cj4gPiA+ID4gPiA+ICAjZGVmaW5lICAgRFBf QVVYX0NIX0NUTF9GV19TWU5DX1BVTFNFX1NLTChjKSAoKChjKSAtIDEpIDw8IDUpCj4gPiA+ID4g PiA+ICAjZGVmaW5lICAgRFBfQVVYX0NIX0NUTF9TWU5DX1BVTFNFX1NLTChjKSAgICgoYykgLSAx KQo+ID4gPiA+ID4gPiAgCj4gPiA+ID4gPiA+ICsjZGVmaW5lIERQX0FVWF9DSF9NVVRFWChwb3J0 KQlfTU1JT19QT1JUKHBvcnQsIF9EUEFfQVVYX0NIX01VVEVYLCBfRFBCX0FVWF9DSF9NVVRFWCkK PiA+ID4gPiA+ID4gKyNkZWZpbmUgICBEUF9BVVhfQ0hfTVVURVhfRU5BQkxFCQkoMSA8PCAzMSkK PiA+ID4gPiA+ID4gKyNkZWZpbmUgICBEUF9BVVhfQ0hfTVVURVhfU1RBVFVTCQkoMSA8PCAzMCkK PiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiAgLyoKPiA+ID4gPiA+ID4gICAqIENvbXB1dGluZyBH TUNIIE0gYW5kIE4gdmFsdWVzIGZvciB0aGUgRGlzcGxheSBQb3J0IGxpbmsKPiA+ID4gPiA+ID4g ICAqCj4gPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gPiA+ID4gPiBpbmRleCBm MjBiMjVmOThlNWEuLmFmMDc1NjNiYWZiYSAxMDA2NDQKPiA+ID4gPiA+ID4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gPiA+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcC5jCj4gPiA+ID4gPiA+IEBAIC0xMDgxLDYgKzEwODEsNDUgQEAgc3Rh dGljIHVpbnQzMl90IGludGVsX2RwX2dldF9hdXhfc2VuZF9jdGwoc3RydWN0IGludGVsX2RwICpp bnRlbF9kcCwKPiA+ID4gPiA+ID4gIAkJCQkJCWF1eF9jbG9ja19kaXZpZGVyKTsKPiA+ID4gPiA+ ID4gIH0KPiA+ID4gPiA+ID4gIAo+ID4gPiA+ID4gPiArc3RhdGljIGJvb2wgaW50ZWxfZHBfYXV4 X2NoX3RyeWxvY2soc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiA+ID4gPiA+ID4gK3sKPiA+ ID4gPiA+ID4gKwlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGRw X3RvX2RpZ19wb3J0KGludGVsX2RwKTsKPiA+ID4gPiA+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPQo+ID4gPiA+ID4gPiArCQkJdG9faTkxNShpbnRlbF9kaWdfcG9ydC0+ YmFzZS5iYXNlLmRldik7Cj4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gKwlpZiAoSU5URUxfR0VO KGRldl9wcml2KSA8IDkpCj4gPiA+ID4gPiA+ICsJCXJldHVybiB0cnVlOwo+ID4gPiA+ID4gPiAr Cj4gPiA+ID4gPiA+ICsJSTkxNV9XUklURShpbnRlbF9kcC0+YXV4X2NoX211dGV4X3JlZywgRFBf QVVYX0NIX01VVEVYX0VOQUJMRSk7Cj4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gKwkvKiBTcGVj IHNheXMgdGhhdCBtdXRleCBpcyBhY3F1aXJlZCB3aGVuIHN0YXR1cyBiaXQgaXMgcmVhZCBhcyB1 bnNldCwKPiA+ID4gPiA+ID4gKwkgKiBpZiBzZXQgaXQgc2hvdWxkIGJlIHJlYWQgYWdhaW4gYWZ0 ZXIgNTAwdXNlYy4gSGVyZSB3YWl0aW5nIGZvcgo+ID4gPiA+ID4gPiArCSAqIDJtc2VjIG9yIDQg dHJpZXMgYmVmb3JlIGdpdmUgdXAuCj4gPiA+ID4gPiA+ICsJICovCj4gPiA+ID4gPiA+ICsJaWYg KF9faW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoZGV2X3ByaXYsIGludGVsX2RwLT5hdXhfY2hfbXV0 ZXhfcmVnLAo+ID4gPiA+ID4gPiArCQkJCSAgICAgIERQX0FVWF9DSF9NVVRFWF9TVEFUVVMsIDAs IDUwMCwgMiwKPiA+ID4gPiA+ID4gKwkJCQkgICAgICBOVUxMKSkgewo+ID4gPiA+ID4gPiArCQlE Uk1fV0FSTigiZHBfYXV4X2NoIHBvcnQgbG9ja2VkIGZvciB0b28gbG9uZyIpOwo+ID4gPiA+ID4g PiArCQlyZXR1cm4gZmFsc2U7Cj4gPiA+ID4gPiA+ICsJfQo+ID4gPiA+ID4gPiArCj4gPiA+ID4g PiA+ICsJcmV0dXJuIHRydWU7Cj4gPiA+ID4gPiA+ICt9Cj4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ ID4gK3N0YXRpYyB2b2lkIGludGVsX2RwX2F1eF9jaF91bmxvY2soc3RydWN0IGludGVsX2RwICpp bnRlbF9kcCkKPiA+ID4gPiA+ID4gK3sKPiA+ID4gPiA+ID4gKwlzdHJ1Y3QgaW50ZWxfZGlnaXRh bF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKPiA+ID4g PiA+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPQo+ID4gPiA+ID4gPiAr CQkJdG9faTkxNShpbnRlbF9kaWdfcG9ydC0+YmFzZS5iYXNlLmRldik7Cj4gPiA+ID4gPiA+ICsK PiA+ID4gPiA+ID4gKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8IDkpCj4gPiA+ID4gPiA+ICsJ CXJldHVybjsKPiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiArCS8qIHNldHRpbmcgdGhlIHN0YXR1 cyBiaXQgcmVsZWFzZXMgdGhlIG11dGV4ICsga2VlcCBtdXRleCBlbmFibGVkICovCj4gPiA+ID4g PiA+ICsJSTkxNV9XUklURShpbnRlbF9kcC0+YXV4X2NoX211dGV4X3JlZywgRFBfQVVYX0NIX01V VEVYX0VOQUJMRSB8Cj4gPiA+ID4gPiA+ICsJCSAgIERQX0FVWF9DSF9NVVRFWF9TVEFUVVMpOwo+ ID4gPiA+ID4gPiArfQo+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ICBzdGF0aWMgaW50Cj4gPiA+ ID4gPiA+ICBpbnRlbF9kcF9hdXhfY2goc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiA+ID4g PiA+ID4gIAkJY29uc3QgdWludDhfdCAqc2VuZCwgaW50IHNlbmRfYnl0ZXMsCj4gPiA+ID4gPiA+ IEBAIC0xMTE1LDYgKzExNTQsMTEgQEAgaW50ZWxfZHBfYXV4X2NoKHN0cnVjdCBpbnRlbF9kcCAq aW50ZWxfZHAsCj4gPiA+ID4gPiA+ICAKPiA+ID4gPiA+ID4gIAlpbnRlbF9kcF9jaGVja19lZHAo aW50ZWxfZHApOwo+ID4gPiA+ID4gPiAgCj4gPiA+ID4gPiA+ICsJaWYgKCFpbnRlbF9kcF9hdXhf Y2hfdHJ5bG9jayhpbnRlbF9kcCkpIHsKPiA+ID4gPiA+ID4gKwkJcmV0ID0gLUVCVVNZOwo+ID4g PiA+ID4gPiArCQlnb3RvIG91dF9sb2NrZWQ7Cj4gPiA+ID4gPiA+ICsJfQo+ID4gPiA+ID4gPiAr Cj4gPiA+ID4gPiA+ICAJLyogVHJ5IHRvIHdhaXQgZm9yIGFueSBwcmV2aW91cyBBVVggY2hhbm5l bCBhY3Rpdml0eSAqLwo+ID4gPiA+ID4gPiAgCWZvciAodHJ5ID0gMDsgdHJ5IDwgMzsgdHJ5Kysp IHsKPiA+ID4gPiA+ID4gIAkJc3RhdHVzID0gSTkxNV9SRUFEX05PVFJBQ0UoY2hfY3RsKTsKPiA+ ID4gPiA+ID4gQEAgLTEyNDQsNiArMTI4OCw4IEBAIGludGVsX2RwX2F1eF9jaChzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwLAo+ID4gPiA+ID4gPiAgCj4gPiA+ID4gPiA+ICAJcmV0ID0gcmVjdl9i eXRlczsKPiA+ID4gPiA+ID4gIG91dDoKPiA+ID4gPiA+ID4gKwlpbnRlbF9kcF9hdXhfY2hfdW5s b2NrKGludGVsX2RwKTsKPiA+ID4gPiA+ID4gK291dF9sb2NrZWQ6Cj4gPiA+ID4gPiA+ICAJcG1f cW9zX3VwZGF0ZV9yZXF1ZXN0KCZkZXZfcHJpdi0+cG1fcW9zLCBQTV9RT1NfREVGQVVMVF9WQUxV RSk7Cj4gPiA+ID4gPiA+ICAKPiA+ID4gPiA+ID4gIAlpZiAodmRkKQo+ID4gPiA+ID4gPiBAQCAt MTQ5Niw2ICsxNTQyLDEwIEBAIHN0YXRpYyB2b2lkIGludGVsX2F1eF9yZWdfaW5pdChzdHJ1Y3Qg aW50ZWxfZHAgKmludGVsX2RwKQo+ID4gPiA+ID4gPiAgCWludGVsX2RwLT5hdXhfY2hfY3RsX3Jl ZyA9IGludGVsX2F1eF9jdGxfcmVnKGRldl9wcml2LCBwb3J0KTsKPiA+ID4gPiA+ID4gIAlmb3Ig KGkgPSAwOyBpIDwgQVJSQVlfU0laRShpbnRlbF9kcC0+YXV4X2NoX2RhdGFfcmVnKTsgaSsrKQo+ ID4gPiA+ID4gPiAgCQlpbnRlbF9kcC0+YXV4X2NoX2RhdGFfcmVnW2ldID0gaW50ZWxfYXV4X2Rh dGFfcmVnKGRldl9wcml2LCBwb3J0LCBpKTsKPiA+ID4gPiA+ID4gKwlpZiAoSU5URUxfSU5GTyhk ZXZfcHJpdiktPmdlbiA+PSA5KSB7Cj4gPiA+ID4gPiA+ICsJCWludGVsX2RwLT5hdXhfY2hfbXV0 ZXhfcmVnID0gRFBfQVVYX0NIX01VVEVYKHBvcnQpOwo+ID4gPiA+ID4gPiArCQlJOTE1X1dSSVRF KGludGVsX2RwLT5hdXhfY2hfbXV0ZXhfcmVnLCBEUF9BVVhfQ0hfTVVURVhfRU5BQkxFKTsKPiA+ ID4gPiA+ID4gKwl9Cj4gPiA+ID4gPiA+ICB9Cj4gPiA+ID4gPiA+ICAKPiA+ID4gPiA+ID4gIHN0 YXRpYyB2b2lkCj4gPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiA+ID4gPiA+ IGluZGV4IDUwODc0ZjQwMzVjZi4uMGM4ODY1N2Q2MDY2IDEwMDY0NAo+ID4gPiA+ID4gPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gPiA+ID4gPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gPiA+ID4gPiBAQCAtMTA0Myw2ICsxMDQz LDcgQEAgc3RydWN0IGludGVsX2RwIHsKPiA+ID4gPiA+ID4gIAlpOTE1X3JlZ190IG91dHB1dF9y ZWc7Cj4gPiA+ID4gPiA+ICAJaTkxNV9yZWdfdCBhdXhfY2hfY3RsX3JlZzsKPiA+ID4gPiA+ID4g IAlpOTE1X3JlZ190IGF1eF9jaF9kYXRhX3JlZ1s1XTsKPiA+ID4gPiA+ID4gKwlpOTE1X3JlZ190 IGF1eF9jaF9tdXRleF9yZWc7Cj4gPiA+ID4gPiA+ICAJdWludDMyX3QgRFA7Cj4gPiA+ID4gPiA+ ICAJaW50IGxpbmtfcmF0ZTsKPiA+ID4gPiA+ID4gIAl1aW50OF90IGxhbmVfY291bnQ7Cj4gPiA+ ID4gPiA+IC0tIAo+ID4gPiA+ID4gPiAyLjE2LjIKPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+IF9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gPiA+ID4gPiA+ IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiA+ID4gPiA+ID4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwo+ID4gPiA+ID4gPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2ludGVsLWdmeAo+ID4gPiA+ID4gCj4gPiA+ID4gPiAtLSAKPiA+ID4gPiA+ IFZpbGxlIFN5cmrDpGzDpAo+ID4gPiA+ID4gSW50ZWwgT1RDCj4gPiA+ID4gX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+ID4gPiBJbnRlbC1nZnggbWFp bGluZyBsaXN0Cj4gPiA+ID4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ID4gPiA+ IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cj4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ID4g SW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+ID4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y Zwo+ID4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRl bC1nZngKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==