From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: Re: [PATCH 2/3] drm/i915/icl: Fix TypeC legacy HDMI HPD handling Date: Thu, 13 Dec 2018 13:06:51 -0800 Message-ID: <20181213210651.GC1681@intel.com> References: <20181213194850.25406-1-imre.deak@intel.com> <20181213194850.25406-3-imre.deak@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8DAAB6F10B for ; Thu, 13 Dec 2018 21:06:53 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20181213194850.25406-3-imre.deak@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Imre Deak Cc: intel-gfx@lists.freedesktop.org, Paulo Zanoni List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBEZWMgMTMsIDIwMTggYXQgMDk6NDg6NDlQTSArMDIwMCwgSW1yZSBEZWFrIHdyb3Rl Ogo+IEF0bSBIUEQgZGlzY29ubmVjdCBldmVudHMgb24gVHlwZUMgcG9ydHMgd2lsbCBicmVhayB0 aGluZ3MsIHNpbmNlIHdlJ2xsCj4gc3dpdGNoIHRoZSBUeXBlQyBtb2RlIChiZXR3ZWVuIExlZ2Fj eSBhbmQgZGlzY29ubmVjdGVkIG1vZGVzIGFzIHdlbGwgYXMKPiBhbW9uZyBVU0IgRFAgYWx0ZXJu YXRlLCBUaHVuZGVyYm9sdCBhbHRlcm5hdGUgYW5kIGRpc2Nvbm5lY3RlZCBtb2Rlcykgb24KPiB0 aGUgZmx5IGZyb20gdGhlIEhQRCBkaXNjb25uZWN0IGludGVycnVwdCB3b3JrIHdoaWxlIHRoZSBw b3J0IG1heSBiZQo+IHN0aWxsIGFjdGl2ZS4KPiAKPiBFdmVuIGlmIHRoZSBwb3J0IGhhcHBlbnMg dG8gYmUgbm90IGFjdGl2ZSBkdXJpbmcgdGhlIGRpc2Nvbm5lY3Qgd2UnZAo+IHN0aWxsIGhhdmUg YSBwcm9ibGVtIGR1cmluZyBhIHN1YnNlcXVlbnQgbW9kZXNldCBvciBBVVggdHJhbnNmZXIgdGhh dAo+IGNvdWxkIGhhcHBlbiByZWdhcmRsZXNzIG9mIHRoZSBwb3J0J3MgY29ubmVjdGVkIHN0YXRl LiBGb3IgaW5zdGFuY2UgdGhlCj4gc3lzdGVtIHJlc3VtZSBkaXNwbGF5IG1vZGUgcmVzdG9yZSBj b2RlIGFuZCB1c2Vyc3BhY2UgY291bGQgcGVyZm9ybSBhCj4gbW9kZXNldCBvbiB0aGUgcG9ydCBv ciB1c2Vyc3BhY2UgY291bGQgc3RhcnQgYW4gQVVYIHRyYW5zZmVyIGV2ZW4gaWYgdGhlCj4gcG9y dCBpcyBpbiBkaXNjb25uZWN0ZWQgc3RhdGUuCj4gCj4gVG8gZml4IHRoaXMga2VlcCBsZWdhY3kg VHlwZUMgcG9ydHMgaW4gVHlwZUMgbGVnYWN5IG1vZGUgd2hlbmV2ZXIgd2UncmUKPiBub3Qgc3Vz cGVuZGVkLiBUaGUgbGVnYWN5IG1vZGUgaXMgYSBzdGF0aWMgY29uZmlndXJhdGlvbiBhcyBvcHBv c2VkIHRvCj4gdGhlIFRodW5kZXJib2x0IGFuZCBVU0IgRFAgYWx0ZXJuYXRlIG1vZGVzIGJldHdl ZW4gd2hpY2ggd2UgY2FuIHN3aXRjaAo+IGR5bmFtaWNhbGx5Lgo+IAo+IFdlIGRvbid0IGhhdmUg eWV0IGFuIGV4cGxpY2l0IHdheSB0byBkZXRlY3QgVHlwZUMgbGVnYWN5IHBvcnRzLCBidXQgd2UK PiBjYW4gaW1wbHkgdGhhdCBhdCBsZWFzdCBpbiBjYXNlIG9mIEhETUkgZW5hYmxlZCBwb3J0cywg c2luY2UgSERNSSBjYW4KPiBvbmx5IGJlIHByb3ZpZGVkIGluIGxlZ2FjeSBtb2RlLiBTbyBtYXJr IFR5cGVDIEhETUkgZW5hYmxlZCBwb3J0cyBhcwo+IGxlZ2FjeSBhbmQgcnVuIHRoZSBUeXBlQyBQ SFkgY29ubmVjdCBzZXF1ZW5jZSBleHBsaWNpdGx5IGR1cmluZyBkcml2ZXIKPiBsb2FkaW5nIGFu ZCBzeXN0ZW0gcmVzdW1lLiBUaGUgY29ubmVjdCB3aWxsIHN1Y2NlZWQgZXZlbiBpZiB0aGUgZGlz cGxheQo+IGlzIG5vdCBjb25uZWN0ZWQgdG8gYmVnaW4gd2l0aCAob3IgZGlzYXBwZWFycyBkdXJp bmcgdGhlIHN1c3BlbmRlZAo+IHN0YXRlKSBzaW5jZSBmb3IgbGVnYWN5IHBvcnRzIHRoZSBQT1JU X1RYX0RGTEVYRFBQTVMgLwo+IERQX1BIWV9NT0RFX1NUQVRVU19DT01QTEVURUQgZmxhZyBpcyBh bHdheXMgc2V0IChhcyBvcHBvc2VkIHRvIHRoZSBVU0IKPiBEUCBhbHRlcm5hdGUgbW9kZSB3aGVy ZSBpdCBnZXRzIHNldCBvbmx5IHdoZW4gYSBkaXNwbGF5IGlzIGNvbm5lY3RlZCkuCj4gCj4gQ29y cmVzcG9uZGluZ2x5IHJ1biB0aGUgVHlwZUMgUEhZIGRpc2Nvbm5lY3Qgc2VxdWVuY2UgZHVyaW5n IHN5c3RlbQo+IHN1c3BlbmQgYW5kIGRyaXZlciB1bmxvYWRpbmcsIGJ1dCBkaXNjb25uZWN0IGR1 cmluZyBzdXNwZW5kIG9ubHkgZm9yCj4gbGVnYWN5IFR5cGVDIG1vZGUuIFdlIHdpbGwgbmVlZCB0 byBkaXNjb25uZWN0IGV2ZW4gaW4gVVNCIERQIGFsdGVybmF0ZQo+IG1vZGUgaW4gdGhlIGZ1dHVy ZSwgYnV0IGF0bSB3ZSBkb24ndCBoYXZlIGEgd2F5IHRvIHJlY29ubmVjdCB0aGUgcG9ydAo+IGlu IHRoaXMgbW9kZSBkdXJpbmcgcmVzdW1lIGlmIHRoZSBkaXNwbGF5IGRpc2FwcGVhcnMgd2hpbGUg YmVpbmcKPiBzdXNwZW5kZWQuIFNvIGZvciBub3cgcHVudCBvbiB0aGlzIGNhc2UuCj4gCj4gTm90 ZSB0aGF0IHdlIGRvIG5vdCBkaXNjb25uZWN0IHRoZSBwb3J0IGR1cmluZyBydW50aW1lIHN1c3Bl bmQ7IGluCj4gbGVnYWN5IG1vZGUgdGhlcmUgYXJlIG5vIHNoYXJlZCBIVyByZXNvdXJjZXMgKFBI WSBsYW5lcykgd2l0aCBvdGhlciBIVwo+IGJsb2NrcyAoVVNCKSwgc28gbm8gbmVlZCB0byByZWxl YXNlIC8gcmVhY3F1aXJlIHRoZXNlIHJlc291cmNlcyBhcyB3aXRoCj4gVVNCIERQIGFsdGVybmF0 ZSBtb2RlLiBUaGUgb25seSByZWFzb24gdG8gZGlzY29ubmVjdCBsZWdhY3kgcG9ydHMgZHVyaW5n Cj4gc3lzdGVtIHN1c3BlbmQgaXMgdGhhdCB0aGUgUE9SVF9UWF9ERkxFWERQUE1TIC8KPiBEUF9Q SFlfTU9ERV9TVEFUVVNfQ09NUExFVEVEIGZsYWcgbXVzdCBiZSByZWNoZWNrZWQgYW5kIHRoZSBw b3J0IG11c3QgYmUKPiBjb25uZWN0ZWQgYWdhaW4gZHVyaW5nIHN5c3RlbSByZXN1bWUuIFdlIG1h eSBhbHNvIG5lZWQgdG8gdHVybiB0aGUgY2hlY2sKPiBmb3IgdGhpcyBmbGFnIGludG8gYSBwb2xs LCBkZXBlbmRpbmcgb24gZnVydGhlciB0ZXN0cyBhbmQgY2xhcmlmaWNhdGlvbnMKPiB3ZSBhcmUg ZXhwZWN0aW5nIGZyb20gSFcvRlcgcGVvcGxlLgo+IAo+IElmIFZCVCBzYXlzIHRoYXQgdGhlIHBv cnQgcHJvdmlkZXMgb25seSBEUCBmdW5jdGlvbmFsaXR5IHRoZW4gd2UgY2FuJ3QKPiBhc3N1bWUg dGhhdCBpdCdzIGEgbGVnYWN5IHBvcnQgYXMgZm9yIEhETUkgKHNpbmNlIGl0IGNvdWxkIGFzIHdl bGwgYmUKPiBhIFRCVC9EUCBBbHQgY29ubmVjdG9yKSwgc28gd2UnbGwgc29sdmUgSFBEIGhhbmRs aW5nIGZvciB0aGUgRFAgY2FzZQo+IHdpdGggYSBkaWZmZXJlbnQgbWV0aG9kIGluIHRoZSBuZXh0 IHBhdGNoLgo+IAo+IEV2ZW50dWFsbHkgLSBpbnN0ZWFkIG9mIHRoZSBhYm92ZSBtZXRob2QgLSB3 ZSdsbCBkZXBlbmQgb24gYW4gZXhwbGljaXQKPiBkZXRlY3Rpb24gbWV0aG9kIHByb3ZpZGVkIGVp dGhlciB2aWEgYSBWQlQgZmxhZyBvciBhIEZXL0hXIHJlZ2lzdGVyIGJvdGgKPiBmb3IgdGhlIEhE TUkgYW5kIERQIGNhc2UuCj4gCj4gQnVnemlsbGE6IGh0dHBzOi8vYnVncy5mcmVlZGVza3RvcC5v cmcvc2hvd19idWcuY2dpP2lkPTEwODA3MAo+IEJ1Z3ppbGxhOiBodHRwczovL2J1Z3MuZnJlZWRl c2t0b3Aub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg5MjQKPiBDYzogUGF1bG8gWmFub25pIDxwYXVs by5yLnphbm9uaUBpbnRlbC5jb20+Cj4gQ2M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFs YUBsaW51eC5pbnRlbC5jb20+Cj4gQ2M6IEpvc8OpIFJvYmVydG8gZGUgU291emEgPGpvc2Uuc291 emFAaW50ZWwuY29tPgo+IENjOiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+ Cj4gU2lnbmVkLW9mZi1ieTogSW1yZSBEZWFrIDxpbXJlLmRlYWtAaW50ZWwuY29tPgo+IC0tLQo+ ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyB8IDU0ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKystLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAu YyAgfCAyOSArKysrKysrKysrKysrKy0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmggfCAgNSArKystCj4gIDMgZmlsZXMgY2hhbmdlZCwgNzUgaW5zZXJ0aW9ucygrKSwg MTMgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RkaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiBpbmRleCBmM2Ux ZDZhMGI3ZGQuLjJlNDdmZmExYzk1YSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kZGkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4g QEAgLTM5MDEsOSArMzkwMSw1MCBAQCBzdGF0aWMgYm9vbCBpbnRlbF9kZGlfY29tcHV0ZV9jb25m aWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAo+ICB9Cj4gIAo+ICtzdGF0aWMg dm9pZCBpbnRlbF9kZGlfZW5jb2Rlcl9zdXNwZW5kKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyKQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCA9IGVuY190 b19kaWdfcG9ydCgmZW5jb2Rlci0+YmFzZSk7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq aTkxNSA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ICsKPiArCWludGVsX2RwX2VuY29k ZXJfc3VzcGVuZChlbmNvZGVyKTsKPiArCj4gKwkvKgo+ICsJICogVE9ETzogZGlzY29ubmVjdCBh bHNvIGZyb20gVVNCIERQIGFsdGVybmF0ZSBtb2RlIG9uY2Ugd2UgaGF2ZSBhCj4gKwkgKiB3YXkg dG8gaGFuZGxlIHRoZSBtb2Rlc2V0IHJlc3RvcmUgaW4gdGhhdCBtb2RlIGR1cmluZyByZXN1bWUK PiArCSAqIGV2ZW4gaWYgdGhlIHNpbmsgaGFzIGRpc2FwcGVhcmVkIHdoaWxlIGJlaW5nIHN1c3Bl bmRlZC4KPiArCSAqLwo+ICsJaWYgKGRpZ19wb3J0LT50Y19sZWdhY3lfcG9ydCkKPiArCQlpY2xf dGNfcGh5X2Rpc2Nvbm5lY3QoaTkxNSwgZGlnX3BvcnQpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9p ZCBpbnRlbF9kZGlfZW5jb2Rlcl9yZXNldChzdHJ1Y3QgZHJtX2VuY29kZXIgKmRybV9lbmNvZGVy KQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCA9IGVuY190b19k aWdfcG9ydChkcm1fZW5jb2Rlcik7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9 IHRvX2k5MTUoZHJtX2VuY29kZXItPmRldik7Cj4gKwo+ICsJaWYgKGludGVsX3BvcnRfaXNfdGMo aTkxNSwgZGlnX3BvcnQtPmJhc2UucG9ydCkpCj4gKwkJaW50ZWxfZGlnaXRhbF9wb3J0X2Nvbm5l Y3RlZCgmZGlnX3BvcnQtPmJhc2UpOwo+ICsKPiArCWludGVsX2RwX2VuY29kZXJfcmVzZXQoZHJt X2VuY29kZXIpOwoKZG8gd2UgbmVlZCBhbGwgb2YgdGhhdD8gb3IgY291bGQgc2ltcGx5CgppbnRl bF9kcC0+cmVzZXRfbGlua19wYXJhbXMgPSB0cnVlOwoKaW5zdGVhZD8hIAoKPiArfQo+ICsKPiAr c3RhdGljIHZvaWQgaW50ZWxfZGRpX2VuY29kZXJfZGVzdHJveShzdHJ1Y3QgZHJtX2VuY29kZXIg KmVuY29kZXIpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0g ZW5jX3RvX2RpZ19wb3J0KGVuY29kZXIpOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTUgPSB0b19pOTE1KGVuY29kZXItPmRldik7Cj4gKwo+ICsJaW50ZWxfZHBfZW5jb2Rlcl9mbHVz aF93b3JrKGVuY29kZXIpOwo+ICsKPiArCWlmIChpbnRlbF9wb3J0X2lzX3RjKGk5MTUsIGRpZ19w b3J0LT5iYXNlLnBvcnQpKQo+ICsJCWljbF90Y19waHlfZGlzY29ubmVjdChpOTE1LCBkaWdfcG9y dCk7Cj4gKwo+ICsJZHJtX2VuY29kZXJfY2xlYW51cChlbmNvZGVyKTsKCmFuZCBoZXJlIGRvbid0 IHdlIG5lZWQgc3R1ZmYgb24gaW50ZWxfZHBfZW5jb2RlciBkZXN0cm95IGhlcmUgbGlrZQppbnRl bF9kcF9hdXhfZmluaT8KCj4gKwlrZnJlZShkaWdfcG9ydCk7Cj4gK30KPiArCj4gIHN0YXRpYyBj b25zdCBzdHJ1Y3QgZHJtX2VuY29kZXJfZnVuY3MgaW50ZWxfZGRpX2Z1bmNzID0gewo+IC0JLnJl c2V0ID0gaW50ZWxfZHBfZW5jb2Rlcl9yZXNldCwKPiAtCS5kZXN0cm95ID0gaW50ZWxfZHBfZW5j b2Rlcl9kZXN0cm95LAo+ICsJLnJlc2V0ID0gaW50ZWxfZGRpX2VuY29kZXJfcmVzZXQsCj4gKwku ZGVzdHJveSA9IGludGVsX2RkaV9lbmNvZGVyX2Rlc3Ryb3ksCj4gIH07Cj4gIAo+ICBzdGF0aWMg c3RydWN0IGludGVsX2Nvbm5lY3RvciAqCj4gQEAgLTQxOTcsNyArNDIzOCw3IEBAIHZvaWQgaW50 ZWxfZGRpX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBvcnQg cG9ydCkKPiAgCWludGVsX2VuY29kZXItPnBvc3RfZGlzYWJsZSA9IGludGVsX2RkaV9wb3N0X2Rp c2FibGU7Cj4gIAlpbnRlbF9lbmNvZGVyLT5nZXRfaHdfc3RhdGUgPSBpbnRlbF9kZGlfZ2V0X2h3 X3N0YXRlOwo+ICAJaW50ZWxfZW5jb2Rlci0+Z2V0X2NvbmZpZyA9IGludGVsX2RkaV9nZXRfY29u ZmlnOwo+IC0JaW50ZWxfZW5jb2Rlci0+c3VzcGVuZCA9IGludGVsX2RwX2VuY29kZXJfc3VzcGVu ZDsKPiArCWludGVsX2VuY29kZXItPnN1c3BlbmQgPSBpbnRlbF9kZGlfZW5jb2Rlcl9zdXNwZW5k Owo+ICAJaW50ZWxfZW5jb2Rlci0+Z2V0X3Bvd2VyX2RvbWFpbnMgPSBpbnRlbF9kZGlfZ2V0X3Bv d2VyX2RvbWFpbnM7Cj4gIAlpbnRlbF9lbmNvZGVyLT50eXBlID0gSU5URUxfT1VUUFVUX0RESTsK PiAgCWludGVsX2VuY29kZXItPnBvd2VyX2RvbWFpbiA9IGludGVsX3BvcnRfdG9fcG93ZXJfZG9t YWluKHBvcnQpOwo+IEBAIC00MjU3LDYgKzQyOTgsOSBAQCB2b2lkIGludGVsX2RkaV9pbml0KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwb3J0IHBvcnQpCj4gIAlpZiAo aW50ZWxfZW5jb2Rlci0+dHlwZSAhPSBJTlRFTF9PVVRQVVRfRURQICYmIGluaXRfaGRtaSkgewo+ ICAJCWlmICghaW50ZWxfZGRpX2luaXRfaGRtaV9jb25uZWN0b3IoaW50ZWxfZGlnX3BvcnQpKQo+ ICAJCQlnb3RvIGVycjsKPiArCj4gKwkJaWYgKGludGVsX3BvcnRfaXNfdGMoZGV2X3ByaXYsIHBv cnQpKQo+ICsJCQlpbnRlbF9kaWdfcG9ydC0+dGNfbGVnYWN5X3BvcnQgPSB0cnVlOwo+ICAJfQo+ ICAKPiAgCWlmIChpbml0X2xzcGNvbikgewo+IEBAIC00Mjc0LDYgKzQzMTgsMTAgQEAgdm9pZCBp bnRlbF9kZGlfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcG9y dCBwb3J0KQo+ICAJfQo+ICAKPiAgCWludGVsX2luZm9mcmFtZV9pbml0KGludGVsX2RpZ19wb3J0 KTsKPiArCj4gKwlpZiAoaW50ZWxfcG9ydF9pc190YyhkZXZfcHJpdiwgcG9ydCkpCj4gKwkJaW50 ZWxfZGlnaXRhbF9wb3J0X2Nvbm5lY3RlZChpbnRlbF9lbmNvZGVyKTsKPiArCj4gIAlyZXR1cm47 Cj4gIAo+ICBlcnI6Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rw LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gaW5kZXggMDgyNTk0YmI2NWE3 Li4xOWU0OWFkYWI1NDggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHAuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiBAQCAtNTEwOCw5 ICs1MTA4LDYgQEAgc3RhdGljIHZvaWQgaWNsX3VwZGF0ZV90Y19wb3J0X3R5cGUoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCQkgICAgICB0Y190eXBlX25hbWUoaW50ZWxf ZGlnX3BvcnQtPnRjX3R5cGUpKTsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgaWNsX3RjX3BoeV9k aXNjb25uZWN0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAtCQkJCSAgc3Ry dWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpOwo+IC0KPiAgLyoKPiAgICogVGhpcyBm dW5jdGlvbiBpbXBsZW1lbnRzIHRoZSBmaXJzdCBwYXJ0IG9mIHRoZSBDb25uZWN0IEZsb3cgZGVz Y3JpYmVkIGJ5IG91cgo+ICAgKiBzcGVjaWZpY2F0aW9uLCBHZW4xMSBUeXBlQyBQcm9ncmFtbWlu ZyBjaGFwdGVyLiBUaGUgcmVzdCBvZiB0aGUgZmxvdyAocmVhZGluZwo+IEBAIC01MTQ1LDYgKzUx NDIsNyBAQCBzdGF0aWMgYm9vbCBpY2xfdGNfcGh5X2Nvbm5lY3Qoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAo+ICAJdmFsID0gSTkxNV9SRUFEKFBPUlRfVFhfREZMRVhEUFBNUyk7 Cj4gIAlpZiAoISh2YWwgJiBEUF9QSFlfTU9ERV9TVEFUVVNfQ09NUExFVEVEKHRjX3BvcnQpKSkg ewo+ICAJCURSTV9ERUJVR19LTVMoIkRQIFBIWSBmb3IgVEMgcG9ydCAlZCBub3QgcmVhZHlcbiIs IHRjX3BvcnQpOwo+ICsJCVdBUk5fT04oZGlnX3BvcnQtPnRjX2xlZ2FjeV9wb3J0KTsKPiAgCQly ZXR1cm4gZmFsc2U7Cj4gIAl9Cj4gIAo+IEBAIC01MTc2LDggKzUxNzQsOCBAQCBzdGF0aWMgYm9v bCBpY2xfdGNfcGh5X2Nvbm5lY3Qoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ ICAgKiBTZWUgdGhlIGNvbW1lbnQgYXQgdGhlIGNvbm5lY3QgZnVuY3Rpb24uIFRoaXMgaW1wbGVt ZW50cyB0aGUgRGlzY29ubmVjdAo+ICAgKiBGbG93Lgo+ICAgKi8KPiAtc3RhdGljIHZvaWQgaWNs X3RjX3BoeV9kaXNjb25uZWN0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAt CQkJCSAgc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpCj4gK3ZvaWQgaWNsX3Rj X3BoeV9kaXNjb25uZWN0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiArCQkJ ICAgc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpCj4gIHsKPiAgCWVudW0gdGNf cG9ydCB0Y19wb3J0ID0gaW50ZWxfcG9ydF90b190YyhkZXZfcHJpdiwgZGlnX3BvcnQtPmJhc2Uu cG9ydCk7Cj4gIAo+IEBAIC01MjIyLDcgKzUyMjAsOCBAQCBzdGF0aWMgYm9vbCBpY2xfdGNfcG9y dF9jb25uZWN0ZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJYm9vbCBp c19sZWdhY3ksIGlzX3R5cGVjLCBpc190YnQ7Cj4gIAl1MzIgZHBzcDsKPiAgCj4gLQlpc19sZWdh Y3kgPSBJOTE1X1JFQUQoU0RFSVNSKSAmIFNERV9UQ19IT1RQTFVHX0lDUCh0Y19wb3J0KTsKPiAr CWlzX2xlZ2FjeSA9IGludGVsX2RpZ19wb3J0LT50Y19sZWdhY3lfcG9ydCB8fAo+ICsJCUk5MTVf UkVBRChTREVJU1IpICYgU0RFX1RDX0hPVFBMVUdfSUNQKHRjX3BvcnQpOwo+ICAKPiAgCS8qCj4g IAkgKiBUaGUgc3BlYyBzYXlzIHdlIHNob3VsZG4ndCBiZSB1c2luZyB0aGUgSVNSIGJpdHMgZm9y IGRldGVjdGluZwo+IEBAIC01MjMzLDcgKzUyMzIsMTQgQEAgc3RhdGljIGJvb2wgaWNsX3RjX3Bv cnRfY29ubmVjdGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCWlzX3Ri dCA9IGRwc3AgJiBUQ19MSVZFX1NUQVRFX1RCVCh0Y19wb3J0KTsKPiAgCj4gIAlpZiAoIWlzX2xl Z2FjeSAmJiAhaXNfdHlwZWMgJiYgIWlzX3RidCkgewo+IC0JCWljbF90Y19waHlfZGlzY29ubmVj dChkZXZfcHJpdiwgaW50ZWxfZGlnX3BvcnQpOwo+ICsJCS8qCj4gKwkJICogV2UgZGlzY29ubmVj dCBmcm9tIGxlZ2FjeSBtb2RlIG9ubHkgZHVyaW5nIHN5c3RlbQo+ICsJCSAqIHN1c3BlbmQgYW5k IGRyaXZlciB1bmxvYWRpbmcsIG90aGVyd2lzZSB3ZSBrZWVwIHRoZSBwb3J0IGluCj4gKwkJICog bGVnYWN5IG1vZGUgZXZlbiBhZnRlciBhbiBIUEQgZGlzY29ubmVjdCBldmVudC4KPiArCQkgKi8K PiArCQlpZiAoaW50ZWxfZGlnX3BvcnQtPnRjX3R5cGUgIT0gVENfUE9SVF9MRUdBQ1kpCj4gKwkJ CWljbF90Y19waHlfZGlzY29ubmVjdChkZXZfcHJpdiwgaW50ZWxfZGlnX3BvcnQpOwo+ICsKPiAg CQlyZXR1cm4gZmFsc2U7Cj4gIAl9Cj4gIAo+IEBAIC01NTQyLDcgKzU1NDgsNyBAQCBpbnRlbF9k cF9jb25uZWN0b3JfdW5yZWdpc3RlcihzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ ICAJaW50ZWxfY29ubmVjdG9yX3VucmVnaXN0ZXIoY29ubmVjdG9yKTsKPiAgfQo+ICAKPiAtdm9p ZCBpbnRlbF9kcF9lbmNvZGVyX2Rlc3Ryb3koc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQo+ ICt2b2lkIGludGVsX2RwX2VuY29kZXJfZmx1c2hfd29yayhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVu Y29kZXIpCj4gIHsKPiAgCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0 ID0gZW5jX3RvX2RpZ19wb3J0KGVuY29kZXIpOwo+ICAJc3RydWN0IGludGVsX2RwICppbnRlbF9k cCA9ICZpbnRlbF9kaWdfcG9ydC0+ZHA7Cj4gQEAgLTU1NjUsOSArNTU3MSwxNCBAQCB2b2lkIGlu dGVsX2RwX2VuY29kZXJfZGVzdHJveShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCj4gIAl9 Cj4gIAo+ICAJaW50ZWxfZHBfYXV4X2ZpbmkoaW50ZWxfZHApOwo+ICt9Cj4gKwo+ICtzdGF0aWMg dm9pZCBpbnRlbF9kcF9lbmNvZGVyX2Rlc3Ryb3koc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVy KQo+ICt7Cj4gKwlpbnRlbF9kcF9lbmNvZGVyX2ZsdXNoX3dvcmsoZW5jb2Rlcik7Cj4gIAo+ICAJ ZHJtX2VuY29kZXJfY2xlYW51cChlbmNvZGVyKTsKPiAtCWtmcmVlKGludGVsX2RpZ19wb3J0KTsK PiArCWtmcmVlKGVuY190b19kaWdfcG9ydChlbmNvZGVyKSk7Cj4gIH0KPiAgCj4gIHZvaWQgaW50 ZWxfZHBfZW5jb2Rlcl9zdXNwZW5kKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVy KQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXggZDA4ZjA4ZjYwN2RkLi45N2M0MjJi ZWE3ZmIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IEBAIC0xMjM0LDYgKzEyMzQs NyBAQCBzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0IHsKPiAgCS8qIFVzZWQgZm9yIERQIGFuZCBJ Q0wrIFR5cGVDL0RQIGFuZCBUeXBlQy9IRE1JIHBvcnRzLiAqLwo+ICAJZW51bSBhdXhfY2ggYXV4 X2NoOwo+ICAJZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiBkZGlfaW9fcG93ZXJfZG9t YWluOwo+ICsJYm9vbCB0Y19sZWdhY3lfcG9ydDoxOwo+ICAJZW51bSB0Y19wb3J0X3R5cGUgdGNf dHlwZTsKPiAgCj4gIAl2b2lkICgqd3JpdGVfaW5mb2ZyYW1lKShzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlciwKPiBAQCAtMTgwNiw3ICsxODA3LDcgQEAgdm9pZCBpbnRlbF9kcF9zaW5rX3Nl dF9kZWNvbXByZXNzaW9uX3N0YXRlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gIAkJCQkJ ICAgYm9vbCBlbmFibGUpOwo+ICB2b2lkIGludGVsX2RwX2VuY29kZXJfcmVzZXQoc3RydWN0IGRy bV9lbmNvZGVyICplbmNvZGVyKTsKPiAgdm9pZCBpbnRlbF9kcF9lbmNvZGVyX3N1c3BlbmQoc3Ry dWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIpOwo+IC12b2lkIGludGVsX2RwX2VuY29k ZXJfZGVzdHJveShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpOwo+ICt2b2lkIGludGVsX2Rw X2VuY29kZXJfZmx1c2hfd29yayhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpOwo+ICBib29s IGludGVsX2RwX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ ICAJCQkgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKPiAgCQkJICAg ICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSk7Cj4gQEAgLTE4NzQsNiAr MTg3NSw4IEBAIGJvb2wgaW50ZWxfZHBfcmVhZF9kcGNkKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHApOwo+ICBpbnQgaW50ZWxfZHBfbGlua19yZXF1aXJlZChpbnQgcGl4ZWxfY2xvY2ssIGludCBi cHApOwo+ICBpbnQgaW50ZWxfZHBfbWF4X2RhdGFfcmF0ZShpbnQgbWF4X2xpbmtfY2xvY2ssIGlu dCBtYXhfbGFuZXMpOwo+ICBib29sIGludGVsX2RpZ2l0YWxfcG9ydF9jb25uZWN0ZWQoc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXIpOwo+ICt2b2lkIGljbF90Y19waHlfZGlzY29ubmVjdChz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gKwkJCSAgIHN0cnVjdCBpbnRlbF9k aWdpdGFsX3BvcnQgKmRpZ19wb3J0KTsKPiAgCj4gIC8qIGludGVsX2RwX2F1eF9iYWNrbGlnaHQu YyAqLwo+ICBpbnQgaW50ZWxfZHBfYXV4X2luaXRfYmFja2xpZ2h0X2Z1bmNzKHN0cnVjdCBpbnRl bF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3Rvcik7Cj4gLS0gCj4gMi4xMy4yCj4gCj4gX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZnggbWFp bGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxp c3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=