From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Shankar, Uma" Subject: Re: [PATCH 06/13] drm/i915: Split color mgmt based on single vs. double buffered registers Date: Wed, 16 Jan 2019 18:22:42 +0000 Message-ID: References: <20190111170823.4441-1-ville.syrjala@linux.intel.com> <20190111170823.4441-7-ville.syrjala@linux.intel.com> <20190115005631.GE4563@mdroper-desk.amr.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 056EF6F1B2 for ; Wed, 16 Jan 2019 18:22:47 +0000 (UTC) In-Reply-To: <20190115005631.GE4563@mdroper-desk.amr.corp.intel.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Roper, Matthew D" , Ville Syrjala Cc: "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org Cgo+LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPkZyb206IFJvcGVyLCBNYXR0aGV3IEQKPlNl bnQ6IFR1ZXNkYXksIEphbnVhcnkgMTUsIDIwMTkgNjoyNyBBTQo+VG86IFZpbGxlIFN5cmphbGEg PHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+Q2M6IGludGVsLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmc7IFNoYW5rYXIsIFVtYSA8dW1hLnNoYW5rYXJAaW50ZWwuY29tPgo+U3ViamVj dDogUmU6IFtQQVRDSCAwNi8xM10gZHJtL2k5MTU6IFNwbGl0IGNvbG9yIG1nbXQgYmFzZWQgb24g c2luZ2xlIHZzLiBkb3VibGUKPmJ1ZmZlcmVkIHJlZ2lzdGVycwo+Cj5PbiBGcmksIEphbiAxMSwg MjAxOSBhdCAwNzowODoxNlBNICswMjAwLCBWaWxsZSBTeXJqYWxhIHdyb3RlOgo+PiBGcm9tOiBW aWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+Pgo+PiBTcGxp dCB0aGUgY29sb3IgbWFuYWdlbW50IGhvb2tzIGFsb25nIHRoZSBzaW5nbGUgdnMuIGRvdWJsZSBi dWZmZXJlZAoKVHlwbyBpbiBtYW5hZ2VtZW50LgoKPj4gcmVnaXN0ZXJzIGxpbmUuIE9mIHRoZSBj dXJyZW50bHkgcHJvZ2FtbWVkIHJlZ2lzdGVycyBHQU1NQV9NT0RFIGFuZAoKVHlwbyBpbiBwcm9n cmFtbWVkLgoKPj4gdGhlIGlsaysgcGlwZSBDU0MgYXJlIGRvdWJsZSBidWZmZXJlZCwgdGhlIExV VFMgYW5kIENIViBDR00gYmxvY2sgYXJlCj4+IHNpbmdsZSBidWZmZXJlZC4KPj4KPj4gVGhlIGRv dWJsZSBidWZmZXJlZCByZWdpc3RlciB3aWxsIGJlIHByb2dyYW1tZWQgZHVyaW5nIHRoZSBub3Jt YWwgcGlwZQo+PiB1cGRhdGUgd2l0aCBldmFzaW9uLCBhbmQgYWxzbyBkdXJpbmcgcGlwZSBlbmFi bGUgc28gdGhhdCB0aGUgc2V0dGluZ3MKPj4gd2lsbCBhbHJlYWR5IGJlIGNvcnJlY3Qgd2hlbiB0 aGUgcGlwZSBzdGFydHMgdXAgYmVmb3JlIHRoZSBwbGFuZXMgYXJlCj4+IGVuYWJsZWQuCj4+Cj4+ IFRoZSBzaW5nbGUgYnVmZmVyZWQgcmVnaXN0ZXJzIGFyZSBjdXJyZW50bHkgcHJvZ3JhbW1lZCBi ZWZvcmUgdGhlCj4+IHZibGFuayBldmFkZS4gV2hpY2ggaXMgdG90YWxseSB3cm9uZywgYnV0IHdl J2xsIGNvcnJlY3QgdGhhdCBsYXRlci4KPj4KPj4gU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOk bMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPj4gLS0tCj4+ICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgfCAgMiArLQo+PiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfY29sb3IuYyAgIHwgNDkgKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQo+PiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgMTYgKysrKystLS0tCj4+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgMiArLQo+PiAgNCBmaWxlcyBj aGFuZ2VkLCAzNCBpbnNlcnRpb25zKCspLCAzNSBkZWxldGlvbnMoLSkKPj4KPj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPj4gYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oIGluZGV4IDcxODJhNTgwMDAyYy4uMzU0ODU4YjIwMTliCj4+IDEwMDY0 NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPj4gQEAgLTMyMCw3ICszMjAsNyBAQCBzdHJ1Y3Qg ZHJtX2k5MTVfZGlzcGxheV9mdW5jcyB7Cj4+ICAJLyogZGlzcGxheSBjbG9jayBpbmNyZWFzZS9k ZWNyZWFzZSAqLwo+PiAgCS8qIHBsbCBjbG9jayBpbmNyZWFzZS9kZWNyZWFzZSAqLwo+Pgo+PiAt CXZvaWQgKCpsb2FkX2NzY19tYXRyaXgpKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlKTsKPj4gKwl2b2lkICgqY29sb3JfY29tbWl0KShjb25zdCBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7Cj4+ICAJdm9pZCAoKmxvYWRfbHV0cykoY29uc3Qgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpOwo+Cj5Mb2dpYy13aXNlIHRoaXMgcGF0 Y2ggbG9va3MgZ29vZCwgYnV0IHdlIHNob3VsZCBwcm9iYWJseSBhZGQgc29tZSBrZXJuZWxkb2Mg dG8KPnRoZXNlIHRvIG1ha2UgaXQgY2xlYXIgdGhhdCBjb2xvcl9jb21taXQoKSBpcyBwcm9ncmFt bWluZyBhbnl0aGluZyB0aGF0J3MKPmV4cGVjdGVkIHRvIHRha2UgZWZmZWN0IGF0IHRoZSB2Ymxh bmssIGFuZCBsb2FkX2x1dHMoKSB0YWtlcyBlZmZlY3QgaW1tZWRpYXRlbHkKPndoZW4gY2FsbGVk LgoKVGhpcyBkb2N1bWVudGF0aW9uIG9yIHNvbWUgY29tbWVudHMgaW4gdGhlIGZ1bmN0aW9uIGRl c2NyaXB0aW9uIGluIGNvZGUgd2lsbApkZWZpbml0ZWx5IGhlbHAuIAoKPgo+PiAgfTsKPj4KPj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmMKPj4gYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xvci5jCj4+IGluZGV4IGRmMzU2NzY4NmM0NS4uZjll MDg1NTE2MmYzIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xv ci5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmMKPj4gQEAgLTMw NCwxNCArMzA0LDYgQEAgc3RhdGljIHZvaWQgY2hlcnJ5dmlld19sb2FkX2NzY19tYXRyaXgoY29u c3Qgc3RydWN0Cj5pbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlCj4+ICAJSTkxNV9XUklURShD R01fUElQRV9NT0RFKHBpcGUpLCBtb2RlKTsgIH0KPj4KPj4gLXZvaWQgaW50ZWxfY29sb3Jfc2V0 X2NzYyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPj4gLXsKPj4g LQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUt PmJhc2UuY3J0Yy0+ZGV2KTsKPj4gLQo+PiAtCWlmIChkZXZfcHJpdi0+ZGlzcGxheS5sb2FkX2Nz Y19tYXRyaXgpCj4+IC0JCWRldl9wcml2LT5kaXNwbGF5LmxvYWRfY3NjX21hdHJpeChjcnRjX3N0 YXRlKTsKPj4gLX0KPj4gLQo+PiAgLyogTG9hZHMgdGhlIGxlZ2FjeSBwYWxldHRlL2dhbW1hIHVu aXQgZm9yIHRoZSBDUlRDLiAqLyAgc3RhdGljIHZvaWQKPj4gaTl4eF9sb2FkX2x1dHNfaW50ZXJu YWwoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4+ICAJCQkJICAg IGNvbnN0IHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqYmxvYikgQEAgLQo+MzU5LDYgKzM1MSwx NiBAQAo+PiBzdGF0aWMgdm9pZCBpOXh4X2xvYWRfbHV0cyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPj4gIAlpOXh4X2xvYWRfbHV0c19pbnRlcm5hbChjcnRjX3N0 YXRlLCBjcnRjX3N0YXRlLT5iYXNlLmdhbW1hX2x1dCk7ICB9Cj4+Cj4+ICtzdGF0aWMgdm9pZCBo c3dfY29sb3JfY29tbWl0KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlCj4+ICsqY3J0Y19z dGF0ZSkgewo+PiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRj X3N0YXRlLT5iYXNlLmNydGMpOwo+PiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwo+PiArCj4+ICsJSTkxNV9XUklURShHQU1NQV9N T0RFKGNydGMtPnBpcGUpLCBjcnRjX3N0YXRlLT5nYW1tYV9tb2RlKTsKPj4gKwo+PiArCWlsa19s b2FkX2NzY19tYXRyaXgoY3J0Y19zdGF0ZSk7CgpPbmUgaXNzdWUgd2hpY2ggSSBzZWUgaGVyZSBp cyB0aGF0IHdlIGFyZSBtaXhpbmcgcHJvZ3JhbW1pbmcgb2YgY3NjIGFuZCBnYW1tYSBtb2RlCmlu IGEgY29tbW9uIGZ1bmN0aW9uLiBUaGVyZSBtYXkgYmUgc2l0dWF0aW9ucyB3aGVyZSB3ZSBkb24n dCB3YW50IGVpdGhlciBhIGNzYyBvcgpnYW1tYSB0byBiZSBlbmFibGVkLiBBbHNvIG1vcmUgc28g c2luY2UgdGhlIHJlc3BlY3RpdmUgYmxvY2tzIGFyZSBpbXBsZW1lbnRlZCBhcwpzZXBhcmF0ZSBw cm9wZXJ0aWVzLiBOb3Qgc3VyZSBpZiB0aGlzIHdpbGwgY2F1c2UgYW55IHJlYWwgaXNzdWUgdGhv dWdoLgoKPj4gK30KPj4gKwo+PiAgLyogTG9hZHMgdGhlIGxlZ2FjeSBwYWxldHRlL2dhbW1hIHVu aXQgZm9yIHRoZSBDUlRDIG9uIEhhc3dlbGwuICovCj4+IHN0YXRpYyB2b2lkIGhhc3dlbGxfbG9h ZF9sdXRzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlCj4+ICpjcnRjX3N0YXRlKSAgeyBA QCAtMzc2LDggKzM3OCw2IEBAIHN0YXRpYyB2b2lkCj4+IGhhc3dlbGxfbG9hZF9sdXRzKGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+PiAgCQlyZWVuYWJsZV9pcHMg PSB0cnVlOwo+PiAgCX0KPj4KPj4gLQlJOTE1X1dSSVRFKEdBTU1BX01PREUoY3J0Yy0+cGlwZSks IGNydGNfc3RhdGUtPmdhbW1hX21vZGUpOwo+PiAtCj4+ICAJaTl4eF9sb2FkX2x1dHMoY3J0Y19z dGF0ZSk7Cj4+Cj4+ICAJaWYgKHJlZW5hYmxlX2lwcykKPj4gQEAgLTQ4NSw4ICs0ODUsNiBAQCBz dGF0aWMgdm9pZCBicm9hZHdlbGxfbG9hZF9sdXRzKGNvbnN0IHN0cnVjdAo+aW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSkKPj4gIAkJICovCj4+ICAJCUk5MTVfV1JJVEUoUFJFQ19QQUxfSU5E RVgocGlwZSksIDApOwo+PiAgCX0KPj4gLQo+PiAtCUk5MTVfV1JJVEUoR0FNTUFfTU9ERShwaXBl KSwgY3J0Y19zdGF0ZS0+Z2FtbWFfbW9kZSk7Cj4+ICB9Cj4+Cj4+ICBzdGF0aWMgdm9pZCBnbGtf bG9hZF9kZWdhbW1hX2x1dChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZQo+PiAqY3J0Y19z dGF0ZSkgQEAgLTUzOSw4ICs1MzcsNiBAQCBzdGF0aWMgdm9pZCBnbGtfbG9hZF9sdXRzKGNvbnN0 IHN0cnVjdAo+aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPj4gIAkJICovCj4+ICAJCUk5 MTVfV1JJVEUoUFJFQ19QQUxfSU5ERVgocGlwZSksIDApOwo+PiAgCX0KPj4gLQo+PiAtCUk5MTVf V1JJVEUoR0FNTUFfTU9ERShwaXBlKSwgY3J0Y19zdGF0ZS0+Z2FtbWFfbW9kZSk7Cj4+ICB9Cj4+ Cj4+ICBzdGF0aWMgdm9pZCBjaGVycnl2aWV3X2xvYWRfbHV0cyhjb25zdCBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZQo+PiAqY3J0Y19zdGF0ZSkgQEAgLTU1MSwxMCArNTQ3LDkgQEAgc3RhdGljIHZv aWQgY2hlcnJ5dmlld19sb2FkX2x1dHMoY29uc3QKPnN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlKQo+PiAgCWNvbnN0IHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqZGVnYW1tYV9s dXQgPSBjcnRjX3N0YXRlLQo+PmJhc2UuZGVnYW1tYV9sdXQ7Cj4+ICAJZW51bSBwaXBlIHBpcGUg PSBjcnRjLT5waXBlOwo+Pgo+PiArCWNoZXJyeXZpZXdfbG9hZF9jc2NfbWF0cml4KGNydGNfc3Rh dGUpOwo+PiArCj4KPk1pZ2h0IGJlIHdvcnRoIGFkZGluZyBhIGNvbW1lbnQgaGVyZSB0byBub3Rl IHRoYXQgQ0hWJ3MgQ1NDIGlzIHNpbmdsZS1idWZmZXJlZAo+c2luY2UgdGhpcyBpcyBkaWZmZXJl bnQgZnJvbSBvdXIgb3RoZXIgcGxhdGZvcm1zIGFuZCBkb2Vzbid0IHNlZW0gdG8gYmUgc3BlbGxl ZCBvdXQKPmFueXdoZXJlIGluIHRoZSBic3BlYyB0aGF0IEkgY2FuIGZpbmQgZWl0aGVyLgo+Cj4K Pk1hdHQKPgo+PiAgCWlmIChjcnRjX3N0YXRlX2lzX2xlZ2FjeV9nYW1tYShjcnRjX3N0YXRlKSkg ewo+PiAtCQkvKiBUdXJuIG9mZiBkZWdhbW1hL2dhbW1hIG9uIENHTSBibG9jay4gKi8KPj4gLQkJ STkxNV9XUklURShDR01fUElQRV9NT0RFKHBpcGUpLAo+PiAtCQkJICAgKGNydGNfc3RhdGUtPmJh c2UuY3RtID8gQ0dNX1BJUEVfTU9ERV9DU0MgOiAwKSk7Cj4+ICAJCWk5eHhfbG9hZF9sdXRzX2lu dGVybmFsKGNydGNfc3RhdGUsIGdhbW1hX2x1dCk7Cj4+ICAJCXJldHVybjsKPj4gIAl9Cj4+IEBA IC01OTUsMTEgKzU5MCw2IEBAIHN0YXRpYyB2b2lkIGNoZXJyeXZpZXdfbG9hZF9sdXRzKGNvbnN0 IHN0cnVjdAo+aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPj4gIAkJfQo+PiAgCX0KPj4K Pj4gLQlJOTE1X1dSSVRFKENHTV9QSVBFX01PREUocGlwZSksCj4+IC0JCSAgIChjcnRjX3N0YXRl LT5iYXNlLmN0bSA/IENHTV9QSVBFX01PREVfQ1NDIDogMCkgfAo+PiAtCQkgICAoZGVnYW1tYV9s dXQgPyBDR01fUElQRV9NT0RFX0RFR0FNTUEgOiAwKSB8Cj4+IC0JCSAgIChnYW1tYV9sdXQgPyBD R01fUElQRV9NT0RFX0dBTU1BIDogMCkpOwo+PiAtCj4+ICAJLyoKPj4gIAkgKiBBbHNvIHByb2dy YW0gYSBsaW5lYXIgTFVUIGluIHRoZSBsZWdhY3kgYmxvY2sgKGJlaGluZCB0aGUKPj4gIAkgKiBD R00gYmxvY2spLgo+PiBAQCAtNjE0LDYgKzYwNCwxNCBAQCB2b2lkIGludGVsX2NvbG9yX2xvYWRf bHV0cyhjb25zdCBzdHJ1Y3QKPmludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4+ICAJZGV2 X3ByaXYtPmRpc3BsYXkubG9hZF9sdXRzKGNydGNfc3RhdGUpOwo+PiAgfQo+Pgo+PiArdm9pZCBp bnRlbF9jb2xvcl9jb21taXQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUpIHsKPj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPQo+PiArdG9faTkx NShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7Cj4+ICsKPj4gKwlpZiAoZGV2X3ByaXYtPmRp c3BsYXkuY29sb3JfY29tbWl0KQo+PiArCQlkZXZfcHJpdi0+ZGlzcGxheS5jb2xvcl9jb21taXQo Y3J0Y19zdGF0ZSk7Cj4+ICt9Cj4+ICsKPj4gIGludCBpbnRlbF9jb2xvcl9jaGVjayhzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkgIHsKPj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPQo+PiB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsK Pj4gQEAgLTY2MCwxOCArNjU4LDE3IEBAIHZvaWQgaW50ZWxfY29sb3JfaW5pdChzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YykKPj4gIAlkcm1fbW9kZV9jcnRjX3NldF9nYW1tYV9zaXplKCZjcnRjLT5i YXNlLCAyNTYpOwo+Pgo+PiAgCWlmIChJU19DSEVSUllWSUVXKGRldl9wcml2KSkgewo+PiAtCQlk ZXZfcHJpdi0+ZGlzcGxheS5sb2FkX2NzY19tYXRyaXggPQo+Y2hlcnJ5dmlld19sb2FkX2NzY19t YXRyaXg7Cj4+ICAJCWRldl9wcml2LT5kaXNwbGF5LmxvYWRfbHV0cyA9IGNoZXJyeXZpZXdfbG9h ZF9sdXRzOwo+PiAgCX0gZWxzZSBpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikpIHsKPj4gLQkJZGV2 X3ByaXYtPmRpc3BsYXkubG9hZF9jc2NfbWF0cml4ID0gaWxrX2xvYWRfY3NjX21hdHJpeDsKPj4g IAkJZGV2X3ByaXYtPmRpc3BsYXkubG9hZF9sdXRzID0gaGFzd2VsbF9sb2FkX2x1dHM7Cj4+ICsJ CWRldl9wcml2LT5kaXNwbGF5LmNvbG9yX2NvbW1pdCA9IGhzd19jb2xvcl9jb21taXQ7Cj4+ICAJ fSBlbHNlIGlmIChJU19CUk9BRFdFTEwoZGV2X3ByaXYpIHx8IElTX0dFTjlfQkMoZGV2X3ByaXYp IHx8Cj4+ICAJCSAgIElTX0JST1hUT04oZGV2X3ByaXYpKSB7Cj4+IC0JCWRldl9wcml2LT5kaXNw bGF5LmxvYWRfY3NjX21hdHJpeCA9IGlsa19sb2FkX2NzY19tYXRyaXg7Cj4+ICAJCWRldl9wcml2 LT5kaXNwbGF5LmxvYWRfbHV0cyA9IGJyb2Fkd2VsbF9sb2FkX2x1dHM7Cj4+ICsJCWRldl9wcml2 LT5kaXNwbGF5LmNvbG9yX2NvbW1pdCA9IGhzd19jb2xvcl9jb21taXQ7Cj4+ICAJfSBlbHNlIGlm IChJU19HRU1JTklMQUtFKGRldl9wcml2KSB8fCBJU19DQU5OT05MQUtFKGRldl9wcml2KSkgewo+ PiAtCQlkZXZfcHJpdi0+ZGlzcGxheS5sb2FkX2NzY19tYXRyaXggPSBpbGtfbG9hZF9jc2NfbWF0 cml4Owo+PiAgCQlkZXZfcHJpdi0+ZGlzcGxheS5sb2FkX2x1dHMgPSBnbGtfbG9hZF9sdXRzOwo+ PiArCQlkZXZfcHJpdi0+ZGlzcGxheS5jb2xvcl9jb21taXQgPSBoc3dfY29sb3JfY29tbWl0Owo+ PiAgCX0gZWxzZSB7Cj4+ICAJCWRldl9wcml2LT5kaXNwbGF5LmxvYWRfbHV0cyA9IGk5eHhfbG9h ZF9sdXRzOwo+PiAgCX0KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYwo+PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+PiBp bmRleCBhMzg3MWRiNDcwM2IuLjk2Yzc4NTY2YjhlNiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYwo+PiBAQCAtNTcwNSw2ICs1NzA1LDcgQEAgc3RhdGljIHZvaWQgaXJv bmxha2VfY3J0Y19lbmFibGUoc3RydWN0Cj5pbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywK Pj4gIAkgKiBjbG9ja3MgZW5hYmxlZAo+PiAgCSAqLwo+PiAgCWludGVsX2NvbG9yX2xvYWRfbHV0 cyhwaXBlX2NvbmZpZyk7Cj4+ICsJaW50ZWxfY29sb3JfY29tbWl0KHBpcGVfY29uZmlnKTsKPj4K Pj4gIAlpZiAoZGV2X3ByaXYtPmRpc3BsYXkuaW5pdGlhbF93YXRlcm1hcmtzICE9IE5VTEwpCj4+ ICAJCWRldl9wcml2LT5kaXNwbGF5LmluaXRpYWxfd2F0ZXJtYXJrcyhvbGRfaW50ZWxfc3RhdGUs Cj5waXBlX2NvbmZpZyk7Cj4+IEBAIC01ODE1LDggKzU4MTYsNiBAQCBzdGF0aWMgdm9pZCBoYXN3 ZWxsX2NydGNfZW5hYmxlKHN0cnVjdAo+PiBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywK Pj4KPj4gIAloYXN3ZWxsX3NldF9waXBlbWlzYyhwaXBlX2NvbmZpZyk7Cj4+Cj4+IC0JaW50ZWxf Y29sb3Jfc2V0X2NzYyhwaXBlX2NvbmZpZyk7Cj4+IC0KPj4gIAlpbnRlbF9jcnRjLT5hY3RpdmUg PSB0cnVlOwo+Pgo+PiAgCS8qIERpc3BsYXkgV0EgIzExODA6IFdhRGlzYWJsZVNjYWxhckNsb2Nr R2F0aW5nOiBnbGssIGNubCAqLyBAQAo+PiAtNTgzNSw2ICs1ODM0LDcgQEAgc3RhdGljIHZvaWQg aGFzd2VsbF9jcnRjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZQo+KnBpcGVfY29uZmln LAo+PiAgCSAqIGNsb2NrcyBlbmFibGVkCj4+ICAJICovCj4+ICAJaW50ZWxfY29sb3JfbG9hZF9s dXRzKHBpcGVfY29uZmlnKTsKPj4gKwlpbnRlbF9jb2xvcl9jb21taXQocGlwZV9jb25maWcpOwo+ Pgo+PiAgCS8qCj4+ICAJICogRGlzcGxheSBXQSAjMTE1MzogZW5hYmxlIGhhcmR3YXJlIHRvIGJ5 cGFzcyB0aGUgYWxwaGEgbWF0aCBAQAo+PiAtNjE4MCw4ICs2MTgwLDYgQEAgc3RhdGljIHZvaWQg dmFsbGV5dmlld19jcnRjX2VuYWJsZShzdHJ1Y3QKPj4gaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9j b25maWcsCj4+Cj4+ICAJaTl4eF9zZXRfcGlwZWNvbmYocGlwZV9jb25maWcpOwo+Pgo+PiAtCWlu dGVsX2NvbG9yX3NldF9jc2MocGlwZV9jb25maWcpOwo+PiAtCj4+ICAJaW50ZWxfY3J0Yy0+YWN0 aXZlID0gdHJ1ZTsKPj4KPj4gIAlpbnRlbF9zZXRfY3B1X2ZpZm9fdW5kZXJydW5fcmVwb3J0aW5n KGRldl9wcml2LCBwaXBlLCB0cnVlKTsgQEAKPj4gLTYyMDEsNiArNjE5OSw3IEBAIHN0YXRpYyB2 b2lkIHZhbGxleXZpZXdfY3J0Y19lbmFibGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUKPipwaXBl X2NvbmZpZywKPj4gIAlpOXh4X3BmaXRfZW5hYmxlKHBpcGVfY29uZmlnKTsKPj4KPj4gIAlpbnRl bF9jb2xvcl9sb2FkX2x1dHMocGlwZV9jb25maWcpOwo+PiArCWludGVsX2NvbG9yX2NvbW1pdChw aXBlX2NvbmZpZyk7Cj4+Cj4+ICAJZGV2X3ByaXYtPmRpc3BsYXkuaW5pdGlhbF93YXRlcm1hcmtz KG9sZF9pbnRlbF9zdGF0ZSwKPj4gIAkJCQkJICAgICBwaXBlX2NvbmZpZyk7Cj4+IEBAIC02MjU3 LDYgKzYyNTYsNyBAQCBzdGF0aWMgdm9pZCBpOXh4X2NydGNfZW5hYmxlKHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlCj4qcGlwZV9jb25maWcsCj4+ICAJaTl4eF9wZml0X2VuYWJsZShwaXBlX2NvbmZp Zyk7Cj4+Cj4+ICAJaW50ZWxfY29sb3JfbG9hZF9sdXRzKHBpcGVfY29uZmlnKTsKPj4gKwlpbnRl bF9jb2xvcl9jb21taXQocGlwZV9jb25maWcpOwo+Pgo+PiAgCWlmIChkZXZfcHJpdi0+ZGlzcGxh eS5pbml0aWFsX3dhdGVybWFya3MgIT0gTlVMTCkKPj4gIAkJZGV2X3ByaXYtPmRpc3BsYXkuaW5p dGlhbF93YXRlcm1hcmtzKG9sZF9pbnRlbF9zdGF0ZSwKPj4gQEAgLTEzNjM0LDEwICsxMzYzNCw4 IEBAIHN0YXRpYyB2b2lkIGludGVsX2JlZ2luX2NydGNfY29tbWl0KHN0cnVjdAo+PiBkcm1fY3J0 YyAqY3J0YywKPj4KPj4gIAlpZiAoIW1vZGVzZXQgJiYKPj4gIAkgICAgKGludGVsX2NzdGF0ZS0+ YmFzZS5jb2xvcl9tZ210X2NoYW5nZWQgfHwKPj4gLQkgICAgIGludGVsX2NzdGF0ZS0+dXBkYXRl X3BpcGUpKSB7Cj4+IC0JCWludGVsX2NvbG9yX3NldF9jc2MoaW50ZWxfY3N0YXRlKTsKPj4gKwkg ICAgIGludGVsX2NzdGF0ZS0+dXBkYXRlX3BpcGUpKQo+PiAgCQlpbnRlbF9jb2xvcl9sb2FkX2x1 dHMoaW50ZWxfY3N0YXRlKTsKPj4gLQl9Cj4+Cj4+ICAJLyogUGVyZm9ybSB2YmxhbmsgZXZhc2lv biBhcm91bmQgY29tbWl0IG9wZXJhdGlvbiAqLwo+PiAgCWludGVsX3BpcGVfdXBkYXRlX3N0YXJ0 KGludGVsX2NzdGF0ZSk7Cj4+IEBAIC0xMzY0NSw2ICsxMzY0MywxMCBAQCBzdGF0aWMgdm9pZCBp bnRlbF9iZWdpbl9jcnRjX2NvbW1pdChzdHJ1Y3QKPmRybV9jcnRjICpjcnRjLAo+PiAgCWlmICht b2Rlc2V0KQo+PiAgCQlnb3RvIG91dDsKPj4KPj4gKwlpZiAoaW50ZWxfY3N0YXRlLT5iYXNlLmNv bG9yX21nbXRfY2hhbmdlZCB8fAo+PiArCSAgICBpbnRlbF9jc3RhdGUtPnVwZGF0ZV9waXBlKQo+ PiArCQlpbnRlbF9jb2xvcl9jb21taXQoaW50ZWxfY3N0YXRlKTsKPj4gKwo+PiAgCWlmIChpbnRl bF9jc3RhdGUtPnVwZGF0ZV9waXBlKQo+PiAgCQlpbnRlbF91cGRhdGVfcGlwZV9jb25maWcob2xk X2ludGVsX2NzdGF0ZSwgaW50ZWxfY3N0YXRlKTsKPj4gIAllbHNlIGlmIChJTlRFTF9HRU4oZGV2 X3ByaXYpID49IDkpCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaAo+PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4+IGluZGV4IDk2NzQz ZjUwYjEzYS4uNTlmOGQ0MjcwZTgyIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcnYuaAo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ PiBAQCAtMjMzOCw3ICsyMzM4LDcgQEAgaW50IGludGVsX3BsYW5lX2F0b21pY19jaGVja193aXRo X3N0YXRlKGNvbnN0Cj4+IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y18KPj4gIC8q IGludGVsX2NvbG9yLmMgKi8KPj4gIHZvaWQgaW50ZWxfY29sb3JfaW5pdChzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0Yyk7ICBpbnQKPj4gaW50ZWxfY29sb3JfY2hlY2soc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUpOyAtdm9pZAo+PiBpbnRlbF9jb2xvcl9zZXRfY3NjKGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKPj4gK3ZvaWQgaW50ZWxfY29sb3Jf Y29tbWl0KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKPj4gIHZv aWQgaW50ZWxfY29sb3JfbG9hZF9sdXRzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlCj4+ ICpjcnRjX3N0YXRlKTsKPj4KPj4gIC8qIGludGVsX2xzcGNvbi5jICovCj4+IC0tCj4+IDIuMTku Mgo+Pgo+Cj4tLQo+TWF0dCBSb3Blcgo+R3JhcGhpY3MgU29mdHdhcmUgRW5naW5lZXIKPklvVEcg UGxhdGZvcm0gRW5hYmxpbmcgJiBEZXZlbG9wbWVudAo+SW50ZWwgQ29ycG9yYXRpb24KPig5MTYp IDM1Ni0yNzk1Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=