From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 02/18] drm/i915: don't stop+start FBC at every flip Date: Wed, 21 Oct 2015 09:04:39 +0200 Message-ID: <20151021070439.GJ13786@phenom.ffwll.local> References: <1445349004-16409-1-git-send-email-paulo.r.zanoni@intel.com> <1445349004-16409-3-git-send-email-paulo.r.zanoni@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f178.google.com (mail-wi0-f178.google.com [209.85.212.178]) by gabe.freedesktop.org (Postfix) with ESMTPS id D4C486ED1D for ; Wed, 21 Oct 2015 00:04:43 -0700 (PDT) Received: by wijp11 with SMTP id p11so79939387wij.0 for ; Wed, 21 Oct 2015 00:04:42 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1445349004-16409-3-git-send-email-paulo.r.zanoni@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Paulo Zanoni Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBPY3QgMjAsIDIwMTUgYXQgMTE6NDk6NDhBTSAtMDIwMCwgUGF1bG8gWmFub25pIHdy b3RlOgo+IFRoZSBoYXJkd2FyZSBhbHJlYWR5IHRha2VzIGNhcmUgb2YgZGlzYWJsaW5nIGFuZCBy ZWNvbXByZXNzaW5nIEZCQwo+IHdoZW4gd2UgZG8gYSBwYWdlIGZsaXAsIHNvIGFsbCB3ZSBuZWVk IHRvIGRvIGlzIHRvIHVwZGF0ZSB0aGUgZmVuY2UKPiByZWdpc3RlcnMgYW5kIG1vdmUgb24uCj4g Cj4gT25lIG9mIHRoZSBpbXBvcnRhbnQgdGhpbmdzIHRvIG5vdGljZSBpcyB0aGF0IG9uIHRoZSBw cmUtZ2VuNgo+IHBsYXRmb3JtcyB0aGUgZmVuY2UgaXMgcHJvZ3JhbW1lZCBvbiB0aGUgRkJDIGNv bnRyb2wgcmVnaXN0ZXIgYW5kIHRoZQo+IGRvY3VtZW50YXRpb24gc2F5cyB3ZSBjYW4ndCB1cGRh dGUgdGhlIGNvbnRyb2wgcmVnaXN0ZXIgd2hpbGUgRkJDIGlzCj4gZW5hYmxlZC4gVGhpcyB3b3Vs ZCBiYXNpY2FsbHkgbWVhbiB3ZSdkIGhhdmUgdG8gdG8gZGlzYWJsZStlbmFibGUgRkJDCj4gYXQg ZXZlcnkgZmxpcCBpbiBvcmRlciB0byBtYWtlIHN1cmUgdGhlIGhhcmR3YXJlIHRyYWNraW5nIHN0 aWxsIHdvcmtzLAo+IHdoaWNoIGRvZXNuJ3Qgc2VlbSB0byBtYWtlIHRvbyBtdWNoIHNlbnNlLiBT byBJIHNlbnQgYW4gZW1haWwgdG8gdGhlCj4gaGFyZHdhcmUgdGVhbSByZXF1ZXN0aW5nIHNvbWUg Y2xhcmlmaWNhdGlvbi4gVGhlIGluZm9ybWF0aW9uIEkgZ290IHdhcwo+IHRoaXM6Cj4gCj4gIkkg ZG9uJ3QgdGhpbmsgYW55IGhhcmR3YXJlIGlzIGxhdGNoaW5nIG9uIHRvIDB4MTAwMTAwLCAweDEw MDEwNCwgb3IKPiB0aGUgb2xkIGZlbmNlIG51bWJlciBpbiBGQkNfQ1RMLiBJbnN0cnVjdGlvbnMg YWdhaW5zdCBjaGFuZ2luZyBvbiB0aGUKPiBmbHkgd291bGQgYmUgdG8gc2ltcGxpZnkgdGVzdGlu ZyBhbmQgZW5zdXJlIHlvdSBkb24ndCBtaXNzIGFueQo+IGludmFsaWRhdGlvbiB0aGF0IGhhcHBl bmVkIHJpZ2h0IGF0IHRoYXQgdGltZS4iCj4gCj4gU28gSSBndWVzcyB3ZSdyZSBmaW5lIGZvciBm bGlwcy4gQnV0IEkgY2FuJ3QgcmVhbGx5IHNheSBJIHRlc3RlZCBGQkMKPiBvbiB0aGVzZSBhbmNp ZW50IHBsYXRmb3JtcyAtIG5vciB0aGF0IEknbGwgZXZlciBwcm9wb3NlIGVuYWJsaW5nIEZCQwo+ IGJ5IGRlZmF1bHQgb24gdGhlbSBleGFjdGx5IGJlY2F1c2Ugb2YgcHJvYmxlbXMgbGlrZSB0aGVz ZS4KPiAKPiBUZXN0Y2FzZTogaWd0L2ttc19mcm9udGJ1ZmZlcl90cmFja2luZy9mYmMqLWZsaXB0 cmFjawo+IFNpZ25lZC1vZmYtYnk6IFBhdWxvIFphbm9uaSA8cGF1bG8uci56YW5vbmlAaW50ZWwu Y29tPgoKSWlyYyBvbiBwcmUtZzR4IGZsaXBzIGRvbid0IGludmFsaWRhdGUgdGhlIGZiYyBjb21w cmVzc2lvbiwgYW5kIHdlIGRvCmFjdHVhbGx5IGhhdmUgdG8gZGlzYWJsZSBmYmMgZW50aXJlbHku IFRoZXJlJ3Mgc29tZSBmdW5reSBsYW5ndWFnZSB0aGF0IGlmCnlvdSB3YW50IHRvIGZsaXAgd2l0 aCBmYmMgeW91IGhhdmUgdG8gdHJhY2sgdGhlIG5ldyBiYWNrYnVmZmVyLgoKU28gSSdtIG5vdCBl bnRpcmVseSBzdXJlIHRoaXMgaXMgY29ycmVjdCBmb3IgdGhlIGk4eCBjYXNlLiBPdG9oIHdlIGRv bid0CmV2ZXIgZW5hYmxlIGl0LCBzbyB3ZSBjb3VsZCBhbHNvIGp1c3QgbnVrZSB0aGUgaTh4IGZi YyBjb2RlLiBFaXRoZXIgd2F5IGl0CmRvZXNuJ3QgbWF0dGVyIHRvIG11Y2guCgo+IC0tLQo+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgIHwgIDEgKwo+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICAgICAgICAgIHwgIDMgKwo+ICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgICAgIHwgIDEgLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcnYuaCAgICAgICAgIHwgIDIgKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9mYmMuYyAgICAgICAgIHwgOTggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KPiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZnJvbnRidWZmZXIuYyB8ICAxICsKPiAgNiBmaWxl cyBjaGFuZ2VkLCAxMDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmgKPiBpbmRleCBjMzM0NTI1Li5mMDRmNTZmIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oCj4gQEAgLTkzMCw2ICs5MzAsNyBAQCBzdHJ1Y3QgaTkxNV9mYmMgewo+ICAJ Ym9vbCAoKmZiY19lbmFibGVkKShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ ICAJdm9pZCAoKmVuYWJsZV9mYmMpKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKTsKPiAgCXZvaWQg KCpkaXNhYmxlX2ZiYykoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiArCXZv aWQgKCpmbGlwX3ByZXBhcmUpKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4g IH07Cj4gIAo+ICAvKioKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9y ZWcuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiBpbmRleCA5ZWJmMDMyLi4z NjIwYjU5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gQEAgLTIwMjgsNiArMjAyOCw3 IEBAIGVudW0gc2tsX2Rpc3BfcG93ZXJfd2VsbHMgewo+ICAjZGVmaW5lICAgRkJDX0NUTF9DM19J RExFCSgxPDwxMykKPiAgI2RlZmluZSAgIEZCQ19DVExfU1RSSURFX1NISUZUCSg1KQo+ICAjZGVm aW5lICAgRkJDX0NUTF9GRU5DRU5PX1NISUZUCSgwKQo+ICsjZGVmaW5lICAgRkJDX0NUTF9GRU5D RU5PX01BU0sJMHhGCj4gICNkZWZpbmUgRkJDX0NPTU1BTkQJCTB4MDMyMGMKPiAgI2RlZmluZSAg IEZCQ19DTURfQ09NUFJFU1MJKDE8PDApCj4gICNkZWZpbmUgRkJDX1NUQVRVUwkJMHgwMzIxMAo+ IEBAIC0yMDY0LDYgKzIwNjUsNyBAQCBlbnVtIHNrbF9kaXNwX3Bvd2VyX3dlbGxzIHsKPiAgI2Rl ZmluZSAgIERQRkNfQ1RMX0xJTUlUXzFYCSgwPDw2KQo+ICAjZGVmaW5lICAgRFBGQ19DVExfTElN SVRfMlgJKDE8PDYpCj4gICNkZWZpbmUgICBEUEZDX0NUTF9MSU1JVF80WAkoMjw8NikKPiArI2Rl ZmluZSAgIERQRkNfQ1RMX0ZFTkNFX01BU0sJMHhGCj4gICNkZWZpbmUgRFBGQ19SRUNPTVBfQ1RM CQkweDMyMGMKPiAgI2RlZmluZSAgIERQRkNfUkVDT01QX1NUQUxMX0VOCSgxPDwyNykKPiAgI2Rl ZmluZSAgIERQRkNfUkVDT01QX1NUQUxMX1dNX1NISUZUICgxNikKPiBAQCAtMjA4Niw2ICsyMDg4 LDcgQEAgZW51bSBza2xfZGlzcF9wb3dlcl93ZWxscyB7Cj4gICNkZWZpbmUgICBGQkNfQ1RMX0ZB TFNFX0NPTE9SCSgxPDwxMCkKPiAgLyogVGhlIGJpdCAyOC04IGlzIHJlc2VydmVkICovCj4gICNk ZWZpbmUgICBEUEZDX1JFU0VSVkVECQkoMHgxRkZGRkYwMCkKPiArI2RlZmluZSAgIElMS19EUEZD X0ZFTkNFX01BU0sJMHhGCj4gICNkZWZpbmUgSUxLX0RQRkNfUkVDT01QX0NUTAkweDQzMjBjCj4g ICNkZWZpbmUgSUxLX0RQRkNfU1RBVFVTCQkweDQzMjEwCj4gICNkZWZpbmUgSUxLX0RQRkNfRkVO Q0VfWU9GRgkweDQzMjE4Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IGluZGV4 IDFmYzFkMjQuLmU4M2E0MjggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j Cj4gQEAgLTExNDcwLDcgKzExNDcwLDYgQEAgc3RhdGljIGludCBpbnRlbF9jcnRjX3BhZ2VfZmxp cChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gIAkJCSAgdG9faW50ZWxfcGxhbmUocHJpbWFyeSkt PmZyb250YnVmZmVyX2JpdCk7Cj4gIAltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsK PiAgCj4gLQlpbnRlbF9mYmNfZGlzYWJsZV9jcnRjKGludGVsX2NydGMpOwo+ICAJaW50ZWxfZnJv bnRidWZmZXJfZmxpcF9wcmVwYXJlKGRldiwKPiAgCQkJCSAgICAgICB0b19pbnRlbF9wbGFuZShw cmltYXJ5KS0+ZnJvbnRidWZmZXJfYml0KTsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgK PiBpbmRleCBkYzU1ZTRjLi4xZTA4YzhhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgK PiBAQCAtMTI4Nyw2ICsxMjg3LDggQEAgdm9pZCBpbnRlbF9mYmNfaW52YWxpZGF0ZShzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJCSAgZW51bSBmYl9vcF9vcmlnaW4gb3Jp Z2luKTsKPiAgdm9pZCBpbnRlbF9mYmNfZmx1c2goc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAo+ICAJCSAgICAgdW5zaWduZWQgaW50IGZyb250YnVmZmVyX2JpdHMsIGVudW0gZmJf b3Bfb3JpZ2luIG9yaWdpbik7Cj4gK3ZvaWQgaW50ZWxfZmJjX2ZsaXBfcHJlcGFyZShzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gKwkJCSAgICB1bnNpZ25lZCBpbnQgZnJvbnRi dWZmZXJfYml0cyk7Cj4gIHZvaWQgaW50ZWxfZmJjX2NsZWFudXBfY2ZiKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdik7Cj4gIAo+ICAvKiBpbnRlbF9oZG1pLmMgKi8KPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9mYmMuYwo+IGluZGV4IGQ5ZDdlNTQuLjk0NzczNzkgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9mYmMuYwo+IEBAIC04Miw2ICs4MiwyMiBAQCBzdGF0aWMgdm9pZCBpOHh4X2Zi Y19kaXNhYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCURSTV9ERUJV R19LTVMoImRpc2FibGVkIEZCQ1xuIik7Cj4gIH0KPiAgCj4gK3N0YXRpYyB2b2lkIGk4eHhfZmJj X2ZsaXBfcHJlcGFyZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gK3sKPiAr CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gZGV2X3ByaXYtPmZiYy5jcnRjOwo+ICsJc3RydWN0 IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBjcnRjLT5iYXNlLnByaW1hcnktPmZiOwo+ICsJc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IGludGVsX2ZiX29iaihmYik7Cj4gKwl1aW50MzJf dCB2YWw7Cj4gKwo+ICsJLyogQWx0aG91Z2ggdGhlIGRvY3VtZW50YXRpb24gc3VnZ2VzdHMgd2Ug Y2FuJ3QgY2hhbmdlIERQRkNfQ09OVFJPTAo+ICsJICogd2hpbGUgY29tcHJlc3Npb24gaXMgZW5h YmxlZCwgdGhlIGhhcmR3YXJlIGd1eXMgc2FpZCB0aGF0IHVwZGF0aW5nCj4gKwkgKiB0aGUgZmVu Y2UgcmVnaXN0ZXIgYml0cyBkdXJpbmcgYSBmbGlwIGlzIGZpbmUuICovCj4gKwl2YWwgPSBJOTE1 X1JFQUQoRkJDX0NPTlRST0wpOwo+ICsJdmFsICY9IH5GQkNfQ1RMX0ZFTkNFTk9fTUFTSzsKPiAr CXZhbCB8PSBvYmotPmZlbmNlX3JlZzsKPiArCUk5MTVfV1JJVEUoRkJDX0NPTlRST0wsIHZhbCk7 Cj4gK30KPiArCj4gIHN0YXRpYyB2b2lkIGk4eHhfZmJjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YykKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gY3J0 Yy0+YmFzZS5kZXYtPmRldl9wcml2YXRlOwo+IEBAIC0xNjEsNiArMTc3LDIyIEBAIHN0YXRpYyB2 b2lkIGc0eF9mYmNfZW5hYmxlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQo+ICAJRFJNX0RFQlVH X0tNUygiZW5hYmxlZCBmYmMgb24gcGxhbmUgJWNcbiIsIHBsYW5lX25hbWUoY3J0Yy0+cGxhbmUp KTsKPiAgfQo+ICAKPiArc3RhdGljIHZvaWQgZzR4X2ZiY19mbGlwX3ByZXBhcmUoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YyA9IGRldl9wcml2LT5mYmMuY3J0YzsKPiArCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0g Y3J0Yy0+YmFzZS5wcmltYXJ5LT5mYjsKPiArCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpv YmogPSBpbnRlbF9mYl9vYmooZmIpOwo+ICsJdWludDMyX3QgdmFsOwo+ICsKPiArCS8qIEFsdGhv dWdoIHRoZSBkb2N1bWVudGF0aW9uIHN1Z2dlc3RzIHdlIGNhbid0IGNoYW5nZSBEUEZDX0NPTlRS T0wKPiArCSAqIHdoaWxlIGNvbXByZXNzaW9uIGlzIGVuYWJsZWQsIHRoZSBoYXJkd2FyZSBndXlz IHNhaWQgdGhhdCB1cGRhdGluZwo+ICsJICogdGhlIGZlbmNlIHJlZ2lzdGVyIGJpdHMgZHVyaW5n IGEgZmxpcCBpcyBmaW5lLiAqLwo+ICsJdmFsID0gSTkxNV9SRUFEKERQRkNfQ09OVFJPTCk7Cj4g Kwl2YWwgJj0gfkRQRkNfQ1RMX0ZFTkNFX01BU0s7Cj4gKwl2YWwgfD0gb2JqLT5mZW5jZV9yZWc7 Cj4gKwlJOTE1X1dSSVRFKERQRkNfQ09OVFJPTCwgdmFsKTsKPiArfQo+ICsKPiAgc3RhdGljIHZv aWQgZzR4X2ZiY19kaXNhYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAg ewo+ICAJdTMyIGRwZmNfY3RsOwo+IEBAIC0yMzYsNiArMjY4LDMxIEBAIHN0YXRpYyB2b2lkIGls a19mYmNfZW5hYmxlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQo+ICAJRFJNX0RFQlVHX0tNUygi ZW5hYmxlZCBmYmMgb24gcGxhbmUgJWNcbiIsIHBsYW5lX25hbWUoY3J0Yy0+cGxhbmUpKTsKPiAg fQo+ICAKPiArc3RhdGljIHZvaWQgaWxrX2ZiY19mbGlwX3ByZXBhcmUoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IGRl dl9wcml2LT5mYmMuY3J0YzsKPiArCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gY3J0Yy0+ YmFzZS5wcmltYXJ5LT5mYjsKPiArCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSBp bnRlbF9mYl9vYmooZmIpOwo+ICsJdWludDMyX3QgdmFsOwo+ICsKPiArCS8qIEFsdGhvdWdoIHRo ZSBkb2N1bWVudGF0aW9uIHN1Z2dlc3RzIHdlIGNhbid0IGNoYW5nZSBEUEZDX0NPTlRST0wKPiAr CSAqIHdoaWxlIGNvbXByZXNzaW9uIGlzIGVuYWJsZWQsIHRoZSBoYXJkd2FyZSBndXlzIHNhaWQg dGhhdCB1cGRhdGluZwo+ICsJICogdGhlIGZlbmNlIHJlZ2lzdGVyIGJpdHMgZHVyaW5nIGEgZmxp cCBpcyBmaW5lLiAqLwo+ICsJdmFsID0gSTkxNV9SRUFEKElMS19EUEZDX0NPTlRST0wpOwo+ICsJ dmFsICY9IH5JTEtfRFBGQ19GRU5DRV9NQVNLOwo+ICsJdmFsIHw9IG9iai0+ZmVuY2VfcmVnOwo+ ICsJSTkxNV9XUklURShJTEtfRFBGQ19DT05UUk9MLCB2YWwpOwo+ICt9Cj4gKwo+ICtzdGF0aWMg dm9pZCBzbmJfZmJjX2ZsaXBfcHJlcGFyZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gZGV2X3ByaXYtPmZiYy5jcnRj Owo+ICsJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBjcnRjLT5iYXNlLnByaW1hcnktPmZi Owo+ICsJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IGludGVsX2ZiX29iaihmYik7 Cj4gKwo+ICsJSTkxNV9XUklURShTTkJfRFBGQ19DVExfU0EsIFNOQl9DUFVfRkVOQ0VfRU5BQkxF IHwgb2JqLT5mZW5jZV9yZWcpOwo+ICt9Cj4gKwo+ICBzdGF0aWMgdm9pZCBpbGtfZmJjX2Rpc2Fi bGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICB7Cj4gIAl1MzIgZHBmY19j dGw7Cj4gQEAgLTEwMjAsMTQgKzEwNzcsNDQgQEAgdm9pZCBpbnRlbF9mYmNfZmx1c2goc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAKPiAgCWlmIChvcmlnaW4gPT0gT1JJR0lO X0dUVCkKPiAgCQlyZXR1cm47Cj4gKwlpZiAob3JpZ2luID09IE9SSUdJTl9GTElQICYmIGRldl9w cml2LT5mYmMuZW5hYmxlZCkKPiArCQlyZXR1cm47Cj4gIAo+ICAJbXV0ZXhfbG9jaygmZGV2X3By aXYtPmZiYy5sb2NrKTsKPiAgCj4gIAlkZXZfcHJpdi0+ZmJjLmJ1c3lfYml0cyAmPSB+ZnJvbnRi dWZmZXJfYml0czsKPiAgCj4gIAlpZiAoIWRldl9wcml2LT5mYmMuYnVzeV9iaXRzKSB7Cj4gLQkJ X19pbnRlbF9mYmNfZGlzYWJsZShkZXZfcHJpdik7Cj4gLQkJX19pbnRlbF9mYmNfdXBkYXRlKGRl dl9wcml2KTsKPiArCQlpZiAob3JpZ2luID09IE9SSUdJTl9GTElQKSB7Cj4gKwkJCV9faW50ZWxf ZmJjX3VwZGF0ZShkZXZfcHJpdik7Cj4gKwkJfSBlbHNlIHsKPiArCQkJX19pbnRlbF9mYmNfZGlz YWJsZShkZXZfcHJpdik7Cj4gKwkJCV9faW50ZWxfZmJjX3VwZGF0ZShkZXZfcHJpdik7Cj4gKwkJ fQo+ICsJfQo+ICsKPiArCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmZiYy5sb2NrKTsKPiArfQo+ ICsKPiArdm9pZCBpbnRlbF9mYmNfZmxpcF9wcmVwYXJlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKPiArCQkJICAgIHVuc2lnbmVkIGludCBmcm9udGJ1ZmZlcl9iaXRzKQo+ICt7 Cj4gKwl1bnNpZ25lZCBpbnQgZmJjX2JpdHM7Cj4gKwo+ICsJaWYgKCFmYmNfc3VwcG9ydGVkKGRl dl9wcml2KSkKPiArCQlyZXR1cm47Cj4gKwo+ICsJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmZiYy5s b2NrKTsKPiArCj4gKwlpZiAoZGV2X3ByaXYtPmZiYy5lbmFibGVkKSB7Cj4gKwkJZmJjX2JpdHMg PSBJTlRFTF9GUk9OVEJVRkZFUl9QUklNQVJZKGRldl9wcml2LT5mYmMuY3J0Yy0+cGlwZSk7Cj4g KwkJaWYgKGZiY19iaXRzICYgZnJvbnRidWZmZXJfYml0cykKPiArCQkJZGV2X3ByaXYtPmZiYy5m bGlwX3ByZXBhcmUoZGV2X3ByaXYpOwo+ICsJfSBlbHNlIGlmIChkZXZfcHJpdi0+ZmJjLmZiY193 b3JrKSB7Cj4gKwkJZmJjX2JpdHMgPSBJTlRFTF9GUk9OVEJVRkZFUl9QUklNQVJZKAo+ICsJCQkJ ZGV2X3ByaXYtPmZiYy5mYmNfd29yay0+Y3J0Yy0+cGlwZSk7Cj4gKwkJaWYgKGZiY19iaXRzICYg ZnJvbnRidWZmZXJfYml0cykKPiArCQkJX19pbnRlbF9mYmNfZGlzYWJsZShkZXZfcHJpdik7Cj4g IAl9Cj4gIAo+ICAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZmJjLmxvY2spOwo+IEBAIC0xMDYz LDE4ICsxMTUwLDI1IEBAIHZvaWQgaW50ZWxfZmJjX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQo+ICAJCWRldl9wcml2LT5mYmMuZmJjX2VuYWJsZWQgPSBpbGtfZmJjX2Vu YWJsZWQ7Cj4gIAkJZGV2X3ByaXYtPmZiYy5lbmFibGVfZmJjID0gZ2VuN19mYmNfZW5hYmxlOwo+ ICAJCWRldl9wcml2LT5mYmMuZGlzYWJsZV9mYmMgPSBpbGtfZmJjX2Rpc2FibGU7Cj4gKwkJZGV2 X3ByaXYtPmZiYy5mbGlwX3ByZXBhcmUgPSBzbmJfZmJjX2ZsaXBfcHJlcGFyZTsKPiAgCX0gZWxz ZSBpZiAoSU5URUxfSU5GTyhkZXZfcHJpdiktPmdlbiA+PSA1KSB7Cj4gIAkJZGV2X3ByaXYtPmZi Yy5mYmNfZW5hYmxlZCA9IGlsa19mYmNfZW5hYmxlZDsKPiAgCQlkZXZfcHJpdi0+ZmJjLmVuYWJs ZV9mYmMgPSBpbGtfZmJjX2VuYWJsZTsKPiAgCQlkZXZfcHJpdi0+ZmJjLmRpc2FibGVfZmJjID0g aWxrX2ZiY19kaXNhYmxlOwo+ICsJCWlmIChJTlRFTF9JTkZPKGRldl9wcml2KS0+Z2VuID09IDUp Cj4gKwkJCWRldl9wcml2LT5mYmMuZmxpcF9wcmVwYXJlID0gaWxrX2ZiY19mbGlwX3ByZXBhcmU7 Cj4gKwkJZWxzZQo+ICsJCQlkZXZfcHJpdi0+ZmJjLmZsaXBfcHJlcGFyZSA9IHNuYl9mYmNfZmxp cF9wcmVwYXJlOwo+ICAJfSBlbHNlIGlmIChJU19HTTQ1KGRldl9wcml2KSkgewo+ICAJCWRldl9w cml2LT5mYmMuZmJjX2VuYWJsZWQgPSBnNHhfZmJjX2VuYWJsZWQ7Cj4gIAkJZGV2X3ByaXYtPmZi Yy5lbmFibGVfZmJjID0gZzR4X2ZiY19lbmFibGU7Cj4gIAkJZGV2X3ByaXYtPmZiYy5kaXNhYmxl X2ZiYyA9IGc0eF9mYmNfZGlzYWJsZTsKPiArCQlkZXZfcHJpdi0+ZmJjLmZsaXBfcHJlcGFyZSA9 IGc0eF9mYmNfZmxpcF9wcmVwYXJlOwo+ICAJfSBlbHNlIHsKPiAgCQlkZXZfcHJpdi0+ZmJjLmZi Y19lbmFibGVkID0gaTh4eF9mYmNfZW5hYmxlZDsKPiAgCQlkZXZfcHJpdi0+ZmJjLmVuYWJsZV9m YmMgPSBpOHh4X2ZiY19lbmFibGU7Cj4gIAkJZGV2X3ByaXYtPmZiYy5kaXNhYmxlX2ZiYyA9IGk4 eHhfZmJjX2Rpc2FibGU7Cj4gKwkJZGV2X3ByaXYtPmZiYy5mbGlwX3ByZXBhcmUgPSBpOHh4X2Zi Y19mbGlwX3ByZXBhcmU7Cj4gIAo+ICAJCS8qIFRoaXMgdmFsdWUgd2FzIHB1bGxlZCBvdXQgb2Yg c29tZW9uZSdzIGhhdCAqLwo+ICAJCUk5MTVfV1JJVEUoRkJDX0NPTlRST0wsIDUwMCA8PCBGQkNf Q1RMX0lOVEVSVkFMX1NISUZUKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZnJvbnRidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Zyb250YnVm ZmVyLmMKPiBpbmRleCBhYzg1MzU3Li4zMWExYWQzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Zyb250YnVmZmVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9mcm9udGJ1ZmZlci5jCj4gQEAgLTE5Miw2ICsxOTIsNyBAQCB2b2lkIGludGVsX2Zy b250YnVmZmVyX2ZsaXBfcHJlcGFyZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJbXV0ZXhf dW5sb2NrKCZkZXZfcHJpdi0+ZmJfdHJhY2tpbmcubG9jayk7Cj4gIAo+ICAJaW50ZWxfcHNyX3Np bmdsZV9mcmFtZV91cGRhdGUoZGV2LCBmcm9udGJ1ZmZlcl9iaXRzKTsKPiArCWludGVsX2ZiY19m bGlwX3ByZXBhcmUoZGV2X3ByaXYsIGZyb250YnVmZmVyX2JpdHMpOwoKSSBoYXZlbid0IHJlYWQg YWhlYWQsIGJ1dCBib3RoIHBzciBzaW5nbGUgZnJhbWUgdXBkYXRlIGFuZCB0aGlzIGhlcmUKc2hv dWxkIGJlIGNvbnZlcnRlZC4gU2luY2Ugd2l0aCB0aGlzIGhlcmUgdGhlcmUncyB0aGUgc21hbGwg KGJ1dCB2ZXJ5CnJlYWwpIGNoYW5jZSB0aGF0IHJlbmRlcmluZyB0aGUgYnVmZmVyIGZvciB0aGlz IGZsaXAgd2lsbCB0YWtlIGxvbmdlciB0aGFuCnRoZSBuZXh0IHZibGFuaywgYW5kIGF0IGxlYXN0 IGZvciB0aGUgcHNyIGNhc2Ugd2UnZCB0aGVuIGZhaWwgdG8gdXBsb2FkCnRoZSBjaGFuZ2VzLiBG b3IgZmJjIGl0J3MgbGVzcyBvZiBhIHByb2JsZW0sIHNpbmNlIGlmIHlvdSBwYWdlIGZsaXAgdGhl bgp1c2Vyc3BhY2Ugc2hvdWxkbid0IHJhY2UgZnJvbnRidWZmZXIgcmVuZGVyaW5nLgoKU28gSSB0 aGluayB0aGlzIGlzIG9rIChidXQgdGhlIFBTUiBjYXNlIHNob3VsZCBiZSBmaXhlZCBieSBtb3Zp bmcgdGhlCnJlZ2lzdGVyIHdyaXRlIGl0c2VsZiBpbnRvIHRoZSBhdG9taWMgdXBkYXRlLCB3aGlj aCBtZWFucyB3ZSBuZWVkIHRvIGhhdmUKYSBib29sZWFuIHRvIGRlY2lkZWQgd2hldGhlciB0byBk byB0aGF0IGluIHRoZSBpbnRlbF9jcnRjX3N0YXRlKS4KLURhbmllbAoKCj4gIH0KPiAgCj4gIC8q Kgo+IC0tIAo+IDIuNi4xCj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwo+IGh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9pbnRlbC1nZngKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRl bCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=