From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 02/26] drm/i915: don't stop+start FBC at every flip Date: Tue, 27 Oct 2015 20:32:31 +0200 Message-ID: <20151027183231.GN4437@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> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 4311E6E247 for ; Tue, 27 Oct 2015 11:32:35 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1445964628-30226-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 T24gVHVlLCBPY3QgMjcsIDIwMTUgYXQgMDI6NTA6MDRQTSAtMDIwMCwgUGF1bG8gWmFub25pIHdy 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 ZS4KClllYWgsIEkgZGlkIHRoaXMgaW4gbXkgcGF0Y2hlcyB0b28sIGFuZCBJSVJDIGl0IHNlZW1l ZCB0byB3b3JrIGp1c3QgZmluZQpiYWNrIHRoZW4uCgo+IAo+IHYyOiBBZGQgY29tbWVudCBhdCBm bHVzaCgpIChDaHJpcykuCj4gCj4gVGVzdGNhc2U6IGlndC9rbXNfZnJvbnRidWZmZXJfdHJhY2tp bmcvZmJjKi1mbGlwdHJhY2sKPiBTaWduZWQtb2ZmLWJ5OiBQYXVsbyBaYW5vbmkgPHBhdWxvLnIu emFub25pQGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aCAgICAgICAgICB8ICAgMSArCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggICAg ICAgICAgfCAgIDMgKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgICAg IHwgICAxIC0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgICAgICB8ICAg MiArCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiYy5jICAgICAgICAgfCAxMDMgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9mcm9udGJ1ZmZlci5jIHwgICAxICsKPiAgNiBmaWxlcyBjaGFuZ2VkLCAxMDggaW5zZXJ0aW9u cygrKSwgMyBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBpbmRleCBl ZTE0OTYyLi43N2RhNTAwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gQEAgLTkyOCw2 ICs5MjgsNyBAQCBzdHJ1Y3QgaTkxNV9mYmMgewo+ICAJYm9vbCAoKmZiY19lbmFibGVkKShzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ICAJdm9pZCAoKmVuYWJsZV9mYmMpKHN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjKTsKPiAgCXZvaWQgKCpkaXNhYmxlX2ZiYykoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiArCXZvaWQgKCpmbGlwX3ByZXBhcmUpKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gIH07Cj4gIAo+ICAvKioKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfcmVnLmgKPiBpbmRleCA4OTQyNTMyLi4zZDU5OGEyIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3JlZy5oCj4gQEAgLTIwMjgsNiArMjAyOCw3IEBAIGVudW0gc2tsX2Rpc3BfcG93ZXJf d2VsbHMgewo+ICAjZGVmaW5lICAgRkJDX0NUTF9DM19JRExFCSgxPDwxMykKPiAgI2RlZmluZSAg IEZCQ19DVExfU1RSSURFX1NISUZUCSg1KQo+ICAjZGVmaW5lICAgRkJDX0NUTF9GRU5DRU5PX1NI SUZUCSgwKQo+ICsjZGVmaW5lICAgRkJDX0NUTF9GRU5DRU5PX01BU0sJMHhGCgpJdCdzIG9ubHkg dGhyZWUgYml0cyBvbiBnZW4yLiBCdXQgYml0IDMgaXMgTUJaIGFuZCB0aGVyZSBhcmUgb25seSA4 CmZlbmNlIHJlZ2lzdGVycyBvbiB0aG9zZSBwbGF0Zm9ybXMsIHNvIHRoaXMgaXMgT0suCgo+ICAj ZGVmaW5lIEZCQ19DT01NQU5ECQkweDAzMjBjCj4gICNkZWZpbmUgICBGQkNfQ01EX0NPTVBSRVNT CSgxPDwwKQo+ICAjZGVmaW5lIEZCQ19TVEFUVVMJCTB4MDMyMTAKPiBAQCAtMjA2NCw2ICsyMDY1 LDcgQEAgZW51bSBza2xfZGlzcF9wb3dlcl93ZWxscyB7Cj4gICNkZWZpbmUgICBEUEZDX0NUTF9M SU1JVF8xWAkoMDw8NikKPiAgI2RlZmluZSAgIERQRkNfQ1RMX0xJTUlUXzJYCSgxPDw2KQo+ICAj ZGVmaW5lICAgRFBGQ19DVExfTElNSVRfNFgJKDI8PDYpCj4gKyNkZWZpbmUgICBEUEZDX0NUTF9G RU5DRV9NQVNLCTB4Rgo+ICAjZGVmaW5lIERQRkNfUkVDT01QX0NUTAkJMHgzMjBjCj4gICNkZWZp bmUgICBEUEZDX1JFQ09NUF9TVEFMTF9FTgkoMTw8MjcpCj4gICNkZWZpbmUgICBEUEZDX1JFQ09N UF9TVEFMTF9XTV9TSElGVCAoMTYpCj4gQEAgLTIwODYsNiArMjA4OCw3IEBAIGVudW0gc2tsX2Rp c3BfcG93ZXJfd2VsbHMgewo+ICAjZGVmaW5lICAgRkJDX0NUTF9GQUxTRV9DT0xPUgkoMTw8MTAp Cj4gIC8qIFRoZSBiaXQgMjgtOCBpcyByZXNlcnZlZCAqLwo+ICAjZGVmaW5lICAgRFBGQ19SRVNF UlZFRAkJKDB4MUZGRkZGMDApCj4gKyNkZWZpbmUgICBJTEtfRFBGQ19GRU5DRV9NQVNLCTB4Rgo+ ICAjZGVmaW5lIElMS19EUEZDX1JFQ09NUF9DVEwJMHg0MzIwYwo+ICAjZGVmaW5lIElMS19EUEZD X1NUQVRVUwkJMHg0MzIxMAo+ICAjZGVmaW5lIElMS19EUEZDX0ZFTkNFX1lPRkYJMHg0MzIxOAo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRleCBiYzE5MDdlLi5kOTM3OGMz IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC0xMTUwMiw3ICsx MTUwMiw2IEBAIHN0YXRpYyBpbnQgaW50ZWxfY3J0Y19wYWdlX2ZsaXAoc3RydWN0IGRybV9jcnRj ICpjcnRjLAo+ICAJCQkgIHRvX2ludGVsX3BsYW5lKHByaW1hcnkpLT5mcm9udGJ1ZmZlcl9iaXQp Owo+ICAJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Cj4gIAo+IC0JaW50ZWxfZmJj X2Rpc2FibGVfY3J0YyhpbnRlbF9jcnRjKTsKPiAgCWludGVsX2Zyb250YnVmZmVyX2ZsaXBfcHJl cGFyZShkZXYsCj4gIAkJCQkgICAgICAgdG9faW50ZWxfcGxhbmUocHJpbWFyeSktPmZyb250YnVm ZmVyX2JpdCk7Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXggMDg4NDdkMC4u OTA2NWE4ZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gQEAgLTEzMDUsNiArMTMw NSw4IEBAIHZvaWQgaW50ZWxfZmJjX2ludmFsaWRhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAo+ICAJCQkgIGVudW0gZmJfb3Bfb3JpZ2luIG9yaWdpbik7Cj4gIHZvaWQgaW50 ZWxfZmJjX2ZsdXNoKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCQkgICAg IHVuc2lnbmVkIGludCBmcm9udGJ1ZmZlcl9iaXRzLCBlbnVtIGZiX29wX29yaWdpbiBvcmlnaW4p Owo+ICt2b2lkIGludGVsX2ZiY19mbGlwX3ByZXBhcmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAo+ICsJCQkgICAgdW5zaWduZWQgaW50IGZyb250YnVmZmVyX2JpdHMpOwo+ICB2 b2lkIGludGVsX2ZiY19jbGVhbnVwX2NmYihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpOwo+ICAKPiAgLyogaW50ZWxfaGRtaS5jICovCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2ZiYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMK PiBpbmRleCBkOWQ3ZTU0Li42MmYxNThiIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2ZiYy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMK PiBAQCAtODIsNiArODIsMjIgQEAgc3RhdGljIHZvaWQgaTh4eF9mYmNfZGlzYWJsZShzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAlEUk1fREVCVUdfS01TKCJkaXNhYmxlZCBG QkNcbiIpOwo+ICB9Cj4gIAo+ICtzdGF0aWMgdm9pZCBpOHh4X2ZiY19mbGlwX3ByZXBhcmUoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YyA9IGRldl9wcml2LT5mYmMuY3J0YzsKPiArCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIg KmZiID0gY3J0Yy0+YmFzZS5wcmltYXJ5LT5mYjsKPiArCXN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpvYmogPSBpbnRlbF9mYl9vYmooZmIpOwo+ICsJdWludDMyX3QgdmFsOwo+ICsKPiArCS8q IEFsdGhvdWdoIHRoZSBkb2N1bWVudGF0aW9uIHN1Z2dlc3RzIHdlIGNhbid0IGNoYW5nZSBEUEZD X0NPTlRST0wKPiArCSAqIHdoaWxlIGNvbXByZXNzaW9uIGlzIGVuYWJsZWQsIHRoZSBoYXJkd2Fy ZSBndXlzIHNhaWQgdGhhdCB1cGRhdGluZwo+ICsJICogdGhlIGZlbmNlIHJlZ2lzdGVyIGJpdHMg ZHVyaW5nIGEgZmxpcCBpcyBmaW5lLiAqLwo+ICsJdmFsID0gSTkxNV9SRUFEKEZCQ19DT05UUk9M KTsKPiArCXZhbCAmPSB+RkJDX0NUTF9GRU5DRU5PX01BU0s7Cj4gKwl2YWwgfD0gb2JqLT5mZW5j ZV9yZWc7Cj4gKwlJOTE1X1dSSVRFKEZCQ19DT05UUk9MLCB2YWwpOwo+ICt9CgpJSVJDIEkganVz dCBjYWxsZWQgdGhlIGVuYWJsZSBmdW5jdGlvbiB0byByZWNvbnN0cnVjdCB0aGUgZW50aXJlCnJl Z2lzdGVyIGNvbnRlbnRzIHRvIGF2b2lkIGNvZGUgZHVwbGljYXRpb24uIEJ1dCBtYXliZSB0aGF0 J3Mgbm90CnBvc3NpYmxlIHdpdGhvdXQgcmVvd3JraW5nIHRoZSBmYmMgc3RhdGUgaGFuZGxpbmcg ZW50aXJlbHkKKHdoaWNoIEkgaGFkIGRvbmUpLgoKPiArCj4gIHN0YXRpYyB2b2lkIGk4eHhfZmJj X2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gY3J0Yy0+YmFzZS5kZXYtPmRldl9wcml2YXRlOwo+IEBAIC0x NjEsNiArMTc3LDIyIEBAIHN0YXRpYyB2b2lkIGc0eF9mYmNfZW5hYmxlKHN0cnVjdCBpbnRlbF9j cnRjICpjcnRjKQo+ICAJRFJNX0RFQlVHX0tNUygiZW5hYmxlZCBmYmMgb24gcGxhbmUgJWNcbiIs IHBsYW5lX25hbWUoY3J0Yy0+cGxhbmUpKTsKPiAgfQo+ICAKPiArc3RhdGljIHZvaWQgZzR4X2Zi Y19mbGlwX3ByZXBhcmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICt7Cj4g KwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IGRldl9wcml2LT5mYmMuY3J0YzsKPiArCXN0cnVj dCBkcm1fZnJhbWVidWZmZXIgKmZiID0gY3J0Yy0+YmFzZS5wcmltYXJ5LT5mYjsKPiArCXN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSBpbnRlbF9mYl9vYmooZmIpOwo+ICsJdWludDMy X3QgdmFsOwo+ICsKPiArCS8qIEFsdGhvdWdoIHRoZSBkb2N1bWVudGF0aW9uIHN1Z2dlc3RzIHdl IGNhbid0IGNoYW5nZSBEUEZDX0NPTlRST0wKPiArCSAqIHdoaWxlIGNvbXByZXNzaW9uIGlzIGVu YWJsZWQsIHRoZSBoYXJkd2FyZSBndXlzIHNhaWQgdGhhdCB1cGRhdGluZwo+ICsJICogdGhlIGZl bmNlIHJlZ2lzdGVyIGJpdHMgZHVyaW5nIGEgZmxpcCBpcyBmaW5lLiAqLwo+ICsJdmFsID0gSTkx NV9SRUFEKERQRkNfQ09OVFJPTCk7Cj4gKwl2YWwgJj0gfkRQRkNfQ1RMX0ZFTkNFX01BU0s7Cj4g Kwl2YWwgfD0gb2JqLT5mZW5jZV9yZWc7Cj4gKwlJOTE1X1dSSVRFKERQRkNfQ09OVFJPTCwgdmFs KTsKPiArfQo+ICsKPiAgc3RhdGljIHZvaWQgZzR4X2ZiY19kaXNhYmxlKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKPiAgewo+ICAJdTMyIGRwZmNfY3RsOwo+IEBAIC0yMzYsNiAr MjY4LDMxIEBAIHN0YXRpYyB2b2lkIGlsa19mYmNfZW5hYmxlKHN0cnVjdCBpbnRlbF9jcnRjICpj cnRjKQo+ICAJRFJNX0RFQlVHX0tNUygiZW5hYmxlZCBmYmMgb24gcGxhbmUgJWNcbiIsIHBsYW5l X25hbWUoY3J0Yy0+cGxhbmUpKTsKPiAgfQo+ICAKPiArc3RhdGljIHZvaWQgaWxrX2ZiY19mbGlw X3ByZXBhcmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICt7Cj4gKwlzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IGRldl9wcml2LT5mYmMuY3J0YzsKPiArCXN0cnVjdCBkcm1f ZnJhbWVidWZmZXIgKmZiID0gY3J0Yy0+YmFzZS5wcmltYXJ5LT5mYjsKPiArCXN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpvYmogPSBpbnRlbF9mYl9vYmooZmIpOwo+ICsJdWludDMyX3QgdmFs Owo+ICsKPiArCS8qIEFsdGhvdWdoIHRoZSBkb2N1bWVudGF0aW9uIHN1Z2dlc3RzIHdlIGNhbid0 IGNoYW5nZSBEUEZDX0NPTlRST0wKPiArCSAqIHdoaWxlIGNvbXByZXNzaW9uIGlzIGVuYWJsZWQs IHRoZSBoYXJkd2FyZSBndXlzIHNhaWQgdGhhdCB1cGRhdGluZwo+ICsJICogdGhlIGZlbmNlIHJl Z2lzdGVyIGJpdHMgZHVyaW5nIGEgZmxpcCBpcyBmaW5lLiAqLwo+ICsJdmFsID0gSTkxNV9SRUFE KElMS19EUEZDX0NPTlRST0wpOwo+ICsJdmFsICY9IH5JTEtfRFBGQ19GRU5DRV9NQVNLOwo+ICsJ dmFsIHw9IG9iai0+ZmVuY2VfcmVnOwo+ICsJSTkxNV9XUklURShJTEtfRFBGQ19DT05UUk9MLCB2 YWwpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBzbmJfZmJjX2ZsaXBfcHJlcGFyZShzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9jcnRjICpj cnRjID0gZGV2X3ByaXYtPmZiYy5jcnRjOwo+ICsJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIg PSBjcnRjLT5iYXNlLnByaW1hcnktPmZiOwo+ICsJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qg Km9iaiA9IGludGVsX2ZiX29iaihmYik7Cj4gKwo+ICsJSTkxNV9XUklURShTTkJfRFBGQ19DVExf U0EsIFNOQl9DUFVfRkVOQ0VfRU5BQkxFIHwgb2JqLT5mZW5jZV9yZWcpOwo+ICt9Cj4gKwo+ICBz dGF0aWMgdm9pZCBpbGtfZmJjX2Rpc2FibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQo+ICB7Cj4gIAl1MzIgZHBmY19jdGw7Cj4gQEAgLTEwMjEsMTMgKzEwNzgsNDggQEAgdm9p ZCBpbnRlbF9mYmNfZmx1c2goc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJ aWYgKG9yaWdpbiA9PSBPUklHSU5fR1RUKQo+ICAJCXJldHVybjsKPiAgCj4gKwkvKiBIYXJkd2Fy ZSB0cmFja2luZyBhbHJlYWR5IHJlY29tcHJlc3NlcyB0aGUgQ0ZCIChudWtlKSBmb3IgdXMgaWYg RkJDCj4gKwkgKiBpcyBlbmFibGVkIGFuZCB3ZSBkbyBhIHBhZ2UgZmxpcCwgc28gd2UgY2FuIHNh ZmVseSBpZ25vcmUgaXQgaGVyZS4KPiArCSAqIEZCQyBtYXkgYmUgZGlzYWJsZWQgaW4gY2FzZSB3 ZSBnb3QgYW4gaW52YWxpZGF0ZSgpIGJlZm9yZSB0aGUKPiArCSAqIGZsdXNoKCksIHNvIHdlJ2xs IHN0aWxsIGhhdmUgdG8gY2hlY2sgdGhhdCBjYXNlIGJlbG93LiAqLwo+ICsJaWYgKG9yaWdpbiA9 PSBPUklHSU5fRkxJUCAmJiBkZXZfcHJpdi0+ZmJjLmVuYWJsZWQpCj4gKwkJcmV0dXJuOwo+ICsK PiAgCW11dGV4X2xvY2soJmRldl9wcml2LT5mYmMubG9jayk7Cj4gIAo+ICAJZGV2X3ByaXYtPmZi Yy5idXN5X2JpdHMgJj0gfmZyb250YnVmZmVyX2JpdHM7Cj4gIAo+ICAJaWYgKCFkZXZfcHJpdi0+ ZmJjLmJ1c3lfYml0cykgewo+IC0JCV9faW50ZWxfZmJjX2Rpc2FibGUoZGV2X3ByaXYpOwo+IC0J CV9faW50ZWxfZmJjX3VwZGF0ZShkZXZfcHJpdik7Cj4gKwkJaWYgKG9yaWdpbiA9PSBPUklHSU5f RkxJUCkgewo+ICsJCQlfX2ludGVsX2ZiY191cGRhdGUoZGV2X3ByaXYpOwo+ICsJCX0gZWxzZSB7 Cj4gKwkJCV9faW50ZWxfZmJjX2Rpc2FibGUoZGV2X3ByaXYpOwo+ICsJCQlfX2ludGVsX2ZiY191 cGRhdGUoZGV2X3ByaXYpOwo+ICsJCX0KPiArCX0KPiArCj4gKwltdXRleF91bmxvY2soJmRldl9w cml2LT5mYmMubG9jayk7Cj4gK30KPiArCj4gK3ZvaWQgaW50ZWxfZmJjX2ZsaXBfcHJlcGFyZShz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gKwkJCSAgICB1bnNpZ25lZCBpbnQg ZnJvbnRidWZmZXJfYml0cykKPiArewo+ICsJdW5zaWduZWQgaW50IGZiY19iaXRzOwo+ICsKPiAr CWlmICghZmJjX3N1cHBvcnRlZChkZXZfcHJpdikpCj4gKwkJcmV0dXJuOwo+ICsKPiArCW11dGV4 X2xvY2soJmRldl9wcml2LT5mYmMubG9jayk7Cj4gKwo+ICsJaWYgKGRldl9wcml2LT5mYmMuZW5h YmxlZCkgewo+ICsJCWZiY19iaXRzID0gSU5URUxfRlJPTlRCVUZGRVJfUFJJTUFSWShkZXZfcHJp di0+ZmJjLmNydGMtPnBpcGUpOwoKcHJpbWFyeS0+ZnJvbnRidWZmZXJfYml0IHdvdWxkIHNlZW0g YmV0dGVyLgoKPiArCQlpZiAoZmJjX2JpdHMgJiBmcm9udGJ1ZmZlcl9iaXRzKQo+ICsJCQlkZXZf cHJpdi0+ZmJjLmZsaXBfcHJlcGFyZShkZXZfcHJpdik7CgpZb3Ugd291bGQgc3RpbGwgaGF2ZSB0 byBkaXNhYmxlK3JlZW5hYmxlIGlmIHlvdSBuZWVkIHRvIGVnLiByZWFsbG9jYXRlCnRoZSBjb21w cmVzc2VkIGJ1ZmZlciwgb2YgaWYgdGhlIG5ldyBmYiBpc24ndCBzdWl0YWJsZSBmb3IgZmJjLCBv ciBtYXliZQppZiB5b3UgbmVlZCB0byBjaGFuZ2UgYW55dGhpbmcgZWxzZSBpbiB0aGUgY29udHJv bCByZWdpc3Rlci4KCldoYXQgSSBoYWQgd2FzOgoiCnN0YXRpYyBib29sIGludGVsX2ZiY19uZWVk X3JlaW5pdChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKewoJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gY3J0Yy0+YmFzZS5kZXYtPmRldl9wcml2YXRlOwoJc3RydWN0IGRybV9m cmFtZWJ1ZmZlciAqZmIgPSBjcnRjLT5iYXNlLnByaW1hcnktPmZiOwoJc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iaiA9IHRvX2ludGVsX2ZyYW1lYnVmZmVyKGZiKS0+b2JqOwoKCXJldHVy biBjcnRjICE9IGRldl9wcml2LT5mYmMuY3J0YyB8fAoJICAgICAgIG9iai0+YmFzZS5zaXplID4g ZGV2X3ByaXYtPmZiYy5zaXplIHx8CgkgICAgICAgZHJtX2Zvcm1hdF9wbGFuZV9jcHAoZmItPnBp eGVsX2Zvcm1hdCwgMCkgIT0KCSAgICAgICBkcm1fZm9ybWF0X3BsYW5lX2NwcChkZXZfcHJpdi0+ ZmJjLnBpeGVsX2Zvcm1hdCwgMCkgfHwKCSAgICAgICBmYi0+cGl0Y2hlc1swXSAhPSBkZXZfcHJp di0+ZmJjLnBpdGNoOwp9CmludGVsX2ZiY19wcmVfcGFnZV9mbGlwKCkKewoJLi4uCglpbnRlbF9m YmNfdXBkYXRlX3BlbmRpbmdfc2NvcmUoY3J0Yyk7CgoJLyoKCSAqIElmIGZiYyB3YXMgYWxyZWFk eSBwb3NzaWJsZSB3ZSBjYW4gdXBkYXRlIGltbWVkaWF0ZWx5LAoJICogb3RoZXJ3aXNlIHdlIHdp bGwgd2FpdCB1bnRpbCB0aGUgZmxpcCBpcyBmaW5pc2hlZC4KCSAqLwoJaWYgKGNydGMtPmZiYy5z Y29yZSAhPSAwKQoJCWNydGMtPmZiYy5zY29yZSA9IGNydGMtPmZiYy5wZW5kaW5nX3Njb3JlOwoK CS8qCgkgKiBEaXNhYmxlIGZiYyBpZiB3ZSdyZSBub3QgKHlldCkgY2FwYWJsZSwgb3IgaWYKCSAq IHdlIGp1c3QgbmVlZCBhIGZ1bGwgZGlzYWJsZStlbmFibGUgcmVpbml0LgoJICovCglpZiAoY3J0 Yy0+ZmJjLnNjb3JlID09IDAgfHwgaW50ZWxfZmJjX25lZWRfcmVpbml0KGNydGMpKQoJCV9faW50 ZWxfZmJjX2Rpc2FibGUoY3J0Yyk7CgkuLi4KfQoiCgo+ICsJfSBlbHNlIGlmIChkZXZfcHJpdi0+ ZmJjLmZiY193b3JrKSB7Cj4gKwkJZmJjX2JpdHMgPSBJTlRFTF9GUk9OVEJVRkZFUl9QUklNQVJZ KAo+ICsJCQkJZGV2X3ByaXYtPmZiYy5mYmNfd29yay0+Y3J0Yy0+cGlwZSk7Cj4gKwkJaWYgKGZi Y19iaXRzICYgZnJvbnRidWZmZXJfYml0cykKPiArCQkJX19pbnRlbF9mYmNfZGlzYWJsZShkZXZf cHJpdik7Cj4gIAl9Cj4gIAo+ICAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZmJjLmxvY2spOwo+ IEBAIC0xMDYzLDE4ICsxMTU1LDI1IEBAIHZvaWQgaW50ZWxfZmJjX2luaXQoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAJCWRldl9wcml2LT5mYmMuZmJjX2VuYWJsZWQgPSBp bGtfZmJjX2VuYWJsZWQ7Cj4gIAkJZGV2X3ByaXYtPmZiYy5lbmFibGVfZmJjID0gZ2VuN19mYmNf ZW5hYmxlOwo+ICAJCWRldl9wcml2LT5mYmMuZGlzYWJsZV9mYmMgPSBpbGtfZmJjX2Rpc2FibGU7 Cj4gKwkJZGV2X3ByaXYtPmZiYy5mbGlwX3ByZXBhcmUgPSBzbmJfZmJjX2ZsaXBfcHJlcGFyZTsK PiAgCX0gZWxzZSBpZiAoSU5URUxfSU5GTyhkZXZfcHJpdiktPmdlbiA+PSA1KSB7Cj4gIAkJZGV2 X3ByaXYtPmZiYy5mYmNfZW5hYmxlZCA9IGlsa19mYmNfZW5hYmxlZDsKPiAgCQlkZXZfcHJpdi0+ ZmJjLmVuYWJsZV9mYmMgPSBpbGtfZmJjX2VuYWJsZTsKPiAgCQlkZXZfcHJpdi0+ZmJjLmRpc2Fi bGVfZmJjID0gaWxrX2ZiY19kaXNhYmxlOwo+ICsJCWlmIChJTlRFTF9JTkZPKGRldl9wcml2KS0+ Z2VuID09IDUpCj4gKwkJCWRldl9wcml2LT5mYmMuZmxpcF9wcmVwYXJlID0gaWxrX2ZiY19mbGlw X3ByZXBhcmU7Cj4gKwkJZWxzZQo+ICsJCQlkZXZfcHJpdi0+ZmJjLmZsaXBfcHJlcGFyZSA9IHNu Yl9mYmNfZmxpcF9wcmVwYXJlOwo+ICAJfSBlbHNlIGlmIChJU19HTTQ1KGRldl9wcml2KSkgewo+ ICAJCWRldl9wcml2LT5mYmMuZmJjX2VuYWJsZWQgPSBnNHhfZmJjX2VuYWJsZWQ7Cj4gIAkJZGV2 X3ByaXYtPmZiYy5lbmFibGVfZmJjID0gZzR4X2ZiY19lbmFibGU7Cj4gIAkJZGV2X3ByaXYtPmZi Yy5kaXNhYmxlX2ZiYyA9IGc0eF9mYmNfZGlzYWJsZTsKPiArCQlkZXZfcHJpdi0+ZmJjLmZsaXBf cHJlcGFyZSA9IGc0eF9mYmNfZmxpcF9wcmVwYXJlOwo+ICAJfSBlbHNlIHsKPiAgCQlkZXZfcHJp di0+ZmJjLmZiY19lbmFibGVkID0gaTh4eF9mYmNfZW5hYmxlZDsKPiAgCQlkZXZfcHJpdi0+ZmJj LmVuYWJsZV9mYmMgPSBpOHh4X2ZiY19lbmFibGU7Cj4gIAkJZGV2X3ByaXYtPmZiYy5kaXNhYmxl X2ZiYyA9IGk4eHhfZmJjX2Rpc2FibGU7Cj4gKwkJZGV2X3ByaXYtPmZiYy5mbGlwX3ByZXBhcmUg PSBpOHh4X2ZiY19mbGlwX3ByZXBhcmU7Cj4gIAo+ICAJCS8qIFRoaXMgdmFsdWUgd2FzIHB1bGxl ZCBvdXQgb2Ygc29tZW9uZSdzIGhhdCAqLwo+ICAJCUk5MTVfV1JJVEUoRkJDX0NPTlRST0wsIDUw MCA8PCBGQkNfQ1RMX0lOVEVSVkFMX1NISUZUKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZnJvbnRidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Zyb250YnVmZmVyLmMKPiBpbmRleCBhYzg1MzU3Li4zMWExYWQzIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Zyb250YnVmZmVyLmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9mcm9udGJ1ZmZlci5jCj4gQEAgLTE5Miw2ICsxOTIsNyBAQCB2b2lk IGludGVsX2Zyb250YnVmZmVyX2ZsaXBfcHJlcGFyZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ ICAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZmJfdHJhY2tpbmcubG9jayk7Cj4gIAo+ICAJaW50 ZWxfcHNyX3NpbmdsZV9mcmFtZV91cGRhdGUoZGV2LCBmcm9udGJ1ZmZlcl9iaXRzKTsKPiArCWlu dGVsX2ZiY19mbGlwX3ByZXBhcmUoZGV2X3ByaXYsIGZyb250YnVmZmVyX2JpdHMpOwo+ICB9Cj4g IAo+ICAvKioKPiAtLSAKPiAyLjYuMQo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsIE9UQwpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=