From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 6/7] drm/i915: Remove mostly duplicated video DIP handling from PSR code Date: Mon, 13 Jun 2016 15:27:15 +0300 Message-ID: <20160613122715.GP4329@intel.com> References: <1464897332-25503-1-git-send-email-ville.syrjala@linux.intel.com> <1464897332-25503-7-git-send-email-ville.syrjala@linux.intel.com> <575EA28B.8020705@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 2E7266E297 for ; Mon, 13 Jun 2016 12:27:19 +0000 (UTC) Content-Disposition: inline In-Reply-To: <575EA28B.8020705@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Sharma, Shashank" Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBKdW4gMTMsIDIwMTYgYXQgMDU6Mzk6NDdQTSArMDUzMCwgU2hhcm1hLCBTaGFzaGFu ayB3cm90ZToKPiBSZWdhcmRzCj4gU2hhc2hhbmsKPiAKPiBPbiA2LzMvMjAxNiAxOjI1IEFNLCB2 aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbSB3cm90ZToKPiA+IEZyb206IFZpbGxlIFN5cmrD pGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPgo+ID4gTm93IHRoYXQgdGhl IGluZm9mcmFtZSBob29rcyBhcmUgcGFydCBvZiB0aGUgaW50ZWxfZGlnX3BvcnQsIHdlIGNhbiB1 c2UKPiA+IHRoZSBub3JtYWwgLndyaXRlX2luZm9mcmFtZSgpIGhvb2sgdG8gdXBkYXRlIHRoZSBW U0MgU0RQLiBXZSBkbyBuZWVkIHRvCj4gPiBkZWFsIHdpdGggdGhlIHNpemUgZGlmZmVyZW5jZSBi ZXR3ZWVuIHRoZSBWU0MgRElQIGFuZCB0aGUgb3RoZXJzIHRob3VnaC4KPiA+Cj4gPiBBbm90aGVy IG1pbm9yIHNuYWcgaXMgdGhhdCB0aGUgY29tcGlsZXIgd2lsbCBjb21wbGFpbiB0byB1c2UgaWYg d2Uga2VlcAo+ID4gdXNpbmcgZW51bSBoZG1pX2luZm9mcmFtZV90eXBlIHR5cGUgYW5kIHBhc3Np bmcgaW4gdGhlIERQIGRlZmluZSBpbnN0ZWFkLAo+ID4gc28gZXQncyBqdXN0IGNoYW5nZSB0byB1 bnNpZ25lZCBpbnQgYWxsIG92ZXIgZm9yIHRoZSBpbmZvcmZyYW1lIHR5cGUuCj4gPgo+ID4gU2ln bmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNv bT4KPiA+IC0tLQo+ID4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgfCAgMiAr LQo+ID4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMgfCAyNiArKysrKysrKysr KysrKystLS0tLS0tLS0tCj4gPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jICB8 IDQxICsrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gICAzIGZpbGVz IGNoYW5nZWQsIDI1IGluc2VydGlvbnMoKyksIDQ0IGRlbGV0aW9ucygtKQo+ID4KPiA+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oCj4gPiBpbmRleCA0Yzg0NTFlM2Q4ZjEuLjVkY2FhMTRmZjkwZCAx MDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gQEAgLTkwMCw3ICs5MDAsNyBA QCBzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0IHsKPiA+ICAgCS8qIGZvciBjb21tdW5pY2F0aW9u IHdpdGggYXVkaW8gY29tcG9uZW50OyBwcm90ZWN0ZWQgYnkgYXZfbXV0ZXggKi8KPiA+ICAgCWNv bnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yICphdWRpb19jb25uZWN0b3I7Cj4gPiAgIAl2b2lkICgq d3JpdGVfaW5mb2ZyYW1lKShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCj4gPiAtCQkJCWVu dW0gaGRtaV9pbmZvZnJhbWVfdHlwZSB0eXBlLAo+ID4gKwkJCQl1bnNpZ25lZCBpbnQgdHlwZSwK PiA+ICAgCQkJCWNvbnN0IHZvaWQgKmZyYW1lLCBzc2l6ZV90IGxlbik7Cj4gPiAgIAl2b2lkICgq c2V0X2luZm9mcmFtZXMpKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKPiA+ICAgCQkJICAg ICAgIGJvb2wgZW5hYmxlLAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwo+ID4gaW5kZXgg NjM3YjE3YmFmNzk4Li42MDBhNTgyMTA0NTAgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9oZG1pLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2hkbWkuYwo+ID4gQEAgLTY4LDcgKzY4LDcgQEAgc3RhdGljIHN0cnVjdCBpbnRlbF9oZG1pICpp bnRlbF9hdHRhY2hlZF9oZG1pKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4gPiAg IAlyZXR1cm4gZW5jX3RvX2ludGVsX2hkbWkoJmludGVsX2F0dGFjaGVkX2VuY29kZXIoY29ubmVj dG9yKS0+YmFzZSk7Cj4gPiAgIH0KPiA+Cj4gPiAtc3RhdGljIHUzMiBnNHhfaW5mb2ZyYW1lX2lu ZGV4KGVudW0gaGRtaV9pbmZvZnJhbWVfdHlwZSB0eXBlKQo+ID4gK3N0YXRpYyB1MzIgZzR4X2lu Zm9mcmFtZV9pbmRleCh1bnNpZ25lZCBpbnQgdHlwZSkKPiA+ICAgewo+ID4gICAJc3dpdGNoICh0 eXBlKSB7Cj4gPiAgIAljYXNlIEhETUlfSU5GT0ZSQU1FX1RZUEVfQVZJOgo+ID4gQEAgLTgzLDcg KzgzLDcgQEAgc3RhdGljIHUzMiBnNHhfaW5mb2ZyYW1lX2luZGV4KGVudW0gaGRtaV9pbmZvZnJh bWVfdHlwZSB0eXBlKQo+ID4gICAJfQo+ID4gICB9Cj4gPgo+ID4gLXN0YXRpYyB1MzIgZzR4X2lu Zm9mcmFtZV9lbmFibGUoZW51bSBoZG1pX2luZm9mcmFtZV90eXBlIHR5cGUpCj4gPiArc3RhdGlj IHUzMiBnNHhfaW5mb2ZyYW1lX2VuYWJsZSh1bnNpZ25lZCBpbnQgdHlwZSkKPiA+ICAgewo+ID4g ICAJc3dpdGNoICh0eXBlKSB7Cj4gPiAgIAljYXNlIEhETUlfSU5GT0ZSQU1FX1RZUEVfQVZJOgo+ ID4gQEAgLTk4LDkgKzk4LDExIEBAIHN0YXRpYyB1MzIgZzR4X2luZm9mcmFtZV9lbmFibGUoZW51 bSBoZG1pX2luZm9mcmFtZV90eXBlIHR5cGUpCj4gPiAgIAl9Cj4gPiAgIH0KPiA+Cj4gPiAtc3Rh dGljIHUzMiBoc3dfaW5mb2ZyYW1lX2VuYWJsZShlbnVtIGhkbWlfaW5mb2ZyYW1lX3R5cGUgdHlw ZSkKPiA+ICtzdGF0aWMgdTMyIGhzd19pbmZvZnJhbWVfZW5hYmxlKHVuc2lnbmVkIGludCB0eXBl KQo+ID4gICB7Cj4gPiAgIAlzd2l0Y2ggKHR5cGUpIHsKPiA+ICsJY2FzZSBEUF9TRFBfVlNDOgo+ IFdoeSBkbyB3ZSBuZWVkIGEgbmV3IGZpZWxkIGxpa2UgdGhpcyA/IFdvdWxkIGl0IG1ha2Ugc2Vu c2UgdG8gc2V0IHRoZSAKPiB0eXBlIGl0c2VsZiBhcyAiSERNSV9JTkZPRlJBTUVfVFlQRV9BVkki ID8KCldlIHdhbnQgdG8gZW5hYmxlL3dyaXRlIHRoZSBWU0MsIG5vdCB0aGUgQVZJLgoKPiA+ICsJ CXJldHVybiBWSURFT19ESVBfRU5BQkxFX1ZTQ19IU1c7Cj4gPiAgIAljYXNlIEhETUlfSU5GT0ZS QU1FX1RZUEVfQVZJOgo+ID4gICAJCXJldHVybiBWSURFT19ESVBfRU5BQkxFX0FWSV9IU1c7Cj4g PiAgIAljYXNlIEhETUlfSU5GT0ZSQU1FX1RZUEVfU1BEOgo+ID4gQEAgLTExNiwxMCArMTE4LDEy IEBAIHN0YXRpYyB1MzIgaHN3X2luZm9mcmFtZV9lbmFibGUoZW51bSBoZG1pX2luZm9mcmFtZV90 eXBlIHR5cGUpCj4gPiAgIHN0YXRpYyBpOTE1X3JlZ190Cj4gPiAgIGhzd19kaXBfZGF0YV9yZWco c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gICAJCSBlbnVtIHRyYW5zY29k ZXIgY3B1X3RyYW5zY29kZXIsCj4gPiAtCQkgZW51bSBoZG1pX2luZm9mcmFtZV90eXBlIHR5cGUs Cj4gPiArCQkgdW5zaWduZWQgaW50IHR5cGUsCj4gPiAgIAkJIGludCBpKQo+ID4gICB7Cj4gPiAg IAlzd2l0Y2ggKHR5cGUpIHsKPiA+ICsJY2FzZSBEUF9TRFBfVlNDOgo+ID4gKwkJcmV0dXJuIEhT V19UVklERU9fRElQX1ZTQ19EQVRBKGNwdV90cmFuc2NvZGVyLCBpKTsKPiA+ICAgCWNhc2UgSERN SV9JTkZPRlJBTUVfVFlQRV9BVkk6Cj4gPiAgIAkJcmV0dXJuIEhTV19UVklERU9fRElQX0FWSV9E QVRBKGNwdV90cmFuc2NvZGVyLCBpKTsKPiA+ICAgCWNhc2UgSERNSV9JTkZPRlJBTUVfVFlQRV9T UEQ6Cj4gPiBAQCAtMTMzLDcgKzEzNyw3IEBAIGhzd19kaXBfZGF0YV9yZWcoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gICB9Cj4gPgo+ID4gICBzdGF0aWMgdm9pZCBnNHhf d3JpdGVfaW5mb2ZyYW1lKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKPiA+IC0JCQkJZW51 bSBoZG1pX2luZm9mcmFtZV90eXBlIHR5cGUsCj4gPiArCQkJCXVuc2lnbmVkIGludCB0eXBlLAo+ ID4gICAJCQkJY29uc3Qgdm9pZCAqZnJhbWUsIHNzaXplX3QgbGVuKQo+ID4gICB7Cj4gPiAgIAlj b25zdCB1aW50MzJfdCAqZGF0YSA9IGZyYW1lOwo+ID4gQEAgLTE4Nyw3ICsxOTEsNyBAQCBzdGF0 aWMgYm9vbCBnNHhfaW5mb2ZyYW1lX2VuYWJsZWQoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVy LAo+ID4gICB9Cj4gPgo+ID4gICBzdGF0aWMgdm9pZCBpYnhfd3JpdGVfaW5mb2ZyYW1lKHN0cnVj dCBkcm1fZW5jb2RlciAqZW5jb2RlciwKPiA+IC0JCQkJZW51bSBoZG1pX2luZm9mcmFtZV90eXBl IHR5cGUsCj4gPiArCQkJCXVuc2lnbmVkIGludCB0eXBlLAo+ID4gICAJCQkJY29uc3Qgdm9pZCAq ZnJhbWUsIHNzaXplX3QgbGVuKQo+ID4gICB7Cj4gPiAgIAljb25zdCB1aW50MzJfdCAqZGF0YSA9 IGZyYW1lOwo+ID4gQEAgLTI0Niw3ICsyNTAsNyBAQCBzdGF0aWMgYm9vbCBpYnhfaW5mb2ZyYW1l X2VuYWJsZWQoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAo+ID4gICB9Cj4gPgo+ID4gICBz dGF0aWMgdm9pZCBjcHRfd3JpdGVfaW5mb2ZyYW1lKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rl ciwKPiA+IC0JCQkJZW51bSBoZG1pX2luZm9mcmFtZV90eXBlIHR5cGUsCj4gPiArCQkJCXVuc2ln bmVkIGludCB0eXBlLAo+ID4gICAJCQkJY29uc3Qgdm9pZCAqZnJhbWUsIHNzaXplX3QgbGVuKQo+ ID4gICB7Cj4gPiAgIAljb25zdCB1aW50MzJfdCAqZGF0YSA9IGZyYW1lOwo+ID4gQEAgLTMwMyw3 ICszMDcsNyBAQCBzdGF0aWMgYm9vbCBjcHRfaW5mb2ZyYW1lX2VuYWJsZWQoc3RydWN0IGRybV9l bmNvZGVyICplbmNvZGVyLAo+ID4gICB9Cj4gPgo+ID4gICBzdGF0aWMgdm9pZCB2bHZfd3JpdGVf aW5mb2ZyYW1lKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKPiA+IC0JCQkJZW51bSBoZG1p X2luZm9mcmFtZV90eXBlIHR5cGUsCj4gPiArCQkJCXVuc2lnbmVkIGludCB0eXBlLAo+ID4gICAJ CQkJY29uc3Qgdm9pZCAqZnJhbWUsIHNzaXplX3QgbGVuKQo+ID4gICB7Cj4gPiAgIAljb25zdCB1 aW50MzJfdCAqZGF0YSA9IGZyYW1lOwo+ID4gQEAgLTM2MSw3ICszNjUsNyBAQCBzdGF0aWMgYm9v bCB2bHZfaW5mb2ZyYW1lX2VuYWJsZWQoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAo+ID4g ICB9Cj4gPgo+ID4gICBzdGF0aWMgdm9pZCBoc3dfd3JpdGVfaW5mb2ZyYW1lKHN0cnVjdCBkcm1f ZW5jb2RlciAqZW5jb2RlciwKPiA+IC0JCQkJZW51bSBoZG1pX2luZm9mcmFtZV90eXBlIHR5cGUs Cj4gPiArCQkJCXVuc2lnbmVkIGludCB0eXBlLAo+ID4gICAJCQkJY29uc3Qgdm9pZCAqZnJhbWUs IHNzaXplX3QgbGVuKQo+ID4gICB7Cj4gPiAgIAljb25zdCB1aW50MzJfdCAqZGF0YSA9IGZyYW1l Owo+ID4gQEAgLTM3MSw2ICszNzUsOCBAQCBzdGF0aWMgdm9pZCBoc3dfd3JpdGVfaW5mb2ZyYW1l KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKPiA+ICAgCWVudW0gdHJhbnNjb2RlciBjcHVf dHJhbnNjb2RlciA9IGludGVsX2NydGMtPmNvbmZpZy0+Y3B1X3RyYW5zY29kZXI7Cj4gPiAgIAlp OTE1X3JlZ190IGN0bF9yZWcgPSBIU1dfVFZJREVPX0RJUF9DVEwoY3B1X3RyYW5zY29kZXIpOwo+ ID4gICAJaTkxNV9yZWdfdCBkYXRhX3JlZzsKPiA+ICsJaW50IGRhdGFfc2l6ZSA9IHR5cGUgPT0g RFBfU0RQX1ZTQyA/Cj4gT2ssIEkgdGhpbmsgbWF5IGJlIHRoaXMgaXMgdGhlIHJlYXNvbiB3aHkg d2UgbmVlZCBhIHNlcGFyYXRlIGZpbGVkIGZvciAKPiBEUF9TRFBfVlNDLCBpcyBpdCBzbyA/CgpO bywgd2UgbmVlZCB0byByZWdhcmxlc3Mgb2YgdGhlIHNpemUgb2YgdGhlIGJ1ZmZlci4KCj4gCj4g LSBTaGFzaGFuawo+ID4gKwkJVklERU9fRElQX1ZTQ19EQVRBX1NJWkUgOiBWSURFT19ESVBfREFU QV9TSVpFOwo+ID4gICAJaW50IGk7Cj4gPiAgIAl1MzIgdmFsID0gSTkxNV9SRUFEKGN0bF9yZWcp Owo+ID4KPiA+IEBAIC0zODYsNyArMzkyLDcgQEAgc3RhdGljIHZvaWQgaHN3X3dyaXRlX2luZm9m cmFtZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCj4gPiAgIAkJZGF0YSsrOwo+ID4gICAJ fQo+ID4gICAJLyogV3JpdGUgZXZlcnkgcG9zc2libGUgZGF0YSBieXRlIHRvIGZvcmNlIGNvcnJl Y3QgRUNDIGNhbGN1bGF0aW9uLiAqLwo+ID4gLQlmb3IgKDsgaSA8IFZJREVPX0RJUF9EQVRBX1NJ WkU7IGkgKz0gNCkKPiA+ICsJZm9yICg7IGkgPCBkYXRhX3NpemU7IGkgKz0gNCkKPiA+ICAgCQlJ OTE1X1dSSVRFKGhzd19kaXBfZGF0YV9yZWcoZGV2X3ByaXYsIGNwdV90cmFuc2NvZGVyLAo+ID4g ICAJCQkJCSAgICB0eXBlLCBpID4+IDIpLCAwKTsKPiA+ICAgCW1taW93YigpOwo+ID4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcHNyLmMKPiA+IGluZGV4IDI5YTA5YmY2YmQxOC4uOTA0OTk0ZGQxYzllIDEw MDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcHNyLmMKPiA+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jCj4gPiBAQCAtNzIsMzcgKzcyLDYgQEAg c3RhdGljIGJvb2wgdmx2X2lzX3Bzcl9hY3RpdmVfb25fcGlwZShzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCBpbnQgcGlwZSkKPiA+ICAgCSAgICAgICAodmFsID09IFZMVl9FRFBfUFNSX0FDVElWRV9T Rl9VUERBVEUpOwo+ID4gICB9Cj4gPgo+ID4gLXN0YXRpYyB2b2lkIGludGVsX3Bzcl93cml0ZV92 c2Moc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiA+IC0JCQkJY29uc3Qgc3RydWN0IGVkcF92 c2NfcHNyICp2c2NfcHNyKQo+ID4gLXsKPiA+IC0Jc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAq ZGlnX3BvcnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCk7Cj4gPiAtCXN0cnVjdCBkcm1fZGV2 aWNlICpkZXYgPSBkaWdfcG9ydC0+YmFzZS5iYXNlLmRldjsKPiA+IC0Jc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiA+IC0Jc3RydWN0IGludGVs X2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGRpZ19wb3J0LT5iYXNlLmJhc2UuY3J0Yyk7Cj4g PiAtCWVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2RlciA9IGNydGMtPmNvbmZpZy0+Y3B1X3Ry YW5zY29kZXI7Cj4gPiAtCWk5MTVfcmVnX3QgY3RsX3JlZyA9IEhTV19UVklERU9fRElQX0NUTChj cHVfdHJhbnNjb2Rlcik7Cj4gPiAtCXVpbnQzMl90ICpkYXRhID0gKHVpbnQzMl90ICopIHZzY19w c3I7Cj4gPiAtCXVuc2lnbmVkIGludCBpOwo+ID4gLQo+ID4gLQkvKiBBcyBwZXIgQlNQZWMgKFBp cGUgVmlkZW8gRGF0YSBJc2xhbmQgUGFja2V0KSwgd2UgbmVlZCB0byBkaXNhYmxlCj4gPiAtCSAg IHRoZSB2aWRlbyBESVAgYmVpbmcgdXBkYXRlZCBiZWZvcmUgcHJvZ3JhbSB2aWRlbyBESVAgZGF0 YSBidWZmZXIKPiA+IC0JICAgcmVnaXN0ZXJzIGZvciBESVAgYmVpbmcgdXBkYXRlZC4gKi8KPiA+ IC0JSTkxNV9XUklURShjdGxfcmVnLCAwKTsKPiA+IC0JUE9TVElOR19SRUFEKGN0bF9yZWcpOwo+ ID4gLQo+ID4gLQlmb3IgKGkgPSAwOyBpIDwgc2l6ZW9mKCp2c2NfcHNyKTsgaSArPSA0KSB7Cj4g PiAtCQlJOTE1X1dSSVRFKEhTV19UVklERU9fRElQX1ZTQ19EQVRBKGNwdV90cmFuc2NvZGVyLAo+ ID4gLQkJCQkJCSAgIGkgPj4gMiksICpkYXRhKTsKPiA+IC0JCWRhdGErKzsKPiA+IC0JfQo+ID4g LQlmb3IgKDsgaSA8IFZJREVPX0RJUF9WU0NfREFUQV9TSVpFOyBpICs9IDQpCj4gPiAtCQlJOTE1 X1dSSVRFKEhTV19UVklERU9fRElQX1ZTQ19EQVRBKGNwdV90cmFuc2NvZGVyLAo+ID4gLQkJCQkJ CSAgIGkgPj4gMiksIDApOwo+ID4gLQo+ID4gLQlJOTE1X1dSSVRFKGN0bF9yZWcsIFZJREVPX0RJ UF9FTkFCTEVfVlNDX0hTVyk7Cj4gPiAtCVBPU1RJTkdfUkVBRChjdGxfcmVnKTsKPiA+IC19Cj4g PiAtCj4gPiAgIHN0YXRpYyB2b2lkIHZsdl9wc3Jfc2V0dXBfdnNjKHN0cnVjdCBpbnRlbF9kcCAq aW50ZWxfZHApCj4gPiAgIHsKPiA+ICAgCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVs X2RpZ19wb3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOwo+ID4gQEAgLTEyMSw2ICs5MCw3 IEBAIHN0YXRpYyB2b2lkIHZsdl9wc3Jfc2V0dXBfdnNjKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHApCj4gPgo+ID4gICBzdGF0aWMgdm9pZCBza2xfcHNyX3NldHVwX3N1X3ZzYyhzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwKQo+ID4gICB7Cj4gPiArCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQg KmludGVsX2RpZ19wb3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOwo+ID4gICAJc3RydWN0 IGVkcF92c2NfcHNyIHBzcl92c2M7Cj4gPgo+ID4gICAJLyogUHJlcGFyZSBWU0MgSGVhZGVyIGZv ciBTVSBhcyBwZXIgRURQIDEuNCBzcGVjLCBUYWJsZSA2LjExICovCj4gPiBAQCAtMTI5LDExICs5 OSwxNCBAQCBzdGF0aWMgdm9pZCBza2xfcHNyX3NldHVwX3N1X3ZzYyhzdHJ1Y3QgaW50ZWxfZHAg KmludGVsX2RwKQo+ID4gICAJcHNyX3ZzYy5zZHBfaGVhZGVyLkhCMSA9IDB4NzsKPiA+ICAgCXBz cl92c2Muc2RwX2hlYWRlci5IQjIgPSAweDM7Cj4gPiAgIAlwc3JfdnNjLnNkcF9oZWFkZXIuSEIz ID0gMHhiOwo+ID4gLQlpbnRlbF9wc3Jfd3JpdGVfdnNjKGludGVsX2RwLCAmcHNyX3ZzYyk7Cj4g PiArCj4gPiArCWludGVsX2RpZ19wb3J0LT53cml0ZV9pbmZvZnJhbWUoJmludGVsX2RpZ19wb3J0 LT5iYXNlLmJhc2UsCj4gPiArCQkJCQlEUF9TRFBfVlNDLCAmcHNyX3ZzYywgc2l6ZW9mKHBzcl92 c2MpKTsKPiA+ICAgfQo+ID4KPiA+ICAgc3RhdGljIHZvaWQgaHN3X3Bzcl9zZXR1cF92c2Moc3Ry dWN0IGludGVsX2RwICppbnRlbF9kcCkKPiA+ICAgewo+ID4gKwlzdHJ1Y3QgaW50ZWxfZGlnaXRh bF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKPiA+ICAg CXN0cnVjdCBlZHBfdnNjX3BzciBwc3JfdnNjOwo+ID4KPiA+ICAgCS8qIFByZXBhcmUgVlNDIHBh Y2tldCBhcyBwZXIgRURQIDEuMyBzcGVjLCBUYWJsZSAzLjEwICovCj4gPiBAQCAtMTQyLDcgKzEx NSw5IEBAIHN0YXRpYyB2b2lkIGhzd19wc3Jfc2V0dXBfdnNjKHN0cnVjdCBpbnRlbF9kcCAqaW50 ZWxfZHApCj4gPiAgIAlwc3JfdnNjLnNkcF9oZWFkZXIuSEIxID0gMHg3Owo+ID4gICAJcHNyX3Zz Yy5zZHBfaGVhZGVyLkhCMiA9IDB4MjsKPiA+ICAgCXBzcl92c2Muc2RwX2hlYWRlci5IQjMgPSAw eDg7Cj4gPiAtCWludGVsX3Bzcl93cml0ZV92c2MoaW50ZWxfZHAsICZwc3JfdnNjKTsKPiA+ICsK PiA+ICsJaW50ZWxfZGlnX3BvcnQtPndyaXRlX2luZm9mcmFtZSgmaW50ZWxfZGlnX3BvcnQtPmJh c2UuYmFzZSwKPiA+ICsJCQkJCURQX1NEUF9WU0MsICZwc3JfdnNjLCBzaXplb2YocHNyX3ZzYykp Owo+ID4gICB9Cj4gPgo+ID4gICBzdGF0aWMgdm9pZCB2bHZfcHNyX2VuYWJsZV9zaW5rKHN0cnVj dCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gPgoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbCBPVEMK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==