From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Zanoni, Paulo R" Subject: Re: [PATCH 02/26] drm/i915: don't stop+start FBC at every flip Date: Wed, 28 Oct 2015 16:56:39 +0000 Message-ID: <1446051398.2750.3.camel@intel.com> References: <1445964628-30226-1-git-send-email-paulo.r.zanoni@intel.com> <1445964628-30226-3-git-send-email-paulo.r.zanoni@intel.com> <20151027183231.GN4437@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 2E2996E93B for ; Wed, 28 Oct 2015 09:56:48 -0700 (PDT) In-Reply-To: <20151027183231.GN4437@intel.com> Content-Language: en-US Content-ID: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "ville.syrjala@linux.intel.com" Cc: "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org RW0gVGVyLCAyMDE1LTEwLTI3IMOgcyAyMDozMiArMDIwMCwgVmlsbGUgU3lyasOkbMOkIGVzY3Jl dmV1Og0KPiBPbiBUdWUsIE9jdCAyNywgMjAxNSBhdCAwMjo1MDowNFBNIC0wMjAwLCBQYXVsbyBa YW5vbmkgd3JvdGU6DQo+ID4gVGhlIGhhcmR3YXJlIGFscmVhZHkgdGFrZXMgY2FyZSBvZiBkaXNh YmxpbmcgYW5kIHJlY29tcHJlc3NpbmcgRkJDDQo+ID4gd2hlbiB3ZSBkbyBhIHBhZ2UgZmxpcCwg c28gYWxsIHdlIG5lZWQgdG8gZG8gaXMgdG8gdXBkYXRlIHRoZSBmZW5jZQ0KPiA+IHJlZ2lzdGVy cyBhbmQgbW92ZSBvbi4NCj4gPiANCj4gPiBPbmUgb2YgdGhlIGltcG9ydGFudCB0aGluZ3MgdG8g bm90aWNlIGlzIHRoYXQgb24gdGhlIHByZS1nZW42DQo+ID4gcGxhdGZvcm1zIHRoZSBmZW5jZSBp cyBwcm9ncmFtbWVkIG9uIHRoZSBGQkMgY29udHJvbCByZWdpc3RlciBhbmQNCj4gPiB0aGUNCj4g PiBkb2N1bWVudGF0aW9uIHNheXMgd2UgY2FuJ3QgdXBkYXRlIHRoZSBjb250cm9sIHJlZ2lzdGVy IHdoaWxlIEZCQw0KPiA+IGlzDQo+ID4gZW5hYmxlZC4gVGhpcyB3b3VsZCBiYXNpY2FsbHkgbWVh biB3ZSdkIGhhdmUgdG8gdG8gZGlzYWJsZStlbmFibGUNCj4gPiBGQkMNCj4gPiBhdCBldmVyeSBm bGlwIGluIG9yZGVyIHRvIG1ha2Ugc3VyZSB0aGUgaGFyZHdhcmUgdHJhY2tpbmcgc3RpbGwNCj4g PiB3b3JrcywNCj4gPiB3aGljaCBkb2Vzbid0IHNlZW0gdG8gbWFrZSB0b28gbXVjaCBzZW5zZS4g U28gSSBzZW50IGFuIGVtYWlsIHRvDQo+ID4gdGhlDQo+ID4gaGFyZHdhcmUgdGVhbSByZXF1ZXN0 aW5nIHNvbWUgY2xhcmlmaWNhdGlvbi4gVGhlIGluZm9ybWF0aW9uIEkgZ290DQo+ID4gd2FzDQo+ ID4gdGhpczoNCj4gPiANCj4gPiAiSSBkb24ndCB0aGluayBhbnkgaGFyZHdhcmUgaXMgbGF0Y2hp bmcgb24gdG8gMHgxMDAxMDAsIDB4MTAwMTA0LA0KPiA+IG9yDQo+ID4gdGhlIG9sZCBmZW5jZSBu dW1iZXIgaW4gRkJDX0NUTC4gSW5zdHJ1Y3Rpb25zIGFnYWluc3QgY2hhbmdpbmcgb24NCj4gPiB0 aGUNCj4gPiBmbHkgd291bGQgYmUgdG8gc2ltcGxpZnkgdGVzdGluZyBhbmQgZW5zdXJlIHlvdSBk b24ndCBtaXNzIGFueQ0KPiA+IGludmFsaWRhdGlvbiB0aGF0IGhhcHBlbmVkIHJpZ2h0IGF0IHRo YXQgdGltZS4iDQo+ID4gDQo+ID4gU28gSSBndWVzcyB3ZSdyZSBmaW5lIGZvciBmbGlwcy4gQnV0 IEkgY2FuJ3QgcmVhbGx5IHNheSBJIHRlc3RlZA0KPiA+IEZCQw0KPiA+IG9uIHRoZXNlIGFuY2ll bnQgcGxhdGZvcm1zIC0gbm9yIHRoYXQgSSdsbCBldmVyIHByb3Bvc2UgZW5hYmxpbmcNCj4gPiBG QkMNCj4gPiBieSBkZWZhdWx0IG9uIHRoZW0gZXhhY3RseSBiZWNhdXNlIG9mIHByb2JsZW1zIGxp a2UgdGhlc2UuDQo+IA0KPiBZZWFoLCBJIGRpZCB0aGlzIGluIG15IHBhdGNoZXMgdG9vLCBhbmQg SUlSQyBpdCBzZWVtZWQgdG8gd29yayBqdXN0DQo+IGZpbmUNCj4gYmFjayB0aGVuLg0KPiANCj4g PiANCj4gPiB2MjogQWRkIGNvbW1lbnQgYXQgZmx1c2goKSAoQ2hyaXMpLg0KPiA+IA0KPiA+IFRl c3RjYXNlOiBpZ3Qva21zX2Zyb250YnVmZmVyX3RyYWNraW5nL2ZiYyotZmxpcHRyYWNrDQo+ID4g U2lnbmVkLW9mZi1ieTogUGF1bG8gWmFub25pIDxwYXVsby5yLnphbm9uaUBpbnRlbC5jb20+DQo+ ID4gLS0tDQo+ID4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5owqDCoMKgwqDCoMKg wqDCoMKgwqB8wqDCoMKgMSArDQo+ID4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5o wqDCoMKgwqDCoMKgwqDCoMKgwqB8wqDCoMKgMyArDQo+ID4gwqBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmPCoMKgwqDCoMKgfMKgwqDCoDEgLQ0KPiA+IMKgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmjCoMKgwqDCoMKgwqDCoMKgwqB8wqDCoMKgMiArDQo+ID4gwqBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuY8KgwqDCoMKgwqDCoMKgwqDCoHwgMTAzDQo+ ID4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQ0KPiA+IMKgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZnJvbnRidWZmZXIuYyB8wqDCoMKgMSArDQo+ID4gwqA2IGZpbGVzIGNoYW5n ZWQsIDEwOCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQ0KPiA+IA0KPiA+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oDQo+ID4gYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oDQo+ID4gaW5kZXggZWUxNDk2Mi4uNzdkYTUwMCAxMDA2NDQNCj4g PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oDQo+ID4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaA0KPiA+IEBAIC05MjgsNiArOTI4LDcgQEAgc3RydWN0 IGk5MTVfZmJjIHsNCj4gPiDCoAlib29sICgqZmJjX2VuYWJsZWQpKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdik7DQo+ID4gwqAJdm9pZCAoKmVuYWJsZV9mYmMpKHN0cnVjdCBpbnRl bF9jcnRjICpjcnRjKTsNCj4gPiDCoAl2b2lkICgqZGlzYWJsZV9mYmMpKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdik7DQo+ID4gKwl2b2lkICgqZmxpcF9wcmVwYXJlKShzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOw0KPiA+IMKgfTsNCj4gPiDCoA0KPiA+IMKgLyoq DQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgNCj4gPiBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgNCj4gPiBpbmRleCA4OTQyNTMyLi4zZDU5 OGEyIDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgNCj4g PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oDQo+ID4gQEAgLTIwMjgsNiAr MjAyOCw3IEBAIGVudW0gc2tsX2Rpc3BfcG93ZXJfd2VsbHMgew0KPiA+IMKgI2RlZmluZcKgwqDC oEZCQ19DVExfQzNfSURMRQkoMTw8MTMpDQo+ID4gwqAjZGVmaW5lwqDCoMKgRkJDX0NUTF9TVFJJ REVfU0hJRlQJKDUpDQo+ID4gwqAjZGVmaW5lwqDCoMKgRkJDX0NUTF9GRU5DRU5PX1NISUZUCSgw KQ0KPiA+ICsjZGVmaW5lwqDCoMKgRkJDX0NUTF9GRU5DRU5PX01BU0sJMHhGDQo+IA0KPiBJdCdz IG9ubHkgdGhyZWUgYml0cyBvbiBnZW4yLiBCdXQgYml0IDMgaXMgTUJaIGFuZCB0aGVyZSBhcmUg b25seSA4DQo+IGZlbmNlIHJlZ2lzdGVycyBvbiB0aG9zZSBwbGF0Zm9ybXMsIHNvIHRoaXMgaXMg T0suDQo+IA0KPiA+IMKgI2RlZmluZSBGQkNfQ09NTUFORAkJMHgwMzIwYw0KPiA+IMKgI2RlZmlu ZcKgwqDCoEZCQ19DTURfQ09NUFJFU1MJKDE8PDApDQo+ID4gwqAjZGVmaW5lIEZCQ19TVEFUVVMJ CTB4MDMyMTANCj4gPiBAQCAtMjA2NCw2ICsyMDY1LDcgQEAgZW51bSBza2xfZGlzcF9wb3dlcl93 ZWxscyB7DQo+ID4gwqAjZGVmaW5lwqDCoMKgRFBGQ19DVExfTElNSVRfMVgJKDA8PDYpDQo+ID4g wqAjZGVmaW5lwqDCoMKgRFBGQ19DVExfTElNSVRfMlgJKDE8PDYpDQo+ID4gwqAjZGVmaW5lwqDC oMKgRFBGQ19DVExfTElNSVRfNFgJKDI8PDYpDQo+ID4gKyNkZWZpbmXCoMKgwqBEUEZDX0NUTF9G RU5DRV9NQVNLCTB4Rg0KPiA+IMKgI2RlZmluZSBEUEZDX1JFQ09NUF9DVEwJCTB4MzIwYw0KPiA+ IMKgI2RlZmluZcKgwqDCoERQRkNfUkVDT01QX1NUQUxMX0VOCSgxPDwyNykNCj4gPiDCoCNkZWZp bmXCoMKgwqBEUEZDX1JFQ09NUF9TVEFMTF9XTV9TSElGVCAoMTYpDQo+ID4gQEAgLTIwODYsNiAr MjA4OCw3IEBAIGVudW0gc2tsX2Rpc3BfcG93ZXJfd2VsbHMgew0KPiA+IMKgI2RlZmluZcKgwqDC oEZCQ19DVExfRkFMU0VfQ09MT1IJKDE8PDEwKQ0KPiA+IMKgLyogVGhlIGJpdCAyOC04IGlzIHJl c2VydmVkICovDQo+ID4gwqAjZGVmaW5lwqDCoMKgRFBGQ19SRVNFUlZFRAkJKDB4MUZGRkZGMDAp DQo+ID4gKyNkZWZpbmXCoMKgwqBJTEtfRFBGQ19GRU5DRV9NQVNLCTB4Rg0KPiA+IMKgI2RlZmlu ZSBJTEtfRFBGQ19SRUNPTVBfQ1RMCTB4NDMyMGMNCj4gPiDCoCNkZWZpbmUgSUxLX0RQRkNfU1RB VFVTCQkweDQzMjEwDQo+ID4gwqAjZGVmaW5lIElMS19EUEZDX0ZFTkNFX1lPRkYJMHg0MzIxOA0K PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMNCj4g PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYw0KPiA+IGluZGV4IGJjMTkw N2UuLmQ5Mzc4YzMgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jDQo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j DQo+ID4gQEAgLTExNTAyLDcgKzExNTAyLDYgQEAgc3RhdGljIGludCBpbnRlbF9jcnRjX3BhZ2Vf ZmxpcChzdHJ1Y3QNCj4gPiBkcm1fY3J0YyAqY3J0YywNCj4gPiDCoAkJCcKgwqB0b19pbnRlbF9w bGFuZShwcmltYXJ5KS0NCj4gPiA+ZnJvbnRidWZmZXJfYml0KTsNCj4gPiDCoAltdXRleF91bmxv Y2soJmRldi0+c3RydWN0X211dGV4KTsNCj4gPiDCoA0KPiA+IC0JaW50ZWxfZmJjX2Rpc2FibGVf Y3J0YyhpbnRlbF9jcnRjKTsNCj4gPiDCoAlpbnRlbF9mcm9udGJ1ZmZlcl9mbGlwX3ByZXBhcmUo ZGV2LA0KPiA+IMKgCQkJCcKgwqDCoMKgwqDCoMKgdG9faW50ZWxfcGxhbmUocHJpbWFyeSktDQo+ ID4gPmZyb250YnVmZmVyX2JpdCk7DQo+ID4gwqANCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgNCj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oDQo+ID4gaW5kZXggMDg4NDdkMC4uOTA2NWE4ZiAxMDA2NDQNCj4gPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaA0KPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rydi5oDQo+ID4gQEAgLTEzMDUsNiArMTMwNSw4IEBAIHZvaWQgaW50ZWxfZmJj X2ludmFsaWRhdGUoc3RydWN0DQo+ID4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsDQo+ID4g wqAJCQnCoMKgZW51bSBmYl9vcF9vcmlnaW4gb3JpZ2luKTsNCj4gPiDCoHZvaWQgaW50ZWxfZmJj X2ZsdXNoKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwNCj4gPiDCoAkJwqDCoMKg wqDCoHVuc2lnbmVkIGludCBmcm9udGJ1ZmZlcl9iaXRzLCBlbnVtDQo+ID4gZmJfb3Bfb3JpZ2lu IG9yaWdpbik7DQo+ID4gK3ZvaWQgaW50ZWxfZmJjX2ZsaXBfcHJlcGFyZShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsDQo+ID4gKwkJCcKgwqDCoMKgdW5zaWduZWQgaW50IGZyb250 YnVmZmVyX2JpdHMpOw0KPiA+IMKgdm9pZCBpbnRlbF9mYmNfY2xlYW51cF9jZmIoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsNCj4gPiDCoA0KPiA+IMKgLyogaW50ZWxfaGRtaS5j ICovDQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiYy5jDQo+ ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYw0KPiA+IGluZGV4IGQ5ZDdlNTQu LjYyZjE1OGIgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJj LmMNCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYw0KPiA+IEBAIC04 Miw2ICs4MiwyMiBAQCBzdGF0aWMgdm9pZCBpOHh4X2ZiY19kaXNhYmxlKHN0cnVjdA0KPiA+IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQ0KPiA+IMKgCURSTV9ERUJVR19LTVMoImRpc2FibGVk IEZCQ1xuIik7DQo+ID4gwqB9DQo+ID4gwqANCj4gPiArc3RhdGljIHZvaWQgaTh4eF9mYmNfZmxp cF9wcmVwYXJlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlDQo+ID4gKmRldl9wcml2KQ0KPiA+ICt7 DQo+ID4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IGRldl9wcml2LT5mYmMuY3J0YzsNCj4g PiArCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gY3J0Yy0+YmFzZS5wcmltYXJ5LT5mYjsN Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSBpbnRlbF9mYl9vYmooZmIp Ow0KPiA+ICsJdWludDMyX3QgdmFsOw0KPiA+ICsNCj4gPiArCS8qIEFsdGhvdWdoIHRoZSBkb2N1 bWVudGF0aW9uIHN1Z2dlc3RzIHdlIGNhbid0IGNoYW5nZQ0KPiA+IERQRkNfQ09OVFJPTA0KPiA+ ICsJwqAqIHdoaWxlIGNvbXByZXNzaW9uIGlzIGVuYWJsZWQsIHRoZSBoYXJkd2FyZSBndXlzIHNh aWQNCj4gPiB0aGF0IHVwZGF0aW5nDQo+ID4gKwnCoCogdGhlIGZlbmNlIHJlZ2lzdGVyIGJpdHMg ZHVyaW5nIGEgZmxpcCBpcyBmaW5lLiAqLw0KPiA+ICsJdmFsID0gSTkxNV9SRUFEKEZCQ19DT05U Uk9MKTsNCj4gPiArCXZhbCAmPSB+RkJDX0NUTF9GRU5DRU5PX01BU0s7DQo+ID4gKwl2YWwgfD0g b2JqLT5mZW5jZV9yZWc7DQo+ID4gKwlJOTE1X1dSSVRFKEZCQ19DT05UUk9MLCB2YWwpOw0KPiA+ ICt9DQo+IA0KPiBJSVJDIEkganVzdCBjYWxsZWQgdGhlIGVuYWJsZSBmdW5jdGlvbiB0byByZWNv bnN0cnVjdCB0aGUgZW50aXJlDQo+IHJlZ2lzdGVyIGNvbnRlbnRzIHRvIGF2b2lkIGNvZGUgZHVw bGljYXRpb24uIEJ1dCBtYXliZSB0aGF0J3Mgbm90DQo+IHBvc3NpYmxlIHdpdGhvdXQgcmVvd3Jr aW5nIHRoZSBmYmMgc3RhdGUgaGFuZGxpbmcgZW50aXJlbHkNCj4gKHdoaWNoIEkgaGFkIGRvbmUp Lg0KPiA+ICsNCj4gPiDCoHN0YXRpYyB2b2lkIGk4eHhfZmJjX2VuYWJsZShzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YykNCj4gPiDCoHsNCj4gPiDCoAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSBjcnRjLT5iYXNlLmRldi0NCj4gPiA+ZGV2X3ByaXZhdGU7DQo+ID4gQEAgLTE2MSw2 ICsxNzcsMjIgQEAgc3RhdGljIHZvaWQgZzR4X2ZiY19lbmFibGUoc3RydWN0IGludGVsX2NydGMN Cj4gPiAqY3J0YykNCj4gPiDCoAlEUk1fREVCVUdfS01TKCJlbmFibGVkIGZiYyBvbiBwbGFuZSAl Y1xuIiwNCj4gPiBwbGFuZV9uYW1lKGNydGMtPnBsYW5lKSk7DQo+ID4gwqB9DQo+ID4gwqANCj4g PiArc3RhdGljIHZvaWQgZzR4X2ZiY19mbGlwX3ByZXBhcmUoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUNCj4gPiAqZGV2X3ByaXYpDQo+ID4gK3sNCj4gPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRj ID0gZGV2X3ByaXYtPmZiYy5jcnRjOw0KPiA+ICsJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIg PSBjcnRjLT5iYXNlLnByaW1hcnktPmZiOw0KPiA+ICsJc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKm9iaiA9IGludGVsX2ZiX29iaihmYik7DQo+ID4gKwl1aW50MzJfdCB2YWw7DQo+ID4gKw0K PiA+ICsJLyogQWx0aG91Z2ggdGhlIGRvY3VtZW50YXRpb24gc3VnZ2VzdHMgd2UgY2FuJ3QgY2hh bmdlDQo+ID4gRFBGQ19DT05UUk9MDQo+ID4gKwnCoCogd2hpbGUgY29tcHJlc3Npb24gaXMgZW5h YmxlZCwgdGhlIGhhcmR3YXJlIGd1eXMgc2FpZA0KPiA+IHRoYXQgdXBkYXRpbmcNCj4gPiArCcKg KiB0aGUgZmVuY2UgcmVnaXN0ZXIgYml0cyBkdXJpbmcgYSBmbGlwIGlzIGZpbmUuICovDQo+ID4g Kwl2YWwgPSBJOTE1X1JFQUQoRFBGQ19DT05UUk9MKTsNCj4gPiArCXZhbCAmPSB+RFBGQ19DVExf RkVOQ0VfTUFTSzsNCj4gPiArCXZhbCB8PSBvYmotPmZlbmNlX3JlZzsNCj4gPiArCUk5MTVfV1JJ VEUoRFBGQ19DT05UUk9MLCB2YWwpOw0KPiA+ICt9DQo+ID4gKw0KPiA+IMKgc3RhdGljIHZvaWQg ZzR4X2ZiY19kaXNhYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikNCj4gPiDC oHsNCj4gPiDCoAl1MzIgZHBmY19jdGw7DQo+ID4gQEAgLTIzNiw2ICsyNjgsMzEgQEAgc3RhdGlj IHZvaWQgaWxrX2ZiY19lbmFibGUoc3RydWN0IGludGVsX2NydGMNCj4gPiAqY3J0YykNCj4gPiDC oAlEUk1fREVCVUdfS01TKCJlbmFibGVkIGZiYyBvbiBwbGFuZSAlY1xuIiwNCj4gPiBwbGFuZV9u YW1lKGNydGMtPnBsYW5lKSk7DQo+ID4gwqB9DQo+ID4gwqANCj4gPiArc3RhdGljIHZvaWQgaWxr X2ZiY19mbGlwX3ByZXBhcmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUNCj4gPiAqZGV2X3ByaXYp DQo+ID4gK3sNCj4gPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gZGV2X3ByaXYtPmZiYy5j cnRjOw0KPiA+ICsJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBjcnRjLT5iYXNlLnByaW1h cnktPmZiOw0KPiA+ICsJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IGludGVsX2Zi X29iaihmYik7DQo+ID4gKwl1aW50MzJfdCB2YWw7DQo+ID4gKw0KPiA+ICsJLyogQWx0aG91Z2gg dGhlIGRvY3VtZW50YXRpb24gc3VnZ2VzdHMgd2UgY2FuJ3QgY2hhbmdlDQo+ID4gRFBGQ19DT05U Uk9MDQo+ID4gKwnCoCogd2hpbGUgY29tcHJlc3Npb24gaXMgZW5hYmxlZCwgdGhlIGhhcmR3YXJl IGd1eXMgc2FpZA0KPiA+IHRoYXQgdXBkYXRpbmcNCj4gPiArCcKgKiB0aGUgZmVuY2UgcmVnaXN0 ZXIgYml0cyBkdXJpbmcgYSBmbGlwIGlzIGZpbmUuICovDQo+ID4gKwl2YWwgPSBJOTE1X1JFQUQo SUxLX0RQRkNfQ09OVFJPTCk7DQo+ID4gKwl2YWwgJj0gfklMS19EUEZDX0ZFTkNFX01BU0s7DQo+ ID4gKwl2YWwgfD0gb2JqLT5mZW5jZV9yZWc7DQo+ID4gKwlJOTE1X1dSSVRFKElMS19EUEZDX0NP TlRST0wsIHZhbCk7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyB2b2lkIHNuYl9mYmNfZmxp cF9wcmVwYXJlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlDQo+ID4gKmRldl9wcml2KQ0KPiA+ICt7 DQo+ID4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IGRldl9wcml2LT5mYmMuY3J0YzsNCj4g PiArCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gY3J0Yy0+YmFzZS5wcmltYXJ5LT5mYjsN Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSBpbnRlbF9mYl9vYmooZmIp Ow0KPiA+ICsNCj4gPiArCUk5MTVfV1JJVEUoU05CX0RQRkNfQ1RMX1NBLCBTTkJfQ1BVX0ZFTkNF X0VOQUJMRSB8IG9iai0NCj4gPiA+ZmVuY2VfcmVnKTsNCj4gPiArfQ0KPiA+ICsNCj4gPiDCoHN0 YXRpYyB2b2lkIGlsa19mYmNfZGlzYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpDQo+ID4gwqB7DQo+ID4gwqAJdTMyIGRwZmNfY3RsOw0KPiA+IEBAIC0xMDIxLDEzICsxMDc4 LDQ4IEBAIHZvaWQgaW50ZWxfZmJjX2ZsdXNoKHN0cnVjdA0KPiA+IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LA0KPiA+IMKgCWlmIChvcmlnaW4gPT0gT1JJR0lOX0dUVCkNCj4gPiDCoAkJcmV0 dXJuOw0KPiA+IMKgDQo+ID4gKwkvKiBIYXJkd2FyZSB0cmFja2luZyBhbHJlYWR5IHJlY29tcHJl c3NlcyB0aGUgQ0ZCIChudWtlKQ0KPiA+IGZvciB1cyBpZiBGQkMNCj4gPiArCcKgKiBpcyBlbmFi bGVkIGFuZCB3ZSBkbyBhIHBhZ2UgZmxpcCwgc28gd2UgY2FuIHNhZmVseQ0KPiA+IGlnbm9yZSBp dCBoZXJlLg0KPiA+ICsJwqAqIEZCQyBtYXkgYmUgZGlzYWJsZWQgaW4gY2FzZSB3ZSBnb3QgYW4g aW52YWxpZGF0ZSgpDQo+ID4gYmVmb3JlIHRoZQ0KPiA+ICsJwqAqIGZsdXNoKCksIHNvIHdlJ2xs IHN0aWxsIGhhdmUgdG8gY2hlY2sgdGhhdCBjYXNlIGJlbG93Lg0KPiA+ICovDQo+ID4gKwlpZiAo b3JpZ2luID09IE9SSUdJTl9GTElQICYmIGRldl9wcml2LT5mYmMuZW5hYmxlZCkNCj4gPiArCQly ZXR1cm47DQo+ID4gKw0KPiA+IMKgCW11dGV4X2xvY2soJmRldl9wcml2LT5mYmMubG9jayk7DQo+ ID4gwqANCj4gPiDCoAlkZXZfcHJpdi0+ZmJjLmJ1c3lfYml0cyAmPSB+ZnJvbnRidWZmZXJfYml0 czsNCj4gPiDCoA0KPiA+IMKgCWlmICghZGV2X3ByaXYtPmZiYy5idXN5X2JpdHMpIHsNCj4gPiAt CQlfX2ludGVsX2ZiY19kaXNhYmxlKGRldl9wcml2KTsNCj4gPiAtCQlfX2ludGVsX2ZiY191cGRh dGUoZGV2X3ByaXYpOw0KPiA+ICsJCWlmIChvcmlnaW4gPT0gT1JJR0lOX0ZMSVApIHsNCj4gPiAr CQkJX19pbnRlbF9mYmNfdXBkYXRlKGRldl9wcml2KTsNCj4gPiArCQl9IGVsc2Ugew0KPiA+ICsJ CQlfX2ludGVsX2ZiY19kaXNhYmxlKGRldl9wcml2KTsNCj4gPiArCQkJX19pbnRlbF9mYmNfdXBk YXRlKGRldl9wcml2KTsNCj4gPiArCQl9DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJbXV0ZXhfdW5s b2NrKCZkZXZfcHJpdi0+ZmJjLmxvY2spOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICt2b2lkIGludGVs X2ZiY19mbGlwX3ByZXBhcmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LA0KPiA+ ICsJCQnCoMKgwqDCoHVuc2lnbmVkIGludCBmcm9udGJ1ZmZlcl9iaXRzKQ0KPiA+ICt7DQo+ID4g Kwl1bnNpZ25lZCBpbnQgZmJjX2JpdHM7DQo+ID4gKw0KPiA+ICsJaWYgKCFmYmNfc3VwcG9ydGVk KGRldl9wcml2KSkNCj4gPiArCQlyZXR1cm47DQo+ID4gKw0KPiA+ICsJbXV0ZXhfbG9jaygmZGV2 X3ByaXYtPmZiYy5sb2NrKTsNCj4gPiArDQo+ID4gKwlpZiAoZGV2X3ByaXYtPmZiYy5lbmFibGVk KSB7DQo+ID4gKwkJZmJjX2JpdHMgPSBJTlRFTF9GUk9OVEJVRkZFUl9QUklNQVJZKGRldl9wcml2 LQ0KPiA+ID5mYmMuY3J0Yy0+cGlwZSk7DQo+IA0KPiBwcmltYXJ5LT5mcm9udGJ1ZmZlcl9iaXQg d291bGQgc2VlbSBiZXR0ZXIuDQoNCldoeT8NCg0KPiANCj4gPiArCQlpZiAoZmJjX2JpdHMgJiBm cm9udGJ1ZmZlcl9iaXRzKQ0KPiA+ICsJCQlkZXZfcHJpdi0+ZmJjLmZsaXBfcHJlcGFyZShkZXZf cHJpdik7DQo+IA0KPiBZb3Ugd291bGQgc3RpbGwgaGF2ZSB0byBkaXNhYmxlK3JlZW5hYmxlIGlm IHlvdSBuZWVkIHRvIGVnLg0KPiByZWFsbG9jYXRlDQo+IHRoZSBjb21wcmVzc2VkIGJ1ZmZlciwg b2YgaWYgdGhlIG5ldyBmYiBpc24ndCBzdWl0YWJsZSBmb3IgZmJjLCBvcg0KPiBtYXliZQ0KPiBp ZiB5b3UgbmVlZCB0byBjaGFuZ2UgYW55dGhpbmcgZWxzZSBpbiB0aGUgY29udHJvbCByZWdpc3Rl ci4NCg0KWWVzLCBidXQgYXMgZmFyIGFzIEkgdW5kZXJzdGFuZCB0aGUgZnJvbnRidWZmZXIgdHJh Y2tpbmcsIHRoaXMgY2FzZQ0Kd29uJ3QgaGFwcGVuIGhlcmUuIEknbSBhc3N1bWluZyB3ZSdsbCBh bHdheXMgZ28gdGhyb3VnaA0KaW50ZWxfZmJjX3VwZGF0ZSgpIG9uIHRoZXNlIGNhc2VzLg0KDQo+ IA0KPiBXaGF0IEkgaGFkIHdhczoNCj4gIg0KPiBzdGF0aWMgYm9vbCBpbnRlbF9mYmNfbmVlZF9y ZWluaXQoc3RydWN0IGludGVsX2NydGMgKmNydGMpDQo+IHsNCj4gCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IGNydGMtPmJhc2UuZGV2LQ0KPiA+ZGV2X3ByaXZhdGU7DQo+IAlz dHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IGNydGMtPmJhc2UucHJpbWFyeS0+ZmI7DQo+IAlz dHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gdG9faW50ZWxfZnJhbWVidWZmZXIoZmIp LQ0KPiA+b2JqOw0KPiANCj4gCXJldHVybiBjcnRjICE9IGRldl9wcml2LT5mYmMuY3J0YyB8fA0K PiAJwqDCoMKgwqDCoMKgwqBvYmotPmJhc2Uuc2l6ZSA+IGRldl9wcml2LT5mYmMuc2l6ZSB8fA0K PiAJwqDCoMKgwqDCoMKgwqBkcm1fZm9ybWF0X3BsYW5lX2NwcChmYi0+cGl4ZWxfZm9ybWF0LCAw KSAhPQ0KPiAJwqDCoMKgwqDCoMKgwqBkcm1fZm9ybWF0X3BsYW5lX2NwcChkZXZfcHJpdi0+ZmJj LnBpeGVsX2Zvcm1hdCwgMCkgfHwNCj4gCcKgwqDCoMKgwqDCoMKgZmItPnBpdGNoZXNbMF0gIT0g ZGV2X3ByaXYtPmZiYy5waXRjaDsNCj4gfQ0KPiBpbnRlbF9mYmNfcHJlX3BhZ2VfZmxpcCgpDQo+ IHsNCj4gCS4uLg0KPiAJaW50ZWxfZmJjX3VwZGF0ZV9wZW5kaW5nX3Njb3JlKGNydGMpOw0KPiAN Cj4gCS8qDQo+IAkgKiBJZiBmYmMgd2FzIGFscmVhZHkgcG9zc2libGUgd2UgY2FuIHVwZGF0ZSBp bW1lZGlhdGVseSwNCj4gCSAqIG90aGVyd2lzZSB3ZSB3aWxsIHdhaXQgdW50aWwgdGhlIGZsaXAg aXMgZmluaXNoZWQuDQo+IAkgKi8NCj4gCWlmIChjcnRjLT5mYmMuc2NvcmUgIT0gMCkNCj4gCQlj cnRjLT5mYmMuc2NvcmUgPSBjcnRjLT5mYmMucGVuZGluZ19zY29yZTsNCj4gDQo+IAkvKg0KPiAJ ICogRGlzYWJsZSBmYmMgaWYgd2UncmUgbm90ICh5ZXQpIGNhcGFibGUsIG9yIGlmDQo+IAkgKiB3 ZSBqdXN0IG5lZWQgYSBmdWxsIGRpc2FibGUrZW5hYmxlIHJlaW5pdC4NCj4gCSAqLw0KPiAJaWYg KGNydGMtPmZiYy5zY29yZSA9PSAwIHx8IGludGVsX2ZiY19uZWVkX3JlaW5pdChjcnRjKSkNCj4g CQlfX2ludGVsX2ZiY19kaXNhYmxlKGNydGMpOw0KPiAJLi4uDQo+IH0NCj4gIg0KPiANCj4gPiAr CX0gZWxzZSBpZiAoZGV2X3ByaXYtPmZiYy5mYmNfd29yaykgew0KPiA+ICsJCWZiY19iaXRzID0g SU5URUxfRlJPTlRCVUZGRVJfUFJJTUFSWSgNCj4gPiArCQkJCWRldl9wcml2LT5mYmMuZmJjX3dv cmstPmNydGMtDQo+ID4gPnBpcGUpOw0KPiA+ICsJCWlmIChmYmNfYml0cyAmIGZyb250YnVmZmVy X2JpdHMpDQo+ID4gKwkJCV9faW50ZWxfZmJjX2Rpc2FibGUoZGV2X3ByaXYpOw0KPiA+IMKgCX0N Cj4gPiDCoA0KPiA+IMKgCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmZiYy5sb2NrKTsNCj4gPiBA QCAtMTA2MywxOCArMTE1NSwyNSBAQCB2b2lkIGludGVsX2ZiY19pbml0KHN0cnVjdCBkcm1faTkx NV9wcml2YXRlDQo+ID4gKmRldl9wcml2KQ0KPiA+IMKgCQlkZXZfcHJpdi0+ZmJjLmZiY19lbmFi bGVkID0gaWxrX2ZiY19lbmFibGVkOw0KPiA+IMKgCQlkZXZfcHJpdi0+ZmJjLmVuYWJsZV9mYmMg PSBnZW43X2ZiY19lbmFibGU7DQo+ID4gwqAJCWRldl9wcml2LT5mYmMuZGlzYWJsZV9mYmMgPSBp bGtfZmJjX2Rpc2FibGU7DQo+ID4gKwkJZGV2X3ByaXYtPmZiYy5mbGlwX3ByZXBhcmUgPSBzbmJf ZmJjX2ZsaXBfcHJlcGFyZTsNCj4gPiDCoAl9IGVsc2UgaWYgKElOVEVMX0lORk8oZGV2X3ByaXYp LT5nZW4gPj0gNSkgew0KPiA+IMKgCQlkZXZfcHJpdi0+ZmJjLmZiY19lbmFibGVkID0gaWxrX2Zi Y19lbmFibGVkOw0KPiA+IMKgCQlkZXZfcHJpdi0+ZmJjLmVuYWJsZV9mYmMgPSBpbGtfZmJjX2Vu YWJsZTsNCj4gPiDCoAkJZGV2X3ByaXYtPmZiYy5kaXNhYmxlX2ZiYyA9IGlsa19mYmNfZGlzYWJs ZTsNCj4gPiArCQlpZiAoSU5URUxfSU5GTyhkZXZfcHJpdiktPmdlbiA9PSA1KQ0KPiA+ICsJCQlk ZXZfcHJpdi0+ZmJjLmZsaXBfcHJlcGFyZSA9DQo+ID4gaWxrX2ZiY19mbGlwX3ByZXBhcmU7DQo+ ID4gKwkJZWxzZQ0KPiA+ICsJCQlkZXZfcHJpdi0+ZmJjLmZsaXBfcHJlcGFyZSA9DQo+ID4gc25i X2ZiY19mbGlwX3ByZXBhcmU7DQo+ID4gwqAJfSBlbHNlIGlmIChJU19HTTQ1KGRldl9wcml2KSkg ew0KPiA+IMKgCQlkZXZfcHJpdi0+ZmJjLmZiY19lbmFibGVkID0gZzR4X2ZiY19lbmFibGVkOw0K PiA+IMKgCQlkZXZfcHJpdi0+ZmJjLmVuYWJsZV9mYmMgPSBnNHhfZmJjX2VuYWJsZTsNCj4gPiDC oAkJZGV2X3ByaXYtPmZiYy5kaXNhYmxlX2ZiYyA9IGc0eF9mYmNfZGlzYWJsZTsNCj4gPiArCQlk ZXZfcHJpdi0+ZmJjLmZsaXBfcHJlcGFyZSA9IGc0eF9mYmNfZmxpcF9wcmVwYXJlOw0KPiA+IMKg CX0gZWxzZSB7DQo+ID4gwqAJCWRldl9wcml2LT5mYmMuZmJjX2VuYWJsZWQgPSBpOHh4X2ZiY19l bmFibGVkOw0KPiA+IMKgCQlkZXZfcHJpdi0+ZmJjLmVuYWJsZV9mYmMgPSBpOHh4X2ZiY19lbmFi bGU7DQo+ID4gwqAJCWRldl9wcml2LT5mYmMuZGlzYWJsZV9mYmMgPSBpOHh4X2ZiY19kaXNhYmxl Ow0KPiA+ICsJCWRldl9wcml2LT5mYmMuZmxpcF9wcmVwYXJlID0NCj4gPiBpOHh4X2ZiY19mbGlw X3ByZXBhcmU7DQo+ID4gwqANCj4gPiDCoAkJLyogVGhpcyB2YWx1ZSB3YXMgcHVsbGVkIG91dCBv ZiBzb21lb25lJ3MgaGF0ICovDQo+ID4gwqAJCUk5MTVfV1JJVEUoRkJDX0NPTlRST0wsIDUwMCA8 PA0KPiA+IEZCQ19DVExfSU5URVJWQUxfU0hJRlQpOw0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9mcm9udGJ1ZmZlci5jDQo+ID4gYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9mcm9udGJ1ZmZlci5jDQo+ID4gaW5kZXggYWM4NTM1Ny4uMzFhMWFkMyAxMDA2 NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mcm9udGJ1ZmZlci5jDQo+ ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZnJvbnRidWZmZXIuYw0KPiA+IEBA IC0xOTIsNiArMTkyLDcgQEAgdm9pZCBpbnRlbF9mcm9udGJ1ZmZlcl9mbGlwX3ByZXBhcmUoc3Ry dWN0DQo+ID4gZHJtX2RldmljZSAqZGV2LA0KPiA+IMKgCW11dGV4X3VubG9jaygmZGV2X3ByaXYt PmZiX3RyYWNraW5nLmxvY2spOw0KPiA+IMKgDQo+ID4gwqAJaW50ZWxfcHNyX3NpbmdsZV9mcmFt ZV91cGRhdGUoZGV2LCBmcm9udGJ1ZmZlcl9iaXRzKTsNCj4gPiArCWludGVsX2ZiY19mbGlwX3By ZXBhcmUoZGV2X3ByaXYsIGZyb250YnVmZmVyX2JpdHMpOw0KPiA+IMKgfQ0KPiA+IMKgDQo+ID4g wqAvKioNCj4gPiAtLSANCj4gPiAyLjYuMQ0KPiA+IA0KPiA+IF9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+ID4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdA0K PiA+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcNCj4gPiBodHRwOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4DQo+IApfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=