From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: Re: [PATCH v3] drm/i915/icl: implement the tc/legacy HPD {dis, }connect flows Date: Wed, 22 Aug 2018 18:07:34 -0700 Message-ID: <20180823010734.GQ2340@intel.com> References: <20180731234504.5553-1-paulo.r.zanoni@intel.com> <20180801173441.9789-1-paulo.r.zanoni@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 823D56E041 for ; Thu, 23 Aug 2018 01:07:35 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20180801173441.9789-1-paulo.r.zanoni@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Paulo Zanoni Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBBdWcgMDEsIDIwMTggYXQgMTA6MzQ6NDFBTSAtMDcwMCwgUGF1bG8gWmFub25pIHdy b3RlOgo+IFVubGlrZSB0aGUgb3RoZXIgcG9ydHMsIFRDIHBvcnRzIGFyZSBub3QgYXZhaWxhYmxl IHRvIHVzZSBhcyBzb29uIGFzCj4gd2UgZ2V0IGEgaG90cGx1Zy4gVGhlIFRDIFBIWXMgY2FuIGJl IHNoYXJlZCBiZXR3ZWVuIG11bHRpcGxlCj4gY29udHJvbGxlcnM6IGRpc3BsYXksIFVTQiwgZXRj LiBBcyBhIHJlc3VsdCwgaGFuZHNoYWtpbmcgdGhyb3VnaCBGSUEKPiBpcyByZXF1aXJlZCBhcm91 bmQgY29ubmVjdCBhbmQgZGlzY29ubmVjdCB0byBjbGVhbmx5IHRyYW5zZmVyCj4gb3duZXJzaGlw IHdpdGggdGhlIGNvbnRyb2xsZXIgYW5kIHNldCB0aGUgdHlwZS1DIHBvd2VyIHN0YXRlLgo+IAo+ IFRoaXMgcGF0Y2ggaW1wbGVtZW50cyB0aGUgZmxvdyBzZXF1ZW5jZXMgZGVzY3JpYmVkIGJ5IG91 cgo+IHNwZWNpZmljYXRpb24uIFdlIG9wdCB0byBncmFiIG93bmVyc2hpcCBvZiB0aGUgcG9ydHMg YXMgc29vbiBhcyB3ZSBnZXQKPiB0aGUgaG90cGx1Z3MgaW4gb3JkZXIgdG8gc2ltcGxpZnkgdGhl IGludGVyYWN0aW9ucyBhbmQgYXZvaWQgc3VycHJpc2VzCj4gaW4gdGhlIHVzZXIgc3BhY2Ugc2lk ZS4gV2UgbWF5IGNvbnNpZGVyIGNoYW5naW5nIHRoaXMgaW4gdGhlIGZ1dHVyZSwKPiBvbmNlIHdl IGltcHJvdmUgb3VyIHRlc3RpbmcgY2FwYWJpbGl0aWVzIG9uIHRoaXMgYXJlYS4KPiAKPiB2MjoK PiAgKiBUaGlzIHVuaWZpZXMgdGhlIERQIGFuZCBIRE1JIHBhdGNoZXMgc28gd2UgY2FuIGRpc2N1 c3MgZXZlcnl0aGluZwo+ICAgIGF0IG9uY2Ugc28gcGVvcGxlIGxvb2tpbmcgYXQgcmFuZG9tIHNp bmdsZSBwYXRjaGVzIGNhbiBhY3R1YWxseQo+ICAgIHVuZGVyc3RhbmQgdGhlIGRpcmVjdGlvbi4K PiAgKiBJIGZvdW5kIG91dCB0aGUgc3BlYyB3YXMgdXBkYXRlZCBhIHdoaWxlIGFnby4gVGhlcmUn cyBhIHNtYWxsCj4gICAgZGlmZmVyZW5jZSBpbiB0aGUgY29ubmVjdCBmbG93IGFuZCB0aGUgcGF0 Y2ggd2FzIHVwZGF0ZWQgZm9yIHRoYXQuCj4gICogT3VyIHNwZWMgYWxzbyBub3cgZ2l2ZXMgYSBn b29kIGV4cGxhbmF0aW9uIG9uIHdoYXQgaXMgcmVhbGx5Cj4gICAgaGFwcGVuaW5nLiBBcyBhIHJl c3VsdCwgY29tbWVudHMgd2VyZSBhZGRlZC4KPiAgKiBBZGQgc29tZSBtb3JlIGNvbW1lbnRzIGFz IHJlcXVlc3RlZCBieSBSb2RyaWdvIChSb2RyaWdvKS4KPiB2MzoKPiAgKiBEb3duZ3JhZGUgYSBE Uk1fRVJST1IgdGhhdCBzaG91bGRuJ3QgZXZlciBoYXBwZW4gYnV0IHdlIGNhbid0IGFjdAo+ICAg IG9uIGluIGNhc2UgaXQgZG9lcyAoQ2hyaXMpLgo+IAo+IEJTcGVjOiAyMTc1MCwgNDI1MC4KPiBD YzogQW5pbWVzaCBNYW5uYSA8YW5pbWVzaC5tYW5uYUBpbnRlbC5jb20+Cj4gQ2M6IFJvZHJpZ28g Vml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBQYXVsbyBaYW5v bmkgPHBhdWxvLnIuemFub25pQGludGVsLmNvbT4KCnNvcnJ5IGZvciB0YWtpbmcgc28gbG9uZy4u LgoKdGhhbmtzIGZvciB0aGUgZG9jIGFuZCBhbGwgb3RoZXIgY2hhbmdlcy4KCgpSZXZpZXdlZC1i eTogUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlAaW50ZWwuY29tPgoKCj4gLS0tCj4gIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggICB8ICAgNiArKysKPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHAuYyAgIHwgMTEwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKystCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYyB8ICAxMSArKy0tCj4g IDMgZmlsZXMgY2hhbmdlZCwgMTIzIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCj4gCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gaW5kZXggMWRhMWM3NzQzNzg1Li5hNWY0ZGZlOWViZGYg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiBAQCAtMTA3NTAsNCArMTA3NTAsMTAgQEAg ZW51bSBza2xfcG93ZXJfZ2F0ZSB7Cj4gICNkZWZpbmUgICBEUF9MQU5FX0FTU0lHTk1FTlRfTUFT Syh0Y19wb3J0KQkoMHhmIDw8ICgodGNfcG9ydCkgKiA4KSkKPiAgI2RlZmluZSAgIERQX0xBTkVf QVNTSUdOTUVOVCh0Y19wb3J0LCB4KQkoKHgpIDw8ICgodGNfcG9ydCkgKiA4KSkKPiAgCj4gKyNk ZWZpbmUgUE9SVF9UWF9ERkxFWERQUE1TCQkJCV9NTUlPKDB4MTYzODkwKQo+ICsjZGVmaW5lICAg RFBfUEhZX01PREVfU1RBVFVTX0NPTVBMRVRFRCh0Y19wb3J0KQkJKDEgPDwgKHRjX3BvcnQpKQo+ ICsKPiArI2RlZmluZSBQT1JUX1RYX0RGTEVYRFBDU1NTCQkJCV9NTUlPKDB4MTYzODk0KQo+ICsj ZGVmaW5lICAgRFBfUEhZX01PREVfU1RBVFVTX05PVF9TQUZFKHRjX3BvcnQpCQkoMSA8PCAodGNf cG9ydCkpCj4gKwo+ICAjZW5kaWYgLyogX0k5MTVfUkVHX0hfICovCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcC5jCj4gaW5kZXggZmVjMjFhYTNkYjkzLi44NmVkZWQ2MTM0NTYgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RwLmMKPiBAQCAtNDgxOCw2ICs0ODE4LDEwNCBAQCBzdGF0aWMgdm9pZCBpY2xf dXBkYXRlX3RjX3BvcnRfdHlwZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4g IAkJCSAgICAgIHR5cGVfc3RyKTsKPiAgfQo+ICAKPiArLyoKPiArICogVGhpcyBmdW5jdGlvbiBp bXBsZW1lbnRzIHRoZSBmaXJzdCBwYXJ0IG9mIHRoZSBDb25uZWN0IEZsb3cgZGVzY3JpYmVkIGJ5 IG91cgo+ICsgKiBzcGVjaWZpY2F0aW9uLCBHZW4xMSBUeXBlQyBQcm9ncmFtbWluZyBjaGFwdGVy LiBUaGUgcmVzdCBvZiB0aGUgZmxvdyAocmVhZGluZwo+ICsgKiBsYW5lcywgRURJRCwgZXRjKSBp cyBkb25lIGFzIG5lZWRlZCBpbiB0aGUgdHlwaWNhbCBwbGFjZXMuCj4gKyAqCj4gKyAqIFVubGlr ZSB0aGUgb3RoZXIgcG9ydHMsIHR5cGUtQyBwb3J0cyBhcmUgbm90IGF2YWlsYWJsZSB0byB1c2Ug YXMgc29vbiBhcyB3ZQo+ICsgKiBnZXQgYSBob3RwbHVnLiBUaGUgdHlwZS1DIFBIWXMgY2FuIGJl IHNoYXJlZCBiZXR3ZWVuIG11bHRpcGxlIGNvbnRyb2xsZXJzOgo+ICsgKiBkaXNwbGF5LCBVU0Is IGV0Yy4gQXMgYSByZXN1bHQsIGhhbmRzaGFraW5nIHRocm91Z2ggRklBIGlzIHJlcXVpcmVkIGFy b3VuZAo+ICsgKiBjb25uZWN0IGFuZCBkaXNjb25uZWN0IHRvIGNsZWFubHkgdHJhbnNmZXIgb3du ZXJzaGlwIHdpdGggdGhlIGNvbnRyb2xsZXIgYW5kCj4gKyAqIHNldCB0aGUgdHlwZS1DIHBvd2Vy IHN0YXRlLgo+ICsgKgo+ICsgKiBXZSBjb3VsZCBvcHQgdG8gb25seSBkbyB0aGUgY29ubmVjdCBm bG93IHdoZW4gd2UgYWN0dWFsbHkgdHJ5IHRvIHVzZSB0aGUgQVVYCj4gKyAqIGNoYW5uZWxzIG9y IGRvIGEgbW9kZXNldCwgdGhlbiBpbW1lZGlhdGVseSBydW4gdGhlIGRpc2Nvbm5lY3QgZmxvdyBh ZnRlcgo+ICsgKiB1c2FnZSwgYnV0IHRoZXJlIGFyZSBzb21lIGltcGxpY2F0aW9ucyBvbiB0aGlz IGZvciBhIGR5bmFtaWMgZW52aXJvbm1lbnQ6Cj4gKyAqIHRoaW5ncyBtYXkgZ28gYXdheSBvciBj aGFuZ2UgYmVoaW5kIG91ciBiYWNrcy4gU28gZm9yIG5vdyBvdXIgZHJpdmVyIGlzCj4gKyAqIGFs d2F5cyB0cnlpbmcgdG8gYWNxdWlyZSBvd25lcnNoaXAgb2YgdGhlIGNvbnRyb2xsZXIgYXMgc29v biBhcyBpdCBnZXRzIGFuCj4gKyAqIGludGVycnVwdCAob3IgcG9sbHMgc3RhdGUgYW5kIHNlZXMg YSBwb3J0IGlzIGNvbm5lY3RlZCkgYW5kIG9ubHkgZ2l2ZXMgaXQKPiArICogYmFjayB3aGVuIGl0 IHNlZXMgYSBkaXNjb25uZWN0LiBJbXBsZW1lbnRhdGlvbiBvZiBhIG1vcmUgZmluZS1ncmFpbmVk IG1vZGVsCj4gKyAqIHdpbGwgcmVxdWlyZSBhIGxvdCBvZiBjb29yZGluYXRpb24gd2l0aCB1c2Vy IHNwYWNlIGFuZCB0aG9yb3VnaCB0ZXN0aW5nIGZvcgo+ICsgKiB0aGUgZXh0cmEgcG9zc2libGUg Y2FzZXMuCj4gKyAqLwo+ICtzdGF0aWMgYm9vbCBpY2xfdGNfcGh5X2Nvbm5lY3Qoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICsJCQkgICAgICAgc3RydWN0IGludGVsX2RpZ2l0 YWxfcG9ydCAqZGlnX3BvcnQpCj4gK3sKPiArCWVudW0gdGNfcG9ydCB0Y19wb3J0ID0gaW50ZWxf cG9ydF90b190YyhkZXZfcHJpdiwgZGlnX3BvcnQtPmJhc2UucG9ydCk7Cj4gKwl1MzIgdmFsOwo+ ICsKPiArCWlmIChkaWdfcG9ydC0+dGNfdHlwZSAhPSBUQ19QT1JUX0xFR0FDWSAmJgo+ICsJICAg IGRpZ19wb3J0LT50Y190eXBlICE9IFRDX1BPUlRfVFlQRUMpCj4gKwkJcmV0dXJuIHRydWU7Cj4g Kwo+ICsJdmFsID0gSTkxNV9SRUFEKFBPUlRfVFhfREZMRVhEUFBNUyk7Cj4gKwlpZiAoISh2YWwg JiBEUF9QSFlfTU9ERV9TVEFUVVNfQ09NUExFVEVEKHRjX3BvcnQpKSkgewo+ICsJCURSTV9ERUJV R19LTVMoIkRQIFBIWSBmb3IgVEMgcG9ydCAlZCBub3QgcmVhZHlcbiIsIHRjX3BvcnQpOwo+ICsJ CXJldHVybiBmYWxzZTsKPiArCX0KPiArCj4gKwkvKgo+ICsJICogVGhpcyBmdW5jdGlvbiBtYXkg YmUgY2FsbGVkIG1hbnkgdGltZXMgaW4gYSByb3cgd2l0aG91dCBhbiBIUEQgZXZlbnQKPiArCSAq IGluIGJldHdlZW4sIHNvIHRyeSB0byBhdm9pZCB0aGUgd3JpdGUgd2hlbiB3ZSBjYW4uCj4gKwkg Ki8KPiArCXZhbCA9IEk5MTVfUkVBRChQT1JUX1RYX0RGTEVYRFBDU1NTKTsKPiArCWlmICghKHZh bCAmIERQX1BIWV9NT0RFX1NUQVRVU19OT1RfU0FGRSh0Y19wb3J0KSkpIHsKPiArCQl2YWwgfD0g RFBfUEhZX01PREVfU1RBVFVTX05PVF9TQUZFKHRjX3BvcnQpOwo+ICsJCUk5MTVfV1JJVEUoUE9S VF9UWF9ERkxFWERQQ1NTUywgdmFsKTsKPiArCX0KPiArCj4gKwkvKgo+ICsJICogTm93IHdlIGhh dmUgdG8gcmUtY2hlY2sgdGhlIGxpdmUgc3RhdGUsIGluIGNhc2UgdGhlIHBvcnQgcmVjZW50bHkK PiArCSAqIGJlY2FtZSBkaXNjb25uZWN0ZWQuIE5vdCBuZWNlc3NhcnkgZm9yIGxlZ2FjeSBtb2Rl Lgo+ICsJICovCj4gKwlpZiAoZGlnX3BvcnQtPnRjX3R5cGUgPT0gVENfUE9SVF9UWVBFQyAmJgo+ ICsJICAgICEoSTkxNV9SRUFEKFBPUlRfVFhfREZMRVhEUFNQKSAmIFRDX0xJVkVfU1RBVEVfVEMo dGNfcG9ydCkpKSB7Cj4gKwkJRFJNX0RFQlVHX0tNUygiVEMgUEhZICVkIHN1ZGRlbiBkaXNjb25u ZWN0LlxuIiwgdGNfcG9ydCk7Cj4gKwkJdmFsID0gSTkxNV9SRUFEKFBPUlRfVFhfREZMRVhEUENT U1MpOwo+ICsJCXZhbCAmPSB+RFBfUEhZX01PREVfU1RBVFVTX05PVF9TQUZFKHRjX3BvcnQpOwo+ ICsJCUk5MTVfV1JJVEUoUE9SVF9UWF9ERkxFWERQQ1NTUywgdmFsKTsKPiArCQlyZXR1cm4gZmFs c2U7Cj4gKwl9Cj4gKwo+ICsJcmV0dXJuIHRydWU7Cj4gK30KPiArCj4gKy8qCj4gKyAqIFNlZSB0 aGUgY29tbWVudCBhdCB0aGUgY29ubmVjdCBmdW5jdGlvbi4gVGhpcyBpbXBsZW1lbnRzIHRoZSBE aXNjb25uZWN0Cj4gKyAqIEZsb3cuCj4gKyAqLwo+ICtzdGF0aWMgdm9pZCBpY2xfdGNfcGh5X2Rp c2Nvbm5lY3Qoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICsJCQkJICBzdHJ1 Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCkKPiArewo+ICsJZW51bSB0Y19wb3J0IHRj X3BvcnQgPSBpbnRlbF9wb3J0X3RvX3RjKGRldl9wcml2LCBkaWdfcG9ydC0+YmFzZS5wb3J0KTsK PiArCXUzMiB2YWw7Cj4gKwo+ICsJaWYgKGRpZ19wb3J0LT50Y190eXBlICE9IFRDX1BPUlRfTEVH QUNZICYmCj4gKwkgICAgZGlnX3BvcnQtPnRjX3R5cGUgIT0gVENfUE9SVF9UWVBFQykKPiArCQly ZXR1cm47Cj4gKwo+ICsJLyoKPiArCSAqIFRoaXMgZnVuY3Rpb24gbWF5IGJlIGNhbGxlZCBtYW55 IHRpbWVzIGluIGEgcm93IHdpdGhvdXQgYW4gSFBEIGV2ZW50Cj4gKwkgKiBpbiBiZXR3ZWVuLCBz byB0cnkgdG8gYXZvaWQgdGhlIHdyaXRlIHdoZW4gd2UgY2FuLgo+ICsJICovCj4gKwl2YWwgPSBJ OTE1X1JFQUQoUE9SVF9UWF9ERkxFWERQQ1NTUyk7Cj4gKwlpZiAodmFsICYgRFBfUEhZX01PREVf U1RBVFVTX05PVF9TQUZFKHRjX3BvcnQpKSB7Cj4gKwkJdmFsICY9IH5EUF9QSFlfTU9ERV9TVEFU VVNfTk9UX1NBRkUodGNfcG9ydCk7Cj4gKwkJSTkxNV9XUklURShQT1JUX1RYX0RGTEVYRFBDU1NT LCB2YWwpOwo+ICsJfQo+ICt9Cj4gKwo+ICsvKgo+ICsgKiBUaGUgdHlwZS1DIHBvcnRzIGFyZSBk aWZmZXJlbnQgYmVjYXVzZSBldmVuIHdoZW4gdGhleSBhcmUgY29ubmVjdGVkLCB0aGV5IG1heQo+ ICsgKiBub3QgYmUgYXZhaWxhYmxlL3VzYWJsZSBieSB0aGUgZ3JhcGhpY3MgZHJpdmVyOiBzZWUg dGhlIGNvbW1lbnQgb24KPiArICogaWNsX3RjX3BoeV9jb25uZWN0KCkuIFNvIGluIG91ciBkcml2 ZXIgaW5zdGVhZCBvZiBhZGRpbmcgdGhlIGFkZGl0aW9uYWwKPiArICogY29uY2VwdCBvZiAidXNh YmxlIiBhbmQgbWFrZSBldmVyeXRoaW5nIGNoZWNrIGZvciAiY29ubmVjdGVkIGFuZCB1c2FibGUi IHdlCj4gKyAqIGRlZmluZSBhIHBvcnQgYXMgImNvbm5lY3RlZCIgd2hlbiBpdCBpcyBub3Qgb25s eSBjb25uZWN0ZWQsIGJ1dCBhbHNvIHdoZW4gaXQKPiArICogaXMgdXNhYmxlIGJ5IHRoZSByZXN0 IG9mIHRoZSBkcml2ZXIuIFRoYXQgbWFpbnRhaW5zIHRoZSBvbGQgYXNzdW1wdGlvbiB0aGF0Cj4g KyAqIGNvbm5lY3RlZCBwb3J0cyBhcmUgdXNhYmxlLCBhbmQgYXZvaWRzIGV4cG9zaW5nIHRvIHRo ZSB1c2VycyBvYmplY3RzIHRoZXkKPiArICogY2FuJ3QgcmVhbGx5IHVzZS4KPiArICovCj4gIHN0 YXRpYyBib29sIGljbF90Y19wb3J0X2Nvbm5lY3RlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCj4gIAkJCQkgIHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19w b3J0KQo+ICB7Cj4gQEAgLTQ4MzYsMTIgKzQ5MzQsMTcgQEAgc3RhdGljIGJvb2wgaWNsX3RjX3Bv cnRfY29ubmVjdGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCWlzX3R5 cGVjID0gZHBzcCAmIFRDX0xJVkVfU1RBVEVfVEModGNfcG9ydCk7Cj4gIAlpc190YnQgPSBkcHNw ICYgVENfTElWRV9TVEFURV9UQlQodGNfcG9ydCk7Cj4gIAo+IC0JaWYgKCFpc19sZWdhY3kgJiYg IWlzX3R5cGVjICYmICFpc190YnQpCj4gKwlpZiAoIWlzX2xlZ2FjeSAmJiAhaXNfdHlwZWMgJiYg IWlzX3RidCkgewo+ICsJCWljbF90Y19waHlfZGlzY29ubmVjdChkZXZfcHJpdiwgaW50ZWxfZGln X3BvcnQpOwo+ICAJCXJldHVybiBmYWxzZTsKPiArCX0KPiAgCj4gIAlpY2xfdXBkYXRlX3RjX3Bv cnRfdHlwZShkZXZfcHJpdiwgaW50ZWxfZGlnX3BvcnQsIGlzX2xlZ2FjeSwgaXNfdHlwZWMsCj4g IAkJCQlpc190YnQpOwo+ICAKPiArCWlmICghaWNsX3RjX3BoeV9jb25uZWN0KGRldl9wcml2LCBp bnRlbF9kaWdfcG9ydCkpCj4gKwkJcmV0dXJuIGZhbHNlOwo+ICsKPiAgCXJldHVybiB0cnVlOwo+ ICB9Cj4gIAo+IEBAIC00ODY5LDYgKzQ5NzIsMTEgQEAgc3RhdGljIGJvb2wgaWNsX2RpZ2l0YWxf cG9ydF9jb25uZWN0ZWQoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gICAqIGludGVs X2RpZ2l0YWxfcG9ydF9jb25uZWN0ZWQgLSBpcyB0aGUgc3BlY2lmaWVkIHBvcnQgY29ubmVjdGVk Pwo+ICAgKiBAZW5jb2RlcjogaW50ZWxfZW5jb2Rlcgo+ICAgKgo+ICsgKiBJbiBjYXNlcyB3aGVy ZSB0aGVyZSdzIGEgY29ubmVjdG9yIHBoeXNpY2FsbHkgY29ubmVjdGVkIGJ1dCBpdCBjYW4ndCBi ZSB1c2VkCj4gKyAqIGJ5IG91ciBoYXJkd2FyZSB3ZSBhbHNvIHJldHVybiBmYWxzZSwgc2luY2Ug dGhlIHJlc3Qgb2YgdGhlIGRyaXZlciBzaG91bGQKPiArICogcHJldHR5IG11Y2ggdHJlYXQgdGhl IHBvcnQgYXMgZGlzY29ubmVjdGVkLiBUaGlzIGlzIHJlbGV2YW50IGZvciB0eXBlLUMKPiArICog KHN0YXJ0aW5nIG9uIElDTCkgd2hlcmUgdGhlcmUncyBvd25lcnNoaXAgaW52b2x2ZWQuCj4gKyAq Cj4gICAqIFJldHVybiAldHJ1ZSBpZiBwb3J0IGlzIGNvbm5lY3RlZCwgJWZhbHNlIG90aGVyd2lz ZS4KPiAgICovCj4gIGJvb2wgaW50ZWxfZGlnaXRhbF9wb3J0X2Nvbm5lY3RlZChzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlcikKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfaGRtaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCj4gaW5kZXgg ODM2M2ZiZDE4ZWU4Li41NDgxOTllNTliNmMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfaGRtaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRt aS5jCj4gQEAgLTE5MDUsMjEgKzE5MDUsMjYgQEAgaW50ZWxfaGRtaV9zZXRfZWRpZChzdHJ1Y3Qg ZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICBzdGF0aWMgZW51bSBkcm1fY29ubmVjdG9yX3N0 YXR1cwo+ICBpbnRlbF9oZG1pX2RldGVjdChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9y LCBib29sIGZvcmNlKQo+ICB7Cj4gLQllbnVtIGRybV9jb25uZWN0b3Jfc3RhdHVzIHN0YXR1czsK PiArCWVudW0gZHJtX2Nvbm5lY3Rvcl9zdGF0dXMgc3RhdHVzID0gY29ubmVjdG9yX3N0YXR1c19k aXNjb25uZWN0ZWQ7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGNvbm5lY3Rvci0+ZGV2KTsKPiArCXN0cnVjdCBpbnRlbF9oZG1pICppbnRlbF9oZG1pID0g aW50ZWxfYXR0YWNoZWRfaGRtaShjb25uZWN0b3IpOwo+ICsJc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIgPSAmaGRtaV90b19kaWdfcG9ydChpbnRlbF9oZG1pKS0+YmFzZTsKPiAgCj4gIAlE Uk1fREVCVUdfS01TKCJbQ09OTkVDVE9SOiVkOiVzXVxuIiwKPiAgCQkgICAgICBjb25uZWN0b3It PmJhc2UuaWQsIGNvbm5lY3Rvci0+bmFtZSk7Cj4gIAo+ICAJaW50ZWxfZGlzcGxheV9wb3dlcl9n ZXQoZGV2X3ByaXYsIFBPV0VSX0RPTUFJTl9HTUJVUyk7Cj4gIAo+ICsJaWYgKElTX0lDRUxBS0Uo ZGV2X3ByaXYpICYmCj4gKwkgICAgIWludGVsX2RpZ2l0YWxfcG9ydF9jb25uZWN0ZWQoZW5jb2Rl cikpCj4gKwkJZ290byBvdXQ7Cj4gKwo+ICAJaW50ZWxfaGRtaV91bnNldF9lZGlkKGNvbm5lY3Rv cik7Cj4gIAo+ICAJaWYgKGludGVsX2hkbWlfc2V0X2VkaWQoY29ubmVjdG9yKSkKPiAgCQlzdGF0 dXMgPSBjb25uZWN0b3Jfc3RhdHVzX2Nvbm5lY3RlZDsKPiAtCWVsc2UKPiAtCQlzdGF0dXMgPSBj b25uZWN0b3Jfc3RhdHVzX2Rpc2Nvbm5lY3RlZDsKPiAgCj4gK291dDoKPiAgCWludGVsX2Rpc3Bs YXlfcG93ZXJfcHV0KGRldl9wcml2LCBQT1dFUl9ET01BSU5fR01CVVMpOwo+ICAKPiAgCXJldHVy biBzdGF0dXM7Cj4gLS0gCj4gMi4xNC40Cj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeAo=