From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Shankar, Uma" Subject: Re: [PATCH 09/13] drm/i915: Track pipe gamma enable/disable in crtc state Date: Thu, 17 Jan 2019 05:14:06 +0000 Message-ID: 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 mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7A7226F2B8 for ; Thu, 17 Jan 2019 05:14:13 +0000 (UTC) In-Reply-To: <20190116193630.GJ4563@mdroper-desk.amr.corp.intel.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Roper, Matthew D" , Ville Syrjala Cc: "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org Cgo+LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPkZyb206IFJvcGVyLCBNYXR0aGV3IEQKPlNl bnQ6IFRodXJzZGF5LCBKYW51YXJ5IDE3LCAyMDE5IDE6MDcgQU0KPlRvOiBWaWxsZSBTeXJqYWxh IDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPkNjOiBpbnRlbC1nZnhAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnOyBTaGFua2FyLCBVbWEgPHVtYS5zaGFua2FyQGludGVsLmNvbT4KPlN1Ympl Y3Q6IFJlOiBbUEFUQ0ggMDkvMTNdIGRybS9pOTE1OiBUcmFjayBwaXBlIGdhbW1hIGVuYWJsZS9k aXNhYmxlIGluIGNydGMKPnN0YXRlCj4KPk9uIEZyaSwgSmFuIDExLCAyMDE5IGF0IDA3OjA4OjE5 UE0gKzAyMDAsIFZpbGxlIFN5cmphbGEgd3JvdGU6Cj4+IEZyb206IFZpbGxlIFN5cmrDpGzDpCA8 dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4+Cj4+IFRyYWNrIHdoZXRoZXIgcGlwZSBn YW1tYSBpcyBlbmFibGVkIG9yIGRpc2FibGVkLiBGb3Igbm93IHdlIHN0aWNrIHRvCj4+IHRoZSBj dXJyZW50IGJlaGF2aW91ciBvZiBhbHdheXMgZW5hYmxpbmcgZ2FtbWEuIEJ1dCB3ZSBkbyBnZXQg d29ya2luZwo+PiBzdGF0ZSByZWFkb3V0IGZvciB0aGlzIG5vdy4gT24gU0tMKyB3ZSB1c2UgdGhl IHBpcGUgYm90dG9tIGNvbG9yIGFzCj4+IG91ciBoYXJkd2FyZSBzdGF0ZS4gT24gcHJlLVNLTCB3 ZSByZWFkIHRoZSBzdGF0ZSBiYWNrIGZyb20gdGhlIHByaW1hcnkKPj4gcGxhbmUgY29udHJvbCBy ZWdpc3Rlci4KPj4gVGhhdCBvbmx5IHJlYWxseSBjb3JyZWN0IGZvciBnNHgrLCBhcyBvbGRlciBw bGF0Zm9ybXMgbmV2ZXIgZ2FtbWEKPj4gY29ycmVjdCBwaXBlIGJvdHRvbSBjb2xvci4gQnV0IGRv aW5nIHRoZSByZWFkb3V0IHRoZSBzYW1lIHdheSBvbiBhbGwKPj4gcGxhdGZvcm1zIGlzIGZpbmUs IGFuZCB0aGVyZSBpcyBubyBvdGhlciB3YXkgdG8gZG8gaXQgcmVhbGx5Lgo+Pgo+PiBTaWduZWQt b2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ Cj5SZXZpZXdlZC1ieTogTWF0dCBSb3BlciA8bWF0dGhldy5kLnJvcGVyQGludGVsLmNvbT4KPgo+ PiAtLS0KPj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggICAgICB8ICA4ICsrKysK Pj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmMgICB8IDI0ICsrKysrKysrKysr LQo+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgNTYgKysrKysrKysr KysrKysrKysrKysrKy0tLS0tLQo+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2Lmgg ICAgIHwgIDMgKysKPj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jICB8IDE3 ICsrKysrKystLQo+PiAgNSBmaWxlcyBjaGFuZ2VkLCA5MiBpbnNlcnRpb25zKCspLCAxNiBkZWxl dGlvbnMoLSkKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVn LmgKPj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGluZGV4IDlkMTdiYTE5OWJl NC4uN2YwOTEzYmMxYjQ3Cj4+IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3JlZy5oCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPj4gQEAg LTU3MDcsNiArNTcwNywxNCBAQCBlbnVtIHsKPj4gICNkZWZpbmUgICBQSVBFTUlTQ19ESVRIRVJf VFlQRV9TUAkoMCA8PCAyKQo+PiAgI2RlZmluZSBQSVBFTUlTQyhwaXBlKQkJCV9NTUlPX1BJUEUy KHBpcGUsCj5fUElQRV9NSVNDX0EpCj4+Cj4+ICsvKiBTS0wrIHBpcGUgYm90dG9tIGNvbG9yICov Cj4+ICsjZGVmaW5lIF9QSVBFX0JPVFRPTV9DT0xPUl9BCQkweDcwMDM0Cj4+ICsjZGVmaW5lIF9Q SVBFX0JPVFRPTV9DT0xPUl9CCQkweDcxMDM0Cj4+ICsjZGVmaW5lICAgUElQRV9CT1RUT01fR0FN TUFfRU5BQkxFCSgxIDw8IDMxKQo+PiArI2RlZmluZSAgIFBJUEVfQk9UVE9NX0NTQ19FTkFCTEUJ KDEgPDwgMzApCj4+ICsjZGVmaW5lICAgUElQRV9CT1RUT01fQ09MT1JfTUFTSwkweDNGRkZGRkZG Cj4+ICsjZGVmaW5lIFBJUEVfQk9UVE9NX0NPTE9SKHBpcGUpCQlfTU1JT19QSVBFMihwaXBlLAo+ X1BJUEVfQk9UVE9NX0NPTE9SX0EpCj4+ICsKPj4gICNkZWZpbmUgVkxWX0RQRkxJUFNUQVQKPglf TU1JTyhWTFZfRElTUExBWV9CQVNFICsgMHg3MDAyOCkKPj4gICNkZWZpbmUgICBQSVBFQl9MSU5F X0NPTVBBUkVfSU5UX0VOCQkoMSA8PCAyOSkKPj4gICNkZWZpbmUgICBQSVBFQl9ITElORV9JTlRf RU4JCQkoMSA8PCAyOCkKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2NvbG9yLmMKPj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xvci5jCj4+IGluZGV4 IDZmZGJmYThjNDAwOC4uMzEzYjI4MTIwNGZhIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9jb2xvci5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2NvbG9yLmMKPj4gQEAgLTM4Nyw2ICszODcsMjQgQEAgc3RhdGljIHZvaWQgaHN3X2NvbG9yX2Nv bW1pdChjb25zdCBzdHJ1Y3QKPmludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4+ICAJaWxr X2xvYWRfY3NjX21hdHJpeChjcnRjX3N0YXRlKTsKPj4gIH0KPj4KPj4gK3N0YXRpYyB2b2lkIHNr bF9jb2xvcl9jb21taXQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUKPj4gKypjcnRjX3N0 YXRlKSB7Cj4+ICsJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNf c3RhdGUtPmJhc2UuY3J0Yyk7Cj4+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7Cj4+ICsJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5w aXBlOwo+PiArCXUzMiB2YWw7Cj4+ICsKPj4gKwl2YWwgPSAwOwoKV2UgY2FuIGluaXRpYWxpemUg dGhpcyBhYm92ZSBpdHNlbGYuCgo+PiArCWlmIChjcnRjX3N0YXRlLT5nYW1tYV9lbmFibGUpCj4+ ICsJCXZhbCB8PSBQSVBFX0JPVFRPTV9HQU1NQV9FTkFCTEU7Cj4+ICsJdmFsIHw9IFBJUEVfQk9U VE9NX0NTQ19FTkFCTEU7Cj4+ICsJSTkxNV9XUklURShQSVBFX0JPVFRPTV9DT0xPUihwaXBlKSwg dmFsKTsKPj4gKwo+PiArCUk5MTVfV1JJVEUoR0FNTUFfTU9ERShjcnRjLT5waXBlKSwgY3J0Y19z dGF0ZS0+Z2FtbWFfbW9kZSk7Cj4+ICsKPj4gKwlpbGtfbG9hZF9jc2NfbWF0cml4KGNydGNfc3Rh dGUpOwo+PiArfQo+PiArCj4+ICBzdGF0aWMgdm9pZCBiZHdfbG9hZF9kZWdhbW1hX2x1dChjb25z dCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZQo+PiAqY3J0Y19zdGF0ZSkgIHsKPj4gIAlzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsK Pj4gQEAgLTYyNCw2ICs2NDIsOCBAQCBpbnQgaW50ZWxfY29sb3JfY2hlY2soc3RydWN0IGludGVs X2NydGNfc3RhdGUKPipjcnRjX3N0YXRlKQo+PiAgCWRlZ2FtbWFfbGVuZ3RoID0gSU5URUxfSU5G TyhkZXZfcHJpdiktPmNvbG9yLmRlZ2FtbWFfbHV0X3NpemU7Cj4+ICAJZ2FtbWFfbGVuZ3RoID0g SU5URUxfSU5GTyhkZXZfcHJpdiktPmNvbG9yLmdhbW1hX2x1dF9zaXplOwo+Pgo+PiArCWNydGNf c3RhdGUtPmdhbW1hX2VuYWJsZSA9IHRydWU7Cj4+ICsKPj4gIAkvKgo+PiAgCSAqIFdlIGFsc28g YWxsb3cgbm8gZGVnYW1tYSBsdXQvY3RtIGFuZCBhIGdhbW1hIGx1dCBhdCB0aGUgbGVnYWN5Cj4+ ICAJICogc2l6ZSAoMjU2IGVudHJpZXMpLgo+PiBAQCAtNjc0LDcgKzY5NCw5IEBAIHZvaWQgaW50 ZWxfY29sb3JfaW5pdChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKPj4gIAkJZWxzZQo+PiAgCQkJ ZGV2X3ByaXYtPmRpc3BsYXkubG9hZF9sdXRzID0gaTl4eF9sb2FkX2x1dHM7Cj4+Cj4+IC0JCWlm IChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDggfHwgSVNfSEFTV0VMTChkZXZfcHJpdikpCj4+ICsJ CWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkpCj4+ICsJCQlkZXZfcHJpdi0+ZGlzcGxheS5j b2xvcl9jb21taXQgPSBza2xfY29sb3JfY29tbWl0Owo+PiArCQllbHNlIGlmIChJU19CUk9BRFdF TEwoZGV2X3ByaXYpIHx8IElTX0hBU1dFTEwoZGV2X3ByaXYpKQo+PiAgCQkJZGV2X3ByaXYtPmRp c3BsYXkuY29sb3JfY29tbWl0ID0gaHN3X2NvbG9yX2NvbW1pdDsKPj4gIAkJZWxzZQo+PiAgCQkJ ZGV2X3ByaXYtPmRpc3BsYXkuY29sb3JfY29tbWl0ID0gaWxrX2NvbG9yX2NvbW1pdDsgZGlmZgo+ LS1naXQKPj4gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPj4gYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPj4gaW5kZXggOTBhZmNhZTkxYjMwLi44 OTZjZTk1NzkwY2IgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPj4g QEAgLTMxODYsNyArMzE4Niw4IEBAIHN0YXRpYyB1MzIgaTl4eF9wbGFuZV9jdGxfY3J0Yyhjb25z dCBzdHJ1Y3QKPmludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4+ICAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7Cj4+ICAJdTMy IGRzcGNudHIgPSAwOwo+Pgo+PiAtCWRzcGNudHIgfD0gRElTUFBMQU5FX0dBTU1BX0VOQUJMRTsK Pj4gKwlpZiAoY3J0Y19zdGF0ZS0+Z2FtbWFfZW5hYmxlKQo+PiArCQlkc3BjbnRyIHw9IERJU1BQ TEFORV9HQU1NQV9FTkFCTEU7Cj4+Cj4+ICAJaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpIHx8IElT X0JST0FEV0VMTChkZXZfcHJpdikpCj4+ICAJCWRzcGNudHIgfD0gRElTUFBMQU5FX1BJUEVfQ1ND X0VOQUJMRTsgQEAgLTM2NjQsNyArMzY2NSw5Cj5AQCB1MzIKPj4gc2tsX3BsYW5lX2N0bF9jcnRj KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+PiAgCWlmIChJTlRF TF9HRU4oZGV2X3ByaXYpID49IDEwIHx8IElTX0dFTUlOSUxBS0UoZGV2X3ByaXYpKQo+PiAgCQly ZXR1cm4gcGxhbmVfY3RsOwo+Pgo+PiAtCXBsYW5lX2N0bCB8PSBQTEFORV9DVExfUElQRV9HQU1N QV9FTkFCTEU7Cj4+ICsJaWYgKGNydGNfc3RhdGUtPmdhbW1hX2VuYWJsZSkKPj4gKwkJcGxhbmVf Y3RsIHw9IFBMQU5FX0NUTF9QSVBFX0dBTU1BX0VOQUJMRTsKPj4gKwo+PiAgCXBsYW5lX2N0bCB8 PSBQTEFORV9DVExfUElQRV9DU0NfRU5BQkxFOwo+Pgo+PiAgCXJldHVybiBwbGFuZV9jdGw7Cj4+ IEBAIC0zNzE3LDcgKzM3MjAsOSBAQCB1MzIgZ2xrX3BsYW5lX2NvbG9yX2N0bF9jcnRjKGNvbnN0 IHN0cnVjdAo+aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPj4gIAlpZiAoSU5URUxfR0VO KGRldl9wcml2KSA+PSAxMSkKPj4gIAkJcmV0dXJuIHBsYW5lX2NvbG9yX2N0bDsKPj4KPj4gLQlw bGFuZV9jb2xvcl9jdGwgfD0gUExBTkVfQ09MT1JfUElQRV9HQU1NQV9FTkFCTEU7Cj4+ICsJaWYg KGNydGNfc3RhdGUtPmdhbW1hX2VuYWJsZSkKPj4gKwkJcGxhbmVfY29sb3JfY3RsIHw9IFBMQU5F X0NPTE9SX1BJUEVfR0FNTUFfRU5BQkxFOwo+PiArCj4+ICAJcGxhbmVfY29sb3JfY3RsIHw9IFBM QU5FX0NPTE9SX1BJUEVfQ1NDX0VOQUJMRTsKPj4KPj4gIAlyZXR1cm4gcGxhbmVfY29sb3JfY3Rs Owo+PiBAQCAtMzkyNSw3ICszOTMwLDYgQEAgc3RhdGljIHZvaWQgaW50ZWxfdXBkYXRlX3BpcGVf Y29uZmlnKGNvbnN0IHN0cnVjdAo+aW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhCj4+ICAJ CSAgICgobmV3X2NydGNfc3RhdGUtPnBpcGVfc3JjX3cgLSAxKSA8PCAxNikgfAo+PiAgCQkgICAo bmV3X2NydGNfc3RhdGUtPnBpcGVfc3JjX2ggLSAxKSk7Cj4+Cj4+IC0JLyogb24gc2t5bGFrZSB0 aGlzIGlzIGRvbmUgYnkgZGV0YWNoaW5nIHNjYWxlcnMgKi8KCklzIHRoaXMgaW50ZW50aW9uYWwg PyBTZWVtcyB1bnJlbGF0ZWQgdG8gdGhlIHBhdGNoLgoKV2l0aCB0aGUgYWJvdmUgbWlub3Igbml0 cyBmaXhlZDoKUmV2aWV3ZWQtYnk6IFVtYSBTaGFua2FyIDx1bWEuc2hhbmthckBpbnRlbC5jb20+ Cgo+PiAgCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkpIHsKPj4gIAkJc2tsX2RldGFjaF9z Y2FsZXJzKG5ld19jcnRjX3N0YXRlKTsKPj4KPj4gQEAgLTgwMzYsNiArODA0MCwyMCBAQCBzdGF0 aWMgdm9pZCBpbnRlbF9nZXRfY3J0Y195Y2Jjcl9jb25maWcoc3RydWN0Cj5pbnRlbF9jcnRjICpj cnRjLAo+PiAgCXBpcGVfY29uZmlnLT5vdXRwdXRfZm9ybWF0ID0gb3V0cHV0OyAgfQo+Pgo+PiAr c3RhdGljIHZvaWQgaTl4eF9nZXRfcGlwZV9jb2xvcl9jb25maWcoc3RydWN0IGludGVsX2NydGNf c3RhdGUKPj4gKypjcnRjX3N0YXRlKSB7Cj4+ICsJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0 b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4+ICsJc3RydWN0IGludGVsX3Bs YW5lICpwbGFuZSA9IHRvX2ludGVsX3BsYW5lKGNydGMtPmJhc2UucHJpbWFyeSk7Cj4+ICsJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7 Cj4+ICsJZW51bSBpOXh4X3BsYW5lX2lkIGk5eHhfcGxhbmUgPSBwbGFuZS0+aTl4eF9wbGFuZTsK Pj4gKwl1MzIgdG1wOwo+PiArCj4+ICsJdG1wID0gSTkxNV9SRUFEKERTUENOVFIoaTl4eF9wbGFu ZSkpOwo+PiArCj4+ICsJaWYgKHRtcCAmIERJU1BQTEFORV9HQU1NQV9FTkFCTEUpCj4+ICsJCWNy dGNfc3RhdGUtPmdhbW1hX2VuYWJsZSA9IHRydWU7Cj4+ICt9Cj4+ICsKPj4gIHN0YXRpYyBib29s IGk5eHhfZ2V0X3BpcGVfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+PiAgCQkJCSBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpICB7IEBAIC0KPjgwODIsNiArODEw MCw4IEBACj4+IHN0YXRpYyBib29sIGk5eHhfZ2V0X3BpcGVfY29uZmlnKHN0cnVjdCBpbnRlbF9j cnRjICpjcnRjLAo+PiAgCXBpcGVfY29uZmlnLT5nYW1tYV9tb2RlID0gKHRtcCAmCj5QSVBFQ09O Rl9HQU1NQV9NT0RFX01BU0tfSTlYWCkgPj4KPj4gIAkJUElQRUNPTkZfR0FNTUFfTU9ERV9TSElG VDsKPj4KPj4gKwlpOXh4X2dldF9waXBlX2NvbG9yX2NvbmZpZyhwaXBlX2NvbmZpZyk7Cj4+ICsK Pj4gIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8IDQpCj4+ICAJCXBpcGVfY29uZmlnLT5kb3Vi bGVfd2lkZSA9IHRtcCAmIFBJUEVDT05GX0RPVUJMRV9XSURFOwo+Pgo+PiBAQCAtOTE1Nyw2ICs5 MTc3LDggQEAgc3RhdGljIGJvb2wgaXJvbmxha2VfZ2V0X3BpcGVfY29uZmlnKHN0cnVjdCBpbnRl bF9jcnRjCj4qY3J0YywKPj4gIAlwaXBlX2NvbmZpZy0+Z2FtbWFfbW9kZSA9ICh0bXAgJgo+UElQ RUNPTkZfR0FNTUFfTU9ERV9NQVNLX0lMSykgPj4KPj4gIAkJUElQRUNPTkZfR0FNTUFfTU9ERV9T SElGVDsKPj4KPj4gKwlpOXh4X2dldF9waXBlX2NvbG9yX2NvbmZpZyhwaXBlX2NvbmZpZyk7Cj4+ ICsKPj4gIAlpZiAoSTkxNV9SRUFEKFBDSF9UUkFOU0NPTkYoY3J0Yy0+cGlwZSkpICYgVFJBTlNf RU5BQkxFKSB7Cj4+ICAJCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsOwo+PiAgCQllbnVt IGludGVsX2RwbGxfaWQgcGxsX2lkOwo+PiBAQCAtOTc4NSw2ICs5ODA3LDE1IEBAIHN0YXRpYyBi b29sIGhhc3dlbGxfZ2V0X3BpcGVfY29uZmlnKHN0cnVjdAo+aW50ZWxfY3J0YyAqY3J0YywKPj4g IAlwaXBlX2NvbmZpZy0+Z2FtbWFfbW9kZSA9Cj4+ICAJCUk5MTVfUkVBRChHQU1NQV9NT0RFKGNy dGMtPnBpcGUpKSAmCj5HQU1NQV9NT0RFX01PREVfTUFTSzsKPj4KPj4gKwlpZiAoSU5URUxfR0VO KGRldl9wcml2KSA+PSA5KSB7Cj4+ICsJCXUzMiB0bXAgPSBJOTE1X1JFQUQoUElQRV9CT1RUT01f Q09MT1IoY3J0Yy0+cGlwZSkpOwo+PiArCj4+ICsJCWlmICh0bXAgJiBQSVBFX0JPVFRPTV9HQU1N QV9FTkFCTEUpCj4+ICsJCQlwaXBlX2NvbmZpZy0+Z2FtbWFfZW5hYmxlID0gdHJ1ZTsKPj4gKwl9 IGVsc2Ugewo+PiArCQlpOXh4X2dldF9waXBlX2NvbG9yX2NvbmZpZyhwaXBlX2NvbmZpZyk7Cj4+ ICsJfQo+PiArCj4+ICAJcG93ZXJfZG9tYWluID0gUE9XRVJfRE9NQUlOX1BJUEVfUEFORUxfRklU VEVSKGNydGMtPnBpcGUpOwo+PiAgCWlmIChpbnRlbF9kaXNwbGF5X3Bvd2VyX2dldF9pZl9lbmFi bGVkKGRldl9wcml2LCBwb3dlcl9kb21haW4pKSB7Cj4+ICAJCXBvd2VyX2RvbWFpbl9tYXNrIHw9 IEJJVF9VTEwocG93ZXJfZG9tYWluKTsgQEAgLTk5NTMsNwo+Kzk5ODQsMTIgQEAKPj4gaTg0NV9j dXJzb3JfbWF4X3N0cmlkZShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLAo+Pgo+PiAgc3RhdGlj IHUzMiBpODQ1X2N1cnNvcl9jdGxfY3J0Yyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZQo+ PiAqY3J0Y19zdGF0ZSkgIHsKPj4gLQlyZXR1cm4gQ1VSU09SX0dBTU1BX0VOQUJMRTsKPj4gKwl1 MzIgY250bCA9IDA7Cj4+ICsKPj4gKwlpZiAoY3J0Y19zdGF0ZS0+Z2FtbWFfZW5hYmxlKQo+PiAr CQljbnRsIHw9IENVUlNPUl9HQU1NQV9FTkFCTEU7Cj4+ICsKPj4gKwlyZXR1cm4gY250bDsKPj4g IH0KPj4KPj4gIHN0YXRpYyB1MzIgaTg0NV9jdXJzb3JfY3RsKGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+PiBAQCAtMTAxMDUsNyArMTAxNDEsOCBAQCBzdGF0aWMg dTMyIGk5eHhfY3Vyc29yX2N0bF9jcnRjKGNvbnN0IHN0cnVjdAo+aW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSkKPj4gIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMSkKPj4gIAkJcmV0 dXJuIGNudGw7Cj4+Cj4+IC0JY250bCB8PSBNQ1VSU09SX0dBTU1BX0VOQUJMRTsKPj4gKwlpZiAo Y3J0Y19zdGF0ZS0+Z2FtbWFfZW5hYmxlKQo+PiArCQljbnRsID0gTUNVUlNPUl9HQU1NQV9FTkFC TEU7Cj4+Cj4+ICAJaWYgKEhBU19EREkoZGV2X3ByaXYpKQo+PiAgCQljbnRsIHw9IE1DVVJTT1Jf UElQRV9DU0NfRU5BQkxFOwo+PiBAQCAtMTEwOTQsMTIgKzExMTMxLDYgQEAgc3RhdGljIGludCBp bnRlbF9jcnRjX2F0b21pY19jaGVjayhzdHJ1Y3QKPmRybV9jcnRjICpjcnRjLAo+PiAgCQlyZXQg PSBpbnRlbF9jb2xvcl9jaGVjayhwaXBlX2NvbmZpZyk7Cj4+ICAJCWlmIChyZXQpCj4+ICAJCQly ZXR1cm4gcmV0Owo+PiAtCj4+IC0JCS8qCj4+IC0JCSAqIENoYW5naW5nIGNvbG9yIG1hbmFnZW1l bnQgb24gSW50ZWwgaGFyZHdhcmUgaXMKPj4gLQkJICogaGFuZGxlZCBhcyBwYXJ0IG9mIHBsYW5l cyB1cGRhdGUuCj4+IC0JCSAqLwo+PiAtCQljcnRjX3N0YXRlLT5wbGFuZXNfY2hhbmdlZCA9IHRy dWU7Cj4+ICAJfQo+Pgo+PiAgCXJldCA9IDA7Cj4+IEBAIC0xMTk4OCw2ICsxMjAxOSw3IEBAIGlu dGVsX3BpcGVfY29uZmlnX2NvbXBhcmUoc3RydWN0Cj5kcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKPj4gIAlQSVBFX0NPTkZfQ0hFQ0tfQk9PTChkb3VibGVfd2lkZSk7Cj4+Cj4+ICAJUElQRV9D T05GX0NIRUNLX1goZ2FtbWFfbW9kZSk7Cj4+ICsJUElQRV9DT05GX0NIRUNLX0JPT0woZ2FtbWFf ZW5hYmxlKTsKPj4KPj4gIAlQSVBFX0NPTkZfQ0hFQ0tfUChzaGFyZWRfZHBsbCk7Cj4+ICAJUElQ RV9DT05GX0NIRUNLX1goZHBsbF9od19zdGF0ZS5kcGxsKTsKPj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmgKPj4gaW5kZXggNTlmOGQ0MjcwZTgyLi5lZWU3MzRiNDg5MTkgMTAwNjQ0Cj4+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oCj4+IEBAIC05NDYsNiArOTQ2LDkgQEAgc3RydWN0IGludGVs X2NydGNfc3RhdGUgewo+PiAgCS8qIE91dHB1dCBkb3duIHNjYWxpbmcgaXMgZG9uZSBpbiBMU1BD T04gZGV2aWNlICovCj4+ICAJYm9vbCBsc3Bjb25fZG93bnNhbXBsaW5nOwo+Pgo+PiArCS8qIGVu YWJsZSBwaXBlIGdhbW1hPyAqLwo+PiArCWJvb2wgZ2FtbWFfZW5hYmxlOwo+PiArCj4+ICAJLyog RGlzcGxheSBTdHJlYW0gY29tcHJlc3Npb24gc3RhdGUgKi8KPj4gIAlzdHJ1Y3Qgewo+PiAgCQli b29sIGNvbXByZXNzaW9uX2VuYWJsZTsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3Nwcml0ZS5jCj4+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRl LmMKPj4gaW5kZXggYTQ1ZWY5OGIyZjhkLi4wMzRhMzU1NjkyZGIgMTAwNjQ0Cj4+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3Nwcml0ZS5jCj4+IEBAIC03MzksNyArNzM5LDEyIEBAIHZsdl91cGRhdGVf Y2xyYyhjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUKPj4gKnBsYW5lX3N0YXRlKQo+Pgo+ PiAgc3RhdGljIHUzMiB2bHZfc3ByaXRlX2N0bF9jcnRjKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlCj4+ICpjcnRjX3N0YXRlKSAgewo+PiAtCXJldHVybiBTUF9HQU1NQV9FTkFCTEU7Cj4+ ICsJdTMyIHNwcmN0bCA9IDA7Cj4+ICsKPj4gKwlpZiAoY3J0Y19zdGF0ZS0+Z2FtbWFfZW5hYmxl KQo+PiArCQlzcHJjdGwgfD0gU1BfR0FNTUFfRU5BQkxFOwo+PiArCj4+ICsJcmV0dXJuIHNwcmN0 bDsKPj4gIH0KPj4KPj4gIHN0YXRpYyB1MzIgdmx2X3Nwcml0ZV9jdGwoY29uc3Qgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4+IEBAIC05MTUsNyArOTIwLDggQEAgc3RhdGlj IHUzMiBpdmJfc3ByaXRlX2N0bF9jcnRjKGNvbnN0IHN0cnVjdAo+aW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSkKPj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKPj4gIAl1MzIgc3ByY3RsID0gMDsKPj4K Pj4gLQlzcHJjdGwgfD0gU1BSSVRFX0dBTU1BX0VOQUJMRTsKPj4gKwlpZiAoY3J0Y19zdGF0ZS0+ Z2FtbWFfZW5hYmxlKQo+PiArCQlzcHJjdGwgfD0gU1BSSVRFX0dBTU1BX0VOQUJMRTsKPj4KPj4g IAlpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikgfHwgSVNfQlJPQURXRUxMKGRldl9wcml2KSkKPj4g IAkJc3ByY3RsIHw9IFNQUklURV9QSVBFX0NTQ19FTkFCTEU7Cj4+IEBAIC0xMTAxLDcgKzExMDcs MTIgQEAgZzR4X3Nwcml0ZV9tYXhfc3RyaWRlKHN0cnVjdCBpbnRlbF9wbGFuZQo+PiAqcGxhbmUs Cj4+Cj4+ICBzdGF0aWMgdTMyIGc0eF9zcHJpdGVfY3RsX2NydGMoY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUKPj4gKmNydGNfc3RhdGUpICB7Cj4+IC0JcmV0dXJuIERWU19HQU1NQV9FTkFC TEU7Cj4+ICsJdTMyIGR2c2NudHIgPSAwOwo+PiArCj4+ICsJaWYgKGNydGNfc3RhdGUtPmdhbW1h X2VuYWJsZSkKPj4gKwkJZHZzY250ciB8PSBEVlNfR0FNTUFfRU5BQkxFOwo+PiArCj4+ICsJcmV0 dXJuIGR2c2NudHI7Cj4+ICB9Cj4+Cj4+ICBzdGF0aWMgdTMyIGc0eF9zcHJpdGVfY3RsKGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+PiAtLQo+PiAyLjE5LjIKPj4K Pgo+LS0KPk1hdHQgUm9wZXIKPkdyYXBoaWNzIFNvZnR3YXJlIEVuZ2luZWVyCj5Jb1RHIFBsYXRm b3JtIEVuYWJsaW5nICYgRGV2ZWxvcG1lbnQKPkludGVsIENvcnBvcmF0aW9uCj4oOTE2KSAzNTYt Mjc5NQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK