From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: Re: [PATCH v2 3/4] drm/i915/icl: Fix HPD handling for TypeC legacy ports Date: Mon, 17 Dec 2018 10:05:40 -0800 Message-ID: <20181217180540.GC53648@intel.com> References: <20181214182703.18865-1-imre.deak@intel.com> <20181214182703.18865-4-imre.deak@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 275E06E610 for ; Mon, 17 Dec 2018 18:05:41 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20181214182703.18865-4-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 T24gRnJpLCBEZWMgMTQsIDIwMTggYXQgMDg6Mjc6MDJQTSArMDIwMCwgSW1yZSBEZWFrIHdyb3Rl Ogo+IEF0bSBIUEQgZGlzY29ubmVjdCBldmVudHMgb24gVHlwZUMgcG9ydHMgd2lsbCBicmVhayB0 aGluZ3MsIHNpbmNlIHdlJ2xsCj4gc3dpdGNoIHRoZSBUeXBlQyBtb2RlIChiZXR3ZWVuIGxlZ2Fj eSBhbmQgZGlzY29ubmVjdGVkIG1vZGVzIGFzIHdlbGwgYXMKPiBhbW9uZyBVU0IgRFAgYWx0ZXJu YXRlLCBUaHVuZGVyYm9sdCBhbHRlcm5hdGUgYW5kIGRpc2Nvbm5lY3RlZCBtb2Rlcykgb24KPiB0 aGUgZmx5IGZyb20gdGhlIEhQRCBkaXNjb25uZWN0IGludGVycnVwdCB3b3JrIHdoaWxlIHRoZSBw b3J0IG1heSBiZQo+IHN0aWxsIGFjdGl2ZS4KPiAKPiBFdmVuIGlmIHRoZSBwb3J0IGhhcHBlbnMg dG8gYmUgbm90IGFjdGl2ZSBkdXJpbmcgdGhlIGRpc2Nvbm5lY3Qgd2UnZAo+IHN0aWxsIGhhdmUg YSBwcm9ibGVtIGR1cmluZyBhIHN1YnNlcXVlbnQgbW9kZXNldCBvciBBVVggdHJhbnNmZXIgdGhh dAo+IGNvdWxkIGhhcHBlbiByZWdhcmRsZXNzIG9mIHRoZSBwb3J0J3MgY29ubmVjdGVkIHN0YXRl LiBGb3IgaW5zdGFuY2UgdGhlCj4gc3lzdGVtIHJlc3VtZSBkaXNwbGF5IG1vZGUgcmVzdG9yZSBj b2RlIGFuZCB1c2Vyc3BhY2UgY291bGQgcGVyZm9ybSBhCj4gbW9kZXNldCBvbiB0aGUgcG9ydCBv ciB1c2Vyc3BhY2UgY291bGQgc3RhcnQgYW4gQVVYIHRyYW5zZmVyIGV2ZW4gaWYgdGhlCj4gcG9y dCBpcyBpbiBkaXNjb25uZWN0ZWQgc3RhdGUuCj4gCj4gVG8gZml4IHRoaXMga2VlcCBUeXBlQyBs ZWdhY3kgcG9ydHMgaW4gbGVnYWN5IG1vZGUgd2hlbmV2ZXIgd2UncmUgbm90Cj4gc3VzcGVuZGVk LiBUaGlzIG1vZGUgaXMgYSBzdGF0aWMgY29uZmlndXJhdGlvbiBhcyBvcHBvc2VkIHRvIHRoZQo+ IFRodW5kZXJib2x0IGFuZCBVU0IgRFAgYWx0ZXJuYXRlIG1vZGVzIGJldHdlZW4gd2hpY2ggd2Ug Y2FuIHN3aXRjaAo+IGR5bmFtaWNhbGx5Lgo+IAo+IFdlIGRldGVybWluZSBpZiBhIFR5cGVDIHBv cnQgaXMgbGVnYWN5ICh3aXJlZCB0byBhIGxlZ2FjeSBIRE1JIG9yIGEKPiBsZWdhY3kgRFAgY29u bmVjdG9yKSB2aWEgdGhlIFZCVCBEREkgcG9ydCBzcGVjaWZpYyBVU0ItVHlwZUMgYW5kCj4gVGh1 bmRlcmJvbHQgZmxhZ3MuIElmIGJvdGggdGhlc2UgZmxhZ3MgYXJlIGNsZWFyZWQgdGhlbiB0aGUg cG9ydCBpcwo+IGNvbmZpZ3VyZWQgZm9yIGxlZ2FjeSBtb2RlLgo+IAo+IE9uIHN1Y2ggbGVnYWN5 IHBvcnRzIHdlJ2xsIHJ1biB0aGUgVHlwZUMgUEhZIGNvbm5lY3Qgc2VxdWVuY2UgZXhwbGljaXRs eQo+IGR1cmluZyBkcml2ZXIgbG9hZGluZyBhbmQgc3lzdGVtIHJlc3VtZSAodnMuIHJ1bm5pbmcg dGhlIHNlcXVlbmNlIGR1cmluZwo+IEhQRCBwcm9jZXNzaW5nKS4gVGhlIGNvbm5lY3Qgd2lsbCBz dWNjZWVkIGV2ZW4gaWYgdGhlIGRpc3BsYXkgaXMgbm90Cj4gY29ubmVjdGVkIHRvIGJlZ2luIHdp dGggKG9yIGRpc2FwcGVhcnMgZHVyaW5nIHRoZSBzdXNwZW5kZWQgc3RhdGUpIHNpbmNlCj4gZm9y IGxlZ2FjeSBwb3J0cyB0aGUgUE9SVF9UWF9ERkxFWERQUE1TIC8gRFBfUEhZX01PREVfU1RBVFVT X0NPTVBMRVRFRAo+IGZsYWcgaXMgYWx3YXlzIHNldCAoYXMgb3Bwb3NlZCB0byB0aGUgVVNCIERQ IGFsdGVybmF0ZSBtb2RlIHdoZXJlIGl0Cj4gZ2V0cyBzZXQgb25seSB3aGVuIGEgZGlzcGxheSBp cyBjb25uZWN0ZWQpLgo+IAo+IENvcnJlc3BvbmRpbmdseSBydW4gdGhlIFR5cGVDIFBIWSBkaXNj b25uZWN0IHNlcXVlbmNlIGR1cmluZyBzeXN0ZW0KPiBzdXNwZW5kIGFuZCBkcml2ZXIgdW5sb2Fk aW5nLiBGb3IgdGhlIHVubG9hZGluZyBjYXNlIEkgaGFkIHRvIHNwbGl0Cj4gdXAgaW50ZWxfZHBf ZW5jb2Rlcl9kZXN0cm95KCkgdG8gYmUgYWJsZSB0byBoYXZlIHRoZSAxLiBmbHVzaCBhbnkKPiBw ZW5kaW5nIGVuY29kZXIgd29yaywgMi4gZGlzY29ubmVjdCBUQyBQSFksIDMuIGNhbGwgRFJNIGNv cmUgY2xlYW51cCBhbmQKPiBrZnJlZSBvbiB0aGUgZW5jb2RlciBvYmplY3QuCj4gCj4gRm9yIG5v dyBydW4gdGhlIFBIWSBkaXNjb25uZWN0IGR1cmluZyBzdXNwZW5kIG9ubHkgZm9yIFR5cGVDIGxl Z2FjeQo+IHBvcnRzLiBXZSB3aWxsIG5lZWQgdG8gZGlzY29ubmVjdCBldmVuIGluIFVTQiBEUCBh bHRlcm5hdGUgbW9kZSBpbiB0aGUKPiBmdXR1cmUsIGJ1dCBhdG0gd2UgZG9uJ3QgaGF2ZSBhIHdh eSB0byByZWNvbm5lY3QgdGhlIHBvcnQgaW4gdGhpcyBtb2RlCj4gZHVyaW5nIHJlc3VtZSBpZiB0 aGUgZGlzcGxheSBkaXNhcHBlYXJzIHdoaWxlIGJlaW5nIHN1c3BlbmRlZC4gU28gZm9yCj4gbm93 IHB1bnQgb24gdGhpcyBjYXNlLgo+IAo+IE5vdGUgdGhhdCB3ZSBkbyBub3QgZGlzY29ubmVjdCB0 aGUgcG9ydCBkdXJpbmcgcnVudGltZSBzdXNwZW5kOyBpbgo+IGxlZ2FjeSBtb2RlIHRoZXJlIGFy ZSBubyBzaGFyZWQgSFcgcmVzb3VyY2VzIChQSFkgbGFuZXMpIHdpdGggb3RoZXIgSFcKPiBibG9j a3MgKFVTQiksIHNvIG5vIG5lZWQgdG8gcmVsZWFzZSAvIHJlYWNxdWlyZSB0aGVzZSByZXNvdXJj ZXMgYXMgd2l0aAo+IFVTQiBEUCBhbHRlcm5hdGUgbW9kZS4gVGhlIG9ubHkgcmVhc29uIHRvIGRp c2Nvbm5lY3QgbGVnYWN5IHBvcnRzIGR1cmluZwo+IHN5c3RlbSBzdXNwZW5kIGlzIHRoYXQgdGhl IFBPUlRfVFhfREZMRVhEUFBNUyAvCj4gRFBfUEhZX01PREVfU1RBVFVTX0NPTVBMRVRFRCBmbGFn IG11c3QgYmUgcmVjaGVja2VkIGFuZCB0aGUgcG9ydCBtdXN0IGJlCj4gY29ubmVjdGVkIGFnYWlu IGR1cmluZyBzeXN0ZW0gcmVzdW1lLiBXZSdsbCBhbHNvIGhhdmUgdG8gdHVybiB0aGUgY2hlY2sK PiBmb3IgdGhpcyBmbGFnIGludG8gYSBwb2xsLCBhZnRlciBmaWd1cmluZyBvdXQgd2hhdCdzIHRo ZSBwcm9wZXIgdGltZW91dAo+IHZhbHVlIGZvciBpdC4KPiAKPiB2MjoKPiAtIFJlbW92ZSB0aGUg cmVkdW5kYW50IHNwZWNpYWwgY2FzaW5nIG9mIGxlZ2FjeSBtb2RlIHdoZW4gZG9pbmcgYQo+ICAg ZGlzY29ubmVjdCBpbiBpY2xfdGNfcG9ydF9jb25uZWN0ZWQoKS4gSXQncyBndWFyYW50ZWVkIGFs cmVhZHkgdGhhdCB3ZQo+ICAgd29uJ3QgZGlzY29ubmVjdCBsZWdhY3kgcG9ydHMgaW4gdGhhdCBm dW5jdGlvbi4KPiAtIEFkZCBhIG5vdGUgYWJvdXQgdGhlIG5ldyBpbnRlbF9kZGlfZW5jb2Rlcl9k ZXN0cm95KCkgaG9vay4KPiAtIFJld29yZCB0aGUgY29tbWl0IG1lc3NhZ2UgYWZ0ZXIgc3dpdGNo aW5nIHRvIHRoZSBWQlQgYmFzZWQgZGV0ZWN0aW9uLgoKUmV2aWV3ZWQtYnk6IFJvZHJpZ28gVml2 aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4KCihqdXN0IGJlY2F1c2UgeW91IGFza2VkIGFib3V0 IHdoYXQgSSBmZWVsIG5vbi1zeW1tZXRyaWMgSSB3aWxsIHdyaXRlIGhlcmUsCmJ1dCBJIGRvIGJl bGlldmUgeW91ciB2ZXJzaW9ucyBpcyBnb29kIGFuZCBvcHRpbWFsIGFuZCBteSAic3ltbWV0cmlj IiBvbmUKd291bGQgYmUganVzdCBiYWQgT0NELgoKdGhlIGFzeW1tZXRyaWMgcGFydCBJIHNlZSBp czoKZGRpX3Jlc2V0IC0+IGRwX3Jlc2V0CmRkaV9kZXN0cm95IC0+IGZsdXNoCmRwX2Rlc3Ryb3kg LT4gZmx1c2gKCmEgbW9yZSBzeW1tZXRyaWMgd2F5IHdvdWxkIGJlCmRkaV9yZXNldCAtPiBkcF9y ZXNldApkZGlfZGVzdHJveSAtPiBkcF9kZXN0cm95CgpvcgoKZGRpX3Jlc2V0IC0+IHNvbWVfY29t bW9uX3Jlc2V0CmRwX3Jlc2V0IC0+IHNvbWVfY29tbW9uX3Jlc2V0CmRkaV9kZXN0cm95IC0+IGZs dXNoCmRwX2Rlc3Ryb3kgLT4gZmx1c2gKKQoKPiAKPiBCdWd6aWxsYTogaHR0cHM6Ly9idWdzLmZy ZWVkZXNrdG9wLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4MDcwCj4gQnVnemlsbGE6IGh0dHBzOi8v YnVncy5mcmVlZGVza3RvcC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODkyNAo+IENjOiBQYXVsbyBa YW5vbmkgPHBhdWxvLnIuemFub25pQGludGVsLmNvbT4KPiBDYzogVmlsbGUgU3lyasOkbMOkIDx2 aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiBDYzogSm9zw6kgUm9iZXJ0byBkZSBTb3V6 YSA8am9zZS5zb3V6YUBpbnRlbC5jb20+Cj4gQ2M6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZp QGludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBJbXJlIERlYWsgPGltcmUuZGVha0BpbnRlbC5j b20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jIHwgNjMgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcC5jICB8IDIxICsrKysrKysrKy0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oIHwgIDUgKysrLQo+ICAzIGZpbGVzIGNoYW5nZWQsIDczIGluc2VydGlvbnMo KyksIDE2IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kZGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gaW5kZXgg ZjNlMWQ2YTBiN2RkLi4yOTVkNzVjNTA2ODggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGRpLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGku Ywo+IEBAIC0zOTAxLDkgKzM5MDEsNTAgQEAgc3RhdGljIGJvb2wgaW50ZWxfZGRpX2NvbXB1dGVf Y29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAKPiAgfQo+ICAKPiArc3Rh dGljIHZvaWQgaW50ZWxfZGRpX2VuY29kZXJfc3VzcGVuZChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlcikKPiArewo+ICsJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQgPSBl bmNfdG9fZGlnX3BvcnQoJmVuY29kZXItPmJhc2UpOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmk5MTUgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiArCj4gKwlpbnRlbF9kcF9l bmNvZGVyX3N1c3BlbmQoZW5jb2Rlcik7Cj4gKwo+ICsJLyoKPiArCSAqIFRPRE86IGRpc2Nvbm5l Y3QgYWxzbyBmcm9tIFVTQiBEUCBhbHRlcm5hdGUgbW9kZSBvbmNlIHdlIGhhdmUgYQo+ICsJICog d2F5IHRvIGhhbmRsZSB0aGUgbW9kZXNldCByZXN0b3JlIGluIHRoYXQgbW9kZSBkdXJpbmcgcmVz dW1lCj4gKwkgKiBldmVuIGlmIHRoZSBzaW5rIGhhcyBkaXNhcHBlYXJlZCB3aGlsZSBiZWluZyBz dXNwZW5kZWQuCj4gKwkgKi8KPiArCWlmIChkaWdfcG9ydC0+dGNfbGVnYWN5X3BvcnQpCj4gKwkJ aWNsX3RjX3BoeV9kaXNjb25uZWN0KGk5MTUsIGRpZ19wb3J0KTsKPiArfQo+ICsKPiArc3RhdGlj IHZvaWQgaW50ZWxfZGRpX2VuY29kZXJfcmVzZXQoc3RydWN0IGRybV9lbmNvZGVyICpkcm1fZW5j b2RlcikKPiArewo+ICsJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQgPSBlbmNf dG9fZGlnX3BvcnQoZHJtX2VuY29kZXIpOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTUgPSB0b19pOTE1KGRybV9lbmNvZGVyLT5kZXYpOwo+ICsKPiArCWlmIChpbnRlbF9wb3J0X2lz X3RjKGk5MTUsIGRpZ19wb3J0LT5iYXNlLnBvcnQpKQo+ICsJCWludGVsX2RpZ2l0YWxfcG9ydF9j b25uZWN0ZWQoJmRpZ19wb3J0LT5iYXNlKTsKPiArCj4gKwlpbnRlbF9kcF9lbmNvZGVyX3Jlc2V0 KGRybV9lbmNvZGVyKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgaW50ZWxfZGRpX2VuY29kZXJf ZGVzdHJveShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCj4gK3sKPiArCXN0cnVjdCBpbnRl bF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0gZW5jX3RvX2RpZ19wb3J0KGVuY29kZXIpOwo+ICsJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSB0b19pOTE1KGVuY29kZXItPmRldik7Cj4g Kwo+ICsJaW50ZWxfZHBfZW5jb2Rlcl9mbHVzaF93b3JrKGVuY29kZXIpOwo+ICsKPiArCWlmIChp bnRlbF9wb3J0X2lzX3RjKGk5MTUsIGRpZ19wb3J0LT5iYXNlLnBvcnQpKQo+ICsJCWljbF90Y19w aHlfZGlzY29ubmVjdChpOTE1LCBkaWdfcG9ydCk7Cj4gKwo+ICsJZHJtX2VuY29kZXJfY2xlYW51 cChlbmNvZGVyKTsKPiArCWtmcmVlKGRpZ19wb3J0KTsKPiArfQo+ICsKPiAgc3RhdGljIGNvbnN0 IHN0cnVjdCBkcm1fZW5jb2Rlcl9mdW5jcyBpbnRlbF9kZGlfZnVuY3MgPSB7Cj4gLQkucmVzZXQg PSBpbnRlbF9kcF9lbmNvZGVyX3Jlc2V0LAo+IC0JLmRlc3Ryb3kgPSBpbnRlbF9kcF9lbmNvZGVy X2Rlc3Ryb3ksCj4gKwkucmVzZXQgPSBpbnRlbF9kZGlfZW5jb2Rlcl9yZXNldCwKPiArCS5kZXN0 cm95ID0gaW50ZWxfZGRpX2VuY29kZXJfZGVzdHJveSwKPiAgfTsKPiAgCj4gIHN0YXRpYyBzdHJ1 Y3QgaW50ZWxfY29ubmVjdG9yICoKPiBAQCAtNDE0NywxNiArNDE4OCwxNiBAQCBpbnRlbF9kZGlf bWF4X2xhbmVzKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2Rwb3J0KQo+ICAKPiAg dm9pZCBpbnRlbF9kZGlfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVu dW0gcG9ydCBwb3J0KQo+ICB7Cj4gKwlzdHJ1Y3QgZGRpX3ZidF9wb3J0X2luZm8gKnBvcnRfaW5m byA9Cj4gKwkJJmRldl9wcml2LT52YnQuZGRpX3BvcnRfaW5mb1twb3J0XTsKPiAgCXN0cnVjdCBp bnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0Owo+ICAJc3RydWN0IGludGVsX2VuY29k ZXIgKmludGVsX2VuY29kZXI7Cj4gIAlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXI7Cj4gIAli b29sIGluaXRfaGRtaSwgaW5pdF9kcCwgaW5pdF9sc3Bjb24gPSBmYWxzZTsKPiAgCWVudW0gcGlw ZSBwaXBlOwo+ICAKPiAtCj4gLQlpbml0X2hkbWkgPSAoZGV2X3ByaXYtPnZidC5kZGlfcG9ydF9p bmZvW3BvcnRdLnN1cHBvcnRzX2R2aSB8fAo+IC0JCSAgICAgZGV2X3ByaXYtPnZidC5kZGlfcG9y dF9pbmZvW3BvcnRdLnN1cHBvcnRzX2hkbWkpOwo+IC0JaW5pdF9kcCA9IGRldl9wcml2LT52YnQu ZGRpX3BvcnRfaW5mb1twb3J0XS5zdXBwb3J0c19kcDsKPiArCWluaXRfaGRtaSA9IHBvcnRfaW5m by0+c3VwcG9ydHNfZHZpIHx8IHBvcnRfaW5mby0+c3VwcG9ydHNfaGRtaTsKPiArCWluaXRfZHAg PSBwb3J0X2luZm8tPnN1cHBvcnRzX2RwOwo+ICAKPiAgCWlmIChpbnRlbF9iaW9zX2lzX2xzcGNv bl9wcmVzZW50KGRldl9wcml2LCBwb3J0KSkgewo+ICAJCS8qCj4gQEAgLTQxOTcsNyArNDIzOCw3 IEBAIHZvaWQgaW50ZWxfZGRpX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LCBlbnVtIHBvcnQgcG9ydCkKPiAgCWludGVsX2VuY29kZXItPnBvc3RfZGlzYWJsZSA9IGludGVs X2RkaV9wb3N0X2Rpc2FibGU7Cj4gIAlpbnRlbF9lbmNvZGVyLT5nZXRfaHdfc3RhdGUgPSBpbnRl bF9kZGlfZ2V0X2h3X3N0YXRlOwo+ICAJaW50ZWxfZW5jb2Rlci0+Z2V0X2NvbmZpZyA9IGludGVs X2RkaV9nZXRfY29uZmlnOwo+IC0JaW50ZWxfZW5jb2Rlci0+c3VzcGVuZCA9IGludGVsX2RwX2Vu Y29kZXJfc3VzcGVuZDsKPiArCWludGVsX2VuY29kZXItPnN1c3BlbmQgPSBpbnRlbF9kZGlfZW5j b2Rlcl9zdXNwZW5kOwo+ICAJaW50ZWxfZW5jb2Rlci0+Z2V0X3Bvd2VyX2RvbWFpbnMgPSBpbnRl bF9kZGlfZ2V0X3Bvd2VyX2RvbWFpbnM7Cj4gIAlpbnRlbF9lbmNvZGVyLT50eXBlID0gSU5URUxf T1VUUFVUX0RESTsKPiAgCWludGVsX2VuY29kZXItPnBvd2VyX2RvbWFpbiA9IGludGVsX3BvcnRf dG9fcG93ZXJfZG9tYWluKHBvcnQpOwo+IEBAIC00MjE2LDYgKzQyNTcsMTAgQEAgdm9pZCBpbnRl bF9kZGlfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcG9ydCBw b3J0KQo+ICAJaW50ZWxfZGlnX3BvcnQtPm1heF9sYW5lcyA9IGludGVsX2RkaV9tYXhfbGFuZXMo aW50ZWxfZGlnX3BvcnQpOwo+ICAJaW50ZWxfZGlnX3BvcnQtPmF1eF9jaCA9IGludGVsX2Jpb3Nf cG9ydF9hdXhfY2goZGV2X3ByaXYsIHBvcnQpOwo+ICAKPiArCWludGVsX2RpZ19wb3J0LT50Y19s ZWdhY3lfcG9ydCA9IGludGVsX3BvcnRfaXNfdGMoZGV2X3ByaXYsIHBvcnQpICYmCj4gKwkJCQkJ ICFwb3J0X2luZm8tPnN1cHBvcnRzX3R5cGVjX3VzYiAmJgo+ICsJCQkJCSAhcG9ydF9pbmZvLT5z dXBwb3J0c190YnQ7Cj4gKwo+ICAJc3dpdGNoIChwb3J0KSB7Cj4gIAljYXNlIFBPUlRfQToKPiAg CQlpbnRlbF9kaWdfcG9ydC0+ZGRpX2lvX3Bvd2VyX2RvbWFpbiA9Cj4gQEAgLTQyNzQsNiArNDMx OSwxMCBAQCB2b2lkIGludGVsX2RkaV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwgZW51bSBwb3J0IHBvcnQpCj4gIAl9Cj4gIAo+ICAJaW50ZWxfaW5mb2ZyYW1lX2luaXQo aW50ZWxfZGlnX3BvcnQpOwo+ICsKPiArCWlmIChpbnRlbF9wb3J0X2lzX3RjKGRldl9wcml2LCBw b3J0KSkKPiArCQlpbnRlbF9kaWdpdGFsX3BvcnRfY29ubmVjdGVkKGludGVsX2VuY29kZXIpOwo+ ICsKPiAgCXJldHVybjsKPiAgCj4gIGVycjoKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiBpbmRl eCAwODI1OTRiYjY1YTcuLmIyYTMwMTI0NzhjYSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAu Ywo+IEBAIC01MTA4LDkgKzUxMDgsNiBAQCBzdGF0aWMgdm9pZCBpY2xfdXBkYXRlX3RjX3BvcnRf dHlwZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJCSAgICAgIHRjX3R5 cGVfbmFtZShpbnRlbF9kaWdfcG9ydC0+dGNfdHlwZSkpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9p ZCBpY2xfdGNfcGh5X2Rpc2Nvbm5lY3Qoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAo+IC0JCQkJICBzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCk7Cj4gLQo+ICAv Kgo+ICAgKiBUaGlzIGZ1bmN0aW9uIGltcGxlbWVudHMgdGhlIGZpcnN0IHBhcnQgb2YgdGhlIENv bm5lY3QgRmxvdyBkZXNjcmliZWQgYnkgb3VyCj4gICAqIHNwZWNpZmljYXRpb24sIEdlbjExIFR5 cGVDIFByb2dyYW1taW5nIGNoYXB0ZXIuIFRoZSByZXN0IG9mIHRoZSBmbG93IChyZWFkaW5nCj4g QEAgLTUxNDUsNiArNTE0Miw3IEBAIHN0YXRpYyBib29sIGljbF90Y19waHlfY29ubmVjdChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAl2YWwgPSBJOTE1X1JFQUQoUE9SVF9U WF9ERkxFWERQUE1TKTsKPiAgCWlmICghKHZhbCAmIERQX1BIWV9NT0RFX1NUQVRVU19DT01QTEVU RUQodGNfcG9ydCkpKSB7Cj4gIAkJRFJNX0RFQlVHX0tNUygiRFAgUEhZIGZvciBUQyBwb3J0ICVk IG5vdCByZWFkeVxuIiwgdGNfcG9ydCk7Cj4gKwkJV0FSTl9PTihkaWdfcG9ydC0+dGNfbGVnYWN5 X3BvcnQpOwo+ICAJCXJldHVybiBmYWxzZTsKPiAgCX0KPiAgCj4gQEAgLTUxNzYsOCArNTE3NCw4 IEBAIHN0YXRpYyBib29sIGljbF90Y19waHlfY29ubmVjdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCj4gICAqIFNlZSB0aGUgY29tbWVudCBhdCB0aGUgY29ubmVjdCBmdW5jdGlv bi4gVGhpcyBpbXBsZW1lbnRzIHRoZSBEaXNjb25uZWN0Cj4gICAqIEZsb3cuCj4gICAqLwo+IC1z dGF0aWMgdm9pZCBpY2xfdGNfcGh5X2Rpc2Nvbm5lY3Qoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAo+IC0JCQkJICBzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCkK PiArdm9pZCBpY2xfdGNfcGh5X2Rpc2Nvbm5lY3Qoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAo+ICsJCQkgICBzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCkKPiAg ewo+ICAJZW51bSB0Y19wb3J0IHRjX3BvcnQgPSBpbnRlbF9wb3J0X3RvX3RjKGRldl9wcml2LCBk aWdfcG9ydC0+YmFzZS5wb3J0KTsKPiAgCj4gQEAgLTUyMjIsNyArNTIyMCw4IEBAIHN0YXRpYyBi b29sIGljbF90Y19wb3J0X2Nvbm5lY3RlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCj4gIAlib29sIGlzX2xlZ2FjeSwgaXNfdHlwZWMsIGlzX3RidDsKPiAgCXUzMiBkcHNwOwo+ ICAKPiAtCWlzX2xlZ2FjeSA9IEk5MTVfUkVBRChTREVJU1IpICYgU0RFX1RDX0hPVFBMVUdfSUNQ KHRjX3BvcnQpOwo+ICsJaXNfbGVnYWN5ID0gaW50ZWxfZGlnX3BvcnQtPnRjX2xlZ2FjeV9wb3J0 IHx8Cj4gKwkJSTkxNV9SRUFEKFNERUlTUikgJiBTREVfVENfSE9UUExVR19JQ1AodGNfcG9ydCk7 Cj4gIAo+ICAJLyoKPiAgCSAqIFRoZSBzcGVjIHNheXMgd2Ugc2hvdWxkbid0IGJlIHVzaW5nIHRo ZSBJU1IgYml0cyBmb3IgZGV0ZWN0aW5nCj4gQEAgLTUyMzQsNiArNTIzMyw3IEBAIHN0YXRpYyBi b29sIGljbF90Y19wb3J0X2Nvbm5lY3RlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCj4gIAo+ICAJaWYgKCFpc19sZWdhY3kgJiYgIWlzX3R5cGVjICYmICFpc190YnQpIHsKPiAg CQlpY2xfdGNfcGh5X2Rpc2Nvbm5lY3QoZGV2X3ByaXYsIGludGVsX2RpZ19wb3J0KTsKPiArCj4g IAkJcmV0dXJuIGZhbHNlOwo+ICAJfQo+ICAKPiBAQCAtNTU0Miw3ICs1NTQyLDcgQEAgaW50ZWxf ZHBfY29ubmVjdG9yX3VucmVnaXN0ZXIoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikK PiAgCWludGVsX2Nvbm5lY3Rvcl91bnJlZ2lzdGVyKGNvbm5lY3Rvcik7Cj4gIH0KPiAgCj4gLXZv aWQgaW50ZWxfZHBfZW5jb2Rlcl9kZXN0cm95KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikK PiArdm9pZCBpbnRlbF9kcF9lbmNvZGVyX2ZsdXNoX3dvcmsoc3RydWN0IGRybV9lbmNvZGVyICpl bmNvZGVyKQo+ICB7Cj4gIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9y dCA9IGVuY190b19kaWdfcG9ydChlbmNvZGVyKTsKPiAgCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHAgPSAmaW50ZWxfZGlnX3BvcnQtPmRwOwo+IEBAIC01NTY1LDkgKzU1NjUsMTQgQEAgdm9pZCBp bnRlbF9kcF9lbmNvZGVyX2Rlc3Ryb3koc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQo+ICAJ fQo+ICAKPiAgCWludGVsX2RwX2F1eF9maW5pKGludGVsX2RwKTsKPiArfQo+ICsKPiArc3RhdGlj IHZvaWQgaW50ZWxfZHBfZW5jb2Rlcl9kZXN0cm95KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rl cikKPiArewo+ICsJaW50ZWxfZHBfZW5jb2Rlcl9mbHVzaF93b3JrKGVuY29kZXIpOwo+ICAKPiAg CWRybV9lbmNvZGVyX2NsZWFudXAoZW5jb2Rlcik7Cj4gLQlrZnJlZShpbnRlbF9kaWdfcG9ydCk7 Cj4gKwlrZnJlZShlbmNfdG9fZGlnX3BvcnQoZW5jb2RlcikpOwo+ICB9Cj4gIAo+ICB2b2lkIGlu dGVsX2RwX2VuY29kZXJfc3VzcGVuZChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2Rl cikKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IGluZGV4IGQwOGYwOGY2MDdkZC4uOTdjNDIy YmVhN2ZiIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBAQCAtMTIzNCw2ICsxMjM0 LDcgQEAgc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCB7Cj4gIAkvKiBVc2VkIGZvciBEUCBhbmQg SUNMKyBUeXBlQy9EUCBhbmQgVHlwZUMvSERNSSBwb3J0cy4gKi8KPiAgCWVudW0gYXV4X2NoIGF1 eF9jaDsKPiAgCWVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gZGRpX2lvX3Bvd2VyX2Rv bWFpbjsKPiArCWJvb2wgdGNfbGVnYWN5X3BvcnQ6MTsKPiAgCWVudW0gdGNfcG9ydF90eXBlIHRj X3R5cGU7Cj4gIAo+ICAJdm9pZCAoKndyaXRlX2luZm9mcmFtZSkoc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIsCj4gQEAgLTE4MDYsNyArMTgwNyw3IEBAIHZvaWQgaW50ZWxfZHBfc2lua19z ZXRfZGVjb21wcmVzc2lvbl9zdGF0ZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ICAJCQkJ CSAgIGJvb2wgZW5hYmxlKTsKPiAgdm9pZCBpbnRlbF9kcF9lbmNvZGVyX3Jlc2V0KHN0cnVjdCBk cm1fZW5jb2RlciAqZW5jb2Rlcik7Cj4gIHZvaWQgaW50ZWxfZHBfZW5jb2Rlcl9zdXNwZW5kKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyKTsKPiAtdm9pZCBpbnRlbF9kcF9lbmNv ZGVyX2Rlc3Ryb3koc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKTsKPiArdm9pZCBpbnRlbF9k cF9lbmNvZGVyX2ZsdXNoX3dvcmsoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKTsKPiAgYm9v bCBpbnRlbF9kcF9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwK PiAgCQkJICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCj4gIAkJCSAg ICAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpOwo+IEBAIC0xODc0LDYg KzE4NzUsOCBAQCBib29sIGludGVsX2RwX3JlYWRfZHBjZChzdHJ1Y3QgaW50ZWxfZHAgKmludGVs X2RwKTsKPiAgaW50IGludGVsX2RwX2xpbmtfcmVxdWlyZWQoaW50IHBpeGVsX2Nsb2NrLCBpbnQg YnBwKTsKPiAgaW50IGludGVsX2RwX21heF9kYXRhX3JhdGUoaW50IG1heF9saW5rX2Nsb2NrLCBp bnQgbWF4X2xhbmVzKTsKPiAgYm9vbCBpbnRlbF9kaWdpdGFsX3BvcnRfY29ubmVjdGVkKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKTsKPiArdm9pZCBpY2xfdGNfcGh5X2Rpc2Nvbm5lY3Qo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICsJCQkgICBzdHJ1Y3QgaW50ZWxf ZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCk7Cj4gIAo+ICAvKiBpbnRlbF9kcF9hdXhfYmFja2xpZ2h0 LmMgKi8KPiAgaW50IGludGVsX2RwX2F1eF9pbml0X2JhY2tsaWdodF9mdW5jcyhzdHJ1Y3QgaW50 ZWxfY29ubmVjdG9yICppbnRlbF9jb25uZWN0b3IpOwo+IC0tIAo+IDIuMTMuMgo+IAo+IF9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeApfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBs aXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK