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=-6.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,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 40A3FC432C0 for ; Tue, 3 Dec 2019 14:03:56 +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 22DD120684 for ; Tue, 3 Dec 2019 14:03:55 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 22DD120684 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 9424D6E598; Tue, 3 Dec 2019 14:03:55 +0000 (UTC) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id 210226E5A9 for ; Tue, 3 Dec 2019 14:03:54 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 03 Dec 2019 06:03:37 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.69,273,1571727600"; d="scan'208";a="242408350" Received: from irsmsx101.ger.corp.intel.com ([163.33.3.153]) by fmsmga002.fm.intel.com with ESMTP; 03 Dec 2019 06:03:36 -0800 Received: from irsmsx111.ger.corp.intel.com (10.108.20.4) by IRSMSX101.ger.corp.intel.com (163.33.3.153) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 3 Dec 2019 14:02:54 +0000 Received: from irsmsx106.ger.corp.intel.com ([169.254.8.185]) by irsmsx111.ger.corp.intel.com ([169.254.2.205]) with mapi id 14.03.0439.000; Tue, 3 Dec 2019 14:02:53 +0000 From: "Lisovskiy, Stanislav" To: "ville.syrjala@linux.intel.com" , "intel-gfx@lists.freedesktop.org" Thread-Topic: [PATCH v2 6/8] drm/i915: Polish WM_LINETIME register stuff Thread-Index: AQHVgp+M27VSdfuhb0+fX710cPDwEqeovqmA Date: Tue, 3 Dec 2019 14:02:53 +0000 Message-ID: <3f01e79302c5dbea2781fcd2edb944f0d401e09f.camel@intel.com> References: <20191011200949.7839-7-ville.syrjala@linux.intel.com> <20191014145619.32395-1-ville.syrjala@linux.intel.com> In-Reply-To: <20191014145619.32395-1-ville.syrjala@linux.intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.237.72.89] Content-ID: MIME-Version: 1.0 Subject: Re: [Intel-gfx] [PATCH v2 6/8] drm/i915: Polish WM_LINETIME register stuff X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 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" T24gTW9uLCAyMDE5LTEwLTE0IGF0IDE3OjU2ICswMzAwLCBWaWxsZSBTeXJqYWxhIHdyb3RlOg0K PiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPg0K PiANCj4gTGV0J3Mgc3RvcmUgdGhlIG5vcm1hbCBhbmQgSVBTIGxpbmV0aW1lIHdhdGVybWFya3Mg aW5kaXZpZHVhbGx5LA0KPiBhbmQgd2hpbGUgYXQgaXQgd2UnbGwgcGltcCB0aGUgcmVnaXN0ZXIg ZGVmaW5pdGlvbnMgYXMgd2VsbC4NCj4gDQo+IHYyOiBEZWFsIHdpdGggZ3Z0DQo+IA0KPiBTaWdu ZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29t Pg0KDQoNClJldmlld2VkLWJ5OiBTdGFuaXNsYXYgTGlzb3Zza2l5IDxzdGFuaXNsYXYubGlzb3Zz a2l5QGludGVsLmNvbT4NCg0KPiAtLS0NCj4gIC4uLi9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rp c3BsYXlfdHlwZXMuaCAgICB8ICAzICstDQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvaGFu ZGxlcnMuYyAgICAgICAgICAgfCAgNiArLQ0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9y ZWcuaCAgICAgICAgICAgICAgIHwgMTQgKystLQ0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcG0uYyAgICAgICAgICAgICAgIHwgNzIgKysrKysrKysrKy0tLS0tLS0NCj4gLS0NCj4gIDQg ZmlsZXMgY2hhbmdlZCwgNTIgaW5zZXJ0aW9ucygrKSwgNDMgZGVsZXRpb25zKC0pDQo+IA0KPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5 cGVzLmgNCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfdHlw ZXMuaA0KPiBpbmRleCA0MDM5MGQ4NTU4MTUuLjg0MTk1MjMzMmM3ZSAxMDA2NDQNCj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmgNCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmgNCj4g QEAgLTYzMSw3ICs2MzEsOCBAQCBzdHJ1Y3QgaW50ZWxfY3J0Y19zY2FsZXJfc3RhdGUgew0KPiAg DQo+ICBzdHJ1Y3QgaW50ZWxfcGlwZV93bSB7DQo+ICAJc3RydWN0IGludGVsX3dtX2xldmVsIHdt WzVdOw0KPiAtCXUzMiBsaW5ldGltZTsNCj4gKwl1MTYgbGluZXRpbWU7DQo+ICsJdTE2IGlwc19s aW5ldGltZTsNCj4gIAlib29sIGZiY193bV9lbmFibGVkOw0KPiAgCWJvb2wgcGlwZV9lbmFibGVk Ow0KPiAgCWJvb2wgc3ByaXRlc19lbmFibGVkOw0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3Z0L2hhbmRsZXJzLmMNCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvaGFu ZGxlcnMuYw0KPiBpbmRleCA0NWE5MTI0ZTUzYjYuLmYyYWQ0NzdlZGU2YiAxMDA2NDQNCj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2hhbmRsZXJzLmMNCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3Z0L2hhbmRsZXJzLmMNCj4gQEAgLTIzOTcsOSArMjM5Nyw5IEBAIHN0YXRp YyBpbnQgaW5pdF9nZW5lcmljX21taW9faW5mbyhzdHJ1Y3QNCj4gaW50ZWxfZ3Z0ICpndnQpDQo+ ICAJTU1JT19GKF9NTUlPKDB4NzE0NGMpLCAweGMsIDAsIDAsIDAsIERfUFJFX1NLTCwgTlVMTCwg TlVMTCk7DQo+ICAJTU1JT19GKF9NTUlPKDB4NzI0NGMpLCAweGMsIDAsIDAsIDAsIERfUFJFX1NL TCwgTlVMTCwgTlVMTCk7DQo+ICANCj4gLQlNTUlPX0QoUElQRV9XTV9MSU5FVElNRShQSVBFX0Ep LCBEX0FMTCk7DQo+IC0JTU1JT19EKFBJUEVfV01fTElORVRJTUUoUElQRV9CKSwgRF9BTEwpOw0K PiAtCU1NSU9fRChQSVBFX1dNX0xJTkVUSU1FKFBJUEVfQyksIERfQUxMKTsNCj4gKwlNTUlPX0Qo V01fTElORVRJTUUoUElQRV9BKSwgRF9BTEwpOw0KPiArCU1NSU9fRChXTV9MSU5FVElNRShQSVBF X0IpLCBEX0FMTCk7DQo+ICsJTU1JT19EKFdNX0xJTkVUSU1FKFBJUEVfQyksIERfQUxMKTsNCj4g IAlNTUlPX0QoU1BMTF9DVEwsIERfQUxMKTsNCj4gIAlNTUlPX0QoX01NSU8oX1dSUExMX0NUTDEp LCBEX0FMTCk7DQo+ICAJTU1JT19EKF9NTUlPKF9XUlBMTF9DVEwyKSwgRF9BTEwpOw0KPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaA0KPiBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfcmVnLmgNCj4gaW5kZXggMGZiOTAzMGI4OWYxLi5lMWRiODU3NjgwODQg MTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgNCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaA0KPiBAQCAtMTAzOTQsMTMgKzEwMzk0LDEz IEBAIGVudW0gc2tsX3Bvd2VyX2dhdGUgew0KPiAgI2RlZmluZSAgRF9DT01QX0NPTVBfRElTQUJM RQkJKDEgPDwgMCkNCj4gIA0KPiAgLyogUGlwZSBXTV9MSU5FVElNRSAtIHdhdGVybWFyayBsaW5l IHRpbWUgKi8NCj4gLSNkZWZpbmUgX1BJUEVfV01fTElORVRJTUVfQQkJMHg0NTI3MA0KPiAtI2Rl ZmluZSBfUElQRV9XTV9MSU5FVElNRV9CCQkweDQ1Mjc0DQo+IC0jZGVmaW5lIFBJUEVfV01fTElO RVRJTUUocGlwZSkgX01NSU9fUElQRShwaXBlLCBfUElQRV9XTV9MSU5FVElNRV9BLA0KPiBfUElQ RV9XTV9MSU5FVElNRV9CKQ0KPiAtI2RlZmluZSAgIFBJUEVfV01fTElORVRJTUVfTUFTSwkJCSgw eDFmZikNCj4gLSNkZWZpbmUgICBQSVBFX1dNX0xJTkVUSU1FX1RJTUUoeCkJCSgoeCkpDQo+IC0j ZGVmaW5lICAgUElQRV9XTV9MSU5FVElNRV9JUFNfTElORVRJTUVfTUFTSwkoMHgxZmYgPDwgMTYp DQo+IC0jZGVmaW5lICAgUElQRV9XTV9MSU5FVElNRV9JUFNfTElORVRJTUUoeCkJKCh4KSA8PCAx NikNCj4gKyNkZWZpbmUgX1dNX0xJTkVUSU1FX0EJCTB4NDUyNzANCj4gKyNkZWZpbmUgX1dNX0xJ TkVUSU1FX0IJCTB4NDUyNzQNCj4gKyNkZWZpbmUgV01fTElORVRJTUUocGlwZSkgX01NSU9fUElQ RShwaXBlLCBfV01fTElORVRJTUVfQSwNCj4gX1dNX0xJTkVUSU1FX0IpDQo+ICsjZGVmaW5lICBI U1dfTElORVRJTUVfTUFTSwlSRUdfR0VOTUFTSyg4LCAwKQ0KPiArI2RlZmluZSAgSFNXX0xJTkVU SU1FKHgpCVJFR19GSUVMRF9QUkVQKEhTV19MSU5FVElNRV9NQVNLLCAoeCkpDQo+ICsjZGVmaW5l ICBIU1dfSVBTX0xJTkVUSU1FX01BU0sJUkVHX0dFTk1BU0soMjQsIDE2KQ0KPiArI2RlZmluZSAg SFNXX0lQU19MSU5FVElNRSh4KQlSRUdfRklFTERfUFJFUChIU1dfSVBTX0xJTkVUSU1FX01BU0ss DQo+ICh4KSkNCj4gIA0KPiAgLyogU0ZVU0VfU1RSQVAgKi8NCj4gICNkZWZpbmUgU0ZVU0VfU1RS QVAJCQlfTU1JTygweGMyMDE0KQ0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcG0uYw0KPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMNCj4gaW5kZXgg ZjIxZWI5MjUwZDIzLi5mNjg5M2I3NzEwNzggMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3BtLmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0u Yw0KPiBAQCAtMjc2NCwzMSArMjc2NCwzMSBAQCBzdGF0aWMgdm9pZCBpbGtfY29tcHV0ZV93bV9s ZXZlbChjb25zdCBzdHJ1Y3QNCj4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsDQo+ICB9DQo+ ICANCj4gIHN0YXRpYyB1MzINCj4gLWhzd19jb21wdXRlX2xpbmV0aW1lX3dtKGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQ0KPiAraHN3X2xpbmV0aW1lX3dtKGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQ0KPiAgew0KPiAtCWNvbnN0IHN0 cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKmludGVsX3N0YXRlID0NCj4gLQkJdG9faW50ZWxfYXRv bWljX3N0YXRlKGNydGNfc3RhdGUtPmJhc2Uuc3RhdGUpOw0KPiAgCWNvbnN0IHN0cnVjdCBkcm1f ZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0NCj4gIAkJJmNydGNfc3RhdGUtPmJhc2UuYWRq dXN0ZWRfbW9kZTsNCj4gLQl1MzIgbGluZXRpbWUsIGlwc19saW5ldGltZTsNCj4gIA0KPiAgCWlm ICghY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUpDQo+ICAJCXJldHVybiAwOw0KPiAtCWlmIChXQVJO X09OKGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2sgPT0gMCkpDQo+IC0JCXJldHVybiAwOw0KPiAt CWlmIChXQVJOX09OKGludGVsX3N0YXRlLT5jZGNsay5sb2dpY2FsLmNkY2xrID09IDApKQ0KPiAt CQlyZXR1cm4gMDsNCj4gIA0KPiAtCS8qIFRoZSBXTSBhcmUgY29tcHV0ZWQgd2l0aCBiYXNlIG9u IGhvdyBsb25nIGl0IHRha2VzIHRvIGZpbGwgYQ0KPiBzaW5nbGUNCj4gLQkgKiByb3cgYXQgdGhl IGdpdmVuIGNsb2NrIHJhdGUsIG11bHRpcGxpZWQgYnkgOC4NCj4gLQkgKiAqLw0KPiAtCWxpbmV0 aW1lID0gRElWX1JPVU5EX0NMT1NFU1QoYWRqdXN0ZWRfbW9kZS0+Y3J0Y19odG90YWwgKiAxMDAw DQo+ICogOCwNCj4gLQkJCQkgICAgIGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2spOw0KPiAtCWlw c19saW5ldGltZSA9IERJVl9ST1VORF9DTE9TRVNUKGFkanVzdGVkX21vZGUtPmNydGNfaHRvdGFs ICoNCj4gMTAwMCAqIDgsDQo+IC0JCQkJCSBpbnRlbF9zdGF0ZS0NCj4gPmNkY2xrLmxvZ2ljYWwu Y2RjbGspOw0KPiArCXJldHVybiBESVZfUk9VTkRfQ0xPU0VTVChhZGp1c3RlZF9tb2RlLT5jcnRj X2h0b3RhbCAqIDEwMDAgKiA4LA0KPiArCQkJCSBhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrKTsN Cj4gK30NCj4gKw0KPiArc3RhdGljIHUzMg0KPiAraHN3X2lwc19saW5ldGltZV93bShjb25zdCBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkNCj4gK3sNCj4gKwljb25zdCBzdHJ1 Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSA9DQo+ICsJCXRvX2ludGVsX2F0b21pY19zdGF0 ZShjcnRjX3N0YXRlLT5iYXNlLnN0YXRlKTsNCj4gKwljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlf bW9kZSAqYWRqdXN0ZWRfbW9kZSA9DQo+ICsJCSZjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21v ZGU7DQo+ICANCj4gLQlyZXR1cm4gUElQRV9XTV9MSU5FVElNRV9JUFNfTElORVRJTUUoaXBzX2xp bmV0aW1lKSB8DQo+IC0JICAgICAgIFBJUEVfV01fTElORVRJTUVfVElNRShsaW5ldGltZSk7DQo+ ICsJaWYgKCFjcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSkNCj4gKwkJcmV0dXJuIDA7DQo+ICsNCj4g KwlyZXR1cm4gRElWX1JPVU5EX0NMT1NFU1QoYWRqdXN0ZWRfbW9kZS0+Y3J0Y19odG90YWwgKiAx MDAwICogOCwNCj4gKwkJCQkgc3RhdGUtPmNkY2xrLmxvZ2ljYWwuY2RjbGspOw0KPiAgfQ0KPiAg DQo+ICBzdGF0aWMgdm9pZCBpbnRlbF9yZWFkX3dtX2xhdGVuY3koc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LA0KPiBAQCAtMzEyOCw4ICszMTI4LDEwIEBAIHN0YXRpYyBpbnQgaWxr X2NvbXB1dGVfcGlwZV93bShzdHJ1Y3QNCj4gaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkN Cj4gIAlpbGtfY29tcHV0ZV93bV9sZXZlbChkZXZfcHJpdiwgaW50ZWxfY3J0YywgMCwgY3J0Y19z dGF0ZSwNCj4gIAkJCSAgICAgcHJpc3RhdGUsIHNwcnN0YXRlLCBjdXJzdGF0ZSwgJnBpcGVfd20t DQo+ID53bVswXSk7DQo+ICANCj4gLQlpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikgfHwgSVNfQlJP QURXRUxMKGRldl9wcml2KSkNCj4gLQkJcGlwZV93bS0+bGluZXRpbWUgPQ0KPiBoc3dfY29tcHV0 ZV9saW5ldGltZV93bShjcnRjX3N0YXRlKTsNCj4gKwlpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikg fHwgSVNfQlJPQURXRUxMKGRldl9wcml2KSkgew0KPiArCQlwaXBlX3dtLT5saW5ldGltZSA9IGhz d19saW5ldGltZV93bShjcnRjX3N0YXRlKTsNCj4gKwkJcGlwZV93bS0+aXBzX2xpbmV0aW1lID0N Cj4gaHN3X2lwc19saW5ldGltZV93bShjcnRjX3N0YXRlKTsNCj4gKwl9DQo+ICANCj4gIAlpZiAo IWlsa192YWxpZGF0ZV9waXBlX3dtKGRldl9wcml2LCBwaXBlX3dtKSkNCj4gIAkJcmV0dXJuIC1F SU5WQUw7DQo+IEBAIC0zMzI5LDcgKzMzMzEsNyBAQCBzdGF0aWMgdm9pZCBpbGtfY29tcHV0ZV93 bV9yZXN1bHRzKHN0cnVjdA0KPiBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwNCj4gIAkJCQkg ICBlbnVtIGludGVsX2RkYl9wYXJ0aXRpb25pbmcNCj4gcGFydGl0aW9uaW5nLA0KPiAgCQkJCSAg IHN0cnVjdCBpbGtfd21fdmFsdWVzICpyZXN1bHRzKQ0KPiAgew0KPiAtCXN0cnVjdCBpbnRlbF9j cnRjICppbnRlbF9jcnRjOw0KPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjOw0KPiAgCWludCBs ZXZlbCwgd21fbHA7DQo+ICANCj4gIAlyZXN1bHRzLT5lbmFibGVfZmJjX3dtID0gbWVyZ2VkLT5m YmNfd21fZW5hYmxlZDsNCj4gQEAgLTMzNzQsMTUgKzMzNzYsMTcgQEAgc3RhdGljIHZvaWQgaWxr X2NvbXB1dGVfd21fcmVzdWx0cyhzdHJ1Y3QNCj4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs DQo+ICAJfQ0KPiAgDQo+ICAJLyogTFAwIHJlZ2lzdGVyIHZhbHVlcyAqLw0KPiAtCWZvcl9lYWNo X2ludGVsX2NydGMoJmRldl9wcml2LT5kcm0sIGludGVsX2NydGMpIHsNCj4gLQkJZW51bSBwaXBl IHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOw0KPiAtCQljb25zdCBzdHJ1Y3QgaW50ZWxfd21fbGV2 ZWwgKnIgPQ0KPiAtCQkJJmludGVsX2NydGMtPndtLmFjdGl2ZS5pbGsud21bMF07DQo+ICsJZm9y X2VhY2hfaW50ZWxfY3J0YygmZGV2X3ByaXYtPmRybSwgY3J0Yykgew0KPiArCQllbnVtIHBpcGUg cGlwZSA9IGNydGMtPnBpcGU7DQo+ICsJCWNvbnN0IHN0cnVjdCBpbnRlbF9waXBlX3dtICpwaXBl X3dtID0gJmNydGMtDQo+ID53bS5hY3RpdmUuaWxrOw0KPiArCQljb25zdCBzdHJ1Y3QgaW50ZWxf d21fbGV2ZWwgKnIgPSAmcGlwZV93bS0+d21bMF07DQo+ICANCj4gIAkJaWYgKFdBUk5fT04oIXIt PmVuYWJsZSkpDQo+ICAJCQljb250aW51ZTsNCj4gIA0KPiAtCQlyZXN1bHRzLT53bV9saW5ldGlt ZVtwaXBlXSA9IGludGVsX2NydGMtDQo+ID53bS5hY3RpdmUuaWxrLmxpbmV0aW1lOw0KPiArCQly ZXN1bHRzLT53bV9saW5ldGltZVtwaXBlXSA9DQo+ICsJCQlIU1dfTElORVRJTUUocGlwZV93bS0+ bGluZXRpbWUpIHwNCj4gKwkJCUhTV19JUFNfTElORVRJTUUocGlwZV93bS0+aXBzX2xpbmV0aW1l KTsNCj4gIA0KPiAgCQlyZXN1bHRzLT53bV9waXBlW3BpcGVdID0NCj4gIAkJCShyLT5wcmlfdmFs IDw8IFdNMF9QSVBFX1BMQU5FX1NISUZUKSB8DQo+IEBAIC0zNTM1LDExICszNTM5LDExIEBAIHN0 YXRpYyB2b2lkIGlsa193cml0ZV93bV92YWx1ZXMoc3RydWN0DQo+IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LA0KPiAgCQlJOTE1X1dSSVRFKFdNMF9QSVBFQ19JVkIsIHJlc3VsdHMtPndtX3Bp cGVbMl0pOw0KPiAgDQo+ICAJaWYgKGRpcnR5ICYgV01fRElSVFlfTElORVRJTUUoUElQRV9BKSkN Cj4gLQkJSTkxNV9XUklURShQSVBFX1dNX0xJTkVUSU1FKFBJUEVfQSksIHJlc3VsdHMtDQo+ID53 bV9saW5ldGltZVswXSk7DQo+ICsJCUk5MTVfV1JJVEUoV01fTElORVRJTUUoUElQRV9BKSwgcmVz dWx0cy0NCj4gPndtX2xpbmV0aW1lWzBdKTsNCj4gIAlpZiAoZGlydHkgJiBXTV9ESVJUWV9MSU5F VElNRShQSVBFX0IpKQ0KPiAtCQlJOTE1X1dSSVRFKFBJUEVfV01fTElORVRJTUUoUElQRV9CKSwg cmVzdWx0cy0NCj4gPndtX2xpbmV0aW1lWzFdKTsNCj4gKwkJSTkxNV9XUklURShXTV9MSU5FVElN RShQSVBFX0IpLCByZXN1bHRzLQ0KPiA+d21fbGluZXRpbWVbMV0pOw0KPiAgCWlmIChkaXJ0eSAm IFdNX0RJUlRZX0xJTkVUSU1FKFBJUEVfQykpDQo+IC0JCUk5MTVfV1JJVEUoUElQRV9XTV9MSU5F VElNRShQSVBFX0MpLCByZXN1bHRzLQ0KPiA+d21fbGluZXRpbWVbMl0pOw0KPiArCQlJOTE1X1dS SVRFKFdNX0xJTkVUSU1FKFBJUEVfQyksIHJlc3VsdHMtDQo+ID53bV9saW5ldGltZVsyXSk7DQo+ ICANCj4gIAlpZiAoZGlydHkgJiBXTV9ESVJUWV9EREIpIHsNCj4gIAkJaWYgKElTX0hBU1dFTEwo ZGV2X3ByaXYpIHx8IElTX0JST0FEV0VMTChkZXZfcHJpdikpIHsNCj4gQEAgLTU1OTgsNyArNTYw Miw3IEBAIHN0YXRpYyB2b2lkIHNrbF9hdG9taWNfdXBkYXRlX2NydGNfd20oc3RydWN0DQo+IGlu dGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsDQo+ICAJaWYgKChzdGF0ZS0+d21fcmVzdWx0cy5kaXJ0 eV9waXBlcyAmIEJJVChjcnRjLT5waXBlKSkgPT0gMCkNCj4gIAkJcmV0dXJuOw0KPiAgDQo+IC0J STkxNV9XUklURShQSVBFX1dNX0xJTkVUSU1FKHBpcGUpLCBwaXBlX3dtLT5saW5ldGltZSk7DQo+ ICsJSTkxNV9XUklURShXTV9MSU5FVElNRShwaXBlKSwgSFNXX0xJTkVUSU1FKHBpcGVfd20tPmxp bmV0aW1lKSk7DQo+ICB9DQo+ICANCj4gIHN0YXRpYyB2b2lkIHNrbF9pbml0aWFsX3dtKHN0cnVj dCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLA0KPiBAQCAtNTc0MCw3ICs1NzQ0LDggQEAgdm9p ZCBza2xfcGlwZV93bV9nZXRfaHdfc3RhdGUoc3RydWN0IGludGVsX2NydGMNCj4gKmNydGMsDQo+ ICAJaWYgKCFjcnRjLT5hY3RpdmUpDQo+ICAJCXJldHVybjsNCj4gIA0KPiAtCW91dC0+bGluZXRp bWUgPSBJOTE1X1JFQUQoUElQRV9XTV9MSU5FVElNRShwaXBlKSk7DQo+ICsJdmFsID0gSTkxNV9S RUFEKFdNX0xJTkVUSU1FKHBpcGUpKTsNCj4gKwlvdXQtPmxpbmV0aW1lID0gUkVHX0ZJRUxEX0dF VChIU1dfTElORVRJTUVfTUFTSywgdmFsKTsNCj4gIH0NCj4gIA0KPiAgdm9pZCBza2xfd21fZ2V0 X2h3X3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikNCj4gQEAgLTU3ODIs NyArNTc4Nyw3IEBAIHN0YXRpYyB2b2lkIGlsa19waXBlX3dtX2dldF9od19zdGF0ZShzdHJ1Y3QN Cj4gaW50ZWxfY3J0YyAqY3J0YykNCj4gIA0KPiAgCWh3LT53bV9waXBlW3BpcGVdID0gSTkxNV9S RUFEKHdtMF9waXBlX3JlZ1twaXBlXSk7DQo+ICAJaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpIHx8 IElTX0JST0FEV0VMTChkZXZfcHJpdikpDQo+IC0JCWh3LT53bV9saW5ldGltZVtwaXBlXSA9DQo+ IEk5MTVfUkVBRChQSVBFX1dNX0xJTkVUSU1FKHBpcGUpKTsNCj4gKwkJaHctPndtX2xpbmV0aW1l W3BpcGVdID0gSTkxNV9SRUFEKFdNX0xJTkVUSU1FKHBpcGUpKTsNCj4gIA0KPiAgCW1lbXNldChh Y3RpdmUsIDAsIHNpemVvZigqYWN0aXZlKSk7DQo+ICANCj4gQEAgLTU4MDEsNyArNTgwNiwxMCBA QCBzdGF0aWMgdm9pZCBpbGtfcGlwZV93bV9nZXRfaHdfc3RhdGUoc3RydWN0DQo+IGludGVsX2Ny dGMgKmNydGMpDQo+ICAJCWFjdGl2ZS0+d21bMF0ucHJpX3ZhbCA9ICh0bXAgJiBXTTBfUElQRV9Q TEFORV9NQVNLKSA+Pg0KPiBXTTBfUElQRV9QTEFORV9TSElGVDsNCj4gIAkJYWN0aXZlLT53bVsw XS5zcHJfdmFsID0gKHRtcCAmIFdNMF9QSVBFX1NQUklURV9NQVNLKSA+Pg0KPiBXTTBfUElQRV9T UFJJVEVfU0hJRlQ7DQo+ICAJCWFjdGl2ZS0+d21bMF0uY3VyX3ZhbCA9IHRtcCAmIFdNMF9QSVBF X0NVUlNPUl9NQVNLOw0KPiAtCQlhY3RpdmUtPmxpbmV0aW1lID0gaHctPndtX2xpbmV0aW1lW3Bp cGVdOw0KPiArCQlhY3RpdmUtPmxpbmV0aW1lID0gUkVHX0ZJRUxEX0dFVChIU1dfTElORVRJTUVf TUFTSywNCj4gKwkJCQkJCSBody0NCj4gPndtX2xpbmV0aW1lW3BpcGVdKTsNCj4gKwkJYWN0aXZl LT5pcHNfbGluZXRpbWUgPQ0KPiBSRUdfRklFTERfR0VUKEhTV19JUFNfTElORVRJTUVfTUFTSywN Cj4gKwkJCQkJCSAgICAgaHctDQo+ID53bV9saW5ldGltZVtwaXBlXSk7DQo+ICAJfSBlbHNlIHsN Cj4gIAkJaW50IGxldmVsLCBtYXhfbGV2ZWwgPSBpbGtfd21fbWF4X2xldmVsKGRldl9wcml2KTsN Cj4gIA0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4