From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: Re: [PATCH 2/3] drm/i915/icl: Fix TypeC legacy HDMI HPD handling Date: Fri, 14 Dec 2018 01:25:07 +0200 Message-ID: <20181213232507.GA26382@ideak-desk.fi.intel.com> References: <20181213194850.25406-1-imre.deak@intel.com> <20181213194850.25406-3-imre.deak@intel.com> <20181213210651.GC1681@intel.com> Reply-To: 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 D5A946F035 for ; Thu, 13 Dec 2018 23:25:09 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20181213210651.GC1681@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Rodrigo Vivi Cc: intel-gfx@lists.freedesktop.org, Paulo Zanoni List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBEZWMgMTMsIDIwMTggYXQgMDE6MDY6NTFQTSAtMDgwMCwgUm9kcmlnbyBWaXZpIHdy b3RlOgo+IE9uIFRodSwgRGVjIDEzLCAyMDE4IGF0IDA5OjQ4OjQ5UE0gKzAyMDAsIEltcmUgRGVh ayB3cm90ZToKPiA+IEF0bSBIUEQgZGlzY29ubmVjdCBldmVudHMgb24gVHlwZUMgcG9ydHMgd2ls bCBicmVhayB0aGluZ3MsIHNpbmNlIHdlJ2xsCj4gPiBzd2l0Y2ggdGhlIFR5cGVDIG1vZGUgKGJl dHdlZW4gTGVnYWN5IGFuZCBkaXNjb25uZWN0ZWQgbW9kZXMgYXMgd2VsbCBhcwo+ID4gYW1vbmcg VVNCIERQIGFsdGVybmF0ZSwgVGh1bmRlcmJvbHQgYWx0ZXJuYXRlIGFuZCBkaXNjb25uZWN0ZWQg bW9kZXMpIG9uCj4gPiB0aGUgZmx5IGZyb20gdGhlIEhQRCBkaXNjb25uZWN0IGludGVycnVwdCB3 b3JrIHdoaWxlIHRoZSBwb3J0IG1heSBiZQo+ID4gc3RpbGwgYWN0aXZlLgo+ID4gCj4gPiBFdmVu IGlmIHRoZSBwb3J0IGhhcHBlbnMgdG8gYmUgbm90IGFjdGl2ZSBkdXJpbmcgdGhlIGRpc2Nvbm5l Y3Qgd2UnZAo+ID4gc3RpbGwgaGF2ZSBhIHByb2JsZW0gZHVyaW5nIGEgc3Vic2VxdWVudCBtb2Rl c2V0IG9yIEFVWCB0cmFuc2ZlciB0aGF0Cj4gPiBjb3VsZCBoYXBwZW4gcmVnYXJkbGVzcyBvZiB0 aGUgcG9ydCdzIGNvbm5lY3RlZCBzdGF0ZS4gRm9yIGluc3RhbmNlIHRoZQo+ID4gc3lzdGVtIHJl c3VtZSBkaXNwbGF5IG1vZGUgcmVzdG9yZSBjb2RlIGFuZCB1c2Vyc3BhY2UgY291bGQgcGVyZm9y bSBhCj4gPiBtb2Rlc2V0IG9uIHRoZSBwb3J0IG9yIHVzZXJzcGFjZSBjb3VsZCBzdGFydCBhbiBB VVggdHJhbnNmZXIgZXZlbiBpZiB0aGUKPiA+IHBvcnQgaXMgaW4gZGlzY29ubmVjdGVkIHN0YXRl Lgo+ID4gCj4gPiBUbyBmaXggdGhpcyBrZWVwIGxlZ2FjeSBUeXBlQyBwb3J0cyBpbiBUeXBlQyBs ZWdhY3kgbW9kZSB3aGVuZXZlciB3ZSdyZQo+ID4gbm90IHN1c3BlbmRlZC4gVGhlIGxlZ2FjeSBt b2RlIGlzIGEgc3RhdGljIGNvbmZpZ3VyYXRpb24gYXMgb3Bwb3NlZCB0bwo+ID4gdGhlIFRodW5k ZXJib2x0IGFuZCBVU0IgRFAgYWx0ZXJuYXRlIG1vZGVzIGJldHdlZW4gd2hpY2ggd2UgY2FuIHN3 aXRjaAo+ID4gZHluYW1pY2FsbHkuCj4gPiAKPiA+IFdlIGRvbid0IGhhdmUgeWV0IGFuIGV4cGxp Y2l0IHdheSB0byBkZXRlY3QgVHlwZUMgbGVnYWN5IHBvcnRzLCBidXQgd2UKPiA+IGNhbiBpbXBs eSB0aGF0IGF0IGxlYXN0IGluIGNhc2Ugb2YgSERNSSBlbmFibGVkIHBvcnRzLCBzaW5jZSBIRE1J IGNhbgo+ID4gb25seSBiZSBwcm92aWRlZCBpbiBsZWdhY3kgbW9kZS4gU28gbWFyayBUeXBlQyBI RE1JIGVuYWJsZWQgcG9ydHMgYXMKPiA+IGxlZ2FjeSBhbmQgcnVuIHRoZSBUeXBlQyBQSFkgY29u bmVjdCBzZXF1ZW5jZSBleHBsaWNpdGx5IGR1cmluZyBkcml2ZXIKPiA+IGxvYWRpbmcgYW5kIHN5 c3RlbSByZXN1bWUuIFRoZSBjb25uZWN0IHdpbGwgc3VjY2VlZCBldmVuIGlmIHRoZSBkaXNwbGF5 Cj4gPiBpcyBub3QgY29ubmVjdGVkIHRvIGJlZ2luIHdpdGggKG9yIGRpc2FwcGVhcnMgZHVyaW5n IHRoZSBzdXNwZW5kZWQKPiA+IHN0YXRlKSBzaW5jZSBmb3IgbGVnYWN5IHBvcnRzIHRoZSBQT1JU X1RYX0RGTEVYRFBQTVMgLwo+ID4gRFBfUEhZX01PREVfU1RBVFVTX0NPTVBMRVRFRCBmbGFnIGlz IGFsd2F5cyBzZXQgKGFzIG9wcG9zZWQgdG8gdGhlIFVTQgo+ID4gRFAgYWx0ZXJuYXRlIG1vZGUg d2hlcmUgaXQgZ2V0cyBzZXQgb25seSB3aGVuIGEgZGlzcGxheSBpcyBjb25uZWN0ZWQpLgo+ID4g Cj4gPiBDb3JyZXNwb25kaW5nbHkgcnVuIHRoZSBUeXBlQyBQSFkgZGlzY29ubmVjdCBzZXF1ZW5j ZSBkdXJpbmcgc3lzdGVtCj4gPiBzdXNwZW5kIGFuZCBkcml2ZXIgdW5sb2FkaW5nLCBidXQgZGlz Y29ubmVjdCBkdXJpbmcgc3VzcGVuZCBvbmx5IGZvcgo+ID4gbGVnYWN5IFR5cGVDIG1vZGUuIFdl IHdpbGwgbmVlZCB0byBkaXNjb25uZWN0IGV2ZW4gaW4gVVNCIERQIGFsdGVybmF0ZQo+ID4gbW9k ZSBpbiB0aGUgZnV0dXJlLCBidXQgYXRtIHdlIGRvbid0IGhhdmUgYSB3YXkgdG8gcmVjb25uZWN0 IHRoZSBwb3J0Cj4gPiBpbiB0aGlzIG1vZGUgZHVyaW5nIHJlc3VtZSBpZiB0aGUgZGlzcGxheSBk aXNhcHBlYXJzIHdoaWxlIGJlaW5nCj4gPiBzdXNwZW5kZWQuIFNvIGZvciBub3cgcHVudCBvbiB0 aGlzIGNhc2UuCj4gPiAKPiA+IE5vdGUgdGhhdCB3ZSBkbyBub3QgZGlzY29ubmVjdCB0aGUgcG9y dCBkdXJpbmcgcnVudGltZSBzdXNwZW5kOyBpbgo+ID4gbGVnYWN5IG1vZGUgdGhlcmUgYXJlIG5v IHNoYXJlZCBIVyByZXNvdXJjZXMgKFBIWSBsYW5lcykgd2l0aCBvdGhlciBIVwo+ID4gYmxvY2tz IChVU0IpLCBzbyBubyBuZWVkIHRvIHJlbGVhc2UgLyByZWFjcXVpcmUgdGhlc2UgcmVzb3VyY2Vz IGFzIHdpdGgKPiA+IFVTQiBEUCBhbHRlcm5hdGUgbW9kZS4gVGhlIG9ubHkgcmVhc29uIHRvIGRp c2Nvbm5lY3QgbGVnYWN5IHBvcnRzIGR1cmluZwo+ID4gc3lzdGVtIHN1c3BlbmQgaXMgdGhhdCB0 aGUgUE9SVF9UWF9ERkxFWERQUE1TIC8KPiA+IERQX1BIWV9NT0RFX1NUQVRVU19DT01QTEVURUQg ZmxhZyBtdXN0IGJlIHJlY2hlY2tlZCBhbmQgdGhlIHBvcnQgbXVzdCBiZQo+ID4gY29ubmVjdGVk IGFnYWluIGR1cmluZyBzeXN0ZW0gcmVzdW1lLiBXZSBtYXkgYWxzbyBuZWVkIHRvIHR1cm4gdGhl IGNoZWNrCj4gPiBmb3IgdGhpcyBmbGFnIGludG8gYSBwb2xsLCBkZXBlbmRpbmcgb24gZnVydGhl ciB0ZXN0cyBhbmQgY2xhcmlmaWNhdGlvbnMKPiA+IHdlIGFyZSBleHBlY3RpbmcgZnJvbSBIVy9G VyBwZW9wbGUuCj4gPiAKPiA+IElmIFZCVCBzYXlzIHRoYXQgdGhlIHBvcnQgcHJvdmlkZXMgb25s eSBEUCBmdW5jdGlvbmFsaXR5IHRoZW4gd2UgY2FuJ3QKPiA+IGFzc3VtZSB0aGF0IGl0J3MgYSBs ZWdhY3kgcG9ydCBhcyBmb3IgSERNSSAoc2luY2UgaXQgY291bGQgYXMgd2VsbCBiZQo+ID4gYSBU QlQvRFAgQWx0IGNvbm5lY3RvciksIHNvIHdlJ2xsIHNvbHZlIEhQRCBoYW5kbGluZyBmb3IgdGhl IERQIGNhc2UKPiA+IHdpdGggYSBkaWZmZXJlbnQgbWV0aG9kIGluIHRoZSBuZXh0IHBhdGNoLgo+ ID4gCj4gPiBFdmVudHVhbGx5IC0gaW5zdGVhZCBvZiB0aGUgYWJvdmUgbWV0aG9kIC0gd2UnbGwg ZGVwZW5kIG9uIGFuIGV4cGxpY2l0Cj4gPiBkZXRlY3Rpb24gbWV0aG9kIHByb3ZpZGVkIGVpdGhl ciB2aWEgYSBWQlQgZmxhZyBvciBhIEZXL0hXIHJlZ2lzdGVyIGJvdGgKPiA+IGZvciB0aGUgSERN SSBhbmQgRFAgY2FzZS4KPiA+IAo+ID4gQnVnemlsbGE6IGh0dHBzOi8vYnVncy5mcmVlZGVza3Rv cC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODA3MAo+ID4gQnVnemlsbGE6IGh0dHBzOi8vYnVncy5m cmVlZGVza3RvcC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODkyNAo+ID4gQ2M6IFBhdWxvIFphbm9u aSA8cGF1bG8uci56YW5vbmlAaW50ZWwuY29tPgo+ID4gQ2M6IFZpbGxlIFN5cmrDpGzDpCA8dmls bGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPiBDYzogSm9zw6kgUm9iZXJ0byBkZSBTb3V6 YSA8am9zZS5zb3V6YUBpbnRlbC5jb20+Cj4gPiBDYzogUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZp dmlAaW50ZWwuY29tPgo+ID4gU2lnbmVkLW9mZi1ieTogSW1yZSBEZWFrIDxpbXJlLmRlYWtAaW50 ZWwuY29tPgo+ID4gLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMgfCA1 NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tCj4gPiAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHAuYyAgfCAyOSArKysrKysrKysrKysrKy0tLS0tLS0KPiA+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCB8ICA1ICsrKy0KPiA+ICAzIGZpbGVzIGNo YW5nZWQsIDc1IGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQo+ID4gCj4gPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kZGkuYwo+ID4gaW5kZXggZjNlMWQ2YTBiN2RkLi4yZTQ3ZmZhMWM5NWEgMTAw NjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+ID4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiA+IEBAIC0zOTAxLDkgKzM5MDEsNTAg QEAgc3RhdGljIGJvb2wgaW50ZWxfZGRpX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyLAo+ID4gIAo+ID4gIH0KPiA+ICAKPiA+ICtzdGF0aWMgdm9pZCBpbnRlbF9k ZGlfZW5jb2Rlcl9zdXNwZW5kKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ID4gK3sK PiA+ICsJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQgPSBlbmNfdG9fZGlnX3Bv cnQoJmVuY29kZXItPmJhc2UpOwo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9 IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ID4gKwo+ID4gKwlpbnRlbF9kcF9lbmNvZGVy X3N1c3BlbmQoZW5jb2Rlcik7Cj4gPiArCj4gPiArCS8qCj4gPiArCSAqIFRPRE86IGRpc2Nvbm5l Y3QgYWxzbyBmcm9tIFVTQiBEUCBhbHRlcm5hdGUgbW9kZSBvbmNlIHdlIGhhdmUgYQo+ID4gKwkg KiB3YXkgdG8gaGFuZGxlIHRoZSBtb2Rlc2V0IHJlc3RvcmUgaW4gdGhhdCBtb2RlIGR1cmluZyBy ZXN1bWUKPiA+ICsJICogZXZlbiBpZiB0aGUgc2luayBoYXMgZGlzYXBwZWFyZWQgd2hpbGUgYmVp bmcgc3VzcGVuZGVkLgo+ID4gKwkgKi8KPiA+ICsJaWYgKGRpZ19wb3J0LT50Y19sZWdhY3lfcG9y dCkKPiA+ICsJCWljbF90Y19waHlfZGlzY29ubmVjdChpOTE1LCBkaWdfcG9ydCk7Cj4gPiArfQo+ ID4gKwo+ID4gK3N0YXRpYyB2b2lkIGludGVsX2RkaV9lbmNvZGVyX3Jlc2V0KHN0cnVjdCBkcm1f ZW5jb2RlciAqZHJtX2VuY29kZXIpCj4gPiArewo+ID4gKwlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9w b3J0ICpkaWdfcG9ydCA9IGVuY190b19kaWdfcG9ydChkcm1fZW5jb2Rlcik7Cj4gPiArCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdG9faTkxNShkcm1fZW5jb2Rlci0+ZGV2KTsKPiA+ ICsKPiA+ICsJaWYgKGludGVsX3BvcnRfaXNfdGMoaTkxNSwgZGlnX3BvcnQtPmJhc2UucG9ydCkp Cj4gPiArCQlpbnRlbF9kaWdpdGFsX3BvcnRfY29ubmVjdGVkKCZkaWdfcG9ydC0+YmFzZSk7Cj4g PiArCj4gPiArCWludGVsX2RwX2VuY29kZXJfcmVzZXQoZHJtX2VuY29kZXIpOwo+IAo+IGRvIHdl IG5lZWQgYWxsIG9mIHRoYXQ/CgpZb3UgbWVhbiBpZiB3ZSBuZWVkIHRvIGNhbGwgaW50ZWxfZHBf ZW5jb2Rlcl9yZXNldCgpPyBUaGF0IHdhcyB0aGUKb3JpZ2luYWwgc3RhdGUsIGFzIGJlZm9yZSB0 aGlzIGNoYW5nZSB3ZSBoYWQKCgkucmVzZXQgPSBpbnRlbF9kcF9lbmNvZGVyX3Jlc2V0CgppbiBp bnRlbF9kZGlfZnVuY3MuIAoKPiBvciBjb3VsZCBzaW1wbHkKPiAKPiBpbnRlbF9kcC0+cmVzZXRf bGlua19wYXJhbXMgPSB0cnVlOwo+IAo+IGluc3RlYWQ/ISAKCk5vdCBzdXJlIGhvdyB3ZSBjb3Vs ZCBhdm9pZCBjYWxsaW5nIGludGVsX2RwX2VuY29kZXJfcmVzZXQoKSBoZXJlLCBpdApoYXMgcmVx dWlyZWQgTFNQQ09OIGFuZCBlRFAgc3BlY2lmaWMgcGFydHMuCgo+IAo+ID4gK30KPiA+ICsKPiA+ ICtzdGF0aWMgdm9pZCBpbnRlbF9kZGlfZW5jb2Rlcl9kZXN0cm95KHN0cnVjdCBkcm1fZW5jb2Rl ciAqZW5jb2RlcikKPiA+ICt7Cj4gPiArCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19w b3J0ID0gZW5jX3RvX2RpZ19wb3J0KGVuY29kZXIpOwo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqaTkxNSA9IHRvX2k5MTUoZW5jb2Rlci0+ZGV2KTsKPiA+ICsKPiA+ICsJaW50ZWxfZHBf ZW5jb2Rlcl9mbHVzaF93b3JrKGVuY29kZXIpOwo+ID4gKwo+ID4gKwlpZiAoaW50ZWxfcG9ydF9p c190YyhpOTE1LCBkaWdfcG9ydC0+YmFzZS5wb3J0KSkKPiA+ICsJCWljbF90Y19waHlfZGlzY29u bmVjdChpOTE1LCBkaWdfcG9ydCk7Cj4gPiArCj4gPiArCWRybV9lbmNvZGVyX2NsZWFudXAoZW5j b2Rlcik7Cj4gCj4gYW5kIGhlcmUgZG9uJ3Qgd2UgbmVlZCBzdHVmZiBvbiBpbnRlbF9kcF9lbmNv ZGVyIGRlc3Ryb3kgaGVyZSBsaWtlCj4gaW50ZWxfZHBfYXV4X2Zpbmk/CgpZZXMgd2UgZG8sIHRo YXQncyBwYXJ0IG9mIHRoZSBuZXcgaW50ZWxfZHBfZW5jb2Rlcl9mbHVzaF93b3JrKCkgZnVuYy4K SGFkIHRvIHNwbGl0IHVwIGludGVsX2RwX2VuY29kZXJfZGVzdHJveSgpLCBzaW5jZSB3ZSB3YW50 IHRvIGZsdXNoIGFueQpwZW5kaW5nIHdvcmsgb24gdGhlIGVuY29kZXIgZmlyc3QgKGZvciBpbnN0 YW5jZSBNU1Qgc3BlY2lmaWMgc3R1ZmYpIHRoZW4KZGlzY29ubmVjdCB0aGUgVEMgUEhZLCB0aGVu IGRvIHRoZSBEUk0gY29yZSBjbGVhbnVwIGFuZCBrZnJlZS4gUHJvYmFibHkKc2hvdWxkJ3ZlIGJl ZW4gaW4gdGhlIGNvbW1pdCBsb2cuCgo+IAo+ID4gKwlrZnJlZShkaWdfcG9ydCk7Cj4gPiArfQo+ ID4gKwo+ID4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2VuY29kZXJfZnVuY3MgaW50ZWxfZGRp X2Z1bmNzID0gewo+ID4gLQkucmVzZXQgPSBpbnRlbF9kcF9lbmNvZGVyX3Jlc2V0LAo+ID4gLQku ZGVzdHJveSA9IGludGVsX2RwX2VuY29kZXJfZGVzdHJveSwKPiA+ICsJLnJlc2V0ID0gaW50ZWxf ZGRpX2VuY29kZXJfcmVzZXQsCj4gPiArCS5kZXN0cm95ID0gaW50ZWxfZGRpX2VuY29kZXJfZGVz dHJveSwKPiA+ICB9Owo+ID4gIAo+ID4gIHN0YXRpYyBzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICoK PiA+IEBAIC00MTk3LDcgKzQyMzgsNyBAQCB2b2lkIGludGVsX2RkaV9pbml0KHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwb3J0IHBvcnQpCj4gPiAgCWludGVsX2VuY29k ZXItPnBvc3RfZGlzYWJsZSA9IGludGVsX2RkaV9wb3N0X2Rpc2FibGU7Cj4gPiAgCWludGVsX2Vu Y29kZXItPmdldF9od19zdGF0ZSA9IGludGVsX2RkaV9nZXRfaHdfc3RhdGU7Cj4gPiAgCWludGVs X2VuY29kZXItPmdldF9jb25maWcgPSBpbnRlbF9kZGlfZ2V0X2NvbmZpZzsKPiA+IC0JaW50ZWxf ZW5jb2Rlci0+c3VzcGVuZCA9IGludGVsX2RwX2VuY29kZXJfc3VzcGVuZDsKPiA+ICsJaW50ZWxf ZW5jb2Rlci0+c3VzcGVuZCA9IGludGVsX2RkaV9lbmNvZGVyX3N1c3BlbmQ7Cj4gPiAgCWludGVs X2VuY29kZXItPmdldF9wb3dlcl9kb21haW5zID0gaW50ZWxfZGRpX2dldF9wb3dlcl9kb21haW5z Owo+ID4gIAlpbnRlbF9lbmNvZGVyLT50eXBlID0gSU5URUxfT1VUUFVUX0RESTsKPiA+ICAJaW50 ZWxfZW5jb2Rlci0+cG93ZXJfZG9tYWluID0gaW50ZWxfcG9ydF90b19wb3dlcl9kb21haW4ocG9y dCk7Cj4gPiBAQCAtNDI1Nyw2ICs0Mjk4LDkgQEAgdm9pZCBpbnRlbF9kZGlfaW5pdChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcG9ydCBwb3J0KQo+ID4gIAlpZiAoaW50 ZWxfZW5jb2Rlci0+dHlwZSAhPSBJTlRFTF9PVVRQVVRfRURQICYmIGluaXRfaGRtaSkgewo+ID4g IAkJaWYgKCFpbnRlbF9kZGlfaW5pdF9oZG1pX2Nvbm5lY3RvcihpbnRlbF9kaWdfcG9ydCkpCj4g PiAgCQkJZ290byBlcnI7Cj4gPiArCj4gPiArCQlpZiAoaW50ZWxfcG9ydF9pc190YyhkZXZfcHJp diwgcG9ydCkpCj4gPiArCQkJaW50ZWxfZGlnX3BvcnQtPnRjX2xlZ2FjeV9wb3J0ID0gdHJ1ZTsK PiA+ICAJfQo+ID4gIAo+ID4gIAlpZiAoaW5pdF9sc3Bjb24pIHsKPiA+IEBAIC00Mjc0LDYgKzQz MTgsMTAgQEAgdm9pZCBpbnRlbF9kZGlfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsIGVudW0gcG9ydCBwb3J0KQo+ID4gIAl9Cj4gPiAgCj4gPiAgCWludGVsX2luZm9mcmFt ZV9pbml0KGludGVsX2RpZ19wb3J0KTsKPiA+ICsKPiA+ICsJaWYgKGludGVsX3BvcnRfaXNfdGMo ZGV2X3ByaXYsIHBvcnQpKQo+ID4gKwkJaW50ZWxfZGlnaXRhbF9wb3J0X2Nvbm5lY3RlZChpbnRl bF9lbmNvZGVyKTsKPiA+ICsKPiA+ICAJcmV0dXJuOwo+ID4gIAo+ID4gIGVycjoKPiA+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHAuYwo+ID4gaW5kZXggMDgyNTk0YmI2NWE3Li4xOWU0OWFkYWI1NDggMTAw NjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiBAQCAtNTEwOCw5ICs1MTA4LDYgQEAg c3RhdGljIHZvaWQgaWNsX3VwZGF0ZV90Y19wb3J0X3R5cGUoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LAo+ID4gIAkJCSAgICAgIHRjX3R5cGVfbmFtZShpbnRlbF9kaWdfcG9ydC0+ dGNfdHlwZSkpOwo+ID4gIH0KPiA+ICAKPiA+IC1zdGF0aWMgdm9pZCBpY2xfdGNfcGh5X2Rpc2Nv bm5lY3Qoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gLQkJCQkgIHN0cnVj dCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0KTsKPiA+IC0KPiA+ICAvKgo+ID4gICAqIFRo aXMgZnVuY3Rpb24gaW1wbGVtZW50cyB0aGUgZmlyc3QgcGFydCBvZiB0aGUgQ29ubmVjdCBGbG93 IGRlc2NyaWJlZCBieSBvdXIKPiA+ICAgKiBzcGVjaWZpY2F0aW9uLCBHZW4xMSBUeXBlQyBQcm9n cmFtbWluZyBjaGFwdGVyLiBUaGUgcmVzdCBvZiB0aGUgZmxvdyAocmVhZGluZwo+ID4gQEAgLTUx NDUsNiArNTE0Miw3IEBAIHN0YXRpYyBib29sIGljbF90Y19waHlfY29ubmVjdChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiAgCXZhbCA9IEk5MTVfUkVBRChQT1JUX1RYX0RG TEVYRFBQTVMpOwo+ID4gIAlpZiAoISh2YWwgJiBEUF9QSFlfTU9ERV9TVEFUVVNfQ09NUExFVEVE KHRjX3BvcnQpKSkgewo+ID4gIAkJRFJNX0RFQlVHX0tNUygiRFAgUEhZIGZvciBUQyBwb3J0ICVk IG5vdCByZWFkeVxuIiwgdGNfcG9ydCk7Cj4gPiArCQlXQVJOX09OKGRpZ19wb3J0LT50Y19sZWdh Y3lfcG9ydCk7Cj4gPiAgCQlyZXR1cm4gZmFsc2U7Cj4gPiAgCX0KPiA+ICAKPiA+IEBAIC01MTc2 LDggKzUxNzQsOCBAQCBzdGF0aWMgYm9vbCBpY2xfdGNfcGh5X2Nvbm5lY3Qoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gICAqIFNlZSB0aGUgY29tbWVudCBhdCB0aGUgY29u bmVjdCBmdW5jdGlvbi4gVGhpcyBpbXBsZW1lbnRzIHRoZSBEaXNjb25uZWN0Cj4gPiAgICogRmxv dy4KPiA+ICAgKi8KPiA+IC1zdGF0aWMgdm9pZCBpY2xfdGNfcGh5X2Rpc2Nvbm5lY3Qoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gLQkJCQkgIHN0cnVjdCBpbnRlbF9kaWdp dGFsX3BvcnQgKmRpZ19wb3J0KQo+ID4gK3ZvaWQgaWNsX3RjX3BoeV9kaXNjb25uZWN0KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ICsJCQkgICBzdHJ1Y3QgaW50ZWxfZGln aXRhbF9wb3J0ICpkaWdfcG9ydCkKPiA+ICB7Cj4gPiAgCWVudW0gdGNfcG9ydCB0Y19wb3J0ID0g aW50ZWxfcG9ydF90b190YyhkZXZfcHJpdiwgZGlnX3BvcnQtPmJhc2UucG9ydCk7Cj4gPiAgCj4g PiBAQCAtNTIyMiw3ICs1MjIwLDggQEAgc3RhdGljIGJvb2wgaWNsX3RjX3BvcnRfY29ubmVjdGVk KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ICAJYm9vbCBpc19sZWdhY3ks IGlzX3R5cGVjLCBpc190YnQ7Cj4gPiAgCXUzMiBkcHNwOwo+ID4gIAo+ID4gLQlpc19sZWdhY3kg PSBJOTE1X1JFQUQoU0RFSVNSKSAmIFNERV9UQ19IT1RQTFVHX0lDUCh0Y19wb3J0KTsKPiA+ICsJ aXNfbGVnYWN5ID0gaW50ZWxfZGlnX3BvcnQtPnRjX2xlZ2FjeV9wb3J0IHx8Cj4gPiArCQlJOTE1 X1JFQUQoU0RFSVNSKSAmIFNERV9UQ19IT1RQTFVHX0lDUCh0Y19wb3J0KTsKPiA+ICAKPiA+ICAJ LyoKPiA+ICAJICogVGhlIHNwZWMgc2F5cyB3ZSBzaG91bGRuJ3QgYmUgdXNpbmcgdGhlIElTUiBi aXRzIGZvciBkZXRlY3RpbmcKPiA+IEBAIC01MjMzLDcgKzUyMzIsMTQgQEAgc3RhdGljIGJvb2wg aWNsX3RjX3BvcnRfY29ubmVjdGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK PiA+ICAJaXNfdGJ0ID0gZHBzcCAmIFRDX0xJVkVfU1RBVEVfVEJUKHRjX3BvcnQpOwo+ID4gIAo+ ID4gIAlpZiAoIWlzX2xlZ2FjeSAmJiAhaXNfdHlwZWMgJiYgIWlzX3RidCkgewo+ID4gLQkJaWNs X3RjX3BoeV9kaXNjb25uZWN0KGRldl9wcml2LCBpbnRlbF9kaWdfcG9ydCk7Cj4gPiArCQkvKgo+ ID4gKwkJICogV2UgZGlzY29ubmVjdCBmcm9tIGxlZ2FjeSBtb2RlIG9ubHkgZHVyaW5nIHN5c3Rl bQo+ID4gKwkJICogc3VzcGVuZCBhbmQgZHJpdmVyIHVubG9hZGluZywgb3RoZXJ3aXNlIHdlIGtl ZXAgdGhlIHBvcnQgaW4KPiA+ICsJCSAqIGxlZ2FjeSBtb2RlIGV2ZW4gYWZ0ZXIgYW4gSFBEIGRp c2Nvbm5lY3QgZXZlbnQuCj4gPiArCQkgKi8KPiA+ICsJCWlmIChpbnRlbF9kaWdfcG9ydC0+dGNf dHlwZSAhPSBUQ19QT1JUX0xFR0FDWSkKPiA+ICsJCQlpY2xfdGNfcGh5X2Rpc2Nvbm5lY3QoZGV2 X3ByaXYsIGludGVsX2RpZ19wb3J0KTsKPiA+ICsKPiA+ICAJCXJldHVybiBmYWxzZTsKPiA+ICAJ fQo+ID4gIAo+ID4gQEAgLTU1NDIsNyArNTU0OCw3IEBAIGludGVsX2RwX2Nvbm5lY3Rvcl91bnJl Z2lzdGVyKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4gPiAgCWludGVsX2Nvbm5l Y3Rvcl91bnJlZ2lzdGVyKGNvbm5lY3Rvcik7Cj4gPiAgfQo+ID4gIAo+ID4gLXZvaWQgaW50ZWxf ZHBfZW5jb2Rlcl9kZXN0cm95KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKPiA+ICt2b2lk IGludGVsX2RwX2VuY29kZXJfZmx1c2hfd29yayhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIp Cj4gPiAgewo+ID4gIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9 IGVuY190b19kaWdfcG9ydChlbmNvZGVyKTsKPiA+ICAJc3RydWN0IGludGVsX2RwICppbnRlbF9k cCA9ICZpbnRlbF9kaWdfcG9ydC0+ZHA7Cj4gPiBAQCAtNTU2NSw5ICs1NTcxLDE0IEBAIHZvaWQg aW50ZWxfZHBfZW5jb2Rlcl9kZXN0cm95KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKPiA+ ICAJfQo+ID4gIAo+ID4gIAlpbnRlbF9kcF9hdXhfZmluaShpbnRlbF9kcCk7Cj4gPiArfQo+ID4g Kwo+ID4gK3N0YXRpYyB2b2lkIGludGVsX2RwX2VuY29kZXJfZGVzdHJveShzdHJ1Y3QgZHJtX2Vu Y29kZXIgKmVuY29kZXIpCj4gPiArewo+ID4gKwlpbnRlbF9kcF9lbmNvZGVyX2ZsdXNoX3dvcmso ZW5jb2Rlcik7Cj4gPiAgCj4gPiAgCWRybV9lbmNvZGVyX2NsZWFudXAoZW5jb2Rlcik7Cj4gPiAt CWtmcmVlKGludGVsX2RpZ19wb3J0KTsKPiA+ICsJa2ZyZWUoZW5jX3RvX2RpZ19wb3J0KGVuY29k ZXIpKTsKPiA+ICB9Cj4gPiAgCj4gPiAgdm9pZCBpbnRlbF9kcF9lbmNvZGVyX3N1c3BlbmQoc3Ry dWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIpCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaAo+ID4gaW5kZXggZDA4ZjA4ZjYwN2RkLi45N2M0MjJiZWE3ZmIgMTAwNjQ0Cj4gPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+IEBAIC0xMjM0LDYgKzEyMzQsNyBAQCBzdHJ1Y3QgaW50 ZWxfZGlnaXRhbF9wb3J0IHsKPiA+ICAJLyogVXNlZCBmb3IgRFAgYW5kIElDTCsgVHlwZUMvRFAg YW5kIFR5cGVDL0hETUkgcG9ydHMuICovCj4gPiAgCWVudW0gYXV4X2NoIGF1eF9jaDsKPiA+ICAJ ZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiBkZGlfaW9fcG93ZXJfZG9tYWluOwo+ID4g Kwlib29sIHRjX2xlZ2FjeV9wb3J0OjE7Cj4gPiAgCWVudW0gdGNfcG9ydF90eXBlIHRjX3R5cGU7 Cj4gPiAgCj4gPiAgCXZvaWQgKCp3cml0ZV9pbmZvZnJhbWUpKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyLAo+ID4gQEAgLTE4MDYsNyArMTgwNyw3IEBAIHZvaWQgaW50ZWxfZHBfc2lua19z ZXRfZGVjb21wcmVzc2lvbl9zdGF0ZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ID4gIAkJ CQkJICAgYm9vbCBlbmFibGUpOwo+ID4gIHZvaWQgaW50ZWxfZHBfZW5jb2Rlcl9yZXNldChzdHJ1 Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpOwo+ID4gIHZvaWQgaW50ZWxfZHBfZW5jb2Rlcl9zdXNw ZW5kKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyKTsKPiA+IC12b2lkIGludGVs X2RwX2VuY29kZXJfZGVzdHJveShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpOwo+ID4gK3Zv aWQgaW50ZWxfZHBfZW5jb2Rlcl9mbHVzaF93b3JrKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rl cik7Cj4gPiAgYm9vbCBpbnRlbF9kcF9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlciwKPiA+ICAJCQkgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2Nv bmZpZywKPiA+ICAJCQkgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRl KTsKPiA+IEBAIC0xODc0LDYgKzE4NzUsOCBAQCBib29sIGludGVsX2RwX3JlYWRfZHBjZChzdHJ1 Y3QgaW50ZWxfZHAgKmludGVsX2RwKTsKPiA+ICBpbnQgaW50ZWxfZHBfbGlua19yZXF1aXJlZChp bnQgcGl4ZWxfY2xvY2ssIGludCBicHApOwo+ID4gIGludCBpbnRlbF9kcF9tYXhfZGF0YV9yYXRl KGludCBtYXhfbGlua19jbG9jaywgaW50IG1heF9sYW5lcyk7Cj4gPiAgYm9vbCBpbnRlbF9kaWdp dGFsX3BvcnRfY29ubmVjdGVkKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKTsKPiA+ICt2 b2lkIGljbF90Y19waHlfZGlzY29ubmVjdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCj4gPiArCQkJICAgc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpOwo+ID4g IAo+ID4gIC8qIGludGVsX2RwX2F1eF9iYWNrbGlnaHQuYyAqLwo+ID4gIGludCBpbnRlbF9kcF9h dXhfaW5pdF9iYWNrbGlnaHRfZnVuY3Moc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29u bmVjdG9yKTsKPiA+IC0tIAo+ID4gMi4xMy4yCj4gPiAKPiA+IF9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4g PiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPiBodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeApfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK