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 X-Spam-Level: X-Spam-Status: No, score=-13.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3AD35C4338F for ; Wed, 28 Jul 2021 17:57: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 021C46103C for ; Wed, 28 Jul 2021 17:57:10 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 021C46103C 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 A6C386E029; Wed, 28 Jul 2021 17:57:10 +0000 (UTC) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id ACDCB6E029 for ; Wed, 28 Jul 2021 17:57:09 +0000 (UTC) X-IronPort-AV: E=McAfee;i="6200,9189,10059"; a="234605359" X-IronPort-AV: E=Sophos;i="5.84,276,1620716400"; d="scan'208";a="234605359" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Jul 2021 10:57:09 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.84,276,1620716400"; d="scan'208";a="464753134" Received: from orsmsx605.amr.corp.intel.com ([10.22.229.18]) by orsmga008.jf.intel.com with ESMTP; 28 Jul 2021 10:57:08 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX605.amr.corp.intel.com (10.22.229.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.4; Wed, 28 Jul 2021 10:57:08 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10; Wed, 28 Jul 2021 10:57:07 -0700 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.010; Wed, 28 Jul 2021 10:57:07 -0700 From: "Souza, Jose" To: "Roper, Matthew D" , "intel-gfx@lists.freedesktop.org" Thread-Topic: [Intel-gfx] [PATCH v2 2/2] drm/i915/adl_p: Add ddi buf translation tables for combo PHY Thread-Index: AQHXf4Ug+PumGE7PREGvZpGrbsbB/6tZK4iA Date: Wed, 28 Jul 2021 17:57:07 +0000 Message-ID: <07d4d229d795f217697e39064931925e556e1c64.camel@intel.com> References: <20210723053401.1269829-3-matthew.d.roper@intel.com> <20210723053854.1294411-1-matthew.d.roper@intel.com> In-Reply-To: <20210723053854.1294411-1-matthew.d.roper@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-ID: <70D822262DCF6642B92CC8D12F1D9929@intel.com> MIME-Version: 1.0 Subject: Re: [Intel-gfx] [PATCH v2 2/2] drm/i915/adl_p: Add ddi buf translation tables for combo PHY 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: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" T24gVGh1LCAyMDIxLTA3LTIyIGF0IDIyOjM4IC0wNzAwLCBNYXR0IFJvcGVyIHdyb3RlOg0KPiBB REwtUCBub3cgaGFzIGl0cyBvd24gc2V0IG9mIERESSBidWYgdHJhbnNsYXRpb24gdGFibGVzIChl eGNlcHQgZm9yIGVEUA0KPiB3aGljaCBhcHBlYXJzIHRvIGJlIHRoZSBzYW1lIGFzIFRHTCkuICBB ZGQgdGhlIG5ldyB2YWx1ZXMgKGxhc3QgdXBkYXRlZA0KPiBpbiBic3BlYyAyMDIxLTA3LTIyKSB0 byB0aGUgZHJpdmVyLg0KPiANCj4gdjI6DQo+ICAtIEFjdHVhbGx5IGhvb2sgdXAgdGhlIG5ldyB0 YWJsZXMgdmlhIGVuY29kZXItPmdldF9idWZfdHJhbnMoKQ0KPiANCj4gQnNwZWM6IDQ5MjkxDQo+ IFNpZ25lZC1vZmYtYnk6IE1hdHQgUm9wZXIgPG1hdHRoZXcuZC5yb3BlckBpbnRlbC5jb20+DQo+ IC0tLQ0KPiAgLi4uL2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpX2J1Zl90cmFucy5jICAgIHwg MTA2ICsrKysrKysrKysrKysrKysrLQ0KPiAgMSBmaWxlIGNoYW5nZWQsIDEwNSBpbnNlcnRpb25z KCspLCAxIGRlbGV0aW9uKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9kZGlfYnVmX3RyYW5zLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX2RkaV9idWZfdHJhbnMuYw0KPiBpbmRleCBjZGQwZGY0NjcyODcuLjdiZjgw YjcyNzMzZCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9kZGlfYnVmX3RyYW5zLmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9kZGlfYnVmX3RyYW5zLmMNCj4gQEAgLTEwNTcsNiArMTA1Nyw2NCBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMgYWRsc19jb21ib19waHlfZGRpX3RyYW5zbGF0 aW9uc19lZHBfaGJyMw0KPiAgCS5udW1fZW50cmllcyA9IEFSUkFZX1NJWkUoX2FkbHNfY29tYm9f cGh5X2RkaV90cmFuc2xhdGlvbnNfZWRwX2hicjMpLA0KPiAgfTsNCj4gIA0KPiArc3RhdGljIGNv bnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgX2FkbHBfY29tYm9fcGh5X2RkaV90 cmFuc2xhdGlvbnNfaGRtaVtdID0gew0KPiArCQkJCQkJCS8qIE5UIG1WIFRyYW5zIG1WICAgIGRi ICAgKi8NCj4gKwl7IC5jbmwgPSB7IDB4NiwgMHg2MCwgMHgzRiwgMHgwMCwgMHgwMCB9IH0sCS8q ICA0MDAgICAgNDAwICAgICAgMC4wICovDQo+ICsJeyAuY25sID0geyAweDYsIDB4NjgsIDB4M0Ys IDB4MDAsIDB4MDAgfSB9LAkvKiAgNTAwICAgIDUwMCAgICAgIDAuMCAqLw0KPiArCXsgLmNubCA9 IHsgMHhBLCAweDczLCAweDNGLCAweDAwLCAweDAwIH0gfSwJLyogIDY1MCAgICA2NTAgICAgICAw LjAgQUxTICovDQo+ICsJeyAuY25sID0geyAweEEsIDB4NzgsIDB4M0YsIDB4MDAsIDB4MDAgfSB9 LAkvKiAgODAwICAgIDgwMCAgICAgIDAuMCAqLw0KPiArCXsgLmNubCA9IHsgMHhCLCAweDdGLCAw eDNGLCAweDAwLCAweDAwIH0gfSwJLyogMTAwMCAgIDEwMDAgICAgICAwLjAgUmUtdGltZXIgKi8N Cj4gKwl7IC5jbmwgPSB7IDB4QiwgMHg3RiwgMHgzQiwgMHgwMCwgMHgwNCB9IH0sCS8qIEZ1bGwg ICAgUmVkICAgICAtMS41ICovDQo+ICsJeyAuY25sID0geyAweEIsIDB4N0YsIDB4MzksIDB4MDAs IDB4MDYgfSB9LAkvKiBGdWxsICAgIFJlZCAgICAgLTEuOCAqLw0KPiArCXsgLmNubCA9IHsgMHhC LCAweDdGLCAweDM3LCAweDAwLCAweDA4IH0gfSwJLyogRnVsbCAgICBSZWQgICAgIC0yLjAgQ1JM UyAqLw0KPiArCXsgLmNubCA9IHsgMHhCLCAweDdGLCAweDM1LCAweDAwLCAweDBBIH0gfSwJLyog RnVsbCAgICBSZWQgICAgIC0yLjUgKi8NCj4gKwl7IC5jbmwgPSB7IDB4QiwgMHg3RiwgMHgzMywg MHgwMCwgMHgwQyB9IH0sCS8qIEZ1bGwgICAgUmVkICAgICAtMy4wICovDQo+ICt9Ow0KPiArDQo+ ICtzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMgYWRscF9jb21ib19waHlf ZGRpX3RyYW5zbGF0aW9uc19oZG1pID0gew0KPiArCS5lbnRyaWVzID0gX2FkbHBfY29tYm9fcGh5 X2RkaV90cmFuc2xhdGlvbnNfaGRtaSwNCj4gKwkubnVtX2VudHJpZXMgPSBBUlJBWV9TSVpFKF9h ZGxwX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2hkbWkpLA0KPiArCS5oZG1pX2RlZmF1bHRf ZW50cnkgPSBBUlJBWV9TSVpFKF9hZGxwX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2hkbWkp IC0gMSwNCj4gK307DQo+ICsNCj4gK3N0YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3Ry YW5zX2VudHJ5IF9hZGxwX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwX2hicltdID0gew0K PiArCQkJCQkJCS8qIE5UIG1WIFRyYW5zIG1WIGRiICAgICovDQo+ICsJeyAuY25sID0geyAweEEs IDB4MzUsIDB4M0YsIDB4MDAsIDB4MDAgfSB9LAkvKiAzNTAgICAzNTAgICAgICAwLjAgICAqLw0K PiArCXsgLmNubCA9IHsgMHhBLCAweDRGLCAweDM3LCAweDAwLCAweDA4IH0gfSwJLyogMzUwICAg NTAwICAgICAgMy4xICAgKi8NCj4gKwl7IC5jbmwgPSB7IDB4QywgMHg3MSwgMHgzMSwgMHgwMCwg MHgwRSB9IH0sCS8qIDM1MCAgIDcwMCAgICAgIDYuMCAgICovDQo+ICsJeyAuY25sID0geyAweDYs IDB4N0YsIDB4MkMsIDB4MDAsIDB4MTMgfSB9LAkvKiAzNTAgICA5MDAgICAgICA4LjIgICAqLw0K PiArCXsgLmNubCA9IHsgMHhBLCAweDRDLCAweDNGLCAweDAwLCAweDAwIH0gfSwJLyogNTAwICAg NTAwICAgICAgMC4wICAgKi8NCj4gKwl7IC5jbmwgPSB7IDB4QywgMHg3MywgMHgzNCwgMHgwMCwg MHgwQiB9IH0sCS8qIDUwMCAgIDcwMCAgICAgIDIuOSAgICovDQo+ICsJeyAuY25sID0geyAweDYs IDB4N0YsIDB4MkYsIDB4MDAsIDB4MTAgfSB9LAkvKiA1MDAgICA5MDAgICAgICA1LjEgICAqLw0K PiArCXsgLmNubCA9IHsgMHhDLCAweDczLCAweDNFLCAweDAwLCAweDAxIH0gfSwJLyogNjUwICAg NzAwICAgICAgMC42ICAgKi8NCj4gKwl7IC5jbmwgPSB7IDB4NiwgMHg3RiwgMHgzNSwgMHgwMCwg MHgwQSB9IH0sCS8qIDYwMCAgIDkwMCAgICAgIDMuNSAgICovDQo+ICsJeyAuY25sID0geyAweDYs IDB4N0YsIDB4M0YsIDB4MDAsIDB4MDAgfSB9LAkvKiA5MDAgICA5MDAgICAgICAwLjAgICAqLw0K PiArfTsNCj4gKw0KPiArc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZGlfYnVmX3RyYW5zIGFk bHBfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZHBfaGJyID0gew0KPiArCS5lbnRyaWVzID0g X2FkbHBfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZHBfaGJyLA0KPiArCS5udW1fZW50cmll cyA9IEFSUkFZX1NJWkUoX2FkbHBfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZHBfaGJyKSwN Cj4gK307DQo+ICsNCj4gK3N0YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2Vu dHJ5IF9hZGxwX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwX2hicjJfaGJyM1tdID0gew0K PiArCQkJCQkJCS8qIE5UIG1WIFRyYW5zIG1WIGRiICAgICovDQo+ICsJeyAuY25sID0geyAweEEs IDB4MzUsIDB4M0YsIDB4MDAsIDB4MDAgfSB9LAkvKiAzNTAgICAzNTAgICAgICAwLjAgICAqLw0K PiArCXsgLmNubCA9IHsgMHhBLCAweDRGLCAweDM3LCAweDAwLCAweDA4IH0gfSwJLyogMzUwICAg NTAwICAgICAgMy4xICAgKi8NCj4gKwl7IC5jbmwgPSB7IDB4QywgMHg3MSwgMHgyRiwgMHgwMCwg MHgxMCB9IH0sCS8qIDM1MCAgIDcwMCAgICAgIDYuMCAgICovDQo+ICsJeyAuY25sID0geyAweDYs IDB4N0YsIDB4MkIsIDB4MDAsIDB4MTQgfSB9LAkvKiAzNTAgICA5MDAgICAgICA4LjIgICAqLw0K PiArCXsgLmNubCA9IHsgMHhBLCAweDRDLCAweDNGLCAweDAwLCAweDAwIH0gfSwJLyogNTAwICAg NTAwICAgICAgMC4wICAgKi8NCj4gKwl7IC5jbmwgPSB7IDB4QywgMHg3MywgMHgzNCwgMHgwMCwg MHgwQiB9IH0sCS8qIDUwMCAgIDcwMCAgICAgIDIuOSAgICovDQo+ICsJeyAuY25sID0geyAweDYs IDB4N0YsIDB4MzAsIDB4MDAsIDB4MEYgfSB9LAkvKiA1MDAgICA5MDAgICAgICA1LjEgICAqLw0K PiArCXsgLmNubCA9IHsgMHhDLCAweDYzLCAweDNGLCAweDAwLCAweDAwIH0gfSwJLyogNjUwICAg NzAwICAgICAgMC42ICAgKi8NCj4gKwl7IC5jbmwgPSB7IDB4NiwgMHg3RiwgMHgzOCwgMHgwMCwg MHgwNyB9IH0sCS8qIDYwMCAgIDkwMCAgICAgIDMuNSAgICovDQo+ICsJeyAuY25sID0geyAweDYs IDB4N0YsIDB4M0YsIDB4MDAsIDB4MDAgfSB9LAkvKiA5MDAgICA5MDAgICAgICAwLjAgICAqLw0K PiArfTsNCj4gKw0KPiArc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZGlfYnVmX3RyYW5zIGFk bHBfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZHBfaGJyMl9oYnIzID0gew0KPiArCS5lbnRy aWVzID0gX2FkbHBfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZHBfaGJyMl9oYnIzLA0KPiAr CS5udW1fZW50cmllcyA9IEFSUkFZX1NJWkUoX2FkbHBfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlv bnNfZHBfaGJyMl9oYnIzKSwNCj4gK307DQo+ICsNCj4gIHN0YXRpYyBjb25zdCB1bmlvbiBpbnRl bF9kZGlfYnVmX3RyYW5zX2VudHJ5IF9hZGxwX2RrbF9waHlfZGRpX3RyYW5zbGF0aW9uc19kcF9o YnJbXSA9IHsNCj4gIAkJCQkJLyogVlMJcHJlLWVtcAlOb24tdHJhbnMgbVYJUHJlLWVtcGggZEIg Ki8NCj4gIAl7IC5ka2wgPSB7IDB4NywgMHgwLCAweDAxIH0gfSwJLyogMAkwCTQwMG1WCQkwIGRC ICovDQo+IEBAIC0xNjYxLDYgKzE3MTksNTIgQEAgYWRsc19nZXRfY29tYm9fYnVmX3RyYW5zKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLA0KPiAgCQlyZXR1cm4gYWRsc19nZXRfY29tYm9f YnVmX3RyYW5zX2RwKGVuY29kZXIsIGNydGNfc3RhdGUsIG5fZW50cmllcyk7DQo+ICB9DQo+ICAN Cj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGRpX2J1Zl90cmFucyAqDQo+ICthZGxwX2dl dF9jb21ib19idWZfdHJhbnNfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsDQo+ICsJ CQkgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsDQo+ICsJCQkg ICAgaW50ICpuX2VudHJpZXMpDQo+ICt7DQo+ICsJaWYgKGNydGNfc3RhdGUtPnBvcnRfY2xvY2sg PiAyNzAwMDApDQo+ICsJCXJldHVybiBpbnRlbF9nZXRfYnVmX3RyYW5zKCZhZGxwX2NvbWJvX3Bo eV9kZGlfdHJhbnNsYXRpb25zX2RwX2hicjJfaGJyMywgbl9lbnRyaWVzKTsNCj4gKwllbHNlDQo+ ICsJCXJldHVybiBpbnRlbF9nZXRfYnVmX3RyYW5zKCZhZGxwX2NvbWJvX3BoeV9kZGlfdHJhbnNs YXRpb25zX2RwX2hiciwgbl9lbnRyaWVzKTsNCj4gK30NCj4gKw0KPiArc3RhdGljIGNvbnN0IHN0 cnVjdCBpbnRlbF9kZGlfYnVmX3RyYW5zICoNCj4gK2FkbHBfZ2V0X2NvbWJvX2J1Zl90cmFuc19l ZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsDQo+ICsJCQkgICAgIGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLA0KPiArCQkJICAgICBpbnQgKm5fZW50cmll cykNCj4gK3sNCj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGVuY29kZXItPmJhc2UuZGV2KTsNCj4gKwlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5j X3RvX2ludGVsX2RwKGVuY29kZXIpOw0KPiArDQo+ICsJaWYgKGNydGNfc3RhdGUtPnBvcnRfY2xv Y2sgPiA1NDAwMDApIHsNCj4gKwkJcmV0dXJuIGludGVsX2dldF9idWZfdHJhbnMoJmljbF9jb21i b19waHlfZGRpX3RyYW5zbGF0aW9uc19kcF9oYnIyX2VkcF9oYnIzLA0KPiArCQkJCQkgICBuX2Vu dHJpZXMpOw0KPiArCX0gZWxzZSBpZiAoZGV2X3ByaXYtPnZidC5lZHAuaG9ibCAmJiAhaW50ZWxf ZHAtPmhvYmxfZmFpbGVkKSB7DQo+ICsJCXJldHVybiBpbnRlbF9nZXRfYnVmX3RyYW5zKCZ0Z2xf Y29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZWRwX2hicjJfaG9ibCwNCj4gKwkJCQkJICAgbl9l bnRyaWVzKTsNCj4gKwl9IGVsc2UgaWYgKGRldl9wcml2LT52YnQuZWRwLmxvd192c3dpbmcpIHsN Cj4gKwkJcmV0dXJuIGludGVsX2dldF9idWZfdHJhbnMoJmljbF9jb21ib19waHlfZGRpX3RyYW5z bGF0aW9uc19lZHBfaGJyMiwNCj4gKwkJCQkJICAgbl9lbnRyaWVzKTsNCj4gKwl9DQoNClRoZSBj b250ZW50IG9mIHRoZSB0YWJsZXMgbWF0Y2hlcyB3aXRoIGFkbC1wIG9uZXMgYnV0IHRoZSBuYW1p bmcgaXMgd3JvbmcgcmVnYXJkaW5nIHRoZSBIQlIgdmVyc2lvbiBvZiB0aGUgcmV1c2VkIHRhYmxl cy4NCk1heWJlIHdvdWxkIGJlIGJldHRlciBhZGQgc29tZXRoaW5nIGxpa2UgYmVsb3cgYW5kIHBv aW50IHRvIHRob3NlIGludGVsX2RkaV9idWZfdHJhbnMgZm9yIEhCUjMgYW5kICJ1cCB0byBIQlIy Ii4NCg0KDQpzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMgYWRscF9jb21i b19waHlfZGRpX3RyYW5zbGF0aW9uc19lZHBfaGJyMyA9IHsNCgkuZW50cmllcyA9IGljbF9jb21i b19waHlfZGRpX3RyYW5zbGF0aW9uc19kcF9oYnIyX2VkcF9oYnIzLA0KCS5udW1fZW50cmllcyA9 IEFSUkFZX1NJWkUoaWNsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwX2hicjJfZWRwX2hi cjMpLA0KfTsNCg0KDQpXaXRoIHRoYXQ6DQpSZXZpZXdlZC1ieTogSm9zw6kgUm9iZXJ0byBkZSBT b3V6YSA8am9zZS5zb3V6YUBpbnRlbC5jb20+DQoNCj4gKw0KPiArCXJldHVybiBhZGxwX2dldF9j b21ib19idWZfdHJhbnNfZHAoZW5jb2RlciwgY3J0Y19zdGF0ZSwgbl9lbnRyaWVzKTsNCj4gK30N Cj4gKw0KPiArc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZGlfYnVmX3RyYW5zICoNCj4gK2Fk bHBfZ2V0X2NvbWJvX2J1Zl90cmFucyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwNCj4g KwkJCSBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwNCj4gKwkJCSBp bnQgKm5fZW50cmllcykNCj4gK3sNCj4gKwlpZiAoaW50ZWxfY3J0Y19oYXNfdHlwZShjcnRjX3N0 YXRlLCBJTlRFTF9PVVRQVVRfSERNSSkpDQo+ICsJCXJldHVybiBpbnRlbF9nZXRfYnVmX3RyYW5z KCZhZGxwX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2hkbWksIG5fZW50cmllcyk7DQo+ICsJ ZWxzZSBpZiAoaW50ZWxfY3J0Y19oYXNfdHlwZShjcnRjX3N0YXRlLCBJTlRFTF9PVVRQVVRfRURQ KSkNCj4gKwkJcmV0dXJuIGFkbHBfZ2V0X2NvbWJvX2J1Zl90cmFuc19lZHAoZW5jb2RlciwgY3J0 Y19zdGF0ZSwgbl9lbnRyaWVzKTsNCj4gKwllbHNlDQo+ICsJCXJldHVybiBhZGxwX2dldF9jb21i b19idWZfdHJhbnNfZHAoZW5jb2RlciwgY3J0Y19zdGF0ZSwgbl9lbnRyaWVzKTsNCj4gK30NCj4g Kw0KPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZGlfYnVmX3RyYW5zICoNCj4gIHRnbF9n ZXRfZGtsX2J1Zl90cmFuc19kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwNCj4gIAkJ CSBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwNCj4gQEAgLTE3Mzgs NyArMTg0Miw3IEBAIHZvaWQgaW50ZWxfZGRpX2J1Zl90cmFuc19pbml0KHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyKQ0KPiAgDQo+ICAJaWYgKElTX0FMREVSTEFLRV9QKGk5MTUpKSB7DQo+ ICAJCWlmIChpbnRlbF9waHlfaXNfY29tYm8oaTkxNSwgcGh5KSkNCj4gLQkJCWVuY29kZXItPmdl dF9idWZfdHJhbnMgPSB0Z2xfZ2V0X2NvbWJvX2J1Zl90cmFuczsNCj4gKwkJCWVuY29kZXItPmdl dF9idWZfdHJhbnMgPSBhZGxwX2dldF9jb21ib19idWZfdHJhbnM7DQo+ICAJCWVsc2UNCj4gIAkJ CWVuY29kZXItPmdldF9idWZfdHJhbnMgPSBhZGxwX2dldF9ka2xfYnVmX3RyYW5zOw0KPiAgCX0g ZWxzZSBpZiAoSVNfQUxERVJMQUtFX1MoaTkxNSkpIHsNCg0KX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==