From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Sharma, Shashank" Subject: Re: [PATCH 6/7] drm/i915: Remove mostly duplicated video DIP handling from PSR code Date: Mon, 13 Jun 2016 18:44:47 +0530 Message-ID: <575EB1C7.1080608@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> <20160613122715.GP4329@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" 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 995186E5CC for ; Mon, 13 Jun 2016 13:14:52 +0000 (UTC) In-Reply-To: <20160613122715.GP4329@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: =?windows-1252?Q?Ville_Syrj=E4l=E4?= Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org UmVnYXJkcwpTaGFzaGFuawoKT24gNi8xMy8yMDE2IDU6NTcgUE0sIFZpbGxlIFN5cmrDpGzDpCB3 cm90ZToKPiBPbiBNb24sIEp1biAxMywgMjAxNiBhdCAwNTozOTo0N1BNICswNTMwLCBTaGFybWEs IFNoYXNoYW5rIHdyb3RlOgo+PiBSZWdhcmRzCj4+IFNoYXNoYW5rCj4+Cj4+IE9uIDYvMy8yMDE2 IDE6MjUgQU0sIHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tIHdyb3RlOgo+Pj4gRnJvbTog VmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPj4+Cj4+PiBO b3cgdGhhdCB0aGUgaW5mb2ZyYW1lIGhvb2tzIGFyZSBwYXJ0IG9mIHRoZSBpbnRlbF9kaWdfcG9y dCwgd2UgY2FuIHVzZQo+Pj4gdGhlIG5vcm1hbCAud3JpdGVfaW5mb2ZyYW1lKCkgaG9vayB0byB1 cGRhdGUgdGhlIFZTQyBTRFAuIFdlIGRvIG5lZWQgdG8KPj4+IGRlYWwgd2l0aCB0aGUgc2l6ZSBk aWZmZXJlbmNlIGJldHdlZW4gdGhlIFZTQyBESVAgYW5kIHRoZSBvdGhlcnMgdGhvdWdoLgo+Pj4K Pj4+IEFub3RoZXIgbWlub3Igc25hZyBpcyB0aGF0IHRoZSBjb21waWxlciB3aWxsIGNvbXBsYWlu IHRvIHVzZSBpZiB3ZSBrZWVwCj4+PiB1c2luZyBlbnVtIGhkbWlfaW5mb2ZyYW1lX3R5cGUgdHlw ZSBhbmQgcGFzc2luZyBpbiB0aGUgRFAgZGVmaW5lIGluc3RlYWQsCj4+PiBzbyBldCdzIGp1c3Qg Y2hhbmdlIHRvIHVuc2lnbmVkIGludCBhbGwgb3ZlciBmb3IgdGhlIGluZm9yZnJhbWUgdHlwZS4K Pj4+Cj4+PiBTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGlu dXguaW50ZWwuY29tPgo+Pj4gLS0tCj4+PiAgICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaCAgfCAgMiArLQo+Pj4gICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jIHwg MjYgKysrKysrKysrKysrKysrLS0tLS0tLS0tLQo+Pj4gICAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcHNyLmMgIHwgNDEgKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Cj4+PiAgICAzIGZpbGVzIGNoYW5nZWQsIDI1IGluc2VydGlvbnMoKyksIDQ0IGRlbGV0aW9ucygt KQo+Pj4KPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4+PiBpbmRleCA0Yzg0NTFlM2Q4ZjEu LjVkY2FhMTRmZjkwZCAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+Pj4gQEAg LTkwMCw3ICs5MDAsNyBAQCBzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0IHsKPj4+ICAgIAkvKiBm b3IgY29tbXVuaWNhdGlvbiB3aXRoIGF1ZGlvIGNvbXBvbmVudDsgcHJvdGVjdGVkIGJ5IGF2X211 dGV4ICovCj4+PiAgICAJY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3IgKmF1ZGlvX2Nvbm5lY3Rv cjsKPj4+ICAgIAl2b2lkICgqd3JpdGVfaW5mb2ZyYW1lKShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVu Y29kZXIsCj4+PiAtCQkJCWVudW0gaGRtaV9pbmZvZnJhbWVfdHlwZSB0eXBlLAo+Pj4gKwkJCQl1 bnNpZ25lZCBpbnQgdHlwZSwKPj4+ICAgIAkJCQljb25zdCB2b2lkICpmcmFtZSwgc3NpemVfdCBs ZW4pOwo+Pj4gICAgCXZvaWQgKCpzZXRfaW5mb2ZyYW1lcykoc3RydWN0IGRybV9lbmNvZGVyICpl bmNvZGVyLAo+Pj4gICAgCQkJICAgICAgIGJvb2wgZW5hYmxlLAo+Pj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2hkbWkuYwo+Pj4gaW5kZXggNjM3YjE3YmFmNzk4Li42MDBhNTgyMTA0NTAgMTAwNjQ0Cj4+ PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKPj4+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwo+Pj4gQEAgLTY4LDcgKzY4LDcgQEAgc3RhdGlj IHN0cnVjdCBpbnRlbF9oZG1pICppbnRlbF9hdHRhY2hlZF9oZG1pKHN0cnVjdCBkcm1fY29ubmVj dG9yICpjb25uZWN0b3IpCj4+PiAgICAJcmV0dXJuIGVuY190b19pbnRlbF9oZG1pKCZpbnRlbF9h dHRhY2hlZF9lbmNvZGVyKGNvbm5lY3RvciktPmJhc2UpOwo+Pj4gICAgfQo+Pj4KPj4+IC1zdGF0 aWMgdTMyIGc0eF9pbmZvZnJhbWVfaW5kZXgoZW51bSBoZG1pX2luZm9mcmFtZV90eXBlIHR5cGUp Cj4+PiArc3RhdGljIHUzMiBnNHhfaW5mb2ZyYW1lX2luZGV4KHVuc2lnbmVkIGludCB0eXBlKQo+ Pj4gICAgewo+Pj4gICAgCXN3aXRjaCAodHlwZSkgewo+Pj4gICAgCWNhc2UgSERNSV9JTkZPRlJB TUVfVFlQRV9BVkk6Cj4+PiBAQCAtODMsNyArODMsNyBAQCBzdGF0aWMgdTMyIGc0eF9pbmZvZnJh bWVfaW5kZXgoZW51bSBoZG1pX2luZm9mcmFtZV90eXBlIHR5cGUpCj4+PiAgICAJfQo+Pj4gICAg fQo+Pj4KPj4+IC1zdGF0aWMgdTMyIGc0eF9pbmZvZnJhbWVfZW5hYmxlKGVudW0gaGRtaV9pbmZv ZnJhbWVfdHlwZSB0eXBlKQo+Pj4gK3N0YXRpYyB1MzIgZzR4X2luZm9mcmFtZV9lbmFibGUodW5z aWduZWQgaW50IHR5cGUpCj4+PiAgICB7Cj4+PiAgICAJc3dpdGNoICh0eXBlKSB7Cj4+PiAgICAJ Y2FzZSBIRE1JX0lORk9GUkFNRV9UWVBFX0FWSToKPj4+IEBAIC05OCw5ICs5OCwxMSBAQCBzdGF0 aWMgdTMyIGc0eF9pbmZvZnJhbWVfZW5hYmxlKGVudW0gaGRtaV9pbmZvZnJhbWVfdHlwZSB0eXBl KQo+Pj4gICAgCX0KPj4+ICAgIH0KPj4+Cj4+PiAtc3RhdGljIHUzMiBoc3dfaW5mb2ZyYW1lX2Vu YWJsZShlbnVtIGhkbWlfaW5mb2ZyYW1lX3R5cGUgdHlwZSkKPj4+ICtzdGF0aWMgdTMyIGhzd19p bmZvZnJhbWVfZW5hYmxlKHVuc2lnbmVkIGludCB0eXBlKQo+Pj4gICAgewo+Pj4gICAgCXN3aXRj aCAodHlwZSkgewo+Pj4gKwljYXNlIERQX1NEUF9WU0M6Cj4+IFdoeSBkbyB3ZSBuZWVkIGEgbmV3 IGZpZWxkIGxpa2UgdGhpcyA/IFdvdWxkIGl0IG1ha2Ugc2Vuc2UgdG8gc2V0IHRoZQo+PiB0eXBl IGl0c2VsZiBhcyAiSERNSV9JTkZPRlJBTUVfVFlQRV9BVkkiID8KPgo+IFdlIHdhbnQgdG8gZW5h YmxlL3dyaXRlIHRoZSBWU0MsIG5vdCB0aGUgQVZJLgo+Ck9rLCBUaGlzIHBhdGNoIGdlbmVyYWxs eSBsb29rcyBnb29kLCBidXQgSSBhbSBub3Qgc3VyZSBJIGFtIHRoZSByaWdodCAKZ3V5IHRvIGNo ZWNrIHRoaXMgcGF0Y2ggZnVydGhlciwgc28gSSB3aWxsIHBhc3MgaXQgZnJvbSBoZXJlLiBXZSBt aWdodCAKbmVlZCBhbm90aGVyIG9waW5pb24gb24gdGhpcy4KPj4+ICsJCXJldHVybiBWSURFT19E SVBfRU5BQkxFX1ZTQ19IU1c7Cj4+PiAgICAJY2FzZSBIRE1JX0lORk9GUkFNRV9UWVBFX0FWSToK Pj4+ICAgIAkJcmV0dXJuIFZJREVPX0RJUF9FTkFCTEVfQVZJX0hTVzsKPj4+ICAgIAljYXNlIEhE TUlfSU5GT0ZSQU1FX1RZUEVfU1BEOgo+Pj4gQEAgLTExNiwxMCArMTE4LDEyIEBAIHN0YXRpYyB1 MzIgaHN3X2luZm9mcmFtZV9lbmFibGUoZW51bSBoZG1pX2luZm9mcmFtZV90eXBlIHR5cGUpCj4+ PiAgICBzdGF0aWMgaTkxNV9yZWdfdAo+Pj4gICAgaHN3X2RpcF9kYXRhX3JlZyhzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+PiAgICAJCSBlbnVtIHRyYW5zY29kZXIgY3B1X3Ry YW5zY29kZXIsCj4+PiAtCQkgZW51bSBoZG1pX2luZm9mcmFtZV90eXBlIHR5cGUsCj4+PiArCQkg dW5zaWduZWQgaW50IHR5cGUsCj4+PiAgICAJCSBpbnQgaSkKPj4+ICAgIHsKPj4+ICAgIAlzd2l0 Y2ggKHR5cGUpIHsKPj4+ICsJY2FzZSBEUF9TRFBfVlNDOgo+Pj4gKwkJcmV0dXJuIEhTV19UVklE RU9fRElQX1ZTQ19EQVRBKGNwdV90cmFuc2NvZGVyLCBpKTsKPj4+ICAgIAljYXNlIEhETUlfSU5G T0ZSQU1FX1RZUEVfQVZJOgo+Pj4gICAgCQlyZXR1cm4gSFNXX1RWSURFT19ESVBfQVZJX0RBVEEo Y3B1X3RyYW5zY29kZXIsIGkpOwo+Pj4gICAgCWNhc2UgSERNSV9JTkZPRlJBTUVfVFlQRV9TUEQ6 Cj4+PiBAQCAtMTMzLDcgKzEzNyw3IEBAIGhzd19kaXBfZGF0YV9yZWcoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LAo+Pj4gICAgfQo+Pj4KPj4+ICAgIHN0YXRpYyB2b2lkIGc0eF93 cml0ZV9pbmZvZnJhbWUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAo+Pj4gLQkJCQllbnVt IGhkbWlfaW5mb2ZyYW1lX3R5cGUgdHlwZSwKPj4+ICsJCQkJdW5zaWduZWQgaW50IHR5cGUsCj4+ PiAgICAJCQkJY29uc3Qgdm9pZCAqZnJhbWUsIHNzaXplX3QgbGVuKQo+Pj4gICAgewo+Pj4gICAg CWNvbnN0IHVpbnQzMl90ICpkYXRhID0gZnJhbWU7Cj4+PiBAQCAtMTg3LDcgKzE5MSw3IEBAIHN0 YXRpYyBib29sIGc0eF9pbmZvZnJhbWVfZW5hYmxlZChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29k ZXIsCj4+PiAgICB9Cj4+Pgo+Pj4gICAgc3RhdGljIHZvaWQgaWJ4X3dyaXRlX2luZm9mcmFtZShz dHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCj4+PiAtCQkJCWVudW0gaGRtaV9pbmZvZnJhbWVf dHlwZSB0eXBlLAo+Pj4gKwkJCQl1bnNpZ25lZCBpbnQgdHlwZSwKPj4+ICAgIAkJCQljb25zdCB2 b2lkICpmcmFtZSwgc3NpemVfdCBsZW4pCj4+PiAgICB7Cj4+PiAgICAJY29uc3QgdWludDMyX3Qg KmRhdGEgPSBmcmFtZTsKPj4+IEBAIC0yNDYsNyArMjUwLDcgQEAgc3RhdGljIGJvb2wgaWJ4X2lu Zm9mcmFtZV9lbmFibGVkKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKPj4+ICAgIH0KPj4+ Cj4+PiAgICBzdGF0aWMgdm9pZCBjcHRfd3JpdGVfaW5mb2ZyYW1lKHN0cnVjdCBkcm1fZW5jb2Rl ciAqZW5jb2RlciwKPj4+IC0JCQkJZW51bSBoZG1pX2luZm9mcmFtZV90eXBlIHR5cGUsCj4+PiAr CQkJCXVuc2lnbmVkIGludCB0eXBlLAo+Pj4gICAgCQkJCWNvbnN0IHZvaWQgKmZyYW1lLCBzc2l6 ZV90IGxlbikKPj4+ICAgIHsKPj4+ICAgIAljb25zdCB1aW50MzJfdCAqZGF0YSA9IGZyYW1lOwo+ Pj4gQEAgLTMwMyw3ICszMDcsNyBAQCBzdGF0aWMgYm9vbCBjcHRfaW5mb2ZyYW1lX2VuYWJsZWQo c3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAo+Pj4gICAgfQo+Pj4KPj4+ICAgIHN0YXRpYyB2 b2lkIHZsdl93cml0ZV9pbmZvZnJhbWUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAo+Pj4g LQkJCQllbnVtIGhkbWlfaW5mb2ZyYW1lX3R5cGUgdHlwZSwKPj4+ICsJCQkJdW5zaWduZWQgaW50 IHR5cGUsCj4+PiAgICAJCQkJY29uc3Qgdm9pZCAqZnJhbWUsIHNzaXplX3QgbGVuKQo+Pj4gICAg ewo+Pj4gICAgCWNvbnN0IHVpbnQzMl90ICpkYXRhID0gZnJhbWU7Cj4+PiBAQCAtMzYxLDcgKzM2 NSw3IEBAIHN0YXRpYyBib29sIHZsdl9pbmZvZnJhbWVfZW5hYmxlZChzdHJ1Y3QgZHJtX2VuY29k ZXIgKmVuY29kZXIsCj4+PiAgICB9Cj4+Pgo+Pj4gICAgc3RhdGljIHZvaWQgaHN3X3dyaXRlX2lu Zm9mcmFtZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCj4+PiAtCQkJCWVudW0gaGRtaV9p bmZvZnJhbWVfdHlwZSB0eXBlLAo+Pj4gKwkJCQl1bnNpZ25lZCBpbnQgdHlwZSwKPj4+ICAgIAkJ CQljb25zdCB2b2lkICpmcmFtZSwgc3NpemVfdCBsZW4pCj4+PiAgICB7Cj4+PiAgICAJY29uc3Qg dWludDMyX3QgKmRhdGEgPSBmcmFtZTsKPj4+IEBAIC0zNzEsNiArMzc1LDggQEAgc3RhdGljIHZv aWQgaHN3X3dyaXRlX2luZm9mcmFtZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCj4+PiAg ICAJZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyID0gaW50ZWxfY3J0Yy0+Y29uZmlnLT5j cHVfdHJhbnNjb2RlcjsKPj4+ICAgIAlpOTE1X3JlZ190IGN0bF9yZWcgPSBIU1dfVFZJREVPX0RJ UF9DVEwoY3B1X3RyYW5zY29kZXIpOwo+Pj4gICAgCWk5MTVfcmVnX3QgZGF0YV9yZWc7Cj4+PiAr CWludCBkYXRhX3NpemUgPSB0eXBlID09IERQX1NEUF9WU0MgPwo+PiBPaywgSSB0aGluayBtYXkg YmUgdGhpcyBpcyB0aGUgcmVhc29uIHdoeSB3ZSBuZWVkIGEgc2VwYXJhdGUgZmlsZWQgZm9yCj4+ IERQX1NEUF9WU0MsIGlzIGl0IHNvID8KPgo+IE5vLCB3ZSBuZWVkIHRvIHJlZ2FybGVzcyBvZiB0 aGUgc2l6ZSBvZiB0aGUgYnVmZmVyLgo+Cj4+Cj4+IC0gU2hhc2hhbmsKPj4+ICsJCVZJREVPX0RJ UF9WU0NfREFUQV9TSVpFIDogVklERU9fRElQX0RBVEFfU0laRTsKPj4+ICAgIAlpbnQgaTsKPj4+ ICAgIAl1MzIgdmFsID0gSTkxNV9SRUFEKGN0bF9yZWcpOwo+Pj4KPj4+IEBAIC0zODYsNyArMzky LDcgQEAgc3RhdGljIHZvaWQgaHN3X3dyaXRlX2luZm9mcmFtZShzdHJ1Y3QgZHJtX2VuY29kZXIg KmVuY29kZXIsCj4+PiAgICAJCWRhdGErKzsKPj4+ICAgIAl9Cj4+PiAgICAJLyogV3JpdGUgZXZl cnkgcG9zc2libGUgZGF0YSBieXRlIHRvIGZvcmNlIGNvcnJlY3QgRUNDIGNhbGN1bGF0aW9uLiAq Lwo+Pj4gLQlmb3IgKDsgaSA8IFZJREVPX0RJUF9EQVRBX1NJWkU7IGkgKz0gNCkKPj4+ICsJZm9y ICg7IGkgPCBkYXRhX3NpemU7IGkgKz0gNCkKPj4+ICAgIAkJSTkxNV9XUklURShoc3dfZGlwX2Rh dGFfcmVnKGRldl9wcml2LCBjcHVfdHJhbnNjb2RlciwKPj4+ICAgIAkJCQkJICAgIHR5cGUsIGkg Pj4gMiksIDApOwo+Pj4gICAgCW1taW93YigpOwo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3Bzci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcHNyLmMK Pj4+IGluZGV4IDI5YTA5YmY2YmQxOC4uOTA0OTk0ZGQxYzllIDEwMDY0NAo+Pj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcHNyLmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3Bzci5jCj4+PiBAQCAtNzIsMzcgKzcyLDYgQEAgc3RhdGljIGJvb2wgdmx2X2lz X3Bzcl9hY3RpdmVfb25fcGlwZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgcGlwZSkKPj4+ ICAgIAkgICAgICAgKHZhbCA9PSBWTFZfRURQX1BTUl9BQ1RJVkVfU0ZfVVBEQVRFKTsKPj4+ICAg IH0KPj4+Cj4+PiAtc3RhdGljIHZvaWQgaW50ZWxfcHNyX3dyaXRlX3ZzYyhzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwLAo+Pj4gLQkJCQljb25zdCBzdHJ1Y3QgZWRwX3ZzY19wc3IgKnZzY19wc3Ip Cj4+PiAtewo+Pj4gLQlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCA9IGRwX3Rv X2RpZ19wb3J0KGludGVsX2RwKTsKPj4+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGRpZ19w b3J0LT5iYXNlLmJhc2UuZGV2Owo+Pj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBkZXYtPmRldl9wcml2YXRlOwo+Pj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRv X2ludGVsX2NydGMoZGlnX3BvcnQtPmJhc2UuYmFzZS5jcnRjKTsKPj4+IC0JZW51bSB0cmFuc2Nv ZGVyIGNwdV90cmFuc2NvZGVyID0gY3J0Yy0+Y29uZmlnLT5jcHVfdHJhbnNjb2RlcjsKPj4+IC0J aTkxNV9yZWdfdCBjdGxfcmVnID0gSFNXX1RWSURFT19ESVBfQ1RMKGNwdV90cmFuc2NvZGVyKTsK Pj4+IC0JdWludDMyX3QgKmRhdGEgPSAodWludDMyX3QgKikgdnNjX3BzcjsKPj4+IC0JdW5zaWdu ZWQgaW50IGk7Cj4+PiAtCj4+PiAtCS8qIEFzIHBlciBCU1BlYyAoUGlwZSBWaWRlbyBEYXRhIElz bGFuZCBQYWNrZXQpLCB3ZSBuZWVkIHRvIGRpc2FibGUKPj4+IC0JICAgdGhlIHZpZGVvIERJUCBi ZWluZyB1cGRhdGVkIGJlZm9yZSBwcm9ncmFtIHZpZGVvIERJUCBkYXRhIGJ1ZmZlcgo+Pj4gLQkg ICByZWdpc3RlcnMgZm9yIERJUCBiZWluZyB1cGRhdGVkLiAqLwo+Pj4gLQlJOTE1X1dSSVRFKGN0 bF9yZWcsIDApOwo+Pj4gLQlQT1NUSU5HX1JFQUQoY3RsX3JlZyk7Cj4+PiAtCj4+PiAtCWZvciAo aSA9IDA7IGkgPCBzaXplb2YoKnZzY19wc3IpOyBpICs9IDQpIHsKPj4+IC0JCUk5MTVfV1JJVEUo SFNXX1RWSURFT19ESVBfVlNDX0RBVEEoY3B1X3RyYW5zY29kZXIsCj4+PiAtCQkJCQkJICAgaSA+ PiAyKSwgKmRhdGEpOwo+Pj4gLQkJZGF0YSsrOwo+Pj4gLQl9Cj4+PiAtCWZvciAoOyBpIDwgVklE RU9fRElQX1ZTQ19EQVRBX1NJWkU7IGkgKz0gNCkKPj4+IC0JCUk5MTVfV1JJVEUoSFNXX1RWSURF T19ESVBfVlNDX0RBVEEoY3B1X3RyYW5zY29kZXIsCj4+PiAtCQkJCQkJICAgaSA+PiAyKSwgMCk7 Cj4+PiAtCj4+PiAtCUk5MTVfV1JJVEUoY3RsX3JlZywgVklERU9fRElQX0VOQUJMRV9WU0NfSFNX KTsKPj4+IC0JUE9TVElOR19SRUFEKGN0bF9yZWcpOwo+Pj4gLX0KPj4+IC0KPj4+ICAgIHN0YXRp YyB2b2lkIHZsdl9wc3Jfc2V0dXBfdnNjKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4+PiAg ICB7Cj4+PiAgICAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBk cF90b19kaWdfcG9ydChpbnRlbF9kcCk7Cj4+PiBAQCAtMTIxLDYgKzkwLDcgQEAgc3RhdGljIHZv aWQgdmx2X3Bzcl9zZXR1cF92c2Moc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPj4+Cj4+PiAg ICBzdGF0aWMgdm9pZCBza2xfcHNyX3NldHVwX3N1X3ZzYyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVs X2RwKQo+Pj4gICAgewo+Pj4gKwlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdf cG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKPj4+ICAgIAlzdHJ1Y3QgZWRwX3ZzY19w c3IgcHNyX3ZzYzsKPj4+Cj4+PiAgICAJLyogUHJlcGFyZSBWU0MgSGVhZGVyIGZvciBTVSBhcyBw ZXIgRURQIDEuNCBzcGVjLCBUYWJsZSA2LjExICovCj4+PiBAQCAtMTI5LDExICs5OSwxNCBAQCBz dGF0aWMgdm9pZCBza2xfcHNyX3NldHVwX3N1X3ZzYyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2Rw KQo+Pj4gICAgCXBzcl92c2Muc2RwX2hlYWRlci5IQjEgPSAweDc7Cj4+PiAgICAJcHNyX3ZzYy5z ZHBfaGVhZGVyLkhCMiA9IDB4MzsKPj4+ICAgIAlwc3JfdnNjLnNkcF9oZWFkZXIuSEIzID0gMHhi Owo+Pj4gLQlpbnRlbF9wc3Jfd3JpdGVfdnNjKGludGVsX2RwLCAmcHNyX3ZzYyk7Cj4+PiArCj4+ PiArCWludGVsX2RpZ19wb3J0LT53cml0ZV9pbmZvZnJhbWUoJmludGVsX2RpZ19wb3J0LT5iYXNl LmJhc2UsCj4+PiArCQkJCQlEUF9TRFBfVlNDLCAmcHNyX3ZzYywgc2l6ZW9mKHBzcl92c2MpKTsK Pj4+ICAgIH0KPj4+Cj4+PiAgICBzdGF0aWMgdm9pZCBoc3dfcHNyX3NldHVwX3ZzYyhzdHJ1Y3Qg aW50ZWxfZHAgKmludGVsX2RwKQo+Pj4gICAgewo+Pj4gKwlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9w b3J0ICppbnRlbF9kaWdfcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKPj4+ICAgIAlz dHJ1Y3QgZWRwX3ZzY19wc3IgcHNyX3ZzYzsKPj4+Cj4+PiAgICAJLyogUHJlcGFyZSBWU0MgcGFj a2V0IGFzIHBlciBFRFAgMS4zIHNwZWMsIFRhYmxlIDMuMTAgKi8KPj4+IEBAIC0xNDIsNyArMTE1 LDkgQEAgc3RhdGljIHZvaWQgaHN3X3Bzcl9zZXR1cF92c2Moc3RydWN0IGludGVsX2RwICppbnRl bF9kcCkKPj4+ICAgIAlwc3JfdnNjLnNkcF9oZWFkZXIuSEIxID0gMHg3Owo+Pj4gICAgCXBzcl92 c2Muc2RwX2hlYWRlci5IQjIgPSAweDI7Cj4+PiAgICAJcHNyX3ZzYy5zZHBfaGVhZGVyLkhCMyA9 IDB4ODsKPj4+IC0JaW50ZWxfcHNyX3dyaXRlX3ZzYyhpbnRlbF9kcCwgJnBzcl92c2MpOwo+Pj4g Kwo+Pj4gKwlpbnRlbF9kaWdfcG9ydC0+d3JpdGVfaW5mb2ZyYW1lKCZpbnRlbF9kaWdfcG9ydC0+ YmFzZS5iYXNlLAo+Pj4gKwkJCQkJRFBfU0RQX1ZTQywgJnBzcl92c2MsIHNpemVvZihwc3JfdnNj KSk7Cj4+PiAgICB9Cj4+Pgo+Pj4gICAgc3RhdGljIHZvaWQgdmx2X3Bzcl9lbmFibGVfc2luayhz dHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+Pj4KPgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngK