From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Souza, Jose" Subject: Re: [PATCH 2/5] drm/i915/cnl+: Move the combo PHY init/uninit code to a new file Date: Fri, 2 Nov 2018 21:06:43 +0000 Message-ID: <98fad41383d18290b981591bd037e5b29559e1e2.camel@intel.com> References: <20181102180706.16582-1-imre.deak@intel.com> <20181102180706.16582-3-imre.deak@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id 054DE6E5D9 for ; Fri, 2 Nov 2018 21:06:44 +0000 (UTC) In-Reply-To: <20181102180706.16582-3-imre.deak@intel.com> Content-Language: en-US Content-ID: <06345CF720761F458CD790C112D2D355@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "intel-gfx@lists.freedesktop.org" , "Deak, Imre" Cc: "Zanoni, Paulo R" , "Vivi, Rodrigo" List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCAyMDE4LTExLTAyIGF0IDIwOjA3ICswMjAwLCBJbXJlIERlYWsgd3JvdGU6DQo+IFNp bWlsYXJseSB0byB0aGUgR0VOOV9MUCBEUElPIFBIWSBjb2RlIGtlZXAgdGhlIENOTCsgY29tYm8g UEhZIGNvZGUNCj4gaW4gYQ0KPiBzZXBhcmF0ZSBmaWxlLg0KPiANCj4gTm8gZnVuY3Rpb25hbCBj aGFuZ2UuDQo+IA0KPiBTdWdnZXN0ZWQtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFs YUBsaW51eC5pbnRlbC5jb20+DQo+IENjOiBQYXVsbyBaYW5vbmkgPHBhdWxvLnIuemFub25pQGlu dGVsLmNvbT4NCj4gQ2M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRl bC5jb20+DQo+IENjOiBKb3PDqSBSb2JlcnRvIGRlIFNvdXphIDxqb3NlLnNvdXphQGludGVsLmNv bT4NCj4gQ2M6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4NCj4gU2lnbmVk LW9mZi1ieTogSW1yZSBEZWFrIDxpbXJlLmRlYWtAaW50ZWwuY29tPg0KPiAtLS0NCj4gIGRyaXZl cnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlICAgICAgICAgICB8ICAgMSArDQo+ICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgfCAgIDYgKysNCj4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2NvbWJvX3BoeS5jICB8IDE1OQ0KPiArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKw0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jIHwg MTI3ICsrLS0tLS0tLS0tLS0tLS0tLS0tDQo+IC0tLS0tDQo+ICA0IGZpbGVzIGNoYW5nZWQsIDE3 NCBpbnNlcnRpb25zKCspLCAxMTkgZGVsZXRpb25zKC0pDQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29tYm9fcGh5LmMNCj4gDQo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQ0KPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L01ha2VmaWxlDQo+IGluZGV4IDI4YzdkNzg4NGU4OC4uMWU3ZTk1MTNiYjEwIDEwMDY0NA0KPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQ0KPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9NYWtlZmlsZQ0KPiBAQCAtMTEzLDYgKzExMyw3IEBAIGk5MTUteSArPSBpbnRlbF9h dWRpby5vIFwNCj4gIAkgIGludGVsX2Jpb3MubyBcDQo+ICAJICBpbnRlbF9jZGNsay5vIFwNCj4g IAkgIGludGVsX2NvbG9yLm8gXA0KPiArCSAgaW50ZWxfY29tYm9fcGh5Lm8gXA0KPiAgCSAgaW50 ZWxfY29ubmVjdG9yLm8gXA0KPiAgCSAgaW50ZWxfZGlzcGxheS5vIFwNCj4gIAkgIGludGVsX2Rw aW9fcGh5Lm8gXA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aA0KPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgNCj4gaW5kZXggNjE1N2Y4MTI4 Y2M1Li42Mjg4MmUxZGRiZWUgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmgNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaA0KPiBAQCAt MzU3MSw2ICszNTcxLDEyIEBAIHZvaWQgdmx2X3BoeV9wcmVfZW5jb2Rlcl9lbmFibGUoc3RydWN0 DQo+IGludGVsX2VuY29kZXIgKmVuY29kZXIsDQo+ICB2b2lkIHZsdl9waHlfcmVzZXRfbGFuZXMo c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsDQo+ICAJCQkgY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUNCj4gKm9sZF9jcnRjX3N0YXRlKTsNCj4gIA0KPiArLyogaW50ZWxfY29tYm9f cGh5LmMgKi8NCj4gK3ZvaWQgaWNsX2NvbWJvX3BoeXNfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpOw0KPiArdm9pZCBpY2xfY29tYm9fcGh5c191bmluaXQoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsNCj4gK3ZvaWQgY25sX2NvbWJvX3BoeXNfaW5pdChz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOw0KPiArdm9pZCBjbmxfY29tYm9fcGh5 c191bmluaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsNCj4gKw0KPiAgaW50 IGludGVsX2dwdV9mcmVxKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgaW50IHZh bCk7DQo+ICBpbnQgaW50ZWxfZnJlcV9vcGNvZGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LCBpbnQgdmFsKTsNCj4gIHU2NCBpbnRlbF9yYzZfcmVzaWRlbmN5X25zKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2NvbWJvX3BoeS5jDQo+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf Y29tYm9fcGh5LmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAw Li4xMzE4NGFlNWEyMTcNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9jb21ib19waHkuYw0KPiBAQCAtMCwwICsxLDE1OSBAQA0KPiArLyoNCj4gKyAq IENvcHlyaWdodCDCqSAyMDE4IEludGVsIENvcnBvcmF0aW9uDQo+ICsgKg0KPiArICogUGVybWlz c2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24NCj4g b2J0YWluaW5nIGENCj4gKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBk b2N1bWVudGF0aW9uIGZpbGVzICh0aGUNCj4gIlNvZnR3YXJlIiksDQo+ICsgKiB0byBkZWFsIGlu IHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dA0KPiBs aW1pdGF0aW9uDQo+ICsgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwg cHVibGlzaCwgZGlzdHJpYnV0ZSwNCj4gc3VibGljZW5zZSwNCj4gKyAqIGFuZC9vciBzZWxsIGNv cGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tDQo+IHRo ZQ0KPiArICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBm b2xsb3dpbmcNCj4gY29uZGl0aW9uczoNCj4gKyAqDQo+ICsgKiBUaGUgYWJvdmUgY29weXJpZ2h0 IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nDQo+IHRoZSBuZXh0 DQo+ICsgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vi c3RhbnRpYWwNCj4gcG9ydGlvbnMgb2YgdGhlDQo+ICsgKiBTb2Z0d2FyZS4NCj4gKyAqDQo+ICsg KiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBB TlkgS0lORCwNCj4gRVhQUkVTUyBPUg0KPiArICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1Qg TElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRg0KPiBNRVJDSEFOVEFCSUxJVFksDQo+ICsgKiBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4g Tk8NCj4gRVZFTlQgU0hBTEwNCj4gKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJT IEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTDQo+IE9SIE9USEVSDQo+ICsgKiBMSUFC SUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lT RSwNCj4gQVJJU0lORw0KPiArICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBU SEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUg0KPiBPVEhFUg0KPiArICogREVBTElOR1MgSU4gVEhF IFNPRlRXQVJFLg0KPiArICovDQo+ICsNCj4gKyNpbmNsdWRlICJpbnRlbF9kcnYuaCINCj4gKw0K PiArZW51bSB7DQo+ICsJUFJPQ01PTl8wXzg1Vl9ET1RfMCwNCj4gKwlQUk9DTU9OXzBfOTVWX0RP VF8wLA0KPiArCVBST0NNT05fMF85NVZfRE9UXzEsDQo+ICsJUFJPQ01PTl8xXzA1Vl9ET1RfMCwN Cj4gKwlQUk9DTU9OXzFfMDVWX0RPVF8xLA0KPiArfTsNCj4gKw0KPiArc3RhdGljIGNvbnN0IHN0 cnVjdCBjbmxfcHJvY21vbiB7DQo+ICsJdTMyIGR3MSwgZHc5LCBkdzEwOw0KPiArfSBjbmxfcHJv Y21vbl92YWx1ZXNbXSA9IHsNCj4gKwlbUFJPQ01PTl8wXzg1Vl9ET1RfMF0gPQ0KPiArCQl7IC5k dzEgPSAweDAwMDAwMDAwLCAuZHc5ID0gMHg2MkFCNjdCQiwgLmR3MTAgPQ0KPiAweDUxOTE0Rjk2 LCB9LA0KPiArCVtQUk9DTU9OXzBfOTVWX0RPVF8wXSA9DQo+ICsJCXsgLmR3MSA9IDB4MDAwMDAw MDAsIC5kdzkgPSAweDg2RTE3MkM3LCAuZHcxMCA9DQo+IDB4NzdDQTVFQUIsIH0sDQo+ICsJW1BS T0NNT05fMF85NVZfRE9UXzFdID0NCj4gKwkJeyAuZHcxID0gMHgwMDAwMDAwMCwgLmR3OSA9IDB4 OTNGODdGRTEsIC5kdzEwID0NCj4gMHg4QUU4NzFDNSwgfSwNCj4gKwlbUFJPQ01PTl8xXzA1Vl9E T1RfMF0gPQ0KPiArCQl7IC5kdzEgPSAweDAwMDAwMDAwLCAuZHc5ID0gMHg5OEZBODJERCwgLmR3 MTAgPQ0KPiAweDg5RTQ2REMxLCB9LA0KPiArCVtQUk9DTU9OXzFfMDVWX0RPVF8xXSA9DQo+ICsJ CXsgLmR3MSA9IDB4MDA0NDAwMDAsIC5kdzkgPSAweDlBMDBBQjI1LCAuZHcxMCA9DQo+IDB4OEFF MzhGRjEsIH0sDQo+ICt9Ow0KPiArDQo+ICsvKg0KPiArICogQ05MIGhhcyBqdXN0IG9uZSBzZXQg b2YgcmVnaXN0ZXJzLCB3aGlsZSBJQ0wgaGFzIHR3byBzZXRzOiBvbmUNCj4gZm9yIHBvcnQgQSBh bmQNCj4gKyAqIHRoZSBvdGhlciBmb3IgcG9ydCBCLiBUaGUgQ05MIHJlZ2lzdGVycyBhcmUgZXF1 aXZhbGVudCB0byB0aGUgSUNMDQo+IHBvcnQgQQ0KPiArICogcmVnaXN0ZXJzLCB0aGF0J3Mgd2h5 IHdlIGNhbGwgdGhlIElDTCBtYWNyb3MgZXZlbiB0aG91Z2ggdGhlDQo+IGZ1bmN0aW9uIGhhcyBD TkwNCj4gKyAqIG9uIGl0cyBuYW1lLg0KPiArICovDQo+ICtzdGF0aWMgdm9pZCBjbmxfc2V0X3By b2Ntb25fcmVmX3ZhbHVlcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZQ0KPiAqZGV2X3ByaXYsDQo+ ICsJCQkJICAgICAgIGVudW0gcG9ydCBwb3J0KQ0KPiArew0KPiArCWNvbnN0IHN0cnVjdCBjbmxf cHJvY21vbiAqcHJvY21vbjsNCj4gKwl1MzIgdmFsOw0KPiArDQo+ICsJdmFsID0gSTkxNV9SRUFE KElDTF9QT1JUX0NPTVBfRFczKHBvcnQpKTsNCj4gKwlzd2l0Y2ggKHZhbCAmIChQUk9DRVNTX0lO Rk9fTUFTSyB8IFZPTFRBR0VfSU5GT19NQVNLKSkgew0KPiArCWRlZmF1bHQ6DQo+ICsJCU1JU1NJ TkdfQ0FTRSh2YWwpOw0KPiArCQkvKiBmYWxsIHRocm91Z2ggKi8NCj4gKwljYXNlIFZPTFRBR0Vf SU5GT18wXzg1ViB8IFBST0NFU1NfSU5GT19ET1RfMDoNCj4gKwkJcHJvY21vbiA9ICZjbmxfcHJv Y21vbl92YWx1ZXNbUFJPQ01PTl8wXzg1Vl9ET1RfMF07DQo+ICsJCWJyZWFrOw0KPiArCWNhc2Ug Vk9MVEFHRV9JTkZPXzBfOTVWIHwgUFJPQ0VTU19JTkZPX0RPVF8wOg0KPiArCQlwcm9jbW9uID0g JmNubF9wcm9jbW9uX3ZhbHVlc1tQUk9DTU9OXzBfOTVWX0RPVF8wXTsNCj4gKwkJYnJlYWs7DQo+ ICsJY2FzZSBWT0xUQUdFX0lORk9fMF85NVYgfCBQUk9DRVNTX0lORk9fRE9UXzE6DQo+ICsJCXBy b2Ntb24gPSAmY25sX3Byb2Ntb25fdmFsdWVzW1BST0NNT05fMF85NVZfRE9UXzFdOw0KPiArCQli cmVhazsNCj4gKwljYXNlIFZPTFRBR0VfSU5GT18xXzA1ViB8IFBST0NFU1NfSU5GT19ET1RfMDoN Cj4gKwkJcHJvY21vbiA9ICZjbmxfcHJvY21vbl92YWx1ZXNbUFJPQ01PTl8xXzA1Vl9ET1RfMF07 DQo+ICsJCWJyZWFrOw0KPiArCWNhc2UgVk9MVEFHRV9JTkZPXzFfMDVWIHwgUFJPQ0VTU19JTkZP X0RPVF8xOg0KPiArCQlwcm9jbW9uID0gJmNubF9wcm9jbW9uX3ZhbHVlc1tQUk9DTU9OXzFfMDVW X0RPVF8xXTsNCj4gKwkJYnJlYWs7DQo+ICsJfQ0KPiArDQo+ICsJdmFsID0gSTkxNV9SRUFEKElD TF9QT1JUX0NPTVBfRFcxKHBvcnQpKTsNCj4gKwl2YWwgJj0gfigoMHhmZiA8PCAxNikgfCAweGZm KTsNCj4gKwl2YWwgfD0gcHJvY21vbi0+ZHcxOw0KPiArCUk5MTVfV1JJVEUoSUNMX1BPUlRfQ09N UF9EVzEocG9ydCksIHZhbCk7DQo+ICsNCj4gKwlJOTE1X1dSSVRFKElDTF9QT1JUX0NPTVBfRFc5 KHBvcnQpLCBwcm9jbW9uLT5kdzkpOw0KPiArCUk5MTVfV1JJVEUoSUNMX1BPUlRfQ09NUF9EVzEw KHBvcnQpLCBwcm9jbW9uLT5kdzEwKTsNCj4gK30NCj4gKw0KPiArdm9pZCBjbmxfY29tYm9fcGh5 c19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikNCj4gK3sNCj4gKwl1MzIg dmFsOw0KPiArDQo+ICsJdmFsID0gSTkxNV9SRUFEKENISUNLRU5fTUlTQ18yKTsNCj4gKwl2YWwg Jj0gfkNOTF9DT01QX1BXUl9ET1dOOw0KPiArCUk5MTVfV1JJVEUoQ0hJQ0tFTl9NSVNDXzIsIHZh bCk7DQo+ICsNCj4gKwkvKiBEdW1teSBQT1JUX0EgdG8gZ2V0IHRoZSBjb3JyZWN0IENOTCByZWdp c3RlciBmcm9tIHRoZSBJQ0wNCj4gbWFjcm8gKi8NCj4gKwljbmxfc2V0X3Byb2Ntb25fcmVmX3Zh bHVlcyhkZXZfcHJpdiwgUE9SVF9BKTsNCj4gKw0KPiArCXZhbCA9IEk5MTVfUkVBRChDTkxfUE9S VF9DT01QX0RXMCk7DQo+ICsJdmFsIHw9IENPTVBfSU5JVDsNCj4gKwlJOTE1X1dSSVRFKENOTF9Q T1JUX0NPTVBfRFcwLCB2YWwpOw0KPiArDQo+ICsJdmFsID0gSTkxNV9SRUFEKENOTF9QT1JUX0NM MUNNX0RXNSk7DQo+ICsJdmFsIHw9IENMX1BPV0VSX0RPV05fRU5BQkxFOw0KPiArCUk5MTVfV1JJ VEUoQ05MX1BPUlRfQ0wxQ01fRFc1LCB2YWwpOw0KPiArfQ0KPiArDQo+ICt2b2lkIGNubF9jb21i b19waHlzX3VuaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpDQo+ICt7DQo+ ICsJdTMyIHZhbDsNCj4gKw0KPiArCXZhbCA9IEk5MTVfUkVBRChDSElDS0VOX01JU0NfMik7DQo+ ICsJdmFsIHw9IENOTF9DT01QX1BXUl9ET1dOOw0KPiArCUk5MTVfV1JJVEUoQ0hJQ0tFTl9NSVND XzIsIHZhbCk7DQo+ICt9DQo+ICsNCj4gK3ZvaWQgaWNsX2NvbWJvX3BoeXNfaW5pdChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpDQo+ICt7DQo+ICsJZW51bSBwb3J0IHBvcnQ7DQo+ ICsNCj4gKwlmb3IgKHBvcnQgPSBQT1JUX0E7IHBvcnQgPD0gUE9SVF9COyBwb3J0KyspIHsNCj4g KwkJdTMyIHZhbDsNCj4gKw0KPiArCQl2YWwgPSBJOTE1X1JFQUQoSUNMX1BIWV9NSVNDKHBvcnQp KTsNCj4gKwkJdmFsICY9IH5JQ0xfUEhZX01JU0NfREVfSU9fQ09NUF9QV1JfRE9XTjsNCj4gKwkJ STkxNV9XUklURShJQ0xfUEhZX01JU0MocG9ydCksIHZhbCk7DQo+ICsNCj4gKwkJY25sX3NldF9w cm9jbW9uX3JlZl92YWx1ZXMoZGV2X3ByaXYsIHBvcnQpOw0KPiArDQo+ICsJCXZhbCA9IEk5MTVf UkVBRChJQ0xfUE9SVF9DT01QX0RXMChwb3J0KSk7DQo+ICsJCXZhbCB8PSBDT01QX0lOSVQ7DQo+ ICsJCUk5MTVfV1JJVEUoSUNMX1BPUlRfQ09NUF9EVzAocG9ydCksIHZhbCk7DQo+ICsNCj4gKwkJ dmFsID0gSTkxNV9SRUFEKElDTF9QT1JUX0NMX0RXNShwb3J0KSk7DQo+ICsJCXZhbCB8PSBDTF9Q T1dFUl9ET1dOX0VOQUJMRTsNCj4gKwkJSTkxNV9XUklURShJQ0xfUE9SVF9DTF9EVzUocG9ydCks IHZhbCk7DQo+ICsJfQ0KPiArfQ0KPiArDQo+ICt2b2lkIGljbF9jb21ib19waHlzX3VuaW5pdChz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpDQo+ICt7DQo+ICsJZW51bSBwb3J0IHBv cnQ7DQo+ICsNCj4gKwlmb3IgKHBvcnQgPSBQT1JUX0E7IHBvcnQgPD0gUE9SVF9COyBwb3J0Kysp IHsNCj4gKwkJdTMyIHZhbDsNCj4gKw0KPiArCQl2YWwgPSBJOTE1X1JFQUQoSUNMX1BIWV9NSVND KHBvcnQpKTsNCj4gKwkJdmFsIHw9IElDTF9QSFlfTUlTQ19ERV9JT19DT01QX1BXUl9ET1dOOw0K PiArCQlJOTE1X1dSSVRFKElDTF9QSFlfTUlTQyhwb3J0KSwgdmFsKTsNCj4gKw0KPiArCQl2YWwg PSBJOTE1X1JFQUQoSUNMX1BPUlRfQ09NUF9EVzAocG9ydCkpOw0KPiArCQl2YWwgJj0gfkNPTVBf SU5JVDsNCj4gKwkJSTkxNV9XUklURShJQ0xfUE9SVF9DT01QX0RXMChwb3J0KSwgdmFsKTsNCj4g Kwl9DQo+ICt9DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50 aW1lX3BtLmMNCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMNCj4g aW5kZXggYTdlZWE4NDIzNTgwLi5mOGRhNDcxZTgxYWEgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYw0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9ydW50aW1lX3BtLmMNCj4gQEAgLTM0MzYsOTkgKzM0MzYsMTggQEAgdm9pZCBi eHRfZGlzcGxheV9jb3JlX3VuaW5pdChzdHJ1Y3QNCj4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpDQo+ICAJdXNsZWVwX3JhbmdlKDEwLCAzMCk7CQkvKiAxMCB1cyBkZWxheSBwZXIgQnNwZWMg Ki8NCj4gIH0NCj4gIA0KPiAtZW51bSB7DQo+IC0JUFJPQ01PTl8wXzg1Vl9ET1RfMCwNCj4gLQlQ Uk9DTU9OXzBfOTVWX0RPVF8wLA0KPiAtCVBST0NNT05fMF85NVZfRE9UXzEsDQo+IC0JUFJPQ01P Tl8xXzA1Vl9ET1RfMCwNCj4gLQlQUk9DTU9OXzFfMDVWX0RPVF8xLA0KPiAtfTsNCj4gLQ0KPiAt c3RhdGljIGNvbnN0IHN0cnVjdCBjbmxfcHJvY21vbiB7DQo+IC0JdTMyIGR3MSwgZHc5LCBkdzEw Ow0KPiAtfSBjbmxfcHJvY21vbl92YWx1ZXNbXSA9IHsNCj4gLQlbUFJPQ01PTl8wXzg1Vl9ET1Rf MF0gPQ0KPiAtCQl7IC5kdzEgPSAweDAwMDAwMDAwLCAuZHc5ID0gMHg2MkFCNjdCQiwgLmR3MTAg PQ0KPiAweDUxOTE0Rjk2LCB9LA0KPiAtCVtQUk9DTU9OXzBfOTVWX0RPVF8wXSA9DQo+IC0JCXsg LmR3MSA9IDB4MDAwMDAwMDAsIC5kdzkgPSAweDg2RTE3MkM3LCAuZHcxMCA9DQo+IDB4NzdDQTVF QUIsIH0sDQo+IC0JW1BST0NNT05fMF85NVZfRE9UXzFdID0NCj4gLQkJeyAuZHcxID0gMHgwMDAw MDAwMCwgLmR3OSA9IDB4OTNGODdGRTEsIC5kdzEwID0NCj4gMHg4QUU4NzFDNSwgfSwNCj4gLQlb UFJPQ01PTl8xXzA1Vl9ET1RfMF0gPQ0KPiAtCQl7IC5kdzEgPSAweDAwMDAwMDAwLCAuZHc5ID0g MHg5OEZBODJERCwgLmR3MTAgPQ0KPiAweDg5RTQ2REMxLCB9LA0KPiAtCVtQUk9DTU9OXzFfMDVW X0RPVF8xXSA9DQo+IC0JCXsgLmR3MSA9IDB4MDA0NDAwMDAsIC5kdzkgPSAweDlBMDBBQjI1LCAu ZHcxMCA9DQo+IDB4OEFFMzhGRjEsIH0sDQo+IC19Ow0KPiAtDQo+IC0vKg0KPiAtICogQ05MIGhh cyBqdXN0IG9uZSBzZXQgb2YgcmVnaXN0ZXJzLCB3aGlsZSBJQ0wgaGFzIHR3byBzZXRzOiBvbmUN Cj4gZm9yIHBvcnQgQSBhbmQNCj4gLSAqIHRoZSBvdGhlciBmb3IgcG9ydCBCLiBUaGUgQ05MIHJl Z2lzdGVycyBhcmUgZXF1aXZhbGVudCB0byB0aGUgSUNMDQo+IHBvcnQgQQ0KPiAtICogcmVnaXN0 ZXJzLCB0aGF0J3Mgd2h5IHdlIGNhbGwgdGhlIElDTCBtYWNyb3MgZXZlbiB0aG91Z2ggdGhlDQo+ IGZ1bmN0aW9uIGhhcyBDTkwNCj4gLSAqIG9uIGl0cyBuYW1lLg0KPiAtICovDQo+IC1zdGF0aWMg dm9pZCBjbmxfc2V0X3Byb2Ntb25fcmVmX3ZhbHVlcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZQ0K PiAqZGV2X3ByaXYsDQo+IC0JCQkJICAgICAgIGVudW0gcG9ydCBwb3J0KQ0KPiAtew0KPiAtCWNv bnN0IHN0cnVjdCBjbmxfcHJvY21vbiAqcHJvY21vbjsNCj4gLQl1MzIgdmFsOw0KPiAtDQo+IC0J dmFsID0gSTkxNV9SRUFEKElDTF9QT1JUX0NPTVBfRFczKHBvcnQpKTsNCj4gLQlzd2l0Y2ggKHZh bCAmIChQUk9DRVNTX0lORk9fTUFTSyB8IFZPTFRBR0VfSU5GT19NQVNLKSkgew0KPiAtCWRlZmF1 bHQ6DQo+IC0JCU1JU1NJTkdfQ0FTRSh2YWwpOw0KPiAtCQkvKiBmYWxsIHRocm91Z2ggKi8NCj4g LQljYXNlIFZPTFRBR0VfSU5GT18wXzg1ViB8IFBST0NFU1NfSU5GT19ET1RfMDoNCj4gLQkJcHJv Y21vbiA9ICZjbmxfcHJvY21vbl92YWx1ZXNbUFJPQ01PTl8wXzg1Vl9ET1RfMF07DQo+IC0JCWJy ZWFrOw0KPiAtCWNhc2UgVk9MVEFHRV9JTkZPXzBfOTVWIHwgUFJPQ0VTU19JTkZPX0RPVF8wOg0K PiAtCQlwcm9jbW9uID0gJmNubF9wcm9jbW9uX3ZhbHVlc1tQUk9DTU9OXzBfOTVWX0RPVF8wXTsN Cj4gLQkJYnJlYWs7DQo+IC0JY2FzZSBWT0xUQUdFX0lORk9fMF85NVYgfCBQUk9DRVNTX0lORk9f RE9UXzE6DQo+IC0JCXByb2Ntb24gPSAmY25sX3Byb2Ntb25fdmFsdWVzW1BST0NNT05fMF85NVZf RE9UXzFdOw0KPiAtCQlicmVhazsNCj4gLQljYXNlIFZPTFRBR0VfSU5GT18xXzA1ViB8IFBST0NF U1NfSU5GT19ET1RfMDoNCj4gLQkJcHJvY21vbiA9ICZjbmxfcHJvY21vbl92YWx1ZXNbUFJPQ01P Tl8xXzA1Vl9ET1RfMF07DQo+IC0JCWJyZWFrOw0KPiAtCWNhc2UgVk9MVEFHRV9JTkZPXzFfMDVW IHwgUFJPQ0VTU19JTkZPX0RPVF8xOg0KPiAtCQlwcm9jbW9uID0gJmNubF9wcm9jbW9uX3ZhbHVl c1tQUk9DTU9OXzFfMDVWX0RPVF8xXTsNCj4gLQkJYnJlYWs7DQo+IC0JfQ0KPiAtDQo+IC0JdmFs ID0gSTkxNV9SRUFEKElDTF9QT1JUX0NPTVBfRFcxKHBvcnQpKTsNCj4gLQl2YWwgJj0gfigoMHhm ZiA8PCAxNikgfCAweGZmKTsNCj4gLQl2YWwgfD0gcHJvY21vbi0+ZHcxOw0KPiAtCUk5MTVfV1JJ VEUoSUNMX1BPUlRfQ09NUF9EVzEocG9ydCksIHZhbCk7DQo+IC0NCj4gLQlJOTE1X1dSSVRFKElD TF9QT1JUX0NPTVBfRFc5KHBvcnQpLCBwcm9jbW9uLT5kdzkpOw0KPiAtCUk5MTVfV1JJVEUoSUNM X1BPUlRfQ09NUF9EVzEwKHBvcnQpLCBwcm9jbW9uLT5kdzEwKTsNCj4gLX0NCj4gLQ0KPiAgc3Rh dGljIHZvaWQgY25sX2Rpc3BsYXlfY29yZV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwNCj4gYm9vbCByZXN1bWUpDQo+ICB7DQo+ICAJc3RydWN0IGk5MTVfcG93ZXJfZG9t YWlucyAqcG93ZXJfZG9tYWlucyA9ICZkZXZfcHJpdi0NCj4gPnBvd2VyX2RvbWFpbnM7DQo+ICAJ c3RydWN0IGk5MTVfcG93ZXJfd2VsbCAqd2VsbDsNCj4gLQl1MzIgdmFsOw0KPiAgDQo+ICAJZ2Vu OV9zZXRfZGNfc3RhdGUoZGV2X3ByaXYsIERDX1NUQVRFX0RJU0FCTEUpOw0KPiAgDQo+ICAJLyog MS4gRW5hYmxlIFBDSCBSZXNldCBIYW5kc2hha2UgKi8NCj4gIAlpbnRlbF9wY2hfcmVzZXRfaGFu ZHNoYWtlKGRldl9wcml2LCAhSEFTX1BDSF9OT1AoZGV2X3ByaXYpKTsNCj4gIA0KPiAtCS8qIDIu IEVuYWJsZSBDb21wICovDQo+IC0JdmFsID0gSTkxNV9SRUFEKENISUNLRU5fTUlTQ18yKTsNCj4g LQl2YWwgJj0gfkNOTF9DT01QX1BXUl9ET1dOOw0KPiAtCUk5MTVfV1JJVEUoQ0hJQ0tFTl9NSVND XzIsIHZhbCk7DQo+IC0NCj4gLQkvKiBEdW1teSBQT1JUX0EgdG8gZ2V0IHRoZSBjb3JyZWN0IENO TCByZWdpc3RlciBmcm9tIHRoZSBJQ0wNCj4gbWFjcm8gKi8NCj4gLQljbmxfc2V0X3Byb2Ntb25f cmVmX3ZhbHVlcyhkZXZfcHJpdiwgUE9SVF9BKTsNCj4gLQ0KPiAtCXZhbCA9IEk5MTVfUkVBRChD TkxfUE9SVF9DT01QX0RXMCk7DQo+IC0JdmFsIHw9IENPTVBfSU5JVDsNCj4gLQlJOTE1X1dSSVRF KENOTF9QT1JUX0NPTVBfRFcwLCB2YWwpOw0KPiAtDQo+IC0JLyogMy4gKi8NCj4gLQl2YWwgPSBJ OTE1X1JFQUQoQ05MX1BPUlRfQ0wxQ01fRFc1KTsNCj4gLQl2YWwgfD0gQ0xfUE9XRVJfRE9XTl9F TkFCTEU7DQo+IC0JSTkxNV9XUklURShDTkxfUE9SVF9DTDFDTV9EVzUsIHZhbCk7DQo+ICsJLyog Mi0zLiAqLw0KPiArCWNubF9jb21ib19waHlzX2luaXQoZGV2X3ByaXYpOw0KPiAgDQo+ICAJLyoN Cj4gIAkgKiA0LiBFbmFibGUgUG93ZXIgV2VsbCAxIChQRzEpLg0KPiBAQCAtMzU1Myw3ICszNDcy LDYgQEAgc3RhdGljIHZvaWQgY25sX2Rpc3BsYXlfY29yZV91bmluaXQoc3RydWN0DQo+IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQ0KPiAgew0KPiAgCXN0cnVjdCBpOTE1X3Bvd2VyX2RvbWFp bnMgKnBvd2VyX2RvbWFpbnMgPSAmZGV2X3ByaXYtDQo+ID5wb3dlcl9kb21haW5zOw0KPiAgCXN0 cnVjdCBpOTE1X3Bvd2VyX3dlbGwgKndlbGw7DQo+IC0JdTMyIHZhbDsNCj4gIA0KPiAgCWdlbjlf c2V0X2RjX3N0YXRlKGRldl9wcml2LCBEQ19TVEFURV9ESVNBQkxFKTsNCj4gIA0KPiBAQCAtMzU3 NywxMCArMzQ5NSw4IEBAIHN0YXRpYyB2b2lkIGNubF9kaXNwbGF5X2NvcmVfdW5pbml0KHN0cnVj dA0KPiBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikNCj4gIA0KPiAgCXVzbGVlcF9yYW5nZSgx MCwgMzApOwkJLyogMTAgdXMgZGVsYXkgcGVyIEJzcGVjICovDQo+ICANCj4gLQkvKiA1LiBEaXNh YmxlIENvbXAgKi8NCj4gLQl2YWwgPSBJOTE1X1JFQUQoQ0hJQ0tFTl9NSVNDXzIpOw0KPiAtCXZh bCB8PSBDTkxfQ09NUF9QV1JfRE9XTjsNCj4gLQlJOTE1X1dSSVRFKENISUNLRU5fTUlTQ18yLCB2 YWwpOw0KPiArCS8qIDUuICovDQo+ICsJY25sX2NvbWJvX3BoeXNfdW5pbml0KGRldl9wcml2KTsN Cj4gIH0NCj4gIA0KPiAgdm9pZCBpY2xfZGlzcGxheV9jb3JlX2luaXQoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LA0KPiBAQCAtMzU4OCwzMSArMzUwNCwxNCBAQCB2b2lkIGljbF9k aXNwbGF5X2NvcmVfaW5pdChzdHJ1Y3QNCj4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsDQo+ ICB7DQo+ICAJc3RydWN0IGk5MTVfcG93ZXJfZG9tYWlucyAqcG93ZXJfZG9tYWlucyA9ICZkZXZf cHJpdi0NCj4gPnBvd2VyX2RvbWFpbnM7DQo+ICAJc3RydWN0IGk5MTVfcG93ZXJfd2VsbCAqd2Vs bDsNCj4gLQllbnVtIHBvcnQgcG9ydDsNCj4gLQl1MzIgdmFsOw0KPiAgDQo+ICAJZ2VuOV9zZXRf ZGNfc3RhdGUoZGV2X3ByaXYsIERDX1NUQVRFX0RJU0FCTEUpOw0KPiAgDQo+ICAJLyogMS4gRW5h YmxlIFBDSCByZXNldCBoYW5kc2hha2UuICovDQo+ICAJaW50ZWxfcGNoX3Jlc2V0X2hhbmRzaGFr ZShkZXZfcHJpdiwgIUhBU19QQ0hfTk9QKGRldl9wcml2KSk7DQo+ICANCj4gLQlmb3IgKHBvcnQg PSBQT1JUX0E7IHBvcnQgPD0gUE9SVF9COyBwb3J0KyspIHsNCj4gLQkJLyogMi4gRW5hYmxlIERE SSBjb21ibyBQSFkgY29tcC4gKi8NCj4gLQkJdmFsID0gSTkxNV9SRUFEKElDTF9QSFlfTUlTQyhw b3J0KSk7DQo+IC0JCXZhbCAmPSB+SUNMX1BIWV9NSVNDX0RFX0lPX0NPTVBfUFdSX0RPV047DQo+ IC0JCUk5MTVfV1JJVEUoSUNMX1BIWV9NSVNDKHBvcnQpLCB2YWwpOw0KPiAtDQo+IC0JCWNubF9z ZXRfcHJvY21vbl9yZWZfdmFsdWVzKGRldl9wcml2LCBwb3J0KTsNCj4gLQ0KPiAtCQl2YWwgPSBJ OTE1X1JFQUQoSUNMX1BPUlRfQ09NUF9EVzAocG9ydCkpOw0KPiAtCQl2YWwgfD0gQ09NUF9JTklU Ow0KPiAtCQlJOTE1X1dSSVRFKElDTF9QT1JUX0NPTVBfRFcwKHBvcnQpLCB2YWwpOw0KPiAtDQo+ IC0JCS8qIDMuIFNldCBwb3dlciBkb3duIGVuYWJsZS4gKi8NCg0KSWYgcmVzcGluaW5nIHRoaXMg cGF0Y2gsIHBsZWFzZSBjb25zaWRlciBhbHNvIG1vdmUgdGhlIHN0ZXAgY29tbWVudHMgdG8NCnRo ZSBuZXcgZnVuY3Rpb25zLg0KDQpSZXZpZXdlZC1ieTogSm9zw6kgUm9iZXJ0byBkZSBTb3V6YSA8 am9zZS5zb3V6YUBpbnRlbC5jb20+DQoNCg0KPiAtCQl2YWwgPSBJOTE1X1JFQUQoSUNMX1BPUlRf Q0xfRFc1KHBvcnQpKTsNCj4gLQkJdmFsIHw9IENMX1BPV0VSX0RPV05fRU5BQkxFOw0KPiAtCQlJ OTE1X1dSSVRFKElDTF9QT1JUX0NMX0RXNShwb3J0KSwgdmFsKTsNCj4gLQl9DQo+ICsJLyogMi0z LiAqLw0KPiArCWljbF9jb21ib19waHlzX2luaXQoZGV2X3ByaXYpOw0KPiAgDQo+ICAJLyoNCj4g IAkgKiA0LiBFbmFibGUgUG93ZXIgV2VsbCAxIChQRzEpLg0KPiBAQCAtMzY0MCw4ICszNTM5LDYg QEAgdm9pZCBpY2xfZGlzcGxheV9jb3JlX3VuaW5pdChzdHJ1Y3QNCj4gZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpDQo+ICB7DQo+ICAJc3RydWN0IGk5MTVfcG93ZXJfZG9tYWlucyAqcG93ZXJf ZG9tYWlucyA9ICZkZXZfcHJpdi0NCj4gPnBvd2VyX2RvbWFpbnM7DQo+ICAJc3RydWN0IGk5MTVf cG93ZXJfd2VsbCAqd2VsbDsNCj4gLQllbnVtIHBvcnQgcG9ydDsNCj4gLQl1MzIgdmFsOw0KPiAg DQo+ICAJZ2VuOV9zZXRfZGNfc3RhdGUoZGV2X3ByaXYsIERDX1NUQVRFX0RJU0FCTEUpOw0KPiAg DQo+IEBAIC0zNjYzLDE2ICszNTYwLDggQEAgdm9pZCBpY2xfZGlzcGxheV9jb3JlX3VuaW5pdChz dHJ1Y3QNCj4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpDQo+ICAJaW50ZWxfcG93ZXJfd2Vs bF9kaXNhYmxlKGRldl9wcml2LCB3ZWxsKTsNCj4gIAltdXRleF91bmxvY2soJnBvd2VyX2RvbWFp bnMtPmxvY2spOw0KPiAgDQo+IC0JLyogNS4gRGlzYWJsZSBDb21wICovDQo+IC0JZm9yIChwb3J0 ID0gUE9SVF9BOyBwb3J0IDw9IFBPUlRfQjsgcG9ydCsrKSB7DQo+IC0JCXZhbCA9IEk5MTVfUkVB RChJQ0xfUEhZX01JU0MocG9ydCkpOw0KPiAtCQl2YWwgfD0gSUNMX1BIWV9NSVNDX0RFX0lPX0NP TVBfUFdSX0RPV047DQo+IC0JCUk5MTVfV1JJVEUoSUNMX1BIWV9NSVNDKHBvcnQpLCB2YWwpOw0K PiAtDQo+IC0JCXZhbCA9IEk5MTVfUkVBRChJQ0xfUE9SVF9DT01QX0RXMChwb3J0KSk7DQo+IC0J CXZhbCAmPSB+Q09NUF9JTklUOw0KPiAtCQlJOTE1X1dSSVRFKElDTF9QT1JUX0NPTVBfRFcwKHBv cnQpLCB2YWwpOw0KPiAtCX0NCj4gKwkvKiA1LiAqLw0KPiArCWljbF9jb21ib19waHlzX3VuaW5p dChkZXZfcHJpdik7DQo+ICB9DQo+ICANCj4gIHN0YXRpYyB2b2lkIGNodl9waHlfY29udHJvbF9p bml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikNCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=