From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 12/18] drm/i915: Reorganize intel_rotation_info Date: Mon, 25 Jan 2016 20:03:43 +0200 Message-ID: <20160125180343.GV23290@intel.com> References: <1453316739-13296-1-git-send-email-ville.syrjala@linux.intel.com> <1453316739-13296-13-git-send-email-ville.syrjala@linux.intel.com> <20160125173857.GG11240@phenom.ffwll.local> 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 4BA456E4F5 for ; Mon, 25 Jan 2016 10:05:01 -0800 (PST) Content-Disposition: inline In-Reply-To: <20160125173857.GG11240@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBKYW4gMjUsIDIwMTYgYXQgMDY6Mzg6NTdQTSArMDEwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBXZWQsIEphbiAyMCwgMjAxNiBhdCAwOTowNTozM1BNICswMjAwLCB2aWxsZS5z eXJqYWxhQGxpbnV4LmludGVsLmNvbSB3cm90ZToKPiA+IEZyb206IFZpbGxlIFN5cmrDpGzDpCA8 dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPiAKPiA+IFRocm93IG91dCBhIGJ1bmNo IG9mIHVubmVjZXNzYXJ5IHN0dWZmIGZyb20gc3RydWN0IGludGVsX3JvdGF0aW9uX2luZm8sCj4g PiBhbmQgcHVsbCBtb3N0IG9mIHRoZSByZW1haW5pbmcgc3R1ZmYgdG8gbGl2ZSB1bmRlciBhbiBh cnJheSBvZgo+ID4gcGVyLWNvbG9yIHBsYW5lIHN1Yi1zdHJ1Y3R1cmVzLgo+ID4gCj4gPiBXaGF0 IHN0aWxsIHJlbWFpbnMgb3V0c2lkZSB0aGUgc3ViLXN0cnVjdHVyZSB3aWxsIGJlIHJlb3JncmFu aXplZCBsYXRlcgo+ID4gYXMgd2VsbCwgYnV0IHRoYXQgcmVxdWlyZXMgbW9yZSB3b3JrIGVsc2V3 aGVyZSBzbyBsZWF2ZSBpdCBiZSBmb3Igbm93Lgo+ID4gCj4gPiBTaWduZWQtb2ZmLWJ5OiBWaWxs ZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ID4gLS0tCj4gPiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgIHwgMzUgKysrKysrKysrKysrKysr LS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9n dHQuaCAgfCAxMSArKysrLS0tLS0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYyB8IDI1ICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0KPiA+ICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgMSArCj4gPiAgNCBmaWxlcyBjaGFuZ2VkLCAzNSBp bnNlcnRpb25zKCspLCAzNyBkZWxldGlvbnMoLSkKPiA+IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fZ3R0LmMKPiA+IGluZGV4IGIzZDhlMmIwOTQ4Yy4uZjk1NDY4Y2QwNDcwIDEwMDY0NAo+ ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKPiA+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCj4gPiBAQCAtMzM2Nyw3ICszMzY3LDcg QEAgc3RhdGljIHN0cnVjdCBzZ190YWJsZSAqCj4gPiAgaW50ZWxfcm90YXRlX2ZiX29ial9wYWdl cyhzdHJ1Y3QgaW50ZWxfcm90YXRpb25faW5mbyAqcm90X2luZm8sCj4gPiAgCQkJICBzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQo+ID4gIHsKPiA+IC0JdW5zaWduZWQgaW50IHNpemVf cGFnZXMgPSByb3RfaW5mby0+c2l6ZSA+PiBQQUdFX1NISUZUOwo+ID4gKwl1bnNpZ25lZCBpbnQg c2l6ZV9wYWdlcyA9IHJvdF9pbmZvLT5wbGFuZVswXS53aWR0aCAqIHJvdF9pbmZvLT5wbGFuZVsw XS5oZWlnaHQ7Cj4gPiAgCXVuc2lnbmVkIGludCBzaXplX3BhZ2VzX3V2Owo+ID4gIAlzdHJ1Y3Qg c2dfcGFnZV9pdGVyIHNnX2l0ZXI7Cj4gPiAgCXVuc2lnbmVkIGxvbmcgaTsKPiA+IEBAIC0zMzg1 LDcgKzMzODUsNyBAQCBpbnRlbF9yb3RhdGVfZmJfb2JqX3BhZ2VzKHN0cnVjdCBpbnRlbF9yb3Rh dGlvbl9pbmZvICpyb3RfaW5mbywKPiA+ICAKPiA+ICAJLyogQWNjb3VudCBmb3IgVVYgcGxhbmUg d2l0aCBOVjEyLiAqLwo+ID4gIAlpZiAocm90X2luZm8tPnBpeGVsX2Zvcm1hdCA9PSBEUk1fRk9S TUFUX05WMTIpCj4gPiAtCQlzaXplX3BhZ2VzX3V2ID0gcm90X2luZm8tPnNpemVfdXYgPj4gUEFH RV9TSElGVDsKPiA+ICsJCXNpemVfcGFnZXNfdXYgPSByb3RfaW5mby0+cGxhbmVbMV0ud2lkdGgg KiByb3RfaW5mby0+cGxhbmVbMV0uaGVpZ2h0Owo+ID4gIAllbHNlCj4gPiAgCQlzaXplX3BhZ2Vz X3V2ID0gMDsKPiA+ICAKPiA+IEBAIC0zNDA3LDkgKzM0MDcsOSBAQCBpbnRlbF9yb3RhdGVfZmJf b2JqX3BhZ2VzKHN0cnVjdCBpbnRlbF9yb3RhdGlvbl9pbmZvICpyb3RfaW5mbywKPiA+ICAKPiA+ ICAJLyogUm90YXRlIHRoZSBwYWdlcy4gKi8KPiA+ICAJc2cgPSByb3RhdGVfcGFnZXMocGFnZV9h ZGRyX2xpc3QsIDAsCj4gPiAtCQkgICAgIHJvdF9pbmZvLT53aWR0aF9wYWdlcywgcm90X2luZm8t PmhlaWdodF9wYWdlcywKPiA+IC0JCSAgICAgcm90X2luZm8tPndpZHRoX3BhZ2VzLAo+ID4gLQkJ ICAgICBzdCwgTlVMTCk7Cj4gPiArCQkJICByb3RfaW5mby0+cGxhbmVbMF0ud2lkdGgsIHJvdF9p bmZvLT5wbGFuZVswXS5oZWlnaHQsCj4gPiArCQkJICByb3RfaW5mby0+cGxhbmVbMF0ud2lkdGgs Cj4gPiArCQkJICBzdCwgTlVMTCk7Cj4gPiAgCj4gPiAgCS8qIEFwcGVuZCB0aGUgVVYgcGxhbmUg aWYgTlYxMi4gKi8KPiA+ICAJaWYgKHJvdF9pbmZvLT5waXhlbF9mb3JtYXQgPT0gRFJNX0ZPUk1B VF9OVjEyKSB7Cj4gPiBAQCAtMzQyMSwxOCArMzQyMSwxNSBAQCBpbnRlbF9yb3RhdGVfZmJfb2Jq X3BhZ2VzKHN0cnVjdCBpbnRlbF9yb3RhdGlvbl9pbmZvICpyb3RfaW5mbywKPiA+ICAKPiA+ICAJ CXJvdF9pbmZvLT51dl9zdGFydF9wYWdlID0gdXZfc3RhcnRfcGFnZTsKPiA+ICAKPiA+IC0JCXJv dGF0ZV9wYWdlcyhwYWdlX2FkZHJfbGlzdCwgdXZfc3RhcnRfcGFnZSwKPiA+IC0JCQkgICAgIHJv dF9pbmZvLT53aWR0aF9wYWdlc191diwKPiA+IC0JCQkgICAgIHJvdF9pbmZvLT5oZWlnaHRfcGFn ZXNfdXYsCj4gPiAtCQkJICAgICByb3RfaW5mby0+d2lkdGhfcGFnZXNfdXYsCj4gPiArCQlyb3Rh dGVfcGFnZXMocGFnZV9hZGRyX2xpc3QsIHJvdF9pbmZvLT51dl9zdGFydF9wYWdlLAo+ID4gKwkJ CSAgICAgcm90X2luZm8tPnBsYW5lWzFdLndpZHRoLCByb3RfaW5mby0+cGxhbmVbMV0uaGVpZ2h0 LAo+ID4gKwkJCSAgICAgcm90X2luZm8tPnBsYW5lWzFdLndpZHRoLAo+ID4gIAkJCSAgICAgc3Qs IHNnKTsKPiA+ICAJfQo+ID4gIAo+ID4gLQlEUk1fREVCVUdfS01TKAo+ID4gLQkJICAgICAgIkNy ZWF0ZWQgcm90YXRlZCBwYWdlIG1hcHBpbmcgZm9yIG9iamVjdCBzaXplICV6dSAocGl0Y2g9JXUs IGhlaWdodD0ldSwgcGl4ZWxfZm9ybWF0PTB4JXgsICV1eCV1IHRpbGVzLCAldSBwYWdlcyAoJXUg cGxhbmUgMCkpLlxuIiwKPiA+IC0JCSAgICAgIG9iai0+YmFzZS5zaXplLCByb3RfaW5mby0+cGl0 Y2gsIHJvdF9pbmZvLT5oZWlnaHQsCj4gPiAtCQkgICAgICByb3RfaW5mby0+cGl4ZWxfZm9ybWF0 LCByb3RfaW5mby0+d2lkdGhfcGFnZXMsCj4gPiAtCQkgICAgICByb3RfaW5mby0+aGVpZ2h0X3Bh Z2VzLCBzaXplX3BhZ2VzICsgc2l6ZV9wYWdlc191diwKPiA+ICsJRFJNX0RFQlVHX0tNUygiQ3Jl YXRlZCByb3RhdGVkIHBhZ2UgbWFwcGluZyBmb3Igb2JqZWN0IHNpemUgJXp1ICgldXgldSB0aWxl cywgJXUgcGFnZXMgKCV1IHBsYW5lIDApKS5cbiIsCj4gPiArCQkgICAgICBvYmotPmJhc2Uuc2l6 ZSwgcm90X2luZm8tPnBsYW5lWzBdLndpZHRoLAo+ID4gKwkJICAgICAgcm90X2luZm8tPnBsYW5l WzBdLmhlaWdodCwgc2l6ZV9wYWdlcyArIHNpemVfcGFnZXNfdXYsCj4gPiAgCQkgICAgICBzaXpl X3BhZ2VzKTsKPiA+ICAKPiA+ICAJZHJtX2ZyZWVfbGFyZ2UocGFnZV9hZGRyX2xpc3QpOwo+ID4g QEAgLTM0NDQsMTEgKzM0NDEsOSBAQCBlcnJfc2dfYWxsb2M6Cj4gPiAgZXJyX3N0X2FsbG9jOgo+ ID4gIAlkcm1fZnJlZV9sYXJnZShwYWdlX2FkZHJfbGlzdCk7Cj4gPiAgCj4gPiAtCURSTV9ERUJV R19LTVMoCj4gPiAtCQkgICAgICAiRmFpbGVkIHRvIGNyZWF0ZSByb3RhdGVkIG1hcHBpbmcgZm9y IG9iamVjdCBzaXplICV6dSEgKCVkKSAocGl0Y2g9JXUsIGhlaWdodD0ldSwgcGl4ZWxfZm9ybWF0 PTB4JXgsICV1eCV1IHRpbGVzLCAldSBwYWdlcyAoJXUgcGxhbmUgMCkpXG4iLAo+ID4gLQkJICAg ICAgb2JqLT5iYXNlLnNpemUsIHJldCwgcm90X2luZm8tPnBpdGNoLCByb3RfaW5mby0+aGVpZ2h0 LAo+ID4gLQkJICAgICAgcm90X2luZm8tPnBpeGVsX2Zvcm1hdCwgcm90X2luZm8tPndpZHRoX3Bh Z2VzLAo+ID4gLQkJICAgICAgcm90X2luZm8tPmhlaWdodF9wYWdlcywgc2l6ZV9wYWdlcyArIHNp emVfcGFnZXNfdXYsCj4gPiArCURSTV9ERUJVR19LTVMoIkZhaWxlZCB0byBjcmVhdGUgcm90YXRl ZCBtYXBwaW5nIGZvciBvYmplY3Qgc2l6ZSAlenUhICglZCkgKCV1eCV1IHRpbGVzLCAldSBwYWdl cyAoJXUgcGxhbmUgMCkpXG4iLAo+ID4gKwkJICAgICAgb2JqLT5iYXNlLnNpemUsIHJldCwgcm90 X2luZm8tPnBsYW5lWzBdLndpZHRoLAo+ID4gKwkJICAgICAgcm90X2luZm8tPnBsYW5lWzBdLmhl aWdodCwgc2l6ZV9wYWdlcyArIHNpemVfcGFnZXNfdXYsCj4gPiAgCQkgICAgICBzaXplX3BhZ2Vz KTsKPiA+ICAJcmV0dXJuIEVSUl9QVFIocmV0KTsKPiA+ICB9Cj4gPiBAQCAtMzYwMCw3ICszNTk1 LDcgQEAgaTkxNV9nZ3R0X3ZpZXdfc2l6ZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2Jq LAo+ID4gIAlpZiAodmlldy0+dHlwZSA9PSBJOTE1X0dHVFRfVklFV19OT1JNQUwpIHsKPiA+ICAJ CXJldHVybiBvYmotPmJhc2Uuc2l6ZTsKPiA+ICAJfSBlbHNlIGlmICh2aWV3LT50eXBlID09IEk5 MTVfR0dUVF9WSUVXX1JPVEFURUQpIHsKPiA+IC0JCXJldHVybiB2aWV3LT5wYXJhbXMucm90YXRl ZC5zaXplOwo+ID4gKwkJcmV0dXJuIGludGVsX3JvdGF0aW9uX2luZm9fc2l6ZSgmdmlldy0+cGFy YW1zLnJvdGF0ZWQpIDw8IFBBR0VfU0hJRlQ7Cj4gCj4gSXNuJ3QgdGhpcyBhIGhpZGRlbiBidWdm aXg/IGJlZm9yZSB0aGlzIHdhcyBzaXplLCBub3cgaXQncyBzaXplK3NpemVfdXYuCgpIbW0uIEkg c3VwcG9zZS4gVEJIIGRpZG4ndCBldmVuIG5vdGljZSB0aGF0IG15c2VsZi4KCj4gCj4gSWYgeW91 IGFncmVlIHRoZW4gcGxlYXNlIGFkZCBhIGJsdXJiIHRvIHRoZSBjb21taXQgbWVzc2FnZSAob3Ig YmV0dGVyLAo+IHNwbGl0IHRoaXMgb3V0IGludG8gYSB0aW55IHByZXAgcGF0Y2gpLiBPdGhlcndp c2UgZGlkbid0IHNwb3QgYW55dGhpbmcsCj4gd2l0aCBlaXRoZXIgYXBwcm9hY2gKPiAKPiBSZXZp ZXdlZC1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KPiAKPiA+ICAJ fSBlbHNlIGlmICh2aWV3LT50eXBlID09IEk5MTVfR0dUVF9WSUVXX1BBUlRJQUwpIHsKPiA+ICAJ CXJldHVybiB2aWV3LT5wYXJhbXMucGFydGlhbC5zaXplIDw8IFBBR0VfU0hJRlQ7Cj4gPiAgCX0g ZWxzZSB7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0 LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaAo+ID4gaW5kZXggZjUyMGM5 MGU1Mzc3Li40YjhhMzc4YjlkM2YgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9ndHQuaAo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f Z3R0LmgKPiA+IEBAIC0xMzUsMTYgKzEzNSwxMyBAQCBlbnVtIGk5MTVfZ2d0dF92aWV3X3R5cGUg ewo+ID4gIH07Cj4gPiAgCj4gPiAgc3RydWN0IGludGVsX3JvdGF0aW9uX2luZm8gewo+ID4gLQl1 bnNpZ25lZCBpbnQgaGVpZ2h0Owo+ID4gLQl1bnNpZ25lZCBpbnQgcGl0Y2g7Cj4gPiAgCXVuc2ln bmVkIGludCB1dl9vZmZzZXQ7Cj4gPiAgCXVpbnQzMl90IHBpeGVsX2Zvcm1hdDsKPiA+IC0JdWlu dDY0X3QgZmJfbW9kaWZpZXI7Cj4gPiAtCXVuc2lnbmVkIGludCB3aWR0aF9wYWdlcywgaGVpZ2h0 X3BhZ2VzOwo+ID4gLQl1aW50NjRfdCBzaXplOwo+ID4gLQl1bnNpZ25lZCBpbnQgd2lkdGhfcGFn ZXNfdXYsIGhlaWdodF9wYWdlc191djsKPiA+IC0JdWludDY0X3Qgc2l6ZV91djsKPiA+ICAJdW5z aWduZWQgaW50IHV2X3N0YXJ0X3BhZ2U7Cj4gPiArCXN0cnVjdCB7Cj4gPiArCQkvKiB0aWxlcyAq Lwo+ID4gKwkJdW5zaWduZWQgaW50IHdpZHRoLCBoZWlnaHQ7Cj4gPiArCX0gcGxhbmVbMl07Cj4g PiAgfTsKPiA+ICAKPiA+ICBzdHJ1Y3QgaTkxNV9nZ3R0X3ZpZXcgewo+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gaW5kZXggMDg0YzhhZTM2NjhmLi44OTlmZmIxYTliMTAg MTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gQEAgLTIyOTEs NiArMjI5MSwxNyBAQCBpbnRlbF9mYl9hbGlnbl9oZWlnaHQoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgdW5zaWduZWQgaW50IGhlaWdodCwKPiA+ICAJcmV0dXJuIEFMSUdOKGhlaWdodCwgdGlsZV9o ZWlnaHQpOwo+ID4gIH0KPiA+ICAKPiA+ICt1bnNpZ25lZCBpbnQgaW50ZWxfcm90YXRpb25faW5m b19zaXplKGNvbnN0IHN0cnVjdCBpbnRlbF9yb3RhdGlvbl9pbmZvICpyb3RfaW5mbykKPiA+ICt7 Cj4gPiArCXVuc2lnbmVkIGludCBzaXplID0gMDsKPiA+ICsJaW50IGk7Cj4gPiArCj4gPiArCWZv ciAoaSA9IDAgOyBpIDwgQVJSQVlfU0laRShyb3RfaW5mby0+cGxhbmUpOyBpKyspCj4gPiArCQlz aXplICs9IHJvdF9pbmZvLT5wbGFuZVtpXS53aWR0aCAqIHJvdF9pbmZvLT5wbGFuZVtpXS5oZWln aHQ7Cj4gPiArCj4gPiArCXJldHVybiBzaXplOwo+ID4gK30KPiA+ICsKPiA+ICBzdGF0aWMgdm9p ZAo+ID4gIGludGVsX2ZpbGxfZmJfZ2d0dF92aWV3KHN0cnVjdCBpOTE1X2dndHRfdmlldyAqdmll dywKPiA+ICAJCQljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiA+IEBAIC0yMzA3 LDExICsyMzE4LDcgQEAgaW50ZWxfZmlsbF9mYl9nZ3R0X3ZpZXcoc3RydWN0IGk5MTVfZ2d0dF92 aWV3ICp2aWV3LAo+ID4gIAo+ID4gIAkqdmlldyA9IGk5MTVfZ2d0dF92aWV3X3JvdGF0ZWQ7Cj4g PiAgCj4gPiAtCWluZm8tPmhlaWdodCA9IGZiLT5oZWlnaHQ7Cj4gPiAtCWluZm8tPnBpeGVsX2Zv cm1hdCA9IGZiLT5waXhlbF9mb3JtYXQ7Cj4gPiAtCWluZm8tPnBpdGNoID0gZmItPnBpdGNoZXNb MF07Cj4gPiAgCWluZm8tPnV2X29mZnNldCA9IGZiLT5vZmZzZXRzWzFdOwo+ID4gLQlpbmZvLT5m Yl9tb2RpZmllciA9IGZiLT5tb2RpZmllclswXTsKPiA+ICAKPiA+ICAJdGlsZV9zaXplID0gaW50 ZWxfdGlsZV9zaXplKGRldl9wcml2KTsKPiA+ICAKPiA+IEBAIC0yMzE5LDE4ICsyMzI2LDE2IEBA IGludGVsX2ZpbGxfZmJfZ2d0dF92aWV3KHN0cnVjdCBpOTE1X2dndHRfdmlldyAqdmlldywKPiA+ ICAJaW50ZWxfdGlsZV9kaW1zKGRldl9wcml2LCAmdGlsZV93aWR0aCwgJnRpbGVfaGVpZ2h0LAo+ ID4gIAkJCWZiLT5tb2RpZmllclswXSwgY3BwKTsKPiA+ICAKPiA+IC0JaW5mby0+d2lkdGhfcGFn ZXMgPSBESVZfUk9VTkRfVVAoZmItPnBpdGNoZXNbMF0sIHRpbGVfd2lkdGggKiBjcHApOwo+ID4g LQlpbmZvLT5oZWlnaHRfcGFnZXMgPSBESVZfUk9VTkRfVVAoZmItPmhlaWdodCwgdGlsZV9oZWln aHQpOwo+ID4gLQlpbmZvLT5zaXplID0gaW5mby0+d2lkdGhfcGFnZXMgKiBpbmZvLT5oZWlnaHRf cGFnZXMgKiB0aWxlX3NpemU7Cj4gPiArCWluZm8tPnBsYW5lWzBdLndpZHRoID0gRElWX1JPVU5E X1VQKGZiLT5waXRjaGVzWzBdLCB0aWxlX3dpZHRoICogY3BwKTsKPiA+ICsJaW5mby0+cGxhbmVb MF0uaGVpZ2h0ID0gRElWX1JPVU5EX1VQKGZiLT5oZWlnaHQsIHRpbGVfaGVpZ2h0KTsKPiA+ICAK PiA+ICAJaWYgKGluZm8tPnBpeGVsX2Zvcm1hdCA9PSBEUk1fRk9STUFUX05WMTIpIHsKPiA+ICAJ CWNwcCA9IGRybV9mb3JtYXRfcGxhbmVfY3BwKGZiLT5waXhlbF9mb3JtYXQsIDEpOwo+ID4gIAkJ aW50ZWxfdGlsZV9kaW1zKGRldl9wcml2LCAmdGlsZV93aWR0aCwgJnRpbGVfaGVpZ2h0LAo+ID4g IAkJCQlmYi0+bW9kaWZpZXJbMV0sIGNwcCk7Cj4gPiAgCj4gPiAtCQlpbmZvLT53aWR0aF9wYWdl c191diA9IERJVl9ST1VORF9VUChmYi0+cGl0Y2hlc1sxXSwgdGlsZV93aWR0aCAqIGNwcCk7Cj4g PiAtCQlpbmZvLT5oZWlnaHRfcGFnZXNfdXYgPSBESVZfUk9VTkRfVVAoZmItPmhlaWdodCAvIDIs IHRpbGVfaGVpZ2h0KTsKPiA+IC0JCWluZm8tPnNpemVfdXYgPSBpbmZvLT53aWR0aF9wYWdlc191 diAqIGluZm8tPmhlaWdodF9wYWdlc191diAqIHRpbGVfc2l6ZTsKPiA+ICsJCWluZm8tPnBsYW5l WzFdLndpZHRoID0gRElWX1JPVU5EX1VQKGZiLT5waXRjaGVzWzFdLCB0aWxlX3dpZHRoICogY3Bw KTsKPiA+ICsJCWluZm8tPnBsYW5lWzFdLmhlaWdodCA9IERJVl9ST1VORF9VUChmYi0+aGVpZ2h0 IC8gMiwgdGlsZV9oZWlnaHQpOwo+ID4gIAl9Cj4gPiAgfQo+ID4gIAo+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmgKPiA+IGluZGV4IGI5ZWY5ZDVmMTA0MS4uZjI1MWYyNTNjYzk5IDEwMDY0NAo+ ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiBAQCAtMTA1OSw2ICsxMDU5LDcgQEAgdm9p ZCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9jbGVhbnVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdik7Cj4gPiAgCj4gPiAgLyogaW50ZWxfZGlzcGxheS5jICovCj4gPiAgZXh0ZXJuIGNv bnN0IHN0cnVjdCBkcm1fcGxhbmVfZnVuY3MgaW50ZWxfcGxhbmVfZnVuY3M7Cj4gPiArdW5zaWdu ZWQgaW50IGludGVsX3JvdGF0aW9uX2luZm9fc2l6ZShjb25zdCBzdHJ1Y3QgaW50ZWxfcm90YXRp b25faW5mbyAqcm90X2luZm8pOwo+ID4gIGJvb2wgaW50ZWxfaGFzX3BlbmRpbmdfZmJfdW5waW4o c3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gPiAgaW50IGludGVsX3BjaF9yYXdjbGsoc3RydWN0 IGRybV9kZXZpY2UgKmRldik7Cj4gPiAgaW50IGludGVsX2hyYXdjbGsoc3RydWN0IGRybV9kZXZp Y2UgKmRldik7Cj4gPiAtLSAKPiA+IDIuNC4xMAo+ID4gCj4gPiBfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ID4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+ ID4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ID4gaHR0cDovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo+IAo+IC0tIAo+IERhbmllbCBW ZXR0ZXIKPiBTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KPiBodHRwOi8vYmxv Zy5mZndsbC5jaAoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbCBPVEMKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK