From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH 2/2] drm/i915: Commit planes on each crtc separately. Date: Thu, 13 Aug 2015 14:53:45 +0300 Message-ID: <87fv3ns8ty.fsf@intel.com> References: <1439289071-23356-1-git-send-email-maarten.lankhorst@linux.intel.com> <1439289071-23356-2-git-send-email-maarten.lankhorst@linux.intel.com> <1439390813.4993.19.camel@gmail.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 E76B27A37C for ; Thu, 13 Aug 2015 04:50:48 -0700 (PDT) In-Reply-To: <1439390813.4993.19.camel@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ander Conselvan De Oliveira , Maarten Lankhorst , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCAxMiBBdWcgMjAxNSwgQW5kZXIgQ29uc2VsdmFuIERlIE9saXZlaXJhIDxjb25zZWx2 YW4yQGdtYWlsLmNvbT4gd3JvdGU6Cj4gRm9yIGJvdGggcGF0Y2hlcywKPgo+IFJldmlld2VkLWJ5 OiBBbmRlciBDb25zZWx2YW4gZGUgT2xpdmVpcmEgPGNvbnNlbHZhbjJAZ21haWwuY29tPgoKQm90 aCBwdXNoZWQgdG8gZHJtLWludGVsLWZpeGVzLCB0aGFua3MgZm9yIHRoZSBwYXRjaGVzIGFuZCBy ZXZpZXcuCgpCUiwKSmFuaS4KCj4KPiBPbiBUdWUsIDIwMTUtMDgtMTEgYXQgMTI6MzEgKzAyMDAs IE1hYXJ0ZW4gTGFua2hvcnN0IHdyb3RlOgo+PiBUaGlzIHBhdGNoIGlzIGJhc2VkIG9uIHRoZSB1 cHN0cmVhbSBjb21taXQgNWFjMWM0YmNmMDczYWQgYW5kIGFtZW5kZWQKPj4gZm9yIHY0LjIgdG8g bWFrZSBzdXJlIGl0IHdvcmtzIGFzIGludGVuZGVkLgo+PiAKPj4gUmVwZWF0ZWQgY2FsbHMgdG8g YmVnaW5fY3J0Y19jb21taXQgY2FuIGNhdXNlIHdhcm5pbmdzIGxpa2UgdGhpczoKPj4gWyAgMTY5 LjEyNzc0Nl0gQlVHOiBzbGVlcGluZyBmdW5jdGlvbiBjYWxsZWQgZnJvbSBpbnZhbGlkIGNvbnRl eHQgYXQga2VybmVsL2xvY2tpbmcvbXV0ZXguYzo2MTYKPj4gWyAgMTY5LjEyNzgzNV0gaW5fYXRv bWljKCk6IDAsIGlycXNfZGlzYWJsZWQoKTogMSwgcGlkOiAxOTQ3LCBuYW1lOiBrbXNfZmxpcAo+ PiBbICAxNjkuMTI3ODQwXSAzIGxvY2tzIGhlbGQgYnkga21zX2ZsaXAvMTk0NzoKPj4gWyAgMTY5 LjEyNzg0M10gICMwOiAgKCZkZXYtPm1vZGVfY29uZmlnLm11dGV4KXsrLisuKy59LCBhdDogWzxm ZmZmZmZmZjgxNDc3NGJjPl0gCj4+IF9fZHJtX21vZGVzZXRfbG9ja19hbGwrMHg5Yy8weDEzMAo+ PiBbICAxNjkuMTI3ODYwXSAgIzE6ICAoY3J0Y193d19jbGFzc19hY3F1aXJlKXsrLisuKy59LCBh dDogWzxmZmZmZmZmZjgxNDc3NGNkPl0gCj4+IF9fZHJtX21vZGVzZXRfbG9ja19hbGwrMHhhZC8w eDEzMAo+PiBbICAxNjkuMTI3ODcwXSAgIzI6ICAoY3J0Y193d19jbGFzc19tdXRleCl7Ky4rLisu fSwgYXQ6IFs8ZmZmZmZmZmY4MTQ3NzE3OD5dIAo+PiBkcm1fbW9kZXNldF9sb2NrKzB4MzgvMHgx MTAKPj4gWyAgMTY5LjEyNzg3OV0gaXJxIGV2ZW50IHN0YW1wOiA2NjU2OTAKPj4gWyAgMTY5LjEy Nzg4Ml0gaGFyZGlycXMgbGFzdCAgZW5hYmxlZCBhdCAoNjY1Njg5KTogWzxmZmZmZmZmZjgxN2Zm ZGI1Pl0gCj4+IF9yYXdfc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSsweDU1LzB4NzAKPj4gWyAgMTY5 LjEyNzg4OV0gaGFyZGlycXMgbGFzdCBkaXNhYmxlZCBhdCAoNjY1NjkwKTogWzxmZmZmZmZmZmMw MTk3YTIzPl0gCj4+IGludGVsX3BpcGVfdXBkYXRlX3N0YXJ0KzB4MTEzLzB4NWMwIFtpOTE1XQo+ PiBbICAxNjkuMTI3OTM2XSBzb2Z0aXJxcyBsYXN0ICBlbmFibGVkIGF0ICg2NjU0NzApOiBbPGZm ZmZmZmZmODEwOGE3NjY+XSBfX2RvX3NvZnRpcnErMHgyMzYvMHg2NTAKPj4gWyAgMTY5LjEyNzk0 Ml0gc29mdGlycXMgbGFzdCBkaXNhYmxlZCBhdCAoNjY1NDY1KTogWzxmZmZmZmZmZjgxMDhhZTc1 Pl0gaXJxX2V4aXQrMHhjNS8weGQwCj4+IFsgIDE2OS4xMjc5NTFdIENQVTogMSBQSUQ6IDE5NDcg Q29tbToga21zX2ZsaXAgTm90IHRhaW50ZWQgNC4xLjAtcmM0LXBhdHNlcisgIzQwMzkKPj4gWyAg MTY5LjEyNzk1NF0gSGFyZHdhcmUgbmFtZTogTEVOT1ZPIDIzNDlBVjgvMjM0OUFWOCwgQklPUyBH MUVUQTVXVyAoMi42NSApIDA0LzE1LzIwMTQKPj4gWyAgMTY5LjEyNzk1N10gIGZmZmY4ODAwYzQ5 MDM2ZjAgZmZmZjg4MDBjZGU1ZmEyOCBmZmZmZmZmZjgxN2Y2OTA3IDAwMDAwMDAwODAwMDAwMDEK Pj4gWyAgMTY5LjEyNzk2NF0gIDAwMDAwMDAwMDAwMDAwMDAgZmZmZjg4MDBjZGU1ZmE1OCBmZmZm ZmZmZjgxMGFlYmVkIDAwMDAwMDAwMDAwMDAwNDYKPj4gWyAgMTY5LjEyNzk3MF0gIGZmZmZmZmZm ODFjNWQ1MTggMDAwMDAwMDAwMDAwMDI2OCAwMDAwMDAwMDAwMDAwMDAwIGZmZmY4ODAwY2RlNWZh ODgKPj4gWyAgMTY5LjEyNzk4MV0gQ2FsbCBUcmFjZToKPj4gWyAgMTY5LjEyNzk5Ml0gIFs8ZmZm ZmZmZmY4MTdmNjkwNz5dIGR1bXBfc3RhY2srMHg0Zi8weDdiCj4+IFsgIDE2OS4xMjgwMDFdICBb PGZmZmZmZmZmODEwYWViZWQ+XSBfX19taWdodF9zbGVlcCsweDE2ZC8weDI3MAo+PiBbICAxNjku MTI4MDA4XSAgWzxmZmZmZmZmZjgxMGFlZDM4Pl0gX19taWdodF9zbGVlcCsweDQ4LzB4OTAKPj4g WyAgMTY5LjEyODAxN10gIFs8ZmZmZmZmZmY4MTdmYzM1OT5dIG11dGV4X2xvY2tfbmVzdGVkKzB4 MjkvMHg0MTAKPj4gWyAgMTY5LjEyODA3M10gIFs8ZmZmZmZmZmZjMDE2MzVmMD5dID8gdmdwdV93 cml0ZTY0KzB4MjIwLzB4MjIwIFtpOTE1XQo+PiBbICAxNjkuMTI4MTM4XSAgWzxmZmZmZmZmZmMw MTdmZGRmPl0gPyBpcm9ubGFrZV91cGRhdGVfcHJpbWFyeV9wbGFuZSsweDJmZi8weDQxMCBbaTkx NV0KPj4gWyAgMTY5LjEyODE5OF0gIFs8ZmZmZmZmZmZjMDE5MGU3NT5dIGludGVsX2Zyb250YnVm ZmVyX2ZsdXNoKzB4MjUvMHg3MCBbaTkxNV0KPj4gWyAgMTY5LjEyODI1M10gIFs8ZmZmZmZmZmZj MDE4MzFhYz5dIGludGVsX2ZpbmlzaF9jcnRjX2NvbW1pdCsweDRjLzB4MTgwIFtpOTE1XQo+PiBb ICAxNjkuMTI4Mjc5XSAgWzxmZmZmZmZmZmMwMDc4NGFjPl0gZHJtX2F0b21pY19oZWxwZXJfY29t bWl0X3BsYW5lcysweDEyYy8weDI0MCBbZHJtX2ttc19oZWxwZXJdCj4+IFsgIDE2OS4xMjgzMzhd ICBbPGZmZmZmZmZmYzAxODQyNjQ+XSBfX2ludGVsX3NldF9tb2RlKzB4Njg0LzB4ODMwIFtpOTE1 XQo+PiBbICAxNjkuMTI4Mzc4XSAgWzxmZmZmZmZmZmMwMThhODRhPl0gaW50ZWxfY3J0Y19zZXRf Y29uZmlnKzB4NDlhLzB4NjIwIFtpOTE1XQo+PiBbICAxNjkuMTI4Mzg1XSAgWzxmZmZmZmZmZjgx N2ZkZDM5Pl0gPyBtdXRleF91bmxvY2srMHg5LzB4MTAKPj4gWyAgMTY5LjEyODM5MV0gIFs8ZmZm ZmZmZmY4MTQ2N2I2OT5dIGRybV9tb2RlX3NldF9jb25maWdfaW50ZXJuYWwrMHg2OS8weDEyMAo+ PiBbICAxNjkuMTI4Mzk4XSAgWzxmZmZmZmZmZjgxMTliNTQ3Pl0gPyBtaWdodF9mYXVsdCsweDU3 LzB4YjAKPj4gWyAgMTY5LjEyODQwM10gIFs8ZmZmZmZmZmY4MTQ2YmY5Mz5dIGRybV9tb2RlX3Nl dGNydGMrMHgyNTMvMHg2MjAKPj4gWyAgMTY5LjEyODQwOV0gIFs8ZmZmZmZmZmY4MTQ1YzYwMD5d IGRybV9pb2N0bCsweDFhMC8weDZhMAo+PiBbICAxNjkuMTI4NDE1XSAgWzxmZmZmZmZmZjgxMGIz YjQxPl0gPyBnZXRfcGFyZW50X2lwKzB4MTEvMHg1MAo+PiBbICAxNjkuMTI4NDI0XSAgWzxmZmZm ZmZmZjgxMWU5YWI4Pl0gZG9fdmZzX2lvY3RsKzB4MmY4LzB4NTMwCj4+IFsgIDE2OS4xMjg0Mjld ICBbPGZmZmZmZmZmODEwZDBmY2Q+XSA/IHRyYWNlX2hhcmRpcnFzX29uKzB4ZC8weDEwCj4+IFsg IDE2OS4xMjg0MzVdICBbPGZmZmZmZmZmODEyZTc2NzY+XSA/IHNlbGludXhfZmlsZV9pb2N0bCsw eDU2LzB4MTAwCj4+IFsgIDE2OS4xMjg0MzldICBbPGZmZmZmZmZmODExZTlkNzE+XSBTeVNfaW9j dGwrMHg4MS8weGEwCj4+IFsgIDE2OS4xMjg0NDVdICBbPGZmZmZmZmZmODE4MDA2OTc+XSBzeXN0 ZW1fY2FsbF9mYXN0cGF0aCsweDEyLzB4NmYKPj4gCj4+IFNvbHZlIGl0IGJ5IHVzaW5nIHRoZSBu ZXdseSBpbnRyb2R1Y2VkIGRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9wbGFuZXNfb25fY3J0Yy4K Pj4gCj4+IFRoZSBwcm9ibGVtIGhlcmUgd2FzIHRoYXQgdGhlIGRybV9hdG9taWNfaGVscGVyX2Nv bW1pdF9wbGFuZXMoKSBoZWxwZXIKPj4gd2Ugd2VyZSB1c2luZyB3YXMgYmFzaWNhbGx5IGRlc2ln bmVkIHRvIGRvCj4+IAo+PiAgICAgYmVnaW5fY3J0Y19jb21taXQoY3J0YyAjMSkKPj4gICAgIGJl Z2luX2NydGNfY29tbWl0KGNydGMgIzIpCj4+ICAgICAuLi4KPj4gICAgIGNvbW1pdCBhbGwgcGxh bmVzCj4+ICAgICBmaW5pc2hfY3J0Y19jb21taXQoY3J0YyAjMSkKPj4gICAgIGZpbmlzaF9jcnRj X2NvbW1pdChjcnRjICMyKQo+PiAKPj4gVGhlIHByb2JsZW0gaGVyZSBpcyB0aGF0IHNpbmNlIG91 ciBoYXJkd2FyZSByZWxpZXMgb24gdmJsYW5rIGV2YXNpb24sCj4+IG91ciBDUlRDICdiZWdpbicg ZnVuY3Rpb24gd2FpdHMgdW50aWwgd2UncmUgb3V0IG9mIHRoZSBkYW5nZXIgem9uZSBpbgo+PiB3 aGljaCByZWdpc3RlciB3cml0ZXMgbWlnaHQgd2luZCB1cCBzdHJhZGRsaW5nIHRoZSB2Ymxhbmss IHRoZW4gZGlzYWJsZXMKPj4gaW50ZXJydXB0czsgb3VyICdmaW5pc2gnIGZ1bmN0aW9uIHJlLWVu YWJsZXMgaW50ZXJydXB0cyBhZnRlciB0aGUKPj4gcmVnaXN0ZXJzIGhhdmUgYmVlbiB3cml0dGVu LiAgVGhlIGV4cGVjdGF0aW9uIGlzIHRoYXQgdGhlIG9wZXJhdGlvbnMgYmV0d2Vlbgo+PiAnYmVn aW4nIGFuZCAnZW5kJyBtdXN0IGJlIHBlcmZvcm1lZCB3aXRob3V0IHNsZWVwaW5nIChzaW5jZSBp bnRlcnJ1cHRzCj4+IGFyZSBkaXNhYmxlZCkgYW5kIHNob3VsZCBoYXBwZW4gYXMgcXVpY2tseSBh cyBwb3NzaWJsZS4gIEJ5IGNsdW1waW5nIGFsbAo+PiBvZiB0aGUgJ2JlZ2luJyBjYWxscyB0b2dl dGhlciwgd2UgaW50cm9kdWNpbmcgYSBjb3VwbGUgcHJvYmxlbXM6Cj4+ICAqIFN1YnNlcXVlbnQg J2JlZ2luJyBpbnZvY2F0aW9ucyBtaWdodCBzbGVlcCAod2hpY2ggaXMgaWxsZWdhbCkKPj4gICog VGhlIGZpcnN0ICdiZWdpbicgZW5zdXJlZCB0aGF0IHdlIHdlcmUgZmFyIGVub3VnaCBmcm9tIHRo ZSB2YmxhbmsgdGhhdAo+PiAgICB3ZSBjb3VsZCB3cml0ZSBvdXIgcmVnaXN0ZXJzIHNhZmVseSBh bmQgZW5zdXJlIHRoZXkgYWxsIGZlbGwgd2l0aGluCj4+ICAgIHRoZSBzYW1lIGZyYW1lLiAgQWRk aW5nIGV4dHJhIGRlbGF5IHdhaXRpbmcgZm9yIHN1YnNlcXVlbnQgQ1JUQydzCj4+ICAgIHdhc24n dCBhY2NvdW50ZWQgZm9yIGFuZCBjb3VsZCBwdXQgdXMgYmFjayBpbnRvIHRoZSAnZGFuZ2VyIHpv bmUnIGZvcgo+PiAgICBDUlRDICMxLgo+PiAKPj4gVGhpcyBjb21taXQgc29sdmVzIHRoZSBwcm9i bGVtIGJ5IHVzaW5nIGEgbmV3IGhlbHBlciB0aGF0IGFsbG93cyBhbgo+PiBvcmRlciBvZiBvcGVy YXRpb25zIGxpa2U6Cj4+IAo+PiAgICBmb3IgZWFjaCBjcnRjIHsKPj4gICAgICAgICBiZWdpbl9j cnRjX2NvbW1pdChjcnRjKSAgLy8gc2xlZXAgKG1heWJlKSwgdGhlbiBkaXNhYmxlIGludGVycnVw dHMKPj4gICAgICAgICBjb21taXQgcGxhbmVzIGZvciB0aGlzIHNwZWNpZmljIENSVEMKPj4gICAg ICAgICBlbmRfY3J0Y19jb21taXQoY3J0YykgICAgLy8gcmVlbmFibGUgaW50ZXJydXB0cwo+PiAg ICB9Cj4+IAo+PiBzbyB0aGF0IHNsZWVwcyB3aWxsIG9ubHkgYmUgcGVyZm9ybWVkIHdoaWxlIGlu dGVycnVwdHMgYXJlIGVuYWJsZWQgYW5kCj4+IHdlIGNhbiBiZSBzdXJlIHRoYXQgcmVnaXN0ZXJz IGZvciBhIENSVEMgd2lsbCBiZSB3cml0dGVuIGltbWVkaWF0ZWx5Cj4+IG9uY2Ugd2Uga25vdyB3 ZSdyZSBpbiB0aGUgc2FmZSB6b25lLgo+PiAKPj4gVGhlIGNydGMtPmNvbmZpZy0+YmFzZS5jcnRj IHVwZGF0ZSBtYXkgc2VlbSB1bnJlbGF0ZWQsIGJ1dCB0aGUgaGVscGVyCj4+IHdpbGwgdXNlIGl0 IHRvIG9idGFpbiB0aGUgY3J0YyBmb3IgdGhlIHN0YXRlLiBXaXRob3V0IHRoZSB1cGRhdGUgaXQK Pj4gd2lsbCBkZXJlZmVyZW5jZSBOVUxMIGFuZCBjcmFzaC4KPj4gCj4+IENoYW5nZXMgc2luY2Ug djE6Cj4+IC0gVXNlIE1hdHQgUm9wZXIncyBjb21taXQgbWVzc2FnZS4KPj4gCj4+IFNpZ25lZC1v ZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5j b20+Cj4+IFJldmlld2VkLWJ5OiBNYXR0IFJvcGVyIDxtYXR0aGV3LmQucm9wZXJAaW50ZWwuY29t Pgo+PiBTaWduZWQtb2ZmLWJ5OiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPgo+ PiBDYzogc3RhYmxlQHZnZXIua2VybmVsLm9yZyAjdjQuMgo+PiBSZWZlcmVuY2VzOiBodHRwczov L2J1Z3MuZnJlZWRlc2t0b3Aub3JnL3Nob3dfYnVnLmNnaT9pZD05MDM5OAo+PiAtLS0KPj4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pYy5jICB8IDQ1ICsrKysrKystLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQo+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jIHwgMTEgKysrKystLS0tCj4+ICAyIGZpbGVzIGNoYW5nZWQsIDE0IGluc2VydGlvbnMoKyks IDQyIGRlbGV0aW9ucygtKQo+PiAKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2F0b21pYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMKPj4g aW5kZXggN2VkODAzM2FhZTYwLi44ZTM1ZTBkMDEzZGYgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2F0b21pYy5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2F0b21pYy5jCj4+IEBAIC0xMjksOCArMTI5LDkgQEAgaW50IGludGVsX2F0b21pY19j b21taXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPj4gIAkJCXN0cnVjdCBkcm1fYXRvbWljX3N0 YXRlICpzdGF0ZSwKPj4gIAkJCWJvb2wgYXN5bmMpCj4+ICB7Cj4+IC0JaW50IHJldDsKPj4gLQlp bnQgaTsKPj4gKwlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7Cj4+ICsJc3RydWN0 IGRybV9jcnRjICpjcnRjOwo+PiArCWludCByZXQsIGk7Cj4+ICAKPj4gIAlpZiAoYXN5bmMpIHsK Pj4gIAkJRFJNX0RFQlVHX0tNUygiaTkxNSBkb2VzIG5vdCB5ZXQgc3VwcG9ydCBhc3luYyBjb21t aXRcbiIpOwo+PiBAQCAtMTQyLDQ4ICsxNDMsMTggQEAgaW50IGludGVsX2F0b21pY19jb21taXQo c3RydWN0IGRybV9kZXZpY2UgKmRldiwKPj4gIAkJcmV0dXJuIHJldDsKPj4gIAo+PiAgCS8qIFBv aW50IG9mIG5vIHJldHVybiAqLwo+PiAtCj4+IC0JLyoKPj4gLQkgKiBGSVhNRTogIFRoZSBwcm9w ZXIgc2VxdWVuY2UgaGVyZSB3aWxsIGV2ZW50dWFsbHkgYmU6Cj4+IC0JICoKPj4gLQkgKiBkcm1f YXRvbWljX2hlbHBlcl9zd2FwX3N0YXRlKGRldiwgc3RhdGUpCj4+IC0JICogZHJtX2F0b21pY19o ZWxwZXJfY29tbWl0X21vZGVzZXRfZGlzYWJsZXMoZGV2LCBzdGF0ZSk7Cj4+IC0JICogZHJtX2F0 b21pY19oZWxwZXJfY29tbWl0X3BsYW5lcyhkZXYsIHN0YXRlKTsKPj4gLQkgKiBkcm1fYXRvbWlj X2hlbHBlcl9jb21taXRfbW9kZXNldF9lbmFibGVzKGRldiwgc3RhdGUpOwo+PiAtCSAqIGRybV9h dG9taWNfaGVscGVyX3dhaXRfZm9yX3ZibGFua3MoZGV2LCBzdGF0ZSk7Cj4+IC0JICogZHJtX2F0 b21pY19oZWxwZXJfY2xlYW51cF9wbGFuZXMoZGV2LCBzdGF0ZSk7Cj4+IC0JICogZHJtX2F0b21p Y19zdGF0ZV9mcmVlKHN0YXRlKTsKPj4gLQkgKgo+PiAtCSAqIG9uY2Ugd2UgaGF2ZSBmdWxsIGF0 b21pYyBtb2Rlc2V0LiAgRm9yIG5vdywganVzdCBtYW51YWxseSB1cGRhdGUKPj4gLQkgKiBwbGFu ZSBzdGF0ZXMgdG8gYXZvaWQgY2xvYmJlcmluZyBnb29kIHN0YXRlcyB3aXRoIGR1bW15IHN0YXRl cwo+PiAtCSAqIHdoaWxlIG51Y2xlYXIgcGFnZWZsaXBwaW5nLgo+PiAtCSAqLwo+PiAtCWZvciAo aSA9IDA7IGkgPCBkZXYtPm1vZGVfY29uZmlnLm51bV90b3RhbF9wbGFuZTsgaSsrKSB7Cj4+IC0J CXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lID0gc3RhdGUtPnBsYW5lc1tpXTsKPj4gLQo+PiAtCQlp ZiAoIXBsYW5lKQo+PiAtCQkJY29udGludWU7Cj4+IC0KPj4gLQkJcGxhbmUtPnN0YXRlLT5zdGF0 ZSA9IHN0YXRlOwo+PiAtCQlzd2FwKHN0YXRlLT5wbGFuZV9zdGF0ZXNbaV0sIHBsYW5lLT5zdGF0 ZSk7Cj4+IC0JCXBsYW5lLT5zdGF0ZS0+c3RhdGUgPSBOVUxMOwo+PiAtCX0KPj4gKwlkcm1fYXRv bWljX2hlbHBlcl9zd2FwX3N0YXRlKGRldiwgc3RhdGUpOwo+PiAgCj4+ICAJLyogc3dhcCBjcnRj X3NjYWxlcl9zdGF0ZSAqLwo+PiAtCWZvciAoaSA9IDA7IGkgPCBkZXYtPm1vZGVfY29uZmlnLm51 bV9jcnRjOyBpKyspIHsKPj4gLQkJc3RydWN0IGRybV9jcnRjICpjcnRjID0gc3RhdGUtPmNydGNz W2ldOwo+PiAtCQlpZiAoIWNydGMpIHsKPj4gLQkJCWNvbnRpbnVlOwo+PiAtCQl9Cj4+IC0KPj4g LQkJdG9faW50ZWxfY3J0YyhjcnRjKS0+Y29uZmlnLT5zY2FsZXJfc3RhdGUgPQo+PiAtCQkJdG9f aW50ZWxfY3J0Y19zdGF0ZShzdGF0ZS0+Y3J0Y19zdGF0ZXNbaV0pLT5zY2FsZXJfc3RhdGU7Cj4+ ICsJZm9yX2VhY2hfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgY3J0Y19zdGF0ZSwgaSkgewo+ PiArCQl0b19pbnRlbF9jcnRjKGNydGMpLT5jb25maWcgPSB0b19pbnRlbF9jcnRjX3N0YXRlKGNy dGMtPnN0YXRlKTsKPj4gIAo+PiAgCQlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gOSkKPj4g IAkJCXNrbF9kZXRhY2hfc2NhbGVycyh0b19pbnRlbF9jcnRjKGNydGMpKTsKPj4gKwo+PiArCQlk cm1fYXRvbWljX2hlbHBlcl9jb21taXRfcGxhbmVzX29uX2NydGMoY3J0Y19zdGF0ZSk7Cj4+ICAJ fQo+PiAgCj4+IC0JZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X3BsYW5lcyhkZXYsIHN0YXRlKTsK Pj4gIAlkcm1fYXRvbWljX2hlbHBlcl93YWl0X2Zvcl92YmxhbmtzKGRldiwgc3RhdGUpOwo+PiAg CWRybV9hdG9taWNfaGVscGVyX2NsZWFudXBfcGxhbmVzKGRldiwgc3RhdGUpOwo+PiAgCWRybV9h dG9taWNfc3RhdGVfZnJlZShzdGF0ZSk7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMKPj4gaW5kZXggYzI1NzlkZWQwYzM2Li5iOTIwZjg4Y2NmZjggMTAwNjQ0Cj4+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPj4gQEAgLTEyNjI0LDE3ICsxMjYyNCwxNyBAQCBzdGF0 aWMgaW50IF9faW50ZWxfc2V0X21vZGUoc3RydWN0IGRybV9jcnRjICptb2Rlc2V0X2NydGMsCj4+ ICAKPj4gIAltb2Rlc2V0X3VwZGF0ZV9jcnRjX3Bvd2VyX2RvbWFpbnMoc3RhdGUpOwo+PiAgCj4+ IC0JZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X3BsYW5lcyhkZXYsIHN0YXRlKTsKPj4gLQo+PiAg CS8qIE5vdyBlbmFibGUgdGhlIGNsb2NrcywgcGxhbmUsIHBpcGUsIGFuZCBjb25uZWN0b3JzIHRo YXQgd2Ugc2V0IHVwLiAqLwo+PiAgCWZvcl9lYWNoX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMs IGNydGNfc3RhdGUsIGkpIHsKPj4gLQkJaWYgKCFuZWVkc19tb2Rlc2V0KGNydGMtPnN0YXRlKSB8 fCAhY3J0Yy0+c3RhdGUtPmVuYWJsZSkKPj4gKwkJaWYgKCFuZWVkc19tb2Rlc2V0KGNydGMtPnN0 YXRlKSB8fCAhY3J0Yy0+c3RhdGUtPmVuYWJsZSkgewo+PiArCQkJZHJtX2F0b21pY19oZWxwZXJf Y29tbWl0X3BsYW5lc19vbl9jcnRjKGNydGNfc3RhdGUpOwo+PiAgCQkJY29udGludWU7Cj4+ICsJ CX0KPj4gIAo+PiAgCQl1cGRhdGVfc2NhbmxpbmVfb2Zmc2V0KHRvX2ludGVsX2NydGMoY3J0Yykp Owo+PiAgCj4+ICAJCWRldl9wcml2LT5kaXNwbGF5LmNydGNfZW5hYmxlKGNydGMpOwo+PiAtCQlp bnRlbF9jcnRjX2VuYWJsZV9wbGFuZXMoY3J0Yyk7Cj4+ICsJCWRybV9hdG9taWNfaGVscGVyX2Nv bW1pdF9wbGFuZXNfb25fY3J0YyhjcnRjX3N0YXRlKTsKPj4gIAl9Cj4+ICAKPj4gIAkvKiBGSVhN RTogYWRkIHN1YnBpeGVsIG9yZGVyICovCj4+IEBAIC0xMzI2Nyw3ICsxMzI2Nyw3IEBAIGludGVs X2NoZWNrX3ByaW1hcnlfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4+ICAJCQlpZiAo SVNfQlJPQURXRUxMKGRldikpCj4+ICAJCQkJaW50ZWxfY3J0Yy0+YXRvbWljLndhaXRfdmJsYW5r ID0gdHJ1ZTsKPj4gIAo+PiAtCQkJaWYgKGNydGNfc3RhdGUgJiYgIW5lZWRzX21vZGVzZXQoJmNy dGNfc3RhdGUtPmJhc2UpKQo+PiArCQkJaWYgKGNydGNfc3RhdGUpCj4+ICAJCQkJaW50ZWxfY3J0 Yy0+YXRvbWljLnBvc3RfZW5hYmxlX3ByaW1hcnkgPSB0cnVlOwo+PiAgCQl9Cj4+ICAKPj4gQEAg LTE1MDAyLDYgKzE1MDAyLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfbW9kZXNldF9yZWFkb3V0X2h3 X3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4+ICAJCXN0cnVjdCBpbnRlbF9wbGFuZV9z dGF0ZSAqcGxhbmVfc3RhdGU7Cj4+ICAKPj4gIAkJbWVtc2V0KGNydGMtPmNvbmZpZywgMCwgc2l6 ZW9mKCpjcnRjLT5jb25maWcpKTsKPj4gKwkJY3J0Yy0+Y29uZmlnLT5iYXNlLmNydGMgPSAmY3J0 Yy0+YmFzZTsKPj4gIAo+PiAgCQljcnRjLT5jb25maWctPnF1aXJrcyB8PSBQSVBFX0NPTkZJR19R VUlSS19JTkhFUklURURfTU9ERTsKPj4gIAoKLS0gCkphbmkgTmlrdWxhLCBJbnRlbCBPcGVuIFNv dXJjZSBUZWNobm9sb2d5IENlbnRlcgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ludGVsLWdmeAo=