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: Fri, 14 Dec 2018 14:22:09 -0800 Message-ID: <20181214222209.GB31365@intel.com> References: <20181213194850.25406-1-imre.deak@intel.com> <20181213194850.25406-3-imre.deak@intel.com> <20181213210651.GC1681@intel.com> <20181213232507.GA26382@ideak-desk.fi.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id A0C086F6E3 for ; Fri, 14 Dec 2018 22:22:10 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20181213232507.GA26382@ideak-desk.fi.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 T24gRnJpLCBEZWMgMTQsIDIwMTggYXQgMDE6MjU6MDdBTSArMDIwMCwgSW1yZSBEZWFrIHdyb3Rl Ogo+IE9uIFRodSwgRGVjIDEzLCAyMDE4IGF0IDAxOjA2OjUxUE0gLTA4MDAsIFJvZHJpZ28gVml2 aSB3cm90ZToKPiA+IE9uIFRodSwgRGVjIDEzLCAyMDE4IGF0IDA5OjQ4OjQ5UE0gKzAyMDAsIElt cmUgRGVhayB3cm90ZToKPiA+ID4gQXRtIEhQRCBkaXNjb25uZWN0IGV2ZW50cyBvbiBUeXBlQyBw b3J0cyB3aWxsIGJyZWFrIHRoaW5ncywgc2luY2Ugd2UnbGwKPiA+ID4gc3dpdGNoIHRoZSBUeXBl QyBtb2RlIChiZXR3ZWVuIExlZ2FjeSBhbmQgZGlzY29ubmVjdGVkIG1vZGVzIGFzIHdlbGwgYXMK PiA+ID4gYW1vbmcgVVNCIERQIGFsdGVybmF0ZSwgVGh1bmRlcmJvbHQgYWx0ZXJuYXRlIGFuZCBk aXNjb25uZWN0ZWQgbW9kZXMpIG9uCj4gPiA+IHRoZSBmbHkgZnJvbSB0aGUgSFBEIGRpc2Nvbm5l Y3QgaW50ZXJydXB0IHdvcmsgd2hpbGUgdGhlIHBvcnQgbWF5IGJlCj4gPiA+IHN0aWxsIGFjdGl2 ZS4KPiA+ID4gCj4gPiA+IEV2ZW4gaWYgdGhlIHBvcnQgaGFwcGVucyB0byBiZSBub3QgYWN0aXZl IGR1cmluZyB0aGUgZGlzY29ubmVjdCB3ZSdkCj4gPiA+IHN0aWxsIGhhdmUgYSBwcm9ibGVtIGR1 cmluZyBhIHN1YnNlcXVlbnQgbW9kZXNldCBvciBBVVggdHJhbnNmZXIgdGhhdAo+ID4gPiBjb3Vs ZCBoYXBwZW4gcmVnYXJkbGVzcyBvZiB0aGUgcG9ydCdzIGNvbm5lY3RlZCBzdGF0ZS4gRm9yIGlu c3RhbmNlIHRoZQo+ID4gPiBzeXN0ZW0gcmVzdW1lIGRpc3BsYXkgbW9kZSByZXN0b3JlIGNvZGUg YW5kIHVzZXJzcGFjZSBjb3VsZCBwZXJmb3JtIGEKPiA+ID4gbW9kZXNldCBvbiB0aGUgcG9ydCBv ciB1c2Vyc3BhY2UgY291bGQgc3RhcnQgYW4gQVVYIHRyYW5zZmVyIGV2ZW4gaWYgdGhlCj4gPiA+ IHBvcnQgaXMgaW4gZGlzY29ubmVjdGVkIHN0YXRlLgo+ID4gPiAKPiA+ID4gVG8gZml4IHRoaXMg a2VlcCBsZWdhY3kgVHlwZUMgcG9ydHMgaW4gVHlwZUMgbGVnYWN5IG1vZGUgd2hlbmV2ZXIgd2Un cmUKPiA+ID4gbm90IHN1c3BlbmRlZC4gVGhlIGxlZ2FjeSBtb2RlIGlzIGEgc3RhdGljIGNvbmZp Z3VyYXRpb24gYXMgb3Bwb3NlZCB0bwo+ID4gPiB0aGUgVGh1bmRlcmJvbHQgYW5kIFVTQiBEUCBh bHRlcm5hdGUgbW9kZXMgYmV0d2VlbiB3aGljaCB3ZSBjYW4gc3dpdGNoCj4gPiA+IGR5bmFtaWNh bGx5Lgo+ID4gPiAKPiA+ID4gV2UgZG9uJ3QgaGF2ZSB5ZXQgYW4gZXhwbGljaXQgd2F5IHRvIGRl dGVjdCBUeXBlQyBsZWdhY3kgcG9ydHMsIGJ1dCB3ZQo+ID4gPiBjYW4gaW1wbHkgdGhhdCBhdCBs ZWFzdCBpbiBjYXNlIG9mIEhETUkgZW5hYmxlZCBwb3J0cywgc2luY2UgSERNSSBjYW4KPiA+ID4g b25seSBiZSBwcm92aWRlZCBpbiBsZWdhY3kgbW9kZS4gU28gbWFyayBUeXBlQyBIRE1JIGVuYWJs ZWQgcG9ydHMgYXMKPiA+ID4gbGVnYWN5IGFuZCBydW4gdGhlIFR5cGVDIFBIWSBjb25uZWN0IHNl cXVlbmNlIGV4cGxpY2l0bHkgZHVyaW5nIGRyaXZlcgo+ID4gPiBsb2FkaW5nIGFuZCBzeXN0ZW0g cmVzdW1lLiBUaGUgY29ubmVjdCB3aWxsIHN1Y2NlZWQgZXZlbiBpZiB0aGUgZGlzcGxheQo+ID4g PiBpcyBub3QgY29ubmVjdGVkIHRvIGJlZ2luIHdpdGggKG9yIGRpc2FwcGVhcnMgZHVyaW5nIHRo ZSBzdXNwZW5kZWQKPiA+ID4gc3RhdGUpIHNpbmNlIGZvciBsZWdhY3kgcG9ydHMgdGhlIFBPUlRf VFhfREZMRVhEUFBNUyAvCj4gPiA+IERQX1BIWV9NT0RFX1NUQVRVU19DT01QTEVURUQgZmxhZyBp cyBhbHdheXMgc2V0IChhcyBvcHBvc2VkIHRvIHRoZSBVU0IKPiA+ID4gRFAgYWx0ZXJuYXRlIG1v ZGUgd2hlcmUgaXQgZ2V0cyBzZXQgb25seSB3aGVuIGEgZGlzcGxheSBpcyBjb25uZWN0ZWQpLgo+ ID4gPiAKPiA+ID4gQ29ycmVzcG9uZGluZ2x5IHJ1biB0aGUgVHlwZUMgUEhZIGRpc2Nvbm5lY3Qg c2VxdWVuY2UgZHVyaW5nIHN5c3RlbQo+ID4gPiBzdXNwZW5kIGFuZCBkcml2ZXIgdW5sb2FkaW5n LCBidXQgZGlzY29ubmVjdCBkdXJpbmcgc3VzcGVuZCBvbmx5IGZvcgo+ID4gPiBsZWdhY3kgVHlw ZUMgbW9kZS4gV2Ugd2lsbCBuZWVkIHRvIGRpc2Nvbm5lY3QgZXZlbiBpbiBVU0IgRFAgYWx0ZXJu YXRlCj4gPiA+IG1vZGUgaW4gdGhlIGZ1dHVyZSwgYnV0IGF0bSB3ZSBkb24ndCBoYXZlIGEgd2F5 IHRvIHJlY29ubmVjdCB0aGUgcG9ydAo+ID4gPiBpbiB0aGlzIG1vZGUgZHVyaW5nIHJlc3VtZSBp ZiB0aGUgZGlzcGxheSBkaXNhcHBlYXJzIHdoaWxlIGJlaW5nCj4gPiA+IHN1c3BlbmRlZC4gU28g Zm9yIG5vdyBwdW50IG9uIHRoaXMgY2FzZS4KPiA+ID4gCj4gPiA+IE5vdGUgdGhhdCB3ZSBkbyBu b3QgZGlzY29ubmVjdCB0aGUgcG9ydCBkdXJpbmcgcnVudGltZSBzdXNwZW5kOyBpbgo+ID4gPiBs ZWdhY3kgbW9kZSB0aGVyZSBhcmUgbm8gc2hhcmVkIEhXIHJlc291cmNlcyAoUEhZIGxhbmVzKSB3 aXRoIG90aGVyIEhXCj4gPiA+IGJsb2NrcyAoVVNCKSwgc28gbm8gbmVlZCB0byByZWxlYXNlIC8g cmVhY3F1aXJlIHRoZXNlIHJlc291cmNlcyBhcyB3aXRoCj4gPiA+IFVTQiBEUCBhbHRlcm5hdGUg bW9kZS4gVGhlIG9ubHkgcmVhc29uIHRvIGRpc2Nvbm5lY3QgbGVnYWN5IHBvcnRzIGR1cmluZwo+ ID4gPiBzeXN0ZW0gc3VzcGVuZCBpcyB0aGF0IHRoZSBQT1JUX1RYX0RGTEVYRFBQTVMgLwo+ID4g PiBEUF9QSFlfTU9ERV9TVEFUVVNfQ09NUExFVEVEIGZsYWcgbXVzdCBiZSByZWNoZWNrZWQgYW5k IHRoZSBwb3J0IG11c3QgYmUKPiA+ID4gY29ubmVjdGVkIGFnYWluIGR1cmluZyBzeXN0ZW0gcmVz dW1lLiBXZSBtYXkgYWxzbyBuZWVkIHRvIHR1cm4gdGhlIGNoZWNrCj4gPiA+IGZvciB0aGlzIGZs YWcgaW50byBhIHBvbGwsIGRlcGVuZGluZyBvbiBmdXJ0aGVyIHRlc3RzIGFuZCBjbGFyaWZpY2F0 aW9ucwo+ID4gPiB3ZSBhcmUgZXhwZWN0aW5nIGZyb20gSFcvRlcgcGVvcGxlLgo+ID4gPiAKPiA+ ID4gSWYgVkJUIHNheXMgdGhhdCB0aGUgcG9ydCBwcm92aWRlcyBvbmx5IERQIGZ1bmN0aW9uYWxp dHkgdGhlbiB3ZSBjYW4ndAo+ID4gPiBhc3N1bWUgdGhhdCBpdCdzIGEgbGVnYWN5IHBvcnQgYXMg Zm9yIEhETUkgKHNpbmNlIGl0IGNvdWxkIGFzIHdlbGwgYmUKPiA+ID4gYSBUQlQvRFAgQWx0IGNv bm5lY3RvciksIHNvIHdlJ2xsIHNvbHZlIEhQRCBoYW5kbGluZyBmb3IgdGhlIERQIGNhc2UKPiA+ ID4gd2l0aCBhIGRpZmZlcmVudCBtZXRob2QgaW4gdGhlIG5leHQgcGF0Y2guCj4gPiA+IAo+ID4g PiBFdmVudHVhbGx5IC0gaW5zdGVhZCBvZiB0aGUgYWJvdmUgbWV0aG9kIC0gd2UnbGwgZGVwZW5k IG9uIGFuIGV4cGxpY2l0Cj4gPiA+IGRldGVjdGlvbiBtZXRob2QgcHJvdmlkZWQgZWl0aGVyIHZp YSBhIFZCVCBmbGFnIG9yIGEgRlcvSFcgcmVnaXN0ZXIgYm90aAo+ID4gPiBmb3IgdGhlIEhETUkg YW5kIERQIGNhc2UuCj4gPiA+IAo+ID4gPiBCdWd6aWxsYTogaHR0cHM6Ly9idWdzLmZyZWVkZXNr dG9wLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4MDcwCj4gPiA+IEJ1Z3ppbGxhOiBodHRwczovL2J1 Z3MuZnJlZWRlc2t0b3Aub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg5MjQKPiA+ID4gQ2M6IFBhdWxv IFphbm9uaSA8cGF1bG8uci56YW5vbmlAaW50ZWwuY29tPgo+ID4gPiBDYzogVmlsbGUgU3lyasOk bMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+ID4gQ2M6IEpvc8OpIFJvYmVy dG8gZGUgU291emEgPGpvc2Uuc291emFAaW50ZWwuY29tPgo+ID4gPiBDYzogUm9kcmlnbyBWaXZp IDxyb2RyaWdvLnZpdmlAaW50ZWwuY29tPgo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBJbXJlIERlYWsg PGltcmUuZGVha0BpbnRlbC5jb20+Cj4gPiA+IC0tLQo+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGRpLmMgfCA1NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr LS0tCj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jICB8IDI5ICsrKysrKysr KysrKysrLS0tLS0tLQo+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggfCAg NSArKystCj4gPiA+ICAzIGZpbGVzIGNoYW5nZWQsIDc1IGluc2VydGlvbnMoKyksIDEzIGRlbGV0 aW9ucygtKQo+ID4gPiAKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RkaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiA+ID4gaW5kZXgg ZjNlMWQ2YTBiN2RkLi4yZTQ3ZmZhMWM5NWEgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RkaS5jCj4gPiA+IEBAIC0zOTAxLDkgKzM5MDEsNTAgQEAgc3RhdGljIGJvb2wgaW50ZWxf ZGRpX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gPiAg Cj4gPiA+ICB9Cj4gPiA+ICAKPiA+ID4gK3N0YXRpYyB2b2lkIGludGVsX2RkaV9lbmNvZGVyX3N1 c3BlbmQoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gPiA+ICt7Cj4gPiA+ICsJc3Ry dWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQgPSBlbmNfdG9fZGlnX3BvcnQoJmVuY29k ZXItPmJhc2UpOwo+ID4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdG9faTkx NShlbmNvZGVyLT5iYXNlLmRldik7Cj4gPiA+ICsKPiA+ID4gKwlpbnRlbF9kcF9lbmNvZGVyX3N1 c3BlbmQoZW5jb2Rlcik7Cj4gPiA+ICsKPiA+ID4gKwkvKgo+ID4gPiArCSAqIFRPRE86IGRpc2Nv bm5lY3QgYWxzbyBmcm9tIFVTQiBEUCBhbHRlcm5hdGUgbW9kZSBvbmNlIHdlIGhhdmUgYQo+ID4g PiArCSAqIHdheSB0byBoYW5kbGUgdGhlIG1vZGVzZXQgcmVzdG9yZSBpbiB0aGF0IG1vZGUgZHVy aW5nIHJlc3VtZQo+ID4gPiArCSAqIGV2ZW4gaWYgdGhlIHNpbmsgaGFzIGRpc2FwcGVhcmVkIHdo aWxlIGJlaW5nIHN1c3BlbmRlZC4KPiA+ID4gKwkgKi8KPiA+ID4gKwlpZiAoZGlnX3BvcnQtPnRj X2xlZ2FjeV9wb3J0KQo+ID4gPiArCQlpY2xfdGNfcGh5X2Rpc2Nvbm5lY3QoaTkxNSwgZGlnX3Bv cnQpOwo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICtzdGF0aWMgdm9pZCBpbnRlbF9kZGlfZW5jb2Rl cl9yZXNldChzdHJ1Y3QgZHJtX2VuY29kZXIgKmRybV9lbmNvZGVyKQo+ID4gPiArewo+ID4gPiAr CXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0gZW5jX3RvX2RpZ19wb3J0KGRy bV9lbmNvZGVyKTsKPiA+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRvX2k5 MTUoZHJtX2VuY29kZXItPmRldik7Cj4gPiA+ICsKPiA+ID4gKwlpZiAoaW50ZWxfcG9ydF9pc190 YyhpOTE1LCBkaWdfcG9ydC0+YmFzZS5wb3J0KSkKPiA+ID4gKwkJaW50ZWxfZGlnaXRhbF9wb3J0 X2Nvbm5lY3RlZCgmZGlnX3BvcnQtPmJhc2UpOwo+ID4gPiArCj4gPiA+ICsJaW50ZWxfZHBfZW5j b2Rlcl9yZXNldChkcm1fZW5jb2Rlcik7Cj4gPiAKPiA+IGRvIHdlIG5lZWQgYWxsIG9mIHRoYXQ/ Cj4gCj4gWW91IG1lYW4gaWYgd2UgbmVlZCB0byBjYWxsIGludGVsX2RwX2VuY29kZXJfcmVzZXQo KT8gVGhhdCB3YXMgdGhlCj4gb3JpZ2luYWwgc3RhdGUsIGFzIGJlZm9yZSB0aGlzIGNoYW5nZSB3 ZSBoYWQKCnllcy4KCj4gCj4gCS5yZXNldCA9IGludGVsX2RwX2VuY29kZXJfcmVzZXQKPiAKPiBp biBpbnRlbF9kZGlfZnVuY3MuIAo+IAo+ID4gb3IgY291bGQgc2ltcGx5Cj4gPiAKPiA+IGludGVs X2RwLT5yZXNldF9saW5rX3BhcmFtcyA9IHRydWU7Cj4gPiAKPiA+IGluc3RlYWQ/ISAKPiAKPiBO b3Qgc3VyZSBob3cgd2UgY291bGQgYXZvaWQgY2FsbGluZyBpbnRlbF9kcF9lbmNvZGVyX3Jlc2V0 KCkgaGVyZSwgaXQKPiBoYXMgcmVxdWlyZWQgTFNQQ09OIGFuZCBlRFAgc3BlY2lmaWMgcGFydHMu CgpJIGhhZCBpbiBteSBtaW5kIHRoZSB0eXBlX2Mgb25seSwgc29ycnkuCgpCdXQgbm93IHdoYXQg SSBkb24ndCB1bmRlcnN0YW5kIGlzIHdoeSB3ZSBkb24ndCBuZWVkIHRvIGRvIHRoZSBzYW1lCmFu ZCBjYWxsIGludGVsX2RwX2VuY29kZXJfZGVzdHJveSBmcm9tIGluc2lkZSBpbnRlbF9kZGlfZW5j b2Rlcl9kZXN0cm95LgppdCBzZWVtcyB0aGF0IHdlIHdpbGwgbG9vc2Ugc29tZSBMU1BDT04gYW5k IGVEUCB0aGVyZSBhcyB3ZWxsLi4uCgo+IAo+ID4gCj4gPiA+ICt9Cj4gPiA+ICsKPiA+ID4gK3N0 YXRpYyB2b2lkIGludGVsX2RkaV9lbmNvZGVyX2Rlc3Ryb3koc3RydWN0IGRybV9lbmNvZGVyICpl bmNvZGVyKQo+ID4gPiArewo+ID4gPiArCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19w b3J0ID0gZW5jX3RvX2RpZ19wb3J0KGVuY29kZXIpOwo+ID4gPiArCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICppOTE1ID0gdG9faTkxNShlbmNvZGVyLT5kZXYpOwo+ID4gPiArCj4gPiA+ICsJaW50 ZWxfZHBfZW5jb2Rlcl9mbHVzaF93b3JrKGVuY29kZXIpOwo+ID4gPiArCj4gPiA+ICsJaWYgKGlu dGVsX3BvcnRfaXNfdGMoaTkxNSwgZGlnX3BvcnQtPmJhc2UucG9ydCkpCj4gPiA+ICsJCWljbF90 Y19waHlfZGlzY29ubmVjdChpOTE1LCBkaWdfcG9ydCk7Cj4gPiA+ICsKPiA+ID4gKwlkcm1fZW5j b2Rlcl9jbGVhbnVwKGVuY29kZXIpOwo+ID4gCj4gPiBhbmQgaGVyZSBkb24ndCB3ZSBuZWVkIHN0 dWZmIG9uIGludGVsX2RwX2VuY29kZXIgZGVzdHJveSBoZXJlIGxpa2UKPiA+IGludGVsX2RwX2F1 eF9maW5pPwo+IAo+IFllcyB3ZSBkbywgdGhhdCdzIHBhcnQgb2YgdGhlIG5ldyBpbnRlbF9kcF9l bmNvZGVyX2ZsdXNoX3dvcmsoKSBmdW5jLgo+IEhhZCB0byBzcGxpdCB1cCBpbnRlbF9kcF9lbmNv ZGVyX2Rlc3Ryb3koKSwgc2luY2Ugd2Ugd2FudCB0byBmbHVzaCBhbnkKPiBwZW5kaW5nIHdvcmsg b24gdGhlIGVuY29kZXIgZmlyc3QgKGZvciBpbnN0YW5jZSBNU1Qgc3BlY2lmaWMgc3R1ZmYpIHRo ZW4KPiBkaXNjb25uZWN0IHRoZSBUQyBQSFksIHRoZW4gZG8gdGhlIERSTSBjb3JlIGNsZWFudXAg YW5kIGtmcmVlLiBQcm9iYWJseQo+IHNob3VsZCd2ZSBiZWVuIGluIHRoZSBjb21taXQgbG9nLgo+ IAo+ID4gCj4gPiA+ICsJa2ZyZWUoZGlnX3BvcnQpOwo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICBz dGF0aWMgY29uc3Qgc3RydWN0IGRybV9lbmNvZGVyX2Z1bmNzIGludGVsX2RkaV9mdW5jcyA9IHsK PiA+ID4gLQkucmVzZXQgPSBpbnRlbF9kcF9lbmNvZGVyX3Jlc2V0LAo+ID4gPiAtCS5kZXN0cm95 ID0gaW50ZWxfZHBfZW5jb2Rlcl9kZXN0cm95LAo+ID4gPiArCS5yZXNldCA9IGludGVsX2RkaV9l bmNvZGVyX3Jlc2V0LAo+ID4gPiArCS5kZXN0cm95ID0gaW50ZWxfZGRpX2VuY29kZXJfZGVzdHJv eSwKPiA+ID4gIH07Cj4gPiA+ICAKPiA+ID4gIHN0YXRpYyBzdHJ1Y3QgaW50ZWxfY29ubmVjdG9y ICoKPiA+ID4gQEAgLTQxOTcsNyArNDIzOCw3IEBAIHZvaWQgaW50ZWxfZGRpX2luaXQoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBvcnQgcG9ydCkKPiA+ID4gIAlpbnRl bF9lbmNvZGVyLT5wb3N0X2Rpc2FibGUgPSBpbnRlbF9kZGlfcG9zdF9kaXNhYmxlOwo+ID4gPiAg CWludGVsX2VuY29kZXItPmdldF9od19zdGF0ZSA9IGludGVsX2RkaV9nZXRfaHdfc3RhdGU7Cj4g PiA+ICAJaW50ZWxfZW5jb2Rlci0+Z2V0X2NvbmZpZyA9IGludGVsX2RkaV9nZXRfY29uZmlnOwo+ ID4gPiAtCWludGVsX2VuY29kZXItPnN1c3BlbmQgPSBpbnRlbF9kcF9lbmNvZGVyX3N1c3BlbmQ7 Cj4gPiA+ICsJaW50ZWxfZW5jb2Rlci0+c3VzcGVuZCA9IGludGVsX2RkaV9lbmNvZGVyX3N1c3Bl bmQ7Cj4gPiA+ICAJaW50ZWxfZW5jb2Rlci0+Z2V0X3Bvd2VyX2RvbWFpbnMgPSBpbnRlbF9kZGlf Z2V0X3Bvd2VyX2RvbWFpbnM7Cj4gPiA+ICAJaW50ZWxfZW5jb2Rlci0+dHlwZSA9IElOVEVMX09V VFBVVF9EREk7Cj4gPiA+ICAJaW50ZWxfZW5jb2Rlci0+cG93ZXJfZG9tYWluID0gaW50ZWxfcG9y dF90b19wb3dlcl9kb21haW4ocG9ydCk7Cj4gPiA+IEBAIC00MjU3LDYgKzQyOTgsOSBAQCB2b2lk IGludGVsX2RkaV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBw b3J0IHBvcnQpCj4gPiA+ICAJaWYgKGludGVsX2VuY29kZXItPnR5cGUgIT0gSU5URUxfT1VUUFVU X0VEUCAmJiBpbml0X2hkbWkpIHsKPiA+ID4gIAkJaWYgKCFpbnRlbF9kZGlfaW5pdF9oZG1pX2Nv bm5lY3RvcihpbnRlbF9kaWdfcG9ydCkpCj4gPiA+ICAJCQlnb3RvIGVycjsKPiA+ID4gKwo+ID4g PiArCQlpZiAoaW50ZWxfcG9ydF9pc190YyhkZXZfcHJpdiwgcG9ydCkpCj4gPiA+ICsJCQlpbnRl bF9kaWdfcG9ydC0+dGNfbGVnYWN5X3BvcnQgPSB0cnVlOwo+ID4gPiAgCX0KPiA+ID4gIAo+ID4g PiAgCWlmIChpbml0X2xzcGNvbikgewo+ID4gPiBAQCAtNDI3NCw2ICs0MzE4LDEwIEBAIHZvaWQg aW50ZWxfZGRpX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBv cnQgcG9ydCkKPiA+ID4gIAl9Cj4gPiA+ICAKPiA+ID4gIAlpbnRlbF9pbmZvZnJhbWVfaW5pdChp bnRlbF9kaWdfcG9ydCk7Cj4gPiA+ICsKPiA+ID4gKwlpZiAoaW50ZWxfcG9ydF9pc190YyhkZXZf cHJpdiwgcG9ydCkpCj4gPiA+ICsJCWludGVsX2RpZ2l0YWxfcG9ydF9jb25uZWN0ZWQoaW50ZWxf ZW5jb2Rlcik7Cj4gPiA+ICsKPiA+ID4gIAlyZXR1cm47Cj4gPiA+ICAKPiA+ID4gIGVycjoKPiA+ ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiA+IGluZGV4IDA4MjU5NGJiNjVhNy4uMTllNDlh ZGFiNTQ4IDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5j Cj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiA+ID4gQEAgLTUx MDgsOSArNTEwOCw2IEBAIHN0YXRpYyB2b2lkIGljbF91cGRhdGVfdGNfcG9ydF90eXBlKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ID4gIAkJCSAgICAgIHRjX3R5cGVfbmFt ZShpbnRlbF9kaWdfcG9ydC0+dGNfdHlwZSkpOwo+ID4gPiAgfQo+ID4gPiAgCj4gPiA+IC1zdGF0 aWMgdm9pZCBpY2xfdGNfcGh5X2Rpc2Nvbm5lY3Qoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAo+ID4gPiAtCQkJCSAgc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQp Owo+ID4gPiAtCj4gPiA+ICAvKgo+ID4gPiAgICogVGhpcyBmdW5jdGlvbiBpbXBsZW1lbnRzIHRo ZSBmaXJzdCBwYXJ0IG9mIHRoZSBDb25uZWN0IEZsb3cgZGVzY3JpYmVkIGJ5IG91cgo+ID4gPiAg ICogc3BlY2lmaWNhdGlvbiwgR2VuMTEgVHlwZUMgUHJvZ3JhbW1pbmcgY2hhcHRlci4gVGhlIHJl c3Qgb2YgdGhlIGZsb3cgKHJlYWRpbmcKPiA+ID4gQEAgLTUxNDUsNiArNTE0Miw3IEBAIHN0YXRp YyBib29sIGljbF90Y19waHlfY29ubmVjdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCj4gPiA+ICAJdmFsID0gSTkxNV9SRUFEKFBPUlRfVFhfREZMRVhEUFBNUyk7Cj4gPiA+ICAJ aWYgKCEodmFsICYgRFBfUEhZX01PREVfU1RBVFVTX0NPTVBMRVRFRCh0Y19wb3J0KSkpIHsKPiA+ ID4gIAkJRFJNX0RFQlVHX0tNUygiRFAgUEhZIGZvciBUQyBwb3J0ICVkIG5vdCByZWFkeVxuIiwg dGNfcG9ydCk7Cj4gPiA+ICsJCVdBUk5fT04oZGlnX3BvcnQtPnRjX2xlZ2FjeV9wb3J0KTsKPiA+ ID4gIAkJcmV0dXJuIGZhbHNlOwo+ID4gPiAgCX0KPiA+ID4gIAo+ID4gPiBAQCAtNTE3Niw4ICs1 MTc0LDggQEAgc3RhdGljIGJvb2wgaWNsX3RjX3BoeV9jb25uZWN0KHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwKPiA+ID4gICAqIFNlZSB0aGUgY29tbWVudCBhdCB0aGUgY29ubmVj dCBmdW5jdGlvbi4gVGhpcyBpbXBsZW1lbnRzIHRoZSBEaXNjb25uZWN0Cj4gPiA+ICAgKiBGbG93 Lgo+ID4gPiAgICovCj4gPiA+IC1zdGF0aWMgdm9pZCBpY2xfdGNfcGh5X2Rpc2Nvbm5lY3Qoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gPiAtCQkJCSAgc3RydWN0IGludGVs X2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpCj4gPiA+ICt2b2lkIGljbF90Y19waHlfZGlzY29ubmVj dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiA+ICsJCQkgICBzdHJ1Y3Qg aW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCkKPiA+ID4gIHsKPiA+ID4gIAllbnVtIHRjX3Bv cnQgdGNfcG9ydCA9IGludGVsX3BvcnRfdG9fdGMoZGV2X3ByaXYsIGRpZ19wb3J0LT5iYXNlLnBv cnQpOwo+ID4gPiAgCj4gPiA+IEBAIC01MjIyLDcgKzUyMjAsOCBAQCBzdGF0aWMgYm9vbCBpY2xf dGNfcG9ydF9jb25uZWN0ZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4g PiAgCWJvb2wgaXNfbGVnYWN5LCBpc190eXBlYywgaXNfdGJ0Owo+ID4gPiAgCXUzMiBkcHNwOwo+ ID4gPiAgCj4gPiA+IC0JaXNfbGVnYWN5ID0gSTkxNV9SRUFEKFNERUlTUikgJiBTREVfVENfSE9U UExVR19JQ1AodGNfcG9ydCk7Cj4gPiA+ICsJaXNfbGVnYWN5ID0gaW50ZWxfZGlnX3BvcnQtPnRj X2xlZ2FjeV9wb3J0IHx8Cj4gPiA+ICsJCUk5MTVfUkVBRChTREVJU1IpICYgU0RFX1RDX0hPVFBM VUdfSUNQKHRjX3BvcnQpOwo+ID4gPiAgCj4gPiA+ICAJLyoKPiA+ID4gIAkgKiBUaGUgc3BlYyBz YXlzIHdlIHNob3VsZG4ndCBiZSB1c2luZyB0aGUgSVNSIGJpdHMgZm9yIGRldGVjdGluZwo+ID4g PiBAQCAtNTIzMyw3ICs1MjMyLDE0IEBAIHN0YXRpYyBib29sIGljbF90Y19wb3J0X2Nvbm5lY3Rl ZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiA+ICAJaXNfdGJ0ID0gZHBz cCAmIFRDX0xJVkVfU1RBVEVfVEJUKHRjX3BvcnQpOwo+ID4gPiAgCj4gPiA+ICAJaWYgKCFpc19s ZWdhY3kgJiYgIWlzX3R5cGVjICYmICFpc190YnQpIHsKPiA+ID4gLQkJaWNsX3RjX3BoeV9kaXNj b25uZWN0KGRldl9wcml2LCBpbnRlbF9kaWdfcG9ydCk7Cj4gPiA+ICsJCS8qCj4gPiA+ICsJCSAq IFdlIGRpc2Nvbm5lY3QgZnJvbSBsZWdhY3kgbW9kZSBvbmx5IGR1cmluZyBzeXN0ZW0KPiA+ID4g KwkJICogc3VzcGVuZCBhbmQgZHJpdmVyIHVubG9hZGluZywgb3RoZXJ3aXNlIHdlIGtlZXAgdGhl IHBvcnQgaW4KPiA+ID4gKwkJICogbGVnYWN5IG1vZGUgZXZlbiBhZnRlciBhbiBIUEQgZGlzY29u bmVjdCBldmVudC4KPiA+ID4gKwkJICovCj4gPiA+ICsJCWlmIChpbnRlbF9kaWdfcG9ydC0+dGNf dHlwZSAhPSBUQ19QT1JUX0xFR0FDWSkKPiA+ID4gKwkJCWljbF90Y19waHlfZGlzY29ubmVjdChk ZXZfcHJpdiwgaW50ZWxfZGlnX3BvcnQpOwo+ID4gPiArCj4gPiA+ICAJCXJldHVybiBmYWxzZTsK PiA+ID4gIAl9Cj4gPiA+ICAKPiA+ID4gQEAgLTU1NDIsNyArNTU0OCw3IEBAIGludGVsX2RwX2Nv bm5lY3Rvcl91bnJlZ2lzdGVyKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4gPiA+ ICAJaW50ZWxfY29ubmVjdG9yX3VucmVnaXN0ZXIoY29ubmVjdG9yKTsKPiA+ID4gIH0KPiA+ID4g IAo+ID4gPiAtdm9pZCBpbnRlbF9kcF9lbmNvZGVyX2Rlc3Ryb3koc3RydWN0IGRybV9lbmNvZGVy ICplbmNvZGVyKQo+ID4gPiArdm9pZCBpbnRlbF9kcF9lbmNvZGVyX2ZsdXNoX3dvcmsoc3RydWN0 IGRybV9lbmNvZGVyICplbmNvZGVyKQo+ID4gPiAgewo+ID4gPiAgCXN0cnVjdCBpbnRlbF9kaWdp dGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0gZW5jX3RvX2RpZ19wb3J0KGVuY29kZXIpOwo+ID4g PiAgCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSAmaW50ZWxfZGlnX3BvcnQtPmRwOwo+ID4g PiBAQCAtNTU2NSw5ICs1NTcxLDE0IEBAIHZvaWQgaW50ZWxfZHBfZW5jb2Rlcl9kZXN0cm95KHN0 cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKPiA+ID4gIAl9Cj4gPiA+ICAKPiA+ID4gIAlpbnRl bF9kcF9hdXhfZmluaShpbnRlbF9kcCk7Cj4gPiA+ICt9Cj4gPiA+ICsKPiA+ID4gK3N0YXRpYyB2 b2lkIGludGVsX2RwX2VuY29kZXJfZGVzdHJveShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIp Cj4gPiA+ICt7Cj4gPiA+ICsJaW50ZWxfZHBfZW5jb2Rlcl9mbHVzaF93b3JrKGVuY29kZXIpOwo+ ID4gPiAgCj4gPiA+ICAJZHJtX2VuY29kZXJfY2xlYW51cChlbmNvZGVyKTsKPiA+ID4gLQlrZnJl ZShpbnRlbF9kaWdfcG9ydCk7Cj4gPiA+ICsJa2ZyZWUoZW5jX3RvX2RpZ19wb3J0KGVuY29kZXIp KTsKPiA+ID4gIH0KPiA+ID4gIAo+ID4gPiAgdm9pZCBpbnRlbF9kcF9lbmNvZGVyX3N1c3BlbmQo c3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIpCj4gPiA+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oCj4gPiA+IGluZGV4IGQwOGYwOGY2MDdkZC4uOTdjNDIyYmVhN2ZiIDEwMDY0NAo+ ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gPiBAQCAtMTIzNCw2ICsxMjM0LDcg QEAgc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCB7Cj4gPiA+ICAJLyogVXNlZCBmb3IgRFAgYW5k IElDTCsgVHlwZUMvRFAgYW5kIFR5cGVDL0hETUkgcG9ydHMuICovCj4gPiA+ICAJZW51bSBhdXhf Y2ggYXV4X2NoOwo+ID4gPiAgCWVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gZGRpX2lv X3Bvd2VyX2RvbWFpbjsKPiA+ID4gKwlib29sIHRjX2xlZ2FjeV9wb3J0OjE7Cj4gPiA+ICAJZW51 bSB0Y19wb3J0X3R5cGUgdGNfdHlwZTsKPiA+ID4gIAo+ID4gPiAgCXZvaWQgKCp3cml0ZV9pbmZv ZnJhbWUpKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gPiBAQCAtMTgwNiw3ICsx ODA3LDcgQEAgdm9pZCBpbnRlbF9kcF9zaW5rX3NldF9kZWNvbXByZXNzaW9uX3N0YXRlKHN0cnVj dCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gPiA+ICAJCQkJCSAgIGJvb2wgZW5hYmxlKTsKPiA+ID4g IHZvaWQgaW50ZWxfZHBfZW5jb2Rlcl9yZXNldChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIp Owo+ID4gPiAgdm9pZCBpbnRlbF9kcF9lbmNvZGVyX3N1c3BlbmQoc3RydWN0IGludGVsX2VuY29k ZXIgKmludGVsX2VuY29kZXIpOwo+ID4gPiAtdm9pZCBpbnRlbF9kcF9lbmNvZGVyX2Rlc3Ryb3ko c3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKTsKPiA+ID4gK3ZvaWQgaW50ZWxfZHBfZW5jb2Rl cl9mbHVzaF93b3JrKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rlcik7Cj4gPiA+ICBib29sIGlu dGVsX2RwX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4g PiAgCQkJICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCj4gPiA+ICAJ CQkgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKTsKPiA+ID4gQEAg LTE4NzQsNiArMTg3NSw4IEBAIGJvb2wgaW50ZWxfZHBfcmVhZF9kcGNkKHN0cnVjdCBpbnRlbF9k cCAqaW50ZWxfZHApOwo+ID4gPiAgaW50IGludGVsX2RwX2xpbmtfcmVxdWlyZWQoaW50IHBpeGVs X2Nsb2NrLCBpbnQgYnBwKTsKPiA+ID4gIGludCBpbnRlbF9kcF9tYXhfZGF0YV9yYXRlKGludCBt YXhfbGlua19jbG9jaywgaW50IG1heF9sYW5lcyk7Cj4gPiA+ICBib29sIGludGVsX2RpZ2l0YWxf cG9ydF9jb25uZWN0ZWQoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpOwo+ID4gPiArdm9p ZCBpY2xfdGNfcGh5X2Rpc2Nvbm5lY3Qoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAo+ID4gPiArCQkJICAgc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpOwo+ID4g PiAgCj4gPiA+ICAvKiBpbnRlbF9kcF9hdXhfYmFja2xpZ2h0LmMgKi8KPiA+ID4gIGludCBpbnRl bF9kcF9hdXhfaW5pdF9iYWNrbGlnaHRfZnVuY3Moc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50 ZWxfY29ubmVjdG9yKTsKPiA+ID4gLS0gCj4gPiA+IDIuMTMuMgo+ID4gPiAKPiA+ID4gX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+ID4gSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdAo+ID4gPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPiA+ IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRl bC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=