From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: Re: [PATCH] drm/i915/skl+: Add and enable DP AUX CH mutex Date: Fri, 2 Mar 2018 16:16:31 -0800 Message-ID: <20180303001631.GU15113@intel.com> References: <20180227212359.15584-1-jose.souza@intel.com> <20180227213405.GB5453@intel.com> <1519779333.4533.2.camel@intel.com> <20180228110909.GC5453@intel.com> <1519862041.4498.3.camel@intel.com> <20180301105304.GT5453@intel.com> <1520034262.2444.76.camel@dk-H97M-D3H> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8E2FB6E0BE for ; Sat, 3 Mar 2018 00:16:32 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1520034262.2444.76.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 T24gRnJpLCBNYXIgMDIsIDIwMTggYXQgMTE6MjA6NDJQTSArMDAwMCwgUGFuZGl5YW4sIERoaW5h a2FyYW4gd3JvdGU6Cj4gCj4gCj4gCj4gT24gVGh1LCAyMDE4LTAzLTAxIGF0IDEyOjUzICswMjAw LCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4gPiBPbiBXZWQsIEZlYiAyOCwgMjAxOCBhdCAxMTo1 NTozOVBNICswMDAwLCBTb3V6YSwgSm9zZSB3cm90ZToKPiA+ID4gT24gV2VkLCAyMDE4LTAyLTI4 IGF0IDEzOjA5ICswMjAwLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4gPiA+ID4gT24gV2VkLCBG ZWIgMjgsIDIwMTggYXQgMTI6NTc6MDdBTSArMDAwMCwgU291emEsIEpvc2Ugd3JvdGU6Cj4gPiA+ ID4gPiBPbiBUdWUsIDIwMTgtMDItMjcgYXQgMjM6MzQgKzAyMDAsIFZpbGxlIFN5cmrDpGzDpCB3 cm90ZToKPiA+ID4gPiA+ID4gT24gVHVlLCBGZWIgMjcsIDIwMTggYXQgMDE6MjM6NTlQTSAtMDgw MCwgSm9zw6kgUm9iZXJ0byBkZSBTb3V6YQo+ID4gPiA+ID4gPiB3cm90ZToKPiA+ID4gPiA+ID4g PiBXaGVuIFBTUi9QU1IyL0dUQyBpcyBlbmFibGVkIGhhcmR3YXJlIGNhbiBkbyBBVVggdHJhbnNh Y3Rpb25zCj4gPiA+ID4gPiA+ID4gYnkgaXQKPiA+ID4gPiA+ID4gPiBzZWxmLCBzbyBsZXRzIHVz ZSB0aGUgbXV0ZXggcmVnaXN0ZXIgdGhhdCBpcyBhdmFpbGFibGUgaW4gZ2VuOSsKPiA+ID4gPiA+ ID4gPiB0bwo+ID4gPiA+ID4gPiA+IGF2b2lkIGNvbmN1cnJlbnQgYWNjZXNzIGJ5IGhhcmR3YXJl IGFuZCBkcml2ZXIuCj4gPiA+ID4gPiA+ID4gT2xkZXIgZ2VuIGhhbmRsaW5nIHdpbGwgYmUgZG9u ZSBzZXBhcmF0ZWQuCj4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gUmVmZXJlbmNlOiBodHRw czovLzAxLm9yZy9zaXRlcy9kZWZhdWx0L2ZpbGVzL2RvY3VtZW50YXRpb24vaW50Cj4gPiA+ID4g PiA+ID4gZWwtZwo+ID4gPiA+ID4gPiA+IGZ4LXBybS1vc3JjLXNrbC12b2wxMi1kaXNwbGF5LnBk Zgo+ID4gPiA+ID4gPiA+IFBhZ2UgMTk4IC0gQVVYIHByb2dyYW1taW5nIHNlcXVlbmNlCj4gPiA+ ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gUmV2aWV3ZWQtYnk6IERoaW5ha2FyYW4gUGFuZGl5YW4g PGRoaW5ha2FyYW4ucGFuZGl5YW5AaW50ZWwuY29tCj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4g PiA+IFJldmlld2VkLWJ5OiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+Cj4g PiA+ID4gPiA+ID4gQ2M6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBsaW51eC5pbnRlbC5jb20+ Cj4gPiA+ID4gPiA+ID4gQ2M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5p bnRlbC5jb20+Cj4gPiA+ID4gPiA+ID4gU2lnbmVkLW9mZi1ieTogSm9zw6kgUm9iZXJ0byBkZSBT b3V6YSA8am9zZS5zb3V6YUBpbnRlbC5jb20+Cj4gPiA+ID4gPiA+ID4gLS0tCj4gPiA+ID4gPiA+ ID4gCj4gPiA+ID4gPiA+ID4gQ2hhbmdlbG9nOgo+ID4gPiA+ID4gPiA+IHYyCj4gPiA+ID4gPiA+ ID4gLSByZW1vdmVkIHRoZSBQU1IgZGVwZW5kZW5jeSwgbm93IGdldHRpbmcgbG9jayBhbGwgdGhl IHRpbWVzCj4gPiA+ID4gPiA+ID4gd2hlbgo+ID4gPiA+ID4gPiA+IGF2YWlsYWJsZQo+ID4gPiA+ ID4gPiA+IC0gcmVuYW1lZCBmdW5jdGlvbnMgdG8gYXZvaWQgbmVzdGVkIGNhbGxzCj4gPiA+ID4g PiA+ID4gLSBtb3ZlZCByZWdpc3RlciBiaXRzIHJpZ2h0IGFmdGVyIHRoZSBEUF9BVVhfQ0hfTVVU RVgoKQo+ID4gPiA+ID4gPiA+IC0gcmVtb3ZlZCAnZHJtL2k5MTU6IGtlZXAgQVVYIHBvd2VyZWQg d2hpbGUgUFNSIGlzIGVuYWJsZWQnCj4gPiA+ID4gPiA+ID4gRGhpbmFrYXJhbiBQYW5kaXlhbiB3 aWxsIHNlbnQgYSBiZXR0ZXIgYW5kIGZpbmFsIHZlcnNpb24KPiA+ID4gPiA+ID4gPiB2Mwo+ID4g PiA+ID4gPiA+IC0gcmViYXNlZCBvbiB0b3Agb2YgVmlsbGUncyBBVVggc2VyaWVzCj4gPiA+ID4g PiA+ID4gLSBtb3ZlZCBwb3J0IHJlZ2lzdGVycyB0byBhYm92ZSBEUF9BVVhfQ0hfTVVURVgoKQo+ ID4gPiA+ID4gPiA+IC0gdXNpbmcgaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoKSBpbnN0ZWFkIG9m IHRoZSBpbnRlcm5hbAo+ID4gPiA+ID4gPiA+IHZlcnNpb24KPiA+ID4gPiA+ID4gPiB2NAo+ID4g PiA+ID4gPiA+IC0gcmVtb3ZlZCB2aXJ0dWFsIGZ1bmN0aW9uIHRvIGdldCBtdXRleCByZWdpc3Rl ciBhZGRyZXNzCj4gPiA+ID4gPiA+ID4gLSBlbmFibGluZyB0aGUgbXV0ZXggYmFjayBvbmx5IG9u IGF1eCBjaGFubmVsIGluaXQKPiA+ID4gPiA+ID4gPiAtIGFkZGVkIHRoZSBhdXggY2hhbm5lbCBu YW1lIHRvIHRoZSB0aW1lb3V0IGRlYnVnIG1lc3NhZ2UKPiA+ID4gPiA+ID4gPiB2NQo+ID4gPiA+ ID4gPiA+IC0gcmVuYW1lZCBEUF9BVVhfQ0hfTVVURVgoKSBwYXJhbWV0ZXIgdG8gYXV4X2NoCj4g PiA+ID4gPiA+ID4gLSByZW5hbWVkIGdvdG8gbGFiZWwgd2hlbiBpbnRlbF9kcF9hdXhfY2hfdHJ5 bG9jaygpIGZhaWxzCj4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfcmVnLmggfCAgOSArKysrKysrKwo+ID4gPiA+ID4gPiA+ICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcC5jIHwgNDcKPiA+ID4gPiA+ID4gPiArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKwo+ID4gPiA+ID4gPiA+ICAyIGZpbGVzIGNoYW5nZWQs IDU2IGluc2VydGlvbnMoKykKPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ID4gPiA+ID4gPiA+IGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ID4gPiA+ID4gPiA+IGluZGV4IGVlYTViMmM1Mzdk NC4uYmNlMmU2ZGFkNGM0IDEwMDY0NAo+ID4gPiA+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfcmVnLmgKPiA+ID4gPiA+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3JlZy5oCj4gPiA+ID4gPiA+ID4gQEAgLTUzODUsNiArNTM4NSwxNSBAQCBlbnVtIHsK PiA+ID4gPiA+ID4gPiAgI2RlZmluZSAgIERQX0FVWF9DSF9DVExfRldfU1lOQ19QVUxTRV9TS0wo YykgKCgoYykgLSAxKSA8PCA1KQo+ID4gPiA+ID4gPiA+ICAjZGVmaW5lICAgRFBfQVVYX0NIX0NU TF9TWU5DX1BVTFNFX1NLTChjKSAgICgoYykgLSAxKQo+ID4gPiA+ID4gPiA+ICAKPiA+ID4gPiA+ ID4gPiArI2RlZmluZSBfRFBBX0FVWF9DSF9NVVRFWAkoZGV2X3ByaXYtCj4gPiA+ID4gPiA+ID4g PiBpbmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAweDY0MDJDKQo+ID4gPiA+ID4gPiA+IAo+ID4g PiA+ID4gPiA+ICsjZGVmaW5lIF9EUEJfQVVYX0NIX01VVEVYCShkZXZfcHJpdi0KPiA+ID4gPiA+ ID4gPiA+IGluZm8uZGlzcGxheV9tbWlvX29mZnNldCArIDB4NjQxMkMpCj4gPiA+ID4gPiA+ID4g Cj4gPiA+ID4gPiA+ID4gKyNkZWZpbmUgX0RQQ19BVVhfQ0hfTVVURVgJKGRldl9wcml2LQo+ID4g PiA+ID4gPiA+ID4gaW5mby5kaXNwbGF5X21taW9fb2Zmc2V0ICsgMHg2NDIyQykKPiA+ID4gPiA+ ID4gPiAKPiA+ID4gPiA+ID4gPiArI2RlZmluZSBfRFBEX0FVWF9DSF9NVVRFWAkoZGV2X3ByaXYt Cj4gPiA+ID4gPiA+ID4gPiBpbmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAweDY0MzJDKQo+ID4g PiA+ID4gPiA+IAo+ID4gPiA+ID4gPiA+ICsjZGVmaW5lIF9EUEZfQVVYX0NIX01VVEVYCShkZXZf cHJpdi0KPiA+ID4gPiA+ID4gPiA+IGluZm8uZGlzcGxheV9tbWlvX29mZnNldCArIDB4NjQ1MkMp Cj4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gKyNkZWZpbmUgRFBfQVVYX0NIX01VVEVYKGF1 eF9jaCkJX01NSU9fUE9SVChhdXhfY2gsCj4gPiA+ID4gPiA+ID4gX0RQQV9BVVhfQ0hfTVVURVgs IF9EUEJfQVVYX0NIX01VVEVYKQo+ID4gPiA+ID4gPiA+ICsjZGVmaW5lICAgRFBfQVVYX0NIX01V VEVYX0VOQUJMRQkJKDEgPDwgMzEpCj4gPiA+ID4gPiA+ID4gKyNkZWZpbmUgICBEUF9BVVhfQ0hf TVVURVhfU1RBVFVTCQkoMSA8PCAzMCkKPiA+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ID4gIC8q Cj4gPiA+ID4gPiA+ID4gICAqIENvbXB1dGluZyBHTUNIIE0gYW5kIE4gdmFsdWVzIGZvciB0aGUg RGlzcGxheSBQb3J0IGxpbmsKPiA+ID4gPiA+ID4gPiAgICoKPiA+ID4gPiA+ID4gPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gPiA+ID4gPiA+IGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gPiA+ID4gPiA+IGluZGV4IDJhM2IzYWU0 ZTNkYS4uN2Y0YmY3NzIyN2NkIDEwMDY0NAo+ID4gPiA+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RwLmMKPiA+ID4gPiA+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcC5jCj4gPiA+ID4gPiA+ID4gQEAgLTEwODEsNiArMTA4MSw0MiBAQCBzdGF0 aWMgdWludDMyX3QKPiA+ID4gPiA+ID4gPiBpbnRlbF9kcF9nZXRfYXV4X3NlbmRfY3RsKHN0cnVj dCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gPiA+ID4gPiA+ID4gIAkJCQkJCWF1eF9jbG9ja19kaXZp Cj4gPiA+ID4gPiA+ID4gZGVyKQo+ID4gPiA+ID4gPiA+IDsKPiA+ID4gPiA+ID4gPiAgfQo+ID4g PiA+ID4gPiA+ICAKPiA+ID4gPiA+ID4gPiArc3RhdGljIGJvb2wgaW50ZWxfZHBfYXV4X2NoX3Ry eWxvY2soc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiA+ID4gPiA+ID4gPiArewo+ID4gPiA+ ID4gPiA+ICsJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPQo+ID4g PiA+ID4gPiA+IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKPiA+ID4gPiA+ID4gPiArCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9Cj4gPiA+ID4gPiA+ID4gKwkJCXRvX2k5MTUo aW50ZWxfZGlnX3BvcnQtCj4gPiA+ID4gPiA+ID4gPmJhc2UuYmFzZS5kZXYpOwo+ID4gPiA+ID4g PiA+ICsKPiA+ID4gPiA+ID4gPiArCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgOSkKPiA+ID4g PiA+ID4gPiArCQlyZXR1cm4gdHJ1ZTsKPiA+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ID4gKwkv KiBTcGVjIHNheXMgdGhhdCBtdXRleCBpcyBhY3F1aXJlZCB3aGVuIHN0YXR1cyBiaXQgaXMKPiA+ ID4gPiA+ID4gPiByZWFkIGFzIHVuc2V0LAo+ID4gPiA+ID4gPiA+ICsJICogaGVyZSB3YWl0aW5n IGZvciAybXNlYygrLTQgYXV4IHRyYW5zYWN0aW9ucykgYmVmb3JlCj4gPiA+ID4gPiA+ID4gZ2l2 ZSB1cC4KPiA+ID4gPiA+ID4gPiArCSAqLwo+ID4gPiA+ID4gPiA+ICsJaWYgKGludGVsX3dhaXRf Zm9yX3JlZ2lzdGVyKGRldl9wcml2LAo+ID4gPiA+ID4gPiA+IERQX0FVWF9DSF9NVVRFWChpbnRl bF9kcC0+YXV4X2NoKSwKPiA+ID4gPiA+ID4gPiArCQkJCSAgICBEUF9BVVhfQ0hfTVVURVhfU1RB VFVTLCAwLAo+ID4gPiA+ID4gPiA+IDIpKQo+ID4gPiA+ID4gPiA+IHsKPiA+ID4gPiA+ID4gPiAr CQlEUk1fREVCVUdfS01TKCJhdXggY2hhbm5lbCAlYyBsb2NrZWQgZm9yCj4gPiA+ID4gPiA+ID4g Mm1zZWMsCj4gPiA+ID4gPiA+ID4gdGltaW5nIG91dFxuIiwKPiA+ID4gPiA+ID4gPiArCQkJICAg ICAgYXV4X2NoX25hbWUoaW50ZWxfZHAtPmF1eF9jaCkpOwo+ID4gPiA+ID4gPiA+ICsJCXJldHVy biBmYWxzZTsKPiA+ID4gPiA+ID4gPiArCX0KPiA+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ID4g KwlyZXR1cm4gdHJ1ZTsKPiA+ID4gPiA+ID4gPiArfQo+ID4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ ID4gPiArc3RhdGljIHZvaWQgaW50ZWxfZHBfYXV4X2NoX3VubG9jayhzdHJ1Y3QgaW50ZWxfZHAg KmludGVsX2RwKQo+ID4gPiA+ID4gPiA+ICt7Cj4gPiA+ID4gPiA+ID4gKwlzdHJ1Y3QgaW50ZWxf ZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9Cj4gPiA+ID4gPiA+ID4gZHBfdG9fZGlnX3Bv cnQoaW50ZWxfZHApOwo+ID4gPiA+ID4gPiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0KPiA+ID4gPiA+ID4gPiArCQkJdG9faTkxNShpbnRlbF9kaWdfcG9ydC0KPiA+ID4g PiA+ID4gPiA+YmFzZS5iYXNlLmRldik7Cj4gPiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiA+ICsJ aWYgKElOVEVMX0dFTihkZXZfcHJpdikgPCA5KQo+ID4gPiA+ID4gPiA+ICsJCXJldHVybjsKPiA+ ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ID4gKwkvKiBzZXQgdGhlIHN0YXR1cyBiaXQgcmVsZWFz ZXMgdGhlIG11dGV4ICsga2VlcGluZwo+ID4gPiA+ID4gPiA+IG11dGV4Cj4gPiA+ID4gPiA+ID4g ZW5hYmxlZCAqLwo+ID4gPiA+ID4gPiA+ICsJSTkxNV9XUklURShEUF9BVVhfQ0hfTVVURVgoaW50 ZWxfZHAtPmF1eF9jaCksCj4gPiA+ID4gPiA+ID4gKwkJICAgRFBfQVVYX0NIX01VVEVYX0VOQUJM RSB8Cj4gPiA+ID4gPiA+ID4gRFBfQVVYX0NIX01VVEVYX1NUQVRVUyk7Cj4gPiA+ID4gPiA+ID4g K30KPiA+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ID4gIHN0YXRpYyBpbnQKPiA+ID4gPiA+ID4g PiAgaW50ZWxfZHBfYXV4X2NoKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gPiA+ID4gPiA+ ID4gIAkJY29uc3QgdWludDhfdCAqc2VuZCwgaW50IHNlbmRfYnl0ZXMsCj4gPiA+ID4gPiA+ID4g QEAgLTExMTksNiArMTE1NSwxMSBAQCBpbnRlbF9kcF9hdXhfY2goc3RydWN0IGludGVsX2RwCj4g PiA+ID4gPiA+ID4gKmludGVsX2RwLAo+ID4gPiA+ID4gPiA+ICAKPiA+ID4gPiA+ID4gPiAgCWlu dGVsX2RwX2NoZWNrX2VkcChpbnRlbF9kcCk7Cj4gPiA+ID4gPiA+ID4gIAo+ID4gPiA+ID4gPiA+ ICsJaWYgKCFpbnRlbF9kcF9hdXhfY2hfdHJ5bG9jayhpbnRlbF9kcCkpIHsKPiA+ID4gPiA+ID4g PiArCQlyZXQgPSAtRUJVU1k7Cj4gPiA+ID4gPiA+ID4gKwkJZ290byBvdXRfYXV4X2NoX3VubG9j a2VkOwo+ID4gPiA+ID4gPiA+ICsJfQo+ID4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gPiAgCS8q IFRyeSB0byB3YWl0IGZvciBhbnkgcHJldmlvdXMgQVVYIGNoYW5uZWwgYWN0aXZpdHkKPiA+ID4g PiA+ID4gPiAqLwo+ID4gPiA+ID4gPiA+ICAJZm9yICh0cnkgPSAwOyB0cnkgPCAzOyB0cnkrKykg ewo+ID4gPiA+ID4gPiA+ICAJCXN0YXR1cyA9IEk5MTVfUkVBRF9OT1RSQUNFKGNoX2N0bCk7Cj4g PiA+ID4gPiA+ID4gQEAgLTEyNDAsNiArMTI4MSw4IEBAIGludGVsX2RwX2F1eF9jaChzdHJ1Y3Qg aW50ZWxfZHAKPiA+ID4gPiA+ID4gPiAqaW50ZWxfZHAsCj4gPiA+ID4gPiA+ID4gIAo+ID4gPiA+ ID4gPiA+ICAJcmV0ID0gcmVjdl9ieXRlczsKPiA+ID4gPiA+ID4gPiAgb3V0Ogo+ID4gPiA+ID4g PiA+ICsJaW50ZWxfZHBfYXV4X2NoX3VubG9jayhpbnRlbF9kcCk7Cj4gPiA+ID4gPiA+ID4gK291 dF9hdXhfY2hfdW5sb2NrZWQ6Cj4gPiA+ID4gPiA+ID4gIAlwbV9xb3NfdXBkYXRlX3JlcXVlc3Qo JmRldl9wcml2LT5wbV9xb3MsCj4gPiA+ID4gPiA+ID4gUE1fUU9TX0RFRkFVTFRfVkFMVUUpOwo+ ID4gPiA+ID4gPiA+ICAKPiA+ID4gPiA+ID4gPiAgCWlmICh2ZGQpCj4gPiA+ID4gPiA+ID4gQEAg LTE1MzYsNiArMTU3OSwxMCBAQCBpbnRlbF9kcF9hdXhfaW5pdChzdHJ1Y3QgaW50ZWxfZHAKPiA+ ID4gPiA+ID4gPiAqaW50ZWxfZHApCj4gPiA+ID4gPiA+ID4gIAllbHNlCj4gPiA+ID4gPiA+ID4g IAkJaW50ZWxfZHAtPmdldF9hdXhfc2VuZF9jdGwgPQo+ID4gPiA+ID4gPiA+IGc0eF9nZXRfYXV4 X3NlbmRfY3RsOwo+ID4gPiA+ID4gPiA+ICAKPiA+ID4gPiA+ID4gPiArCWlmIChJTlRFTF9HRU4o ZGV2X3ByaXYpID49IDkpCj4gPiA+ID4gPiA+ID4gKwkJSTkxNV9XUklURShEUF9BVVhfQ0hfTVVU RVgoaW50ZWxfZHAtPmF1eF9jaCksCj4gPiA+ID4gPiA+ID4gKwkJCSAgIERQX0FVWF9DSF9NVVRF WF9FTkFCTEUpOwo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gQW5kIHdobyBlbmFibGVzIGl0IGFm dGVyIHN5c3RlbS9ydW50aW1lIFBNIGV0Yy4/IE5vdCBzdXJlIGhvdwo+ID4gPiA+ID4gPiBtdWNo Cj4gPiA+ID4gPiA+IHNlbnNlCj4gPiA+ID4gPiA+IHRoZXJlIGlzIHRvIGZpbmVzc2UgdGhpcyBh bnl3YXkuIE9uZSBleHRyYSBtbWlvIHdyaXRlIGV2ZXJ5IHRpbWUKPiA+ID4gPiA+ID4gd2UKPiA+ ID4gPiA+ID4gdHJ5Cj4gPiA+ID4gPiA+IHRvIGFjcXVpcmUgdGhlIG11dGV4IHNob3VsZG4ndCBr aWxsIGFueW9uZS4KPiA+ID4gPiA+IAo+ID4gPiA+ID4gVmFsaWQgcG9pbnQsIGJ1dCBJIGd1ZXNz IGlzIGJldHRlciBlbmFibGUgdGhlIG11dGV4IGluCj4gPiA+ID4gPiBpbnRlbF9kcF9lbmNvZGVy X3Jlc2V0KCk6Cj4gPiA+ID4gPiAKPiA+ID4gPiA+ICIKPiA+ID4gPiA+IEBAIC01MjkzLDYgKzUz NDAsMTAgQEAgdm9pZCBpbnRlbF9kcF9lbmNvZGVyX3Jlc2V0KHN0cnVjdAo+ID4gPiA+ID4gZHJt X2VuY29kZXIKPiA+ID4gPiA+ICplbmNvZGVyKQo+ID4gPiA+ID4gCj4gPiA+ID4gPiAgICAgICAg IHBwc19sb2NrKGludGVsX2RwKTsKPiA+ID4gPiA+IAo+ID4gPiA+ID4gKyAgICAgICBpZiAoSU5U RUxfR0VOKGRldl9wcml2KSA+PSA5KQo+ID4gPiA+ID4gKyAgICAgICAgICAgICAgIEk5MTVfV1JJ VEUoRFBfQVVYX0NIX01VVEVYKGludGVsX2RwLT5hdXhfY2gpLAo+ID4gPiA+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgRFBfQVVYX0NIX01VVEVYX0VOQUJMRSk7Cj4gPiA+ID4gPiArCj4g PiA+ID4gPiAgICAgICAgIGlmIChJU19WQUxMRVlWSUVXKGRldl9wcml2KSB8fCBJU19DSEVSUllW SUVXKGRldl9wcml2KSkKPiA+ID4gPiA+ICAgICAgICAgICAgICAgICBpbnRlbF9kcC0+YWN0aXZl X3BpcGUgPSB2bHZfYWN0aXZlX3BpcGUoaW50ZWxfZHApOwo+ID4gPiA+ID4gIgo+ID4gPiA+ID4g Cj4gPiA+ID4gPiBhbnkgb2JqZWN0aW9ucz8KPiA+ID4gPiAKPiA+ID4gPiBJIGd1ZXNzIHdlIGNh biBob3BlIHRoYXQgZG1jIHRha2VzIGNhcmUgb2YgaXQgZm9yIGRjNS82LiBCdXQgd2hhdAo+ID4g PiA+IGFib3V0IGRjOT8KPiA+ID4gCj4gPiA+IFllcCwgZm9yIERDNSBhbmQgREM2IHRoZSByZWdp c3RlcnMgYXJlIHJlc3RvcmVkIGJ5IGhhcmR3YXJlIGJ1dCBpdCBpcwo+ID4gPiBub3QgdGhlIGNh c2UgZm9yIERDOS4gSWYgSSdtIG5vdCBtaXNzaW5nIHNvbWV0aGluZyBsb29rcyBsaWtlIHRoZXJl IGlzCj4gPiA+IG5vIGhhbmRsaW5nIHRvIHJlc3RvcmUgcmVnaXN0ZXJzIHdoZW4gZXhpdGluZyBE QzkuCj4gPiAKPiA+IFRoZSBkZXNpZ24gb2YgdGhlIGRyaXZlciBpcyAicHJvZ3JhbSBhbGwgcmVx dWlyZWQgcmVnaXN0ZXJzIHdoZW4geW91Cj4gPiBuZWVkIHRoZW0iIGluc3RlYWQgb2YgdGhlICJi bGluZGx5IHNhdmUvcmVzdG9yZSBldmVyeXRoaW5nIiBETUMgZmlybXdhcmUKPiA+IGFwcHJvYWNo Lgo+ID4gCj4gCj4gCj4gK3N0YXRpYyBib29sIGludGVsX2RwX2F1eF90cnlsb2NrKHN0cnVjdCBp bnRlbF9kcCAqaW50ZWxfZHApCj4gK3sKPiArICAgICAgIGJvb2wgZW5hYmxlZDsKPiArICAgICAg IHUzMiBtdXRleDsKPiArCj4gKyAgICAgICAvKiBSRUFEIHdpbGwgdHJ5IHRvIGxvY2sgdGhlIGF1 eCBjaGFubmVsIGlmIHRoZSBtdXRleCB3YXMKPiBhbHJlYWR5Cj4gKyAgICAgICAgKiBlbmFibGVk Lgo+ICsgICAgICAgICovCj4gKyAgICAgICBtdXRleCA9IEk5MTVfUkVBRChEUF9BVVhfQ0hfTVVU RVgpOwo+ICsgICAgICAgZW5hYmxlZCA9IG11dGV4ICYgRFBfQVVYX0NIX01VVEVYX0VOQUJMRTsK PiArCj4gKyAgICAgICBpZiAoIWVuYWJsZWQpIHsKPiArICAgICAgICAgICAgICAgLyogbXV0ZXgg aXMgY3VycmVudGx5IGRpc2FibGVkLCBlbmFibGUgaXQgd2l0aG91dAo+IGFsdGVyaW5nIHRoZQo+ ICsgICAgICAgICAgICAgICAgKiBzdGF0dXMgYml0IGluIGNhc2UgdGhlIEhXIGlzIHVzaW5nIHRo ZSBiaXQgKi8KPiArICAgICAgICAgICAgICAgSTkxNV9XUklURShEUF9BVVhfQ0hfTVVURVgoaW50 ZWxfZGlnX3BvcnQtPmRwLmF1eF9jaCksCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgbXV0 ZXggfCBEUF9BVVhfQ0hfTVVURVhfRU5BQkxFKTsKPiArCj4gKyAgICAgICAgICAgICAgIC8qIE5v dyB0aGF0IHRoZSBtdXRleCBpcyBlbmFibGVkLCByZXF1ZXN0IHRvIGxvY2sgaXQgKi8KPiArICAg ICAgICAgICAgICAgbXV0ZXggPSBJOTE1X1JFQUQoRFBfQVVYX0NIX01VVEVYKTsKPiArICAgICAg IH0KPiArCj4gKyAgICAgICBpZiAobXV0ZXggJiBEUF9BVVhfQ0hfTVVURVhfU1RBVFVTID09IDAp Cj4gKyAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwo+ICsKPiArICAgICAgIGlmIChpbnRlbF93 YWl0X2Zvcl9yZWdpc3RlcihkZXZfcHJpdiwKPiBEUF9BVVhfQ0hfTVVURVgoaW50ZWxfZHAtPmF1 eF9jaCksCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERQX0FVWF9D SF9NVVRFWF9TVEFUVVMsIDAsIDIpKSB7Cj4gKwo+ICsgICAgICAgICAgICAgICBEUk1fREVCVUdf S01TKCJhdXggY2hhbm5lbCAlYyBsb2NrZWQgZm9yIDJtc2VjLCB0aW1pbmcKPiBvdXRcbiIsCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV4X2NoX25hbWUoaW50ZWxfZHAtPmF1eF9j aCkpOwo+ICsgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cj4gKyAgICAgICB9Cj4gKwo+ICsg ICAgICAgcmV0dXJuIHRydWU7Cj4gK30KPiArCj4gCj4gCj4gSGF2ZSBJIG1pc3NlZCBhbnl0aGlu ZyBoZXJlPwoKb3BzLCBJIHdyb3RlIGJlZm9yZSBzZWVpbmcgdGhpcyBoZXJlLgoKSSBsaWtlIHRo aXMgYXBwcm9hY2ggYSBsb3QsIGFsdGhvdWdoIEkgZG9uJ3QgYmVsaWV2ZSBpdCBpcyBoYXJtZnVs IHRvIGp1c3QgYWx3YXlzIHNldCBlbmFibGVkIGJpdC4KCmFueXdheXMsICsxIGZvciB0aGlzIGFu ZCBwcm9iYWJseSBvbmx5IHNldHRpbmcgaGVyZS4KCj4gX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeAo=