From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 09/13] drm/i915: Track pipe gamma enable/disable in crtc state Date: Thu, 17 Jan 2019 16:57:59 +0200 Message-ID: <20190117145759.GC20097@intel.com> References: <20190111170823.4441-1-ville.syrjala@linux.intel.com> <20190111170823.4441-10-ville.syrjala@linux.intel.com> <20190116193630.GJ4563@mdroper-desk.amr.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 20F086E3BB for ; Thu, 17 Jan 2019 14:58:03 +0000 (UTC) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Shankar, Uma" Cc: "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBKYW4gMTcsIDIwMTkgYXQgMDU6MTQ6MDZBTSArMDAwMCwgU2hhbmthciwgVW1hIHdy b3RlOgo+IAo+IAo+ID4tLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+ID5Gcm9tOiBSb3Blciwg TWF0dGhldyBECj4gPlNlbnQ6IFRodXJzZGF5LCBKYW51YXJ5IDE3LCAyMDE5IDE6MDcgQU0KPiA+ VG86IFZpbGxlIFN5cmphbGEgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ID5DYzog aW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZzsgU2hhbmthciwgVW1hIDx1bWEuc2hhbmth ckBpbnRlbC5jb20+Cj4gPlN1YmplY3Q6IFJlOiBbUEFUQ0ggMDkvMTNdIGRybS9pOTE1OiBUcmFj ayBwaXBlIGdhbW1hIGVuYWJsZS9kaXNhYmxlIGluIGNydGMKPiA+c3RhdGUKPiA+Cj4gPk9uIEZy aSwgSmFuIDExLCAyMDE5IGF0IDA3OjA4OjE5UE0gKzAyMDAsIFZpbGxlIFN5cmphbGEgd3JvdGU6 Cj4gPj4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNv bT4KPiA+Pgo+ID4+IFRyYWNrIHdoZXRoZXIgcGlwZSBnYW1tYSBpcyBlbmFibGVkIG9yIGRpc2Fi bGVkLiBGb3Igbm93IHdlIHN0aWNrIHRvCj4gPj4gdGhlIGN1cnJlbnQgYmVoYXZpb3VyIG9mIGFs d2F5cyBlbmFibGluZyBnYW1tYS4gQnV0IHdlIGRvIGdldCB3b3JraW5nCj4gPj4gc3RhdGUgcmVh ZG91dCBmb3IgdGhpcyBub3cuIE9uIFNLTCsgd2UgdXNlIHRoZSBwaXBlIGJvdHRvbSBjb2xvciBh cwo+ID4+IG91ciBoYXJkd2FyZSBzdGF0ZS4gT24gcHJlLVNLTCB3ZSByZWFkIHRoZSBzdGF0ZSBi YWNrIGZyb20gdGhlIHByaW1hcnkKPiA+PiBwbGFuZSBjb250cm9sIHJlZ2lzdGVyLgo+ID4+IFRo YXQgb25seSByZWFsbHkgY29ycmVjdCBmb3IgZzR4KywgYXMgb2xkZXIgcGxhdGZvcm1zIG5ldmVy IGdhbW1hCj4gPj4gY29ycmVjdCBwaXBlIGJvdHRvbSBjb2xvci4gQnV0IGRvaW5nIHRoZSByZWFk b3V0IHRoZSBzYW1lIHdheSBvbiBhbGwKPiA+PiBwbGF0Zm9ybXMgaXMgZmluZSwgYW5kIHRoZXJl IGlzIG5vIG90aGVyIHdheSB0byBkbyBpdCByZWFsbHkuCj4gPj4KPiA+PiBTaWduZWQtb2ZmLWJ5 OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ID4KPiA+ UmV2aWV3ZWQtYnk6IE1hdHQgUm9wZXIgPG1hdHRoZXcuZC5yb3BlckBpbnRlbC5jb20+Cj4gPgo+ ID4+IC0tLQo+ID4+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICAgICAgfCAgOCAr KysrCj4gPj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmMgICB8IDI0ICsrKysr KysrKysrLQo+ID4+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCA1NiAr KysrKysrKysrKysrKysrKysrKysrLS0tLS0tCj4gPj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oICAgICB8ICAzICsrCj4gPj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nw cml0ZS5jICB8IDE3ICsrKysrKystLQo+ID4+ICA1IGZpbGVzIGNoYW5nZWQsIDkyIGluc2VydGlv bnMoKyksIDE2IGRlbGV0aW9ucygtKQo+ID4+Cj4gPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfcmVnLmgKPiA+PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVn LmggaW5kZXggOWQxN2JhMTk5YmU0Li43ZjA5MTNiYzFiNDcKPiA+PiAxMDA2NDQKPiA+PiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gPj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9yZWcuaAo+ID4+IEBAIC01NzA3LDYgKzU3MDcsMTQgQEAgZW51bSB7Cj4g Pj4gICNkZWZpbmUgICBQSVBFTUlTQ19ESVRIRVJfVFlQRV9TUAkoMCA8PCAyKQo+ID4+ICAjZGVm aW5lIFBJUEVNSVNDKHBpcGUpCQkJX01NSU9fUElQRTIocGlwZSwKPiA+X1BJUEVfTUlTQ19BKQo+ ID4+Cj4gPj4gKy8qIFNLTCsgcGlwZSBib3R0b20gY29sb3IgKi8KPiA+PiArI2RlZmluZSBfUElQ RV9CT1RUT01fQ09MT1JfQQkJMHg3MDAzNAo+ID4+ICsjZGVmaW5lIF9QSVBFX0JPVFRPTV9DT0xP Ul9CCQkweDcxMDM0Cj4gPj4gKyNkZWZpbmUgICBQSVBFX0JPVFRPTV9HQU1NQV9FTkFCTEUJKDEg PDwgMzEpCj4gPj4gKyNkZWZpbmUgICBQSVBFX0JPVFRPTV9DU0NfRU5BQkxFCSgxIDw8IDMwKQo+ ID4+ICsjZGVmaW5lICAgUElQRV9CT1RUT01fQ09MT1JfTUFTSwkweDNGRkZGRkZGCj4gPj4gKyNk ZWZpbmUgUElQRV9CT1RUT01fQ09MT1IocGlwZSkJCV9NTUlPX1BJUEUyKHBpcGUsCj4gPl9QSVBF X0JPVFRPTV9DT0xPUl9BKQo+ID4+ICsKPiA+PiAgI2RlZmluZSBWTFZfRFBGTElQU1RBVAo+ID4J X01NSU8oVkxWX0RJU1BMQVlfQkFTRSArIDB4NzAwMjgpCj4gPj4gICNkZWZpbmUgICBQSVBFQl9M SU5FX0NPTVBBUkVfSU5UX0VOCQkoMSA8PCAyOSkKPiA+PiAgI2RlZmluZSAgIFBJUEVCX0hMSU5F X0lOVF9FTgkJCSgxIDw8IDI4KQo+ID4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9jb2xvci5jCj4gPj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xvci5j Cj4gPj4gaW5kZXggNmZkYmZhOGM0MDA4Li4zMTNiMjgxMjA0ZmEgMTAwNjQ0Cj4gPj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3IuYwo+ID4+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2NvbG9yLmMKPiA+PiBAQCAtMzg3LDYgKzM4NywyNCBAQCBzdGF0aWMg dm9pZCBoc3dfY29sb3JfY29tbWl0KGNvbnN0IHN0cnVjdAo+ID5pbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlKQo+ID4+ICAJaWxrX2xvYWRfY3NjX21hdHJpeChjcnRjX3N0YXRlKTsKPiA+PiAg fQo+ID4+Cj4gPj4gK3N0YXRpYyB2b2lkIHNrbF9jb2xvcl9jb21taXQoY29uc3Qgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUKPiA+PiArKmNydGNfc3RhdGUpIHsKPiA+PiArCXN0cnVjdCBpbnRlbF9j cnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ID4+ICsJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRl dik7Cj4gPj4gKwllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7Cj4gPj4gKwl1MzIgdmFsOwo+ ID4+ICsKPiA+PiArCXZhbCA9IDA7Cj4gCj4gV2UgY2FuIGluaXRpYWxpemUgdGhpcyBhYm92ZSBp dHNlbGYuCgpBY2suCgo+IAo+ID4+ICsJaWYgKGNydGNfc3RhdGUtPmdhbW1hX2VuYWJsZSkKPiA+ PiArCQl2YWwgfD0gUElQRV9CT1RUT01fR0FNTUFfRU5BQkxFOwo+ID4+ICsJdmFsIHw9IFBJUEVf Qk9UVE9NX0NTQ19FTkFCTEU7Cj4gPj4gKwlJOTE1X1dSSVRFKFBJUEVfQk9UVE9NX0NPTE9SKHBp cGUpLCB2YWwpOwo+ID4+ICsKPiA+PiArCUk5MTVfV1JJVEUoR0FNTUFfTU9ERShjcnRjLT5waXBl KSwgY3J0Y19zdGF0ZS0+Z2FtbWFfbW9kZSk7Cj4gPj4gKwo+ID4+ICsJaWxrX2xvYWRfY3NjX21h dHJpeChjcnRjX3N0YXRlKTsKPiA+PiArfQo+ID4+ICsKPiA+PiAgc3RhdGljIHZvaWQgYmR3X2xv YWRfZGVnYW1tYV9sdXQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUKPiA+PiAqY3J0Y19z dGF0ZSkgIHsKPiA+PiAgCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0Yyhj cnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ID4+IEBAIC02MjQsNiArNjQyLDggQEAgaW50IGludGVs X2NvbG9yX2NoZWNrKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlCj4gPipjcnRjX3N0YXRlKQo+ID4+ ICAJZGVnYW1tYV9sZW5ndGggPSBJTlRFTF9JTkZPKGRldl9wcml2KS0+Y29sb3IuZGVnYW1tYV9s dXRfc2l6ZTsKPiA+PiAgCWdhbW1hX2xlbmd0aCA9IElOVEVMX0lORk8oZGV2X3ByaXYpLT5jb2xv ci5nYW1tYV9sdXRfc2l6ZTsKPiA+Pgo+ID4+ICsJY3J0Y19zdGF0ZS0+Z2FtbWFfZW5hYmxlID0g dHJ1ZTsKPiA+PiArCj4gPj4gIAkvKgo+ID4+ICAJICogV2UgYWxzbyBhbGxvdyBubyBkZWdhbW1h IGx1dC9jdG0gYW5kIGEgZ2FtbWEgbHV0IGF0IHRoZSBsZWdhY3kKPiA+PiAgCSAqIHNpemUgKDI1 NiBlbnRyaWVzKS4KPiA+PiBAQCAtNjc0LDcgKzY5NCw5IEBAIHZvaWQgaW50ZWxfY29sb3JfaW5p dChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKPiA+PiAgCQllbHNlCj4gPj4gIAkJCWRldl9wcml2 LT5kaXNwbGF5LmxvYWRfbHV0cyA9IGk5eHhfbG9hZF9sdXRzOwo+ID4+Cj4gPj4gLQkJaWYgKElO VEVMX0dFTihkZXZfcHJpdikgPj0gOCB8fCBJU19IQVNXRUxMKGRldl9wcml2KSkKPiA+PiArCQlp ZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5KQo+ID4+ICsJCQlkZXZfcHJpdi0+ZGlzcGxheS5j b2xvcl9jb21taXQgPSBza2xfY29sb3JfY29tbWl0Owo+ID4+ICsJCWVsc2UgaWYgKElTX0JST0FE V0VMTChkZXZfcHJpdikgfHwgSVNfSEFTV0VMTChkZXZfcHJpdikpCj4gPj4gIAkJCWRldl9wcml2 LT5kaXNwbGF5LmNvbG9yX2NvbW1pdCA9IGhzd19jb2xvcl9jb21taXQ7Cj4gPj4gIAkJZWxzZQo+ ID4+ICAJCQlkZXZfcHJpdi0+ZGlzcGxheS5jb2xvcl9jb21taXQgPSBpbGtfY29sb3JfY29tbWl0 OyBkaWZmCj4gPi0tZ2l0Cj4gPj4gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMKPiA+PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4+IGluZGV4 IDkwYWZjYWU5MWIzMC4uODk2Y2U5NTc5MGNiIDEwMDY0NAo+ID4+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYwo+ID4+IEBAIC0zMTg2LDcgKzMxODYsOCBAQCBzdGF0aWMgdTMyIGk5 eHhfcGxhbmVfY3RsX2NydGMoY29uc3Qgc3RydWN0Cj4gPmludGVsX2NydGNfc3RhdGUgKmNydGNf c3RhdGUpCj4gPj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGNydGMtPmJhc2UuZGV2KTsKPiA+PiAgCXUzMiBkc3BjbnRyID0gMDsKPiA+Pgo+ID4+IC0JZHNw Y250ciB8PSBESVNQUExBTkVfR0FNTUFfRU5BQkxFOwo+ID4+ICsJaWYgKGNydGNfc3RhdGUtPmdh bW1hX2VuYWJsZSkKPiA+PiArCQlkc3BjbnRyIHw9IERJU1BQTEFORV9HQU1NQV9FTkFCTEU7Cj4g Pj4KPiA+PiAgCWlmIChJU19IQVNXRUxMKGRldl9wcml2KSB8fCBJU19CUk9BRFdFTEwoZGV2X3By aXYpKQo+ID4+ICAJCWRzcGNudHIgfD0gRElTUFBMQU5FX1BJUEVfQ1NDX0VOQUJMRTsgQEAgLTM2 NjQsNyArMzY2NSw5Cj4gPkBAIHUzMgo+ID4+IHNrbF9wbGFuZV9jdGxfY3J0Yyhjb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiA+PiAgCWlmIChJTlRFTF9HRU4oZGV2 X3ByaXYpID49IDEwIHx8IElTX0dFTUlOSUxBS0UoZGV2X3ByaXYpKQo+ID4+ICAJCXJldHVybiBw bGFuZV9jdGw7Cj4gPj4KPiA+PiAtCXBsYW5lX2N0bCB8PSBQTEFORV9DVExfUElQRV9HQU1NQV9F TkFCTEU7Cj4gPj4gKwlpZiAoY3J0Y19zdGF0ZS0+Z2FtbWFfZW5hYmxlKQo+ID4+ICsJCXBsYW5l X2N0bCB8PSBQTEFORV9DVExfUElQRV9HQU1NQV9FTkFCTEU7Cj4gPj4gKwo+ID4+ICAJcGxhbmVf Y3RsIHw9IFBMQU5FX0NUTF9QSVBFX0NTQ19FTkFCTEU7Cj4gPj4KPiA+PiAgCXJldHVybiBwbGFu ZV9jdGw7Cj4gPj4gQEAgLTM3MTcsNyArMzcyMCw5IEBAIHUzMiBnbGtfcGxhbmVfY29sb3JfY3Rs X2NydGMoY29uc3Qgc3RydWN0Cj4gPmludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gPj4g IAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMSkKPiA+PiAgCQlyZXR1cm4gcGxhbmVfY29s b3JfY3RsOwo+ID4+Cj4gPj4gLQlwbGFuZV9jb2xvcl9jdGwgfD0gUExBTkVfQ09MT1JfUElQRV9H QU1NQV9FTkFCTEU7Cj4gPj4gKwlpZiAoY3J0Y19zdGF0ZS0+Z2FtbWFfZW5hYmxlKQo+ID4+ICsJ CXBsYW5lX2NvbG9yX2N0bCB8PSBQTEFORV9DT0xPUl9QSVBFX0dBTU1BX0VOQUJMRTsKPiA+PiAr Cj4gPj4gIAlwbGFuZV9jb2xvcl9jdGwgfD0gUExBTkVfQ09MT1JfUElQRV9DU0NfRU5BQkxFOwo+ ID4+Cj4gPj4gIAlyZXR1cm4gcGxhbmVfY29sb3JfY3RsOwo+ID4+IEBAIC0zOTI1LDcgKzM5MzAs NiBAQCBzdGF0aWMgdm9pZCBpbnRlbF91cGRhdGVfcGlwZV9jb25maWcoY29uc3Qgc3RydWN0Cj4g PmludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YQo+ID4+ICAJCSAgICgobmV3X2NydGNfc3Rh dGUtPnBpcGVfc3JjX3cgLSAxKSA8PCAxNikgfAo+ID4+ICAJCSAgIChuZXdfY3J0Y19zdGF0ZS0+ cGlwZV9zcmNfaCAtIDEpKTsKPiA+Pgo+ID4+IC0JLyogb24gc2t5bGFrZSB0aGlzIGlzIGRvbmUg YnkgZGV0YWNoaW5nIHNjYWxlcnMgKi8KPiAKPiBJcyB0aGlzIGludGVudGlvbmFsID8gU2VlbXMg dW5yZWxhdGVkIHRvIHRoZSBwYXRjaC4KClNvbWUgcmFuZG9tIHJlYmFzZSBmYWlsIHByb2JhYmx5 LgoKPiAKPiBXaXRoIHRoZSBhYm92ZSBtaW5vciBuaXRzIGZpeGVkOgo+IFJldmlld2VkLWJ5OiBV bWEgU2hhbmthciA8dW1hLnNoYW5rYXJAaW50ZWwuY29tPgo+IAo+ID4+ICAJaWYgKElOVEVMX0dF TihkZXZfcHJpdikgPj0gOSkgewo+ID4+ICAJCXNrbF9kZXRhY2hfc2NhbGVycyhuZXdfY3J0Y19z dGF0ZSk7Cj4gPj4KPiA+PiBAQCAtODAzNiw2ICs4MDQwLDIwIEBAIHN0YXRpYyB2b2lkIGludGVs X2dldF9jcnRjX3ljYmNyX2NvbmZpZyhzdHJ1Y3QKPiA+aW50ZWxfY3J0YyAqY3J0YywKPiA+PiAg CXBpcGVfY29uZmlnLT5vdXRwdXRfZm9ybWF0ID0gb3V0cHV0OyAgfQo+ID4+Cj4gPj4gK3N0YXRp YyB2b2lkIGk5eHhfZ2V0X3BpcGVfY29sb3JfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl Cj4gPj4gKypjcnRjX3N0YXRlKSB7Cj4gPj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRv X2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiA+PiArCXN0cnVjdCBpbnRlbF9w bGFuZSAqcGxhbmUgPSB0b19pbnRlbF9wbGFuZShjcnRjLT5iYXNlLnByaW1hcnkpOwo+ID4+ICsJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRl dik7Cj4gPj4gKwllbnVtIGk5eHhfcGxhbmVfaWQgaTl4eF9wbGFuZSA9IHBsYW5lLT5pOXh4X3Bs YW5lOwo+ID4+ICsJdTMyIHRtcDsKPiA+PiArCj4gPj4gKwl0bXAgPSBJOTE1X1JFQUQoRFNQQ05U UihpOXh4X3BsYW5lKSk7Cj4gPj4gKwo+ID4+ICsJaWYgKHRtcCAmIERJU1BQTEFORV9HQU1NQV9F TkFCTEUpCj4gPj4gKwkJY3J0Y19zdGF0ZS0+Z2FtbWFfZW5hYmxlID0gdHJ1ZTsKPiA+PiArfQo+ ID4+ICsKPiA+PiAgc3RhdGljIGJvb2wgaTl4eF9nZXRfcGlwZV9jb25maWcoc3RydWN0IGludGVs X2NydGMgKmNydGMsCj4gPj4gIAkJCQkgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29u ZmlnKSAgeyBAQCAtCj4gPjgwODIsNiArODEwMCw4IEBACj4gPj4gc3RhdGljIGJvb2wgaTl4eF9n ZXRfcGlwZV9jb25maWcoc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gPj4gIAlwaXBlX2NvbmZp Zy0+Z2FtbWFfbW9kZSA9ICh0bXAgJgo+ID5QSVBFQ09ORl9HQU1NQV9NT0RFX01BU0tfSTlYWCkg Pj4KPiA+PiAgCQlQSVBFQ09ORl9HQU1NQV9NT0RFX1NISUZUOwo+ID4+Cj4gPj4gKwlpOXh4X2dl dF9waXBlX2NvbG9yX2NvbmZpZyhwaXBlX2NvbmZpZyk7Cj4gPj4gKwo+ID4+ICAJaWYgKElOVEVM X0dFTihkZXZfcHJpdikgPCA0KQo+ID4+ICAJCXBpcGVfY29uZmlnLT5kb3VibGVfd2lkZSA9IHRt cCAmIFBJUEVDT05GX0RPVUJMRV9XSURFOwo+ID4+Cj4gPj4gQEAgLTkxNTcsNiArOTE3Nyw4IEBA IHN0YXRpYyBib29sIGlyb25sYWtlX2dldF9waXBlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0Ywo+ ID4qY3J0YywKPiA+PiAgCXBpcGVfY29uZmlnLT5nYW1tYV9tb2RlID0gKHRtcCAmCj4gPlBJUEVD T05GX0dBTU1BX01PREVfTUFTS19JTEspID4+Cj4gPj4gIAkJUElQRUNPTkZfR0FNTUFfTU9ERV9T SElGVDsKPiA+Pgo+ID4+ICsJaTl4eF9nZXRfcGlwZV9jb2xvcl9jb25maWcocGlwZV9jb25maWcp Owo+ID4+ICsKPiA+PiAgCWlmIChJOTE1X1JFQUQoUENIX1RSQU5TQ09ORihjcnRjLT5waXBlKSkg JiBUUkFOU19FTkFCTEUpIHsKPiA+PiAgCQlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbDsK PiA+PiAgCQllbnVtIGludGVsX2RwbGxfaWQgcGxsX2lkOwo+ID4+IEBAIC05Nzg1LDYgKzk4MDcs MTUgQEAgc3RhdGljIGJvb2wgaGFzd2VsbF9nZXRfcGlwZV9jb25maWcoc3RydWN0Cj4gPmludGVs X2NydGMgKmNydGMsCj4gPj4gIAlwaXBlX2NvbmZpZy0+Z2FtbWFfbW9kZSA9Cj4gPj4gIAkJSTkx NV9SRUFEKEdBTU1BX01PREUoY3J0Yy0+cGlwZSkpICYKPiA+R0FNTUFfTU9ERV9NT0RFX01BU0s7 Cj4gPj4KPiA+PiArCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkpIHsKPiA+PiArCQl1MzIg dG1wID0gSTkxNV9SRUFEKFBJUEVfQk9UVE9NX0NPTE9SKGNydGMtPnBpcGUpKTsKPiA+PiArCj4g Pj4gKwkJaWYgKHRtcCAmIFBJUEVfQk9UVE9NX0dBTU1BX0VOQUJMRSkKPiA+PiArCQkJcGlwZV9j b25maWctPmdhbW1hX2VuYWJsZSA9IHRydWU7Cj4gPj4gKwl9IGVsc2Ugewo+ID4+ICsJCWk5eHhf Z2V0X3BpcGVfY29sb3JfY29uZmlnKHBpcGVfY29uZmlnKTsKPiA+PiArCX0KPiA+PiArCj4gPj4g IAlwb3dlcl9kb21haW4gPSBQT1dFUl9ET01BSU5fUElQRV9QQU5FTF9GSVRURVIoY3J0Yy0+cGlw ZSk7Cj4gPj4gIAlpZiAoaW50ZWxfZGlzcGxheV9wb3dlcl9nZXRfaWZfZW5hYmxlZChkZXZfcHJp diwgcG93ZXJfZG9tYWluKSkgewo+ID4+ICAJCXBvd2VyX2RvbWFpbl9tYXNrIHw9IEJJVF9VTEwo cG93ZXJfZG9tYWluKTsgQEAgLTk5NTMsNwo+ID4rOTk4NCwxMiBAQAo+ID4+IGk4NDVfY3Vyc29y X21heF9zdHJpZGUoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwKPiA+Pgo+ID4+ICBzdGF0aWMg dTMyIGk4NDVfY3Vyc29yX2N0bF9jcnRjKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlCj4g Pj4gKmNydGNfc3RhdGUpICB7Cj4gPj4gLQlyZXR1cm4gQ1VSU09SX0dBTU1BX0VOQUJMRTsKPiA+ PiArCXUzMiBjbnRsID0gMDsKPiA+PiArCj4gPj4gKwlpZiAoY3J0Y19zdGF0ZS0+Z2FtbWFfZW5h YmxlKQo+ID4+ICsJCWNudGwgfD0gQ1VSU09SX0dBTU1BX0VOQUJMRTsKPiA+PiArCj4gPj4gKwly ZXR1cm4gY250bDsKPiA+PiAgfQo+ID4+Cj4gPj4gIHN0YXRpYyB1MzIgaTg0NV9jdXJzb3JfY3Rs KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ID4+IEBAIC0xMDEw NSw3ICsxMDE0MSw4IEBAIHN0YXRpYyB1MzIgaTl4eF9jdXJzb3JfY3RsX2NydGMoY29uc3Qgc3Ry dWN0Cj4gPmludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gPj4gIAlpZiAoSU5URUxfR0VO KGRldl9wcml2KSA+PSAxMSkKPiA+PiAgCQlyZXR1cm4gY250bDsKPiA+Pgo+ID4+IC0JY250bCB8 PSBNQ1VSU09SX0dBTU1BX0VOQUJMRTsKPiA+PiArCWlmIChjcnRjX3N0YXRlLT5nYW1tYV9lbmFi bGUpCj4gPj4gKwkJY250bCA9IE1DVVJTT1JfR0FNTUFfRU5BQkxFOwo+ID4+Cj4gPj4gIAlpZiAo SEFTX0RESShkZXZfcHJpdikpCj4gPj4gIAkJY250bCB8PSBNQ1VSU09SX1BJUEVfQ1NDX0VOQUJM RTsKPiA+PiBAQCAtMTEwOTQsMTIgKzExMTMxLDYgQEAgc3RhdGljIGludCBpbnRlbF9jcnRjX2F0 b21pY19jaGVjayhzdHJ1Y3QKPiA+ZHJtX2NydGMgKmNydGMsCj4gPj4gIAkJcmV0ID0gaW50ZWxf Y29sb3JfY2hlY2socGlwZV9jb25maWcpOwo+ID4+ICAJCWlmIChyZXQpCj4gPj4gIAkJCXJldHVy biByZXQ7Cj4gPj4gLQo+ID4+IC0JCS8qCj4gPj4gLQkJICogQ2hhbmdpbmcgY29sb3IgbWFuYWdl bWVudCBvbiBJbnRlbCBoYXJkd2FyZSBpcwo+ID4+IC0JCSAqIGhhbmRsZWQgYXMgcGFydCBvZiBw bGFuZXMgdXBkYXRlLgo+ID4+IC0JCSAqLwo+ID4+IC0JCWNydGNfc3RhdGUtPnBsYW5lc19jaGFu Z2VkID0gdHJ1ZTsKPiA+PiAgCX0KPiA+Pgo+ID4+ICAJcmV0ID0gMDsKPiA+PiBAQCAtMTE5ODgs NiArMTIwMTksNyBAQCBpbnRlbF9waXBlX2NvbmZpZ19jb21wYXJlKHN0cnVjdAo+ID5kcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKPiA+PiAgCVBJUEVfQ09ORl9DSEVDS19CT09MKGRvdWJsZV93 aWRlKTsKPiA+Pgo+ID4+ICAJUElQRV9DT05GX0NIRUNLX1goZ2FtbWFfbW9kZSk7Cj4gPj4gKwlQ SVBFX0NPTkZfQ0hFQ0tfQk9PTChnYW1tYV9lbmFibGUpOwo+ID4+Cj4gPj4gIAlQSVBFX0NPTkZf Q0hFQ0tfUChzaGFyZWRfZHBsbCk7Cj4gPj4gIAlQSVBFX0NPTkZfQ0hFQ0tfWChkcGxsX2h3X3N0 YXRlLmRwbGwpOwo+ID4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaAo+ID4+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+PiBpbmRleCA1 OWY4ZDQyNzBlODIuLmVlZTczNGI0ODkxOSAxMDA2NDQKPiA+PiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oCj4gPj4gQEAgLTk0Niw2ICs5NDYsOSBAQCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSB7 Cj4gPj4gIAkvKiBPdXRwdXQgZG93biBzY2FsaW5nIGlzIGRvbmUgaW4gTFNQQ09OIGRldmljZSAq Lwo+ID4+ICAJYm9vbCBsc3Bjb25fZG93bnNhbXBsaW5nOwo+ID4+Cj4gPj4gKwkvKiBlbmFibGUg cGlwZSBnYW1tYT8gKi8KPiA+PiArCWJvb2wgZ2FtbWFfZW5hYmxlOwo+ID4+ICsKPiA+PiAgCS8q IERpc3BsYXkgU3RyZWFtIGNvbXByZXNzaW9uIHN0YXRlICovCj4gPj4gIAlzdHJ1Y3Qgewo+ID4+ ICAJCWJvb2wgY29tcHJlc3Npb25fZW5hYmxlOwo+ID4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+ID4+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfc3ByaXRlLmMKPiA+PiBpbmRleCBhNDVlZjk4YjJmOGQuLjAzNGEzNTU2OTJkYiAxMDA2NDQK PiA+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+ID4+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCj4gPj4gQEAgLTczOSw3ICs3Mzks MTIgQEAgdmx2X3VwZGF0ZV9jbHJjKGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZQo+ID4+ ICpwbGFuZV9zdGF0ZSkKPiA+Pgo+ID4+ICBzdGF0aWMgdTMyIHZsdl9zcHJpdGVfY3RsX2NydGMo Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUKPiA+PiAqY3J0Y19zdGF0ZSkgIHsKPiA+PiAt CXJldHVybiBTUF9HQU1NQV9FTkFCTEU7Cj4gPj4gKwl1MzIgc3ByY3RsID0gMDsKPiA+PiArCj4g Pj4gKwlpZiAoY3J0Y19zdGF0ZS0+Z2FtbWFfZW5hYmxlKQo+ID4+ICsJCXNwcmN0bCB8PSBTUF9H QU1NQV9FTkFCTEU7Cj4gPj4gKwo+ID4+ICsJcmV0dXJuIHNwcmN0bDsKPiA+PiAgfQo+ID4+Cj4g Pj4gIHN0YXRpYyB1MzIgdmx2X3Nwcml0ZV9jdGwoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUsCj4gPj4gQEAgLTkxNSw3ICs5MjAsOCBAQCBzdGF0aWMgdTMyIGl2Yl9z cHJpdGVfY3RsX2NydGMoY29uc3Qgc3RydWN0Cj4gPmludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUpCj4gPj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNy dGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKPiA+PiAgCXUzMiBzcHJjdGwgPSAwOwo+ID4+Cj4g Pj4gLQlzcHJjdGwgfD0gU1BSSVRFX0dBTU1BX0VOQUJMRTsKPiA+PiArCWlmIChjcnRjX3N0YXRl LT5nYW1tYV9lbmFibGUpCj4gPj4gKwkJc3ByY3RsIHw9IFNQUklURV9HQU1NQV9FTkFCTEU7Cj4g Pj4KPiA+PiAgCWlmIChJU19IQVNXRUxMKGRldl9wcml2KSB8fCBJU19CUk9BRFdFTEwoZGV2X3By aXYpKQo+ID4+ICAJCXNwcmN0bCB8PSBTUFJJVEVfUElQRV9DU0NfRU5BQkxFOwo+ID4+IEBAIC0x MTAxLDcgKzExMDcsMTIgQEAgZzR4X3Nwcml0ZV9tYXhfc3RyaWRlKHN0cnVjdCBpbnRlbF9wbGFu ZQo+ID4+ICpwbGFuZSwKPiA+Pgo+ID4+ICBzdGF0aWMgdTMyIGc0eF9zcHJpdGVfY3RsX2NydGMo Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUKPiA+PiAqY3J0Y19zdGF0ZSkgIHsKPiA+PiAt CXJldHVybiBEVlNfR0FNTUFfRU5BQkxFOwo+ID4+ICsJdTMyIGR2c2NudHIgPSAwOwo+ID4+ICsK PiA+PiArCWlmIChjcnRjX3N0YXRlLT5nYW1tYV9lbmFibGUpCj4gPj4gKwkJZHZzY250ciB8PSBE VlNfR0FNTUFfRU5BQkxFOwo+ID4+ICsKPiA+PiArCXJldHVybiBkdnNjbnRyOwo+ID4+ICB9Cj4g Pj4KPiA+PiAgc3RhdGljIHUzMiBnNHhfc3ByaXRlX2N0bChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiA+PiAtLQo+ID4+IDIuMTkuMgo+ID4+Cj4gPgo+ID4tLQo+ ID5NYXR0IFJvcGVyCj4gPkdyYXBoaWNzIFNvZnR3YXJlIEVuZ2luZWVyCj4gPklvVEcgUGxhdGZv cm0gRW5hYmxpbmcgJiBEZXZlbG9wbWVudAo+ID5JbnRlbCBDb3Jwb3JhdGlvbgo+ID4oOTE2KSAz NTYtMjc5NQoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbApfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZngK