From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: Re: [PATCH 2/5] drm/i915/cnl+: Move the combo PHY init/uninit code to a new file Date: Fri, 2 Nov 2018 12:25:56 -0700 Message-ID: <20181102192556.GI2233@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 mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1E5F76E5C7 for ; Fri, 2 Nov 2018 19:26:00 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20181102180706.16582-3-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 T24gRnJpLCBOb3YgMDIsIDIwMTggYXQgMDg6MDc6MDNQTSArMDIwMCwgSW1yZSBEZWFrIHdyb3Rl Ogo+IFNpbWlsYXJseSB0byB0aGUgR0VOOV9MUCBEUElPIFBIWSBjb2RlIGtlZXAgdGhlIENOTCsg Y29tYm8gUEhZIGNvZGUgaW4gYQo+IHNlcGFyYXRlIGZpbGUuCj4gCj4gTm8gZnVuY3Rpb25hbCBj aGFuZ2UuCj4gCj4gU3VnZ2VzdGVkLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFA bGludXguaW50ZWwuY29tPgo+IENjOiBQYXVsbyBaYW5vbmkgPHBhdWxvLnIuemFub25pQGludGVs LmNvbT4KPiBDYzogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNv bT4KPiBDYzogSm9zw6kgUm9iZXJ0byBkZSBTb3V6YSA8am9zZS5zb3V6YUBpbnRlbC5jb20+Cj4g Q2M6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5 OiBJbXJlIERlYWsgPGltcmUuZGVha0BpbnRlbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L01ha2VmaWxlICAgICAgICAgICB8ICAgMSArCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmggICAgICAgICB8ICAgNiArKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9jb21ib19waHkuYyAgfCAxNTkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jIHwgMTI3ICsrLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KPiAgNCBmaWxlcyBjaGFuZ2VkLCAxNzQgaW5zZXJ0aW9ucygrKSwgMTE5 IGRlbGV0aW9ucygtKQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfY29tYm9fcGh5LmMKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv TWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQo+IGluZGV4IDI4YzdkNzg4 NGU4OC4uMWU3ZTk1MTNiYjEwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01h a2VmaWxlCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKPiBAQCAtMTEzLDYg KzExMyw3IEBAIGk5MTUteSArPSBpbnRlbF9hdWRpby5vIFwKPiAgCSAgaW50ZWxfYmlvcy5vIFwK PiAgCSAgaW50ZWxfY2RjbGsubyBcCj4gIAkgIGludGVsX2NvbG9yLm8gXAo+ICsJICBpbnRlbF9j b21ib19waHkubyBcCj4gIAkgIGludGVsX2Nvbm5lY3Rvci5vIFwKPiAgCSAgaW50ZWxfZGlzcGxh eS5vIFwKPiAgCSAgaW50ZWxfZHBpb19waHkubyBcCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4g aW5kZXggNjE1N2Y4MTI4Y2M1Li42Mjg4MmUxZGRiZWUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmgKPiBAQCAtMzU3MSw2ICszNTcxLDEyIEBAIHZvaWQgdmx2X3BoeV9wcmVfZW5jb2Rlcl9l bmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIHZvaWQgdmx2X3BoeV9yZXNl dF9sYW5lcyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCQkJIGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSk7Cj4gIAo+ICsvKiBpbnRlbF9jb21i b19waHkuYyAqLwo+ICt2b2lkIGljbF9jb21ib19waHlzX2luaXQoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KTsKPiArdm9pZCBpY2xfY29tYm9fcGh5c191bmluaXQoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiArdm9pZCBjbmxfY29tYm9fcGh5c19pbml0KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gK3ZvaWQgY25sX2NvbWJvX3BoeXNf dW5pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gKwo+ICBpbnQgaW50 ZWxfZ3B1X2ZyZXEoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBpbnQgdmFsKTsK PiAgaW50IGludGVsX2ZyZXFfb3Bjb2RlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwgaW50IHZhbCk7Cj4gIHU2NCBpbnRlbF9yYzZfcmVzaWRlbmN5X25zKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfY29tYm9fcGh5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb21ib19waHku Ywo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMDAwLi4xMzE4NGFlNWEy MTcKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29t Ym9fcGh5LmMKPiBAQCAtMCwwICsxLDE1OSBAQAo+ICsvKgo+ICsgKiBDb3B5cmlnaHQgwqkgMjAx OCBJbnRlbCBDb3Jwb3JhdGlvbgo+ICsgKgo+ICsgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFu dGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQo+ICsgKiBjb3B5 IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhl ICJTb2Z0d2FyZSIpLAo+ICsgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3Ry aWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCj4gKyAqIHRoZSByaWdodHMgdG8g dXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNl LAo+ICsgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0 IHBlcnNvbnMgdG8gd2hvbSB0aGUKPiArICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNv LCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKPiArICoKPiArICogVGhlIGFi b3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGlu ZyB0aGUgbmV4dAo+ICsgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3Bp ZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCj4gKyAqIFNvZnR3YXJlLgo+ICsgKgo+ ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBP RiBBTlkgS0lORCwgRVhQUkVTUyBPUgo+ICsgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBM SU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKPiArICogRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVW RU5UIFNIQUxMCj4gKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJM RSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCj4gKyAqIExJQUJJTElUWSwgV0hFVEhF UiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCj4g KyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRI RSBVU0UgT1IgT1RIRVIKPiArICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgo+ICsgKi8KClNQ RFggaWRlbnRpZmllcnMgb3Igbm90PyEKCmFueXdheToKCgpSZXZpZXdlZC1ieTogUm9kcmlnbyBW aXZpIDxyb2RyaWdvLnZpdmlAaW50ZWwuY29tPgoKCgo+ICsKPiArI2luY2x1ZGUgImludGVsX2Ry di5oIgo+ICsKPiArZW51bSB7Cj4gKwlQUk9DTU9OXzBfODVWX0RPVF8wLAo+ICsJUFJPQ01PTl8w Xzk1Vl9ET1RfMCwKPiArCVBST0NNT05fMF85NVZfRE9UXzEsCj4gKwlQUk9DTU9OXzFfMDVWX0RP VF8wLAo+ICsJUFJPQ01PTl8xXzA1Vl9ET1RfMSwKPiArfTsKPiArCj4gK3N0YXRpYyBjb25zdCBz dHJ1Y3QgY25sX3Byb2Ntb24gewo+ICsJdTMyIGR3MSwgZHc5LCBkdzEwOwo+ICt9IGNubF9wcm9j bW9uX3ZhbHVlc1tdID0gewo+ICsJW1BST0NNT05fMF84NVZfRE9UXzBdID0KPiArCQl7IC5kdzEg PSAweDAwMDAwMDAwLCAuZHc5ID0gMHg2MkFCNjdCQiwgLmR3MTAgPSAweDUxOTE0Rjk2LCB9LAo+ ICsJW1BST0NNT05fMF85NVZfRE9UXzBdID0KPiArCQl7IC5kdzEgPSAweDAwMDAwMDAwLCAuZHc5 ID0gMHg4NkUxNzJDNywgLmR3MTAgPSAweDc3Q0E1RUFCLCB9LAo+ICsJW1BST0NNT05fMF85NVZf RE9UXzFdID0KPiArCQl7IC5kdzEgPSAweDAwMDAwMDAwLCAuZHc5ID0gMHg5M0Y4N0ZFMSwgLmR3 MTAgPSAweDhBRTg3MUM1LCB9LAo+ICsJW1BST0NNT05fMV8wNVZfRE9UXzBdID0KPiArCQl7IC5k dzEgPSAweDAwMDAwMDAwLCAuZHc5ID0gMHg5OEZBODJERCwgLmR3MTAgPSAweDg5RTQ2REMxLCB9 LAo+ICsJW1BST0NNT05fMV8wNVZfRE9UXzFdID0KPiArCQl7IC5kdzEgPSAweDAwNDQwMDAwLCAu ZHc5ID0gMHg5QTAwQUIyNSwgLmR3MTAgPSAweDhBRTM4RkYxLCB9LAo+ICt9Owo+ICsKPiArLyoK PiArICogQ05MIGhhcyBqdXN0IG9uZSBzZXQgb2YgcmVnaXN0ZXJzLCB3aGlsZSBJQ0wgaGFzIHR3 byBzZXRzOiBvbmUgZm9yIHBvcnQgQSBhbmQKPiArICogdGhlIG90aGVyIGZvciBwb3J0IEIuIFRo ZSBDTkwgcmVnaXN0ZXJzIGFyZSBlcXVpdmFsZW50IHRvIHRoZSBJQ0wgcG9ydCBBCj4gKyAqIHJl Z2lzdGVycywgdGhhdCdzIHdoeSB3ZSBjYWxsIHRoZSBJQ0wgbWFjcm9zIGV2ZW4gdGhvdWdoIHRo ZSBmdW5jdGlvbiBoYXMgQ05MCj4gKyAqIG9uIGl0cyBuYW1lLgo+ICsgKi8KPiArc3RhdGljIHZv aWQgY25sX3NldF9wcm9jbW9uX3JlZl92YWx1ZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAo+ICsJCQkJICAgICAgIGVudW0gcG9ydCBwb3J0KQo+ICt7Cj4gKwljb25zdCBzdHJ1 Y3QgY25sX3Byb2Ntb24gKnByb2Ntb247Cj4gKwl1MzIgdmFsOwo+ICsKPiArCXZhbCA9IEk5MTVf UkVBRChJQ0xfUE9SVF9DT01QX0RXMyhwb3J0KSk7Cj4gKwlzd2l0Y2ggKHZhbCAmIChQUk9DRVNT X0lORk9fTUFTSyB8IFZPTFRBR0VfSU5GT19NQVNLKSkgewo+ICsJZGVmYXVsdDoKPiArCQlNSVNT SU5HX0NBU0UodmFsKTsKPiArCQkvKiBmYWxsIHRocm91Z2ggKi8KPiArCWNhc2UgVk9MVEFHRV9J TkZPXzBfODVWIHwgUFJPQ0VTU19JTkZPX0RPVF8wOgo+ICsJCXByb2Ntb24gPSAmY25sX3Byb2Nt b25fdmFsdWVzW1BST0NNT05fMF84NVZfRE9UXzBdOwo+ICsJCWJyZWFrOwo+ICsJY2FzZSBWT0xU QUdFX0lORk9fMF85NVYgfCBQUk9DRVNTX0lORk9fRE9UXzA6Cj4gKwkJcHJvY21vbiA9ICZjbmxf cHJvY21vbl92YWx1ZXNbUFJPQ01PTl8wXzk1Vl9ET1RfMF07Cj4gKwkJYnJlYWs7Cj4gKwljYXNl IFZPTFRBR0VfSU5GT18wXzk1ViB8IFBST0NFU1NfSU5GT19ET1RfMToKPiArCQlwcm9jbW9uID0g JmNubF9wcm9jbW9uX3ZhbHVlc1tQUk9DTU9OXzBfOTVWX0RPVF8xXTsKPiArCQlicmVhazsKPiAr CWNhc2UgVk9MVEFHRV9JTkZPXzFfMDVWIHwgUFJPQ0VTU19JTkZPX0RPVF8wOgo+ICsJCXByb2Nt b24gPSAmY25sX3Byb2Ntb25fdmFsdWVzW1BST0NNT05fMV8wNVZfRE9UXzBdOwo+ICsJCWJyZWFr Owo+ICsJY2FzZSBWT0xUQUdFX0lORk9fMV8wNVYgfCBQUk9DRVNTX0lORk9fRE9UXzE6Cj4gKwkJ cHJvY21vbiA9ICZjbmxfcHJvY21vbl92YWx1ZXNbUFJPQ01PTl8xXzA1Vl9ET1RfMV07Cj4gKwkJ YnJlYWs7Cj4gKwl9Cj4gKwo+ICsJdmFsID0gSTkxNV9SRUFEKElDTF9QT1JUX0NPTVBfRFcxKHBv cnQpKTsKPiArCXZhbCAmPSB+KCgweGZmIDw8IDE2KSB8IDB4ZmYpOwo+ICsJdmFsIHw9IHByb2Nt b24tPmR3MTsKPiArCUk5MTVfV1JJVEUoSUNMX1BPUlRfQ09NUF9EVzEocG9ydCksIHZhbCk7Cj4g Kwo+ICsJSTkxNV9XUklURShJQ0xfUE9SVF9DT01QX0RXOShwb3J0KSwgcHJvY21vbi0+ZHc5KTsK PiArCUk5MTVfV1JJVEUoSUNMX1BPUlRfQ09NUF9EVzEwKHBvcnQpLCBwcm9jbW9uLT5kdzEwKTsK PiArfQo+ICsKPiArdm9pZCBjbmxfY29tYm9fcGh5c19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKPiArewo+ICsJdTMyIHZhbDsKPiArCj4gKwl2YWwgPSBJOTE1X1JFQUQo Q0hJQ0tFTl9NSVNDXzIpOwo+ICsJdmFsICY9IH5DTkxfQ09NUF9QV1JfRE9XTjsKPiArCUk5MTVf V1JJVEUoQ0hJQ0tFTl9NSVNDXzIsIHZhbCk7Cj4gKwo+ICsJLyogRHVtbXkgUE9SVF9BIHRvIGdl dCB0aGUgY29ycmVjdCBDTkwgcmVnaXN0ZXIgZnJvbSB0aGUgSUNMIG1hY3JvICovCj4gKwljbmxf c2V0X3Byb2Ntb25fcmVmX3ZhbHVlcyhkZXZfcHJpdiwgUE9SVF9BKTsKPiArCj4gKwl2YWwgPSBJ OTE1X1JFQUQoQ05MX1BPUlRfQ09NUF9EVzApOwo+ICsJdmFsIHw9IENPTVBfSU5JVDsKPiArCUk5 MTVfV1JJVEUoQ05MX1BPUlRfQ09NUF9EVzAsIHZhbCk7Cj4gKwo+ICsJdmFsID0gSTkxNV9SRUFE KENOTF9QT1JUX0NMMUNNX0RXNSk7Cj4gKwl2YWwgfD0gQ0xfUE9XRVJfRE9XTl9FTkFCTEU7Cj4g KwlJOTE1X1dSSVRFKENOTF9QT1JUX0NMMUNNX0RXNSwgdmFsKTsKPiArfQo+ICsKPiArdm9pZCBj bmxfY29tYm9fcGh5c191bmluaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ ICt7Cj4gKwl1MzIgdmFsOwo+ICsKPiArCXZhbCA9IEk5MTVfUkVBRChDSElDS0VOX01JU0NfMik7 Cj4gKwl2YWwgfD0gQ05MX0NPTVBfUFdSX0RPV047Cj4gKwlJOTE1X1dSSVRFKENISUNLRU5fTUlT Q18yLCB2YWwpOwo+ICt9Cj4gKwo+ICt2b2lkIGljbF9jb21ib19waHlzX2luaXQoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICt7Cj4gKwllbnVtIHBvcnQgcG9ydDsKPiArCj4g Kwlmb3IgKHBvcnQgPSBQT1JUX0E7IHBvcnQgPD0gUE9SVF9COyBwb3J0KyspIHsKPiArCQl1MzIg dmFsOwo+ICsKPiArCQl2YWwgPSBJOTE1X1JFQUQoSUNMX1BIWV9NSVNDKHBvcnQpKTsKPiArCQl2 YWwgJj0gfklDTF9QSFlfTUlTQ19ERV9JT19DT01QX1BXUl9ET1dOOwo+ICsJCUk5MTVfV1JJVEUo SUNMX1BIWV9NSVNDKHBvcnQpLCB2YWwpOwo+ICsKPiArCQljbmxfc2V0X3Byb2Ntb25fcmVmX3Zh bHVlcyhkZXZfcHJpdiwgcG9ydCk7Cj4gKwo+ICsJCXZhbCA9IEk5MTVfUkVBRChJQ0xfUE9SVF9D T01QX0RXMChwb3J0KSk7Cj4gKwkJdmFsIHw9IENPTVBfSU5JVDsKPiArCQlJOTE1X1dSSVRFKElD TF9QT1JUX0NPTVBfRFcwKHBvcnQpLCB2YWwpOwo+ICsKPiArCQl2YWwgPSBJOTE1X1JFQUQoSUNM X1BPUlRfQ0xfRFc1KHBvcnQpKTsKPiArCQl2YWwgfD0gQ0xfUE9XRVJfRE9XTl9FTkFCTEU7Cj4g KwkJSTkxNV9XUklURShJQ0xfUE9SVF9DTF9EVzUocG9ydCksIHZhbCk7Cj4gKwl9Cj4gK30KPiAr Cj4gK3ZvaWQgaWNsX2NvbWJvX3BoeXNfdW5pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKPiArewo+ICsJZW51bSBwb3J0IHBvcnQ7Cj4gKwo+ICsJZm9yIChwb3J0ID0gUE9S VF9BOyBwb3J0IDw9IFBPUlRfQjsgcG9ydCsrKSB7Cj4gKwkJdTMyIHZhbDsKPiArCj4gKwkJdmFs ID0gSTkxNV9SRUFEKElDTF9QSFlfTUlTQyhwb3J0KSk7Cj4gKwkJdmFsIHw9IElDTF9QSFlfTUlT Q19ERV9JT19DT01QX1BXUl9ET1dOOwo+ICsJCUk5MTVfV1JJVEUoSUNMX1BIWV9NSVNDKHBvcnQp LCB2YWwpOwo+ICsKPiArCQl2YWwgPSBJOTE1X1JFQUQoSUNMX1BPUlRfQ09NUF9EVzAocG9ydCkp Owo+ICsJCXZhbCAmPSB+Q09NUF9JTklUOwo+ICsJCUk5MTVfV1JJVEUoSUNMX1BPUlRfQ09NUF9E VzAocG9ydCksIHZhbCk7Cj4gKwl9Cj4gK30KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcnVudGltZV9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVu dGltZV9wbS5jCj4gaW5kZXggYTdlZWE4NDIzNTgwLi5mOGRhNDcxZTgxYWEgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jCj4gQEAgLTM0MzYsOTkgKzM0MzYsMTgg QEAgdm9pZCBieHRfZGlzcGxheV9jb3JlX3VuaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCj4gIAl1c2xlZXBfcmFuZ2UoMTAsIDMwKTsJCS8qIDEwIHVzIGRlbGF5IHBlciBC c3BlYyAqLwo+ICB9Cj4gIAo+IC1lbnVtIHsKPiAtCVBST0NNT05fMF84NVZfRE9UXzAsCj4gLQlQ Uk9DTU9OXzBfOTVWX0RPVF8wLAo+IC0JUFJPQ01PTl8wXzk1Vl9ET1RfMSwKPiAtCVBST0NNT05f MV8wNVZfRE9UXzAsCj4gLQlQUk9DTU9OXzFfMDVWX0RPVF8xLAo+IC19Owo+IC0KPiAtc3RhdGlj IGNvbnN0IHN0cnVjdCBjbmxfcHJvY21vbiB7Cj4gLQl1MzIgZHcxLCBkdzksIGR3MTA7Cj4gLX0g Y25sX3Byb2Ntb25fdmFsdWVzW10gPSB7Cj4gLQlbUFJPQ01PTl8wXzg1Vl9ET1RfMF0gPQo+IC0J CXsgLmR3MSA9IDB4MDAwMDAwMDAsIC5kdzkgPSAweDYyQUI2N0JCLCAuZHcxMCA9IDB4NTE5MTRG OTYsIH0sCj4gLQlbUFJPQ01PTl8wXzk1Vl9ET1RfMF0gPQo+IC0JCXsgLmR3MSA9IDB4MDAwMDAw MDAsIC5kdzkgPSAweDg2RTE3MkM3LCAuZHcxMCA9IDB4NzdDQTVFQUIsIH0sCj4gLQlbUFJPQ01P Tl8wXzk1Vl9ET1RfMV0gPQo+IC0JCXsgLmR3MSA9IDB4MDAwMDAwMDAsIC5kdzkgPSAweDkzRjg3 RkUxLCAuZHcxMCA9IDB4OEFFODcxQzUsIH0sCj4gLQlbUFJPQ01PTl8xXzA1Vl9ET1RfMF0gPQo+ IC0JCXsgLmR3MSA9IDB4MDAwMDAwMDAsIC5kdzkgPSAweDk4RkE4MkRELCAuZHcxMCA9IDB4ODlF NDZEQzEsIH0sCj4gLQlbUFJPQ01PTl8xXzA1Vl9ET1RfMV0gPQo+IC0JCXsgLmR3MSA9IDB4MDA0 NDAwMDAsIC5kdzkgPSAweDlBMDBBQjI1LCAuZHcxMCA9IDB4OEFFMzhGRjEsIH0sCj4gLX07Cj4g LQo+IC0vKgo+IC0gKiBDTkwgaGFzIGp1c3Qgb25lIHNldCBvZiByZWdpc3RlcnMsIHdoaWxlIElD TCBoYXMgdHdvIHNldHM6IG9uZSBmb3IgcG9ydCBBIGFuZAo+IC0gKiB0aGUgb3RoZXIgZm9yIHBv cnQgQi4gVGhlIENOTCByZWdpc3RlcnMgYXJlIGVxdWl2YWxlbnQgdG8gdGhlIElDTCBwb3J0IEEK PiAtICogcmVnaXN0ZXJzLCB0aGF0J3Mgd2h5IHdlIGNhbGwgdGhlIElDTCBtYWNyb3MgZXZlbiB0 aG91Z2ggdGhlIGZ1bmN0aW9uIGhhcyBDTkwKPiAtICogb24gaXRzIG5hbWUuCj4gLSAqLwo+IC1z dGF0aWMgdm9pZCBjbmxfc2V0X3Byb2Ntb25fcmVmX3ZhbHVlcyhzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCj4gLQkJCQkgICAgICAgZW51bSBwb3J0IHBvcnQpCj4gLXsKPiAtCWNv bnN0IHN0cnVjdCBjbmxfcHJvY21vbiAqcHJvY21vbjsKPiAtCXUzMiB2YWw7Cj4gLQo+IC0JdmFs ID0gSTkxNV9SRUFEKElDTF9QT1JUX0NPTVBfRFczKHBvcnQpKTsKPiAtCXN3aXRjaCAodmFsICYg KFBST0NFU1NfSU5GT19NQVNLIHwgVk9MVEFHRV9JTkZPX01BU0spKSB7Cj4gLQlkZWZhdWx0Ogo+ IC0JCU1JU1NJTkdfQ0FTRSh2YWwpOwo+IC0JCS8qIGZhbGwgdGhyb3VnaCAqLwo+IC0JY2FzZSBW T0xUQUdFX0lORk9fMF84NVYgfCBQUk9DRVNTX0lORk9fRE9UXzA6Cj4gLQkJcHJvY21vbiA9ICZj bmxfcHJvY21vbl92YWx1ZXNbUFJPQ01PTl8wXzg1Vl9ET1RfMF07Cj4gLQkJYnJlYWs7Cj4gLQlj YXNlIFZPTFRBR0VfSU5GT18wXzk1ViB8IFBST0NFU1NfSU5GT19ET1RfMDoKPiAtCQlwcm9jbW9u ID0gJmNubF9wcm9jbW9uX3ZhbHVlc1tQUk9DTU9OXzBfOTVWX0RPVF8wXTsKPiAtCQlicmVhazsK PiAtCWNhc2UgVk9MVEFHRV9JTkZPXzBfOTVWIHwgUFJPQ0VTU19JTkZPX0RPVF8xOgo+IC0JCXBy b2Ntb24gPSAmY25sX3Byb2Ntb25fdmFsdWVzW1BST0NNT05fMF85NVZfRE9UXzFdOwo+IC0JCWJy ZWFrOwo+IC0JY2FzZSBWT0xUQUdFX0lORk9fMV8wNVYgfCBQUk9DRVNTX0lORk9fRE9UXzA6Cj4g LQkJcHJvY21vbiA9ICZjbmxfcHJvY21vbl92YWx1ZXNbUFJPQ01PTl8xXzA1Vl9ET1RfMF07Cj4g LQkJYnJlYWs7Cj4gLQljYXNlIFZPTFRBR0VfSU5GT18xXzA1ViB8IFBST0NFU1NfSU5GT19ET1Rf MToKPiAtCQlwcm9jbW9uID0gJmNubF9wcm9jbW9uX3ZhbHVlc1tQUk9DTU9OXzFfMDVWX0RPVF8x XTsKPiAtCQlicmVhazsKPiAtCX0KPiAtCj4gLQl2YWwgPSBJOTE1X1JFQUQoSUNMX1BPUlRfQ09N UF9EVzEocG9ydCkpOwo+IC0JdmFsICY9IH4oKDB4ZmYgPDwgMTYpIHwgMHhmZik7Cj4gLQl2YWwg fD0gcHJvY21vbi0+ZHcxOwo+IC0JSTkxNV9XUklURShJQ0xfUE9SVF9DT01QX0RXMShwb3J0KSwg dmFsKTsKPiAtCj4gLQlJOTE1X1dSSVRFKElDTF9QT1JUX0NPTVBfRFc5KHBvcnQpLCBwcm9jbW9u LT5kdzkpOwo+IC0JSTkxNV9XUklURShJQ0xfUE9SVF9DT01QX0RXMTAocG9ydCksIHByb2Ntb24t PmR3MTApOwo+IC19Cj4gLQo+ICBzdGF0aWMgdm9pZCBjbmxfZGlzcGxheV9jb3JlX2luaXQoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBib29sIHJlc3VtZSkKPiAgewo+ICAJc3Ry dWN0IGk5MTVfcG93ZXJfZG9tYWlucyAqcG93ZXJfZG9tYWlucyA9ICZkZXZfcHJpdi0+cG93ZXJf ZG9tYWluczsKPiAgCXN0cnVjdCBpOTE1X3Bvd2VyX3dlbGwgKndlbGw7Cj4gLQl1MzIgdmFsOwo+ ICAKPiAgCWdlbjlfc2V0X2RjX3N0YXRlKGRldl9wcml2LCBEQ19TVEFURV9ESVNBQkxFKTsKPiAg Cj4gIAkvKiAxLiBFbmFibGUgUENIIFJlc2V0IEhhbmRzaGFrZSAqLwo+ICAJaW50ZWxfcGNoX3Jl c2V0X2hhbmRzaGFrZShkZXZfcHJpdiwgIUhBU19QQ0hfTk9QKGRldl9wcml2KSk7Cj4gIAo+IC0J LyogMi4gRW5hYmxlIENvbXAgKi8KPiAtCXZhbCA9IEk5MTVfUkVBRChDSElDS0VOX01JU0NfMik7 Cj4gLQl2YWwgJj0gfkNOTF9DT01QX1BXUl9ET1dOOwo+IC0JSTkxNV9XUklURShDSElDS0VOX01J U0NfMiwgdmFsKTsKPiAtCj4gLQkvKiBEdW1teSBQT1JUX0EgdG8gZ2V0IHRoZSBjb3JyZWN0IENO TCByZWdpc3RlciBmcm9tIHRoZSBJQ0wgbWFjcm8gKi8KPiAtCWNubF9zZXRfcHJvY21vbl9yZWZf dmFsdWVzKGRldl9wcml2LCBQT1JUX0EpOwo+IC0KPiAtCXZhbCA9IEk5MTVfUkVBRChDTkxfUE9S VF9DT01QX0RXMCk7Cj4gLQl2YWwgfD0gQ09NUF9JTklUOwo+IC0JSTkxNV9XUklURShDTkxfUE9S VF9DT01QX0RXMCwgdmFsKTsKPiAtCj4gLQkvKiAzLiAqLwo+IC0JdmFsID0gSTkxNV9SRUFEKENO TF9QT1JUX0NMMUNNX0RXNSk7Cj4gLQl2YWwgfD0gQ0xfUE9XRVJfRE9XTl9FTkFCTEU7Cj4gLQlJ OTE1X1dSSVRFKENOTF9QT1JUX0NMMUNNX0RXNSwgdmFsKTsKPiArCS8qIDItMy4gKi8KPiArCWNu bF9jb21ib19waHlzX2luaXQoZGV2X3ByaXYpOwo+ICAKPiAgCS8qCj4gIAkgKiA0LiBFbmFibGUg UG93ZXIgV2VsbCAxIChQRzEpLgo+IEBAIC0zNTUzLDcgKzM0NzIsNiBAQCBzdGF0aWMgdm9pZCBj bmxfZGlzcGxheV9jb3JlX3VuaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp Cj4gIHsKPiAgCXN0cnVjdCBpOTE1X3Bvd2VyX2RvbWFpbnMgKnBvd2VyX2RvbWFpbnMgPSAmZGV2 X3ByaXYtPnBvd2VyX2RvbWFpbnM7Cj4gIAlzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsICp3ZWxsOwo+ IC0JdTMyIHZhbDsKPiAgCj4gIAlnZW45X3NldF9kY19zdGF0ZShkZXZfcHJpdiwgRENfU1RBVEVf RElTQUJMRSk7Cj4gIAo+IEBAIC0zNTc3LDEwICszNDk1LDggQEAgc3RhdGljIHZvaWQgY25sX2Rp c3BsYXlfY29yZV91bmluaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAK PiAgCXVzbGVlcF9yYW5nZSgxMCwgMzApOwkJLyogMTAgdXMgZGVsYXkgcGVyIEJzcGVjICovCj4g IAo+IC0JLyogNS4gRGlzYWJsZSBDb21wICovCj4gLQl2YWwgPSBJOTE1X1JFQUQoQ0hJQ0tFTl9N SVNDXzIpOwo+IC0JdmFsIHw9IENOTF9DT01QX1BXUl9ET1dOOwo+IC0JSTkxNV9XUklURShDSElD S0VOX01JU0NfMiwgdmFsKTsKPiArCS8qIDUuICovCj4gKwljbmxfY29tYm9fcGh5c191bmluaXQo ZGV2X3ByaXYpOwo+ICB9Cj4gIAo+ICB2b2lkIGljbF9kaXNwbGF5X2NvcmVfaW5pdChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gQEAgLTM1ODgsMzEgKzM1MDQsMTQgQEAgdm9p ZCBpY2xfZGlzcGxheV9jb3JlX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAo+ICB7Cj4gIAlzdHJ1Y3QgaTkxNV9wb3dlcl9kb21haW5zICpwb3dlcl9kb21haW5zID0gJmRl dl9wcml2LT5wb3dlcl9kb21haW5zOwo+ICAJc3RydWN0IGk5MTVfcG93ZXJfd2VsbCAqd2VsbDsK PiAtCWVudW0gcG9ydCBwb3J0Owo+IC0JdTMyIHZhbDsKPiAgCj4gIAlnZW45X3NldF9kY19zdGF0 ZShkZXZfcHJpdiwgRENfU1RBVEVfRElTQUJMRSk7Cj4gIAo+ICAJLyogMS4gRW5hYmxlIFBDSCBy ZXNldCBoYW5kc2hha2UuICovCj4gIAlpbnRlbF9wY2hfcmVzZXRfaGFuZHNoYWtlKGRldl9wcml2 LCAhSEFTX1BDSF9OT1AoZGV2X3ByaXYpKTsKPiAgCj4gLQlmb3IgKHBvcnQgPSBQT1JUX0E7IHBv cnQgPD0gUE9SVF9COyBwb3J0KyspIHsKPiAtCQkvKiAyLiBFbmFibGUgRERJIGNvbWJvIFBIWSBj b21wLiAqLwo+IC0JCXZhbCA9IEk5MTVfUkVBRChJQ0xfUEhZX01JU0MocG9ydCkpOwo+IC0JCXZh bCAmPSB+SUNMX1BIWV9NSVNDX0RFX0lPX0NPTVBfUFdSX0RPV047Cj4gLQkJSTkxNV9XUklURShJ Q0xfUEhZX01JU0MocG9ydCksIHZhbCk7Cj4gLQo+IC0JCWNubF9zZXRfcHJvY21vbl9yZWZfdmFs dWVzKGRldl9wcml2LCBwb3J0KTsKPiAtCj4gLQkJdmFsID0gSTkxNV9SRUFEKElDTF9QT1JUX0NP TVBfRFcwKHBvcnQpKTsKPiAtCQl2YWwgfD0gQ09NUF9JTklUOwo+IC0JCUk5MTVfV1JJVEUoSUNM X1BPUlRfQ09NUF9EVzAocG9ydCksIHZhbCk7Cj4gLQo+IC0JCS8qIDMuIFNldCBwb3dlciBkb3du IGVuYWJsZS4gKi8KPiAtCQl2YWwgPSBJOTE1X1JFQUQoSUNMX1BPUlRfQ0xfRFc1KHBvcnQpKTsK PiAtCQl2YWwgfD0gQ0xfUE9XRVJfRE9XTl9FTkFCTEU7Cj4gLQkJSTkxNV9XUklURShJQ0xfUE9S VF9DTF9EVzUocG9ydCksIHZhbCk7Cj4gLQl9Cj4gKwkvKiAyLTMuICovCj4gKwlpY2xfY29tYm9f cGh5c19pbml0KGRldl9wcml2KTsKPiAgCj4gIAkvKgo+ICAJICogNC4gRW5hYmxlIFBvd2VyIFdl bGwgMSAoUEcxKS4KPiBAQCAtMzY0MCw4ICszNTM5LDYgQEAgdm9pZCBpY2xfZGlzcGxheV9jb3Jl X3VuaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIHsKPiAgCXN0cnVj dCBpOTE1X3Bvd2VyX2RvbWFpbnMgKnBvd2VyX2RvbWFpbnMgPSAmZGV2X3ByaXYtPnBvd2VyX2Rv bWFpbnM7Cj4gIAlzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsICp3ZWxsOwo+IC0JZW51bSBwb3J0IHBv cnQ7Cj4gLQl1MzIgdmFsOwo+ICAKPiAgCWdlbjlfc2V0X2RjX3N0YXRlKGRldl9wcml2LCBEQ19T VEFURV9ESVNBQkxFKTsKPiAgCj4gQEAgLTM2NjMsMTYgKzM1NjAsOCBAQCB2b2lkIGljbF9kaXNw bGF5X2NvcmVfdW5pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCWlu dGVsX3Bvd2VyX3dlbGxfZGlzYWJsZShkZXZfcHJpdiwgd2VsbCk7Cj4gIAltdXRleF91bmxvY2so JnBvd2VyX2RvbWFpbnMtPmxvY2spOwo+ICAKPiAtCS8qIDUuIERpc2FibGUgQ29tcCAqLwo+IC0J Zm9yIChwb3J0ID0gUE9SVF9BOyBwb3J0IDw9IFBPUlRfQjsgcG9ydCsrKSB7Cj4gLQkJdmFsID0g STkxNV9SRUFEKElDTF9QSFlfTUlTQyhwb3J0KSk7Cj4gLQkJdmFsIHw9IElDTF9QSFlfTUlTQ19E RV9JT19DT01QX1BXUl9ET1dOOwo+IC0JCUk5MTVfV1JJVEUoSUNMX1BIWV9NSVNDKHBvcnQpLCB2 YWwpOwo+IC0KPiAtCQl2YWwgPSBJOTE1X1JFQUQoSUNMX1BPUlRfQ09NUF9EVzAocG9ydCkpOwo+ IC0JCXZhbCAmPSB+Q09NUF9JTklUOwo+IC0JCUk5MTVfV1JJVEUoSUNMX1BPUlRfQ09NUF9EVzAo cG9ydCksIHZhbCk7Cj4gLQl9Cj4gKwkvKiA1LiAqLwo+ICsJaWNsX2NvbWJvX3BoeXNfdW5pbml0 KGRldl9wcml2KTsKPiAgfQo+ICAKPiAgc3RhdGljIHZvaWQgY2h2X3BoeV9jb250cm9sX2luaXQo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+IC0tIAo+IDIuMTMuMgo+IApfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK