From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 5/6] drm/i915: Unduplicate CHV pre-encoder enabling phy logic Date: Mon, 11 Apr 2016 18:13:20 +0300 Message-ID: <20160411151320.GI4329@intel.com> References: <1460129506-6293-1-git-send-email-ander.conselvan.de.oliveira@intel.com> <1460129506-6293-6-git-send-email-ander.conselvan.de.oliveira@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 3C2A46E592 for ; Mon, 11 Apr 2016 15:13:25 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1460129506-6293-6-git-send-email-ander.conselvan.de.oliveira@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ander Conselvan de Oliveira Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBBcHIgMDgsIDIwMTYgYXQgMDY6MzE6NDVQTSArMDMwMCwgQW5kZXIgQ29uc2VsdmFu IGRlIE9saXZlaXJhIHdyb3RlOgo+IFRoZSBvbmx5IGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgRFAg YW5kIEhETUkgdmVyc2lvbnMgd2FzIHRoZSBsYW5lIGNvdW50Lgo+IFNpbmNlIGxhbmVfY291bnQg aXMgbm93IHNldCBhcHByb3ByaWF0ZWx5IGZvciBIRE1JIHRvbywgZ2V0IHJpZCBvZiB0aGUKPiBk dXBsaWNhdGlvbiBhbmQgbW92ZSB0aGlzIHRvIGludGVsX2RwaW9fcGh5LmMKPiAKPiBTaWduZWQt b2ZmLWJ5OiBBbmRlciBDb25zZWx2YW4gZGUgT2xpdmVpcmEgPGFuZGVyLmNvbnNlbHZhbi5kZS5v bGl2ZWlyYUBpbnRlbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmggICAgICAgfCAgMiArCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgICAgICAg fCA4NCArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RwaW9fcGh5LmMgfCA5MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMgICAgIHwgNjkgKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgNCBmaWxlcyBjaGFuZ2VkLCA5OSBpbnNlcnRpb25zKCsp LCAxNDkgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5kZXggN2Iy ZjQ1My4uZTFiMmY0OCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IEBAIC0zNTExLDYg KzM1MTEsOCBAQCB2b2lkIGNodl9zZXRfcGh5X3NpZ25hbF9sZXZlbChzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKPiAgdm9pZCBjaHZfZGF0YV9sYW5lX3NvZnRfcmVzZXQoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJCSAgICAgIGJvb2wgcmVzZXQpOwo+ICB2b2lkIGNo dl9waHlfcHJlX3BsbF9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpOwo+ICt2 b2lkIGNodl9waHlfcHJlX2VuY29kZXJfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyKTsKPiArdm9pZCBjaHZfcGh5X3JlbGVhc2VfY2wyX292ZXJyaWRlKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyKTsKPiAgCj4gIGludCBpbnRlbF9ncHVfZnJlcShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGludCB2YWwpOwo+ICBpbnQgaW50ZWxfZnJlcV9vcGNvZGUo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBpbnQgdmFsKTsKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RwLmMKPiBpbmRleCBmYjBjOWM1Li44NzM1NzM4IDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcC5jCj4gQEAgLTI4NTEsOTEgKzI4NTEsMTEgQEAgc3RhdGljIHZvaWQgdmx2X2RwX3By ZV9wbGxfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICAKPiAgc3RhdGlj IHZvaWQgY2h2X3ByZV9lbmFibGVfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4g IHsKPiAtCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmVuY29k ZXItPmJhc2UpOwo+IC0Jc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZHBvcnQgPSBkcF90b19k aWdfcG9ydChpbnRlbF9kcCk7Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+ YmFzZS5kZXY7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRl dl9wcml2YXRlOwo+IC0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPQo+IC0JCXRvX2lu dGVsX2NydGMoZW5jb2Rlci0+YmFzZS5jcnRjKTsKPiAtCWVudW0gZHBpb19jaGFubmVsIGNoID0g dmx2X2Rwb3J0X3RvX2NoYW5uZWwoZHBvcnQpOwo+IC0JaW50IHBpcGUgPSBpbnRlbF9jcnRjLT5w aXBlOwo+IC0JaW50IGRhdGEsIGksIHN0YWdnZXI7Cj4gLQl1MzIgdmFsOwo+IC0KPiAtCW11dGV4 X2xvY2soJmRldl9wcml2LT5zYl9sb2NrKTsKPiAtCj4gLQkvKiBhbGxvdyBoYXJkd2FyZSB0byBt YW5hZ2UgVFggRklGTyByZXNldCBzb3VyY2UgKi8KPiAtCXZhbCA9IHZsdl9kcGlvX3JlYWQoZGV2 X3ByaXYsIHBpcGUsIFZMVl9QQ1MwMV9EVzExKGNoKSk7Cj4gLQl2YWwgJj0gfkRQSU9fTEFORURF U0tFV19TVFJBUF9PVlJEOwo+IC0Jdmx2X2RwaW9fd3JpdGUoZGV2X3ByaXYsIHBpcGUsIFZMVl9Q Q1MwMV9EVzExKGNoKSwgdmFsKTsKPiAtCj4gLQlpZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5sYW5l X2NvdW50ID4gMikgewo+IC0JCXZhbCA9IHZsdl9kcGlvX3JlYWQoZGV2X3ByaXYsIHBpcGUsIFZM Vl9QQ1MyM19EVzExKGNoKSk7Cj4gLQkJdmFsICY9IH5EUElPX0xBTkVERVNLRVdfU1RSQVBfT1ZS RDsKPiAtCQl2bHZfZHBpb193cml0ZShkZXZfcHJpdiwgcGlwZSwgVkxWX1BDUzIzX0RXMTEoY2gp LCB2YWwpOwo+IC0JfQo+IC0KPiAtCS8qIFByb2dyYW0gVHggbGFuZSBsYXRlbmN5IG9wdGltYWwg c2V0dGluZyovCj4gLQlmb3IgKGkgPSAwOyBpIDwgaW50ZWxfY3J0Yy0+Y29uZmlnLT5sYW5lX2Nv dW50OyBpKyspIHsKPiAtCQkvKiBTZXQgdGhlIHVwYXIgYml0ICovCj4gLQkJaWYgKGludGVsX2Ny dGMtPmNvbmZpZy0+bGFuZV9jb3VudCA9PSAxKQo+IC0JCQlkYXRhID0gMHgwOwo+IC0JCWVsc2UK PiAtCQkJZGF0YSA9IChpID09IDEpID8gMHgwIDogMHgxOwo+IC0JCXZsdl9kcGlvX3dyaXRlKGRl dl9wcml2LCBwaXBlLCBDSFZfVFhfRFcxNChjaCwgaSksCj4gLQkJCQlkYXRhIDw8IERQSU9fVVBB Ul9TSElGVCk7Cj4gLQl9Cj4gLQo+IC0JLyogRGF0YSBsYW5lIHN0YWdnZXIgcHJvZ3JhbW1pbmcg Ki8KPiAtCWlmIChpbnRlbF9jcnRjLT5jb25maWctPnBvcnRfY2xvY2sgPiAyNzAwMDApCj4gLQkJ c3RhZ2dlciA9IDB4MTg7Cj4gLQllbHNlIGlmIChpbnRlbF9jcnRjLT5jb25maWctPnBvcnRfY2xv Y2sgPiAxMzUwMDApCj4gLQkJc3RhZ2dlciA9IDB4ZDsKPiAtCWVsc2UgaWYgKGludGVsX2NydGMt PmNvbmZpZy0+cG9ydF9jbG9jayA+IDY3NTAwKQo+IC0JCXN0YWdnZXIgPSAweDc7Cj4gLQllbHNl IGlmIChpbnRlbF9jcnRjLT5jb25maWctPnBvcnRfY2xvY2sgPiAzMzc1MCkKPiAtCQlzdGFnZ2Vy ID0gMHg0Owo+IC0JZWxzZQo+IC0JCXN0YWdnZXIgPSAweDI7Cj4gLQo+IC0JdmFsID0gdmx2X2Rw aW9fcmVhZChkZXZfcHJpdiwgcGlwZSwgVkxWX1BDUzAxX0RXMTEoY2gpKTsKPiAtCXZhbCB8PSBE UElPX1RYMl9TVEFHR0VSX01BU0soMHgxZik7Cj4gLQl2bHZfZHBpb193cml0ZShkZXZfcHJpdiwg cGlwZSwgVkxWX1BDUzAxX0RXMTEoY2gpLCB2YWwpOwo+IC0KPiAtCWlmIChpbnRlbF9jcnRjLT5j b25maWctPmxhbmVfY291bnQgPiAyKSB7Cj4gLQkJdmFsID0gdmx2X2RwaW9fcmVhZChkZXZfcHJp diwgcGlwZSwgVkxWX1BDUzIzX0RXMTEoY2gpKTsKPiAtCQl2YWwgfD0gRFBJT19UWDJfU1RBR0dF Ul9NQVNLKDB4MWYpOwo+IC0JCXZsdl9kcGlvX3dyaXRlKGRldl9wcml2LCBwaXBlLCBWTFZfUENT MjNfRFcxMShjaCksIHZhbCk7Cj4gLQl9Cj4gLQo+IC0Jdmx2X2RwaW9fd3JpdGUoZGV2X3ByaXYs IHBpcGUsIFZMVl9QQ1MwMV9EVzEyKGNoKSwKPiAtCQkgICAgICAgRFBJT19MQU5FU1RBR0dFUl9T VFJBUChzdGFnZ2VyKSB8Cj4gLQkJICAgICAgIERQSU9fTEFORVNUQUdHRVJfU1RSQVBfT1ZSRCB8 Cj4gLQkJICAgICAgIERQSU9fVFgxX1NUQUdHRVJfTUFTSygweDFmKSB8Cj4gLQkJICAgICAgIERQ SU9fVFgxX1NUQUdHRVJfTVVMVCg2KSB8Cj4gLQkJICAgICAgIERQSU9fVFgyX1NUQUdHRVJfTVVM VCgwKSk7Cj4gLQo+IC0JaWYgKGludGVsX2NydGMtPmNvbmZpZy0+bGFuZV9jb3VudCA+IDIpIHsK PiAtCQl2bHZfZHBpb193cml0ZShkZXZfcHJpdiwgcGlwZSwgVkxWX1BDUzIzX0RXMTIoY2gpLAo+ IC0JCQkgICAgICAgRFBJT19MQU5FU1RBR0dFUl9TVFJBUChzdGFnZ2VyKSB8Cj4gLQkJCSAgICAg ICBEUElPX0xBTkVTVEFHR0VSX1NUUkFQX09WUkQgfAo+IC0JCQkgICAgICAgRFBJT19UWDFfU1RB R0dFUl9NQVNLKDB4MWYpIHwKPiAtCQkJICAgICAgIERQSU9fVFgxX1NUQUdHRVJfTVVMVCg3KSB8 Cj4gLQkJCSAgICAgICBEUElPX1RYMl9TVEFHR0VSX01VTFQoNSkpOwo+IC0JfQo+IC0KPiAtCS8q IERlYXNzZXJ0IGRhdGEgbGFuZSByZXNldCAqLwo+IC0JY2h2X2RhdGFfbGFuZV9zb2Z0X3Jlc2V0 KGVuY29kZXIsIGZhbHNlKTsKPiAtCj4gLQltdXRleF91bmxvY2soJmRldl9wcml2LT5zYl9sb2Nr KTsKPiArCWNodl9waHlfcHJlX2VuY29kZXJfZW5hYmxlKGVuY29kZXIpOwo+ICAKPiAgCWludGVs X2VuYWJsZV9kcChlbmNvZGVyKTsKPiAgCj4gLQkvKiBTZWNvbmQgY29tbW9uIGxhbmUgd2lsbCBz dGF5IGFsaXZlIG9uIGl0cyBvd24gbm93ICovCgpUaGVzZSBjb21tZW50cyB3b3VsZCBiZSBiZXR0 ZXIgbGVmdCBpbiB0aGUgY2FsbGVyLgoKPiAtCWlmIChkcG9ydC0+cmVsZWFzZV9jbDJfb3ZlcnJp ZGUpIHsKPiAtCQljaHZfcGh5X3Bvd2VyZ2F0ZV9jaChkZXZfcHJpdiwgRFBJT19QSFkwLCBEUElP X0NIMSwgZmFsc2UpOwo+IC0JCWRwb3J0LT5yZWxlYXNlX2NsMl9vdmVycmlkZSA9IGZhbHNlOwo+ IC0JfQo+ICsJY2h2X3BoeV9yZWxlYXNlX2NsMl9vdmVycmlkZShlbmNvZGVyKTsKPiAgfQo+ICAK PiAgc3RhdGljIHZvaWQgY2h2X2RwX3ByZV9wbGxfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyKQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGlv X3BoeS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBpb19waHkuYwo+IGluZGV4IGI0 Y2EzZmYuLjYwNzhlNzQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHBpb19waHkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwaW9fcGh5LmMK PiBAQCAtMjQ0LDMgKzI0NCw5NiBAQCB2b2lkIGNodl9waHlfcHJlX3BsbF9lbmFibGUoc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gIAo+ICAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ c2JfbG9jayk7Cj4gIH0KPiArCj4gK3ZvaWQgY2h2X3BoeV9wcmVfZW5jb2Rlcl9lbmFibGUoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9kcCAqaW50 ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwo+ICsJc3RydWN0IGludGVs X2RpZ2l0YWxfcG9ydCAqZHBvcnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCk7Cj4gKwlzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5kZXY7Cj4gKwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICsJc3RydWN0IGludGVs X2NydGMgKmludGVsX2NydGMgPQo+ICsJCXRvX2ludGVsX2NydGMoZW5jb2Rlci0+YmFzZS5jcnRj KTsKPiArCWVudW0gZHBpb19jaGFubmVsIGNoID0gdmx2X2Rwb3J0X3RvX2NoYW5uZWwoZHBvcnQp Owo+ICsJaW50IHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwo+ICsJaW50IGRhdGEsIGksIHN0YWdn ZXI7Cj4gKwl1MzIgdmFsOwo+ICsKPiArCW11dGV4X2xvY2soJmRldl9wcml2LT5zYl9sb2NrKTsK PiArCj4gKwkvKiBhbGxvdyBoYXJkd2FyZSB0byBtYW5hZ2UgVFggRklGTyByZXNldCBzb3VyY2Ug Ki8KPiArCXZhbCA9IHZsdl9kcGlvX3JlYWQoZGV2X3ByaXYsIHBpcGUsIFZMVl9QQ1MwMV9EVzEx KGNoKSk7Cj4gKwl2YWwgJj0gfkRQSU9fTEFORURFU0tFV19TVFJBUF9PVlJEOwo+ICsJdmx2X2Rw aW9fd3JpdGUoZGV2X3ByaXYsIHBpcGUsIFZMVl9QQ1MwMV9EVzExKGNoKSwgdmFsKTsKPiArCj4g KwlpZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5sYW5lX2NvdW50ID4gMikgewo+ICsJCXZhbCA9IHZs dl9kcGlvX3JlYWQoZGV2X3ByaXYsIHBpcGUsIFZMVl9QQ1MyM19EVzExKGNoKSk7Cj4gKwkJdmFs ICY9IH5EUElPX0xBTkVERVNLRVdfU1RSQVBfT1ZSRDsKPiArCQl2bHZfZHBpb193cml0ZShkZXZf cHJpdiwgcGlwZSwgVkxWX1BDUzIzX0RXMTEoY2gpLCB2YWwpOwo+ICsJfQo+ICsKPiArCS8qIFBy b2dyYW0gVHggbGFuZSBsYXRlbmN5IG9wdGltYWwgc2V0dGluZyovCj4gKwlmb3IgKGkgPSAwOyBp IDwgaW50ZWxfY3J0Yy0+Y29uZmlnLT5sYW5lX2NvdW50OyBpKyspIHsKPiArCQkvKiBTZXQgdGhl IHVwYXIgYml0ICovCj4gKwkJaWYgKGludGVsX2NydGMtPmNvbmZpZy0+bGFuZV9jb3VudCA9PSAx KQo+ICsJCQlkYXRhID0gMHgwOwo+ICsJCWVsc2UKPiArCQkJZGF0YSA9IChpID09IDEpID8gMHgw IDogMHgxOwo+ICsJCXZsdl9kcGlvX3dyaXRlKGRldl9wcml2LCBwaXBlLCBDSFZfVFhfRFcxNChj aCwgaSksCj4gKwkJCQlkYXRhIDw8IERQSU9fVVBBUl9TSElGVCk7Cj4gKwl9Cj4gKwo+ICsJLyog RGF0YSBsYW5lIHN0YWdnZXIgcHJvZ3JhbW1pbmcgKi8KPiArCWlmIChpbnRlbF9jcnRjLT5jb25m aWctPnBvcnRfY2xvY2sgPiAyNzAwMDApCj4gKwkJc3RhZ2dlciA9IDB4MTg7Cj4gKwllbHNlIGlm IChpbnRlbF9jcnRjLT5jb25maWctPnBvcnRfY2xvY2sgPiAxMzUwMDApCj4gKwkJc3RhZ2dlciA9 IDB4ZDsKPiArCWVsc2UgaWYgKGludGVsX2NydGMtPmNvbmZpZy0+cG9ydF9jbG9jayA+IDY3NTAw KQo+ICsJCXN0YWdnZXIgPSAweDc7Cj4gKwllbHNlIGlmIChpbnRlbF9jcnRjLT5jb25maWctPnBv cnRfY2xvY2sgPiAzMzc1MCkKPiArCQlzdGFnZ2VyID0gMHg0Owo+ICsJZWxzZQo+ICsJCXN0YWdn ZXIgPSAweDI7Cj4gKwo+ICsJdmFsID0gdmx2X2RwaW9fcmVhZChkZXZfcHJpdiwgcGlwZSwgVkxW X1BDUzAxX0RXMTEoY2gpKTsKPiArCXZhbCB8PSBEUElPX1RYMl9TVEFHR0VSX01BU0soMHgxZik7 Cj4gKwl2bHZfZHBpb193cml0ZShkZXZfcHJpdiwgcGlwZSwgVkxWX1BDUzAxX0RXMTEoY2gpLCB2 YWwpOwo+ICsKPiArCWlmIChpbnRlbF9jcnRjLT5jb25maWctPmxhbmVfY291bnQgPiAyKSB7Cj4g KwkJdmFsID0gdmx2X2RwaW9fcmVhZChkZXZfcHJpdiwgcGlwZSwgVkxWX1BDUzIzX0RXMTEoY2gp KTsKPiArCQl2YWwgfD0gRFBJT19UWDJfU1RBR0dFUl9NQVNLKDB4MWYpOwo+ICsJCXZsdl9kcGlv X3dyaXRlKGRldl9wcml2LCBwaXBlLCBWTFZfUENTMjNfRFcxMShjaCksIHZhbCk7Cj4gKwl9Cj4g Kwo+ICsJdmx2X2RwaW9fd3JpdGUoZGV2X3ByaXYsIHBpcGUsIFZMVl9QQ1MwMV9EVzEyKGNoKSwK PiArCQkgICAgICAgRFBJT19MQU5FU1RBR0dFUl9TVFJBUChzdGFnZ2VyKSB8Cj4gKwkJICAgICAg IERQSU9fTEFORVNUQUdHRVJfU1RSQVBfT1ZSRCB8Cj4gKwkJICAgICAgIERQSU9fVFgxX1NUQUdH RVJfTUFTSygweDFmKSB8Cj4gKwkJICAgICAgIERQSU9fVFgxX1NUQUdHRVJfTVVMVCg2KSB8Cj4g KwkJICAgICAgIERQSU9fVFgyX1NUQUdHRVJfTVVMVCgwKSk7Cj4gKwo+ICsJaWYgKGludGVsX2Ny dGMtPmNvbmZpZy0+bGFuZV9jb3VudCA+IDIpIHsKPiArCQl2bHZfZHBpb193cml0ZShkZXZfcHJp diwgcGlwZSwgVkxWX1BDUzIzX0RXMTIoY2gpLAo+ICsJCQkgICAgICAgRFBJT19MQU5FU1RBR0dF Ul9TVFJBUChzdGFnZ2VyKSB8Cj4gKwkJCSAgICAgICBEUElPX0xBTkVTVEFHR0VSX1NUUkFQX09W UkQgfAo+ICsJCQkgICAgICAgRFBJT19UWDFfU1RBR0dFUl9NQVNLKDB4MWYpIHwKPiArCQkJICAg ICAgIERQSU9fVFgxX1NUQUdHRVJfTVVMVCg3KSB8Cj4gKwkJCSAgICAgICBEUElPX1RYMl9TVEFH R0VSX01VTFQoNSkpOwo+ICsJfQo+ICsKPiArCS8qIERlYXNzZXJ0IGRhdGEgbGFuZSByZXNldCAq Lwo+ICsJY2h2X2RhdGFfbGFuZV9zb2Z0X3Jlc2V0KGVuY29kZXIsIGZhbHNlKTsKPiArCj4gKwlt dXRleF91bmxvY2soJmRldl9wcml2LT5zYl9sb2NrKTsKPiArfQo+ICsKPiArdm9pZCBjaHZfcGh5 X3JlbGVhc2VfY2wyX292ZXJyaWRlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICt7 Cj4gKwlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkcG9ydCA9IGVuY190b19kaWdfcG9ydCgm ZW5jb2Rlci0+YmFzZSk7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiArCj4gKwkvKiBTZWNvbmQgY29tbW9uIGxhbmUg d2lsbCBzdGF5IGFsaXZlIG9uIGl0cyBvd24gbm93ICovCj4gKwlpZiAoZHBvcnQtPnJlbGVhc2Vf Y2wyX292ZXJyaWRlKSB7Cj4gKwkJY2h2X3BoeV9wb3dlcmdhdGVfY2goZGV2X3ByaXYsIERQSU9f UEhZMCwgRFBJT19DSDEsIGZhbHNlKTsKPiArCQlkcG9ydC0+cmVsZWFzZV9jbDJfb3ZlcnJpZGUg PSBmYWxzZTsKPiArCX0KPiArfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9oZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKPiBpbmRleCA0 NTAxOTA2Li4xZWI2NjY3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2hkbWkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwo+IEBAIC0x NzM0LDY5ICsxNzM0LDggQEAgc3RhdGljIHZvaWQgY2h2X2hkbWlfcHJlX2VuYWJsZShzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAgCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRj ID0KPiAgCQl0b19pbnRlbF9jcnRjKGVuY29kZXItPmJhc2UuY3J0Yyk7Cj4gIAljb25zdCBzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZpbnRlbF9jcnRjLT5jb25maWct PmJhc2UuYWRqdXN0ZWRfbW9kZTsKPiAtCWVudW0gZHBpb19jaGFubmVsIGNoID0gdmx2X2Rwb3J0 X3RvX2NoYW5uZWwoZHBvcnQpOwo+IC0JaW50IHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwo+IC0J aW50IGRhdGEsIGksIHN0YWdnZXI7Cj4gLQl1MzIgdmFsOwo+IC0KPiAtCW11dGV4X2xvY2soJmRl dl9wcml2LT5zYl9sb2NrKTsKPiAtCj4gLQkvKiBhbGxvdyBoYXJkd2FyZSB0byBtYW5hZ2UgVFgg RklGTyByZXNldCBzb3VyY2UgKi8KPiAtCXZhbCA9IHZsdl9kcGlvX3JlYWQoZGV2X3ByaXYsIHBp cGUsIFZMVl9QQ1MwMV9EVzExKGNoKSk7Cj4gLQl2YWwgJj0gfkRQSU9fTEFORURFU0tFV19TVFJB UF9PVlJEOwo+IC0Jdmx2X2RwaW9fd3JpdGUoZGV2X3ByaXYsIHBpcGUsIFZMVl9QQ1MwMV9EVzEx KGNoKSwgdmFsKTsKPiAtCj4gLQl2YWwgPSB2bHZfZHBpb19yZWFkKGRldl9wcml2LCBwaXBlLCBW TFZfUENTMjNfRFcxMShjaCkpOwo+IC0JdmFsICY9IH5EUElPX0xBTkVERVNLRVdfU1RSQVBfT1ZS RDsKPiAtCXZsdl9kcGlvX3dyaXRlKGRldl9wcml2LCBwaXBlLCBWTFZfUENTMjNfRFcxMShjaCks IHZhbCk7Cj4gLQo+IC0JLyogUHJvZ3JhbSBUeCBsYXRlbmN5IG9wdGltYWwgc2V0dGluZyAqLwo+ IC0JZm9yIChpID0gMDsgaSA8IDQ7IGkrKykgewo+IC0JCS8qIFNldCB0aGUgdXBhciBiaXQgKi8K PiAtCQlkYXRhID0gKGkgPT0gMSkgPyAweDAgOiAweDE7Cj4gLQkJdmx2X2RwaW9fd3JpdGUoZGV2 X3ByaXYsIHBpcGUsIENIVl9UWF9EVzE0KGNoLCBpKSwKPiAtCQkJCWRhdGEgPDwgRFBJT19VUEFS X1NISUZUKTsKPiAtCX0KPiAtCj4gLQkvKiBEYXRhIGxhbmUgc3RhZ2dlciBwcm9ncmFtbWluZyAq Lwo+IC0JaWYgKGludGVsX2NydGMtPmNvbmZpZy0+cG9ydF9jbG9jayA+IDI3MDAwMCkKPiAtCQlz dGFnZ2VyID0gMHgxODsKPiAtCWVsc2UgaWYgKGludGVsX2NydGMtPmNvbmZpZy0+cG9ydF9jbG9j ayA+IDEzNTAwMCkKPiAtCQlzdGFnZ2VyID0gMHhkOwo+IC0JZWxzZSBpZiAoaW50ZWxfY3J0Yy0+ Y29uZmlnLT5wb3J0X2Nsb2NrID4gNjc1MDApCj4gLQkJc3RhZ2dlciA9IDB4NzsKPiAtCWVsc2Ug aWYgKGludGVsX2NydGMtPmNvbmZpZy0+cG9ydF9jbG9jayA+IDMzNzUwKQo+IC0JCXN0YWdnZXIg PSAweDQ7Cj4gLQllbHNlCj4gLQkJc3RhZ2dlciA9IDB4MjsKPiAtCj4gLQl2YWwgPSB2bHZfZHBp b19yZWFkKGRldl9wcml2LCBwaXBlLCBWTFZfUENTMDFfRFcxMShjaCkpOwo+IC0JdmFsIHw9IERQ SU9fVFgyX1NUQUdHRVJfTUFTSygweDFmKTsKPiAtCXZsdl9kcGlvX3dyaXRlKGRldl9wcml2LCBw aXBlLCBWTFZfUENTMDFfRFcxMShjaCksIHZhbCk7Cj4gLQo+IC0JdmFsID0gdmx2X2RwaW9fcmVh ZChkZXZfcHJpdiwgcGlwZSwgVkxWX1BDUzIzX0RXMTEoY2gpKTsKPiAtCXZhbCB8PSBEUElPX1RY Ml9TVEFHR0VSX01BU0soMHgxZik7Cj4gLQl2bHZfZHBpb193cml0ZShkZXZfcHJpdiwgcGlwZSwg VkxWX1BDUzIzX0RXMTEoY2gpLCB2YWwpOwo+IC0KPiAtCXZsdl9kcGlvX3dyaXRlKGRldl9wcml2 LCBwaXBlLCBWTFZfUENTMDFfRFcxMihjaCksCj4gLQkJICAgICAgIERQSU9fTEFORVNUQUdHRVJf U1RSQVAoc3RhZ2dlcikgfAo+IC0JCSAgICAgICBEUElPX0xBTkVTVEFHR0VSX1NUUkFQX09WUkQg fAo+IC0JCSAgICAgICBEUElPX1RYMV9TVEFHR0VSX01BU0soMHgxZikgfAo+IC0JCSAgICAgICBE UElPX1RYMV9TVEFHR0VSX01VTFQoNikgfAo+IC0JCSAgICAgICBEUElPX1RYMl9TVEFHR0VSX01V TFQoMCkpOwo+IC0KPiAtCXZsdl9kcGlvX3dyaXRlKGRldl9wcml2LCBwaXBlLCBWTFZfUENTMjNf RFcxMihjaCksCj4gLQkJICAgICAgIERQSU9fTEFORVNUQUdHRVJfU1RSQVAoc3RhZ2dlcikgfAo+ IC0JCSAgICAgICBEUElPX0xBTkVTVEFHR0VSX1NUUkFQX09WUkQgfAo+IC0JCSAgICAgICBEUElP X1RYMV9TVEFHR0VSX01BU0soMHgxZikgfAo+IC0JCSAgICAgICBEUElPX1RYMV9TVEFHR0VSX01V TFQoNykgfAo+IC0JCSAgICAgICBEUElPX1RYMl9TVEFHR0VSX01VTFQoNSkpOwo+IC0KPiAtCS8q IERlYXNzZXJ0IGRhdGEgbGFuZSByZXNldCAqLwo+IC0JY2h2X2RhdGFfbGFuZV9zb2Z0X3Jlc2V0 KGVuY29kZXIsIGZhbHNlKTsKPiAtCj4gLQltdXRleF91bmxvY2soJmRldl9wcml2LT5zYl9sb2Nr KTsKPiAgCj4gKwljaHZfcGh5X3ByZV9lbmNvZGVyX2VuYWJsZShlbmNvZGVyKTsKPiAgCWNodl9z ZXRfcGh5X3NpZ25hbF9sZXZlbChlbmNvZGVyLCAxMjgsIDEwMiwgZmFsc2UpOwo+ICAKPiAgCWlu dGVsX2hkbWktPnNldF9pbmZvZnJhbWVzKCZlbmNvZGVyLT5iYXNlLAo+IEBAIC0xODA3LDExICsx NzQ2LDcgQEAgc3RhdGljIHZvaWQgY2h2X2hkbWlfcHJlX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlcikKPiAgCj4gIAl2bHZfd2FpdF9wb3J0X3JlYWR5KGRldl9wcml2LCBkcG9y dCwgMHgwKTsKPiAgCj4gLQkvKiBTZWNvbmQgY29tbW9uIGxhbmUgd2lsbCBzdGF5IGFsaXZlIG9u IGl0cyBvd24gbm93ICovCj4gLQlpZiAoZHBvcnQtPnJlbGVhc2VfY2wyX292ZXJyaWRlKSB7Cj4g LQkJY2h2X3BoeV9wb3dlcmdhdGVfY2goZGV2X3ByaXYsIERQSU9fUEhZMCwgRFBJT19DSDEsIGZh bHNlKTsKPiAtCQlkcG9ydC0+cmVsZWFzZV9jbDJfb3ZlcnJpZGUgPSBmYWxzZTsKPiAtCX0KPiAr CWNodl9waHlfcmVsZWFzZV9jbDJfb3ZlcnJpZGUoZW5jb2Rlcik7Cj4gIH0KPiAgCj4gIHN0YXRp YyB2b2lkIGludGVsX2hkbWlfZGVzdHJveShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9y KQo+IC0tIAo+IDIuNC4xMQo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeAoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbCBPVEMKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==