From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 02/18] drm/i915: don't stop+start FBC at every flip Date: Wed, 21 Oct 2015 10:12:50 +0300 Message-ID: <20151021071250.GS26517@intel.com> References: <1445349004-16409-1-git-send-email-paulo.r.zanoni@intel.com> <1445349004-16409-3-git-send-email-paulo.r.zanoni@intel.com> <20151021070439.GJ13786@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 408896ED23 for ; Wed, 21 Oct 2015 00:12:54 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20151021070439.GJ13786@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBPY3QgMjEsIDIwMTUgYXQgMDk6MDQ6MzlBTSArMDIwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBUdWUsIE9jdCAyMCwgMjAxNSBhdCAxMTo0OTo0OEFNIC0wMjAwLCBQYXVsbyBa YW5vbmkgd3JvdGU6Cj4gPiBUaGUgaGFyZHdhcmUgYWxyZWFkeSB0YWtlcyBjYXJlIG9mIGRpc2Fi bGluZyBhbmQgcmVjb21wcmVzc2luZyBGQkMKPiA+IHdoZW4gd2UgZG8gYSBwYWdlIGZsaXAsIHNv IGFsbCB3ZSBuZWVkIHRvIGRvIGlzIHRvIHVwZGF0ZSB0aGUgZmVuY2UKPiA+IHJlZ2lzdGVycyBh bmQgbW92ZSBvbi4KPiA+IAo+ID4gT25lIG9mIHRoZSBpbXBvcnRhbnQgdGhpbmdzIHRvIG5vdGlj ZSBpcyB0aGF0IG9uIHRoZSBwcmUtZ2VuNgo+ID4gcGxhdGZvcm1zIHRoZSBmZW5jZSBpcyBwcm9n cmFtbWVkIG9uIHRoZSBGQkMgY29udHJvbCByZWdpc3RlciBhbmQgdGhlCj4gPiBkb2N1bWVudGF0 aW9uIHNheXMgd2UgY2FuJ3QgdXBkYXRlIHRoZSBjb250cm9sIHJlZ2lzdGVyIHdoaWxlIEZCQyBp cwo+ID4gZW5hYmxlZC4gVGhpcyB3b3VsZCBiYXNpY2FsbHkgbWVhbiB3ZSdkIGhhdmUgdG8gdG8g ZGlzYWJsZStlbmFibGUgRkJDCj4gPiBhdCBldmVyeSBmbGlwIGluIG9yZGVyIHRvIG1ha2Ugc3Vy ZSB0aGUgaGFyZHdhcmUgdHJhY2tpbmcgc3RpbGwgd29ya3MsCj4gPiB3aGljaCBkb2Vzbid0IHNl ZW0gdG8gbWFrZSB0b28gbXVjaCBzZW5zZS4gU28gSSBzZW50IGFuIGVtYWlsIHRvIHRoZQo+ID4g aGFyZHdhcmUgdGVhbSByZXF1ZXN0aW5nIHNvbWUgY2xhcmlmaWNhdGlvbi4gVGhlIGluZm9ybWF0 aW9uIEkgZ290IHdhcwo+ID4gdGhpczoKPiA+IAo+ID4gIkkgZG9uJ3QgdGhpbmsgYW55IGhhcmR3 YXJlIGlzIGxhdGNoaW5nIG9uIHRvIDB4MTAwMTAwLCAweDEwMDEwNCwgb3IKPiA+IHRoZSBvbGQg ZmVuY2UgbnVtYmVyIGluIEZCQ19DVEwuIEluc3RydWN0aW9ucyBhZ2FpbnN0IGNoYW5naW5nIG9u IHRoZQo+ID4gZmx5IHdvdWxkIGJlIHRvIHNpbXBsaWZ5IHRlc3RpbmcgYW5kIGVuc3VyZSB5b3Ug ZG9uJ3QgbWlzcyBhbnkKPiA+IGludmFsaWRhdGlvbiB0aGF0IGhhcHBlbmVkIHJpZ2h0IGF0IHRo YXQgdGltZS4iCj4gPiAKPiA+IFNvIEkgZ3Vlc3Mgd2UncmUgZmluZSBmb3IgZmxpcHMuIEJ1dCBJ IGNhbid0IHJlYWxseSBzYXkgSSB0ZXN0ZWQgRkJDCj4gPiBvbiB0aGVzZSBhbmNpZW50IHBsYXRm b3JtcyAtIG5vciB0aGF0IEknbGwgZXZlciBwcm9wb3NlIGVuYWJsaW5nIEZCQwo+ID4gYnkgZGVm YXVsdCBvbiB0aGVtIGV4YWN0bHkgYmVjYXVzZSBvZiBwcm9ibGVtcyBsaWtlIHRoZXNlLgo+ID4g Cj4gPiBUZXN0Y2FzZTogaWd0L2ttc19mcm9udGJ1ZmZlcl90cmFja2luZy9mYmMqLWZsaXB0cmFj awo+ID4gU2lnbmVkLW9mZi1ieTogUGF1bG8gWmFub25pIDxwYXVsby5yLnphbm9uaUBpbnRlbC5j b20+Cj4gCj4gSWlyYyBvbiBwcmUtZzR4IGZsaXBzIGRvbid0IGludmFsaWRhdGUgdGhlIGZiYyBj b21wcmVzc2lvbiwgYW5kIHdlIGRvCj4gYWN0dWFsbHkgaGF2ZSB0byBkaXNhYmxlIGZiYyBlbnRp cmVseS4KCk5vcGUuIEF0IGxlYXN0IG15IGdlbjIgd2FzIGRvaW5nIGZpbmUgd2l0aCBodyBmbGlw IG51a2UgPjEgeWVhciBhZ28uCgo+IFRoZXJlJ3Mgc29tZSBmdW5reSBsYW5ndWFnZSB0aGF0IGlm Cj4geW91IHdhbnQgdG8gZmxpcCB3aXRoIGZiYyB5b3UgaGF2ZSB0byB0cmFjayB0aGUgbmV3IGJh Y2tidWZmZXIuCj4gCj4gU28gSSdtIG5vdCBlbnRpcmVseSBzdXJlIHRoaXMgaXMgY29ycmVjdCBm b3IgdGhlIGk4eCBjYXNlLiBPdG9oIHdlIGRvbid0Cj4gZXZlciBlbmFibGUgaXQsIHNvIHdlIGNv dWxkIGFsc28ganVzdCBudWtlIHRoZSBpOHggZmJjIGNvZGUuIEVpdGhlciB3YXkgaXQKPiBkb2Vz bid0IG1hdHRlciB0byBtdWNoLgo+IAo+ID4gLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaCAgICAgICAgICB8ICAxICsKPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3JlZy5oICAgICAgICAgIHwgIDMgKwo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYyAgICAgfCAgMSAtCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2Lmgg ICAgICAgICB8ICAyICsKPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYyAgICAg ICAgIHwgOTggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KPiA+ICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9mcm9udGJ1ZmZlci5jIHwgIDEgKwo+ID4gIDYgZmlsZXMgY2hhbmdl ZCwgMTAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCj4gPiAKPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaAo+ID4gaW5kZXggYzMzNDUyNS4uZjA0ZjU2ZiAxMDA2NDQKPiA+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmgKPiA+IEBAIC05MzAsNiArOTMwLDcgQEAgc3RydWN0IGk5MTVfZmJjIHsK PiA+ICAJYm9vbCAoKmZiY19lbmFibGVkKShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpOwo+ID4gIAl2b2lkICgqZW5hYmxlX2ZiYykoc3RydWN0IGludGVsX2NydGMgKmNydGMpOwo+ ID4gIAl2b2lkICgqZGlzYWJsZV9mYmMpKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dik7Cj4gPiArCXZvaWQgKCpmbGlwX3ByZXBhcmUpKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdik7Cj4gPiAgfTsKPiA+ICAKPiA+ICAvKioKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcu aAo+ID4gaW5kZXggOWViZjAzMi4uMzYyMGI1OSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfcmVnLmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf cmVnLmgKPiA+IEBAIC0yMDI4LDYgKzIwMjgsNyBAQCBlbnVtIHNrbF9kaXNwX3Bvd2VyX3dlbGxz IHsKPiA+ICAjZGVmaW5lICAgRkJDX0NUTF9DM19JRExFCSgxPDwxMykKPiA+ICAjZGVmaW5lICAg RkJDX0NUTF9TVFJJREVfU0hJRlQJKDUpCj4gPiAgI2RlZmluZSAgIEZCQ19DVExfRkVOQ0VOT19T SElGVAkoMCkKPiA+ICsjZGVmaW5lICAgRkJDX0NUTF9GRU5DRU5PX01BU0sJMHhGCj4gPiAgI2Rl ZmluZSBGQkNfQ09NTUFORAkJMHgwMzIwYwo+ID4gICNkZWZpbmUgICBGQkNfQ01EX0NPTVBSRVNT CSgxPDwwKQo+ID4gICNkZWZpbmUgRkJDX1NUQVRVUwkJMHgwMzIxMAo+ID4gQEAgLTIwNjQsNiAr MjA2NSw3IEBAIGVudW0gc2tsX2Rpc3BfcG93ZXJfd2VsbHMgewo+ID4gICNkZWZpbmUgICBEUEZD X0NUTF9MSU1JVF8xWAkoMDw8NikKPiA+ICAjZGVmaW5lICAgRFBGQ19DVExfTElNSVRfMlgJKDE8 PDYpCj4gPiAgI2RlZmluZSAgIERQRkNfQ1RMX0xJTUlUXzRYCSgyPDw2KQo+ID4gKyNkZWZpbmUg ICBEUEZDX0NUTF9GRU5DRV9NQVNLCTB4Rgo+ID4gICNkZWZpbmUgRFBGQ19SRUNPTVBfQ1RMCQkw eDMyMGMKPiA+ICAjZGVmaW5lICAgRFBGQ19SRUNPTVBfU1RBTExfRU4JKDE8PDI3KQo+ID4gICNk ZWZpbmUgICBEUEZDX1JFQ09NUF9TVEFMTF9XTV9TSElGVCAoMTYpCj4gPiBAQCAtMjA4Niw2ICsy MDg4LDcgQEAgZW51bSBza2xfZGlzcF9wb3dlcl93ZWxscyB7Cj4gPiAgI2RlZmluZSAgIEZCQ19D VExfRkFMU0VfQ09MT1IJKDE8PDEwKQo+ID4gIC8qIFRoZSBiaXQgMjgtOCBpcyByZXNlcnZlZCAq Lwo+ID4gICNkZWZpbmUgICBEUEZDX1JFU0VSVkVECQkoMHgxRkZGRkYwMCkKPiA+ICsjZGVmaW5l ICAgSUxLX0RQRkNfRkVOQ0VfTUFTSwkweEYKPiA+ICAjZGVmaW5lIElMS19EUEZDX1JFQ09NUF9D VEwJMHg0MzIwYwo+ID4gICNkZWZpbmUgSUxLX0RQRkNfU1RBVFVTCQkweDQzMjEwCj4gPiAgI2Rl ZmluZSBJTEtfRFBGQ19GRU5DRV9ZT0ZGCTB4NDMyMTgKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kaXNwbGF5LmMKPiA+IGluZGV4IDFmYzFkMjQuLmU4M2E0MjggMTAwNjQ0Cj4gPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gQEAgLTExNDcwLDcgKzExNDcwLDYgQEAgc3Rh dGljIGludCBpbnRlbF9jcnRjX3BhZ2VfZmxpcChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gPiAg CQkJICB0b19pbnRlbF9wbGFuZShwcmltYXJ5KS0+ZnJvbnRidWZmZXJfYml0KTsKPiA+ICAJbXV0 ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Cj4gPiAgCj4gPiAtCWludGVsX2ZiY19kaXNh YmxlX2NydGMoaW50ZWxfY3J0Yyk7Cj4gPiAgCWludGVsX2Zyb250YnVmZmVyX2ZsaXBfcHJlcGFy ZShkZXYsCj4gPiAgCQkJCSAgICAgICB0b19pbnRlbF9wbGFuZShwcmltYXJ5KS0+ZnJvbnRidWZm ZXJfYml0KTsKPiA+ICAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiBpbmRleCBkYzU1 ZTRjLi4xZTA4YzhhIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiBAQCAt MTI4Nyw2ICsxMjg3LDggQEAgdm9pZCBpbnRlbF9mYmNfaW52YWxpZGF0ZShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiAgCQkJICBlbnVtIGZiX29wX29yaWdpbiBvcmlnaW4p Owo+ID4gIHZvaWQgaW50ZWxfZmJjX2ZsdXNoKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKPiA+ICAJCSAgICAgdW5zaWduZWQgaW50IGZyb250YnVmZmVyX2JpdHMsIGVudW0gZmJf b3Bfb3JpZ2luIG9yaWdpbik7Cj4gPiArdm9pZCBpbnRlbF9mYmNfZmxpcF9wcmVwYXJlKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ICsJCQkgICAgdW5zaWduZWQgaW50IGZy b250YnVmZmVyX2JpdHMpOwo+ID4gIHZvaWQgaW50ZWxfZmJjX2NsZWFudXBfY2ZiKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gPiAgCj4gPiAgLyogaW50ZWxfaGRtaS5jICov Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYwo+ID4gaW5kZXggZDlkN2U1NC4uOTQ3NzM3OSAx MDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiYy5jCj4gPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYwo+ID4gQEAgLTgyLDYgKzgyLDIyIEBA IHN0YXRpYyB2b2lkIGk4eHhfZmJjX2Rpc2FibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQo+ID4gIAlEUk1fREVCVUdfS01TKCJkaXNhYmxlZCBGQkNcbiIpOwo+ID4gIH0KPiA+ ICAKPiA+ICtzdGF0aWMgdm9pZCBpOHh4X2ZiY19mbGlwX3ByZXBhcmUoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQo+ID4gK3sKPiA+ICsJc3RydWN0IGludGVsX2NydGMgKmNydGMg PSBkZXZfcHJpdi0+ZmJjLmNydGM7Cj4gPiArCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0g Y3J0Yy0+YmFzZS5wcmltYXJ5LT5mYjsKPiA+ICsJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qg Km9iaiA9IGludGVsX2ZiX29iaihmYik7Cj4gPiArCXVpbnQzMl90IHZhbDsKPiA+ICsKPiA+ICsJ LyogQWx0aG91Z2ggdGhlIGRvY3VtZW50YXRpb24gc3VnZ2VzdHMgd2UgY2FuJ3QgY2hhbmdlIERQ RkNfQ09OVFJPTAo+ID4gKwkgKiB3aGlsZSBjb21wcmVzc2lvbiBpcyBlbmFibGVkLCB0aGUgaGFy ZHdhcmUgZ3V5cyBzYWlkIHRoYXQgdXBkYXRpbmcKPiA+ICsJICogdGhlIGZlbmNlIHJlZ2lzdGVy IGJpdHMgZHVyaW5nIGEgZmxpcCBpcyBmaW5lLiAqLwo+ID4gKwl2YWwgPSBJOTE1X1JFQUQoRkJD X0NPTlRST0wpOwo+ID4gKwl2YWwgJj0gfkZCQ19DVExfRkVOQ0VOT19NQVNLOwo+ID4gKwl2YWwg fD0gb2JqLT5mZW5jZV9yZWc7Cj4gPiArCUk5MTVfV1JJVEUoRkJDX0NPTlRST0wsIHZhbCk7Cj4g PiArfQo+ID4gKwo+ID4gIHN0YXRpYyB2b2lkIGk4eHhfZmJjX2VuYWJsZShzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YykKPiA+ICB7Cj4gPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IGNydGMtPmJhc2UuZGV2LT5kZXZfcHJpdmF0ZTsKPiA+IEBAIC0xNjEsNiArMTc3LDIyIEBA IHN0YXRpYyB2b2lkIGc0eF9mYmNfZW5hYmxlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQo+ID4g IAlEUk1fREVCVUdfS01TKCJlbmFibGVkIGZiYyBvbiBwbGFuZSAlY1xuIiwgcGxhbmVfbmFtZShj cnRjLT5wbGFuZSkpOwo+ID4gIH0KPiA+ICAKPiA+ICtzdGF0aWMgdm9pZCBnNHhfZmJjX2ZsaXBf cHJlcGFyZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gPiArewo+ID4gKwlz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IGRldl9wcml2LT5mYmMuY3J0YzsKPiA+ICsJc3RydWN0 IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBjcnRjLT5iYXNlLnByaW1hcnktPmZiOwo+ID4gKwlzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gaW50ZWxfZmJfb2JqKGZiKTsKPiA+ICsJdWlu dDMyX3QgdmFsOwo+ID4gKwo+ID4gKwkvKiBBbHRob3VnaCB0aGUgZG9jdW1lbnRhdGlvbiBzdWdn ZXN0cyB3ZSBjYW4ndCBjaGFuZ2UgRFBGQ19DT05UUk9MCj4gPiArCSAqIHdoaWxlIGNvbXByZXNz aW9uIGlzIGVuYWJsZWQsIHRoZSBoYXJkd2FyZSBndXlzIHNhaWQgdGhhdCB1cGRhdGluZwo+ID4g KwkgKiB0aGUgZmVuY2UgcmVnaXN0ZXIgYml0cyBkdXJpbmcgYSBmbGlwIGlzIGZpbmUuICovCj4g PiArCXZhbCA9IEk5MTVfUkVBRChEUEZDX0NPTlRST0wpOwo+ID4gKwl2YWwgJj0gfkRQRkNfQ1RM X0ZFTkNFX01BU0s7Cj4gPiArCXZhbCB8PSBvYmotPmZlbmNlX3JlZzsKPiA+ICsJSTkxNV9XUklU RShEUEZDX0NPTlRST0wsIHZhbCk7Cj4gPiArfQo+ID4gKwo+ID4gIHN0YXRpYyB2b2lkIGc0eF9m YmNfZGlzYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gPiAgewo+ID4g IAl1MzIgZHBmY19jdGw7Cj4gPiBAQCAtMjM2LDYgKzI2OCwzMSBAQCBzdGF0aWMgdm9pZCBpbGtf ZmJjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKPiA+ICAJRFJNX0RFQlVHX0tNUygi ZW5hYmxlZCBmYmMgb24gcGxhbmUgJWNcbiIsIHBsYW5lX25hbWUoY3J0Yy0+cGxhbmUpKTsKPiA+ ICB9Cj4gPiAgCj4gPiArc3RhdGljIHZvaWQgaWxrX2ZiY19mbGlwX3ByZXBhcmUoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ID4gK3sKPiA+ICsJc3RydWN0IGludGVsX2NydGMg KmNydGMgPSBkZXZfcHJpdi0+ZmJjLmNydGM7Cj4gPiArCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIg KmZiID0gY3J0Yy0+YmFzZS5wcmltYXJ5LT5mYjsKPiA+ICsJc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iaiA9IGludGVsX2ZiX29iaihmYik7Cj4gPiArCXVpbnQzMl90IHZhbDsKPiA+ICsK PiA+ICsJLyogQWx0aG91Z2ggdGhlIGRvY3VtZW50YXRpb24gc3VnZ2VzdHMgd2UgY2FuJ3QgY2hh bmdlIERQRkNfQ09OVFJPTAo+ID4gKwkgKiB3aGlsZSBjb21wcmVzc2lvbiBpcyBlbmFibGVkLCB0 aGUgaGFyZHdhcmUgZ3V5cyBzYWlkIHRoYXQgdXBkYXRpbmcKPiA+ICsJICogdGhlIGZlbmNlIHJl Z2lzdGVyIGJpdHMgZHVyaW5nIGEgZmxpcCBpcyBmaW5lLiAqLwo+ID4gKwl2YWwgPSBJOTE1X1JF QUQoSUxLX0RQRkNfQ09OVFJPTCk7Cj4gPiArCXZhbCAmPSB+SUxLX0RQRkNfRkVOQ0VfTUFTSzsK PiA+ICsJdmFsIHw9IG9iai0+ZmVuY2VfcmVnOwo+ID4gKwlJOTE1X1dSSVRFKElMS19EUEZDX0NP TlRST0wsIHZhbCk7Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyB2b2lkIHNuYl9mYmNfZmxpcF9w cmVwYXJlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiA+ICt7Cj4gPiArCXN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gZGV2X3ByaXYtPmZiYy5jcnRjOwo+ID4gKwlzdHJ1Y3Qg ZHJtX2ZyYW1lYnVmZmVyICpmYiA9IGNydGMtPmJhc2UucHJpbWFyeS0+ZmI7Cj4gPiArCXN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSBpbnRlbF9mYl9vYmooZmIpOwo+ID4gKwo+ID4g KwlJOTE1X1dSSVRFKFNOQl9EUEZDX0NUTF9TQSwgU05CX0NQVV9GRU5DRV9FTkFCTEUgfCBvYmot PmZlbmNlX3JlZyk7Cj4gPiArfQo+ID4gKwo+ID4gIHN0YXRpYyB2b2lkIGlsa19mYmNfZGlzYWJs ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gPiAgewo+ID4gIAl1MzIgZHBm Y19jdGw7Cj4gPiBAQCAtMTAyMCwxNCArMTA3Nyw0NCBAQCB2b2lkIGludGVsX2ZiY19mbHVzaChz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiAgCj4gPiAgCWlmIChvcmlnaW4g PT0gT1JJR0lOX0dUVCkKPiA+ICAJCXJldHVybjsKPiA+ICsJaWYgKG9yaWdpbiA9PSBPUklHSU5f RkxJUCAmJiBkZXZfcHJpdi0+ZmJjLmVuYWJsZWQpCj4gPiArCQlyZXR1cm47Cj4gPiAgCj4gPiAg CW11dGV4X2xvY2soJmRldl9wcml2LT5mYmMubG9jayk7Cj4gPiAgCj4gPiAgCWRldl9wcml2LT5m YmMuYnVzeV9iaXRzICY9IH5mcm9udGJ1ZmZlcl9iaXRzOwo+ID4gIAo+ID4gIAlpZiAoIWRldl9w cml2LT5mYmMuYnVzeV9iaXRzKSB7Cj4gPiAtCQlfX2ludGVsX2ZiY19kaXNhYmxlKGRldl9wcml2 KTsKPiA+IC0JCV9faW50ZWxfZmJjX3VwZGF0ZShkZXZfcHJpdik7Cj4gPiArCQlpZiAob3JpZ2lu ID09IE9SSUdJTl9GTElQKSB7Cj4gPiArCQkJX19pbnRlbF9mYmNfdXBkYXRlKGRldl9wcml2KTsK PiA+ICsJCX0gZWxzZSB7Cj4gPiArCQkJX19pbnRlbF9mYmNfZGlzYWJsZShkZXZfcHJpdik7Cj4g PiArCQkJX19pbnRlbF9mYmNfdXBkYXRlKGRldl9wcml2KTsKPiA+ICsJCX0KPiA+ICsJfQo+ID4g Kwo+ID4gKwltdXRleF91bmxvY2soJmRldl9wcml2LT5mYmMubG9jayk7Cj4gPiArfQo+ID4gKwo+ ID4gK3ZvaWQgaW50ZWxfZmJjX2ZsaXBfcHJlcGFyZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCj4gPiArCQkJICAgIHVuc2lnbmVkIGludCBmcm9udGJ1ZmZlcl9iaXRzKQo+ID4g K3sKPiA+ICsJdW5zaWduZWQgaW50IGZiY19iaXRzOwo+ID4gKwo+ID4gKwlpZiAoIWZiY19zdXBw b3J0ZWQoZGV2X3ByaXYpKQo+ID4gKwkJcmV0dXJuOwo+ID4gKwo+ID4gKwltdXRleF9sb2NrKCZk ZXZfcHJpdi0+ZmJjLmxvY2spOwo+ID4gKwo+ID4gKwlpZiAoZGV2X3ByaXYtPmZiYy5lbmFibGVk KSB7Cj4gPiArCQlmYmNfYml0cyA9IElOVEVMX0ZST05UQlVGRkVSX1BSSU1BUlkoZGV2X3ByaXYt PmZiYy5jcnRjLT5waXBlKTsKPiA+ICsJCWlmIChmYmNfYml0cyAmIGZyb250YnVmZmVyX2JpdHMp Cj4gPiArCQkJZGV2X3ByaXYtPmZiYy5mbGlwX3ByZXBhcmUoZGV2X3ByaXYpOwo+ID4gKwl9IGVs c2UgaWYgKGRldl9wcml2LT5mYmMuZmJjX3dvcmspIHsKPiA+ICsJCWZiY19iaXRzID0gSU5URUxf RlJPTlRCVUZGRVJfUFJJTUFSWSgKPiA+ICsJCQkJZGV2X3ByaXYtPmZiYy5mYmNfd29yay0+Y3J0 Yy0+cGlwZSk7Cj4gPiArCQlpZiAoZmJjX2JpdHMgJiBmcm9udGJ1ZmZlcl9iaXRzKQo+ID4gKwkJ CV9faW50ZWxfZmJjX2Rpc2FibGUoZGV2X3ByaXYpOwo+ID4gIAl9Cj4gPiAgCj4gPiAgCW11dGV4 X3VubG9jaygmZGV2X3ByaXYtPmZiYy5sb2NrKTsKPiA+IEBAIC0xMDYzLDE4ICsxMTUwLDI1IEBA IHZvaWQgaW50ZWxfZmJjX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ ID4gIAkJZGV2X3ByaXYtPmZiYy5mYmNfZW5hYmxlZCA9IGlsa19mYmNfZW5hYmxlZDsKPiA+ICAJ CWRldl9wcml2LT5mYmMuZW5hYmxlX2ZiYyA9IGdlbjdfZmJjX2VuYWJsZTsKPiA+ICAJCWRldl9w cml2LT5mYmMuZGlzYWJsZV9mYmMgPSBpbGtfZmJjX2Rpc2FibGU7Cj4gPiArCQlkZXZfcHJpdi0+ ZmJjLmZsaXBfcHJlcGFyZSA9IHNuYl9mYmNfZmxpcF9wcmVwYXJlOwo+ID4gIAl9IGVsc2UgaWYg KElOVEVMX0lORk8oZGV2X3ByaXYpLT5nZW4gPj0gNSkgewo+ID4gIAkJZGV2X3ByaXYtPmZiYy5m YmNfZW5hYmxlZCA9IGlsa19mYmNfZW5hYmxlZDsKPiA+ICAJCWRldl9wcml2LT5mYmMuZW5hYmxl X2ZiYyA9IGlsa19mYmNfZW5hYmxlOwo+ID4gIAkJZGV2X3ByaXYtPmZiYy5kaXNhYmxlX2ZiYyA9 IGlsa19mYmNfZGlzYWJsZTsKPiA+ICsJCWlmIChJTlRFTF9JTkZPKGRldl9wcml2KS0+Z2VuID09 IDUpCj4gPiArCQkJZGV2X3ByaXYtPmZiYy5mbGlwX3ByZXBhcmUgPSBpbGtfZmJjX2ZsaXBfcHJl cGFyZTsKPiA+ICsJCWVsc2UKPiA+ICsJCQlkZXZfcHJpdi0+ZmJjLmZsaXBfcHJlcGFyZSA9IHNu Yl9mYmNfZmxpcF9wcmVwYXJlOwo+ID4gIAl9IGVsc2UgaWYgKElTX0dNNDUoZGV2X3ByaXYpKSB7 Cj4gPiAgCQlkZXZfcHJpdi0+ZmJjLmZiY19lbmFibGVkID0gZzR4X2ZiY19lbmFibGVkOwo+ID4g IAkJZGV2X3ByaXYtPmZiYy5lbmFibGVfZmJjID0gZzR4X2ZiY19lbmFibGU7Cj4gPiAgCQlkZXZf cHJpdi0+ZmJjLmRpc2FibGVfZmJjID0gZzR4X2ZiY19kaXNhYmxlOwo+ID4gKwkJZGV2X3ByaXYt PmZiYy5mbGlwX3ByZXBhcmUgPSBnNHhfZmJjX2ZsaXBfcHJlcGFyZTsKPiA+ICAJfSBlbHNlIHsK PiA+ICAJCWRldl9wcml2LT5mYmMuZmJjX2VuYWJsZWQgPSBpOHh4X2ZiY19lbmFibGVkOwo+ID4g IAkJZGV2X3ByaXYtPmZiYy5lbmFibGVfZmJjID0gaTh4eF9mYmNfZW5hYmxlOwo+ID4gIAkJZGV2 X3ByaXYtPmZiYy5kaXNhYmxlX2ZiYyA9IGk4eHhfZmJjX2Rpc2FibGU7Cj4gPiArCQlkZXZfcHJp di0+ZmJjLmZsaXBfcHJlcGFyZSA9IGk4eHhfZmJjX2ZsaXBfcHJlcGFyZTsKPiA+ICAKPiA+ICAJ CS8qIFRoaXMgdmFsdWUgd2FzIHB1bGxlZCBvdXQgb2Ygc29tZW9uZSdzIGhhdCAqLwo+ID4gIAkJ STkxNV9XUklURShGQkNfQ09OVFJPTCwgNTAwIDw8IEZCQ19DVExfSU5URVJWQUxfU0hJRlQpOwo+ ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Zyb250YnVmZmVyLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mcm9udGJ1ZmZlci5jCj4gPiBpbmRleCBhYzg1 MzU3Li4zMWExYWQzIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZnJvbnRidWZmZXIuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZnJvbnRi dWZmZXIuYwo+ID4gQEAgLTE5Miw2ICsxOTIsNyBAQCB2b2lkIGludGVsX2Zyb250YnVmZmVyX2Zs aXBfcHJlcGFyZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4gIAltdXRleF91bmxvY2soJmRl dl9wcml2LT5mYl90cmFja2luZy5sb2NrKTsKPiA+ICAKPiA+ICAJaW50ZWxfcHNyX3NpbmdsZV9m cmFtZV91cGRhdGUoZGV2LCBmcm9udGJ1ZmZlcl9iaXRzKTsKPiA+ICsJaW50ZWxfZmJjX2ZsaXBf cHJlcGFyZShkZXZfcHJpdiwgZnJvbnRidWZmZXJfYml0cyk7Cj4gCj4gSSBoYXZlbid0IHJlYWQg YWhlYWQsIGJ1dCBib3RoIHBzciBzaW5nbGUgZnJhbWUgdXBkYXRlIGFuZCB0aGlzIGhlcmUKPiBz aG91bGQgYmUgY29udmVydGVkLiBTaW5jZSB3aXRoIHRoaXMgaGVyZSB0aGVyZSdzIHRoZSBzbWFs bCAoYnV0IHZlcnkKPiByZWFsKSBjaGFuY2UgdGhhdCByZW5kZXJpbmcgdGhlIGJ1ZmZlciBmb3Ig dGhpcyBmbGlwIHdpbGwgdGFrZSBsb25nZXIgdGhhbgo+IHRoZSBuZXh0IHZibGFuaywgYW5kIGF0 IGxlYXN0IGZvciB0aGUgcHNyIGNhc2Ugd2UnZCB0aGVuIGZhaWwgdG8gdXBsb2FkCj4gdGhlIGNo YW5nZXMuIEZvciBmYmMgaXQncyBsZXNzIG9mIGEgcHJvYmxlbSwgc2luY2UgaWYgeW91IHBhZ2Ug ZmxpcCB0aGVuCj4gdXNlcnNwYWNlIHNob3VsZG4ndCByYWNlIGZyb250YnVmZmVyIHJlbmRlcmlu Zy4KPiAKPiBTbyBJIHRoaW5rIHRoaXMgaXMgb2sgKGJ1dCB0aGUgUFNSIGNhc2Ugc2hvdWxkIGJl IGZpeGVkIGJ5IG1vdmluZyB0aGUKPiByZWdpc3RlciB3cml0ZSBpdHNlbGYgaW50byB0aGUgYXRv bWljIHVwZGF0ZSwgd2hpY2ggbWVhbnMgd2UgbmVlZCB0byBoYXZlCj4gYSBib29sZWFuIHRvIGRl Y2lkZWQgd2hldGhlciB0byBkbyB0aGF0IGluIHRoZSBpbnRlbF9jcnRjX3N0YXRlKS4KPiAtRGFu aWVsCj4gCj4gCj4gPiAgfQo+ID4gIAo+ID4gIC8qKgo+ID4gLS0gCj4gPiAyLjYuMQo+ID4gCj4g PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ID4gSW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+ID4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ ID4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eAo+IAo+IC0tIAo+IERhbmllbCBWZXR0ZXIKPiBTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29y cG9yYXRpb24KPiBodHRwOi8vYmxvZy5mZndsbC5jaAo+IF9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsIE9U QwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1n ZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=