From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: Re: [PATCH v3 06/19] drm/i915: Split skl_update_scaler, v3. Date: Wed, 17 Jun 2015 18:48:21 -0700 Message-ID: <20150618014821.GD3607@intel.com> References: <1434364436-6366-1-git-send-email-maarten.lankhorst@linux.intel.com> <1434364436-6366-7-git-send-email-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 8FA646E14C for ; Wed, 17 Jun 2015 18:48:22 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1434364436-6366-7-git-send-email-maarten.lankhorst@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Maarten Lankhorst Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBKdW4gMTUsIDIwMTUgYXQgMTI6MzM6NDNQTSArMDIwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gSXQncyBlYXNpZXIgdG8gcmVhZCBzZXBhcmF0ZSBmdW5jdGlvbnMgZm9yIGNy dGMgYW5kIHBsYW5lIHNjYWxlciBzdGF0ZS4KPiAKPiBDaGFuZ2VzIHNpbmNlIHYxOgo+ICAtIFVw ZGF0ZSBkb2N1bWVudGF0aW9uLgo+IENoYW5nZXMgc2luY2UgdjI6Cj4gIC0gR2V0IHJpZCBvZiBw YXJhbWV0ZXJzIHRvIHNrbF91cGRhdGVfc2NhbGVyIG9ubHkgdXNlZCBmb3IgdHJhY2VzLgo+ICAg IFRoaXMgYXZvaWRzIG5lZWRpbmcgdG8gZG9jdW1lbnQgdGhlIG90aGVyIHBhcmFtZXRlcnMuCj4g Cj4gU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxp bnV4LmludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jIHwgMjExICsrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCj4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RwLmMgICAgICB8ICAgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgMTIgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfc3ByaXRlLmMgIHwgICAzICstCj4gIDQgZmlsZXMgY2hhbmdlZCwgMTIxIGluc2VydGlvbnMo KyksIDEwNyBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j Cj4gaW5kZXggMGY3NjUyYTMxYzk1Li4yNmQ2MTBhY2I2MWYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jCj4gQEAgLTQzMDMsNjIgKzQzMDMsMTYgQEAgc3RhdGljIHZvaWQg Y3B0X3ZlcmlmeV9tb2Rlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBwaXBlKQo+ICAJ fQo+ICB9Cj4gIAo+IC0vKioKPiAtICogc2tsX3VwZGF0ZV9zY2FsZXJfdXNlcnMgLSBTdGFnZXMg dXBkYXRlIHRvIGNydGMncyBzY2FsZXIgc3RhdGUKPiAtICogQGludGVsX2NydGM6IGNydGMKPiAt ICogQGNydGNfc3RhdGU6IGNydGNfc3RhdGUKPiAtICogQHBsYW5lOiBwbGFuZSAoTlVMTCBpbmRp Y2F0ZXMgY3J0YyBpcyByZXF1ZXN0aW5nIHVwZGF0ZSkKPiAtICogQHBsYW5lX3N0YXRlOiBwbGFu ZSdzIHN0YXRlCj4gLSAqIEBmb3JjZV9kZXRhY2g6IHJlcXVlc3QgdW5jb25kaXRpb25hbCBkZXRh Y2htZW50IG9mIHNjYWxlcgo+IC0gKgo+IC0gKiBUaGlzIGZ1bmN0aW9uIHVwZGF0ZXMgc2NhbGVy IHN0YXRlIGZvciByZXF1ZXN0ZWQgcGxhbmUgb3IgY3J0Yy4KPiAtICogVG8gcmVxdWVzdCBzY2Fs ZXIgdXNhZ2UgdXBkYXRlIGZvciBhIHBsYW5lLCBjYWxsZXIgc2hhbGwgcGFzcyBwbGFuZSBwb2lu dGVyLgo+IC0gKiBUbyByZXF1ZXN0IHNjYWxlciB1c2FnZSB1cGRhdGUgZm9yIGNydGMsIGNhbGxl ciBzaGFsbCBwYXNzIHBsYW5lIHBvaW50ZXIKPiAtICogYXMgTlVMTC4KPiAtICoKPiAtICogUmV0 dXJuCj4gLSAqICAgICAwIC0gc2NhbGVyX3VzYWdlIHVwZGF0ZWQgc3VjY2Vzc2Z1bGx5Cj4gLSAq ICAgIGVycm9yIC0gcmVxdWVzdGVkIHNjYWxpbmcgY2Fubm90IGJlIHN1cHBvcnRlZCBvciBvdGhl ciBlcnJvciBjb25kaXRpb24KPiAtICovCj4gLWludAo+IC1za2xfdXBkYXRlX3NjYWxlcl91c2Vy cygKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSwKPiAtCXN0cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxhbmUsIHN0 cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUsCj4gLQlpbnQgZm9yY2VfZGV0YWNo KQo+ICtzdGF0aWMgaW50Cj4gK3NrbF91cGRhdGVfc2NhbGVyKHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlLCBib29sIGZvcmNlX2RldGFjaCwKPiArCQkgIHVuc2lnbmVkIHNjYWxl cl9pZHgsIGludCAqc2NhbGVyX2lkLCB1bnNpZ25lZCBpbnQgcm90YXRpb24sCiAgICAgICAgICAg ICAgICAgICAgICAgICAgIF5eXl5eXl5eXl4KVGhpcyBwYXJhbWV0ZXIgaXNuJ3QgYWN0dWFsbHkg dGhlIHNjYWxlciBpbmRleCBpcyBpdCAodGhhdCdzIHdoYXQKc2NhbGVyX2lkIHdpbmRzIHVwIGJl aW5nIG9uY2UgYXNzaWduZWQgaGVyZSk/ICBJIHRoaW5rIHRoaXMgb25lIGlzIHRoZQpwbGFuZSBp bmRleCB0aGF0IHdlJ3JlIGFzc2lnbmluZyBhIHNjYWxlciBmb3IgKG9yIHRoZSBzcGVjaWFsIHZh bHVlIG9mClNLTF9DUlRDX0lOREVYIGlmIHdlJ3JlIGFzc2lnbmluZyBmb3IgdGhlIENSVEMgaW5z dGVhZCBvZiBhIHBsYW5lKS4KCk1heWJlICdzY2FsZXJfdGFyZ2V0JyBvciAnc2NhbGVyX3VzZXIn IHdvdWxkIGJlIGJldHRlcj8KCgpNYXR0Cgo+ICsJCSAgaW50IHNyY193LCBpbnQgc3JjX2gsIGlu dCBkc3RfdywgaW50IGRzdF9oKQo+ICB7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zY2FsZXJfc3Rh dGUgKnNjYWxlcl9zdGF0ZSA9Cj4gKwkJJmNydGNfc3RhdGUtPnNjYWxlcl9zdGF0ZTsKPiArCXN0 cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0KPiArCQl0b19pbnRlbF9jcnRjKGNydGNfc3Rh dGUtPmJhc2UuY3J0Yyk7Cj4gIAlpbnQgbmVlZF9zY2FsaW5nOwo+IC0JaW50IGlkeDsKPiAtCWlu dCBzcmNfdywgc3JjX2gsIGRzdF93LCBkc3RfaDsKPiAtCWludCAqc2NhbGVyX2lkOwo+IC0Jc3Ry dWN0IGRybV9mcmFtZWJ1ZmZlciAqZmI7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0Y19zY2FsZXJfc3Rh dGUgKnNjYWxlcl9zdGF0ZTsKPiAtCXVuc2lnbmVkIGludCByb3RhdGlvbjsKPiAtCj4gLQlpZiAo IWludGVsX2NydGMgfHwgIWNydGNfc3RhdGUpCj4gLQkJcmV0dXJuIDA7Cj4gLQo+IC0Jc2NhbGVy X3N0YXRlID0gJmNydGNfc3RhdGUtPnNjYWxlcl9zdGF0ZTsKPiAtCj4gLQlpZHggPSBpbnRlbF9w bGFuZSA/IGRybV9wbGFuZV9pbmRleCgmaW50ZWxfcGxhbmUtPmJhc2UpIDogU0tMX0NSVENfSU5E RVg7Cj4gLQlmYiA9IGludGVsX3BsYW5lID8gcGxhbmVfc3RhdGUtPmJhc2UuZmIgOiBOVUxMOwo+ IC0KPiAtCWlmIChpbnRlbF9wbGFuZSkgewo+IC0JCXNyY193ID0gZHJtX3JlY3Rfd2lkdGgoJnBs YW5lX3N0YXRlLT5zcmMpID4+IDE2Owo+IC0JCXNyY19oID0gZHJtX3JlY3RfaGVpZ2h0KCZwbGFu ZV9zdGF0ZS0+c3JjKSA+PiAxNjsKPiAtCQlkc3RfdyA9IGRybV9yZWN0X3dpZHRoKCZwbGFuZV9z dGF0ZS0+ZHN0KTsKPiAtCQlkc3RfaCA9IGRybV9yZWN0X2hlaWdodCgmcGxhbmVfc3RhdGUtPmRz dCk7Cj4gLQkJc2NhbGVyX2lkID0gJnBsYW5lX3N0YXRlLT5zY2FsZXJfaWQ7Cj4gLQkJcm90YXRp b24gPSBwbGFuZV9zdGF0ZS0+YmFzZS5yb3RhdGlvbjsKPiAtCX0gZWxzZSB7Cj4gLQkJc3RydWN0 IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQo+IC0JCQkmY3J0Y19zdGF0ZS0+YmFz ZS5hZGp1c3RlZF9tb2RlOwo+IC0JCXNyY193ID0gY3J0Y19zdGF0ZS0+cGlwZV9zcmNfdzsKPiAt CQlzcmNfaCA9IGNydGNfc3RhdGUtPnBpcGVfc3JjX2g7Cj4gLQkJZHN0X3cgPSBhZGp1c3RlZF9t b2RlLT5oZGlzcGxheTsKPiAtCQlkc3RfaCA9IGFkanVzdGVkX21vZGUtPnZkaXNwbGF5Owo+IC0J CXNjYWxlcl9pZCA9ICZzY2FsZXJfc3RhdGUtPnNjYWxlcl9pZDsKPiAtCQlyb3RhdGlvbiA9IERS TV9ST1RBVEVfMDsKPiAtCX0KPiAgCj4gIAluZWVkX3NjYWxpbmcgPSBpbnRlbF9yb3RhdGlvbl85 MF9vcl8yNzAocm90YXRpb24pID8KPiAgCQkoc3JjX2ggIT0gZHN0X3cgfHwgc3JjX3cgIT0gZHN0 X2gpOgo+IEBAIC00Mzc0LDE3ICs0MzI4LDE0IEBAIHNrbF91cGRhdGVfc2NhbGVyX3VzZXJzKAo+ ICAJICogdXBkYXRlIHRvIGZyZWUgdGhlIHNjYWxlciBpcyBkb25lIGluIHBsYW5lL3BhbmVsLWZp dCBwcm9ncmFtbWluZy4KPiAgCSAqIEZvciB0aGlzIHB1cnBvc2UgY3J0Yy9wbGFuZV9zdGF0ZS0+ c2NhbGVyX2lkIGlzbid0IHJlc2V0IGhlcmUuCj4gIAkgKi8KPiAtCWlmIChmb3JjZV9kZXRhY2gg fHwgIW5lZWRfc2NhbGluZyB8fCAoaW50ZWxfcGxhbmUgJiYKPiAtCQkoIWZiIHx8ICFwbGFuZV9z dGF0ZS0+dmlzaWJsZSkpKSB7Cj4gKwlpZiAoZm9yY2VfZGV0YWNoIHx8ICFuZWVkX3NjYWxpbmcp IHsKPiAgCQlpZiAoKnNjYWxlcl9pZCA+PSAwKSB7Cj4gLQkJCXNjYWxlcl9zdGF0ZS0+c2NhbGVy X3VzZXJzICY9IH4oMSA8PCBpZHgpOwo+ICsJCQlzY2FsZXJfc3RhdGUtPnNjYWxlcl91c2VycyAm PSB+KDEgPDwgc2NhbGVyX2lkeCk7Cj4gIAkJCXNjYWxlcl9zdGF0ZS0+c2NhbGVyc1sqc2NhbGVy X2lkXS5pbl91c2UgPSAwOwo+ICAKPiAtCQkJRFJNX0RFQlVHX0tNUygiU3RhZ2VkIGZyZWVpbmcg c2NhbGVyIGlkICVkLiVkIGZyb20gJXM6JWQgIgo+IC0JCQkJImNydGNfc3RhdGUgPSAlcCBzY2Fs ZXJfdXNlcnMgPSAweCV4XG4iLAo+IC0JCQkJaW50ZWxfY3J0Yy0+cGlwZSwgKnNjYWxlcl9pZCwg aW50ZWxfcGxhbmUgPyAiUExBTkUiIDogIkNSVEMiLAo+IC0JCQkJaW50ZWxfcGxhbmUgPyBpbnRl bF9wbGFuZS0+YmFzZS5iYXNlLmlkIDoKPiAtCQkJCWludGVsX2NydGMtPmJhc2UuYmFzZS5pZCwg Y3J0Y19zdGF0ZSwKPiArCQkJRFJNX0RFQlVHX0tNUygic2NhbGVyX3VzZXIgaW5kZXggJXUuJXU6 ICIKPiArCQkJCSJTdGFnZWQgZnJlZWluZyBzY2FsZXIgaWQgJWQuJWQgc2NhbGVyX3VzZXJzID0g MHgleFxuIiwKPiArCQkJCWludGVsX2NydGMtPnBpcGUsIHNjYWxlcl9pZHgsICpzY2FsZXJfaWQs IHNjYWxlcl9pZHgsCj4gIAkJCQlzY2FsZXJfc3RhdGUtPnNjYWxlcl91c2Vycyk7Cj4gIAkJCSpz Y2FsZXJfaWQgPSAtMTsKPiAgCQl9Cj4gQEAgLTQzOTcsNTEgKzQzNDgsMTEyIEBAIHNrbF91cGRh dGVfc2NhbGVyX3VzZXJzKAo+ICAKPiAgCQlzcmNfdyA+IFNLTF9NQVhfU1JDX1cgfHwgc3JjX2gg PiBTS0xfTUFYX1NSQ19IIHx8Cj4gIAkJZHN0X3cgPiBTS0xfTUFYX0RTVF9XIHx8IGRzdF9oID4g U0tMX01BWF9EU1RfSCkgewo+IC0JCURSTV9ERUJVR19LTVMoIiVzOiVkIHNjYWxlcl91c2VyIGlu ZGV4ICV1LiV1OiBzcmMgJXV4JXUgZHN0ICV1eCV1ICIKPiArCQlEUk1fREVCVUdfS01TKCJzY2Fs ZXJfdXNlciBpbmRleCAldS4ldTogc3JjICV1eCV1IGRzdCAldXgldSAiCj4gIAkJCSJzaXplIGlz IG91dCBvZiBzY2FsZXIgcmFuZ2VcbiIsCj4gLQkJCWludGVsX3BsYW5lID8gIlBMQU5FIiA6ICJD UlRDIiwKPiAtCQkJaW50ZWxfcGxhbmUgPyBpbnRlbF9wbGFuZS0+YmFzZS5iYXNlLmlkIDogaW50 ZWxfY3J0Yy0+YmFzZS5iYXNlLmlkLAo+IC0JCQlpbnRlbF9jcnRjLT5waXBlLCBpZHgsIHNyY193 LCBzcmNfaCwgZHN0X3csIGRzdF9oKTsKPiArCQkJaW50ZWxfY3J0Yy0+cGlwZSwgc2NhbGVyX2lk eCwgc3JjX3csIHNyY19oLCBkc3RfdywgZHN0X2gpOwo+ICAJCXJldHVybiAtRUlOVkFMOwo+ICAJ fQo+ICAKPiArCS8qIG1hcmsgdGhpcyBwbGFuZSBhcyBhIHNjYWxlciB1c2VyIGluIGNydGNfc3Rh dGUgKi8KPiArCXNjYWxlcl9zdGF0ZS0+c2NhbGVyX3VzZXJzIHw9ICgxIDw8IHNjYWxlcl9pZHgp Owo+ICsJRFJNX0RFQlVHX0tNUygic2NhbGVyX3VzZXIgaW5kZXggJXUuJXU6ICIKPiArCQkic3Rh Z2VkIHNjYWxpbmcgcmVxdWVzdCBmb3IgJXV4JXUtPiV1eCV1IHNjYWxlcl91c2VycyA9IDB4JXhc biIsCj4gKwkJaW50ZWxfY3J0Yy0+cGlwZSwgc2NhbGVyX2lkeCwgc3JjX3csIHNyY19oLCBkc3Rf dywgZHN0X2gsCj4gKwkJc2NhbGVyX3N0YXRlLT5zY2FsZXJfdXNlcnMpOwo+ICsKPiArCXJldHVy biAwOwo+ICt9Cj4gKwo+ICsvKioKPiArICogc2tsX3VwZGF0ZV9zY2FsZXJfY3J0YyAtIFN0YWdl cyB1cGRhdGUgdG8gc2NhbGVyIHN0YXRlIGZvciBhIGdpdmVuIGNydGMuCj4gKyAqCj4gKyAqIEBz dGF0ZTogY3J0YydzIHNjYWxlciBzdGF0ZQo+ICsgKiBAZm9yY2VfZGV0YWNoOiB3aGV0aGVyIHRv IGZvcmNpYmx5IGRpc2FibGUgc2NhbGVyCj4gKyAqCj4gKyAqIFJldHVybgo+ICsgKiAgICAgMCAt IHNjYWxlcl91c2FnZSB1cGRhdGVkIHN1Y2Nlc3NmdWxseQo+ICsgKiAgICBlcnJvciAtIHJlcXVl c3RlZCBzY2FsaW5nIGNhbm5vdCBiZSBzdXBwb3J0ZWQgb3Igb3RoZXIgZXJyb3IgY29uZGl0aW9u Cj4gKyAqLwo+ICtpbnQgc2tsX3VwZGF0ZV9zY2FsZXJfY3J0YyhzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqc3RhdGUsIGludCBmb3JjZV9kZXRhY2gpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9jcnRj ICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhzdGF0ZS0+YmFzZS5jcnRjKTsKPiArCXN0cnVj dCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KPiArCQkmc3RhdGUtPmJhc2UuYWRq dXN0ZWRfbW9kZTsKPiArCj4gKwlEUk1fREVCVUdfS01TKCJVcGRhdGluZyBzY2FsZXIgZm9yIFtD UlRDOiVpXSBzY2FsZXJfdXNlciBpbmRleCAldS4ldVxuIiwKPiArCQkgICAgICBpbnRlbF9jcnRj LT5iYXNlLmJhc2UuaWQsIGludGVsX2NydGMtPnBpcGUsIFNLTF9DUlRDX0lOREVYKTsKPiArCj4g KwlyZXR1cm4gc2tsX3VwZGF0ZV9zY2FsZXIoc3RhdGUsIGZvcmNlX2RldGFjaCwgU0tMX0NSVENf SU5ERVgsCj4gKwkJJnN0YXRlLT5zY2FsZXJfc3RhdGUuc2NhbGVyX2lkLCBEUk1fUk9UQVRFXzAs Cj4gKwkJc3RhdGUtPnBpcGVfc3JjX3csIHN0YXRlLT5waXBlX3NyY19oLAo+ICsJCWFkanVzdGVk X21vZGUtPmhkaXNwbGF5LCBhZGp1c3RlZF9tb2RlLT5oZGlzcGxheSk7Cj4gK30KPiArCj4gKy8q Kgo+ICsgKiBza2xfdXBkYXRlX3NjYWxlcl9wbGFuZSAtIFN0YWdlcyB1cGRhdGUgdG8gc2NhbGVy IHN0YXRlIGZvciBhIGdpdmVuIHBsYW5lLgo+ICsgKgo+ICsgKiBAc3RhdGU6IGNydGMncyBzY2Fs ZXIgc3RhdGUKPiArICogQGludGVsX3BsYW5lOiBhZmZlY3RlZCBwbGFuZQo+ICsgKiBAcGxhbmVf c3RhdGU6IGF0b21pYyBwbGFuZSBzdGF0ZSB0byB1cGRhdGUKPiArICoKPiArICogUmV0dXJuCj4g KyAqICAgICAwIC0gc2NhbGVyX3VzYWdlIHVwZGF0ZWQgc3VjY2Vzc2Z1bGx5Cj4gKyAqICAgIGVy cm9yIC0gcmVxdWVzdGVkIHNjYWxpbmcgY2Fubm90IGJlIHN1cHBvcnRlZCBvciBvdGhlciBlcnJv ciBjb25kaXRpb24KPiArICovCj4gK2ludCBza2xfdXBkYXRlX3NjYWxlcl9wbGFuZShzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiArCQkJICAgIHN0cnVjdCBpbnRlbF9wbGFu ZSAqaW50ZWxfcGxhbmUsCj4gKwkJCSAgICBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5l X3N0YXRlKQo+ICt7Cj4gKwo+ICsJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19p bnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gKwlzdHJ1Y3QgZHJtX2ZyYW1lYnVm ZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5iYXNlLmZiOwo+ICsJaW50IHJldDsKPiArCj4gKwlib29s IGZvcmNlX2RldGFjaCA9ICFmYiB8fCAhcGxhbmVfc3RhdGUtPnZpc2libGU7Cj4gKwo+ICsJRFJN X0RFQlVHX0tNUygiVXBkYXRpbmcgc2NhbGVyIGZvciBbUExBTkU6JWRdIHNjYWxlcl91c2VyIGlu ZGV4ICV1LiV1XG4iLAo+ICsJCSAgICAgIGludGVsX3BsYW5lLT5iYXNlLmJhc2UuaWQsIGludGVs X2NydGMtPnBpcGUsCj4gKwkJICAgICAgZHJtX3BsYW5lX2luZGV4KCZpbnRlbF9wbGFuZS0+YmFz ZSkpOwo+ICsKPiArCXJldCA9IHNrbF91cGRhdGVfc2NhbGVyKGNydGNfc3RhdGUsIGZvcmNlX2Rl dGFjaCwKPiArCQkJCWRybV9wbGFuZV9pbmRleCgmaW50ZWxfcGxhbmUtPmJhc2UpLAo+ICsJCQkJ JnBsYW5lX3N0YXRlLT5zY2FsZXJfaWQsCj4gKwkJCQlwbGFuZV9zdGF0ZS0+YmFzZS5yb3RhdGlv biwKPiArCQkJCWRybV9yZWN0X3dpZHRoKCZwbGFuZV9zdGF0ZS0+c3JjKSA+PiAxNiwKPiArCQkJ CWRybV9yZWN0X2hlaWdodCgmcGxhbmVfc3RhdGUtPnNyYykgPj4gMTYsCj4gKwkJCQlkcm1fcmVj dF93aWR0aCgmcGxhbmVfc3RhdGUtPmRzdCksCj4gKwkJCQlkcm1fcmVjdF9oZWlnaHQoJnBsYW5l X3N0YXRlLT5kc3QpKTsKPiArCj4gKwlpZiAocmV0IHx8IHBsYW5lX3N0YXRlLT5zY2FsZXJfaWQg PCAwKQo+ICsJCXJldHVybiByZXQ7Cj4gKwo+ICAJLyogY2hlY2sgY29sb3JrZXkgKi8KPiAtCWlm IChXQVJOX09OKGludGVsX3BsYW5lICYmCj4gLQkJaW50ZWxfcGxhbmUtPmNrZXkuZmxhZ3MgIT0g STkxNV9TRVRfQ09MT1JLRVlfTk9ORSkpIHsKPiAtCQlEUk1fREVCVUdfS01TKCJQTEFORTolZCBz Y2FsaW5nICV1eCV1LT4ldXgldSBub3QgYWxsb3dlZCB3aXRoIGNvbG9ya2V5IiwKPiAtCQkJaW50 ZWxfcGxhbmUtPmJhc2UuYmFzZS5pZCwgc3JjX3csIHNyY19oLCBkc3RfdywgZHN0X2gpOwo+ICsJ aWYgKFdBUk5fT04oaW50ZWxfcGxhbmUtPmNrZXkuZmxhZ3MgIT0gSTkxNV9TRVRfQ09MT1JLRVlf Tk9ORSkpIHsKPiArCQlEUk1fREVCVUdfS01TKCJbUExBTkU6JWRdIHNjYWxpbmcgd2l0aCBjb2xv ciBrZXkgbm90IGFsbG93ZWQiLAo+ICsJCQlpbnRlbF9wbGFuZS0+YmFzZS5iYXNlLmlkKTsKPiAg CQlyZXR1cm4gLUVJTlZBTDsKPiAgCX0KPiAgCj4gIAkvKiBDaGVjayBzcmMgZm9ybWF0ICovCj4g LQlpZiAoaW50ZWxfcGxhbmUpIHsKPiAtCQlzd2l0Y2ggKGZiLT5waXhlbF9mb3JtYXQpIHsKPiAt CQljYXNlIERSTV9GT1JNQVRfUkdCNTY1Ogo+IC0JCWNhc2UgRFJNX0ZPUk1BVF9YQkdSODg4ODoK PiAtCQljYXNlIERSTV9GT1JNQVRfWFJHQjg4ODg6Cj4gLQkJY2FzZSBEUk1fRk9STUFUX0FCR1I4 ODg4Ogo+IC0JCWNhc2UgRFJNX0ZPUk1BVF9BUkdCODg4ODoKPiAtCQljYXNlIERSTV9GT1JNQVRf WFJHQjIxMDEwMTA6Cj4gLQkJY2FzZSBEUk1fRk9STUFUX1hCR1IyMTAxMDEwOgo+IC0JCWNhc2Ug RFJNX0ZPUk1BVF9ZVVlWOgo+IC0JCWNhc2UgRFJNX0ZPUk1BVF9ZVllVOgo+IC0JCWNhc2UgRFJN X0ZPUk1BVF9VWVZZOgo+IC0JCWNhc2UgRFJNX0ZPUk1BVF9WWVVZOgo+IC0JCQlicmVhazsKPiAt CQlkZWZhdWx0Ogo+IC0JCQlEUk1fREVCVUdfS01TKCJQTEFORTolZCBGQjolZCB1bnN1cHBvcnRl ZCBzY2FsaW5nIGZvcm1hdCAweCV4XG4iLAo+IC0JCQkJaW50ZWxfcGxhbmUtPmJhc2UuYmFzZS5p ZCwgZmItPmJhc2UuaWQsIGZiLT5waXhlbF9mb3JtYXQpOwo+IC0JCQlyZXR1cm4gLUVJTlZBTDsK PiAtCQl9Cj4gKwlzd2l0Y2ggKGZiLT5waXhlbF9mb3JtYXQpIHsKPiArCWNhc2UgRFJNX0ZPUk1B VF9SR0I1NjU6Cj4gKwljYXNlIERSTV9GT1JNQVRfWEJHUjg4ODg6Cj4gKwljYXNlIERSTV9GT1JN QVRfWFJHQjg4ODg6Cj4gKwljYXNlIERSTV9GT1JNQVRfQUJHUjg4ODg6Cj4gKwljYXNlIERSTV9G T1JNQVRfQVJHQjg4ODg6Cj4gKwljYXNlIERSTV9GT1JNQVRfWFJHQjIxMDEwMTA6Cj4gKwljYXNl IERSTV9GT1JNQVRfWEJHUjIxMDEwMTA6Cj4gKwljYXNlIERSTV9GT1JNQVRfWVVZVjoKPiArCWNh c2UgRFJNX0ZPUk1BVF9ZVllVOgo+ICsJY2FzZSBEUk1fRk9STUFUX1VZVlk6Cj4gKwljYXNlIERS TV9GT1JNQVRfVllVWToKPiArCQlicmVhazsKPiArCWRlZmF1bHQ6Cj4gKwkJRFJNX0RFQlVHX0tN UygiW1BMQU5FOiVkXSBGQjolZCB1bnN1cHBvcnRlZCBzY2FsaW5nIGZvcm1hdCAweCV4XG4iLAo+ ICsJCQlpbnRlbF9wbGFuZS0+YmFzZS5iYXNlLmlkLCBmYi0+YmFzZS5pZCwgZmItPnBpeGVsX2Zv cm1hdCk7Cj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gIAl9Cj4gIAo+IC0JLyogbWFyayB0aGlzIHBs YW5lIGFzIGEgc2NhbGVyIHVzZXIgaW4gY3J0Y19zdGF0ZSAqLwo+IC0Jc2NhbGVyX3N0YXRlLT5z Y2FsZXJfdXNlcnMgfD0gKDEgPDwgaWR4KTsKPiAtCURSTV9ERUJVR19LTVMoIiVzOiVkIHN0YWdl ZCBzY2FsaW5nIHJlcXVlc3QgZm9yICV1eCV1LT4ldXgldSAiCj4gLQkJImNydGNfc3RhdGUgPSAl cCBzY2FsZXJfdXNlcnMgPSAweCV4XG4iLAo+IC0JCWludGVsX3BsYW5lID8gIlBMQU5FIiA6ICJD UlRDIiwKPiAtCQlpbnRlbF9wbGFuZSA/IGludGVsX3BsYW5lLT5iYXNlLmJhc2UuaWQgOiBpbnRl bF9jcnRjLT5iYXNlLmJhc2UuaWQsCj4gLQkJc3JjX3csIHNyY19oLCBkc3RfdywgZHN0X2gsIGNy dGNfc3RhdGUsIHNjYWxlcl9zdGF0ZS0+c2NhbGVyX3VzZXJzKTsKPiAgCXJldHVybiAwOwo+ICB9 Cj4gIAo+IEBAIC00NDU2LDcgKzQ0NjgsNyBAQCBzdGF0aWMgdm9pZCBza3lsYWtlX3BmaXRfdXBk YXRlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLCBpbnQgZW5hYmxlKQo+ICAJRFJNX0RFQlVHX0tN UygiZm9yIGNydGNfc3RhdGUgPSAlcFxuIiwgY3J0Yy0+Y29uZmlnKTsKPiAgCj4gIAkvKiBUbyB1 cGRhdGUgcGZpdCwgZmlyc3QgdXBkYXRlIHNjYWxlciBzdGF0ZSAqLwo+IC0Jc2tsX3VwZGF0ZV9z Y2FsZXJfdXNlcnMoY3J0YywgY3J0Yy0+Y29uZmlnLCBOVUxMLCBOVUxMLCAhZW5hYmxlKTsKPiAr CXNrbF91cGRhdGVfc2NhbGVyX2NydGMoY3J0Yy0+Y29uZmlnLCAhZW5hYmxlKTsKPiAgCWludGVs X2F0b21pY19zZXR1cF9zY2FsZXJzKGNydGMtPmJhc2UuZGV2LCBjcnRjLCBjcnRjLT5jb25maWcp Owo+ICAJc2tsX2RldGFjaF9zY2FsZXJzKGNydGMpOwo+ICAJaWYgKCFlbmFibGUpCj4gQEAgLTEz NjQ3LDggKzEzNjU5LDkgQEAgaW50ZWxfY2hlY2tfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX3Bs YW5lICpwbGFuZSwKPiAgCX0KPiAgCj4gIAlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gOSkg ewo+IC0JCXJldCA9IHNrbF91cGRhdGVfc2NhbGVyX3VzZXJzKGludGVsX2NydGMsIGNydGNfc3Rh dGUsCj4gLQkJCXRvX2ludGVsX3BsYW5lKHBsYW5lKSwgc3RhdGUsIDApOwo+ICsJCXJldCA9IHNr bF91cGRhdGVfc2NhbGVyX3BsYW5lKGNydGNfc3RhdGUsCj4gKwkJCQkJICAgICAgdG9faW50ZWxf cGxhbmUocGxhbmUpLAo+ICsJCQkJCSAgICAgIHN0YXRlKTsKPiAgCQlpZiAocmV0KQo+ICAJCQly ZXR1cm4gcmV0Owo+ICAJfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+IGluZGV4IGZiM2Q3ZjE1 YzA0Yi4uZjVjZThmZGM4YmY5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RwLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gQEAgLTEz NzcsNyArMTM3Nyw3IEBAIGludGVsX2RwX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyLAo+ICAKPiAgCQlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gOSkgewo+ ICAJCQlpbnQgcmV0Owo+IC0JCQlyZXQgPSBza2xfdXBkYXRlX3NjYWxlcl91c2VycyhpbnRlbF9j cnRjLCBwaXBlX2NvbmZpZywgTlVMTCwgTlVMTCwgMCk7Cj4gKwkJCXJldCA9IHNrbF91cGRhdGVf c2NhbGVyX2NydGMocGlwZV9jb25maWcsIDApOwo+ICAJCQlpZiAocmV0KQo+ICAJCQkJcmV0dXJu IHJldDsKPiAgCQl9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Ry di5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBpbmRleCAyOWQ2MDMxYjE5 ZDguLmI3OGZhNDU3YTc4MCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gQEAgLTI2 Myw3ICsyNjMsNyBAQCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgewo+ICAJICogcGxhbmUgcmVx dWlyaW5nIGEgc2NhbGVyOgo+ICAJICogICAtIER1cmluZyBjaGVja19wbGFuZSwgaXRzIGJpdCBp cyBzZXQgaW4KPiAgCSAqICAgICBjcnRjX3N0YXRlLT5zY2FsZXJfc3RhdGUuc2NhbGVyX3VzZXJz IGJ5IGNhbGxpbmcgaGVscGVyIGZ1bmN0aW9uCj4gLQkgKiAgICAgdXBkYXRlX3NjYWxlcl91c2Vy cy4KPiArCSAqICAgICB1cGRhdGVfc2NhbGVyX3BsYW5lLgo+ICAJICogICAtIHNjYWxlcl9pZCBp bmRpY2F0ZXMgdGhlIHNjYWxlciBpdCBnb3QgYXNzaWduZWQuCj4gIAkgKgo+ICAJICogcGxhbmUg ZG9lc24ndCByZXF1aXJlIGEgc2NhbGVyOgo+IEBAIC0yNzEsNyArMjcxLDcgQEAgc3RydWN0IGlu dGVsX3BsYW5lX3N0YXRlIHsKPiAgCSAqICAgICBnb3QgZGlzYWJsZWQuCj4gIAkgKiAgIC0gRHVy aW5nIGNoZWNrX3BsYW5lLCBjb3JyZXNwb25kaW5nIGJpdCBpcyByZXNldCBpbgo+ICAJICogICAg IGNydGNfc3RhdGUtPnNjYWxlcl9zdGF0ZS5zY2FsZXJfdXNlcnMgYnkgY2FsbGluZyBoZWxwZXIg ZnVuY3Rpb24KPiAtCSAqICAgICB1cGRhdGVfc2NhbGVyX3VzZXJzLgo+ICsJICogICAgIHVwZGF0 ZV9zY2FsZXJfcGxhbmUuCj4gIAkgKi8KPiAgCWludCBzY2FsZXJfaWQ7Cj4gIH07Cj4gQEAgLTEx NDcsOSArMTE0NywxMSBAQCB2b2lkIGludGVsX21vZGVfZnJvbV9waXBlX2NvbmZpZyhzdHJ1Y3Qg ZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwKPiAgdm9pZCBpbnRlbF9jcnRjX3dhaXRfZm9yX3BlbmRp bmdfZmxpcHMoc3RydWN0IGRybV9jcnRjICpjcnRjKTsKPiAgdm9pZCBpbnRlbF9tb2Rlc2V0X3By ZWNsb3NlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSk7Cj4g IHZvaWQgc2tsX2RldGFjaF9zY2FsZXJzKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjKTsK PiAtaW50IHNrbF91cGRhdGVfc2NhbGVyX3VzZXJzKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9j cnRjLAo+IC0Jc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsIHN0cnVjdCBpbnRl bF9wbGFuZSAqaW50ZWxfcGxhbmUsCj4gLQlzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5l X3N0YXRlLCBpbnQgZm9yY2VfZGV0YWNoKTsKPiAraW50IHNrbF91cGRhdGVfc2NhbGVyX3BsYW5l KHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ICsJCQkgICAgc3RydWN0IGlu dGVsX3BsYW5lICppbnRlbF9wbGFuZSwKPiArCQkJICAgIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0 ZSAqcGxhbmVfc3RhdGUpOwo+ICsKPiAraW50IHNrbF91cGRhdGVfc2NhbGVyX2NydGMoc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsIGludCBmb3JjZV9kZXRhY2gpOwo+ICBpbnQg c2tsX21heF9zY2FsZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0Yywgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUpOwo+ICAKPiAgdW5zaWduZWQgbG9uZyBpbnRlbF9wbGFuZV9vYmpf b2Zmc2V0KHN0cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxhbmUsCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfc3ByaXRlLmMKPiBpbmRleCA4MTkzYTM1Mzg4ZDcuLmZlOTVmMjVmMDE5YSAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCj4gQEAgLTk0MSw4ICs5NDEsNyBAQCBmaW5p c2g6Cj4gIAl9Cj4gIAo+ICAJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDkpIHsKPiAtCQly ZXQgPSBza2xfdXBkYXRlX3NjYWxlcl91c2VycyhpbnRlbF9jcnRjLCBjcnRjX3N0YXRlLCBpbnRl bF9wbGFuZSwKPiAtCQkJc3RhdGUsIDApOwo+ICsJCXJldCA9IHNrbF91cGRhdGVfc2NhbGVyX3Bs YW5lKGNydGNfc3RhdGUsIGludGVsX3BsYW5lLCBzdGF0ZSk7Cj4gIAkJaWYgKHJldCkKPiAgCQkJ cmV0dXJuIHJldDsKPiAgCX0KPiAtLSAKPiAyLjEuMAo+IAo+IF9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IElu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgotLSAKTWF0dCBSb3BlcgpHcmFwaGljcyBT b2Z0d2FyZSBFbmdpbmVlcgpJb1RHIFBsYXRmb3JtIEVuYWJsaW5nICYgRGV2ZWxvcG1lbnQKSW50 ZWwgQ29ycG9yYXRpb24KKDkxNikgMzU2LTI3OTUKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK