From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 08/13] drm/i915: Populate gamma_mode for all platforms Date: Tue, 29 Jan 2019 17:59:03 +0200 Message-ID: <20190129155903.GC20097@intel.com> References: <20190111170823.4441-1-ville.syrjala@linux.intel.com> <20190111170823.4441-9-ville.syrjala@linux.intel.com> <20190116183156.GI4563@mdroper-desk.amr.corp.intel.com> <20190116185804.GT20097@intel.com> <20190116195101.GW20097@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3227C6E7BE for ; Tue, 29 Jan 2019 15:59:07 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190116195101.GW20097@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Matt Roper Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBKYW4gMTYsIDIwMTkgYXQgMDk6NTE6MDFQTSArMDIwMCwgVmlsbGUgU3lyasOkbMOk IHdyb3RlOgo+IE9uIFdlZCwgSmFuIDE2LCAyMDE5IGF0IDA4OjU4OjA0UE0gKzAyMDAsIFZpbGxl IFN5cmrDpGzDpCB3cm90ZToKPiA+IE9uIFdlZCwgSmFuIDE2LCAyMDE5IGF0IDEwOjMxOjU2QU0g LTA4MDAsIE1hdHQgUm9wZXIgd3JvdGU6Cj4gPiA+IE9uIEZyaSwgSmFuIDExLCAyMDE5IGF0IDA3 OjA4OjE4UE0gKzAyMDAsIFZpbGxlIFN5cmphbGEgd3JvdGU6Cj4gPiA+ID4gRnJvbTogVmlsbGUg U3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+ID4gPiAKPiA+ID4g PiBPbiBwcmUtSFNXIGdhbW1hIG1vZGUgaXMgY29uZmlndXJlZCB2aWEgUElQRUNPTkYuIFRoZSBi aXRzIGFyZQo+ID4gPiA+IHRoZSBzYW1lIGV4Y2VwdCBzaGlmdGVkIHVwLCBzbyB3ZSBjYW4gcmV1 c2UganVzdCBzdG9yZSB0aGVtIGluCj4gPiA+ID4gY3J0Y19zdGF0ZS0+Z2FtbWFfbW9kZSBpbiB0 aGUgSFNXKyB3YXksIGFsbG93aW5nIHVzIHRvIHNoYXJlCj4gPiA+ID4gc29tZSBjb2RlIGxhdGVy Lgo+ID4gPiA+IAo+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUu c3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPiA+ID4gLS0tCj4gPiA+ID4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfcmVnLmggICAgICB8IDEwICsrKystCj4gPiA+ID4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2NvbG9yLmMgICB8IDYwICsrKysrKysrKysrKysrKysrKysrKy0tLS0t LS0KPiA+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgMTQgKysr KysrLQo+ID4gPiA+ICAzIGZpbGVzIGNoYW5nZWQsIDY2IGluc2VydGlvbnMoKyksIDE4IGRlbGV0 aW9ucygtKQo+ID4gPiA+IAo+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ID4gPiA+IGlu ZGV4IDQ0OTU4ZDk5NGJmYS4uOWQxN2JhMTk5YmU0IDEwMDY0NAo+ID4gPiA+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiA+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3JlZy5oCj4gPiA+ID4gQEAgLTU1NzgsOSArNTU3OCwxNSBAQCBlbnVtIHsKPiA+ ID4gPiAgI2RlZmluZSAgIFBJUEVDT05GX1NJTkdMRV9XSURFCTAKPiA+ID4gPiAgI2RlZmluZSAg IFBJUEVDT05GX1BJUEVfVU5MT0NLRUQgMAo+ID4gPiA+ICAjZGVmaW5lICAgUElQRUNPTkZfUElQ RV9MT0NLRUQJKDEgPDwgMjUpCj4gPiA+ID4gLSNkZWZpbmUgICBQSVBFQ09ORl9QQUxFVFRFCTAK PiA+ID4gPiAtI2RlZmluZSAgIFBJUEVDT05GX0dBTU1BCQkoMSA8PCAyNCkKPiA+ID4gPiAgI2Rl ZmluZSAgIFBJUEVDT05GX0ZPUkNFX0JPUkRFUgkoMSA8PCAyNSkKPiA+ID4gPiArI2RlZmluZSAg IFBJUEVDT05GX0dBTU1BX01PREVfTUFTS19JOVhYCSgxIDw8IDI0KSAvKiBnbWNoICovCj4gPiA+ ID4gKyNkZWZpbmUgICBQSVBFQ09ORl9HQU1NQV9NT0RFX01BU0tfSUxLCSgzIDw8IDI0KSAvKiBp bGstaXZiICovCj4gPiA+ID4gKyNkZWZpbmUgICBQSVBFQ09ORl9HQU1NQV9NT0RFXzhCSVQJKDAg PDwgMjQpIC8qIGdtY2gsaWxrLWl2YiAqLwo+ID4gPiA+ICsjZGVmaW5lICAgUElQRUNPTkZfR0FN TUFfTU9ERV8xMEJJVAkoMSA8PCAyNCkgLyogZ21jaCxpbGstaXZiICovCj4gPiA+ID4gKyNkZWZp bmUgICBQSVBFQ09ORl9HQU1NQV9NT0RFXzEyQklUCSgyIDw8IDI0KSAvKiBpbGstaXZiICovCj4g PiA+ID4gKyNkZWZpbmUgICBQSVBFQ09ORl9HQU1NQV9NT0RFX1NQTElUCSgzIDw8IDI0KSAvKiBp dmIgKi8KPiA+ID4gPiArI2RlZmluZSAgIFBJUEVDT05GX0dBTU1BX01PREUoeCkJKCh4KTw8MjQp IC8qIHBhc3MgaW4gR0FNTUFfTU9ERV9NT0RFXyogKi8KPiA+ID4gPiArI2RlZmluZSAgIFBJUEVD T05GX0dBTU1BX01PREVfU0hJRlQJMjQKPiA+ID4gPiAgI2RlZmluZSAgIFBJUEVDT05GX0lOVEVS TEFDRV9NQVNLCSg3IDw8IDIxKQo+ID4gPiA+ICAjZGVmaW5lICAgUElQRUNPTkZfSU5URVJMQUNF X01BU0tfSFNXCSgzIDw8IDIxKQo+ID4gPiA+ICAvKiBOb3RlIHRoYXQgcHJlLWdlbjMgZG9lcyBu b3Qgc3VwcG9ydCBpbnRlcmxhY2VkIGRpc3BsYXkgZGlyZWN0bHkuIFBhbmVsCj4gPiA+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9jb2xvci5jCj4gPiA+ID4gaW5kZXggMGMwZGE3ZWQwZmQ3Li42ZmRi ZmE4YzQwMDggMTAwNjQ0Cj4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf Y29sb3IuYwo+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmMK PiA+ID4gPiBAQCAtMzUxLDYgKzM1MSwzMiBAQCBzdGF0aWMgdm9pZCBpOXh4X2xvYWRfbHV0cyhj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiA+ID4gPiAgCWk5eHhf bG9hZF9sdXRzX2ludGVybmFsKGNydGNfc3RhdGUsIGNydGNfc3RhdGUtPmJhc2UuZ2FtbWFfbHV0 KTsKPiA+ID4gPiAgfQo+ID4gPiA+ICAKPiA+ID4gPiArc3RhdGljIHZvaWQgaTl4eF9jb2xvcl9j b21taXQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gPiA+ID4g K3sKPiA+ID4gPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRj X3N0YXRlLT5iYXNlLmNydGMpOwo+ID4gPiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7Cj4gPiA+ID4gKwllbnVtIHBpcGUgcGlw ZSA9IGNydGMtPnBpcGU7Cj4gPiA+ID4gKwl1MzIgdmFsOwo+ID4gPiA+ICsKPiA+ID4gPiArCXZh bCA9IEk5MTVfUkVBRChQSVBFQ09ORihwaXBlKSk7Cj4gPiA+ID4gKwl2YWwgJj0gflBJUEVDT05G X0dBTU1BX01PREVfTUFTS19JOVhYOwo+ID4gPiA+ICsJdmFsIHw9IFBJUEVDT05GX0dBTU1BX01P REUoY3J0Y19zdGF0ZS0+Z2FtbWFfbW9kZSk7Cj4gPiA+ID4gKwlJOTE1X1dSSVRFKFBJUEVDT05G KHBpcGUpLCB2YWwpOwo+ID4gPiA+ICt9Cj4gPiA+ID4gKwo+ID4gPiA+ICtzdGF0aWMgdm9pZCBp bGtfY29sb3JfY29tbWl0KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRl KQo+ID4gPiA+ICt7Cj4gPiA+ID4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVs X2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiA+ID4gPiArCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwo+ID4gPiA+ICsJZW51 bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwo+ID4gPiA+ICsJdTMyIHZhbDsKPiA+ID4gPiArCj4g PiA+ID4gKwl2YWwgPSBJOTE1X1JFQUQoUElQRUNPTkYocGlwZSkpOwo+ID4gPiA+ICsJdmFsICY9 IH5QSVBFQ09ORl9HQU1NQV9NT0RFX01BU0tfSUxLOwo+ID4gPiA+ICsJdmFsIHw9IFBJUEVDT05G X0dBTU1BX01PREUoY3J0Y19zdGF0ZS0+Z2FtbWFfbW9kZSk7Cj4gPiA+ID4gKwlJOTE1X1dSSVRF KFBJUEVDT05GKHBpcGUpLCB2YWwpOwo+ID4gPiA+ICt9Cj4gPiA+IAo+ID4gPiBDb3VsZCB3ZSBq dXN0IHNldCBjb2xvcl9jb21taXQgdG8gaTl4eF9zZXRfcGlwZWNvbmYgYW5kCj4gPiA+IGlyb25s YWtlX3NldF9waXBlY29uZiB0byBoYW5kbGUgdGhlc2Ugd2l0aG91dCB0aGUgci1tLXc/Cj4gPiAK PiA+IFBlcmhhcHMuIEJ1dCBub3QgcXVpdGUgc3VyZSBpZiB3ZSBoYXZlIGFueSBtYWdpYyByZXN0 cmljdGlvbnMKPiA+IGluIHRoZSBjcnRjIGVuYWJsZSBzZXF1ZW5jZSB0aGF0IHdvdWxkIHByZXZl bnQgdGhhdC4KPiAKPiBJIGd1ZXNzIHdlIGNvdWxkIGFsd2F5cyBrZWVwIHRoZSBkb3VibGUgc2V0 X3BpcGVjb25mKCkgaW4gdGhlCj4gY3J0YyBlbmFibGUgcGF0aCBzbyB0aGF0IHdlIHdvbid0IGhh dmUgdG8gdGhpbmsgd2hldGhlciB0byBtb3ZlIHRoZQo+IGNvbG9yX2NvbW1pdCgpIGVhcmxpZXIg b3IgdGhlIHNldF9waXBlY29uZigpIGxhdGVyLgoKQWN0dWFsbHkgb24gc2Vjb25kIHRob3VnaHQg d2UgY2FuJ3QgYXZvaWQgdGhlIFJNVyB3aXRob3V0IG1vcmUKcmVzdHJ1Y3R1cmluZyBiZWNhdXNl IGlyb25sYWtlX3NldF9waXBlY29uZigpICYgY28uIGdldCBjYWxsZWQgYmVmb3JlCndlIGVuYWJs ZSB0aGUgcGlwZSBhbmQgdGh1cyB3b24ndCBzZXQgdGhlIGVuYWJsZSBiaXQuIFNvIEkgdGhpbmsg SSdtCmdvaW5nIHRvIHN0aWNrIHdpdGggdGhlIG9yaWdpbmFsIHBhdGNoIGZvciBub3cuCgo+IAo+ ID4gCj4gPiA+IAo+ID4gPiAKPiA+ID4gTWF0dAo+ID4gPiAKPiA+ID4gPiArCj4gPiA+ID4gIHN0 YXRpYyB2b2lkIGhzd19jb2xvcl9jb21taXQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUpCj4gPiA+ID4gIHsKPiA+ID4gPiAgCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRj ID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ID4gPiA+IEBAIC01ODUs OCArNjExLDcgQEAgdm9pZCBpbnRlbF9jb2xvcl9jb21taXQoY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gPiA+ID4gIHsKPiA+ID4gPiAgCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYp Owo+ID4gPiA+ICAKPiA+ID4gPiAtCWlmIChkZXZfcHJpdi0+ZGlzcGxheS5jb2xvcl9jb21taXQp Cj4gPiA+ID4gLQkJZGV2X3ByaXYtPmRpc3BsYXkuY29sb3JfY29tbWl0KGNydGNfc3RhdGUpOwo+ ID4gPiA+ICsJZGV2X3ByaXYtPmRpc3BsYXkuY29sb3JfY29tbWl0KGNydGNfc3RhdGUpOwo+ID4g PiA+ICB9Cj4gPiA+ID4gIAo+ID4gPiA+ICBpbnQgaW50ZWxfY29sb3JfY2hlY2soc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gPiA+ID4gQEAgLTYzNCwyMCArNjU5LDI1IEBA IHZvaWQgaW50ZWxfY29sb3JfaW5pdChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKPiA+ID4gPiAg Cj4gPiA+ID4gIAlkcm1fbW9kZV9jcnRjX3NldF9nYW1tYV9zaXplKCZjcnRjLT5iYXNlLCAyNTYp Owo+ID4gPiA+ICAKPiA+ID4gPiAtCWlmIChJU19DSEVSUllWSUVXKGRldl9wcml2KSkgewo+ID4g PiA+IC0JCWRldl9wcml2LT5kaXNwbGF5LmxvYWRfbHV0cyA9IGNoZXJyeXZpZXdfbG9hZF9sdXRz Owo+ID4gPiA+IC0JfSBlbHNlIGlmIChJU19IQVNXRUxMKGRldl9wcml2KSkgewo+ID4gPiA+IC0J CWRldl9wcml2LT5kaXNwbGF5LmxvYWRfbHV0cyA9IGk5eHhfbG9hZF9sdXRzOwo+ID4gPiA+IC0J CWRldl9wcml2LT5kaXNwbGF5LmNvbG9yX2NvbW1pdCA9IGhzd19jb2xvcl9jb21taXQ7Cj4gPiA+ ID4gLQl9IGVsc2UgaWYgKElTX0JST0FEV0VMTChkZXZfcHJpdikgfHwgSVNfR0VOOV9CQyhkZXZf cHJpdikgfHwKPiA+ID4gPiAtCQkgICBJU19CUk9YVE9OKGRldl9wcml2KSkgewo+ID4gPiA+IC0J CWRldl9wcml2LT5kaXNwbGF5LmxvYWRfbHV0cyA9IGJyb2Fkd2VsbF9sb2FkX2x1dHM7Cj4gPiA+ ID4gLQkJZGV2X3ByaXYtPmRpc3BsYXkuY29sb3JfY29tbWl0ID0gaHN3X2NvbG9yX2NvbW1pdDsK PiA+ID4gPiAtCX0gZWxzZSBpZiAoSVNfR0VNSU5JTEFLRShkZXZfcHJpdikgfHwgSVNfQ0FOTk9O TEFLRShkZXZfcHJpdikpIHsKPiA+ID4gPiAtCQlkZXZfcHJpdi0+ZGlzcGxheS5sb2FkX2x1dHMg PSBnbGtfbG9hZF9sdXRzOwo+ID4gPiA+IC0JCWRldl9wcml2LT5kaXNwbGF5LmNvbG9yX2NvbW1p dCA9IGhzd19jb2xvcl9jb21taXQ7Cj4gPiA+ID4gKwlpZiAoSEFTX0dNQ0hfRElTUExBWShkZXZf cHJpdikpIHsKPiA+ID4gPiArCQlpZiAoSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpCj4gPiA+ID4g KwkJCWRldl9wcml2LT5kaXNwbGF5LmxvYWRfbHV0cyA9IGNoZXJyeXZpZXdfbG9hZF9sdXRzOwo+ ID4gPiA+ICsJCWVsc2UKPiA+ID4gPiArCQkJZGV2X3ByaXYtPmRpc3BsYXkubG9hZF9sdXRzID0g aTl4eF9sb2FkX2x1dHM7Cj4gPiA+ID4gKwo+ID4gPiA+ICsJCWRldl9wcml2LT5kaXNwbGF5LmNv bG9yX2NvbW1pdCA9IGk5eHhfY29sb3JfY29tbWl0Owo+ID4gPiA+ICAJfSBlbHNlIHsKPiA+ID4g PiAtCQlkZXZfcHJpdi0+ZGlzcGxheS5sb2FkX2x1dHMgPSBpOXh4X2xvYWRfbHV0czsKPiA+ID4g PiArCQlpZiAoSVNfQ0FOTk9OTEFLRShkZXZfcHJpdikgfHwgSVNfR0VNSU5JTEFLRShkZXZfcHJp dikpCj4gPiA+ID4gKwkJCWRldl9wcml2LT5kaXNwbGF5LmxvYWRfbHV0cyA9IGdsa19sb2FkX2x1 dHM7Cj4gPiA+ID4gKwkJZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5IHx8IElTX0JS T0FEV0VMTChkZXZfcHJpdikpCj4gPiA+ID4gKwkJCWRldl9wcml2LT5kaXNwbGF5LmxvYWRfbHV0 cyA9IGJyb2Fkd2VsbF9sb2FkX2x1dHM7Cj4gPiA+ID4gKwkJZWxzZQo+ID4gPiA+ICsJCQlkZXZf cHJpdi0+ZGlzcGxheS5sb2FkX2x1dHMgPSBpOXh4X2xvYWRfbHV0czsKPiA+ID4gPiArCj4gPiA+ ID4gKwkJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOCB8fCBJU19IQVNXRUxMKGRldl9wcml2 KSkKPiA+ID4gPiArCQkJZGV2X3ByaXYtPmRpc3BsYXkuY29sb3JfY29tbWl0ID0gaHN3X2NvbG9y X2NvbW1pdDsKPiA+ID4gPiArCQllbHNlCj4gPiA+ID4gKwkJCWRldl9wcml2LT5kaXNwbGF5LmNv bG9yX2NvbW1pdCA9IGlsa19jb2xvcl9jb21taXQ7Cj4gPiA+ID4gIAl9Cj4gPiA+ID4gIAo+ID4g PiA+ICAJLyogRW5hYmxlIGNvbG9yIG1hbmFnZW1lbnQgc3VwcG9ydCB3aGVuIHdlIGhhdmUgZGVn YW1tYSAmIGdhbW1hIExVVHMuICovCj4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYwo+ID4gPiA+IGluZGV4IDFjYWVlNDEyODk3NC4uOTBhZmNhZTkxYjMwIDEwMDY0NAo+ID4g PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gPiA+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gPiA+IEBAIC0zNDE1 LDcgKzM0MTUsNyBAQCBzdGF0aWMgdm9pZCBpOXh4X2Rpc2FibGVfcGxhbmUoc3RydWN0IGludGVs X3BsYW5lICpwbGFuZSwKPiA+ID4gPiAgCSAqCj4gPiA+ID4gIAkgKiBPbiBwcmUtZzR4IHRoZXJl IGlzIG5vIHdheSB0byBnYW1tYSBjb3JyZWN0IHRoZQo+ID4gPiA+ICAJICogcGlwZSBib3R0b20g Y29sb3IgYnV0IHdlJ2xsIGtlZXAgb24gZG9pbmcgdGhpcwo+ID4gPiA+IC0JICogYW55d2F5Lgo+ ID4gPiA+ICsJICogYW55d2F5IHNvIHRoYXQgdGhlIGNydGMgc3RhdGUgcmVhZG91dCB3b3JrcyBj b3JyZWN0bHkuCj4gPiA+ID4gIAkgKi8KPiA+ID4gPiAgCWRzcGNudHIgPSBpOXh4X3BsYW5lX2N0 bF9jcnRjKGNydGNfc3RhdGUpOwo+ID4gPiA+ICAKPiA+ID4gPiBAQCAtNzYyNyw2ICs3NjI3LDgg QEAgc3RhdGljIHZvaWQgaTl4eF9zZXRfcGlwZWNvbmYoY29uc3Qgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUpCj4gPiA+ID4gIAkgICAgIGNydGNfc3RhdGUtPmxpbWl0ZWRfY29s b3JfcmFuZ2UpCj4gPiA+ID4gIAkJcGlwZWNvbmYgfD0gUElQRUNPTkZfQ09MT1JfUkFOR0VfU0VM RUNUOwo+ID4gPiA+ICAKPiA+ID4gPiArCXBpcGVjb25mIHw9IFBJUEVDT05GX0dBTU1BX01PREUo Y3J0Y19zdGF0ZS0+Z2FtbWFfbW9kZSk7Cj4gPiA+ID4gKwo+ID4gPiA+ICAJSTkxNV9XUklURShQ SVBFQ09ORihjcnRjLT5waXBlKSwgcGlwZWNvbmYpOwo+ID4gPiA+ICAJUE9TVElOR19SRUFEKFBJ UEVDT05GKGNydGMtPnBpcGUpKTsKPiA+ID4gPiAgfQo+ID4gPiA+IEBAIC04MDc3LDYgKzgwNzks OSBAQCBzdGF0aWMgYm9vbCBpOXh4X2dldF9waXBlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YywKPiA+ID4gPiAgCSAgICAodG1wICYgUElQRUNPTkZfQ09MT1JfUkFOR0VfU0VMRUNUKSkK PiA+ID4gPiAgCQlwaXBlX2NvbmZpZy0+bGltaXRlZF9jb2xvcl9yYW5nZSA9IHRydWU7Cj4gPiA+ ID4gIAo+ID4gPiA+ICsJcGlwZV9jb25maWctPmdhbW1hX21vZGUgPSAodG1wICYgUElQRUNPTkZf R0FNTUFfTU9ERV9NQVNLX0k5WFgpID4+Cj4gPiA+ID4gKwkJUElQRUNPTkZfR0FNTUFfTU9ERV9T SElGVDsKPiA+ID4gPiArCj4gPiA+ID4gIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8IDQpCj4g PiA+ID4gIAkJcGlwZV9jb25maWctPmRvdWJsZV93aWRlID0gdG1wICYgUElQRUNPTkZfRE9VQkxF X1dJREU7Cj4gPiA+ID4gIAo+ID4gPiA+IEBAIC04NjE2LDYgKzg2MjEsOCBAQCBzdGF0aWMgdm9p ZCBpcm9ubGFrZV9zZXRfcGlwZWNvbmYoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNy dGNfc3RhdGUpCj4gPiA+ID4gIAlpZiAoY3J0Y19zdGF0ZS0+bGltaXRlZF9jb2xvcl9yYW5nZSkK PiA+ID4gPiAgCQl2YWwgfD0gUElQRUNPTkZfQ09MT1JfUkFOR0VfU0VMRUNUOwo+ID4gPiA+ICAK PiA+ID4gPiArCXZhbCB8PSBQSVBFQ09ORl9HQU1NQV9NT0RFKGNydGNfc3RhdGUtPmdhbW1hX21v ZGUpOwo+ID4gPiA+ICsKPiA+ID4gPiAgCUk5MTVfV1JJVEUoUElQRUNPTkYocGlwZSksIHZhbCk7 Cj4gPiA+ID4gIAlQT1NUSU5HX1JFQUQoUElQRUNPTkYocGlwZSkpOwo+ID4gPiA+ICB9Cj4gPiA+ ID4gQEAgLTkxNDcsNiArOTE1NCw5IEBAIHN0YXRpYyBib29sIGlyb25sYWtlX2dldF9waXBlX2Nv bmZpZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiA+ID4gPiAgCWlmICh0bXAgJiBQSVBFQ09O Rl9DT0xPUl9SQU5HRV9TRUxFQ1QpCj4gPiA+ID4gIAkJcGlwZV9jb25maWctPmxpbWl0ZWRfY29s b3JfcmFuZ2UgPSB0cnVlOwo+ID4gPiA+ICAKPiA+ID4gPiArCXBpcGVfY29uZmlnLT5nYW1tYV9t b2RlID0gKHRtcCAmIFBJUEVDT05GX0dBTU1BX01PREVfTUFTS19JTEspID4+Cj4gPiA+ID4gKwkJ UElQRUNPTkZfR0FNTUFfTU9ERV9TSElGVDsKPiA+ID4gPiArCj4gPiA+ID4gIAlpZiAoSTkxNV9S RUFEKFBDSF9UUkFOU0NPTkYoY3J0Yy0+cGlwZSkpICYgVFJBTlNfRU5BQkxFKSB7Cj4gPiA+ID4g IAkJc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGw7Cj4gPiA+ID4gIAkJZW51bSBpbnRlbF9k cGxsX2lkIHBsbF9pZDsKPiA+ID4gPiBAQCAtMTE5NzcsNiArMTE5ODcsOCBAQCBpbnRlbF9waXBl X2NvbmZpZ19jb21wYXJlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ID4g PiAgCj4gPiA+ID4gIAlQSVBFX0NPTkZfQ0hFQ0tfQk9PTChkb3VibGVfd2lkZSk7Cj4gPiA+ID4g IAo+ID4gPiA+ICsJUElQRV9DT05GX0NIRUNLX1goZ2FtbWFfbW9kZSk7Cj4gPiA+ID4gKwo+ID4g PiA+ICAJUElQRV9DT05GX0NIRUNLX1Aoc2hhcmVkX2RwbGwpOwo+ID4gPiA+ICAJUElQRV9DT05G X0NIRUNLX1goZHBsbF9od19zdGF0ZS5kcGxsKTsKPiA+ID4gPiAgCVBJUEVfQ09ORl9DSEVDS19Y KGRwbGxfaHdfc3RhdGUuZHBsbF9tZCk7Cj4gPiA+ID4gLS0gCj4gPiA+ID4gMi4xOS4yCj4gPiA+ ID4gCj4gPiA+IAo+ID4gPiAtLSAKPiA+ID4gTWF0dCBSb3Blcgo+ID4gPiBHcmFwaGljcyBTb2Z0 d2FyZSBFbmdpbmVlcgo+ID4gPiBJb1RHIFBsYXRmb3JtIEVuYWJsaW5nICYgRGV2ZWxvcG1lbnQK PiA+ID4gSW50ZWwgQ29ycG9yYXRpb24KPiA+ID4gKDkxNikgMzU2LTI3OTUKPiA+IAo+ID4gLS0g Cj4gPiBWaWxsZSBTeXJqw6Rsw6QKPiA+IEludGVsCj4gPiBfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwo+ID4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+ID4g SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ID4gaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKPiAKPiAtLSAKPiBWaWxsZSBTeXJq w6Rsw6QKPiBJbnRlbAoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbApfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0Cklu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK