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 18:37:17 +0200 Message-ID: <87o9krjznm.fsf@intel.com> References: <20180214002917.31252-1-jose.souza@intel.com> <87a7wb7vjf.fsf@intel.com> <20180214162152.hakaidro2uma2sh6@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 081E86E418 for ; Wed, 14 Feb 2018 16:37:24 +0000 (UTC) In-Reply-To: <20180214162152.hakaidro2uma2sh6@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Rodrigo Vivi Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCAxNCBGZWIgMjAxOCwgUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlAaW50ZWwuY29t PiB3cm90ZToKPiBPbiBXZWQsIEZlYiAxNCwgMjAxOCBhdCAwOTo0NzowMEFNICswMDAwLCBKYW5p IE5pa3VsYSB3cm90ZToKPj4gT24gVHVlLCAxMyBGZWIgMjAxOCwgSm9zw6kgUm9iZXJ0byBkZSBT b3V6YSA8am9zZS5zb3V6YUBpbnRlbC5jb20+IHdyb3RlOgo+PiA+IFdoZW4gUFNSL1BTUjIgaXMg ZW5hYmxlZCBoYXJkd2FyZSBjYW4gZG8gQVVYIHRyYW5zYWN0aW9ucyBieSBpdCBzZWxmLCBzbwo+ PiA+IGxldHMgdXNlIHRoZSBtdXRleCByZWdpc3RlciB0aGF0IGlzIGF2YWlsYWJsZSBpbiBnZW45 KyB0byBhdm9pZCBjb25jdXJyZW50Cj4+ID4gYWNjZXNzIGJ5IGhhcmR3YXJlIGFuZCBkcml2ZXIu Cj4+ID4KPj4gPiBSZWZlcmVuY2U6IGh0dHBzOi8vMDEub3JnL3NpdGVzL2RlZmF1bHQvZmlsZXMv ZG9jdW1lbnRhdGlvbi9pbnRlbC1nZngtcHJtLW9zcmMtc2tsLXZvbDEyLWRpc3BsYXkucGRmCj4+ ID4gUGFnZSAxOTggLSBBVVggcHJvZ3JhbW1pbmcgc2VxdWVuY2UKPj4gPgo+PiA+IEFzIGdlbiA8 IDkgZG9uJ3QgaGF2ZSB0aGUgbXV0ZXggUFNSIG5lZWRzIHRvIGJlIGRpc2FibGVkLCB0aGF0IGlz IHdoeSB0aGUKPj4gPiAnZWxzZSBUT0RPJyB3YXMgYWRkZWQuIFRoaXMgaXMgYWxzbyBiYWNrZWQg Ynkgc3BlYzoKPj4gPiAiRERJIEEgQVVYIGNoYW5uZWwgdHJhbnNhY3Rpb25zIG11c3Qgbm90IGJl IHNlbnQgd2hpbGUgU1JEIGlzIGVuYWJsZWQuCj4+ID4gU1JEIG11c3QgYmUgY29tcGxldGVseSBk aXNhYmxlZCBiZWZvcmUgYSBEREkgQSBBVVggY2hhbm5lbCB0cmFuc2FjdGlvbiBjYW4KPj4gPiBi ZSBzZW50LiIgQlNwZWM6IDc1MzAKPj4gCj4+IFdlIGV4cGxpY2l0bHkgcmVqZWN0ZWQgdGhlIHVz ZSBvZiB0aGUgaHcgbXV0ZXggd2F5IGJhY2sgd2hlbiBTa3lsYWtlIHdhcwo+PiBlbmFibGVkLiBB dCB0aGF0IHRpbWUgdGhlIHVuZGVyc3RhbmRpbmcgd2FzIHRoYXQgdGhlIGh3IHdpbGwgdHJ5IHRv IGRvCj4+IHRoZSBhcmJpdHJhdGlvbiBpdHNlbGYuIEhhcyBzb21ldGhpbmcgY2hhbmdlZD8KPgo+ IEJ5IHRoYXQgdGltZSBzcGVjIHdhc24ndCBjbGVhciBhYm91dCB0aGUgYWN0dWFsIG5lZWQgb3Ig aXRzIHJlbGlhYmlsaXR5Lgo+IE5vd2RheXMgc3BlYyBpcyBjbGVhciB0aGF0IHRoYXQgaXMgYWJz b2x1dGVseSBuZWVkZWQgZm9yIFBTUi9QU1IyL0dUQy4KPgo+IEFsc28gd2Ugd2VyZSB1c2luZyBh IGxvdCBvZiBTVyB0cmFja2luZyBhbmQgbm93YWRheXMgd2UgYXJlIG1vdmluZyBQU1IKPiB0byB1 c2UgbW9yZSBIVyB0cmFja2luZy4KPgo+IFNvIEkgYmVsaWV2ZSB3ZSBzaG91bGQgYWRkIHRoaXMg dG8gZ2V0IGEgc3RhYmxlIFBTUi4KCkZhaXIgZW5vdWdoLiBUaGUgcGF0Y2ggYXQgaGFuZCBuZWVk cyBhIGJ1bmNoIG9mIHdvcmsgdGhvdWdoLgoKQlIsCkphbmkuCgoKPgo+PiAKPj4gU29tZSBjb21t ZW50cyBpbmxpbmUuCj4+IAo+PiA+Cj4+ID4gQ2M6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZp QGludGVsLmNvbT4KPj4gPiBTaWduZWQtb2ZmLWJ5OiBKb3PDqSBSb2JlcnRvIGRlIFNvdXphIDxq b3NlLnNvdXphQGludGVsLmNvbT4KPj4gPiAtLS0KPj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9yZWcuaCAgfCAgOSArKysrKysrKwo+PiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcC5jICB8IDQ4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPj4g PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggfCAgMSArCj4+ID4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3Bzci5jIHwgIDYgKysrKysKPj4gPiAgNCBmaWxlcyBjaGFuZ2Vk LCA2NCBpbnNlcnRpb25zKCspCj4+ID4KPj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9yZWcuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPj4gPiBp bmRleCBmNmFmYTVlNWU3YzEuLjVkNzczNjExN2NiOSAxMDA2NDQKPj4gPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9yZWcuaAo+PiA+IEBAIC01MzE4LDYgKzUzMTgsNyBAQCBlbnVtIHsKPj4gPiAgI2RlZmlu ZSBfRFBBX0FVWF9DSF9EQVRBMwkoZGV2X3ByaXYtPmluZm8uZGlzcGxheV9tbWlvX29mZnNldCAr IDB4NjQwMWMpCj4+ID4gICNkZWZpbmUgX0RQQV9BVVhfQ0hfREFUQTQJKGRldl9wcml2LT5pbmZv LmRpc3BsYXlfbW1pb19vZmZzZXQgKyAweDY0MDIwKQo+PiA+ICAjZGVmaW5lIF9EUEFfQVVYX0NI X0RBVEE1CShkZXZfcHJpdi0+aW5mby5kaXNwbGF5X21taW9fb2Zmc2V0ICsgMHg2NDAyNCkKPj4g PiArI2RlZmluZSBfRFBBX0FVWF9DSF9NVVRFWAkoZGV2X3ByaXYtPmluZm8uZGlzcGxheV9tbWlv X29mZnNldCArIDB4NjQwMkMpCj4+ID4gIAo+PiA+ICAjZGVmaW5lIF9EUEJfQVVYX0NIX0NUTAkJ KGRldl9wcml2LT5pbmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAweDY0MTEwKQo+PiA+ICAjZGVm aW5lIF9EUEJfQVVYX0NIX0RBVEExCShkZXZfcHJpdi0+aW5mby5kaXNwbGF5X21taW9fb2Zmc2V0 ICsgMHg2NDExNCkKPj4gPiBAQCAtNTMyNSw2ICs1MzI2LDcgQEAgZW51bSB7Cj4+ID4gICNkZWZp bmUgX0RQQl9BVVhfQ0hfREFUQTMJKGRldl9wcml2LT5pbmZvLmRpc3BsYXlfbW1pb19vZmZzZXQg KyAweDY0MTFjKQo+PiA+ICAjZGVmaW5lIF9EUEJfQVVYX0NIX0RBVEE0CShkZXZfcHJpdi0+aW5m by5kaXNwbGF5X21taW9fb2Zmc2V0ICsgMHg2NDEyMCkKPj4gPiAgI2RlZmluZSBfRFBCX0FVWF9D SF9EQVRBNQkoZGV2X3ByaXYtPmluZm8uZGlzcGxheV9tbWlvX29mZnNldCArIDB4NjQxMjQpCj4+ ID4gKyNkZWZpbmUgX0RQQl9BVVhfQ0hfTVVURVgJKGRldl9wcml2LT5pbmZvLmRpc3BsYXlfbW1p b19vZmZzZXQgKyAweDY0MTJDKQo+PiA+ICAKPj4gPiAgI2RlZmluZSBfRFBDX0FVWF9DSF9DVEwJ CShkZXZfcHJpdi0+aW5mby5kaXNwbGF5X21taW9fb2Zmc2V0ICsgMHg2NDIxMCkKPj4gPiAgI2Rl ZmluZSBfRFBDX0FVWF9DSF9EQVRBMQkoZGV2X3ByaXYtPmluZm8uZGlzcGxheV9tbWlvX29mZnNl dCArIDB4NjQyMTQpCj4+ID4gQEAgLTUzMzIsNiArNTMzNCw3IEBAIGVudW0gewo+PiA+ICAjZGVm aW5lIF9EUENfQVVYX0NIX0RBVEEzCShkZXZfcHJpdi0+aW5mby5kaXNwbGF5X21taW9fb2Zmc2V0 ICsgMHg2NDIxYykKPj4gPiAgI2RlZmluZSBfRFBDX0FVWF9DSF9EQVRBNAkoZGV2X3ByaXYtPmlu Zm8uZGlzcGxheV9tbWlvX29mZnNldCArIDB4NjQyMjApCj4+ID4gICNkZWZpbmUgX0RQQ19BVVhf Q0hfREFUQTUJKGRldl9wcml2LT5pbmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAweDY0MjI0KQo+ PiA+ICsjZGVmaW5lIF9EUENfQVVYX0NIX01VVEVYCShkZXZfcHJpdi0+aW5mby5kaXNwbGF5X21t aW9fb2Zmc2V0ICsgMHg2NDIyQykKPj4gPiAgCj4+ID4gICNkZWZpbmUgX0RQRF9BVVhfQ0hfQ1RM CQkoZGV2X3ByaXYtPmluZm8uZGlzcGxheV9tbWlvX29mZnNldCArIDB4NjQzMTApCj4+ID4gICNk ZWZpbmUgX0RQRF9BVVhfQ0hfREFUQTEJKGRldl9wcml2LT5pbmZvLmRpc3BsYXlfbW1pb19vZmZz ZXQgKyAweDY0MzE0KQo+PiA+IEBAIC01MzM5LDYgKzUzNDIsNyBAQCBlbnVtIHsKPj4gPiAgI2Rl ZmluZSBfRFBEX0FVWF9DSF9EQVRBMwkoZGV2X3ByaXYtPmluZm8uZGlzcGxheV9tbWlvX29mZnNl dCArIDB4NjQzMWMpCj4+ID4gICNkZWZpbmUgX0RQRF9BVVhfQ0hfREFUQTQJKGRldl9wcml2LT5p bmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAweDY0MzIwKQo+PiA+ICAjZGVmaW5lIF9EUERfQVVY X0NIX0RBVEE1CShkZXZfcHJpdi0+aW5mby5kaXNwbGF5X21taW9fb2Zmc2V0ICsgMHg2NDMyNCkK Pj4gPiArI2RlZmluZSBfRFBEX0FVWF9DSF9NVVRFWAkoZGV2X3ByaXYtPmluZm8uZGlzcGxheV9t bWlvX29mZnNldCArIDB4NjQzMkMpCj4+ID4gIAo+PiA+ICAjZGVmaW5lIF9EUEZfQVVYX0NIX0NU TAkJKGRldl9wcml2LT5pbmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAweDY0NTEwKQo+PiA+ICAj ZGVmaW5lIF9EUEZfQVVYX0NIX0RBVEExCShkZXZfcHJpdi0+aW5mby5kaXNwbGF5X21taW9fb2Zm c2V0ICsgMHg2NDUxNCkKPj4gPiBAQCAtNTM0Niw5ICs1MzUwLDExIEBAIGVudW0gewo+PiA+ICAj ZGVmaW5lIF9EUEZfQVVYX0NIX0RBVEEzCShkZXZfcHJpdi0+aW5mby5kaXNwbGF5X21taW9fb2Zm c2V0ICsgMHg2NDUxYykKPj4gPiAgI2RlZmluZSBfRFBGX0FVWF9DSF9EQVRBNAkoZGV2X3ByaXYt PmluZm8uZGlzcGxheV9tbWlvX29mZnNldCArIDB4NjQ1MjApCj4+ID4gICNkZWZpbmUgX0RQRl9B VVhfQ0hfREFUQTUJKGRldl9wcml2LT5pbmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAweDY0NTI0 KQo+PiA+ICsjZGVmaW5lIF9EUEZfQVVYX0NIX01VVEVYCShkZXZfcHJpdi0+aW5mby5kaXNwbGF5 X21taW9fb2Zmc2V0ICsgMHg2NDUyQykKPj4gPiAgCj4+ID4gICNkZWZpbmUgRFBfQVVYX0NIX0NU TChwb3J0KQlfTU1JT19QT1JUKHBvcnQsIF9EUEFfQVVYX0NIX0NUTCwgX0RQQl9BVVhfQ0hfQ1RM KQo+PiA+ICAjZGVmaW5lIERQX0FVWF9DSF9EQVRBKHBvcnQsIGkpCV9NTUlPKF9QT1JUKHBvcnQs IF9EUEFfQVVYX0NIX0RBVEExLCBfRFBCX0FVWF9DSF9EQVRBMSkgKyAoaSkgKiA0KSAvKiA1IHJl Z2lzdGVycyAqLwo+PiA+ICsjZGVmaW5lIERQX0FVWF9DSF9NVVRFWChwb3J0KQlfTU1JT19QT1JU KHBvcnQsIF9EUEFfQVVYX0NIX01VVEVYLCBfRFBCX0FVWF9DSF9NVVRFWCkKPj4gPiAgCj4+ID4g ICNkZWZpbmUgICBEUF9BVVhfQ0hfQ1RMX1NFTkRfQlVTWQkgICAgKDEgPDwgMzEpCj4+ID4gICNk ZWZpbmUgICBEUF9BVVhfQ0hfQ1RMX0RPTkUJCSAgICAoMSA8PCAzMCkKPj4gPiBAQCAtNTM3OCw2 ICs1Mzg0LDkgQEAgZW51bSB7Cj4+ID4gICNkZWZpbmUgICBEUF9BVVhfQ0hfQ1RMX0ZXX1NZTkNf UFVMU0VfU0tMKGMpICgoKGMpIC0gMSkgPDwgNSkKPj4gPiAgI2RlZmluZSAgIERQX0FVWF9DSF9D VExfU1lOQ19QVUxTRV9TS0woYykgICAoKGMpIC0gMSkKPj4gPiAgCj4+ID4gKyNkZWZpbmUgICBE UF9BVVhfQ0hfTVVURVhfRU5BQkxFCQkoMSA8PCAzMSkKPj4gPiArI2RlZmluZSAgIERQX0FVWF9D SF9NVVRFWF9TVEFUVVMJCSgxIDw8IDMwKQo+PiAKPj4gVGhlIGJpdCBkZWZpbml0aW9ucyBzaG91 bGQgaW1tZWRpYXRlbHkgZm9sbG93IHRoZSByZWdpc3RlciBvZmZzZXQKPj4gZGVmaW5pdGlvbi4g SS5lLiBEUF9BVVhfQ0hfTVVURVgoKSBzaG91bGQgYmUgcmlnaHQgYWJvdmUgdGhlc2UuCj4+IAo+ PiA+ICsKPj4gPiAgLyoKPj4gPiAgICogQ29tcHV0aW5nIEdNQ0ggTSBhbmQgTiB2YWx1ZXMgZm9y IHRoZSBEaXNwbGF5IFBvcnQgbGluawo+PiA+ICAgKgo+PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAu Ywo+PiA+IGluZGV4IGYyMGIyNWY5OGU1YS4uYmQ1ZjFiYjczMGZmIDEwMDY0NAo+PiA+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPj4gPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcC5jCj4+ID4gQEAgLTEwODEsNiArMTA4MSwyOCBAQCBzdGF0aWMgdWlu dDMyX3QgaW50ZWxfZHBfZ2V0X2F1eF9zZW5kX2N0bChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2Rw LAo+PiA+ICAJCQkJCQlhdXhfY2xvY2tfZGl2aWRlcik7Cj4+ID4gIH0KPj4gPiAgCj4+ID4gK3N0 YXRpYyBib29sIGludGVsX2RwX2F1eF9nZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAo+PiA+ICsJCQkgICAgIHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4+IAo+PiBZb3Ug Y2FuIGdldCBhdCBkZXZfcHJpdiBmcm9tIGludGVsX2RwLCBwbGVhc2UgZG9uJ3QgcGFzcyBib3Ro Lgo+PiAKPj4gVGhlIG5hbWVzIF9nZXQvX3B1dCBpbXBseSB0aGUgY2FsbHMgY2FuIGJlIG5lc3Rl ZCwgd2hpY2ggaXMgbm90IHRoZSBjYXNlCj4+IGhlcmUuIFBsZWFzZSB1c2UgX2xvY2svX3VubG9j ayBpbnN0ZWFkLgo+PiAKPj4gSWYgdGhlIGxvY2tpbmcgY2FuIGZhaWwsIGNhbGwgaXQgX3RyeWxv Y2suCj4+IAo+PiA+ICt7Cj4+ID4gKwlpbnQgdHJ5LCByZXQ7Cj4+ID4gKwo+PiA+ICsJZm9yICh0 cnkgPSAwLCByZXQgPSAtMTsgdHJ5IDwgMyAmJiByZXQ7IHRyeSsrKQo+PiA+ICsJCXJldCA9IHdh aXRfZm9yKCEoSTkxNV9SRUFEX05PVFJBQ0UoaW50ZWxfZHAtPmF1eF9jaF9tdXRleF9yZWcpCj4+ ID4gKwkJCQkgJiBEUF9BVVhfQ0hfTVVURVhfU1RBVFVTKSwgMC41KTsKPj4gCj4+IDAuNT8gUmVh bGx5Pwo+PiAKPj4gV2hhdCdzIHRoZSBwb2ludCBvZiB0aGUgbG9vcCBhcm91bmQgdGhlIHdhaXRf Zm9yPyB3YWl0X2ZvciBhbHJlYWR5IGxvb3BzCj4+IHdpdGggaW5jcmVhc2luZyBkZWxheXMgaW4g YmV0d2VlbiB0aGUgY29uZGl0aW9uIGNoZWNrLgo+PiAKPj4gPiArCj4+ID4gKwlyZXR1cm4gcmV0 ID09IDA7Cj4+ID4gK30KPj4gPiArCj4+ID4gK3N0YXRpYyB2b2lkIGludGVsX2RwX2F1eF9wdXQo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+PiA+ICsJCQkgICAgIHN0cnVjdCBp bnRlbF9kcCAqaW50ZWxfZHApCj4+ID4gK3sKPj4gPiArCS8qIHNldHRpbmcgdGhlIHN0YXR1cyBi aXQgcmVsZWFzZXMgdGhlIG11dGV4ICsga2VlcCBzZXQgdGhlIGJpdAo+PiA+ICsJICogdG8ga2Vl cCB0aGUgbXV0ZXggZW5hYmxlZC4KPj4gPiArCSAqLwo+PiA+ICsJSTkxNV9XUklURShpbnRlbF9k cC0+YXV4X2NoX211dGV4X3JlZywgRFBfQVVYX0NIX01VVEVYX0VOQUJMRSB8Cj4+ID4gKwkJICAg RFBfQVVYX0NIX01VVEVYX1NUQVRVUyk7Cj4+ID4gK30KPj4gPiArCj4+ID4gIHN0YXRpYyBpbnQK Pj4gPiAgaW50ZWxfZHBfYXV4X2NoKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4+ID4gIAkJ Y29uc3QgdWludDhfdCAqc2VuZCwgaW50IHNlbmRfYnl0ZXMsCj4+ID4gQEAgLTExMTUsNiArMTEz NywyMSBAQCBpbnRlbF9kcF9hdXhfY2goc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPj4gPiAg Cj4+ID4gIAlpbnRlbF9kcF9jaGVja19lZHAoaW50ZWxfZHApOwo+PiA+ICAKPj4gPiArCS8qIEdl dCBoYXJkd2FyZSBtdXRleCB3aGVuIFBTUiBpcyBlbmFibGVkICovCj4+ID4gKwlpZiAoZGV2X3By aXYtPnBzci5lbmFibGVkID09IGludGVsX2RwKSB7Cj4+ID4gKwkJaWYgKGludGVsX2RwLT5hdXhf Y2hfbXV0ZXhfcmVnLnJlZykgewo+PiAKPj4gU2VlIGk5MTVfbW1pb19yZWdfdmFsaWQoKS4gQnV0 IEknZCByYXRoZXIgdGhlIGNoZWNrIHdhcyB3aXRoaW4gdGhlCj4+IGxvY2tpbmcgcHJpbWl0aXZl cy4KPj4gCj4+IE92ZXJhbGwgSSB0aGluayBtaXhpbmcgYWxsIHRoaXMgUFNSIGNvbmRpdGlvbmFs IHN0dWZmIGluIHRoZSBhdXggY2hhbm5lbAo+PiBwcmltaXRpdmVzIGlzIHZlcnksIHZlcnkgd3Jv bmcuCj4+IAo+PiBBdCB0aGUgdmVyeSBsZWFzdCB0aGlzIGlzIHJhY3kgd2l0aCBQU1IgZW5hYmxp bmcvZGlzYWJsaW5nLgo+PiAKPj4gPiArCQkJaWYgKGludGVsX2RwX2F1eF9nZXQoZGV2X3ByaXYs IGludGVsX2RwKSkgewo+PiA+ICsJCQkJRFJNX1dBUk4oImRwX2F1eF9jaCBwb3J0IGxvY2tlZCBm b3IgdG9vIGxvbmciKTsKPj4gPiArCQkJCXJldCA9IC1FQlVTWTsKPj4gPiArCQkJCWdvdG8gb3V0 X2xvY2tlZDsKPj4gPiArCQkJfQo+PiA+ICsJCX0gZWxzZSB7Cj4+ID4gKwkJCS8qIFRPRE86IGdv IHRvIFBTUiBleGl0IHN0YXRlIHdhaXRpbmcgZm9yIGNoYW5nZSBiZWZvcmUKPj4gPiArCQkJICog ZG8gYSBhdXggY2ggdHJhbnNhY3Rpb24uCj4+ID4gKwkJCSAqLwo+PiA+ICsJCX0KPj4gPiArCX0K Pj4gPiArCj4+ID4gIAkvKiBUcnkgdG8gd2FpdCBmb3IgYW55IHByZXZpb3VzIEFVWCBjaGFubmVs IGFjdGl2aXR5ICovCj4+ID4gIAlmb3IgKHRyeSA9IDA7IHRyeSA8IDM7IHRyeSsrKSB7Cj4+ID4g IAkJc3RhdHVzID0gSTkxNV9SRUFEX05PVFJBQ0UoY2hfY3RsKTsKPj4gPiBAQCAtMTI0Myw3ICsx MjgwLDE2IEBAIGludGVsX2RwX2F1eF9jaChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+PiA+ ICAJCQkJICAgIHJlY3YgKyBpLCByZWN2X2J5dGVzIC0gaSk7Cj4+ID4gIAo+PiA+ICAJcmV0ID0g cmVjdl9ieXRlczsKPj4gPiArCj4+ID4gIG91dDoKPj4gPiArCWlmIChkZXZfcHJpdi0+cHNyLmVu YWJsZWQgPT0gaW50ZWxfZHApIHsKPj4gPiArCQlpZiAoaW50ZWxfZHAtPmF1eF9jaF9tdXRleF9y ZWcucmVnKQo+PiA+ICsJCQlpbnRlbF9kcF9hdXhfcHV0KGRldl9wcml2LCBpbnRlbF9kcCk7Cj4+ ID4gKwkJZWxzZQo+PiA+ICsJCQkvKiBUT0RPOiBzY2hlZHVsZSBQU1Igd29yayB0byBhY3RpdmUg UFNSIGFnYWluICovCj4+ID4gKwl9Cj4+ID4gKwo+PiA+ICtvdXRfbG9ja2VkOgo+PiA+ICAJcG1f cW9zX3VwZGF0ZV9yZXF1ZXN0KCZkZXZfcHJpdi0+cG1fcW9zLCBQTV9RT1NfREVGQVVMVF9WQUxV RSk7Cj4+ID4gIAo+PiA+ICAJaWYgKHZkZCkKPj4gPiBAQCAtMTQ5Niw2ICsxNTQyLDggQEAgc3Rh dGljIHZvaWQgaW50ZWxfYXV4X3JlZ19pbml0KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4+ ID4gIAlpbnRlbF9kcC0+YXV4X2NoX2N0bF9yZWcgPSBpbnRlbF9hdXhfY3RsX3JlZyhkZXZfcHJp diwgcG9ydCk7Cj4+ID4gIAlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShpbnRlbF9kcC0+YXV4 X2NoX2RhdGFfcmVnKTsgaSsrKQo+PiA+ICAJCWludGVsX2RwLT5hdXhfY2hfZGF0YV9yZWdbaV0g PSBpbnRlbF9hdXhfZGF0YV9yZWcoZGV2X3ByaXYsIHBvcnQsIGkpOwo+PiA+ICsJaWYgKElOVEVM X0lORk8oZGV2X3ByaXYpLT5nZW4gPj0gOSkKPj4gPiArCQlpbnRlbF9kcC0+YXV4X2NoX211dGV4 X3JlZyA9IERQX0FVWF9DSF9NVVRFWChwb3J0KTsKPj4gPiAgfQo+PiA+ICAKPj4gPiAgc3RhdGlj IHZvaWQKPj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2Lmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+PiA+IGluZGV4IDg5ODA2NGU4YmVh Ny4uMGQyMzViN2RhYjIxIDEwMDY0NAo+PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oCj4+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPj4g PiBAQCAtMTA0MCw2ICsxMDQwLDcgQEAgc3RydWN0IGludGVsX2RwIHsKPj4gPiAgCWk5MTVfcmVn X3Qgb3V0cHV0X3JlZzsKPj4gPiAgCWk5MTVfcmVnX3QgYXV4X2NoX2N0bF9yZWc7Cj4+ID4gIAlp OTE1X3JlZ190IGF1eF9jaF9kYXRhX3JlZ1s1XTsKPj4gPiArCWk5MTVfcmVnX3QgYXV4X2NoX211 dGV4X3JlZzsKPj4gPiAgCXVpbnQzMl90IERQOwo+PiA+ICAJaW50IGxpbmtfcmF0ZTsKPj4gPiAg CXVpbnQ4X3QgbGFuZV9jb3VudDsKPj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcHNyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYwo+PiA+IGlu ZGV4IDJlZjM3NGY5MzZiOS4uOGI0NTZlNGUxYjQ3IDEwMDY0NAo+PiA+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3Bzci5jCj4+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcHNyLmMKPj4gPiBAQCAtNDg0LDYgKzQ4NCw5IEBAIHN0YXRpYyB2b2lkIGhzd19wc3Jf ZW5hYmxlX3NvdXJjZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+PiA+ICAJCQkgICBFRFBf UFNSX0RFQlVHX01BU0tfSFBEIHwKPj4gPiAgCQkJICAgRURQX1BTUl9ERUJVR19NQVNLX0xQU1Ap Owo+PiA+ICAJfQo+PiA+ICsKPj4gPiArCWlmIChpbnRlbF9kcC0+YXV4X2NoX211dGV4X3JlZy5y ZWcpCj4+ID4gKwkJSTkxNV9XUklURShpbnRlbF9kcC0+YXV4X2NoX211dGV4X3JlZywgRFBfQVVY X0NIX01VVEVYX0VOQUJMRSk7Cj4+IAo+PiBZb3UgY2FuJ3QganVzdCBnbyBzdG9tcGluZyBvbiB0 aGUgcmVnaXN0ZXIgd2l0aG91dCBsb2NraW5nLiBSYWN5Lgo+PiAKPj4gPiAgfQo+PiA+ICAKPj4g PiAgLyoqCj4+ID4gQEAgLTYxNyw2ICs2MjAsOSBAQCBzdGF0aWMgdm9pZCBoc3dfcHNyX2Rpc2Fi bGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPj4gPiAgCQllbHNlCj4+ID4gIAkJCVdBUk5f T04oSTkxNV9SRUFEKEVEUF9QU1JfQ1RMKSAmIEVEUF9QU1JfRU5BQkxFKTsKPj4gPiAgCX0KPj4g PiArCj4+ID4gKwlpZiAoaW50ZWxfZHAtPmF1eF9jaF9tdXRleF9yZWcucmVnKQo+PiA+ICsJCUk5 MTVfV1JJVEUoaW50ZWxfZHAtPmF1eF9jaF9tdXRleF9yZWcsIH5EUF9BVVhfQ0hfTVVURVhfRU5B QkxFKTsKPj4gCj4+IEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBzZXQgYWxsIG90aGVyIGJpdHMg dGhhbiBlbmFibGU/Cj4+IAo+PiAKPj4gQlIsCj4+IEphbmkuCj4+IAo+PiA+ICB9Cj4+ID4gIAo+ PiA+ICAvKioKPj4gCj4+IC0tIAo+PiBKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgVGVj aG5vbG9neSBDZW50ZXIKCi0tIApKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5v bG9neSBDZW50ZXIKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cg==