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: Wed, 21 Feb 2018 14:28:12 -0800 Message-ID: <20180221222812.GH20790@intel.com> References: <20180221022347.16405-1-jose.souza@intel.com> <20180221022347.16405-2-jose.souza@intel.com> <20180221204504.GC20790@intel.com> <1519247454.11976.18.camel@intel.com> 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 48CAA6E783 for ; Wed, 21 Feb 2018 22:28:12 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1519247454.11976.18.camel@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Souza, Jose" Cc: "intel-gfx@lists.freedesktop.org" , "Syrjala, Ville" , "Pandiyan, Dhinakaran" List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBGZWIgMjEsIDIwMTggYXQgMDE6MTI6MDhQTSAtMDgwMCwgU291emEsIEpvc2Ugd3Jv dGU6Cj4gT24gV2VkLCAyMDE4LTAyLTIxIGF0IDEyOjQ1IC0wODAwLCBSb2RyaWdvIFZpdmkgd3Jv dGU6Cj4gPiBPbiBUdWUsIEZlYiAyMCwgMjAxOCBhdCAwNjoyMzo0N1BNIC0wODAwLCBKb3PDqSBS b2JlcnRvIGRlIFNvdXphCj4gPiB3cm90ZToKPiA+ID4gV2hlbiBQU1IvUFNSMi9HVEMgaXMgZW5h YmxlZCBoYXJkd2FyZSBjYW4gZG8gQVVYIHRyYW5zYWN0aW9ucyBieSBpdAo+ID4gPiBzZWxmLCBz byBsZXRzIHVzZSB0aGUgbXV0ZXggcmVnaXN0ZXIgdGhhdCBpcyBhdmFpbGFibGUgaW4gZ2VuOSsg dG8KPiA+ID4gYXZvaWQgY29uY3VycmVudCBhY2Nlc3MgYnkgaGFyZHdhcmUgYW5kIGRyaXZlci4K PiA+ID4gCj4gPiA+IFJlZmVyZW5jZTogaHR0cHM6Ly8wMS5vcmcvc2l0ZXMvZGVmYXVsdC9maWxl cy9kb2N1bWVudGF0aW9uL2ludGVsLWcKPiA+ID4gZngtcHJtLW9zcmMtc2tsLXZvbDEyLWRpc3Bs YXkucGRmCj4gPiA+IFBhZ2UgMTk4IC0gQVVYIHByb2dyYW1taW5nIHNlcXVlbmNlCj4gPiA+IAo+ ID4gCj4gPiBDYzogVmlsbGUKPiA+IENjOiBESwo+ID4gPiBDYzogUm9kcmlnbyBWaXZpIDxyb2Ry aWdvLnZpdmlAaW50ZWwuY29tPgo+ID4gPiBDYzogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGxp bnV4LmludGVsLmNvbT4KPiA+ID4gU2lnbmVkLW9mZi1ieTogSm9zw6kgUm9iZXJ0byBkZSBTb3V6 YSA8am9zZS5zb3V6YUBpbnRlbC5jb20+Cj4gPiA+IC0tLQo+ID4gPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9yZWcuaCAgfCAgOSArKysrKysrKwo+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHAuYyAgfCA1MAo+ID4gPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrCj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCB8ICAxICsK PiA+ID4gIDMgZmlsZXMgY2hhbmdlZCwgNjAgaW5zZXJ0aW9ucygrKQo+ID4gPiAKPiA+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiA+ID4gYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gPiA+IGluZGV4IDE0MTJhYmNiMjdkNC4uYTYyZTNj MWJhZGFiIDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5o Cj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiA+ID4gQEAgLTUz MTgsNiArNTMxOCw3IEBAIGVudW0gewo+ID4gPiAgI2RlZmluZSBfRFBBX0FVWF9DSF9EQVRBMwko ZGV2X3ByaXYtCj4gPiA+ID5pbmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAweDY0MDFjKQo+ID4g PiAgI2RlZmluZSBfRFBBX0FVWF9DSF9EQVRBNAkoZGV2X3ByaXYtCj4gPiA+ID5pbmZvLmRpc3Bs YXlfbW1pb19vZmZzZXQgKyAweDY0MDIwKQo+ID4gPiAgI2RlZmluZSBfRFBBX0FVWF9DSF9EQVRB NQkoZGV2X3ByaXYtCj4gPiA+ID5pbmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAweDY0MDI0KQo+ ID4gPiArI2RlZmluZSBfRFBBX0FVWF9DSF9NVVRFWAkoZGV2X3ByaXYtCj4gPiA+ID5pbmZvLmRp c3BsYXlfbW1pb19vZmZzZXQgKyAweDY0MDJDKQo+ID4gPiAgCj4gPiA+ICAjZGVmaW5lIF9EUEJf QVVYX0NIX0NUTAkJKGRldl9wcml2LQo+ID4gPiA+aW5mby5kaXNwbGF5X21taW9fb2Zmc2V0ICsg MHg2NDExMCkKPiA+ID4gICNkZWZpbmUgX0RQQl9BVVhfQ0hfREFUQTEJKGRldl9wcml2LQo+ID4g PiA+aW5mby5kaXNwbGF5X21taW9fb2Zmc2V0ICsgMHg2NDExNCkKPiA+ID4gQEAgLTUzMjUsNiAr NTMyNiw3IEBAIGVudW0gewo+ID4gPiAgI2RlZmluZSBfRFBCX0FVWF9DSF9EQVRBMwkoZGV2X3By aXYtCj4gPiA+ID5pbmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAweDY0MTFjKQo+ID4gPiAgI2Rl ZmluZSBfRFBCX0FVWF9DSF9EQVRBNAkoZGV2X3ByaXYtCj4gPiA+ID5pbmZvLmRpc3BsYXlfbW1p b19vZmZzZXQgKyAweDY0MTIwKQo+ID4gPiAgI2RlZmluZSBfRFBCX0FVWF9DSF9EQVRBNQkoZGV2 X3ByaXYtCj4gPiA+ID5pbmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAweDY0MTI0KQo+ID4gPiAr I2RlZmluZSBfRFBCX0FVWF9DSF9NVVRFWAkoZGV2X3ByaXYtCj4gPiA+ID5pbmZvLmRpc3BsYXlf bW1pb19vZmZzZXQgKyAweDY0MTJDKQo+ID4gPiAgCj4gPiA+ICAjZGVmaW5lIF9EUENfQVVYX0NI X0NUTAkJKGRldl9wcml2LQo+ID4gPiA+aW5mby5kaXNwbGF5X21taW9fb2Zmc2V0ICsgMHg2NDIx MCkKPiA+ID4gICNkZWZpbmUgX0RQQ19BVVhfQ0hfREFUQTEJKGRldl9wcml2LQo+ID4gPiA+aW5m by5kaXNwbGF5X21taW9fb2Zmc2V0ICsgMHg2NDIxNCkKPiA+ID4gQEAgLTUzMzIsNiArNTMzNCw3 IEBAIGVudW0gewo+ID4gPiAgI2RlZmluZSBfRFBDX0FVWF9DSF9EQVRBMwkoZGV2X3ByaXYtCj4g PiA+ID5pbmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAweDY0MjFjKQo+ID4gPiAgI2RlZmluZSBf RFBDX0FVWF9DSF9EQVRBNAkoZGV2X3ByaXYtCj4gPiA+ID5pbmZvLmRpc3BsYXlfbW1pb19vZmZz ZXQgKyAweDY0MjIwKQo+ID4gPiAgI2RlZmluZSBfRFBDX0FVWF9DSF9EQVRBNQkoZGV2X3ByaXYt Cj4gPiA+ID5pbmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAweDY0MjI0KQo+ID4gPiArI2RlZmlu ZSBfRFBDX0FVWF9DSF9NVVRFWAkoZGV2X3ByaXYtCj4gPiA+ID5pbmZvLmRpc3BsYXlfbW1pb19v ZmZzZXQgKyAweDY0MjJDKQo+ID4gPiAgCj4gPiA+ICAjZGVmaW5lIF9EUERfQVVYX0NIX0NUTAkJ KGRldl9wcml2LQo+ID4gPiA+aW5mby5kaXNwbGF5X21taW9fb2Zmc2V0ICsgMHg2NDMxMCkKPiA+ ID4gICNkZWZpbmUgX0RQRF9BVVhfQ0hfREFUQTEJKGRldl9wcml2LQo+ID4gPiA+aW5mby5kaXNw bGF5X21taW9fb2Zmc2V0ICsgMHg2NDMxNCkKPiA+ID4gQEAgLTUzMzksNiArNTM0Miw3IEBAIGVu dW0gewo+ID4gPiAgI2RlZmluZSBfRFBEX0FVWF9DSF9EQVRBMwkoZGV2X3ByaXYtCj4gPiA+ID5p bmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAweDY0MzFjKQo+ID4gPiAgI2RlZmluZSBfRFBEX0FV WF9DSF9EQVRBNAkoZGV2X3ByaXYtCj4gPiA+ID5pbmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAw eDY0MzIwKQo+ID4gPiAgI2RlZmluZSBfRFBEX0FVWF9DSF9EQVRBNQkoZGV2X3ByaXYtCj4gPiA+ ID5pbmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAweDY0MzI0KQo+ID4gPiArI2RlZmluZSBfRFBE X0FVWF9DSF9NVVRFWAkoZGV2X3ByaXYtCj4gPiA+ID5pbmZvLmRpc3BsYXlfbW1pb19vZmZzZXQg KyAweDY0MzJDKQo+ID4gPiAgCj4gPiA+ICAjZGVmaW5lIF9EUEZfQVVYX0NIX0NUTAkJKGRldl9w cml2LQo+ID4gPiA+aW5mby5kaXNwbGF5X21taW9fb2Zmc2V0ICsgMHg2NDUxMCkKPiA+ID4gICNk ZWZpbmUgX0RQRl9BVVhfQ0hfREFUQTEJKGRldl9wcml2LQo+ID4gPiA+aW5mby5kaXNwbGF5X21t aW9fb2Zmc2V0ICsgMHg2NDUxNCkKPiA+ID4gQEAgLTUzNDYsNiArNTM1MCw3IEBAIGVudW0gewo+ ID4gPiAgI2RlZmluZSBfRFBGX0FVWF9DSF9EQVRBMwkoZGV2X3ByaXYtCj4gPiA+ID5pbmZvLmRp c3BsYXlfbW1pb19vZmZzZXQgKyAweDY0NTFjKQo+ID4gPiAgI2RlZmluZSBfRFBGX0FVWF9DSF9E QVRBNAkoZGV2X3ByaXYtCj4gPiA+ID5pbmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAweDY0NTIw KQo+ID4gPiAgI2RlZmluZSBfRFBGX0FVWF9DSF9EQVRBNQkoZGV2X3ByaXYtCj4gPiA+ID5pbmZv LmRpc3BsYXlfbW1pb19vZmZzZXQgKyAweDY0NTI0KQo+ID4gPiArI2RlZmluZSBfRFBGX0FVWF9D SF9NVVRFWAkoZGV2X3ByaXYtCj4gPiA+ID5pbmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAweDY0 NTJDKQo+ID4gPiAgCj4gPiA+ICAjZGVmaW5lIERQX0FVWF9DSF9DVEwocG9ydCkJX01NSU9fUE9S VChwb3J0LAo+ID4gPiBfRFBBX0FVWF9DSF9DVEwsIF9EUEJfQVVYX0NIX0NUTCkKPiA+ID4gICNk ZWZpbmUgRFBfQVVYX0NIX0RBVEEocG9ydCwgaSkJX01NSU8oX1BPUlQocG9ydCwKPiA+ID4gX0RQ QV9BVVhfQ0hfREFUQTEsIF9EUEJfQVVYX0NIX0RBVEExKSArIChpKSAqIDQpIC8qIDUgcmVnaXN0 ZXJzICovCj4gPiA+IEBAIC01Mzc4LDYgKzUzODMsMTAgQEAgZW51bSB7Cj4gPiA+ICAjZGVmaW5l ICAgRFBfQVVYX0NIX0NUTF9GV19TWU5DX1BVTFNFX1NLTChjKSAoKChjKSAtIDEpIDw8IDUpCj4g PiA+ICAjZGVmaW5lICAgRFBfQVVYX0NIX0NUTF9TWU5DX1BVTFNFX1NLTChjKSAgICgoYykgLSAx KQo+ID4gPiAKPiA+IAo+ID4gCj4gPiBJIGJlbGlldmUgX0RQQV9BVVhfQ0hfTVVURVggYW5kIF9E UEJfQVVYX0NIX01VVEVYIHNob3VsZCBiZSBkZWZpbmVkCj4gPiBoZXJlIGFsb25nCj4gPiB3aXRo IHRoZSBiaXRzIGFzIEphbmkgc3VnZ2VzdGVkLgo+ID4gSSBkb24ndCBzZWUgYW55IHJlYXNvbiB0 byB0YWcgdGhhdCBmYXIgZnJvbSB0aGUgYml0cyBhbmQgY2xvc2UgdG8gQ1RMCj4gPiBhbmQgREFU QS4KPiA+IAo+ID4gPiArI2RlZmluZSBEUF9BVVhfQ0hfTVVURVgocG9ydCkJX01NSU9fUE9SVChw b3J0LAo+ID4gPiBfRFBBX0FVWF9DSF9NVVRFWCwgX0RQQl9BVVhfQ0hfTVVURVgpCj4gPiA+ICsj ZGVmaW5lICAgRFBfQVVYX0NIX01VVEVYX0VOQUJMRQkJKDEgPDwgMzEpCj4gPiA+ICsjZGVmaW5l ICAgRFBfQVVYX0NIX01VVEVYX1NUQVRVUwkJKDEgPDwgMzApCj4gPiA+ICsKPiA+ID4gIC8qCj4g PiA+ICAgKiBDb21wdXRpbmcgR01DSCBNIGFuZCBOIHZhbHVlcyBmb3IgdGhlIERpc3BsYXkgUG9y dCBsaW5rCj4gPiA+ICAgKgo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHAuYwo+ID4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiA+ID4g aW5kZXggZjIwYjI1Zjk4ZTVhLi5hZjA3NTYzYmFmYmEgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHAuYwo+ID4gPiBAQCAtMTA4MSw2ICsxMDgxLDQ1IEBAIHN0YXRpYyB1aW50MzJf dAo+ID4gPiBpbnRlbF9kcF9nZXRfYXV4X3NlbmRfY3RsKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHAsCj4gPiA+ICAJCQkJCQlhdXhfY2xvY2tfZGl2aWRlcikKPiA+ID4gOwo+ID4gPiAgfQo+ID4g PiAgCj4gPiA+ICtzdGF0aWMgYm9vbCBpbnRlbF9kcF9hdXhfY2hfdHJ5bG9jayhzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwKQo+ID4gPiArewo+ID4gPiArCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3Bv cnQgKmludGVsX2RpZ19wb3J0ID0KPiA+ID4gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOwo+ID4g PiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9Cj4gPiA+ICsJCQl0b19pOTE1 KGludGVsX2RpZ19wb3J0LT5iYXNlLmJhc2UuZGV2KTsKPiA+ID4gKwo+ID4gPiArCWlmIChJTlRF TF9HRU4oZGV2X3ByaXYpIDwgOSkKPiA+ID4gKwkJcmV0dXJuIHRydWU7Cj4gPiA+ICsKPiA+ID4g KwlJOTE1X1dSSVRFKGludGVsX2RwLT5hdXhfY2hfbXV0ZXhfcmVnLAo+ID4gPiBEUF9BVVhfQ0hf TVVURVhfRU5BQkxFKTsKPiA+IAo+ID4gWW91IG1pZ2h0IGJlIHRvdWNoaW5nIGJpdHMuIFdlIGRv bid0IGtub3cgaWYgSFcgaXMgdXNpbmcgdGhlIHJlc2VydmVkCj4gPiBiaXRzIG9yIG5vdC4KPiA+ IFNvIFJNVyB8PSBiaXQgMzEgaGVyZSBpcyBhIGdvb2QgaWRlYS4KPiAKPiBBcyBhIHJlYWQgaW4g dGhpcyByZWdpc3RlciByZXF1ZXN0IHRoZSBtdXRleCBsb2NrIGlzIGJldHRlciBhdm9pZCBhbnkK PiByZWFkIHRoYXQgaXMgbm90IG1lYW50IHRvIHJlcXVlc3QgaXQuCgpvay4uLiBJIGFjY2VwdCB0 aGUgZmFjdCB0aGF0IHJlYWQgdGhhdCBpcyBsb2NraW5nCnNvIHlvdSBhcmUgcmlnaHQgaGVyZS4K Cj4gCj4gPiAKPiA+ID4gKwo+ID4gPiArCS8qIFNwZWMgc2F5cyB0aGF0IG11dGV4IGlzIGFjcXVp cmVkIHdoZW4gc3RhdHVzIGJpdCBpcwo+ID4gPiByZWFkIGFzIHVuc2V0LAo+ID4gPiArCSAqIGlm IHNldCBpdCBzaG91bGQgYmUgcmVhZCBhZ2FpbiBhZnRlciA1MDB1c2VjLiBIZXJlCj4gPiA+IHdh aXRpbmcgZm9yCj4gPiA+ICsJICogMm1zZWMgb3IgNCB0cmllcyBiZWZvcmUgZ2l2ZSB1cC4KPiA+ ID4gKwkgKi8KPiA+ID4gKwlpZiAoX19pbnRlbF93YWl0X2Zvcl9yZWdpc3RlcihkZXZfcHJpdiwg aW50ZWxfZHAtCj4gPiA+ID5hdXhfY2hfbXV0ZXhfcmVnLAo+ID4gPiArCQkJCSAgICAgIERQX0FV WF9DSF9NVVRFWF9TVEFUVVMsIDAsCj4gPiA+IDUwMCwgMiwKPiA+ID4gKwkJCQkgICAgICBOVUxM KSkgewo+ID4gCj4gPiB3aHkgbm90IGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyPwo+ID4gdGhhdCBz ZWVtcyBjbGVhbmVyLi4uCj4gCj4gaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoKSB3aWxsIGNhbGwg X19pbnRlbF93YWl0X2Zvcl9yZWdpc3RlcigpIHdpdGgKPiBmYXN0X3RpbWVvdXRfdXMgc2V0IGFz IDJ1c2VjIGFuZCBzcGVjcyBzYXlzIHdlIHNob3VsZCB3YWl0IDUwMHVzZWMuCgpTbywgSSd2ZSBq dXN0IG5vdGljZWQgdGhhdCBfX2ludGVsX3dhaXRfZm9yX3JlZ2lzdGVyIHNwcmVhZGVkIHRvIGlu dGVsX2hkY3AuCklkZWFsbHkgaWYgd2UgaGF2ZSBfXyBwcmVmaXggdGhpcyBzaG91bGRuJ3QgYmUg Y2FsbGVkIGZvciBtb3JlIHRoYW4gMSBwbGFjZS4KClNvIGl0IHNlZW1zIHRoYXQgd2UgaGF2ZSBt b3JlIGNhc2VzIGhlbmNlIGEgcmV3b3JrIHNob3VsZCBiZSBkb25lIGhlcmUuCgpCdXQgYWxzbyB0 aGUgZmFzdCBjYXNlIGlzIHRoZSBhdG9taWMgaW5pdGlhbCBjYXNlLi4uIGl0IGlzIHRoZSBmaXJz dCByZWFkLgpPbmx5IGlmIGl0IGZhaWxzIGl0IHdpbGwgY29uc2lkZXIgdGhlIHNsb3cgY2FzZS4g VGhhdCdzIGV4YWN0bHkgd2hhdCBzcGVjIHRlbGxzCgpNYXliZSB3aGF0IHdlIHdhbnQgaGVyZSBp cyBhIGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyX3VzIHRvIGhhdmUgYSBzbG93IHZhbHVlCmJhc2Vk IGluIHVzIHJhdGhlciB0aGFuIG1zPwoKSSdtIG5vdCBmdWxseSBzdXJlIGhlcmUuCgo+IAo+ID4g Cj4gPiA+ICsJCURSTV9XQVJOKCJkcF9hdXhfY2ggcG9ydCBsb2NrZWQgZm9yIHRvbyBsb25nIik7 Cj4gPiA+ICsJCXJldHVybiBmYWxzZTsKPiA+ID4gKwl9Cj4gPiA+ICsKPiA+ID4gKwlyZXR1cm4g dHJ1ZTsKPiA+ID4gK30KPiA+ID4gKwo+ID4gPiArc3RhdGljIHZvaWQgaW50ZWxfZHBfYXV4X2No X3VubG9jayhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ID4gPiArewo+ID4gPiArCXN0cnVj dCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0KPiA+ID4gZHBfdG9fZGlnX3Bv cnQoaW50ZWxfZHApOwo+ID4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 Cj4gPiA+ICsJCQl0b19pOTE1KGludGVsX2RpZ19wb3J0LT5iYXNlLmJhc2UuZGV2KTsKPiA+ID4g Kwo+ID4gPiArCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgOSkKPiA+ID4gKwkJcmV0dXJuOwo+ ID4gPiArCj4gPiA+ICsJLyogc2V0dGluZyB0aGUgc3RhdHVzIGJpdCByZWxlYXNlcyB0aGUgbXV0 ZXggKyBrZWVwIG11dGV4Cj4gPiA+IGVuYWJsZWQgKi8KPiA+ID4gKwlJOTE1X1dSSVRFKGludGVs X2RwLT5hdXhfY2hfbXV0ZXhfcmVnLAo+ID4gPiBEUF9BVVhfQ0hfTVVURVhfRU5BQkxFIHwKPiA+ ID4gKwkJICAgRFBfQVVYX0NIX01VVEVYX1NUQVRVUyk7Cj4gPiAKPiA+IGRpdHRvLgo+ID4gCj4g PiA+ICt9Cj4gPiA+ICsKPiA+ID4gIHN0YXRpYyBpbnQKPiA+ID4gIGludGVsX2RwX2F1eF9jaChz dHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ID4gPiAgCQljb25zdCB1aW50OF90ICpzZW5kLCBp bnQgc2VuZF9ieXRlcywKPiA+ID4gQEAgLTExMTUsNiArMTE1NCwxMSBAQCBpbnRlbF9kcF9hdXhf Y2goc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiA+ID4gIAo+ID4gPiAgCWludGVsX2RwX2No ZWNrX2VkcChpbnRlbF9kcCk7Cj4gPiA+ICAKPiA+ID4gKwlpZiAoIWludGVsX2RwX2F1eF9jaF90 cnlsb2NrKGludGVsX2RwKSkgewo+ID4gPiArCQlyZXQgPSAtRUJVU1k7Cj4gPiA+ICsJCWdvdG8g b3V0X2xvY2tlZDsKPiA+ID4gKwl9Cj4gPiA+ICsKPiA+IAo+ID4gQlNwZWM6IDQzMDEKPiA+IEkg YmVsaWV2ZSB5b3UgY291bGQgcmVkdWNlIHRoZSBsb2NrIHJlZ2lvbiBmb2xsb3dpbmcgdGhlIHNw ZWMKPiA+IGFuZCBsaW1pdGluZyBpdCB0byBzdGVwcyA1LXRvLTEwLCBpLmUuCj4gPiBpbnNpZGUg dGhlIGxvb3AgYmVsb3cuCj4gCj4gV2UgbG9vcCB0cnlpbmcgdG8gY29tcGxldGUgdGhlIHRyYW5z YWN0aW9uIGJ1dCB3ZSBjb3B5IGRhdGEgcmVjZWl2ZWQKPiBvdXQgb2YgdGhlIGxvb3AgYW5kIHRo YXQgaXMgc3RlcCA5LCBzbyB0aGUgbG9jayBtdXN0IGJlIGhlbGQgdW50aWwgd2UKPiBjb3B5IHRo ZSBkYXRhIGZyb20gaW50ZWxfZHAtPmF1eF9jaF9kYXRhX3JlZ1tdIHRvIHJlY3YuCj4gCj4gIgo+ IAlmb3IgKGkgPSAwOyBpIDwgcmVjdl9ieXRlczsgaSArPSA0KQo+IAkJaW50ZWxfZHBfdW5wYWNr X2F1eChJOTE1X1JFQUQoaW50ZWxfZHAtPmF1eF9jaF9kYXRhX3JlZ1tpID4+Cj4gMl0pLCByZWN2 ICsgaSwgcmVjdl9ieXRlcyAtIGkpOwo+IAo+IAlyZXQgPSByZWN2X2J5dGVzOwo+IG91dDoKPiAJ aW50ZWxfZHBfYXV4X2NoX3VubG9jayhpbnRlbF9kcCk7Cj4gIgoKaG0uLi4gb2suLi4gdGhpcyBp cyB0aGUgYWN0dWFsbHkgcGFydCA5IHRoYXQgbmVlZHMgdG8gYmUgaW5zaWRlCnRoZSBsb2NrZWQg YXJlYSBpbmRlZWQuIEkgbWlzc2VkIHRoYXQuCgo+IAo+ID4gCj4gPiA+ICAJLyogVHJ5IHRvIHdh aXQgZm9yIGFueSBwcmV2aW91cyBBVVggY2hhbm5lbCBhY3Rpdml0eSAqLwo+ID4gPiAgCWZvciAo dHJ5ID0gMDsgdHJ5IDwgMzsgdHJ5KyspIHsKPiA+ID4gIAkJc3RhdHVzID0gSTkxNV9SRUFEX05P VFJBQ0UoY2hfY3RsKTsKPiA+ID4gQEAgLTEyNDQsNiArMTI4OCw4IEBAIGludGVsX2RwX2F1eF9j aChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ID4gPiAgCj4gPiA+ICAJcmV0ID0gcmVjdl9i eXRlczsKPiA+ID4gIG91dDoKPiA+ID4gKwlpbnRlbF9kcF9hdXhfY2hfdW5sb2NrKGludGVsX2Rw KTsKPiA+ID4gK291dF9sb2NrZWQ6Cj4gPiA+ICAJcG1fcW9zX3VwZGF0ZV9yZXF1ZXN0KCZkZXZf cHJpdi0+cG1fcW9zLAo+ID4gPiBQTV9RT1NfREVGQVVMVF9WQUxVRSk7Cj4gPiA+ICAKPiA+ID4g IAlpZiAodmRkKQo+ID4gPiBAQCAtMTQ5Niw2ICsxNTQyLDEwIEBAIHN0YXRpYyB2b2lkIGludGVs X2F1eF9yZWdfaW5pdChzdHJ1Y3QKPiA+ID4gaW50ZWxfZHAgKmludGVsX2RwKQo+ID4gPiAgCWlu dGVsX2RwLT5hdXhfY2hfY3RsX3JlZyA9IGludGVsX2F1eF9jdGxfcmVnKGRldl9wcml2LAo+ID4g PiBwb3J0KTsKPiA+ID4gIAlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShpbnRlbF9kcC0+YXV4 X2NoX2RhdGFfcmVnKTsKPiA+ID4gaSsrKQo+ID4gPiAgCQlpbnRlbF9kcC0+YXV4X2NoX2RhdGFf cmVnW2ldID0KPiA+ID4gaW50ZWxfYXV4X2RhdGFfcmVnKGRldl9wcml2LCBwb3J0LCBpKTsKPiA+ ID4gKwlpZiAoSU5URUxfSU5GTyhkZXZfcHJpdiktPmdlbiA+PSA5KSB7Cj4gPiA+ICsJCWludGVs X2RwLT5hdXhfY2hfbXV0ZXhfcmVnID0KPiA+ID4gRFBfQVVYX0NIX01VVEVYKHBvcnQpOwo+ID4g PiArCQlJOTE1X1dSSVRFKGludGVsX2RwLT5hdXhfY2hfbXV0ZXhfcmVnLAo+ID4gPiBEUF9BVVhf Q0hfTVVURVhfRU5BQkxFKTsKPiA+IAo+ID4gSSBkb24ndCBiZWxpZXZlIHdlIG5lZWQgYW4gZXh0 cmEgZW5hYmxlIGhlcmUuIEFuZCBob3BlZnVsbHkgd2l0aAo+ID4gVmlsbGVzCj4gPiByZXdvcmsg d2UgZG9uJ3QgZXZlbiBuZWVkIHRvIGRlZmluZSBoZXJlIGJ1dCBvbmx5IGFjY2Vzc2luZyBpdAo+ ID4gZGlyZWN0bHkgZnJvbQo+ID4gdGhlIGF1eCBmdW5jdGlvbiB3aXRoIGludGVsX2RwLT5hdXhf Y2ggcmVmZXJlbmNlLgo+IAo+IFdoYXQgaWYgaGFyZHdhcmUgd2FudHMgdG8gZG8gc29tZSBhdXgg dHJhbnNhY3Rpb24gYmVmb3JlIHdlIGRvIG91cgo+IGZpcnN0IHRyYW5zYWN0aW9uKGFuZCBlbmFi bGluZyB0aGUgbXV0ZXgpPyBUaGUgbXV0ZXggd2lsbCBub3QgYmUKPiBlbmFibGVkIHNvIGhhcmR3 YXJlIHdpbGwgbm90IGxvY2sgaXQuCj4gCj4gPiAKPiA+ID4gKwl9Cj4gPiA+ICB9Cj4gPiA+ICAK PiA+ID4gIHN0YXRpYyB2b2lkCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcnYuaAo+ID4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4g PiA+IGluZGV4IDUwODc0ZjQwMzVjZi4uMGM4ODY1N2Q2MDY2IDEwMDY0NAo+ID4gPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gPiBAQCAtMTA0Myw2ICsxMDQzLDcgQEAgc3RydWN0IGlu dGVsX2RwIHsKPiA+ID4gIAlpOTE1X3JlZ190IG91dHB1dF9yZWc7Cj4gPiA+ICAJaTkxNV9yZWdf dCBhdXhfY2hfY3RsX3JlZzsKPiA+ID4gIAlpOTE1X3JlZ190IGF1eF9jaF9kYXRhX3JlZ1s1XTsK PiA+ID4gKwlpOTE1X3JlZ190IGF1eF9jaF9tdXRleF9yZWc7Cj4gPiA+ICAJdWludDMyX3QgRFA7 Cj4gPiA+ICAJaW50IGxpbmtfcmF0ZTsKPiA+ID4gIAl1aW50OF90IGxhbmVfY291bnQ7Cj4gPiA+ IC0tIAo+ID4gPiAyLjE2LjIKPiA+ID4gCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeAo=