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:40:41 +0300 Message-ID: <20151021074041.GU26517@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> <20151021071250.GS26517@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id AADB06E8FB for ; Wed, 21 Oct 2015 00:40:45 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20151021071250.GS26517@intel.com> 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 T24gV2VkLCBPY3QgMjEsIDIwMTUgYXQgMTA6MTI6NTBBTSArMDMwMCwgVmlsbGUgU3lyasOkbMOk IHdyb3RlOgo+IE9uIFdlZCwgT2N0IDIxLCAyMDE1IGF0IDA5OjA0OjM5QU0gKzAyMDAsIERhbmll bCBWZXR0ZXIgd3JvdGU6Cj4gPiBPbiBUdWUsIE9jdCAyMCwgMjAxNSBhdCAxMTo0OTo0OEFNIC0w MjAwLCBQYXVsbyBaYW5vbmkgd3JvdGU6Cj4gPiA+IFRoZSBoYXJkd2FyZSBhbHJlYWR5IHRha2Vz IGNhcmUgb2YgZGlzYWJsaW5nIGFuZCByZWNvbXByZXNzaW5nIEZCQwo+ID4gPiB3aGVuIHdlIGRv IGEgcGFnZSBmbGlwLCBzbyBhbGwgd2UgbmVlZCB0byBkbyBpcyB0byB1cGRhdGUgdGhlIGZlbmNl Cj4gPiA+IHJlZ2lzdGVycyBhbmQgbW92ZSBvbi4KPiA+ID4gCj4gPiA+IE9uZSBvZiB0aGUgaW1w b3J0YW50IHRoaW5ncyB0byBub3RpY2UgaXMgdGhhdCBvbiB0aGUgcHJlLWdlbjYKPiA+ID4gcGxh dGZvcm1zIHRoZSBmZW5jZSBpcyBwcm9ncmFtbWVkIG9uIHRoZSBGQkMgY29udHJvbCByZWdpc3Rl ciBhbmQgdGhlCj4gPiA+IGRvY3VtZW50YXRpb24gc2F5cyB3ZSBjYW4ndCB1cGRhdGUgdGhlIGNv bnRyb2wgcmVnaXN0ZXIgd2hpbGUgRkJDIGlzCj4gPiA+IGVuYWJsZWQuIFRoaXMgd291bGQgYmFz aWNhbGx5IG1lYW4gd2UnZCBoYXZlIHRvIHRvIGRpc2FibGUrZW5hYmxlIEZCQwo+ID4gPiBhdCBl dmVyeSBmbGlwIGluIG9yZGVyIHRvIG1ha2Ugc3VyZSB0aGUgaGFyZHdhcmUgdHJhY2tpbmcgc3Rp bGwgd29ya3MsCj4gPiA+IHdoaWNoIGRvZXNuJ3Qgc2VlbSB0byBtYWtlIHRvbyBtdWNoIHNlbnNl LiBTbyBJIHNlbnQgYW4gZW1haWwgdG8gdGhlCj4gPiA+IGhhcmR3YXJlIHRlYW0gcmVxdWVzdGlu ZyBzb21lIGNsYXJpZmljYXRpb24uIFRoZSBpbmZvcm1hdGlvbiBJIGdvdCB3YXMKPiA+ID4gdGhp czoKPiA+ID4gCj4gPiA+ICJJIGRvbid0IHRoaW5rIGFueSBoYXJkd2FyZSBpcyBsYXRjaGluZyBv biB0byAweDEwMDEwMCwgMHgxMDAxMDQsIG9yCj4gPiA+IHRoZSBvbGQgZmVuY2UgbnVtYmVyIGlu IEZCQ19DVEwuIEluc3RydWN0aW9ucyBhZ2FpbnN0IGNoYW5naW5nIG9uIHRoZQo+ID4gPiBmbHkg d291bGQgYmUgdG8gc2ltcGxpZnkgdGVzdGluZyBhbmQgZW5zdXJlIHlvdSBkb24ndCBtaXNzIGFu eQo+ID4gPiBpbnZhbGlkYXRpb24gdGhhdCBoYXBwZW5lZCByaWdodCBhdCB0aGF0IHRpbWUuIgo+ ID4gPiAKPiA+ID4gU28gSSBndWVzcyB3ZSdyZSBmaW5lIGZvciBmbGlwcy4gQnV0IEkgY2FuJ3Qg cmVhbGx5IHNheSBJIHRlc3RlZCBGQkMKPiA+ID4gb24gdGhlc2UgYW5jaWVudCBwbGF0Zm9ybXMg LSBub3IgdGhhdCBJJ2xsIGV2ZXIgcHJvcG9zZSBlbmFibGluZyBGQkMKPiA+ID4gYnkgZGVmYXVs dCBvbiB0aGVtIGV4YWN0bHkgYmVjYXVzZSBvZiBwcm9ibGVtcyBsaWtlIHRoZXNlLgo+ID4gPiAK PiA+ID4gVGVzdGNhc2U6IGlndC9rbXNfZnJvbnRidWZmZXJfdHJhY2tpbmcvZmJjKi1mbGlwdHJh Y2sKPiA+ID4gU2lnbmVkLW9mZi1ieTogUGF1bG8gWmFub25pIDxwYXVsby5yLnphbm9uaUBpbnRl bC5jb20+Cj4gPiAKPiA+IElpcmMgb24gcHJlLWc0eCBmbGlwcyBkb24ndCBpbnZhbGlkYXRlIHRo ZSBmYmMgY29tcHJlc3Npb24sIGFuZCB3ZSBkbwo+ID4gYWN0dWFsbHkgaGF2ZSB0byBkaXNhYmxl IGZiYyBlbnRpcmVseS4KPiAKPiBOb3BlLiBBdCBsZWFzdCBteSBnZW4yIHdhcyBkb2luZyBmaW5l IHdpdGggaHcgZmxpcCBudWtlID4xIHllYXIgYWdvLgoKRG91YmxlIGNoZWNrZWQgdGhlIHNwZWMs IGFuZCBpdCdzIGNvbnRyYWRpY3RvcnkuCgpJbiBvbiBwbGFjZSBpdCBzYXlzIgoiMi4gQXN5bmMg RmxpcHMgYW5kL29yIHBhbm5pbmcgb2YgRGlzcGxheSBQbGFuZSBBIGlzIG5vdCBwZXJtaXR0ZWQu CiAzLiBTeW5jIGZsaXBzIG9mIERpc3BsYXkgUGxhbmUgQSBhcmUgcGVybWl0dGVkLCBnaXZlbiB0 aGF0IG9ubHkgdGhlCiAgICBzb3VyY2UgYnVmZmVyIGFkZHJlc3MgaXMgY2hhbmdlZCAoYW5kIG5v dGUgdGhhdCBpdCBpcyBVTkRFRklORUQgCiAgICB0byBmbGlwIHRvIHRoZSBjdXJyZW50bHktZGlz cGxheWVkIGJ1ZmZlcikuIE90aGVyIHNvdXJjZSBkaXNwbGF5CiAgICBidWZmZXIgcGFyYW1ldGVy cyBtdXN0IGJlIGtlcHQgaW4gc3luY2ggd2l0aCB0aGUgRkJDIGNvbnRyb2wKICAgIHBhcmFtZXRl cnMgKHdoaWNoIHdpbGwgcmVxdWlyZSBSTEUtRkJDIHRvIGZpcnN0IGJlIGRpc2FibGVkKS4iCgpJ IGhhdmUgbm8gaWRlYSB3aGF0IGl0IHRoaW5rcyBpcyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHBh bm5pbmcgYW5kCnN5bmMgZmxpcHMgb24gZ2VuMi4KCkluIGFub3RoZXIgcGxhY2UgaXQgc2F5czoK IkFsbCBsaW5lcyB3aWxsIGJlIG1hcmtlZCBhcyBtb2RpZmllZCB3aGVuZXZlcjoKLSB1bmNvbXBy ZXNzZWQgc291cmNlIEZyYW1lIEJ1ZmZlciBiYXNlIGFkZHJlc3MgY2hhbmdlcyAodGhpcyBpcyBv bmx5IHBlcm1pdHRlZCB0byBoYXBwZW4gYXMgYSByZXN1bHQgb2YgYQogIGRpcmVjdCByZWdpc3Rl ciB3cml0ZSDigJMgZmxpcHMgb2YgRGlzcGxheSBQbGFuZSBBIGFyZSBub3QgYWxsb3dlZCB3aGVu IFJMRS1GQkMgaXMgZW5hYmxlZCkiCgpCdXQgSUlSQyBDUyBmbGlwcyB3b3JrZWQganVzdCBmaW5l IG9uIG15IDg1NS4KCj4gCj4gPiBUaGVyZSdzIHNvbWUgZnVua3kgbGFuZ3VhZ2UgdGhhdCBpZgo+ ID4geW91IHdhbnQgdG8gZmxpcCB3aXRoIGZiYyB5b3UgaGF2ZSB0byB0cmFjayB0aGUgbmV3IGJh Y2tidWZmZXIuCj4gPiAKPiA+IFNvIEknbSBub3QgZW50aXJlbHkgc3VyZSB0aGlzIGlzIGNvcnJl Y3QgZm9yIHRoZSBpOHggY2FzZS4gT3RvaCB3ZSBkb24ndAo+ID4gZXZlciBlbmFibGUgaXQsIHNv IHdlIGNvdWxkIGFsc28ganVzdCBudWtlIHRoZSBpOHggZmJjIGNvZGUuIEVpdGhlciB3YXkgaXQK PiA+IGRvZXNuJ3QgbWF0dGVyIHRvIG11Y2guCj4gPiAKPiA+ID4gLS0tCj4gPiA+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgIHwgIDEgKwo+ID4gPiAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAgICAgICAgICB8ICAzICsKPiA+ID4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyAgICAgfCAgMSAtCj4gPiA+ICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgICAgIHwgIDIgKwo+ID4gPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZmJjLmMgICAgICAgICB8IDk4ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKystCj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mcm9udGJ1ZmZlci5jIHwg IDEgKwo+ID4gPiAgNiBmaWxlcyBjaGFuZ2VkLCAxMDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlv bnMoLSkKPiA+ID4gCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4gPiBpbmRleCBjMzM0 NTI1Li5mMDRmNTZmIDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+ID4g QEAgLTkzMCw2ICs5MzAsNyBAQCBzdHJ1Y3QgaTkxNV9mYmMgewo+ID4gPiAgCWJvb2wgKCpmYmNf ZW5hYmxlZCkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiA+ID4gIAl2b2lk ICgqZW5hYmxlX2ZiYykoc3RydWN0IGludGVsX2NydGMgKmNydGMpOwo+ID4gPiAgCXZvaWQgKCpk aXNhYmxlX2ZiYykoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiA+ID4gKwl2 b2lkICgqZmxpcF9wcmVwYXJlKShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ ID4gPiAgfTsKPiA+ID4gIAo+ID4gPiAgLyoqCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ ID4gPiBpbmRleCA5ZWJmMDMyLi4zNjIwYjU5IDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcmVnLmgKPiA+ID4gQEAgLTIwMjgsNiArMjAyOCw3IEBAIGVudW0gc2tsX2Rpc3BfcG93ZXJf d2VsbHMgewo+ID4gPiAgI2RlZmluZSAgIEZCQ19DVExfQzNfSURMRQkoMTw8MTMpCj4gPiA+ICAj ZGVmaW5lICAgRkJDX0NUTF9TVFJJREVfU0hJRlQJKDUpCj4gPiA+ICAjZGVmaW5lICAgRkJDX0NU TF9GRU5DRU5PX1NISUZUCSgwKQo+ID4gPiArI2RlZmluZSAgIEZCQ19DVExfRkVOQ0VOT19NQVNL CTB4Rgo+ID4gPiAgI2RlZmluZSBGQkNfQ09NTUFORAkJMHgwMzIwYwo+ID4gPiAgI2RlZmluZSAg IEZCQ19DTURfQ09NUFJFU1MJKDE8PDApCj4gPiA+ICAjZGVmaW5lIEZCQ19TVEFUVVMJCTB4MDMy MTAKPiA+ID4gQEAgLTIwNjQsNiArMjA2NSw3IEBAIGVudW0gc2tsX2Rpc3BfcG93ZXJfd2VsbHMg ewo+ID4gPiAgI2RlZmluZSAgIERQRkNfQ1RMX0xJTUlUXzFYCSgwPDw2KQo+ID4gPiAgI2RlZmlu ZSAgIERQRkNfQ1RMX0xJTUlUXzJYCSgxPDw2KQo+ID4gPiAgI2RlZmluZSAgIERQRkNfQ1RMX0xJ TUlUXzRYCSgyPDw2KQo+ID4gPiArI2RlZmluZSAgIERQRkNfQ1RMX0ZFTkNFX01BU0sJMHhGCj4g PiA+ICAjZGVmaW5lIERQRkNfUkVDT01QX0NUTAkJMHgzMjBjCj4gPiA+ICAjZGVmaW5lICAgRFBG Q19SRUNPTVBfU1RBTExfRU4JKDE8PDI3KQo+ID4gPiAgI2RlZmluZSAgIERQRkNfUkVDT01QX1NU QUxMX1dNX1NISUZUICgxNikKPiA+ID4gQEAgLTIwODYsNiArMjA4OCw3IEBAIGVudW0gc2tsX2Rp c3BfcG93ZXJfd2VsbHMgewo+ID4gPiAgI2RlZmluZSAgIEZCQ19DVExfRkFMU0VfQ09MT1IJKDE8 PDEwKQo+ID4gPiAgLyogVGhlIGJpdCAyOC04IGlzIHJlc2VydmVkICovCj4gPiA+ICAjZGVmaW5l ICAgRFBGQ19SRVNFUlZFRAkJKDB4MUZGRkZGMDApCj4gPiA+ICsjZGVmaW5lICAgSUxLX0RQRkNf RkVOQ0VfTUFTSwkweEYKPiA+ID4gICNkZWZpbmUgSUxLX0RQRkNfUkVDT01QX0NUTAkweDQzMjBj Cj4gPiA+ICAjZGVmaW5lIElMS19EUEZDX1NUQVRVUwkJMHg0MzIxMAo+ID4gPiAgI2RlZmluZSBJ TEtfRFBGQ19GRU5DRV9ZT0ZGCTB4NDMyMTgKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYwo+ID4gPiBpbmRleCAxZmMxZDI0Li5lODNhNDI4IDEwMDY0NAo+ID4gPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+ID4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiA+IEBAIC0xMTQ3MCw3ICsxMTQ3MCw2IEBA IHN0YXRpYyBpbnQgaW50ZWxfY3J0Y19wYWdlX2ZsaXAoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ ID4gPiAgCQkJICB0b19pbnRlbF9wbGFuZShwcmltYXJ5KS0+ZnJvbnRidWZmZXJfYml0KTsKPiA+ ID4gIAltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKPiA+ID4gIAo+ID4gPiAtCWlu dGVsX2ZiY19kaXNhYmxlX2NydGMoaW50ZWxfY3J0Yyk7Cj4gPiA+ICAJaW50ZWxfZnJvbnRidWZm ZXJfZmxpcF9wcmVwYXJlKGRldiwKPiA+ID4gIAkJCQkgICAgICAgdG9faW50ZWxfcGxhbmUocHJp bWFyeSktPmZyb250YnVmZmVyX2JpdCk7Cj4gPiA+ICAKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmgKPiA+ID4gaW5kZXggZGM1NWU0Yy4uMWUwOGM4YSAxMDA2NDQKPiA+ID4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHJ2LmgKPiA+ID4gQEAgLTEyODcsNiArMTI4Nyw4IEBAIHZvaWQgaW50ZWxf ZmJjX2ludmFsaWRhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gPiAg CQkJICBlbnVtIGZiX29wX29yaWdpbiBvcmlnaW4pOwo+ID4gPiAgdm9pZCBpbnRlbF9mYmNfZmx1 c2goc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gPiAgCQkgICAgIHVuc2ln bmVkIGludCBmcm9udGJ1ZmZlcl9iaXRzLCBlbnVtIGZiX29wX29yaWdpbiBvcmlnaW4pOwo+ID4g PiArdm9pZCBpbnRlbF9mYmNfZmxpcF9wcmVwYXJlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKPiA+ID4gKwkJCSAgICB1bnNpZ25lZCBpbnQgZnJvbnRidWZmZXJfYml0cyk7Cj4g PiA+ICB2b2lkIGludGVsX2ZiY19jbGVhbnVwX2NmYihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpOwo+ID4gPiAgCj4gPiA+ICAvKiBpbnRlbF9oZG1pLmMgKi8KPiA+ID4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiYy5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZmJjLmMKPiA+ID4gaW5kZXggZDlkN2U1NC4uOTQ3NzM3OSAxMDA2NDQKPiA+ ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMKPiA+ID4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMKPiA+ID4gQEAgLTgyLDYgKzgyLDIyIEBAIHN0 YXRpYyB2b2lkIGk4eHhfZmJjX2Rpc2FibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQo+ID4gPiAgCURSTV9ERUJVR19LTVMoImRpc2FibGVkIEZCQ1xuIik7Cj4gPiA+ICB9Cj4g PiA+ICAKPiA+ID4gK3N0YXRpYyB2b2lkIGk4eHhfZmJjX2ZsaXBfcHJlcGFyZShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gPiA+ICt7Cj4gPiA+ICsJc3RydWN0IGludGVsX2Ny dGMgKmNydGMgPSBkZXZfcHJpdi0+ZmJjLmNydGM7Cj4gPiA+ICsJc3RydWN0IGRybV9mcmFtZWJ1 ZmZlciAqZmIgPSBjcnRjLT5iYXNlLnByaW1hcnktPmZiOwo+ID4gPiArCXN0cnVjdCBkcm1faTkx NV9nZW1fb2JqZWN0ICpvYmogPSBpbnRlbF9mYl9vYmooZmIpOwo+ID4gPiArCXVpbnQzMl90IHZh bDsKPiA+ID4gKwo+ID4gPiArCS8qIEFsdGhvdWdoIHRoZSBkb2N1bWVudGF0aW9uIHN1Z2dlc3Rz IHdlIGNhbid0IGNoYW5nZSBEUEZDX0NPTlRST0wKPiA+ID4gKwkgKiB3aGlsZSBjb21wcmVzc2lv biBpcyBlbmFibGVkLCB0aGUgaGFyZHdhcmUgZ3V5cyBzYWlkIHRoYXQgdXBkYXRpbmcKPiA+ID4g KwkgKiB0aGUgZmVuY2UgcmVnaXN0ZXIgYml0cyBkdXJpbmcgYSBmbGlwIGlzIGZpbmUuICovCj4g PiA+ICsJdmFsID0gSTkxNV9SRUFEKEZCQ19DT05UUk9MKTsKPiA+ID4gKwl2YWwgJj0gfkZCQ19D VExfRkVOQ0VOT19NQVNLOwo+ID4gPiArCXZhbCB8PSBvYmotPmZlbmNlX3JlZzsKPiA+ID4gKwlJ OTE1X1dSSVRFKEZCQ19DT05UUk9MLCB2YWwpOwo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICBzdGF0 aWMgdm9pZCBpOHh4X2ZiY19lbmFibGUoc3RydWN0IGludGVsX2NydGMgKmNydGMpCj4gPiA+ICB7 Cj4gPiA+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gY3J0Yy0+YmFzZS5k ZXYtPmRldl9wcml2YXRlOwo+ID4gPiBAQCAtMTYxLDYgKzE3NywyMiBAQCBzdGF0aWMgdm9pZCBn NHhfZmJjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKPiA+ID4gIAlEUk1fREVCVUdf S01TKCJlbmFibGVkIGZiYyBvbiBwbGFuZSAlY1xuIiwgcGxhbmVfbmFtZShjcnRjLT5wbGFuZSkp Owo+ID4gPiAgfQo+ID4gPiAgCj4gPiA+ICtzdGF0aWMgdm9pZCBnNHhfZmJjX2ZsaXBfcHJlcGFy ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gPiA+ICt7Cj4gPiA+ICsJc3Ry dWN0IGludGVsX2NydGMgKmNydGMgPSBkZXZfcHJpdi0+ZmJjLmNydGM7Cj4gPiA+ICsJc3RydWN0 IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBjcnRjLT5iYXNlLnByaW1hcnktPmZiOwo+ID4gPiArCXN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSBpbnRlbF9mYl9vYmooZmIpOwo+ID4gPiAr CXVpbnQzMl90IHZhbDsKPiA+ID4gKwo+ID4gPiArCS8qIEFsdGhvdWdoIHRoZSBkb2N1bWVudGF0 aW9uIHN1Z2dlc3RzIHdlIGNhbid0IGNoYW5nZSBEUEZDX0NPTlRST0wKPiA+ID4gKwkgKiB3aGls ZSBjb21wcmVzc2lvbiBpcyBlbmFibGVkLCB0aGUgaGFyZHdhcmUgZ3V5cyBzYWlkIHRoYXQgdXBk YXRpbmcKPiA+ID4gKwkgKiB0aGUgZmVuY2UgcmVnaXN0ZXIgYml0cyBkdXJpbmcgYSBmbGlwIGlz IGZpbmUuICovCj4gPiA+ICsJdmFsID0gSTkxNV9SRUFEKERQRkNfQ09OVFJPTCk7Cj4gPiA+ICsJ dmFsICY9IH5EUEZDX0NUTF9GRU5DRV9NQVNLOwo+ID4gPiArCXZhbCB8PSBvYmotPmZlbmNlX3Jl ZzsKPiA+ID4gKwlJOTE1X1dSSVRFKERQRkNfQ09OVFJPTCwgdmFsKTsKPiA+ID4gK30KPiA+ID4g Kwo+ID4gPiAgc3RhdGljIHZvaWQgZzR4X2ZiY19kaXNhYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKPiA+ID4gIHsKPiA+ID4gIAl1MzIgZHBmY19jdGw7Cj4gPiA+IEBAIC0y MzYsNiArMjY4LDMxIEBAIHN0YXRpYyB2b2lkIGlsa19mYmNfZW5hYmxlKHN0cnVjdCBpbnRlbF9j cnRjICpjcnRjKQo+ID4gPiAgCURSTV9ERUJVR19LTVMoImVuYWJsZWQgZmJjIG9uIHBsYW5lICVj XG4iLCBwbGFuZV9uYW1lKGNydGMtPnBsYW5lKSk7Cj4gPiA+ICB9Cj4gPiA+ICAKPiA+ID4gK3N0 YXRpYyB2b2lkIGlsa19mYmNfZmxpcF9wcmVwYXJlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKPiA+ID4gK3sKPiA+ID4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IGRldl9w cml2LT5mYmMuY3J0YzsKPiA+ID4gKwlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IGNydGMt PmJhc2UucHJpbWFyeS0+ZmI7Cj4gPiA+ICsJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9i aiA9IGludGVsX2ZiX29iaihmYik7Cj4gPiA+ICsJdWludDMyX3QgdmFsOwo+ID4gPiArCj4gPiA+ ICsJLyogQWx0aG91Z2ggdGhlIGRvY3VtZW50YXRpb24gc3VnZ2VzdHMgd2UgY2FuJ3QgY2hhbmdl IERQRkNfQ09OVFJPTAo+ID4gPiArCSAqIHdoaWxlIGNvbXByZXNzaW9uIGlzIGVuYWJsZWQsIHRo ZSBoYXJkd2FyZSBndXlzIHNhaWQgdGhhdCB1cGRhdGluZwo+ID4gPiArCSAqIHRoZSBmZW5jZSBy ZWdpc3RlciBiaXRzIGR1cmluZyBhIGZsaXAgaXMgZmluZS4gKi8KPiA+ID4gKwl2YWwgPSBJOTE1 X1JFQUQoSUxLX0RQRkNfQ09OVFJPTCk7Cj4gPiA+ICsJdmFsICY9IH5JTEtfRFBGQ19GRU5DRV9N QVNLOwo+ID4gPiArCXZhbCB8PSBvYmotPmZlbmNlX3JlZzsKPiA+ID4gKwlJOTE1X1dSSVRFKElM S19EUEZDX0NPTlRST0wsIHZhbCk7Cj4gPiA+ICt9Cj4gPiA+ICsKPiA+ID4gK3N0YXRpYyB2b2lk IHNuYl9mYmNfZmxpcF9wcmVwYXJlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK PiA+ID4gK3sKPiA+ID4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IGRldl9wcml2LT5mYmMu Y3J0YzsKPiA+ID4gKwlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IGNydGMtPmJhc2UucHJp bWFyeS0+ZmI7Cj4gPiA+ICsJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IGludGVs X2ZiX29iaihmYik7Cj4gPiA+ICsKPiA+ID4gKwlJOTE1X1dSSVRFKFNOQl9EUEZDX0NUTF9TQSwg U05CX0NQVV9GRU5DRV9FTkFCTEUgfCBvYmotPmZlbmNlX3JlZyk7Cj4gPiA+ICt9Cj4gPiA+ICsK PiA+ID4gIHN0YXRpYyB2b2lkIGlsa19mYmNfZGlzYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCj4gPiA+ICB7Cj4gPiA+ICAJdTMyIGRwZmNfY3RsOwo+ID4gPiBAQCAtMTAy MCwxNCArMTA3Nyw0NCBAQCB2b2lkIGludGVsX2ZiY19mbHVzaChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCj4gPiA+ICAKPiA+ID4gIAlpZiAob3JpZ2luID09IE9SSUdJTl9HVFQp Cj4gPiA+ICAJCXJldHVybjsKPiA+ID4gKwlpZiAob3JpZ2luID09IE9SSUdJTl9GTElQICYmIGRl dl9wcml2LT5mYmMuZW5hYmxlZCkKPiA+ID4gKwkJcmV0dXJuOwo+ID4gPiAgCj4gPiA+ICAJbXV0 ZXhfbG9jaygmZGV2X3ByaXYtPmZiYy5sb2NrKTsKPiA+ID4gIAo+ID4gPiAgCWRldl9wcml2LT5m YmMuYnVzeV9iaXRzICY9IH5mcm9udGJ1ZmZlcl9iaXRzOwo+ID4gPiAgCj4gPiA+ICAJaWYgKCFk ZXZfcHJpdi0+ZmJjLmJ1c3lfYml0cykgewo+ID4gPiAtCQlfX2ludGVsX2ZiY19kaXNhYmxlKGRl dl9wcml2KTsKPiA+ID4gLQkJX19pbnRlbF9mYmNfdXBkYXRlKGRldl9wcml2KTsKPiA+ID4gKwkJ aWYgKG9yaWdpbiA9PSBPUklHSU5fRkxJUCkgewo+ID4gPiArCQkJX19pbnRlbF9mYmNfdXBkYXRl KGRldl9wcml2KTsKPiA+ID4gKwkJfSBlbHNlIHsKPiA+ID4gKwkJCV9faW50ZWxfZmJjX2Rpc2Fi bGUoZGV2X3ByaXYpOwo+ID4gPiArCQkJX19pbnRlbF9mYmNfdXBkYXRlKGRldl9wcml2KTsKPiA+ ID4gKwkJfQo+ID4gPiArCX0KPiA+ID4gKwo+ID4gPiArCW11dGV4X3VubG9jaygmZGV2X3ByaXYt PmZiYy5sb2NrKTsKPiA+ID4gK30KPiA+ID4gKwo+ID4gPiArdm9pZCBpbnRlbF9mYmNfZmxpcF9w cmVwYXJlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ID4gKwkJCSAgICB1 bnNpZ25lZCBpbnQgZnJvbnRidWZmZXJfYml0cykKPiA+ID4gK3sKPiA+ID4gKwl1bnNpZ25lZCBp bnQgZmJjX2JpdHM7Cj4gPiA+ICsKPiA+ID4gKwlpZiAoIWZiY19zdXBwb3J0ZWQoZGV2X3ByaXYp KQo+ID4gPiArCQlyZXR1cm47Cj4gPiA+ICsKPiA+ID4gKwltdXRleF9sb2NrKCZkZXZfcHJpdi0+ ZmJjLmxvY2spOwo+ID4gPiArCj4gPiA+ICsJaWYgKGRldl9wcml2LT5mYmMuZW5hYmxlZCkgewo+ ID4gPiArCQlmYmNfYml0cyA9IElOVEVMX0ZST05UQlVGRkVSX1BSSU1BUlkoZGV2X3ByaXYtPmZi Yy5jcnRjLT5waXBlKTsKPiA+ID4gKwkJaWYgKGZiY19iaXRzICYgZnJvbnRidWZmZXJfYml0cykK PiA+ID4gKwkJCWRldl9wcml2LT5mYmMuZmxpcF9wcmVwYXJlKGRldl9wcml2KTsKPiA+ID4gKwl9 IGVsc2UgaWYgKGRldl9wcml2LT5mYmMuZmJjX3dvcmspIHsKPiA+ID4gKwkJZmJjX2JpdHMgPSBJ TlRFTF9GUk9OVEJVRkZFUl9QUklNQVJZKAo+ID4gPiArCQkJCWRldl9wcml2LT5mYmMuZmJjX3dv cmstPmNydGMtPnBpcGUpOwo+ID4gPiArCQlpZiAoZmJjX2JpdHMgJiBmcm9udGJ1ZmZlcl9iaXRz KQo+ID4gPiArCQkJX19pbnRlbF9mYmNfZGlzYWJsZShkZXZfcHJpdik7Cj4gPiA+ICAJfQo+ID4g PiAgCj4gPiA+ICAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZmJjLmxvY2spOwo+ID4gPiBAQCAt MTA2MywxOCArMTE1MCwyNSBAQCB2b2lkIGludGVsX2ZiY19pbml0KHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKPiA+ID4gIAkJZGV2X3ByaXYtPmZiYy5mYmNfZW5hYmxlZCA9IGls a19mYmNfZW5hYmxlZDsKPiA+ID4gIAkJZGV2X3ByaXYtPmZiYy5lbmFibGVfZmJjID0gZ2VuN19m YmNfZW5hYmxlOwo+ID4gPiAgCQlkZXZfcHJpdi0+ZmJjLmRpc2FibGVfZmJjID0gaWxrX2ZiY19k aXNhYmxlOwo+ID4gPiArCQlkZXZfcHJpdi0+ZmJjLmZsaXBfcHJlcGFyZSA9IHNuYl9mYmNfZmxp cF9wcmVwYXJlOwo+ID4gPiAgCX0gZWxzZSBpZiAoSU5URUxfSU5GTyhkZXZfcHJpdiktPmdlbiA+ PSA1KSB7Cj4gPiA+ICAJCWRldl9wcml2LT5mYmMuZmJjX2VuYWJsZWQgPSBpbGtfZmJjX2VuYWJs ZWQ7Cj4gPiA+ICAJCWRldl9wcml2LT5mYmMuZW5hYmxlX2ZiYyA9IGlsa19mYmNfZW5hYmxlOwo+ ID4gPiAgCQlkZXZfcHJpdi0+ZmJjLmRpc2FibGVfZmJjID0gaWxrX2ZiY19kaXNhYmxlOwo+ID4g PiArCQlpZiAoSU5URUxfSU5GTyhkZXZfcHJpdiktPmdlbiA9PSA1KQo+ID4gPiArCQkJZGV2X3By aXYtPmZiYy5mbGlwX3ByZXBhcmUgPSBpbGtfZmJjX2ZsaXBfcHJlcGFyZTsKPiA+ID4gKwkJZWxz ZQo+ID4gPiArCQkJZGV2X3ByaXYtPmZiYy5mbGlwX3ByZXBhcmUgPSBzbmJfZmJjX2ZsaXBfcHJl cGFyZTsKPiA+ID4gIAl9IGVsc2UgaWYgKElTX0dNNDUoZGV2X3ByaXYpKSB7Cj4gPiA+ICAJCWRl dl9wcml2LT5mYmMuZmJjX2VuYWJsZWQgPSBnNHhfZmJjX2VuYWJsZWQ7Cj4gPiA+ICAJCWRldl9w cml2LT5mYmMuZW5hYmxlX2ZiYyA9IGc0eF9mYmNfZW5hYmxlOwo+ID4gPiAgCQlkZXZfcHJpdi0+ ZmJjLmRpc2FibGVfZmJjID0gZzR4X2ZiY19kaXNhYmxlOwo+ID4gPiArCQlkZXZfcHJpdi0+ZmJj LmZsaXBfcHJlcGFyZSA9IGc0eF9mYmNfZmxpcF9wcmVwYXJlOwo+ID4gPiAgCX0gZWxzZSB7Cj4g PiA+ICAJCWRldl9wcml2LT5mYmMuZmJjX2VuYWJsZWQgPSBpOHh4X2ZiY19lbmFibGVkOwo+ID4g PiAgCQlkZXZfcHJpdi0+ZmJjLmVuYWJsZV9mYmMgPSBpOHh4X2ZiY19lbmFibGU7Cj4gPiA+ICAJ CWRldl9wcml2LT5mYmMuZGlzYWJsZV9mYmMgPSBpOHh4X2ZiY19kaXNhYmxlOwo+ID4gPiArCQlk ZXZfcHJpdi0+ZmJjLmZsaXBfcHJlcGFyZSA9IGk4eHhfZmJjX2ZsaXBfcHJlcGFyZTsKPiA+ID4g IAo+ID4gPiAgCQkvKiBUaGlzIHZhbHVlIHdhcyBwdWxsZWQgb3V0IG9mIHNvbWVvbmUncyBoYXQg Ki8KPiA+ID4gIAkJSTkxNV9XUklURShGQkNfQ09OVFJPTCwgNTAwIDw8IEZCQ19DVExfSU5URVJW QUxfU0hJRlQpOwo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZnJvbnRidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Zyb250YnVmZmVyLmMK PiA+ID4gaW5kZXggYWM4NTM1Ny4uMzFhMWFkMyAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZnJvbnRidWZmZXIuYwo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9mcm9udGJ1ZmZlci5jCj4gPiA+IEBAIC0xOTIsNiArMTkyLDcgQEAgdm9p ZCBpbnRlbF9mcm9udGJ1ZmZlcl9mbGlwX3ByZXBhcmUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwK PiA+ID4gIAltdXRleF91bmxvY2soJmRldl9wcml2LT5mYl90cmFja2luZy5sb2NrKTsKPiA+ID4g IAo+ID4gPiAgCWludGVsX3Bzcl9zaW5nbGVfZnJhbWVfdXBkYXRlKGRldiwgZnJvbnRidWZmZXJf Yml0cyk7Cj4gPiA+ICsJaW50ZWxfZmJjX2ZsaXBfcHJlcGFyZShkZXZfcHJpdiwgZnJvbnRidWZm ZXJfYml0cyk7Cj4gPiAKPiA+IEkgaGF2ZW4ndCByZWFkIGFoZWFkLCBidXQgYm90aCBwc3Igc2lu Z2xlIGZyYW1lIHVwZGF0ZSBhbmQgdGhpcyBoZXJlCj4gPiBzaG91bGQgYmUgY29udmVydGVkLiBT aW5jZSB3aXRoIHRoaXMgaGVyZSB0aGVyZSdzIHRoZSBzbWFsbCAoYnV0IHZlcnkKPiA+IHJlYWwp IGNoYW5jZSB0aGF0IHJlbmRlcmluZyB0aGUgYnVmZmVyIGZvciB0aGlzIGZsaXAgd2lsbCB0YWtl IGxvbmdlciB0aGFuCj4gPiB0aGUgbmV4dCB2YmxhbmssIGFuZCBhdCBsZWFzdCBmb3IgdGhlIHBz ciBjYXNlIHdlJ2QgdGhlbiBmYWlsIHRvIHVwbG9hZAo+ID4gdGhlIGNoYW5nZXMuIEZvciBmYmMg aXQncyBsZXNzIG9mIGEgcHJvYmxlbSwgc2luY2UgaWYgeW91IHBhZ2UgZmxpcCB0aGVuCj4gPiB1 c2Vyc3BhY2Ugc2hvdWxkbid0IHJhY2UgZnJvbnRidWZmZXIgcmVuZGVyaW5nLgo+ID4gCj4gPiBT byBJIHRoaW5rIHRoaXMgaXMgb2sgKGJ1dCB0aGUgUFNSIGNhc2Ugc2hvdWxkIGJlIGZpeGVkIGJ5 IG1vdmluZyB0aGUKPiA+IHJlZ2lzdGVyIHdyaXRlIGl0c2VsZiBpbnRvIHRoZSBhdG9taWMgdXBk YXRlLCB3aGljaCBtZWFucyB3ZSBuZWVkIHRvIGhhdmUKPiA+IGEgYm9vbGVhbiB0byBkZWNpZGVk IHdoZXRoZXIgdG8gZG8gdGhhdCBpbiB0aGUgaW50ZWxfY3J0Y19zdGF0ZSkuCj4gPiAtRGFuaWVs Cj4gPiAKPiA+IAo+ID4gPiAgfQo+ID4gPiAgCj4gPiA+ICAvKioKPiA+ID4gLS0gCj4gPiA+IDIu Ni4xCj4gPiA+IAo+ID4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwo+ID4gPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gPiA+IEludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKPiA+ID4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2ludGVsLWdmeAo+ID4gCj4gPiAtLSAKPiA+IERhbmllbCBWZXR0ZXIKPiA+ IFNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgo+ID4gaHR0cDovL2Jsb2cuZmZ3 bGwuY2gKPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Cj4gPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCj4gPiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4Cj4gCj4gLS0gCj4gVmlsbGUgU3lyasOkbMOkCj4gSW50ZWwgT1RDCgotLSAKVmls bGUgU3lyasOkbMOkCkludGVsIE9UQwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ludGVsLWdmeAo=