From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jim Bride Subject: Re: [PATCH v2 05/10] drm/i915: Unduplicate CHV pre-encoder enabling phy logic Date: Wed, 20 Apr 2016 12:48:29 -0700 Message-ID: <20160420194829.GF13777@shiv> References: <1460569673-13694-1-git-send-email-ander.conselvan.de.oliveira@intel.com> <1460569673-13694-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 mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 920E26EB00 for ; Wed, 20 Apr 2016 19:48:29 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1460569673-13694-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 T24gV2VkLCBBcHIgMTMsIDIwMTYgYXQgMDg6NDc6NDhQTSArMDMwMCwgQW5kZXIgQ29uc2VsdmFu IGRlIE9saXZlaXJhIHdyb3RlOgo+IFRoZSBvbmx5IGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgRFAg YW5kIEhETUkgdmVyc2lvbnMgd2FzIHRoZSBsYW5lIGNvdW50Lgo+IFNpbmNlIGxhbmVfY291bnQg aXMgbm93IHNldCBhcHByb3ByaWF0ZWx5IGZvciBIRE1JIHRvbywgZ2V0IHJpZCBvZiB0aGUKPiBk dXBsaWNhdGlvbiBhbmQgbW92ZSB0aGlzIHRvIGludGVsX2RwaW9fcGh5LmMKPiAKPiB2MjogRG9u J3QgbW92ZSBjb21tZW50cyBhYm91dCAybmQgY29tbW9uIGxhbmUgc3RheWluZyBhbGl2ZS4gKFZp bGxlKQo+IFNpZ25lZC1vZmYtYnk6IEFuZGVyIENvbnNlbHZhbiBkZSBPbGl2ZWlyYSA8YW5kZXIu Y29uc2VsdmFuLmRlLm9saXZlaXJhQGludGVsLmNvbT4KClJldmlld2VkLWJ5OiBKaW0gQnJpZGUg PGppbS5icmlkZUBsaW51eC5pbnRlbC5jb20+Cgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oICAgICAgIHwgIDIgKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cC5jICAgICAgIHwgODMgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcGlvX3BoeS5jIHwgOTIgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jICAgICB8 IDY3ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgNCBmaWxlcyBjaGFuZ2VkLCA5OCBpbnNl cnRpb25zKCspLCAxNDYgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4g aW5kZXggMTliZmUwNC4uNmY5NmM0NCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IEBA IC0zNTYxLDYgKzM1NjEsOCBAQCB2b2lkIGNodl9zZXRfcGh5X3NpZ25hbF9sZXZlbChzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgdm9pZCBjaHZfZGF0YV9sYW5lX3NvZnRfcmVzZXQo c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJCSAgICAgIGJvb2wgcmVzZXQpOwo+ ICB2b2lkIGNodl9waHlfcHJlX3BsbF9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIpOwo+ICt2b2lkIGNodl9waHlfcHJlX2VuY29kZXJfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyKTsKPiArdm9pZCBjaHZfcGh5X3JlbGVhc2VfY2wyX292ZXJyaWRlKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKTsKPiAgCj4gIGludCBpbnRlbF9ncHVfZnJlcShzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGludCB2YWwpOwo+ICBpbnQgaW50ZWxfZnJl cV9vcGNvZGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBpbnQgdmFsKTsKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RwLmMKPiBpbmRleCBkZDYyYmYwLi43NmE4MjVjIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcC5jCj4gQEAgLTI4NTEsOTEgKzI4NTEsMTIgQEAgc3RhdGljIHZvaWQg dmx2X2RwX3ByZV9wbGxfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICAK PiAgc3RhdGljIHZvaWQgY2h2X3ByZV9lbmFibGVfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIpCj4gIHsKPiAtCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxf ZHAoJmVuY29kZXItPmJhc2UpOwo+IC0Jc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZHBvcnQg PSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCk7Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g ZW5jb2Rlci0+YmFzZS5kZXY7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSBkZXYtPmRldl9wcml2YXRlOwo+IC0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPQo+ IC0JCXRvX2ludGVsX2NydGMoZW5jb2Rlci0+YmFzZS5jcnRjKTsKPiAtCWVudW0gZHBpb19jaGFu bmVsIGNoID0gdmx2X2Rwb3J0X3RvX2NoYW5uZWwoZHBvcnQpOwo+IC0JaW50IHBpcGUgPSBpbnRl bF9jcnRjLT5waXBlOwo+IC0JaW50IGRhdGEsIGksIHN0YWdnZXI7Cj4gLQl1MzIgdmFsOwo+IC0K PiAtCW11dGV4X2xvY2soJmRldl9wcml2LT5zYl9sb2NrKTsKPiAtCj4gLQkvKiBhbGxvdyBoYXJk d2FyZSB0byBtYW5hZ2UgVFggRklGTyByZXNldCBzb3VyY2UgKi8KPiAtCXZhbCA9IHZsdl9kcGlv X3JlYWQoZGV2X3ByaXYsIHBpcGUsIFZMVl9QQ1MwMV9EVzExKGNoKSk7Cj4gLQl2YWwgJj0gfkRQ SU9fTEFORURFU0tFV19TVFJBUF9PVlJEOwo+IC0Jdmx2X2RwaW9fd3JpdGUoZGV2X3ByaXYsIHBp cGUsIFZMVl9QQ1MwMV9EVzExKGNoKSwgdmFsKTsKPiAtCj4gLQlpZiAoaW50ZWxfY3J0Yy0+Y29u ZmlnLT5sYW5lX2NvdW50ID4gMikgewo+IC0JCXZhbCA9IHZsdl9kcGlvX3JlYWQoZGV2X3ByaXYs IHBpcGUsIFZMVl9QQ1MyM19EVzExKGNoKSk7Cj4gLQkJdmFsICY9IH5EUElPX0xBTkVERVNLRVdf U1RSQVBfT1ZSRDsKPiAtCQl2bHZfZHBpb193cml0ZShkZXZfcHJpdiwgcGlwZSwgVkxWX1BDUzIz X0RXMTEoY2gpLCB2YWwpOwo+IC0JfQo+IC0KPiAtCS8qIFByb2dyYW0gVHggbGFuZSBsYXRlbmN5 IG9wdGltYWwgc2V0dGluZyovCj4gLQlmb3IgKGkgPSAwOyBpIDwgaW50ZWxfY3J0Yy0+Y29uZmln LT5sYW5lX2NvdW50OyBpKyspIHsKPiAtCQkvKiBTZXQgdGhlIHVwYXIgYml0ICovCj4gLQkJaWYg KGludGVsX2NydGMtPmNvbmZpZy0+bGFuZV9jb3VudCA9PSAxKQo+IC0JCQlkYXRhID0gMHgwOwo+ IC0JCWVsc2UKPiAtCQkJZGF0YSA9IChpID09IDEpID8gMHgwIDogMHgxOwo+IC0JCXZsdl9kcGlv X3dyaXRlKGRldl9wcml2LCBwaXBlLCBDSFZfVFhfRFcxNChjaCwgaSksCj4gLQkJCQlkYXRhIDw8 IERQSU9fVVBBUl9TSElGVCk7Cj4gLQl9Cj4gLQo+IC0JLyogRGF0YSBsYW5lIHN0YWdnZXIgcHJv Z3JhbW1pbmcgKi8KPiAtCWlmIChpbnRlbF9jcnRjLT5jb25maWctPnBvcnRfY2xvY2sgPiAyNzAw MDApCj4gLQkJc3RhZ2dlciA9IDB4MTg7Cj4gLQllbHNlIGlmIChpbnRlbF9jcnRjLT5jb25maWct PnBvcnRfY2xvY2sgPiAxMzUwMDApCj4gLQkJc3RhZ2dlciA9IDB4ZDsKPiAtCWVsc2UgaWYgKGlu dGVsX2NydGMtPmNvbmZpZy0+cG9ydF9jbG9jayA+IDY3NTAwKQo+IC0JCXN0YWdnZXIgPSAweDc7 Cj4gLQllbHNlIGlmIChpbnRlbF9jcnRjLT5jb25maWctPnBvcnRfY2xvY2sgPiAzMzc1MCkKPiAt CQlzdGFnZ2VyID0gMHg0Owo+IC0JZWxzZQo+IC0JCXN0YWdnZXIgPSAweDI7Cj4gLQo+IC0JdmFs ID0gdmx2X2RwaW9fcmVhZChkZXZfcHJpdiwgcGlwZSwgVkxWX1BDUzAxX0RXMTEoY2gpKTsKPiAt CXZhbCB8PSBEUElPX1RYMl9TVEFHR0VSX01BU0soMHgxZik7Cj4gLQl2bHZfZHBpb193cml0ZShk ZXZfcHJpdiwgcGlwZSwgVkxWX1BDUzAxX0RXMTEoY2gpLCB2YWwpOwo+IC0KPiAtCWlmIChpbnRl bF9jcnRjLT5jb25maWctPmxhbmVfY291bnQgPiAyKSB7Cj4gLQkJdmFsID0gdmx2X2RwaW9fcmVh ZChkZXZfcHJpdiwgcGlwZSwgVkxWX1BDUzIzX0RXMTEoY2gpKTsKPiAtCQl2YWwgfD0gRFBJT19U WDJfU1RBR0dFUl9NQVNLKDB4MWYpOwo+IC0JCXZsdl9kcGlvX3dyaXRlKGRldl9wcml2LCBwaXBl LCBWTFZfUENTMjNfRFcxMShjaCksIHZhbCk7Cj4gLQl9Cj4gLQo+IC0Jdmx2X2RwaW9fd3JpdGUo ZGV2X3ByaXYsIHBpcGUsIFZMVl9QQ1MwMV9EVzEyKGNoKSwKPiAtCQkgICAgICAgRFBJT19MQU5F U1RBR0dFUl9TVFJBUChzdGFnZ2VyKSB8Cj4gLQkJICAgICAgIERQSU9fTEFORVNUQUdHRVJfU1RS QVBfT1ZSRCB8Cj4gLQkJICAgICAgIERQSU9fVFgxX1NUQUdHRVJfTUFTSygweDFmKSB8Cj4gLQkJ ICAgICAgIERQSU9fVFgxX1NUQUdHRVJfTVVMVCg2KSB8Cj4gLQkJICAgICAgIERQSU9fVFgyX1NU QUdHRVJfTVVMVCgwKSk7Cj4gLQo+IC0JaWYgKGludGVsX2NydGMtPmNvbmZpZy0+bGFuZV9jb3Vu dCA+IDIpIHsKPiAtCQl2bHZfZHBpb193cml0ZShkZXZfcHJpdiwgcGlwZSwgVkxWX1BDUzIzX0RX MTIoY2gpLAo+IC0JCQkgICAgICAgRFBJT19MQU5FU1RBR0dFUl9TVFJBUChzdGFnZ2VyKSB8Cj4g LQkJCSAgICAgICBEUElPX0xBTkVTVEFHR0VSX1NUUkFQX09WUkQgfAo+IC0JCQkgICAgICAgRFBJ T19UWDFfU1RBR0dFUl9NQVNLKDB4MWYpIHwKPiAtCQkJICAgICAgIERQSU9fVFgxX1NUQUdHRVJf TVVMVCg3KSB8Cj4gLQkJCSAgICAgICBEUElPX1RYMl9TVEFHR0VSX01VTFQoNSkpOwo+IC0JfQo+ IC0KPiAtCS8qIERlYXNzZXJ0IGRhdGEgbGFuZSByZXNldCAqLwo+IC0JY2h2X2RhdGFfbGFuZV9z b2Z0X3Jlc2V0KGVuY29kZXIsIGZhbHNlKTsKPiAtCj4gLQltdXRleF91bmxvY2soJmRldl9wcml2 LT5zYl9sb2NrKTsKPiArCWNodl9waHlfcHJlX2VuY29kZXJfZW5hYmxlKGVuY29kZXIpOwo+ICAK PiAgCWludGVsX2VuYWJsZV9kcChlbmNvZGVyKTsKPiAgCj4gIAkvKiBTZWNvbmQgY29tbW9uIGxh bmUgd2lsbCBzdGF5IGFsaXZlIG9uIGl0cyBvd24gbm93ICovCj4gLQlpZiAoZHBvcnQtPnJlbGVh c2VfY2wyX292ZXJyaWRlKSB7Cj4gLQkJY2h2X3BoeV9wb3dlcmdhdGVfY2goZGV2X3ByaXYsIERQ SU9fUEhZMCwgRFBJT19DSDEsIGZhbHNlKTsKPiAtCQlkcG9ydC0+cmVsZWFzZV9jbDJfb3ZlcnJp ZGUgPSBmYWxzZTsKPiAtCX0KPiArCWNodl9waHlfcmVsZWFzZV9jbDJfb3ZlcnJpZGUoZW5jb2Rl cik7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIGNodl9kcF9wcmVfcGxsX2VuYWJsZShzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHBpb19waHkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwaW9fcGh5 LmMKPiBpbmRleCBiNGNhM2ZmLi5hZDBlN2JlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RwaW9fcGh5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcGlvX3BoeS5jCj4gQEAgLTI0NCwzICsyNDQsOTUgQEAgdm9pZCBjaHZfcGh5X3ByZV9wbGxf ZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICAKPiAgCW11dGV4X3VubG9j aygmZGV2X3ByaXYtPnNiX2xvY2spOwo+ICB9Cj4gKwo+ICt2b2lkIGNodl9waHlfcHJlX2VuY29k ZXJfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICt7Cj4gKwlzdHJ1Y3Qg aW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsKPiAr CXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRwb3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxf ZHApOwo+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmJhc2UuZGV2Owo+ICsJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAr CXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0KPiArCQl0b19pbnRlbF9jcnRjKGVuY29k ZXItPmJhc2UuY3J0Yyk7Cj4gKwllbnVtIGRwaW9fY2hhbm5lbCBjaCA9IHZsdl9kcG9ydF90b19j aGFubmVsKGRwb3J0KTsKPiArCWludCBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKPiArCWludCBk YXRhLCBpLCBzdGFnZ2VyOwo+ICsJdTMyIHZhbDsKPiArCj4gKwltdXRleF9sb2NrKCZkZXZfcHJp di0+c2JfbG9jayk7Cj4gKwo+ICsJLyogYWxsb3cgaGFyZHdhcmUgdG8gbWFuYWdlIFRYIEZJRk8g cmVzZXQgc291cmNlICovCj4gKwl2YWwgPSB2bHZfZHBpb19yZWFkKGRldl9wcml2LCBwaXBlLCBW TFZfUENTMDFfRFcxMShjaCkpOwo+ICsJdmFsICY9IH5EUElPX0xBTkVERVNLRVdfU1RSQVBfT1ZS RDsKPiArCXZsdl9kcGlvX3dyaXRlKGRldl9wcml2LCBwaXBlLCBWTFZfUENTMDFfRFcxMShjaCks IHZhbCk7Cj4gKwo+ICsJaWYgKGludGVsX2NydGMtPmNvbmZpZy0+bGFuZV9jb3VudCA+IDIpIHsK PiArCQl2YWwgPSB2bHZfZHBpb19yZWFkKGRldl9wcml2LCBwaXBlLCBWTFZfUENTMjNfRFcxMShj aCkpOwo+ICsJCXZhbCAmPSB+RFBJT19MQU5FREVTS0VXX1NUUkFQX09WUkQ7Cj4gKwkJdmx2X2Rw aW9fd3JpdGUoZGV2X3ByaXYsIHBpcGUsIFZMVl9QQ1MyM19EVzExKGNoKSwgdmFsKTsKPiArCX0K PiArCj4gKwkvKiBQcm9ncmFtIFR4IGxhbmUgbGF0ZW5jeSBvcHRpbWFsIHNldHRpbmcqLwo+ICsJ Zm9yIChpID0gMDsgaSA8IGludGVsX2NydGMtPmNvbmZpZy0+bGFuZV9jb3VudDsgaSsrKSB7Cj4g KwkJLyogU2V0IHRoZSB1cGFyIGJpdCAqLwo+ICsJCWlmIChpbnRlbF9jcnRjLT5jb25maWctPmxh bmVfY291bnQgPT0gMSkKPiArCQkJZGF0YSA9IDB4MDsKPiArCQllbHNlCj4gKwkJCWRhdGEgPSAo aSA9PSAxKSA/IDB4MCA6IDB4MTsKPiArCQl2bHZfZHBpb193cml0ZShkZXZfcHJpdiwgcGlwZSwg Q0hWX1RYX0RXMTQoY2gsIGkpLAo+ICsJCQkJZGF0YSA8PCBEUElPX1VQQVJfU0hJRlQpOwo+ICsJ fQo+ICsKPiArCS8qIERhdGEgbGFuZSBzdGFnZ2VyIHByb2dyYW1taW5nICovCj4gKwlpZiAoaW50 ZWxfY3J0Yy0+Y29uZmlnLT5wb3J0X2Nsb2NrID4gMjcwMDAwKQo+ICsJCXN0YWdnZXIgPSAweDE4 Owo+ICsJZWxzZSBpZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5wb3J0X2Nsb2NrID4gMTM1MDAwKQo+ ICsJCXN0YWdnZXIgPSAweGQ7Cj4gKwllbHNlIGlmIChpbnRlbF9jcnRjLT5jb25maWctPnBvcnRf Y2xvY2sgPiA2NzUwMCkKPiArCQlzdGFnZ2VyID0gMHg3Owo+ICsJZWxzZSBpZiAoaW50ZWxfY3J0 Yy0+Y29uZmlnLT5wb3J0X2Nsb2NrID4gMzM3NTApCj4gKwkJc3RhZ2dlciA9IDB4NDsKPiArCWVs c2UKPiArCQlzdGFnZ2VyID0gMHgyOwo+ICsKPiArCXZhbCA9IHZsdl9kcGlvX3JlYWQoZGV2X3By aXYsIHBpcGUsIFZMVl9QQ1MwMV9EVzExKGNoKSk7Cj4gKwl2YWwgfD0gRFBJT19UWDJfU1RBR0dF Ul9NQVNLKDB4MWYpOwo+ICsJdmx2X2RwaW9fd3JpdGUoZGV2X3ByaXYsIHBpcGUsIFZMVl9QQ1Mw MV9EVzExKGNoKSwgdmFsKTsKPiArCj4gKwlpZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5sYW5lX2Nv dW50ID4gMikgewo+ICsJCXZhbCA9IHZsdl9kcGlvX3JlYWQoZGV2X3ByaXYsIHBpcGUsIFZMVl9Q Q1MyM19EVzExKGNoKSk7Cj4gKwkJdmFsIHw9IERQSU9fVFgyX1NUQUdHRVJfTUFTSygweDFmKTsK PiArCQl2bHZfZHBpb193cml0ZShkZXZfcHJpdiwgcGlwZSwgVkxWX1BDUzIzX0RXMTEoY2gpLCB2 YWwpOwo+ICsJfQo+ICsKPiArCXZsdl9kcGlvX3dyaXRlKGRldl9wcml2LCBwaXBlLCBWTFZfUENT MDFfRFcxMihjaCksCj4gKwkJICAgICAgIERQSU9fTEFORVNUQUdHRVJfU1RSQVAoc3RhZ2dlcikg fAo+ICsJCSAgICAgICBEUElPX0xBTkVTVEFHR0VSX1NUUkFQX09WUkQgfAo+ICsJCSAgICAgICBE UElPX1RYMV9TVEFHR0VSX01BU0soMHgxZikgfAo+ICsJCSAgICAgICBEUElPX1RYMV9TVEFHR0VS X01VTFQoNikgfAo+ICsJCSAgICAgICBEUElPX1RYMl9TVEFHR0VSX01VTFQoMCkpOwo+ICsKPiAr CWlmIChpbnRlbF9jcnRjLT5jb25maWctPmxhbmVfY291bnQgPiAyKSB7Cj4gKwkJdmx2X2RwaW9f d3JpdGUoZGV2X3ByaXYsIHBpcGUsIFZMVl9QQ1MyM19EVzEyKGNoKSwKPiArCQkJICAgICAgIERQ SU9fTEFORVNUQUdHRVJfU1RSQVAoc3RhZ2dlcikgfAo+ICsJCQkgICAgICAgRFBJT19MQU5FU1RB R0dFUl9TVFJBUF9PVlJEIHwKPiArCQkJICAgICAgIERQSU9fVFgxX1NUQUdHRVJfTUFTSygweDFm KSB8Cj4gKwkJCSAgICAgICBEUElPX1RYMV9TVEFHR0VSX01VTFQoNykgfAo+ICsJCQkgICAgICAg RFBJT19UWDJfU1RBR0dFUl9NVUxUKDUpKTsKPiArCX0KPiArCj4gKwkvKiBEZWFzc2VydCBkYXRh IGxhbmUgcmVzZXQgKi8KPiArCWNodl9kYXRhX2xhbmVfc29mdF9yZXNldChlbmNvZGVyLCBmYWxz ZSk7Cj4gKwo+ICsJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+c2JfbG9jayk7Cj4gK30KPiArCj4g K3ZvaWQgY2h2X3BoeV9yZWxlYXNlX2NsMl9vdmVycmlkZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlcikKPiArewo+ICsJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZHBvcnQgPSBlbmNf dG9fZGlnX3BvcnQoJmVuY29kZXItPmJhc2UpOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gKwo+ICsJaWYgKGRwb3J0 LT5yZWxlYXNlX2NsMl9vdmVycmlkZSkgewo+ICsJCWNodl9waHlfcG93ZXJnYXRlX2NoKGRldl9w cml2LCBEUElPX1BIWTAsIERQSU9fQ0gxLCBmYWxzZSk7Cj4gKwkJZHBvcnQtPnJlbGVhc2VfY2wy X292ZXJyaWRlID0gZmFsc2U7Cj4gKwl9Cj4gK30KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfaGRtaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5j Cj4gaW5kZXggZTgyZDZlOC4uYjRkYTdlZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9oZG1pLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1p LmMKPiBAQCAtMTczNiw2OCArMTczNiw4IEBAIHN0YXRpYyB2b2lkIGNodl9oZG1pX3ByZV9lbmFi bGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gIAlzdHJ1Y3QgaW50ZWxfY3J0YyAq aW50ZWxfY3J0YyA9Cj4gIAkJdG9faW50ZWxfY3J0YyhlbmNvZGVyLT5iYXNlLmNydGMpOwo+ICAJ Y29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmaW50ZWxfY3J0 Yy0+Y29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7Cj4gLQllbnVtIGRwaW9fY2hhbm5lbCBjaCA9 IHZsdl9kcG9ydF90b19jaGFubmVsKGRwb3J0KTsKPiAtCWludCBwaXBlID0gaW50ZWxfY3J0Yy0+ cGlwZTsKPiAtCWludCBkYXRhLCBpLCBzdGFnZ2VyOwo+IC0JdTMyIHZhbDsKPiAtCj4gLQltdXRl eF9sb2NrKCZkZXZfcHJpdi0+c2JfbG9jayk7Cj4gLQo+IC0JLyogYWxsb3cgaGFyZHdhcmUgdG8g bWFuYWdlIFRYIEZJRk8gcmVzZXQgc291cmNlICovCj4gLQl2YWwgPSB2bHZfZHBpb19yZWFkKGRl dl9wcml2LCBwaXBlLCBWTFZfUENTMDFfRFcxMShjaCkpOwo+IC0JdmFsICY9IH5EUElPX0xBTkVE RVNLRVdfU1RSQVBfT1ZSRDsKPiAtCXZsdl9kcGlvX3dyaXRlKGRldl9wcml2LCBwaXBlLCBWTFZf UENTMDFfRFcxMShjaCksIHZhbCk7Cj4gLQo+IC0JdmFsID0gdmx2X2RwaW9fcmVhZChkZXZfcHJp diwgcGlwZSwgVkxWX1BDUzIzX0RXMTEoY2gpKTsKPiAtCXZhbCAmPSB+RFBJT19MQU5FREVTS0VX X1NUUkFQX09WUkQ7Cj4gLQl2bHZfZHBpb193cml0ZShkZXZfcHJpdiwgcGlwZSwgVkxWX1BDUzIz X0RXMTEoY2gpLCB2YWwpOwo+IC0KPiAtCS8qIFByb2dyYW0gVHggbGF0ZW5jeSBvcHRpbWFsIHNl dHRpbmcgKi8KPiAtCWZvciAoaSA9IDA7IGkgPCA0OyBpKyspIHsKPiAtCQkvKiBTZXQgdGhlIHVw YXIgYml0ICovCj4gLQkJZGF0YSA9IChpID09IDEpID8gMHgwIDogMHgxOwo+IC0JCXZsdl9kcGlv X3dyaXRlKGRldl9wcml2LCBwaXBlLCBDSFZfVFhfRFcxNChjaCwgaSksCj4gLQkJCQlkYXRhIDw8 IERQSU9fVVBBUl9TSElGVCk7Cj4gLQl9Cj4gLQo+IC0JLyogRGF0YSBsYW5lIHN0YWdnZXIgcHJv Z3JhbW1pbmcgKi8KPiAtCWlmIChpbnRlbF9jcnRjLT5jb25maWctPnBvcnRfY2xvY2sgPiAyNzAw MDApCj4gLQkJc3RhZ2dlciA9IDB4MTg7Cj4gLQllbHNlIGlmIChpbnRlbF9jcnRjLT5jb25maWct PnBvcnRfY2xvY2sgPiAxMzUwMDApCj4gLQkJc3RhZ2dlciA9IDB4ZDsKPiAtCWVsc2UgaWYgKGlu dGVsX2NydGMtPmNvbmZpZy0+cG9ydF9jbG9jayA+IDY3NTAwKQo+IC0JCXN0YWdnZXIgPSAweDc7 Cj4gLQllbHNlIGlmIChpbnRlbF9jcnRjLT5jb25maWctPnBvcnRfY2xvY2sgPiAzMzc1MCkKPiAt CQlzdGFnZ2VyID0gMHg0Owo+IC0JZWxzZQo+IC0JCXN0YWdnZXIgPSAweDI7Cj4gIAo+IC0JdmFs ID0gdmx2X2RwaW9fcmVhZChkZXZfcHJpdiwgcGlwZSwgVkxWX1BDUzAxX0RXMTEoY2gpKTsKPiAt CXZhbCB8PSBEUElPX1RYMl9TVEFHR0VSX01BU0soMHgxZik7Cj4gLQl2bHZfZHBpb193cml0ZShk ZXZfcHJpdiwgcGlwZSwgVkxWX1BDUzAxX0RXMTEoY2gpLCB2YWwpOwo+IC0KPiAtCXZhbCA9IHZs dl9kcGlvX3JlYWQoZGV2X3ByaXYsIHBpcGUsIFZMVl9QQ1MyM19EVzExKGNoKSk7Cj4gLQl2YWwg fD0gRFBJT19UWDJfU1RBR0dFUl9NQVNLKDB4MWYpOwo+IC0Jdmx2X2RwaW9fd3JpdGUoZGV2X3By aXYsIHBpcGUsIFZMVl9QQ1MyM19EVzExKGNoKSwgdmFsKTsKPiAtCj4gLQl2bHZfZHBpb193cml0 ZShkZXZfcHJpdiwgcGlwZSwgVkxWX1BDUzAxX0RXMTIoY2gpLAo+IC0JCSAgICAgICBEUElPX0xB TkVTVEFHR0VSX1NUUkFQKHN0YWdnZXIpIHwKPiAtCQkgICAgICAgRFBJT19MQU5FU1RBR0dFUl9T VFJBUF9PVlJEIHwKPiAtCQkgICAgICAgRFBJT19UWDFfU1RBR0dFUl9NQVNLKDB4MWYpIHwKPiAt CQkgICAgICAgRFBJT19UWDFfU1RBR0dFUl9NVUxUKDYpIHwKPiAtCQkgICAgICAgRFBJT19UWDJf U1RBR0dFUl9NVUxUKDApKTsKPiAtCj4gLQl2bHZfZHBpb193cml0ZShkZXZfcHJpdiwgcGlwZSwg VkxWX1BDUzIzX0RXMTIoY2gpLAo+IC0JCSAgICAgICBEUElPX0xBTkVTVEFHR0VSX1NUUkFQKHN0 YWdnZXIpIHwKPiAtCQkgICAgICAgRFBJT19MQU5FU1RBR0dFUl9TVFJBUF9PVlJEIHwKPiAtCQkg ICAgICAgRFBJT19UWDFfU1RBR0dFUl9NQVNLKDB4MWYpIHwKPiAtCQkgICAgICAgRFBJT19UWDFf U1RBR0dFUl9NVUxUKDcpIHwKPiAtCQkgICAgICAgRFBJT19UWDJfU1RBR0dFUl9NVUxUKDUpKTsK PiAtCj4gLQkvKiBEZWFzc2VydCBkYXRhIGxhbmUgcmVzZXQgKi8KPiAtCWNodl9kYXRhX2xhbmVf c29mdF9yZXNldChlbmNvZGVyLCBmYWxzZSk7Cj4gLQo+IC0JbXV0ZXhfdW5sb2NrKCZkZXZfcHJp di0+c2JfbG9jayk7Cj4gKwljaHZfcGh5X3ByZV9lbmNvZGVyX2VuYWJsZShlbmNvZGVyKTsKPiAg Cj4gIAkvKiBGSVhNRTogUHJvZ3JhbSB0aGUgc3VwcG9ydCB4eHggVi1kQiAqLwo+ICAJLyogVXNl IDgwMG1WLTBkQiAqLwo+IEBAIC0xODEyLDEwICsxNzUyLDcgQEAgc3RhdGljIHZvaWQgY2h2X2hk bWlfcHJlX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAgCXZsdl93YWl0 X3BvcnRfcmVhZHkoZGV2X3ByaXYsIGRwb3J0LCAweDApOwo+ICAKPiAgCS8qIFNlY29uZCBjb21t b24gbGFuZSB3aWxsIHN0YXkgYWxpdmUgb24gaXRzIG93biBub3cgKi8KPiAtCWlmIChkcG9ydC0+ cmVsZWFzZV9jbDJfb3ZlcnJpZGUpIHsKPiAtCQljaHZfcGh5X3Bvd2VyZ2F0ZV9jaChkZXZfcHJp diwgRFBJT19QSFkwLCBEUElPX0NIMSwgZmFsc2UpOwo+IC0JCWRwb3J0LT5yZWxlYXNlX2NsMl9v dmVycmlkZSA9IGZhbHNlOwo+IC0JfQo+ICsJY2h2X3BoeV9yZWxlYXNlX2NsMl9vdmVycmlkZShl bmNvZGVyKTsKPiAgfQo+ICAKPiAgc3RhdGljIHZvaWQgaW50ZWxfaGRtaV9kZXN0cm95KHN0cnVj dCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4gLS0gCj4gMi40LjExCj4gCj4gX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZnggbWFpbGlu ZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QK SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=