From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 43417C433EF for ; Tue, 28 Sep 2021 20:51:11 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 0999A6138F for ; Tue, 28 Sep 2021 20:51:11 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 0999A6138F Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 705F36E9A0; Tue, 28 Sep 2021 20:51:10 +0000 (UTC) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id CA1386E9A0 for ; Tue, 28 Sep 2021 20:51:09 +0000 (UTC) X-IronPort-AV: E=McAfee;i="6200,9189,10121"; a="221598593" X-IronPort-AV: E=Sophos;i="5.85,330,1624345200"; d="scan'208";a="221598593" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Sep 2021 13:51:06 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,330,1624345200"; d="scan'208";a="538466108" Received: from irsmsx604.ger.corp.intel.com ([163.33.146.137]) by fmsmga004.fm.intel.com with ESMTP; 28 Sep 2021 13:51:05 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by IRSMSX604.ger.corp.intel.com (163.33.146.137) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Tue, 28 Sep 2021 21:51:03 +0100 Received: from orsmsx610.amr.corp.intel.com ([10.22.229.23]) by ORSMSX610.amr.corp.intel.com ([10.22.229.23]) with mapi id 15.01.2242.012; Tue, 28 Sep 2021 13:51:02 -0700 From: "Souza, Jose" To: "intel-gfx@lists.freedesktop.org" , "Deak, Imre" Thread-Topic: [PATCH 11/13] drm/i915/tc: Fix TypeC PHY connect/disconnect logic on ADL-P Thread-Index: AQHXrn7paxdu6h/dG0GRSqVQXLmnsau6bw8A Date: Tue, 28 Sep 2021 20:51:01 +0000 Message-ID: <7e87d9466a70419972f9d6d17faec18e2a8f5e7e.camel@intel.com> References: <20210921002313.1132357-1-imre.deak@intel.com> <20210921002313.1132357-12-imre.deak@intel.com> In-Reply-To: <20210921002313.1132357-12-imre.deak@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.22.254.132] Content-Type: text/plain; charset="utf-8" Content-ID: <2F8F1630A0C70341B3D084FD54720B34@intel.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [Intel-gfx] [PATCH 11/13] drm/i915/tc: Fix TypeC PHY connect/disconnect logic on ADL-P X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" T24gVHVlLCAyMDIxLTA5LTIxIGF0IDAzOjIzICswMzAwLCBJbXJlIERlYWsgd3JvdGU6DQo+IFNv IGZhciBUQy1jb2xkIHdhcyBibG9ja2VkIG9ubHkgZm9yIHRoZSBkdXJhdGlvbiBvZiBUeXBlQyBt b2RlIHJlc2V0cy4NCj4gVGhlIERQLWFsdCBhbmQgbGVnYWN5IG1vZGVzIHJlcXVpcmUgVEMtY29s ZCB0byBiZSBibG9ja2VkIGFsc28gd2hlbmV2ZXINCj4gdGhlIHBvcnQgaXMgaW4gdXNlIChBVVgg dHJhbnNmZXJzLCBlbmFibGUgbW9kZXNldCksIGFuZCB0aGlzIHdhcyBlbnN1cmVkDQo+IGJ5IHRo ZSBoZWxkIFBIWSBvd25lcnNoaXAgZmxhZy4gT24gQURMLVAgdGhpcyBkb2Vzbid0IHdvcmssIHNp bmNlIHRoZQ0KPiBQSFkgb3duZXJzaGlwIGZsYWcgaXMgaW4gYSByZWdpc3RlciBiYWNrZWQgYnkg dGhlIFBXIzIgcG93ZXIgd2VsbC4NCj4gV2hlbmV2ZXIgdGhpcyBwb3dlciB3ZWxsIGlzIGRpc2Fi bGVkIHRoZSBvd25lcnNoaXAgZmxhZyBpcyBjbGVhcmVkIGJ5DQo+IHRoZSBIVyB1bmRlciB0aGUg ZHJpdmVyLg0KPiANCj4gVGhlIG9ubHkgd2F5IHRvIGNsZWFubHkgcmVsZWFzZSBhbmQgcmUtYWNx dWlyZSB0aGUgUEhZIG93bmVyc2hpcCBmbGFnDQo+IGFuZCBhbHNvIGFsbG93IGZvciBwb3dlciBz YXZpbmcgKGJ5IGRpc2FibGluZyB0aGUgZGlzcGxheSBwb3dlciB3ZWxscw0KPiBhbmQgcmVhY2hp bmcgREM1LzYgc3RhdGVzKSBpcyB0byBob2xkIHRoZSBUQy1jb2xkIGJsb2NraW5nIHBvd2VyIGRv bWFpbnMNCj4gd2hpbGUgdGhlIFBIWSBpcyBjb25uZWN0ZWQgYW5kIGRpc2Nvbm5lY3QvcmVjb25u ZWN0IHRoZSBQSFkgb24tZGVtYW5kDQo+IGFyb3VuZCBBVVggdHJhbnNmZXJzIGFuZCBtb2Rlc2V0 IGVuYWJsZS9kaXNhYmxlcy4gTGV0J3MgZG8gdGhhdCwNCj4gZGlzY29ubmVjdGluZyBhIFBIWSB3 aXRoIGEgMSBzZWMgZGVsYXkgYWZ0ZXIgaXQgYmVjb21lcyBpZGxlLiBGb3INCj4gY29uc2lzdGVu Y3kgZG8gdGhpcyBvbiBhbGwgcGxhdGZvcm1zIGFuZCBUeXBlQyBtb2Rlcy4NCg0KUmV2aWV3ZWQt Ynk6IEpvc8OpIFJvYmVydG8gZGUgU291emEgPGpvc2Uuc291emFAaW50ZWwuY29tPg0KDQo+IA0K PiBDYzogSm9zw6kgUm9iZXJ0byBkZSBTb3V6YSA8am9zZS5zb3V6YUBpbnRlbC5jb20+DQo+IFNp Z25lZC1vZmYtYnk6IEltcmUgRGVhayA8aW1yZS5kZWFrQGludGVsLmNvbT4NCj4gLS0tDQo+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jICAgICAgfCAgNyArLQ0KPiAg Li4uL2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oICAgIHwgIDEgKw0KPiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF90Yy5jICAgICAgIHwgODcgKysrKysr KysrKystLS0tLS0tLQ0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF90Yy5o ICAgICAgIHwgIDIgKy0NCj4gIDQgZmlsZXMgY2hhbmdlZCwgNjAgaW5zZXJ0aW9ucygrKSwgMzcg ZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9kZGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRp LmMNCj4gaW5kZXggYjkxOTRkNmE0ZGZlNy4uYjUwOWQ1ZjJkNWYwZSAxMDA2NDQNCj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYw0KPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jDQo+IEBAIC00MDE5LDggKzQwMTksMTEg QEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX2VuY29kZXJfZGVzdHJveShzdHJ1Y3QgZHJtX2VuY29k ZXIgKmVuY29kZXIpDQo+ICB7DQo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSB0 b19pOTE1KGVuY29kZXItPmRldik7DQo+ICAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGln X3BvcnQgPSBlbmNfdG9fZGlnX3BvcnQodG9faW50ZWxfZW5jb2RlcihlbmNvZGVyKSk7DQo+ICsJ ZW51bSBwaHkgcGh5ID0gaW50ZWxfcG9ydF90b19waHkoaTkxNSwgZGlnX3BvcnQtPmJhc2UucG9y dCk7DQo+ICANCj4gIAlpbnRlbF9kcF9lbmNvZGVyX2ZsdXNoX3dvcmsoZW5jb2Rlcik7DQo+ICsJ aWYgKGludGVsX3BoeV9pc190YyhpOTE1LCBwaHkpKQ0KPiArCQlpbnRlbF90Y19wb3J0X2ZsdXNo X3dvcmsoZGlnX3BvcnQpOw0KPiAgCWludGVsX2Rpc3BsYXlfcG93ZXJfZmx1c2hfd29yayhpOTE1 KTsNCj4gIA0KPiAgCWRybV9lbmNvZGVyX2NsZWFudXAoZW5jb2Rlcik7DQo+IEBAIC00NDQ1LDcg KzQ0NDgsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfZW5jb2Rlcl9zdXNwZW5kKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyKQ0KPiAgCWlmICghaW50ZWxfcGh5X2lzX3RjKGk5MTUsIHBo eSkpDQo+ICAJCXJldHVybjsNCj4gIA0KPiAtCWludGVsX3RjX3BvcnRfZGlzY29ubmVjdF9waHko ZGlnX3BvcnQpOw0KPiArCWludGVsX3RjX3BvcnRfZmx1c2hfd29yayhkaWdfcG9ydCk7DQo+ICB9 DQo+ICANCj4gIHN0YXRpYyB2b2lkIGludGVsX2RkaV9lbmNvZGVyX3NodXRkb3duKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyKQ0KPiBAQCAtNDQ2MCw3ICs0NDYzLDcgQEAgc3RhdGljIHZv aWQgaW50ZWxfZGRpX2VuY29kZXJfc2h1dGRvd24oc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIpDQo+ICAJaWYgKCFpbnRlbF9waHlfaXNfdGMoaTkxNSwgcGh5KSkNCj4gIAkJcmV0dXJuOw0K PiAgDQo+IC0JaW50ZWxfdGNfcG9ydF9kaXNjb25uZWN0X3BoeShkaWdfcG9ydCk7DQo+ICsJaW50 ZWxfdGNfcG9ydF9mbHVzaF93b3JrKGRpZ19wb3J0KTsNCj4gIH0NCj4gIA0KPiAgI2RlZmluZSBw b3J0X3RjX25hbWUocG9ydCkgKChwb3J0KSAtIFBPUlRfVEMxICsgJzEnKQ0KPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmggYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaA0KPiBpbmRl eCAwOGE3M2ZmZGVkOTU3Li41MzUwOWY2YWUzZDEwIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaA0KPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaA0KPiBAQCAtMTY2Nyw2 ICsxNjY3LDcgQEAgc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCB7DQo+ICAJc3RydWN0IG11dGV4 IHRjX2xvY2s7CS8qIHByb3RlY3RzIHRoZSBUeXBlQyBwb3J0IG1vZGUgKi8NCj4gIAlpbnRlbF93 YWtlcmVmX3QgdGNfbG9ja193YWtlcmVmOw0KPiAgCWVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9k b21haW4gdGNfbG9ja19wb3dlcl9kb21haW47DQo+ICsJc3RydWN0IGRlbGF5ZWRfd29yayB0Y19k aXNjb25uZWN0X3BoeV93b3JrOw0KPiAgCWludCB0Y19saW5rX3JlZmNvdW50Ow0KPiAgCWJvb2wg dGNfbGVnYWN5X3BvcnQ6MTsNCj4gIAljaGFyIHRjX3BvcnRfbmFtZVs4XTsNCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfdGMuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfdGMuYw0KPiBpbmRleCA4ZDc5OWNmN2NjZWZkLi4zZmVm ZDAwZTA0Njg1IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX3RjLmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF90Yy5j DQo+IEBAIC02NDUsNiArNjQ1LDEzIEBAIHN0YXRpYyB2b2lkIGludGVsX3RjX3BvcnRfdXBkYXRl X21vZGUoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQsDQo+ICANCj4gIAlpbnRl bF90Y19wb3J0X3Jlc2V0X21vZGUoZGlnX3BvcnQsIHJlcXVpcmVkX2xhbmVzLCBmb3JjZV9kaXNj b25uZWN0KTsNCj4gIA0KPiArCS8qIEdldCBwb3dlciBkb21haW4gbWF0Y2hpbmcgdGhlIG5ldyBt b2RlIGFmdGVyIHJlc2V0LiAqLw0KPiArCXRjX2NvbGRfdW5ibG9jayhkaWdfcG9ydCwgZGlnX3Bv cnQtPnRjX2xvY2tfcG93ZXJfZG9tYWluLA0KPiArCQkJZmV0Y2hfYW5kX3plcm8oJmRpZ19wb3J0 LT50Y19sb2NrX3dha2VyZWYpKTsNCj4gKwlpZiAoZGlnX3BvcnQtPnRjX21vZGUgIT0gVENfUE9S VF9ESVNDT05ORUNURUQpDQo+ICsJCWRpZ19wb3J0LT50Y19sb2NrX3dha2VyZWYgPSB0Y19jb2xk X2Jsb2NrKGRpZ19wb3J0LA0KPiArCQkJCQkJCSAgJmRpZ19wb3J0LT50Y19sb2NrX3Bvd2VyX2Rv bWFpbik7DQo+ICsNCj4gIAl0Y19jb2xkX3VuYmxvY2soZGlnX3BvcnQsIGRvbWFpbiwgd3JlZik7 DQo+ICB9DQo+ICANCj4gQEAgLTY3Miw2ICs2NzksNyBAQCB2b2lkIGludGVsX3RjX3BvcnRfc2Fu aXRpemUoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpDQo+ICAJCWFjdGl2ZV9s aW5rcyA9IHRvX2ludGVsX2NydGMoZW5jb2Rlci0+YmFzZS5jcnRjKS0+YWN0aXZlOw0KPiAgDQo+ ICAJZHJtX1dBUk5fT04oJmk5MTUtPmRybSwgZGlnX3BvcnQtPnRjX21vZGUgIT0gVENfUE9SVF9E SVNDT05ORUNURUQpOw0KPiArCWRybV9XQVJOX09OKCZpOTE1LT5kcm0sIGRpZ19wb3J0LT50Y19s b2NrX3dha2VyZWYpOw0KPiAgCWlmIChhY3RpdmVfbGlua3MpIHsNCj4gIAkJZW51bSBpbnRlbF9k aXNwbGF5X3Bvd2VyX2RvbWFpbiBkb21haW47DQo+ICAJCWludGVsX3dha2VyZWZfdCB0Y19jb2xk X3dyZWYgPSB0Y19jb2xkX2Jsb2NrKGRpZ19wb3J0LCAmZG9tYWluKTsNCj4gQEAgLTY4NCw2ICs2 OTIsOSBAQCB2b2lkIGludGVsX3RjX3BvcnRfc2FuaXRpemUoc3RydWN0IGludGVsX2RpZ2l0YWxf cG9ydCAqZGlnX3BvcnQpDQo+ICAJCQkJICAgIGRpZ19wb3J0LT50Y19wb3J0X25hbWUsIGFjdGl2 ZV9saW5rcyk7DQo+ICAJCWludGVsX3RjX3BvcnRfbGlua19pbml0X3JlZmNvdW50KGRpZ19wb3J0 LCBhY3RpdmVfbGlua3MpOw0KPiAgDQo+ICsJCWRpZ19wb3J0LT50Y19sb2NrX3dha2VyZWYgPSB0 Y19jb2xkX2Jsb2NrKGRpZ19wb3J0LA0KPiArCQkJCQkJCSAgJmRpZ19wb3J0LT50Y19sb2NrX3Bv d2VyX2RvbWFpbik7DQo+ICsNCj4gIAkJdGNfY29sZF91bmJsb2NrKGRpZ19wb3J0LCBkb21haW4s IHRjX2NvbGRfd3JlZik7DQo+ICAJfQ0KPiAgDQo+IEBAIC03MjQsNjAgKzczNSw2NyBAQCBib29s IGludGVsX3RjX3BvcnRfY29ubmVjdGVkKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQ0K PiAgfQ0KPiAgDQo+ICBzdGF0aWMgdm9pZCBfX2ludGVsX3RjX3BvcnRfbG9jayhzdHJ1Y3QgaW50 ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCwNCj4gLQkJCQkgaW50IHJlcXVpcmVkX2xhbmVzLCBi b29sIGZvcmNlX2Rpc2Nvbm5lY3QpDQo+ICsJCQkJIGludCByZXF1aXJlZF9sYW5lcykNCj4gIHsN Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRvX2k5MTUoZGlnX3BvcnQtPmJh c2UuYmFzZS5kZXYpOw0KPiAtCWludGVsX3dha2VyZWZfdCB3YWtlcmVmOw0KPiAtDQo+IC0Jd2Fr ZXJlZiA9IGludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0KGk5MTUsIFBPV0VSX0RPTUFJTl9ESVNQTEFZ X0NPUkUpOw0KPiAgDQo+ICAJbXV0ZXhfbG9jaygmZGlnX3BvcnQtPnRjX2xvY2spOw0KPiAgDQo+ ICsJY2FuY2VsX2RlbGF5ZWRfd29yaygmZGlnX3BvcnQtPnRjX2Rpc2Nvbm5lY3RfcGh5X3dvcmsp Ow0KPiAgDQo+ICAJaWYgKCFkaWdfcG9ydC0+dGNfbGlua19yZWZjb3VudCkNCj4gIAkJaW50ZWxf dGNfcG9ydF91cGRhdGVfbW9kZShkaWdfcG9ydCwgcmVxdWlyZWRfbGFuZXMsDQo+IC0JCQkJCSAg Zm9yY2VfZGlzY29ubmVjdCk7DQo+ICsJCQkJCSAgZmFsc2UpOw0KPiAgDQo+ICAJZHJtX1dBUk5f T04oJmk5MTUtPmRybSwgZGlnX3BvcnQtPnRjX21vZGUgPT0gVENfUE9SVF9ESVNDT05ORUNURUQp Ow0KPiAgCWRybV9XQVJOX09OKCZpOTE1LT5kcm0sIGRpZ19wb3J0LT50Y19tb2RlICE9IFRDX1BP UlRfVEJUX0FMVCAmJg0KPiAgCQkJCSF0Y19waHlfaXNfb3duZWQoZGlnX3BvcnQpKTsNCj4gLQ0K PiAtCWRybV9XQVJOX09OKCZpOTE1LT5kcm0sIGRpZ19wb3J0LT50Y19sb2NrX3dha2VyZWYpOw0K PiAtCWRpZ19wb3J0LT50Y19sb2NrX3dha2VyZWYgPSB3YWtlcmVmOw0KPiAgfQ0KPiAgDQo+ICB2 b2lkIGludGVsX3RjX3BvcnRfbG9jayhzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9y dCkNCj4gIHsNCj4gLQlfX2ludGVsX3RjX3BvcnRfbG9jayhkaWdfcG9ydCwgMSwgZmFsc2UpOw0K PiAtfQ0KPiAtDQo+IC12b2lkIGludGVsX3RjX3BvcnRfdW5sb2NrKHN0cnVjdCBpbnRlbF9kaWdp dGFsX3BvcnQgKmRpZ19wb3J0KQ0KPiAtew0KPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpp OTE1ID0gdG9faTkxNShkaWdfcG9ydC0+YmFzZS5iYXNlLmRldik7DQo+IC0JaW50ZWxfd2FrZXJl Zl90IHdha2VyZWYgPSBmZXRjaF9hbmRfemVybygmZGlnX3BvcnQtPnRjX2xvY2tfd2FrZXJlZik7 DQo+IC0NCj4gLQltdXRleF91bmxvY2soJmRpZ19wb3J0LT50Y19sb2NrKTsNCj4gLQ0KPiAtCWlu dGVsX2Rpc3BsYXlfcG93ZXJfcHV0X2FzeW5jKGk5MTUsIFBPV0VSX0RPTUFJTl9ESVNQTEFZX0NP UkUsDQo+IC0JCQkJICAgICAgd2FrZXJlZik7DQo+ICsJX19pbnRlbF90Y19wb3J0X2xvY2soZGln X3BvcnQsIDEpOw0KPiAgfQ0KPiAgDQo+ICAvKioNCj4gLSAqIGludGVsX3RjX3BvcnRfZGlzY29u bmVjdF9waHk6IGRpc2Nvbm5lY3QgVHlwZUMgUEhZIGZyb20gZGlzcGxheSBwb3J0DQo+ICsgKiBp bnRlbF90Y19wb3J0X2Rpc2Nvbm5lY3RfcGh5X3dvcms6IGRpc2Nvbm5lY3QgVHlwZUMgUEhZIGZy b20gZGlzcGxheSBwb3J0DQo+ICAgKiBAZGlnX3BvcnQ6IGRpZ2l0YWwgcG9ydA0KPiAgICoNCj4g ICAqIERpc2Nvbm5lY3QgdGhlIGdpdmVuIGRpZ2l0YWwgcG9ydCBmcm9tIGl0cyBUeXBlQyBQSFkg KGhhbmRpbmcgYmFjayB0aGUNCj4gLSAqIGNvbnRyb2wgb2YgdGhlIFBIWSB0byB0aGUgVHlwZUMg c3Vic3lzdGVtKS4gVGhlIG9ubHkgcHVycG9zZSBvZiB0aGlzDQo+IC0gKiBmdW5jdGlvbiBpcyB0 byBmb3JjZSB0aGUgZGlzY29ubmVjdCBldmVuIHdpdGggYSBUeXBlQyBkaXNwbGF5IG91dHB1dCBz dGlsbA0KPiAtICogcGx1Z2dlZCB0byB0aGUgVHlwZUMgY29ubmVjdG9yLCB3aGljaCBpcyByZXF1 aXJlZCBieSB0aGUgVHlwZUMgZmlybXdhcmVzDQo+IC0gKiBkdXJpbmcgc3lzdGVtIHN1c3BlbmQg YW5kIHNodXRkb3duLiBPdGhlcndpc2UgLSBkdXJpbmcgdGhlIHVucGx1ZyBldmVudA0KPiAtICog aGFuZGxpbmcgLSB0aGUgUEhZIG93bmVyc2hpcCBpcyByZWxlYXNlZCBhdXRvbWF0aWNhbGx5IGJ5 DQo+IC0gKiBpbnRlbF90Y19wb3J0X3Jlc2V0X21vZGUoKSwgd2hlbiBjYWxsaW5nIHRoaXMgZnVu Y3Rpb24gaXMgbm90IHJlcXVpcmVkLg0KPiArICogY29udHJvbCBvZiB0aGUgUEhZIHRvIHRoZSBU eXBlQyBzdWJzeXN0ZW0pLiBUaGlzIHdpbGwgaGFwcGVuIGluIGEgZGVsYXllZA0KPiArICogbWFu bmVyIGFmdGVyIGVhY2ggYXV4IHRyYW5zYWN0aW9ucyBhbmQgbW9kZXNldCBkaXNhYmxlcy4NCj4g ICAqLw0KPiAtdm9pZCBpbnRlbF90Y19wb3J0X2Rpc2Nvbm5lY3RfcGh5KHN0cnVjdCBpbnRlbF9k aWdpdGFsX3BvcnQgKmRpZ19wb3J0KQ0KPiArc3RhdGljIHZvaWQgaW50ZWxfdGNfcG9ydF9kaXNj b25uZWN0X3BoeV93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykNCj4gIHsNCj4gLQlfX2lu dGVsX3RjX3BvcnRfbG9jayhkaWdfcG9ydCwgMSwgdHJ1ZSk7DQo+IC0JaW50ZWxfdGNfcG9ydF91 bmxvY2soZGlnX3BvcnQpOw0KPiArCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0 ID0NCj4gKwkJY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQsIHRj X2Rpc2Nvbm5lY3RfcGh5X3dvcmsud29yayk7DQo+ICsNCj4gKwltdXRleF9sb2NrKCZkaWdfcG9y dC0+dGNfbG9jayk7DQo+ICsNCj4gKwlpZiAoIWRpZ19wb3J0LT50Y19saW5rX3JlZmNvdW50KQ0K PiArCQlpbnRlbF90Y19wb3J0X3VwZGF0ZV9tb2RlKGRpZ19wb3J0LCAxLCB0cnVlKTsNCj4gKw0K PiArCW11dGV4X3VubG9jaygmZGlnX3BvcnQtPnRjX2xvY2spOw0KPiArfQ0KPiArDQo+ICsvKioN Cj4gKyAqIGludGVsX3RjX3BvcnRfZmx1c2hfd29yazogZmx1c2ggdGhlIHdvcmsgZGlzY29ubmVj dGluZyB0aGUgUEhZDQo+ICsgKiBAZGlnX3BvcnQ6IGRpZ2l0YWwgcG9ydA0KPiArICoNCj4gKyAq IEZsdXNoIHRoZSBkZWxheWVkIHdvcmsgZGlzY29ubmVjdGluZyBhbiBpZGxlIFBIWS4NCj4gKyAq Lw0KPiArdm9pZCBpbnRlbF90Y19wb3J0X2ZsdXNoX3dvcmsoc3RydWN0IGludGVsX2RpZ2l0YWxf cG9ydCAqZGlnX3BvcnQpDQo+ICt7DQo+ICsJZmx1c2hfZGVsYXllZF93b3JrKCZkaWdfcG9ydC0+ dGNfZGlzY29ubmVjdF9waHlfd29yayk7DQo+ICt9DQo+ICsNCj4gK3ZvaWQgaW50ZWxfdGNfcG9y dF91bmxvY2soc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpDQo+ICt7DQo+ICsJ aWYgKCFkaWdfcG9ydC0+dGNfbGlua19yZWZjb3VudCAmJiBkaWdfcG9ydC0+dGNfbW9kZSAhPSBU Q19QT1JUX0RJU0NPTk5FQ1RFRCkNCj4gKwkJcXVldWVfZGVsYXllZF93b3JrKHN5c3RlbV91bmJv dW5kX3dxLCAmZGlnX3BvcnQtPnRjX2Rpc2Nvbm5lY3RfcGh5X3dvcmssDQo+ICsJCQkJICAgbXNl Y3NfdG9famlmZmllcygxMDAwKSk7DQo+ICsNCj4gKwltdXRleF91bmxvY2soJmRpZ19wb3J0LT50 Y19sb2NrKTsNCj4gIH0NCj4gIA0KPiAgYm9vbCBpbnRlbF90Y19wb3J0X3JlZl9oZWxkKHN0cnVj dCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0KQ0KPiBAQCAtNzg5LDE2ICs4MDcsMTYgQEAg Ym9vbCBpbnRlbF90Y19wb3J0X3JlZl9oZWxkKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRp Z19wb3J0KQ0KPiAgdm9pZCBpbnRlbF90Y19wb3J0X2dldF9saW5rKHN0cnVjdCBpbnRlbF9kaWdp dGFsX3BvcnQgKmRpZ19wb3J0LA0KPiAgCQkJICAgIGludCByZXF1aXJlZF9sYW5lcykNCj4gIHsN Cj4gLQlfX2ludGVsX3RjX3BvcnRfbG9jayhkaWdfcG9ydCwgcmVxdWlyZWRfbGFuZXMsIGZhbHNl KTsNCj4gKwlfX2ludGVsX3RjX3BvcnRfbG9jayhkaWdfcG9ydCwgcmVxdWlyZWRfbGFuZXMpOw0K PiAgCWRpZ19wb3J0LT50Y19saW5rX3JlZmNvdW50Kys7DQo+ICAJaW50ZWxfdGNfcG9ydF91bmxv Y2soZGlnX3BvcnQpOw0KPiAgfQ0KPiAgDQo+ICB2b2lkIGludGVsX3RjX3BvcnRfcHV0X2xpbmso c3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpDQo+ICB7DQo+IC0JbXV0ZXhfbG9j aygmZGlnX3BvcnQtPnRjX2xvY2spOw0KPiAtCWRpZ19wb3J0LT50Y19saW5rX3JlZmNvdW50LS07 DQo+IC0JbXV0ZXhfdW5sb2NrKCZkaWdfcG9ydC0+dGNfbG9jayk7DQo+ICsJaW50ZWxfdGNfcG9y dF9sb2NrKGRpZ19wb3J0KTsNCj4gKwktLWRpZ19wb3J0LT50Y19saW5rX3JlZmNvdW50Ow0KPiAr CWludGVsX3RjX3BvcnRfdW5sb2NrKGRpZ19wb3J0KTsNCj4gIH0NCj4gIA0KPiAgc3RhdGljIGJv b2wNCj4gQEAgLTg1NCw2ICs4NzIsNyBAQCB2b2lkIGludGVsX3RjX3BvcnRfaW5pdChzdHJ1Y3Qg aW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCwgYm9vbCBpc19sZWdhY3kpDQo+ICAJCSAiJWMv VEMjJWQiLCBwb3J0X25hbWUocG9ydCksIHRjX3BvcnQgKyAxKTsNCj4gIA0KPiAgCW11dGV4X2lu aXQoJmRpZ19wb3J0LT50Y19sb2NrKTsNCj4gKwlJTklUX0RFTEFZRURfV09SSygmZGlnX3BvcnQt PnRjX2Rpc2Nvbm5lY3RfcGh5X3dvcmssIGludGVsX3RjX3BvcnRfZGlzY29ubmVjdF9waHlfd29y ayk7DQo+ICAJZGlnX3BvcnQtPnRjX2xlZ2FjeV9wb3J0ID0gaXNfbGVnYWN5Ow0KPiAgCWRpZ19w b3J0LT50Y19tb2RlID0gVENfUE9SVF9ESVNDT05ORUNURUQ7DQo+ICAJZGlnX3BvcnQtPnRjX2xp bmtfcmVmY291bnQgPSAwOw0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF90Yy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF90Yy5o DQo+IGluZGV4IDBmZGNkZGI0ZmM4NzAuLjZiNDdiMjlmNTUxYzkgMTAwNjQ0DQo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfdGMuaA0KPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3RjLmgNCj4gQEAgLTE3LDcgKzE3LDYgQEAgYm9vbCBp bnRlbF90Y19wb3J0X2luX2RwX2FsdF9tb2RlKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRp Z19wb3J0KTsNCj4gIGJvb2wgaW50ZWxfdGNfcG9ydF9pbl9sZWdhY3lfbW9kZShzdHJ1Y3QgaW50 ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCk7DQo+ICANCj4gIGJvb2wgaW50ZWxfdGNfcG9ydF9j b25uZWN0ZWQoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpOw0KPiAtdm9pZCBpbnRlbF90 Y19wb3J0X2Rpc2Nvbm5lY3RfcGh5KHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0 KTsNCj4gIA0KPiAgdTMyIGludGVsX3RjX3BvcnRfZ2V0X2xhbmVfbWFzayhzdHJ1Y3QgaW50ZWxf ZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCk7DQo+ICB1MzIgaW50ZWxfdGNfcG9ydF9nZXRfcGluX2Fz c2lnbm1lbnRfbWFzayhzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCk7DQo+IEBA IC0yOCw2ICsyNyw3IEBAIHZvaWQgaW50ZWxfdGNfcG9ydF9zZXRfZmlhX2xhbmVfY291bnQoc3Ry dWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQsDQo+ICB2b2lkIGludGVsX3RjX3BvcnRf c2FuaXRpemUoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpOw0KPiAgdm9pZCBp bnRlbF90Y19wb3J0X2xvY2soc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpOw0K PiAgdm9pZCBpbnRlbF90Y19wb3J0X3VubG9jayhzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpk aWdfcG9ydCk7DQo+ICt2b2lkIGludGVsX3RjX3BvcnRfZmx1c2hfd29yayhzdHJ1Y3QgaW50ZWxf ZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCk7DQo+ICB2b2lkIGludGVsX3RjX3BvcnRfZ2V0X2xpbmso c3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQsDQo+ICAJCQkgICAgaW50IHJlcXVp cmVkX2xhbmVzKTsNCj4gIHZvaWQgaW50ZWxfdGNfcG9ydF9wdXRfbGluayhzdHJ1Y3QgaW50ZWxf ZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCk7DQoNCg==