From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: Re: [RFC 3/4] drm/i915/gen9: Expose top-most universal plane as cursor Date: Thu, 27 Oct 2016 14:11:36 -0700 Message-ID: <20161027211136.GI5924@intel.com> References: <1477522291-10874-1-git-send-email-matthew.d.roper@intel.com> <1477522291-10874-4-git-send-email-matthew.d.roper@intel.com> <1477598634.19886.102.camel@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id BF2D86E25B for ; Thu, 27 Oct 2016 21:11:37 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1477598634.19886.102.camel@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: Lyude Paul , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBPY3QgMjcsIDIwMTYgYXQgMDY6MDM6NTRQTSAtMDIwMCwgUGF1bG8gWmFub25pIHdy b3RlOgo+IEVtIFF1YSwgMjAxNi0xMC0yNiDDoHMgMTU6NTEgLTA3MDAsIE1hdHQgUm9wZXIgZXNj cmV2ZXU6Cj4gPiBHZW45IGhhcyBhIHRyYWRpdGlvbmFsIGN1cnNvciBwbGFuZSB0aGF0IGlzIG11 dHVhbGx5IGV4Y2x1c2l2ZSB3aXRoCj4gPiB0aGUKPiA+IHN5c3RlbSdzIHRvcC1tb3N0ICJ1bml2 ZXJzYWwiIHBsYW5lOyBpdCBzZWVtcyBsaWtlbHkgdGhhdCB0d28gcGxhbmVzCj4gPiBhcmUKPiA+ IHJlYWxseSBhIHNpbmdsZSBzaGFyZWQgaGFyZHdhcmUgdW5pdCB3aXRoIHR3byBkaWZmZXJlbnQg cmVnaXN0ZXIKPiA+IGludGVyZmFjZXMuwqDCoFRodXMgZmFyIGk5MTUgaGFzIGV4cG9zZWQgYSBj dXJzb3IgcGxhbmUgdG8gdXNlcnNwYWNlCj4gPiB0aGF0J3MgaG9va2VkIHVwIHRvIHRoZSBvbGQt c3R5bGUgY3Vyc29yIHJlZ2lzdGVyczsgd2UganVzdCBwcmV0ZW5kZWQKPiA+IHRoYXQgdGhlIHRv cC1tb3N0IHVuaXZlcnNhbCBwbGFuZSBkaWRuJ3QgZXhpc3QgYW5kIHJlcG9ydGVkIG9uZSBmZXdl cgo+ID4gInNwcml0ZS9vdmVybGF5IiBwbGFuZXMgZm9yIGVhY2ggcGlwZSB0aGFuIHRoZSBwbGF0 Zm9ybSB0ZWNobmljYWxseQo+ID4gaGFzLgo+ID4gTGV0J3Mgc3dpdGNoIHRoaXMgYXJvdW5kIHNv IHRoYXQgdGhlIGN1cnNvciBleHBvc2VkIHRvIHVzZXJzcGFjZSBpcwo+ID4gYWN0dWFsbHkgd2ly ZWQgdXAgdG8gdG9wLW1vc3QgdW5pdmVyc2FsIHBsYW5lIHJlZ2lzdGVycy7CoMKgV2UnbGwKPiA+ IGNvbnRpbnVlCj4gPiB0byBwcmVzZW50IHRoZSBzYW1lIGN1cnNvciBBQkkgdG8gdXNlcnNwYWNl IHRoYXQgd2UgYWx3YXlzIGhhdmUsIGJ1dAo+ID4gaW50ZXJuYWxseSB3ZSdsbCBqdXN0IGJlIHBy b2dyYW1taW5nIGEgZGlmZmVyZW50IHNldCBvZiByZWdpc3RlcnMgYW5kCj4gPiBkb2luZyBzbyBp biBhIHdheSB0aGF0J3MgbW9yZSBjb25zaXN0ZW50IHdpdGggaG93IGFsbCB0aGUgb3RoZXIgZ2Vu OQo+ID4gcGxhbmVzIHdvcmsgLS0tIGxlc3MgY3Vyc29yLXNwZWNpZmljIHNwZWNpYWwgY2FzZXMg dGhyb3VnaG91dCB0aGUKPiA+IGNvZGUuCj4gPiAKPiA+IEFzaWRlIGZyb20gbWFraW5nIHRoZSBj b2RlIGEgYml0IHNpbXBsZXIgKGZld2VyIGN1cnNvci1zcGVjaWZpYwo+ID4gc3BlY2lhbAo+ID4g Y2FzZXMpLCB0aGlzIHdpbGwgYWxzbyBwYXZlIHRoZSB3YXkgdG8gZXZlbnR1YWxseSBleHBvc2lu ZyB0aGUgdG9wLQo+ID4gbW9zdAo+ID4gcGxhbmUgaW4gYSBtb3JlIGZ1bGwtZmVhdHVyZWQgbWFu bmVyIHRvIHVzZXJzcGFjZSBjbGllbnRzIHRoYXQgZG9uJ3QKPiA+IG5lZWQgYSB0cmFkaXRpb25h bCBjdXJzb3IgYW5kIHdpc2ggdG8gb3B0IGludG8gaGF2aW5nIGFjY2VzcyB0byBhbgo+ID4gYWRk aXRpb25hbCBzcHJpdGUvb3ZlcmxheS1zdHlsZSBwbGFuZSBpbnN0ZWFkLgo+ID4gCj4gPiBJdCdz IHdvcnRoIG5vdGluZyB0aGF0IGEgbG90IG9mIHRoZSBzcGVjaWFsLWNhc2VkIGN1cnNvci1zcGVj aWZpYwo+ID4gY29kZQo+ID4gd2FzIGluIHRoZSBnZW45IHdhdGVybWFyayBwcm9ncmFtbWluZy7C oMKgSXQncyBnb29kIHRvIHNpbXBsaWZ5IHRoYXQKPiA+IGNvZGUsCj4gPiBidXQgd2Ugc2hvdWxk IGtlZXAgYW4gZXllIG91dCBmb3IgYW55IHVud2FudGVkIHNpZGUgZWZmZWN0cyBvZiB0aGlzCj4g PiBwYXRjaDsgc2luY2Ugc3ByaXRlcy9vdmVybGF5cyB0ZW5kIHRvIGdldCB1c2VkIGxlc3MgdGhh biBjdXJzb3JzLAo+ID4gaXQncwo+ID4gcG9zc2libGUgdGhhdCB0aGlzIGNvdWxkIGhlbHAgdXMg dW5jb3ZlciBhZGRpdGlvbmFsIHVuZGVycnVucyB0aGF0Cj4gPiBub2JvZHkgaGFkIHJ1biBhY3Jv c3MgeWV0LsKgwqBPciBpdCBjb3VsZCBoYXZlIHRoZSBvcHBvc2l0ZSBlZmZlY3QgYW5kCj4gPiBl bGltaW5hdGUgc29tZSBvZiB0aGUgdW5kZXJydW5zIHRoYXQgd2UgaGF2ZW4ndCBiZWVuIGFibGUg dG8gZ2V0IHJpZAo+ID4gb2YKPiA+IHlldC4KPiA+IAo+ID4gQ2M6IEJvYiBQYWF1d2UgPGJvYi5q LnBhYXV3ZUBpbnRlbC5jb20+Cj4gPiBDYzogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFu a2hvcnN0QGxpbnV4LmludGVsLmNvbT4KPiA+IENjOiBQYXVsbyBaYW5vbmkgPHBhdWxvLnIuemFu b25pQGludGVsLmNvbT4KPiA+IENjOiBMeXVkZSBQYXVsIDxseXVkZUByZWRoYXQuY29tPgo+ID4g U2lnbmVkLW9mZi1ieTogTWF0dCBSb3BlciA8bWF0dGhldy5kLnJvcGVyQGludGVsLmNvbT4KPiA+ IC0tLQo+ID4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuY8KgwqDCoMKgwqDC oHzCoMKgNCAtLQo+ID4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5owqDCoMKgwqDC oMKgwqDCoMKgwqB8IDExICsrKy0KPiA+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2 aWNlX2luZm8uYyB8IDM4ICsrKysrKysrKy0tLS0KPiA+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jwqDCoMKgwqDCoHwgOTcgKysrKysrKysrKysrLS0tLS0tLS0KPiA+IC0t LS0tLS0tLS0tLQo+ID4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaMKgwqDCoMKg wqDCoMKgwqDCoHzCoMKgNyArKysKPiA+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0u Y8KgwqDCoMKgwqDCoMKgwqDCoMKgfCA4NSArKysrLS0tLS0tLS0tLS0tLS0tLQo+ID4gLS0tLS0t LS0KPiA+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmPCoMKgwqDCoMKgwqB8 wqDCoDYgKy0KPiA+IMKgNyBmaWxlcyBjaGFuZ2VkLCA5MyBpbnNlcnRpb25zKCspLCAxNTUgZGVs ZXRpb25zKC0pCj4gPiAKLi4uCj4gPiDCoAo+ID4gLQljdXJzb3JfYmxvY2tzID0gc2tsX2N1cnNv cl9hbGxvY2F0aW9uKG51bV9hY3RpdmUpOwo+ID4gLQlkZGItPnBsYW5lW3BpcGVdW1BMQU5FX0NV UlNPUl0uc3RhcnQgPSBhbGxvYy0+ZW5kIC0KPiA+IGN1cnNvcl9ibG9ja3M7Cj4gPiAtCWRkYi0+ cGxhbmVbcGlwZV1bUExBTkVfQ1VSU09SXS5lbmQgPSBhbGxvYy0+ZW5kOwo+ID4gLQo+ID4gLQlh bGxvY19zaXplIC09IGN1cnNvcl9ibG9ja3M7Cj4gCj4gU28gdGhpcyBtZWFucyB0aGF0IG5vdyBp biBzdGVwIDIgd2UncmUgZ29pbmcgdG8gdHJ5IHRvIGluY3JlYXNlIHRoZQo+IGN1cnNvciBEREJz IGJleW9uZCB0aGUgY3VycmVudCBmaXhlZCBzaXplcyBvZiAzMiBvciA4PyBBcmVuJ3Qgd2UgZ29p bmcKPiB0byBsZWF2ZSB0aGUgY3Vyc29yIEREQiB3YXktdG9vLWJpZyBhbmQgdGFraW5nIHNwYWNl IG9mIHRoZSBvdGhlciBEREJzCj4gd2hlbiBpdCdzIGp1c3QgYmVpbmcgdXNlZCBhcyBhIGN1cnNv cj8KCllvdSdyZSByaWdodCB0aGF0IHdlJ3JlIG5vdCB1c2luZyB0aGUgZml4ZWQgc2l6ZSBhbGxv Y2F0aW9uIGFueW1vcmUuCkhvd2V2ZXIgdGhlIGV4dHJhIGJsb2NrcyB0aGF0IHdlIGdpdmUgdGhl IHBzZXVkby1jdXJzb3Igc2hvdWxkIHN0aWxsIGJlCnByb3BvcnRpb25hbCB0byB0aGUgc2l6ZS9k YXRhIHJhdGUgb2YgdGhlIHBsYW5lLiAgU28gaWYgeW91J3JlIHVzaW5nIGEKNjR4NjQgImN1cnNv ciwiIHRoYXQncyBnb2luZyB0byBiZSB2ZXJ5IHNtYWxsIGNvbXBhcmVkIHRvIHlvdXIgb3RoZXIK cGxhbmVzICh0aGUgcHJpbWFyeSBwbGFuZSBpcyBvZnRlbiBmdWxsc2NyZWVuIGFuZCBvdGhlciB1 bml2ZXJzYWwgcGxhbmVzCmFyZSBhIGdvb2QgcG9ydGlvbiBvZiBmdWxsIHNpemUpLiAgSW4gcHJh Y3RpY2UgaXQgc2VlbXMgdG8gd29yayBvdXQgdGhhdAp0aGUgZXh0cmEgYmxvY2tzIGNhbGN1bGF0 aW9uIHdpbmRzIHVwIHJvdW5kaW5nIGRvd24gdG8gemVybyBvciBuZWFyIHplcm8Kc2luY2UgdGhl ICJjdXJzb3IiIGlzIHNvIGR3YXJmZWQgYnkgdGhlIHByaW1hcnkgcGxhbmUgLS0tIG9uIG15CjE5 MjB4MTIwMCBkaXNwbGF5IGl0IHdvcmtzIG91dCBhczoKCiAgICAgICAgUHJpbWFyeSBkYXRhIHJh dGU6ICA4Mjk0NDAwCiAgICAgICAgQ3Vyc29yIGRhdGEgcmF0ZTogICAgIDE2Mzg0CiAgICAgICAg VG90YWwgZGF0YSByYXRlOiAgICA4MzEwNzg0CiAgICAgICAgUmVtYWluaW5nIEREQiBibG9ja3M6 ICAgNDkyCgogICAgICAgIFByaW1hcnkgZXh0cmEgYmxvY2tzID0gODI5NDQwMCAqIDQ5MiAvIDgz MTA3ODQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IChpbnQpNDkxLjAzMDA2CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgPSA0OTEKICAgICAgICBDdXJzb3IgZXh0cmEgYmxvY2tz ID0gMTYzODQgKiA0OTIgLyA4MzEwNzg0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAo aW50KTAuOTY5OTM1CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAwCgpEdWUgdG8gcm91 bmRpbmcgd2UgZG9uJ3QgYWN0dWFsbHkgYWRkIGFueSBjdXJzb3IgYmxvY2tzIGF0IGFsbC4gIElu IGZhY3QKd2UncmUgdXNpbmcgX2Zld2VyXyBibG9ja3MgZm9yIGN1cnNvciB0aGFuIHRoZSAzMiBm aXhlZCBhbGxvY2F0aW9uIHdlCndlcmUgcHJldmlvdXNseSB1c2luZyBmb3Igc2luZ2xlIGRpc3Bs YXkgc2V0dXBzLgoKPiBBbHNvLCB3ZSdyZSBub3QgZ29pbmcgdG8gbGVhdmUgdGhlIGN1cnNvciBE REIgYXQgdGhlIGVuZCBvZiB0aGUgYnVmZmVyLAo+IHdoaWNoIG1heSBjYXVzZSBzb21lIGV4dHJh IEREQiByZWFsbG9jYXRpb25zIHRoYXQgd2UgbWF5IG5vdCB3YW50Lgo+IEFsc28sIHdoZW5ldmVy IHNvbWVvbmUgZGlzYWJsZXMgdGhlIGN1cnNvciB3ZSdsbCBkbyBhIEREQiByZWFsbG9jYXRpb24s Cj4gYW5kIGFzIGZhciBhcyBJIHVuZGVyc3RhbmQgd2UgcmVhbGx5IGRvbid0IHdhbnQgdGhpcyBz cGVjaWZpYyBjYXNlCj4gc2luY2UgaXQncyBzbyBjb21tb24uCgpUcnVlLCBidXQgdGhlIHJlYWxs b2NhdGlvbiBpbiB0aGlzIGNhc2UgaXMgYW4gaW50cmEtcGlwZSByZWFsbG9jYXRpb24KcmF0aGVy IHRoYW4gdGhlIGhvcnJpZmljICJsb2NrIHRoZSB3aG9sZSB3b3JsZCIgaW50ZXItcGlwZSByZWFs bG9jYXRpb24uCkl0IG1lYW5zIHdlIGNydW5jaCBhIGZldyBtb3JlIG51bWJlcnMgZHVyaW5nIGF0 b21pYyBjaGVjayBhbmQgd3JpdGUgYQpmZXcgcmVnaXN0ZXJzIHdlIG1pZ2h0IGhhdmUgc2tpcHBl ZCBkdXJpbmcgYXRvbWljIGNvbW1pdCwgYnV0IHRoZXJlJ3Mgbm8KZXh0cmEgbG9ja2luZyBvciBt YWpvciBuZXcgd29yayBoYXBwZW5pbmcsIHNvIGl0IGRvZXNuJ3Qgc2VlbSBsaWtlIGl0CnJlYWxs eSBhZGRzIHRvbyBtdWNoIG92ZXJoZWFkLCBldmVuIGlmIHVzZXJzcGFjZSBpcyB0cnlpbmcgdG8g dHVybiB0aGUKY3Vyc29yIG9uIGFuZCBvZmYgbm9uc3RvcCBsaWtlIHNvbWUgRERYJ3MgZG8uCgo+ IEFuZCB0aGVyZSdzIGEgc2lsbC1ub3QtaW1wbGVtZW50ZWQgd29ya2Fyb3VuZCBmb3Igd2F0ZXJt YXJrcwo+IHByb2dyYW1taW5nIHJlbGF0ZWQgdG8gdGhlIG1lbW9yeSBiYW5kd2lkdGggYW5kIGl0 IGFsc28gc3BlY2lhbC1jYXNlcwo+IHRoZSBjdXJzb3IuIElzIHRoZXJlIGEgd2F5IHRvIGtub3cg d2hlbiB0aGUgY3Vyc29yIGlzIGJlaW5nIHVzZWQgYXMgYQo+IGN1cnNvciBvciB3aGVuIGl0J3Mg YmVpbmcgdXNlZCBhcyBhIG5vcm1hbCBwbGFuZT8gTWF5YmUganVzdCBjaGVjayBpdAo+IGJ5IGEg c2l6ZSB0aHJlc2hvbGQ/CgpXZWxsIGluIHRoaXMgY2FzZSB3ZSdyZSBlZmZlY3RpdmVseSBub3Qg dXNpbmcgdGhlIGN1cnNvciBhbnltb3JlIGZyb20KdGhlIGhhcmR3YXJlJ3MgcG9pbnQgb2Ygdmll dzsgaXQncyBkaXNhYmxlZC4gIFlvdSdyZSBqdXN0IHVzaW5nIHRoZQoicHJpbWFyeSIgcGxhbmUg YW5kIGF0IGxlYXN0IG9uZSBhZGRpdGlvbmFsIHVuaXZlcnNhbCAoYWthICJzcHJpdGUiKQpwbGFu ZSwgd2hpY2ggaXMgYWxyZWFkeSBhIHZhbGlkIGRpc3BsYXkgY29uZmlndXJhdGlvbiB0aGF0IHdl IGVuY291bnRlcgpmcmVxdWVudGx5IGV2ZW4gd2l0aG91dCB0aGlzIHBhdGNoLiAgU28gdGhlIHdv cmthcm91bmRzIHNob3VsZCBhbHJlYWR5CmNvdmVyIHRoYXQgY2FzZSBwcm9wZXJseS4KCkJhc2lj YWxseSB3ZSBkb24ndCBuZWVkIHRvIHVzZSB0aGUgaGFyZHdhcmUncyBpZGVhIG9mIHdoYXQgYSBj dXJzb3IgaXMKaW4gb3JkZXIgdG8gaW1wbGVtZW50IHVzZXJzcGFjZSdzIGlkZWEgb2Ygd2hhdCB0 aGUgY3Vyc29yIGlzLgoKPiBNeSBhbnhpZXR5IGxldmVscyBhbHdheXMgZ28gdXAgd2hlbmV2ZXIg SSBzZWUgc29tZW9uZSBjaGFuZ2luZyB0aGUgY29kZQo+IGluIGEgd2F5IHRoYXQgbWFrZXMgaXQg bm90IG1hdGNoIHdpdGggd2hhdCdzIHdyaXR0ZW4gaW4gdGhlIHNwZWMKPiBhbnltb3JlLiBNYXli ZSB3ZSdsbCBiZSBmaW5lIHdpdGggdGhlIGNoYW5nZXMsIGJ1dCB3ZSBuZWVkIHRvIGNhcmVmdWxs eQo+IGFuYWx5emUgdGhlIGltcGFjdCBoZXJlLCBlc3BlY2lhbGx5IHNpbmNlIHdhdGVybWFya3Mg YXJlIHN0aWxsIHNvCj4gZnJhZ2lsZS4gTWF5YmUgd2Ugc2hvdWxkIGp1c3QgcGluZyB0aGUgc3Bl YyBhdXRob3JzIGFuZCBtYWtlIHRoZW0KPiByZXdyaXRlIHRoZSBzcGVjcyBpbiBhIHdheSB0aGF0 IGNvbnNpZGVycyB0aGUgY2FzZXMgd2hlcmUgdGhlIGN1cnNvcgo+IHBsYW5lIGlzIGJlaW5nIHVz ZWQgYXMgYSBnZW5lcmljIHBsYW5lPwoKSSB0aGluayBJIG1heSBub3QgaGF2ZSBkb25lIGEgdmVy eSBnb29kIGpvYiBvZiBleHBsYWluaW5nIHdoYXQncwpoYXBwZW5pbmcgaGVyZSAtLS0gdGhlIGNv ZGUgaW4gdGhpcyBwYXRjaCBzaG91bGQgc3RpbGwgZnVsbHkgbWF0Y2ggdGhlCnNwZWMuICBUaGUg c3BlYyBjb3ZlcnMgaG93IHRvIHVzZSBhbGwgb2YgdGhlIHBsYW5lcyBvbiB0aGUgc3lzdGVtIGFu ZAp5b3UncmUgZnJlZSB0byB0dXJuIG9uIG9yIHR1cm4gb2ZmIGFueSBjb21iaW5hdGlvbiBvZiB0 aGVtIHlvdSB3YW50LgpUaGUgZXhjZXB0aW9uIGlzIHRoYXQgdGhlIHRvcG1vc3QgdW5pdmVyc2Fs IHBsYW5lIGFuZCB0aGUgY3Vyc29yIGNhbid0CmJlIHVzZWQgYXQgdGhlIHNhbWUgdGltZS4gIFBy ZXZpb3VzbHkgdGhhdCBtZWFudCB3ZSBqdXN0IG5ldmVyIGxldCB0aGUKdG9wbW9zdCBwbGFuZSBn ZXQgdHVybmVkIG9uIGF0IGFsbCAodG8gZW5zdXJlIG5vIGNvbmZsaWN0KSwgYnV0IHRoZSBzcGVj CnN0aWxsIGRlc2NyaWJlcyBob3cgdGhlIHRvcCBwbGFuZSBzaG91bGQgYmUgcHJvZ3JhbW1lZCBh bmQgYWNjb3VudGVkIGZvcgppbiB3b3JrYXJvdW5kcyAoaS5lLiwgdGhlIGV4YWN0IHNhbWUgd2F5 IGFzIHRoZSBvdGhlciB1bml2ZXJzYWwgcGxhbmVzKTsKdGhlIGNoYW5nZXMgaGVyZSBzaG91bGQg YWxsIGFkaGVyZSB0byB0aGF0LiAgTm93IHdlJ3JlIGZsaXBwaW5nIGFyb3VuZApob3cgd2UgZW5z dXJlIG11dHV0YWwgZXhjbHVzaW9uIHRvIGJlICJ3ZSdsbCBuZXZlciB0dXJuIG9uIHRoZSBjdXJz b3IKcGxhbmUiIGluc3RlYWQsIHdoaWNoIGlzIHBlcmZlY3RseSBsZWdhbC4KClRoZSBoYXJkd2Fy ZSBsZXZlbCBkZXRhaWxzIGhlcmUgYXJlIGluZGVwZW5kZW50IG9mIHRoZSBwbGFuZSBsaXN0IHdl CmV4cG9zZSB0byB1c2Vyc3BhY2UuICBGb3IgQUJJIHB1cnBvc2VzIHdlIGFsd2F5cyBuZWVkICpz b21ldGhpbmcqIHRoYXQKaXMgaWRlbnRpZmllZCBhcyBhICJjdXJzb3IiIGFuZCBpcyBob29rZWQg dXAgdG8gdGhlIGxlZ2FjeSBjdXJzb3IKaW9jdGxzLiAgVGhlcmUncyBub3RoaW5nIHRoYXQgc2F5 cyB3ZSBhY3R1YWxseSBoYXZlIHRvIGltcGxlbWVudCB0aGF0CnVzZXJzcGFjZSBpbnRlcmZhY2Ug dXNpbmcgb3VyIGhhcmR3YXJlJ3MgZGVkaWNhdGVkIGN1cnNvciBwbGFuZSAtLS0Kd2UncmUgZnJl ZSB0byByZS11c2UgYW55IG90aGVyIHBsYW5lIG91ciBoYXJkd2FyZSBoYXBwZW5zIHRvIGhhdmUg YXMKd2VsbC4gIFRoYXQncyB3aGF0IEknbSBkb2luZyBoZXJlLi4udGhlIHRvcG1vc3QgdW5pdmVy c2FsL3Nwcml0ZSBwbGFuZQp0aGF0IHdhcyBwcmV2aW91c2x5IG5ldmVyIHVzZWQgYXQgYWxsIGlz IG5vdyByZXNlcnZlZCBmb3Igc2VydmljaW5nCnJlcXVlc3RzIGFnYWluc3QgdGhlIHBsYW5lIGlk ZW50aWZpZWQgYXMgRFJNX1BMQU5FX1RZUEVfQ1VSU09SLgpVc2Vyc3BhY2UgbmV2ZXIgbm90aWNl cyBhIGRpZmZlcmVuY2UgYXMgbG9uZyBhcyB0aGUgdW5pdmVyc2FsIHBsYW5lIGdldHMKdGhlIGN1 cnNvciBjb250ZW50IG9udG8gdGhlIHNjcmVlbiB0aGUgc2FtZSB3YXkgYXMgdGhlIGN1cnNvciBw bGFuZS4KCkkgdGhpbmsgdGhpcyBpcyBhY3R1YWxseSBwcmV0dHkgc2ltaWxhciB0byB3aGF0IGhh cHBlbnMgYSBsb3QgaW4gdGhlIEFSTQp3b3JsZC4gIE15IHVuZGVyc3RhbmRpbmcgaXMgdGhhdCBt b3N0IG9mIHRoZSBBUk0gZ3V5cyBkb24ndCBldmVuIGhhdmUgYQp0cnVlICJjdXJzb3IiIHBsYW5l LCBidXQgcmF0aGVyIGp1c3QgYSBidW5jaCBvZiBnZW5lcmFsIHB1cnBvc2UgcGxhbmVzCnRoYXQg YXJlIG1vcmUgc2ltaWxhciB0byB3aGF0IHdlIGNhbGwgdW5pdmVyc2FsIHBsYW5lcy4gIFRoZXkn bGwKdHlwaWNhbGx5IHJlc2VydmUgb25lIG9mIHRob3NlIHBsYW5lcyBmb3IgY3Vyc29yIEFCSSBj b21wYXRpYmlsaXR5LgoKSG9wZWZ1bGx5IHRoYXQncyBtb3JlIGNsZWFyLi4uaWYgbm90IGxldCBt ZSBrbm93LgoKCk1hdHQKCj4gCj4gPiAtCj4gPiDCoAkvKiAxLiBBbGxvY2F0ZSB0aGUgbWluaW51 bSByZXF1aXJlZCBibG9ja3MgZm9yIGVhY2ggYWN0aXZlCj4gPiBwbGFuZSAqLwo+ID4gwqAJZm9y X2VhY2hfcGxhbmVfaW5fc3RhdGUoc3RhdGUsIHBsYW5lLCBwc3RhdGUsIGkpIHsKPiA+IMKgCQlp bnRlbF9wbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lKTsKPiA+IEBAIC0zNDMxLDE3ICszNDA4 LDEyIEBAIHNrbF9hbGxvY2F0ZV9waXBlX2RkYihzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZQo+ID4g KmNzdGF0ZSwKPiA+IMKgCQkJeV9taW5pbXVtW2lkXSA9IDA7Cj4gPiDCoAkJCWNvbnRpbnVlOwo+ ID4gwqAJCX0KPiA+IC0JCWlmIChwbGFuZS0+dHlwZSA9PSBEUk1fUExBTkVfVFlQRV9DVVJTT1Ip IHsKPiA+IC0JCQltaW5pbXVtW2lkXSA9IDA7Cj4gPiAtCQkJeV9taW5pbXVtW2lkXSA9IDA7Cj4g PiAtCQkJY29udGludWU7Cj4gPiAtCQl9Cj4gPiDCoAo+ID4gwqAJCW1pbmltdW1baWRdID0gc2ts X2RkYl9taW5fYWxsb2MocHN0YXRlLCAwKTsKPiA+IMKgCQl5X21pbmltdW1baWRdID0gc2tsX2Rk Yl9taW5fYWxsb2MocHN0YXRlLCAxKTsKPiA+IMKgCX0KPiA+IMKgCj4gPiAtCWZvciAoaSA9IDA7 IGkgPCBQTEFORV9DVVJTT1I7IGkrKykgewo+ID4gKwlmb3IgKGkgPSAwOyBpIDwgSTkxNV9NQVhf UExBTkVTOyBpKyspIHsKPiA+IMKgCQlhbGxvY19zaXplIC09IG1pbmltdW1baV07Cj4gPiDCoAkJ YWxsb2Nfc2l6ZSAtPSB5X21pbmltdW1baV07Cj4gPiDCoAl9Cj4gPiBAQCAtMzg2NiwyNiArMzgz OCw2IEBAIHZvaWQgc2tsX3dyaXRlX3BsYW5lX3dtKHN0cnVjdCBpbnRlbF9jcnRjCj4gPiAqaW50 ZWxfY3J0YywKPiA+IMKgCQkJwqDCoMKgwqAmZGRiLT55X3BsYW5lW3BpcGVdW3BsYW5lXSk7Cj4g PiDCoH0KPiA+IMKgCj4gPiAtdm9pZCBza2xfd3JpdGVfY3Vyc29yX3dtKHN0cnVjdCBpbnRlbF9j cnRjICppbnRlbF9jcnRjLAo+ID4gLQkJCcKgY29uc3Qgc3RydWN0IHNrbF9wbGFuZV93bSAqd20s Cj4gPiAtCQkJwqBjb25zdCBzdHJ1Y3Qgc2tsX2RkYl9hbGxvY2F0aW9uICpkZGIpCj4gPiAtewo+ ID4gLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSAmaW50ZWxfY3J0Yy0+YmFzZTsKPiA+IC0Jc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKPiA+IC0Jc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ID4gLQlpbnQgbGV2ZWwsIG1heF9sZXZl bCA9IGlsa193bV9tYXhfbGV2ZWwoZGV2X3ByaXYpOwo+ID4gLQllbnVtIHBpcGUgcGlwZSA9IGlu dGVsX2NydGMtPnBpcGU7Cj4gPiAtCj4gPiAtCWZvciAobGV2ZWwgPSAwOyBsZXZlbCA8PSBtYXhf bGV2ZWw7IGxldmVsKyspIHsKPiA+IC0JCXNrbF93cml0ZV93bV9sZXZlbChkZXZfcHJpdiwgQ1VS X1dNKHBpcGUsIGxldmVsKSwKPiA+IC0JCQkJwqDCoMKgJndtLT53bVtsZXZlbF0pOwo+ID4gLQl9 Cj4gPiAtCXNrbF93cml0ZV93bV9sZXZlbChkZXZfcHJpdiwgQ1VSX1dNX1RSQU5TKHBpcGUpLCAm d20tCj4gPiA+dHJhbnNfd20pOwo+ID4gLQo+ID4gLQlza2xfZGRiX2VudHJ5X3dyaXRlKGRldl9w cml2LCBDVVJfQlVGX0NGRyhwaXBlKSwKPiA+IC0JCQnCoMKgwqDCoCZkZGItPnBsYW5lW3BpcGVd W1BMQU5FX0NVUlNPUl0pOwo+ID4gLX0KPiA+IC0KPiA+IMKgYm9vbCBza2xfd21fbGV2ZWxfZXF1 YWxzKGNvbnN0IHN0cnVjdCBza2xfd21fbGV2ZWwgKmwxLAo+ID4gwqAJCQnCoGNvbnN0IHN0cnVj dCBza2xfd21fbGV2ZWwgKmwyKQo+ID4gwqB7Cj4gPiBAQCAtNDEyMiwxOSArNDA3NCwxMSBAQCBz a2xfcHJpbnRfd21fY2hhbmdlcyhjb25zdCBzdHJ1Y3QKPiA+IGRybV9hdG9taWNfc3RhdGUgKnN0 YXRlKQo+ID4gwqAJCQlpZiAoc2tsX2RkYl9lbnRyeV9lcXVhbChvbGQsIG5ldykpCj4gPiDCoAkJ CQljb250aW51ZTsKPiA+IMKgCj4gPiAtCQkJaWYgKGlkICE9IFBMQU5FX0NVUlNPUikgewo+ID4g LQkJCQlEUk1fREVCVUdfQVRPTUlDKCJbUExBTkU6JWQ6cGxhbmUKPiA+ICVkJWNdIGRkYiAoJWQg LSAlZCkgLT4gKCVkIC0gJWQpXG4iLAo+ID4gLQkJCQkJCcKgcGxhbmUtPmJhc2UuaWQsIGlkCj4g PiArIDEsCj4gPiAtCQkJCQkJwqBwaXBlX25hbWUocGlwZSksCj4gPiAtCQkJCQkJwqBvbGQtPnN0 YXJ0LCBvbGQtCj4gPiA+ZW5kLAo+ID4gLQkJCQkJCcKgbmV3LT5zdGFydCwgbmV3LQo+ID4gPmVu ZCk7Cj4gPiAtCQkJfSBlbHNlIHsKPiA+IC0JCQkJRFJNX0RFQlVHX0FUT01JQygiW1BMQU5FOiVk OmN1cnNvcgo+ID4gJWNdIGRkYiAoJWQgLSAlZCkgLT4gKCVkIC0gJWQpXG4iLAo+ID4gLQkJCQkJ CcKgcGxhbmUtPmJhc2UuaWQsCj4gPiAtCQkJCQkJwqBwaXBlX25hbWUocGlwZSksCj4gPiAtCQkJ CQkJwqBvbGQtPnN0YXJ0LCBvbGQtCj4gPiA+ZW5kLAo+ID4gLQkJCQkJCcKgbmV3LT5zdGFydCwg bmV3LQo+ID4gPmVuZCk7Cj4gPiAtCQkJfQo+ID4gKwkJCURSTV9ERUJVR19BVE9NSUMoIltQTEFO RTolZDpwbGFuZSAlZCVjXSBkZGIKPiA+ICglZCAtICVkKSAtPiAoJWQgLSAlZClcbiIsCj4gPiAr CQkJCQnCoHBsYW5lLT5iYXNlLmlkLCBpZCArIDEsCj4gPiArCQkJCQnCoHBpcGVfbmFtZShwaXBl KSwKPiA+ICsJCQkJCcKgb2xkLT5zdGFydCwgb2xkLT5lbmQsCj4gPiArCQkJCQnCoG5ldy0+c3Rh cnQsIG5ldy0+ZW5kKTsKPiA+IMKgCQl9Cj4gPiDCoAl9Cj4gPiDCoH0KPiA+IEBAIC00MjM1LDkg KzQxNzksNiBAQCBzdGF0aWMgdm9pZCBza2xfdXBkYXRlX3dtKHN0cnVjdCBkcm1fY3J0Ywo+ID4g KmNydGMpCj4gPiDCoAkJZm9yX2VhY2hfdW5pdmVyc2FsX3BsYW5lKGRldl9wcml2LCBwaXBlLCBw bGFuZSkKPiA+IMKgCQkJc2tsX3dyaXRlX3BsYW5lX3dtKGludGVsX2NydGMsICZwaXBlX3dtLQo+ ID4gPnBsYW5lc1twbGFuZV0sCj4gPiDCoAkJCQkJwqDCoMKgJnJlc3VsdHMtPmRkYiwgcGxhbmUp Owo+ID4gLQo+ID4gLQkJc2tsX3dyaXRlX2N1cnNvcl93bShpbnRlbF9jcnRjLCAmcGlwZV93bS0K PiA+ID5wbGFuZXNbUExBTkVfQ1VSU09SXSwKPiA+IC0JCQkJwqDCoMKgwqAmcmVzdWx0cy0+ZGRi KTsKPiA+IMKgCX0KPiA+IMKgCj4gPiDCoAlza2xfY29weV93bV9mb3JfcGlwZShod192YWxzLCBy ZXN1bHRzLCBwaXBlKTsKPiA+IEBAIC00MzUwLDE4ICs0MjkxLDEyIEBAIHZvaWQgc2tsX3BpcGVf d21fZ2V0X2h3X3N0YXRlKHN0cnVjdCBkcm1fY3J0Ywo+ID4gKmNydGMsCj4gPiDCoAkJd20gPSAm b3V0LT5wbGFuZXNbaWRdOwo+ID4gwqAKPiA+IMKgCQlmb3IgKGxldmVsID0gMDsgbGV2ZWwgPD0g bWF4X2xldmVsOyBsZXZlbCsrKSB7Cj4gPiAtCQkJaWYgKGlkICE9IFBMQU5FX0NVUlNPUikKPiA+ IC0JCQkJdmFsID0gSTkxNV9SRUFEKFBMQU5FX1dNKHBpcGUsIGlkLAo+ID4gbGV2ZWwpKTsKPiA+ IC0JCQllbHNlCj4gPiAtCQkJCXZhbCA9IEk5MTVfUkVBRChDVVJfV00ocGlwZSwKPiA+IGxldmVs KSk7Cj4gPiArCQkJdmFsID0gSTkxNV9SRUFEKFBMQU5FX1dNKHBpcGUsIGlkLCBsZXZlbCkpOwo+ ID4gwqAKPiA+IMKgCQkJc2tsX3dtX2xldmVsX2Zyb21fcmVnX3ZhbCh2YWwsICZ3bS0KPiA+ID53 bVtsZXZlbF0pOwo+ID4gwqAJCX0KPiA+IMKgCj4gPiAtCQlpZiAoaWQgIT0gUExBTkVfQ1VSU09S KQo+ID4gLQkJCXZhbCA9IEk5MTVfUkVBRChQTEFORV9XTV9UUkFOUyhwaXBlLCBpZCkpOwo+ID4g LQkJZWxzZQo+ID4gLQkJCXZhbCA9IEk5MTVfUkVBRChDVVJfV01fVFJBTlMocGlwZSkpOwo+ID4g KwkJdmFsID0gSTkxNV9SRUFEKFBMQU5FX1dNX1RSQU5TKHBpcGUsIGlkKSk7Cj4gPiDCoAo+ID4g wqAJCXNrbF93bV9sZXZlbF9mcm9tX3JlZ192YWwodmFsLCAmd20tPnRyYW5zX3dtKTsKPiA+IMKg CX0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+ ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+ID4gaW5kZXggNDNkMDM1 MC4uOWU2NDA2YSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nw cml0ZS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+ID4g QEAgLTE5NCw3ICsxOTQsNyBAQCB2b2lkIGludGVsX3BpcGVfdXBkYXRlX2VuZChzdHJ1Y3QgaW50 ZWxfY3J0Ywo+ID4gKmNydGMsIHN0cnVjdCBpbnRlbF9mbGlwX3dvcmsgKndvcmsKPiA+IMKgCX0K PiA+IMKgfQo+ID4gwqAKPiA+IC1zdGF0aWMgdm9pZAo+ID4gK3ZvaWQKPiA+IMKgc2tsX3VwZGF0 ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpkcm1fcGxhbmUsCj4gPiDCoAkJwqBjb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiA+IMKgCQnCoGNvbnN0IHN0cnVjdCBp bnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCj4gPiBAQCAtMjg1LDcgKzI4NSw3IEBAIHNr bF91cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqZHJtX3BsYW5lLAo+ID4gwqAJUE9TVElO R19SRUFEKFBMQU5FX1NVUkYocGlwZSwgcGxhbmUpKTsKPiA+IMKgfQo+ID4gwqAKPiA+IC1zdGF0 aWMgdm9pZAo+ID4gK3ZvaWQKPiA+IMKgc2tsX2Rpc2FibGVfcGxhbmUoc3RydWN0IGRybV9wbGFu ZSAqZHBsYW5lLCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gPiDCoHsKPiA+IMKgCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBkcGxhbmUtPmRldjsKPiA+IEBAIC03NTIsNyArNzUyLDcgQEAgaWxr X2Rpc2FibGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsIHN0cnVjdAo+ID4gZHJtX2Ny dGMgKmNydGMpCj4gPiDCoAlQT1NUSU5HX1JFQUQoRFZTU1VSRihwaXBlKSk7Cj4gPiDCoH0KPiA+ IMKgCj4gPiAtc3RhdGljIGludAo+ID4gK2ludAo+ID4gwqBpbnRlbF9jaGVja19zcHJpdGVfcGxh bmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gPiDCoAkJCcKgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUsCj4gPiDCoAkJCcKgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpz dGF0ZSkKCi0tIApNYXR0IFJvcGVyCkdyYXBoaWNzIFNvZnR3YXJlIEVuZ2luZWVyCklvVEcgUGxh dGZvcm0gRW5hYmxpbmcgJiBEZXZlbG9wbWVudApJbnRlbCBDb3Jwb3JhdGlvbgooOTE2KSAzNTYt Mjc5NQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK