From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mario Kleiner Subject: Re: [PATCH 2/2] drm/i915: Add module parameter to en-/disable hw color correction. Date: Fri, 29 Sep 2017 08:57:47 +0200 Message-ID: <5c8c0309-b8ce-4ef8-9ca8-b9a3de4a0ec6@gmail.com> References: <20170915154825.13462-1-mario.kleiner.de@gmail.com> <20170915154825.13462-3-mario.kleiner.de@gmail.com> <20170926050507.xkfcmgefl27cxg5f@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170926050507.xkfcmgefl27cxg5f@phenom.ffwll.local> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter Cc: daniel.vetter@ffwll.ch, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gMDkvMjYvMjAxNyAwNzowNSBBTSwgRGFuaWVsIFZldHRlciB3cm90ZToKPiBPbiBGcmksIFNl cCAxNSwgMjAxNyBhdCAwNTo0ODoyNVBNICswMjAwLCBNYXJpbyBLbGVpbmVyIHdyb3RlOgo+PiBU aGUgbmV3IG1vZHVsZSBwYXJhbWV0ZXIgZW5hYmxlX2h3X2NvbG9yX2NvcnJlY3Rpb24gZGVmYXVs dHMgdG8KPj4gdHJ1ZSwgdG8gcmV0YWluIHRoZSBjdXJyZW50IGJlaGF2aW91ci4gSWYgc2V0IHRv IGZhbHNlLCBpdCB3aWxsCj4+IGRpc2FibGUgYWxsIGhhcmR3YXJlIGNvbG9yIGNvcnJlY3Rpb24s IGxpa2UgZ2FtbWEvZGVnYW1tYSBhbmQKPj4gY3NjLgo+Pgo+PiBUaGlzIGlzIHVzZWZ1bCBmb3Ig ZGVidWdnaW5nIGdhbW1hIHRhYmxlIC8gY3NjIHByZWNpc2lvbiBwcm9ibGVtcywKPj4gYW5kIHRv IGVuc3VyZSB1bm1vZGlmaWVkIHBpeGVsIHBhc3N0aHJvdWdoIGZyb20gZnJhbWVidWZmZXIgdG8K Pj4gb3V0cHV0cywgZS5nLiwgZm9yIHNjaWVudGlmaWMgYXBwbGljYXRpb25zIHdoaWNoIGNyaXRp Y2FsbHkgZGVwZW5kCj4+IG9uIHBlcmZlY3QgcGl4ZWwgcGFzc3Rocm91Z2guIFdoaWxlIGkgaG9w ZSB0aGlzIHN3aXRjaCBnZW5lcmFsbHkKPj4gd29uJ3QgYmUgbmVlZGVkLCBpdCBwcm92aWRlcyBl eHRyYSBwZWFjZS1vZi1taW5kIC0gYW4gImFpcmJhZyIgZm9yCj4+IGNvbG9yIGNvcnJlY3Rpb24g dHJvdWJsZS4KPj4KPj4gVGVzdGVkIG9uIElyb25sYWtlLCBJdnlCcmlkZ2UsIEhhc3dlbGwsIFNr eWxha2UuCj4+Cj4+IE9uZSB1bmV4cGVjdGVkIHJlc3VsdCBkdXJpbmcgdGVzdGluZyB3YXMgdGhh dCB3aGlsZSB0aGlzIHdvcmtzIG9uCj4+IGFsbCB0ZXN0ZWQgZ3B1J3Mgd2l0aCBhIDggYnBjIFhS MjQgZnJhbWVidWZmZXIgYXMgcHJpbWFyeSBwbGFuZSwKPj4gaWYgYSAxMCBicGMgWFIzMCBmYiBp cyBhY3RpdmUsIHRoZW4gaHcgZ2FtbWEgdGFibGVzIHNlZW0gdG8gZ2V0Cj4+IGF1dG9tYXRpY2Fs bHkgYnlwYXNzZWQgb24gYXQgbGVhc3QgdGhlIHRlc3RlZCBJdnlCcmlkZ2UgYW5kIGxhdGVyCj4+ IChidXQgbm90IG9uIHRoZSB0ZXN0ZWQgSXJvbmxha2UpLCByZWdhcmRsZXNzIG9mIGh3IHByb2dy YW1taW5nLAo+PiBhdCBsZWFzdCBmb3IgdGhlIGxlZ2FjeSAyNTYtPjggYml0IGx1dHMgYW5kIHRo ZSAxMDI0LT4xMCBiaXQKPj4gcHJlY2lzaW9uIGx1dHMuIEhvd2V2ZXIsIHRoZSB0eXBlIG9mIHNl bGVjdGVkIC0gYnV0IGJ5cGFzc2VkIC0KPj4gaHcgZ2FtbWEgdGFibGUgc3RpbGwgZGV0ZXJtaW5l cyBvdXRwdXQgcHJlY2lzaW9uLCBpZS4gZXZlbiBhbgo+PiBhdXRvLWJ5cGFzc2VkIGxlZ2FjeSAy NTYgc2xvdCA4IGJpdCBsdXQgaW4gWFIzMCBmYiBtb2RlIHN0aWxsCj4+IHJlc3RyaWN0cyB0aGUg ZWZmZWN0aXZlIG91dHB1dCBwcmVjaXNpb24gdG8gOCBiaXQsIHdoaWxlIGFuCj4+IGF1dG8tYnlw YXNzZWQgcHJlY2lzaW9uIGx1dCBkb2Vzbid0IHJlc3RyaWN0IHByZWNpc2lvbi4KPiAKPiBJbnN0 ZWFkIG9mIGEgbW9kcGFyYW0gSSB0aGluayB0aGUgcmlnaHQgdGhpbmcgdG8gZml4IGhlcmUgaXMg dGhlIGRyaXZlcgo+IHNldHVwLiBFbmFibGluZyB0aGUgbGVnYWN5IGdhbW1hIHRhYmxlIGlzIGlu ZGVlZCBkb2N1bWVudGVkIHRvIHJlc3RyaWN0Cj4gdGhlIHBpcGUgdG8gOGJwYyAodGhlIDIgYWRk aXRpb25hbCBiaXRzIGZvciAxMGJwYyBhcmUganVzdCBwYWRkZWQpLgo+IAo+IEhhdmluZyBkcml2 ZXIgb3B0aW9ucyBmb3IgInBscyBnaXZlIG1lIG5vbi1icm9rZW4gYmVoYXZpb3VyIiBkb2Vzbid0 IG1ha2UKPiBhbnkgc2Vuc2UgdG8gbWUuCj4gLURhbmllbAo+IAoKSGkgRGFuaWVsLAoKdGhpcyBp c24ndCBtZWFudCBhcyBhIHBlcm1hbmVudCBzb2x1dGlvbiwgYnV0IGFzIGEgZGVidWdnaW5nIGFp ZCwgYW5kIGFzIAp0aGUgZXF1aXZhbGVudCBvZiBhbiBhaXItYmFnIGluIGEgY2FyLiBZb3UgaG9w ZSB5b3Ugd29uJ3QgbmVlZCBpdCwgYnV0IAppdCBpcyBnb29kIHRvIGhhdmUuIEluIHRoZSBwYXN0 IGl0IHdvdWxkIGhhdmUgYmVlbiB2ZXJ5IGhhbmR5IGZvciBtZSB0byAKaGF2ZSBhIG1hc3Rlci1z d2l0Y2ggZm9yIHRoaXMsIGRlYnVnZ2luZyBwcm9ibGVtcyBvbiB1c2VycyBtYWNoaW5lcyAKcmVs YXRlZCB0byAicGl4ZWxzIGRvbid0IGFwcGVhciBvbiB0aGUgb3V0cHV0cyBhcyBzcGVjaWZpZWQg aW4gdGhlIApPcGVuR0wgcmVuZGVyaW5nIGNvZGUiLiBXaGVuIGxvb2tpbmcgb3ZlciB0aGUgZG9j cyBmb3IgY29sb3IgY29ycmVjdGlvbiAKaSBqdXN0IHJlYWxpemVkIHRoZSBoYXJkd2FyZSBoYXMg YW4gZWFzeSB3YXkgdG8gZGlzYWJsZSB0aGlzIHBhcnQgb2YgdGhlIApwaXBlbGluZSwgc28gaSB0 aG91Z2h0IHRoaXMgY291bGQgbWFrZSBkZWJ1Z2dpbmcgc28gbXVjaCBlYXNpZXIgLSBhdCAKbGVh c3QgZm9yIG1lLiBJIGhhZCB0aGUgaW1wcmVzc2lvbiB0aGF0IG1hbnkgY3VycmVudCBpOTE1IG1v ZHVsZSAKcGFyYW1ldGVycyBhcmUgb2YgdGhpcyBuYXR1cmUuCgpUaGUgZGVidWcgc3dpdGNoIGFs c28gcHJvdmlkZXMgYSB0ZW1wb3Jhcnkgd29ya2Fyb3VuZCBvbiBwcm9kdWN0aW9uIApzeXN0ZW1z IGlmIGEgcHJvYmxlbSBpcyByZWxhdGVkIHRvIGNvbG9yIGNvcnJlY3Rpb24sIG5vdCBtZWFudCBh cyBhIApwZXJtYW5lbnQgc29sdXRpb24uIE1hbnkgb2YgbXkgdXNlcnMgYXJlIGNoYWxsZW5nZWQg YWxyZWFkeSBieSB0aGUgZmFjdCAKdGhhdCBMaW51eCBpcyBub3QgbWFjT1MsIGFuZCBlZGl0aW5n IGEgY29uZmlnIGZpbGUgb3IgaW5zdGFsbGluZyBhIApwcmVidWlsdCBrZXJuZWwgZnJvbSBhIC5k cGtnIGlzIGFscmVhZHkgYm9yZGVybGluZSByb2NrZXQgc2NpZW5jZSBmb3IgCnRoZW0sIHRoYXQn cyB3aHkgdGhvc2UgbW9kdWxlIHBhcmFtZXRlcnMgd291bGQgYmUgbmljZSB0byBoYXZlLgoKTXkg YWN0dWFsIHBsYW4gaXMgdG8gaW1wbGVtZW50IHRydWUgMTAgYml0IC0+IDEyIGJpdCBnYW1tYSB0 YWJsZSAKc3VwcG9ydCwgaG9wZWZ1bGx5IHN0aWxsIGZvciB0aGUgNC4xNSBrZXJuZWwuCgpJIGhh dmUgZXhwZXJpbWVudGFsIHBhdGNoZXMgZm9yIHVzaW5nIHRoZSBwcmVjaXNpb24gbHV0cyB3aXRo IDEwMjQgc2xvdHMgCmFuZCAxMCBiaXQgb3V0cHV0IHdpZHRoLCBpZS4gMTAgYml0IGluIC0+IDEw IGJpdCBvdXQgb24gSXJvbmxha2UgYW5kIApsYXRlci4gSSdsbCBzZW5kIHRob3NlIG91dCBpbiB0 aGVpciBoYWNreSBzdGF0ZSBqdXN0IGZvciByZWZlcmVuY2UuCgpIb3dldmVyIHRoZSBiZXR0ZXIg cGxhbiBpIGhhdmUgaW4gbWluZCBpcyB0byBleHRlbmQgdGhlIGNvZGUgc28gdGhhdCBpZiAKKHdl IGFyZSBpbiBzaW5nbGUtbHV0IG1vZGUgKERFR0FNTUFfTFVUID09IDApKSBBTkQgKHRoZSB1c2Vy c3BhY2UgCnByb3ZpZGVkIGlucHV0IGx1dCBpcyBtb25vdG9uaWNhbGx5IGluY3JlYXNpbmcpIHdl IHN3aXRjaCBmcm9tIHRoZSBkdWFsIAo1MTIgc2xvdCAxMCBiaXQgbHV0cyB0byB0aGUgNTEyIHNs b3QgMTIgYml0IGx1dC4gVGhpcyB3b3VsZCBhbHNvIGJlIAphcHBsaWNhYmxlIHRvIHRoZSAyNTYg c2xvdCBsZWdhY3kgZ2FtbWEgdGFibGVzLCB3aGljaCBhcmUgYWx3YXlzIApzaW5nbGUtbHV0IGFu ZCBjYW4gYmUgdXBzYW1wbGVkIGZyb20gMjU2IHNsb3RzIHRvIDUxMiBzbG90cy4KClRoZSByZWFz b24gaXMgdGhhdCB0aGUgZHVhbC01MTIgc2xvdCBsdXRzIGFyZSBub3QgZ29vZCBlbm91Z2ggdG8g aGFuZGxlIAphIDEwIGJpdCBmcmFtZWJ1ZmZlci4gQXMgZmFyIGFzIGkgcmVhZCB0aGUgUFJNcywg YSAxMCBiaXQgZmIgdmFsdWUgd291bGQgCnNpbXBseSBnZXQgdHJ1bmNhdGVkIHRvIDkgYml0cyB0 byBzZWxlY3Qgb25lIG9mIHRoZSA1MTIgc2xvdHMsIHNvIHdlIAp3b3VsZCBsb3NlIDEgYml0IG9m IHByZWNpc2lvbiwgd2hpY2ggbWFrZXMgMTAgYml0IGZyYW1lYnVmZmVycyBtb3N0bHkgCnBvaW50 bGVzcywgYXQgbGVhc3QgZm9yIHNjaWVudGlmaWMvbWVkaWNhbC9IRFIgYXBwbGljYXRpb25zLgoK VGhlIDUxMiBzbG90IDEyIGJpdCBsdXQgaXMgcGVyZmVjdCBmb3Igc3VjaCBhcHBsaWNhdGlvbnMs IGFzIHRoZSBQUk1zIApzYXkgdGhlIGh3IHdpbGwgbGluZWFybHkgaW50ZXJwb2xhdGUgYmV0d2Vl biB0aGUgbmVhcmVzdCBuZWlnaGJvciBzbG90cyAKb2YgdGhlIDUxMiBzbG90IGx1dCBmb3IgdGhl IGdpdmVuIGZiIGlucHV0IHZhbHVlIC0+IHdvcmtzIHdpdGggMTAgYml0IApmYidzLiBXb3VsZCBh bHNvIHdvcmsgd2l0aCB0aG9zZSAxNiBiaXQgaGFsZi1mbG9hdCBmYiBmb3JtYXQgdGhhdCBpcyAK c3VwcG9ydGVkIGJ5IGN1cnJlbnQgaHcgYnV0IGN1cnJlbnRseSB1bnVzZWQgLSBidXQgY291bGQg YmUgaGFuZHkgZm9yIApmdXR1cmUgSERSIGFwcGxpY2F0aW9ucy4gQWxzbyAxMiBiaXQgb3V0cHV0 IHByZWNpc2lvbiBpcyBuaWNlIGZvciBiZXR0ZXIgCmdhbW1hIGNvcnJlY3Rpb24gb24gdHJ1ZSAx MC0xMiBiaXQgZGlzcGxheXMgb3ZlciBEUC9IRE1JIGRlZXAgY29sb3IuCgpJIHdpbGwgdHJ5IHRv IHdvcmsgb24gdGhpcyB3aXRoaW4gdGhlIG5leHQgMS0yIHdlZWtzLgoKTm93IGhlcmUncyBhIGNh dGNoIGkgZm91bmQgd2hpbGUgdGVzdGluZyB3aXRoIHRoZSAxMDI0IHNsb3QgMTAgYml0IGx1dHMs IAp3aGljaCBpIGZvdW5kIHZlcnkgc3VycHJpc2luZzoKCi0gSWYgaSBoYXZlIGEgc3RhbmRhcmQg WFIyNCBmcmFtZWJ1ZmZlciBvbiB0aGUgcHJpbWFyeSBwbGFuZSwgdGhlIDEwMjQgCnNsb3QvMTAg Yml0IGx1dCdzIHdvcmsgZXhhY3RseSBhcyBleHBlY3RlZCwgYXMgdmVyaWZpZWQgb24gYSBYUjI0 IGZiIHZpYSAKcGhvdG9tZXRlciBtZWFzdXJlbWVudHMgYW5kIHR3ZWFraW5nIHRoZSB2YWx1ZXMg aW4gdGhlIGdhbW1hIHRhYmxlcyAtLSAKYW5kIHRoZSAiZm9yY2UgZGl0aGVyaW5nIG9uIiBtb2R1 bGUgcGFyYW1ldGVyIHBhdGNoLCBhcyBpIGRvbid0IGhhdmUgYSAKdHJ1ZSAxMCBiaXQgcGFuZWwg YXJvdW5kIGF0bS4KCi0gQXMgc29vbiBhcyBhIFhSMzAgZmIgaXMgYWN0aXZlIChYMTEgRGVmYXVs dERlcHRoIDMwLCBvciBXZXN0b24gaW4gCmdibS1mb3JtYXQ9eHJnYjIxMDEwMTAgbW9kZSksIHRo ZSBmYiBwaXhlbHMgZG8gcmVhY2ggdGhlIG91dHB1dHMgd2l0aCAxMCAKYml0IHByZWNpc2lvbiB3 aXRob3V0IGFueSB0cnVuY2F0aW9uLCBhcyBleHBlY3RlZCwgYnV0IHRoZSBsdXQgaXMgCipieXBh c3NlZCohIExvYWRpbmcgYXJiaXRyYXJ5IHZhbHVlcyBpbnRvIHRoZSBnYW1tYSBsdXRzIGhhcyBu byBlZmZlY3QgCmF0IGFsbCwgdW5sZXNzIHN3aXRjaGluZyB0byBhIFhSMjQgcGxhbmUuIEkgZG9u J3Qga25vdyBpZiBzb21lIApub24tb2J2aW91cyAodG8gbWUpIHNldHVwIGlzIHJlcXVpcmVkIGZv ciBhbnl0aGluZyA+IFhSMjQsIG9yIGlmIApzb21ldGhpbmcgaXMgZ29pbmcgd3Jvbmcgd2l0aCB0 aGUgaHcuIFRoaXMgb24gYWxsIHRlc3RlZCBnZW4ncyBzaW5jZSAKSXJvbmxha2UuCgpIYXZlbid0 IHRlc3RlZCB0aGUgNTEyIHNsb3QgMTIgYml0IHdpZGUgbHV0IHlldCwgYnV0IHRoYXQncyB0aGUg bmV4dCBzdGVwLgoKLW1hcmlvCgo+Pgo+PiBJb3cuIHRoaXMgcGF0Y2ggaXMgbmVlZGVkIGV2ZW4g d2l0aCBYUjMwIGZiJ3MgZm9yIGFjdHVhbCAxMAo+PiBiaXQgcHJlY2lzaW9uIG91dHB1dCwgZXZl biB0aG91Z2ggdGhlIGh3IHNlZW1zIHRvIHNvcnQgb2YgaWdub3JlCj4+IHRoZSB0ZXN0ZWQgZ2Ft bWEgdGFibGVzIGZvciBYUjMwIGZiJ3MuCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IE1hcmlvIEtsZWlu ZXIgPG1hcmlvLmtsZWluZXIuZGVAZ21haWwuY29tPgo+PiAtLS0KPj4gICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3BhcmFtcy5jICAgfCAgNSArKysrKwo+PiAgIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfcGFyYW1zLmggICB8ICAzICsrLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYyB8IDI2ICsrKysrKysrKysrKysrKysrLS0tLS0tLS0tCj4+ICAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMgIHwgMjEgKysrKysrKysrKysrKysrKy0tLS0t Cj4+ICAgNCBmaWxlcyBjaGFuZ2VkLCA0MCBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkK Pj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGFyYW1zLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BhcmFtcy5jCj4+IGluZGV4IDA3ZWMzYTk2NDU3Yy4u OGY2YTE3NmE5N2UxIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Bh cmFtcy5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGFyYW1zLmMKPj4gQEAg LTY2LDYgKzY2LDcgQEAgc3RydWN0IGk5MTVfcGFyYW1zIGk5MTUgX19yZWFkX21vc3RseSA9IHsK Pj4gICAJLmVuYWJsZV9kcGNkX2JhY2tsaWdodCA9IGZhbHNlLAo+PiAgIAkuZW5hYmxlX2d2dCA9 IGZhbHNlLAo+PiAgIAkuZW5hYmxlX2RpdGhlcmluZyA9IC0xLAo+PiArCS5lbmFibGVfaHdfY29s b3JfY29ycmVjdGlvbiA9IHRydWUsCj4+ICAgfTsKPj4gICAKPj4gICBtb2R1bGVfcGFyYW1fbmFt ZWQobW9kZXNldCwgaTkxNS5tb2Rlc2V0LCBpbnQsIDA0MDApOwo+PiBAQCAtMjYyLDMgKzI2Myw3 IEBAIE1PRFVMRV9QQVJNX0RFU0MoZW5hYmxlX2d2dCwKPj4gICBtb2R1bGVfcGFyYW1fbmFtZWQo ZW5hYmxlX2RpdGhlcmluZywgaTkxNS5lbmFibGVfZGl0aGVyaW5nLCBpbnQsIDA2NDQpOwo+PiAg IE1PRFVMRV9QQVJNX0RFU0MoZW5hYmxlX2RpdGhlcmluZywKPj4gICAJIkVuYWJsZSBkaXRoZXJp bmcgKC0xPWF1dG8gW2RlZmF1bHRdLCAwPWZvcmNlIG9mZiBvbiBhbGwgb3V0cHV0cywgMT1mb3Jj ZSBvbiBvbiBhbGwgb3V0cHV0cykiKTsKPj4gKwo+PiArbW9kdWxlX3BhcmFtX25hbWVkKGVuYWJs ZV9od19jb2xvcl9jb3JyZWN0aW9uLCBpOTE1LmVuYWJsZV9od19jb2xvcl9jb3JyZWN0aW9uLCBi b29sLCAwNjQ0KTsKPj4gK01PRFVMRV9QQVJNX0RFU0MoZW5hYmxlX2h3X2NvbG9yX2NvcnJlY3Rp b24sCj4+ICsJIkVuYWJsZSBoYXJkd2FyZSBjb2xvciBjb3JyZWN0aW9uIGxpa2UgZ2FtbWEgbHV0 cyBhbmQgY3NjIChkZWZhdWx0OiB0cnVlKSIpOwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9wYXJhbXMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGFyYW1z LmgKPj4gaW5kZXggN2UzNjVjZDRmYzkxLi5mNWM5MTYzZDI2NzUgMTAwNjQ0Cj4+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGFyYW1zLmgKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9wYXJhbXMuaAo+PiBAQCAtNjksNyArNjksOCBAQAo+PiAgIAlmdW5jKGJvb2ws IG51Y2xlYXJfcGFnZWZsaXApOyBcCj4+ICAgCWZ1bmMoYm9vbCwgZW5hYmxlX2RwX21zdCk7IFwK Pj4gICAJZnVuYyhib29sLCBlbmFibGVfZHBjZF9iYWNrbGlnaHQpOyBcCj4+IC0JZnVuYyhib29s LCBlbmFibGVfZ3Z0KQo+PiArCWZ1bmMoYm9vbCwgZW5hYmxlX2d2dCk7IFwKPj4gKwlmdW5jKGJv b2wsIGVuYWJsZV9od19jb2xvcl9jb3JyZWN0aW9uKQo+PiAgIAo+PiAgICNkZWZpbmUgTUVNQkVS KFQsIG1lbWJlcikgVCBtZW1iZXIKPj4gICBzdHJ1Y3QgaTkxNV9wYXJhbXMgewo+PiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4+IGluZGV4IGJlYTQ3MWE5NjgyMC4uMWUxYjE1NzM1 M2E5IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMK Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4+IEBAIC0zMTg0 LDEzICszMTg0LDE3IEBAIHN0YXRpYyB1MzIgaTl4eF9wbGFuZV9jdGwoY29uc3Qgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4+ICAgCXVuc2lnbmVkIGludCByb3RhdGlvbiA9 IHBsYW5lX3N0YXRlLT5iYXNlLnJvdGF0aW9uOwo+PiAgIAl1MzIgZHNwY250cjsKPj4gICAKPj4g LQlkc3BjbnRyID0gRElTUExBWV9QTEFORV9FTkFCTEUgfCBESVNQUExBTkVfR0FNTUFfRU5BQkxF Owo+PiArCWRzcGNudHIgPSBESVNQTEFZX1BMQU5FX0VOQUJMRTsKPj4gKwo+PiArCWlmIChpOTE1 LmVuYWJsZV9od19jb2xvcl9jb3JyZWN0aW9uKQo+PiArCQlkc3BjbnRyIHw9IERJU1BQTEFORV9H QU1NQV9FTkFCTEU7Cj4+ICAgCj4+ICAgCWlmIChJU19HNFgoZGV2X3ByaXYpIHx8IElTX0dFTjUo ZGV2X3ByaXYpIHx8Cj4+ICAgCSAgICBJU19HRU42KGRldl9wcml2KSB8fCBJU19JVllCUklER0Uo ZGV2X3ByaXYpKQo+PiAgIAkJZHNwY250ciB8PSBESVNQUExBTkVfVFJJQ0tMRV9GRUVEX0RJU0FC TEU7Cj4+ICAgCj4+IC0JaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpIHx8IElTX0JST0FEV0VMTChk ZXZfcHJpdikpCj4+ICsJaWYgKChJU19IQVNXRUxMKGRldl9wcml2KSB8fCBJU19CUk9BRFdFTEwo ZGV2X3ByaXYpKSAmJgo+PiArCSAgICBpOTE1LmVuYWJsZV9od19jb2xvcl9jb3JyZWN0aW9uKQo+ PiAgIAkJZHNwY250ciB8PSBESVNQUExBTkVfUElQRV9DU0NfRU5BQkxFOwo+PiAgIAo+PiAgIAlp ZiAoSU5URUxfR0VOKGRldl9wcml2KSA8IDQpCj4+IEBAIC0zNTE0LDcgKzM1MTgsOCBAQCB1MzIg c2tsX3BsYW5lX2N0bChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwK Pj4gICAKPj4gICAJcGxhbmVfY3RsID0gUExBTkVfQ1RMX0VOQUJMRTsKPj4gICAKPj4gLQlpZiAo IUlTX0dFTUlOSUxBS0UoZGV2X3ByaXYpICYmICFJU19DQU5OT05MQUtFKGRldl9wcml2KSkgewo+ PiArCWlmICghSVNfR0VNSU5JTEFLRShkZXZfcHJpdikgJiYgIUlTX0NBTk5PTkxBS0UoZGV2X3By aXYpICYmCj4+ICsJICAgIGk5MTUuZW5hYmxlX2h3X2NvbG9yX2NvcnJlY3Rpb24pIHsKPj4gICAJ CXBsYW5lX2N0bCB8PQo+PiAgIAkJCVBMQU5FX0NUTF9QSVBFX0dBTU1BX0VOQUJMRSB8Cj4+ICAg CQkJUExBTkVfQ1RMX1BJUEVfQ1NDX0VOQUJMRSB8Cj4+IEBAIC0zNTcxLDcgKzM1NzYsOCBAQCBz dGF0aWMgdm9pZCBza3lsYWtlX3VwZGF0ZV9wcmltYXJ5X3BsYW5lKHN0cnVjdCBpbnRlbF9wbGFu ZSAqcGxhbmUsCj4+ICAgCj4+ICAgCXNwaW5fbG9ja19pcnFzYXZlKCZkZXZfcHJpdi0+dW5jb3Jl LmxvY2ssIGlycWZsYWdzKTsKPj4gICAKPj4gLQlpZiAoSVNfR0VNSU5JTEFLRShkZXZfcHJpdikg fHwgSVNfQ0FOTk9OTEFLRShkZXZfcHJpdikpIHsKPj4gKwlpZiAoKElTX0dFTUlOSUxBS0UoZGV2 X3ByaXYpIHx8IElTX0NBTk5PTkxBS0UoZGV2X3ByaXYpKSAmJgo+PiArCSAgICBpOTE1LmVuYWJs ZV9od19jb2xvcl9jb3JyZWN0aW9uKSB7Cj4+ICAgCQlJOTE1X1dSSVRFX0ZXKFBMQU5FX0NPTE9S X0NUTChwaXBlLCBwbGFuZV9pZCksCj4+ICAgCQkJICAgICAgUExBTkVfQ09MT1JfUElQRV9HQU1N QV9FTkFCTEUgfAo+PiAgIAkJCSAgICAgIFBMQU5FX0NPTE9SX1BJUEVfQ1NDX0VOQUJMRSB8Cj4+ IEBAIC05NDMxLDcgKzk0MzcsNyBAQCBzdGF0aWMgdTMyIGk4NDVfY3Vyc29yX2N0bChjb25zdCBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPj4gICAJY29uc3Qgc3RydWN0IGRy bV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+YmFzZS5mYjsKPj4gICAKPj4gICAJcmV0 dXJuIENVUlNPUl9FTkFCTEUgfAo+PiAtCQlDVVJTT1JfR0FNTUFfRU5BQkxFIHwKPj4gKwkJKGk5 MTUuZW5hYmxlX2h3X2NvbG9yX2NvcnJlY3Rpb24gPyBDVVJTT1JfR0FNTUFfRU5BQkxFIDogMCkg fAo+PiAgIAkJQ1VSU09SX0ZPUk1BVF9BUkdCIHwKPj4gICAJCUNVUlNPUl9TVFJJREUoZmItPnBp dGNoZXNbMF0pOwo+PiAgIH0KPj4gQEAgLTk1NDQsMTIgKzk1NTAsMTQgQEAgc3RhdGljIHUzMiBp OXh4X2N1cnNvcl9jdGwoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUs Cj4+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9Cj4+ICAgCQl0b19pOTE1 KHBsYW5lX3N0YXRlLT5iYXNlLnBsYW5lLT5kZXYpOwo+PiAgIAlzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPj4gLQl1MzIgY250 bDsKPj4gKwl1MzIgY250bCA9IDA7Cj4+ICAgCj4+IC0JY250bCA9IE1DVVJTT1JfR0FNTUFfRU5B QkxFOwo+PiArCWlmIChpOTE1LmVuYWJsZV9od19jb2xvcl9jb3JyZWN0aW9uKSB7Cj4+ICsJCWNu dGwgPSBNQ1VSU09SX0dBTU1BX0VOQUJMRTsKPj4gICAKPj4gLQlpZiAoSEFTX0RESShkZXZfcHJp dikpCj4+IC0JCWNudGwgfD0gQ1VSU09SX1BJUEVfQ1NDX0VOQUJMRTsKPj4gKwkJaWYgKEhBU19E REkoZGV2X3ByaXYpKQo+PiArCQkJY250bCB8PSBDVVJTT1JfUElQRV9DU0NfRU5BQkxFOwo+PiAr CX0KPj4gICAKPj4gICAJY250bCB8PSBNQ1VSU09SX1BJUEVfU0VMRUNUKGNydGMtPnBpcGUpOwo+ PiAgIAo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+PiBpbmRleCA1MjQ5MzNiMDE0 ODMuLjZlNmE3Mzc3YTdiYyAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfc3ByaXRlLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMK Pj4gQEAgLTI1OCw3ICsyNTgsOCBAQCBza2xfdXBkYXRlX3BsYW5lKHN0cnVjdCBpbnRlbF9wbGFu ZSAqcGxhbmUsCj4+ICAgCj4+ICAgCXNwaW5fbG9ja19pcnFzYXZlKCZkZXZfcHJpdi0+dW5jb3Jl LmxvY2ssIGlycWZsYWdzKTsKPj4gICAKPj4gLQlpZiAoSVNfR0VNSU5JTEFLRShkZXZfcHJpdikg fHwgSVNfQ0FOTk9OTEFLRShkZXZfcHJpdikpIHsKPj4gKwlpZiAoKElTX0dFTUlOSUxBS0UoZGV2 X3ByaXYpIHx8IElTX0NBTk5PTkxBS0UoZGV2X3ByaXYpKSAmJgo+PiArCSAgICBpOTE1LmVuYWJs ZV9od19jb2xvcl9jb3JyZWN0aW9uKSB7Cj4+ICAgCQlJOTE1X1dSSVRFX0ZXKFBMQU5FX0NPTE9S X0NUTChwaXBlLCBwbGFuZV9pZCksCj4+ICAgCQkJICAgICAgUExBTkVfQ09MT1JfUElQRV9HQU1N QV9FTkFCTEUgfAo+PiAgIAkJCSAgICAgIFBMQU5FX0NPTE9SX1BJUEVfQ1NDX0VOQUJMRSB8Cj4+ IEBAIC0zNzEsNyArMzcyLDEwIEBAIHN0YXRpYyB1MzIgdmx2X3Nwcml0ZV9jdGwoY29uc3Qgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4+ICAgCWNvbnN0IHN0cnVjdCBkcm1f aW50ZWxfc3ByaXRlX2NvbG9ya2V5ICprZXkgPSAmcGxhbmVfc3RhdGUtPmNrZXk7Cj4+ICAgCXUz MiBzcHJjdGw7Cj4+ICAgCj4+IC0Jc3ByY3RsID0gU1BfRU5BQkxFIHwgU1BfR0FNTUFfRU5BQkxF Owo+PiArCXNwcmN0bCA9IFNQX0VOQUJMRTsKPj4gKwo+PiArCWlmIChpOTE1LmVuYWJsZV9od19j b2xvcl9jb3JyZWN0aW9uKQo+PiArCQlzcHJjdGwgfD0gU1BfR0FNTUFfRU5BQkxFOwo+PiAgIAo+ PiAgIAlzd2l0Y2ggKGZiLT5mb3JtYXQtPmZvcm1hdCkgewo+PiAgIAljYXNlIERSTV9GT1JNQVRf WVVZVjoKPj4gQEAgLTUxMSwxMiArNTE1LDE2IEBAIHN0YXRpYyB1MzIgaXZiX3Nwcml0ZV9jdGwo Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4+ICAgCWNvbnN0IHN0 cnVjdCBkcm1faW50ZWxfc3ByaXRlX2NvbG9ya2V5ICprZXkgPSAmcGxhbmVfc3RhdGUtPmNrZXk7 Cj4+ICAgCXUzMiBzcHJjdGw7Cj4+ICAgCj4+IC0Jc3ByY3RsID0gU1BSSVRFX0VOQUJMRSB8IFNQ UklURV9HQU1NQV9FTkFCTEU7Cj4+ICsJc3ByY3RsID0gU1BSSVRFX0VOQUJMRTsKPj4gKwo+PiAr CWlmIChpOTE1LmVuYWJsZV9od19jb2xvcl9jb3JyZWN0aW9uKQo+PiArCQlzcHJjdGwgfD0gU1BS SVRFX0dBTU1BX0VOQUJMRTsKPj4gICAKPj4gICAJaWYgKElTX0lWWUJSSURHRShkZXZfcHJpdikp Cj4+ICAgCQlzcHJjdGwgfD0gU1BSSVRFX1RSSUNLTEVfRkVFRF9ESVNBQkxFOwo+PiAgIAo+PiAt CWlmIChJU19IQVNXRUxMKGRldl9wcml2KSB8fCBJU19CUk9BRFdFTEwoZGV2X3ByaXYpKQo+PiAr CWlmICgoSVNfSEFTV0VMTChkZXZfcHJpdikgfHwgSVNfQlJPQURXRUxMKGRldl9wcml2KSkgJiYK Pj4gKwkgICAgaTkxNS5lbmFibGVfaHdfY29sb3JfY29ycmVjdGlvbikKPj4gICAJCXNwcmN0bCB8 PSBTUFJJVEVfUElQRV9DU0NfRU5BQkxFOwo+PiAgIAo+PiAgIAlzd2l0Y2ggKGZiLT5mb3JtYXQt PmZvcm1hdCkgewo+PiBAQCAtNjUxLDcgKzY1OSwxMCBAQCBzdGF0aWMgdTMyIGc0eF9zcHJpdGVf Y3RsKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+PiAgIAljb25z dCBzdHJ1Y3QgZHJtX2ludGVsX3Nwcml0ZV9jb2xvcmtleSAqa2V5ID0gJnBsYW5lX3N0YXRlLT5j a2V5Owo+PiAgIAl1MzIgZHZzY250cjsKPj4gICAKPj4gLQlkdnNjbnRyID0gRFZTX0VOQUJMRSB8 IERWU19HQU1NQV9FTkFCTEU7Cj4+ICsJZHZzY250ciA9IERWU19FTkFCTEU7Cj4+ICsKPj4gKwlp ZiAoaTkxNS5lbmFibGVfaHdfY29sb3JfY29ycmVjdGlvbikKPj4gKwkJZHZzY250ciB8PSBEVlNf R0FNTUFfRU5BQkxFOwo+PiAgIAo+PiAgIAlpZiAoSVNfR0VONihkZXZfcHJpdikpCj4+ICAgCQlk dnNjbnRyIHw9IERWU19UUklDS0xFX0ZFRURfRElTQUJMRTsKPj4gLS0gCj4+IDIuMTMuMC5yYzEu Mjk0LmcwN2Q4MTBhNzdmCj4+Cj4gCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2RyaS1kZXZlbAo=