From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 08/22] drm/i915: Pass 90/270 vs. 0/180 rotation info for intel_gen4_compute_page_offset() Date: Wed, 21 Oct 2015 14:36:34 +0300 Message-ID: <20151021113634.GA26517@intel.com> References: <1444840154-7804-1-git-send-email-ville.syrjala@linux.intel.com> <1444840154-7804-9-git-send-email-ville.syrjala@linux.intel.com> <20151021105334.GZ13786@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 007536EDE3 for ; Wed, 21 Oct 2015 04:36:38 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20151021105334.GZ13786@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 T24gV2VkLCBPY3QgMjEsIDIwMTUgYXQgMTI6NTM6MzRQTSArMDIwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBXZWQsIE9jdCAxNCwgMjAxNSBhdCAwNzoyOTowMFBNICswMzAwLCB2aWxsZS5z eXJqYWxhQGxpbnV4LmludGVsLmNvbSB3cm90ZToKPiA+IEZyb206IFZpbGxlIFN5cmrDpGzDpCA8 dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPiAKPiA+IFRoZSBwYWdlIGFsaWduZWQg c3VyZmFjZSBhZGRyZXNzIGNhbGN1bGF0aW9uIG5lZWRzIHRvIGtub3cgd2hpY2ggd2F5Cj4gPiB0 aGluZ3MgYXJlIHJvdGF0ZWQuIFRoZSBjb250cmFjdCBub3cgc2F5cyB0aGF0IHRoZSBjYWxsZXIg bXVzdCBwYXNzIHRoZQo+ID4gcm90YXRlIHgveSBjb29yZGluYXRlcywgYXMgd2VsbCBhcyB0aGUg dGlsZV9oZWlnaHQgYWxpZ25lZCBzdHJpZGUgaW4KPiA+IHRoZSB0aWxlX2hlaWdodCBkaXJlY3Rp b24uIFRoaXMgd2lsbCBtYWtlIGl0IGZhaXJseSBzaW1wbGUgdG8gZGVhbCB3aXRoCj4gPiA5MC8y NzAgZGVncmVlIHJvdGF0aW9uIG9uIFNLTCsgd2hlcmUgd2UgaGF2ZSB0byBkZWFsIHdpdGggdGhl IHJvdGF0ZWQKPiA+IHZpZXcgaW50byB0aGUgR1RULgo+ID4gCj4gPiB2MjogUGFzcyByb3RhdGlv biBpbnN0ZWFkIG9mIGJvb2wgZXZlbiB0aG91Z2h3ZSBvbmx5IGNhcmUgYWJvdXQgMC8xODAgdnMu IDkwLzI3MAo+ID4gCj4gPiBTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5 cmphbGFAbGludXguaW50ZWwuY29tPgo+ID4gLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jIHwgNjIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t Cj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgIHwgIDMgKy0KPiA+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYyAgfCAxNSArKysrKy0tLS0KPiA+ICAz IGZpbGVzIGNoYW5nZWQsIDY0IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQo+ID4gCj4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiBpbmRleCA3NWJlNjZiLi5iZDU1 ZDA2IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j Cj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+IEBAIC0y NDUxLDEzICsyNDUxLDUwIEBAIHN0YXRpYyB2b2lkIGludGVsX3VucGluX2ZiX29iaihzdHJ1Y3Qg ZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiA+ICAJaTkxNV9nZW1fb2JqZWN0X3VucGluX2Zyb21fZGlz cGxheV9wbGFuZShvYmosICZ2aWV3KTsKPiA+ICB9Cj4gPiAgCj4gPiAtLyogQ29tcHV0ZXMgdGhl IGxpbmVhciBvZmZzZXQgdG8gdGhlIGJhc2UgdGlsZSBhbmQgYWRqdXN0cyB4LCB5LiBieXRlcyBw ZXIgcGl4ZWwKPiA+IC0gKiBpcyBhc3N1bWVkIHRvIGJlIGEgcG93ZXItb2YtdHdvLiAqLwo+ID4g Ky8qCj4gPiArICogUmV0dXJuIHRoZSB0aWxlIGRpbWVuc2lvbnMgaW4gcGl4ZWwgdW5pdHMgbWF0 Y2hpbmcKPiA+ICsgKiB0aGUgc3BlY2lmaWVkIHJvdGF0aW9uIGFuZ2xlLgo+ID4gKyAqLwo+ID4g K3N0YXRpYyB2b2lkIGludGVsX3JvdGF0ZV90aWxlX2RpbXModW5zaWduZWQgaW50ICp0aWxlX3dp ZHRoLAo+ID4gKwkJCQkgICB1bnNpZ25lZCBpbnQgKnRpbGVfaGVpZ2h0LAo+ID4gKwkJCQkgICB1 bnNpZ25lZCBpbnQgKnBpdGNoLAo+ID4gKwkJCQkgICB1bnNpZ25lZCBpbnQgY3BwLAo+ID4gKwkJ CQkgICB1bnNpZ25lZCBpbnQgcm90YXRpb24pCj4gCj4gQSByb3RhdGlvbiBlbnVtIHdvdWxkIGJl IG5pY2UsIHNvIHRoYXQgd2UgY2FuIGVtcGxveSBzcGFyc2UgdG8gY2hlY2sgaXQuCj4gVGhhdCdk IHdvcmsgc2luY2Ugc3BhcnNlIHRyZWF0cyBlbnVtcyBhcyBiaXRmaWVsZHMsIGJ1dCB3ZSdkIG5l ZWQgdG8KPiBhZGQgbmFtZXMgZm9yIHRoZSBCSVQoRFJNX1JPVEFUSU9OXyopIHZhcmlhbnRzLiBK dXN0IGFuIGFzaWRlLgoKSSB3YXMgdGhpbmtpbmcgb2YgaW5jbHVkaW5nIHRoZSAnMTw8eCcgaW4g dGhlIGRlZmluZSBhbHJlYWR5IHNpbmNlIHRoZQpjdXJyZW50IHRoaW5nIGp1c3QgaW52aXRlcyBi dWdzIGFsbCBvdmVyLiBJIGd1ZXNzIG1ha2luZyBpdCBhbiBlbnVtIGF0CnRoZSBzYW1lIHRpbWUg c2hvdWxkIGJlIGVhc3kuCgo+IAo+ID4gK3sKPiA+ICsJaWYgKGludGVsX3JvdGF0aW9uXzkwX29y XzI3MChyb3RhdGlvbikpIHsKPiA+ICsJCVdBUk5fT04oKnBpdGNoICUgKnRpbGVfaGVpZ2h0KTsK PiA+ICsKPiA+ICsJCS8qIHBpeGVsIHVuaXRzIHBsZWFzZSAqLwo+ID4gKwkJKnRpbGVfd2lkdGgg Lz0gY3BwOwo+IAo+IE9rLCBzb21ldGhpbmcgZGF3bnMgb24gbWUgbm93IGFib3V0IHRpbGVfd2lk dGggLi4uIGl0J3MgaW4gYnl0ZXMsIEkKPiBzb21laG93IHRob3VnaHQgaXQncyBwaXhlbHMuIEFu ZCB0aGlzIGZ1bmN0aW9uIGRvaW5nIGEgYmVoaW5kLXRoZS1zY2VuZXMKPiBjb252ZXJzaW9ucyBm cm9tIGJ5dGVzIHRvIHBpeGVscyBpcyBhIGJpdCB0cmlja3kuCj4gCj4gU2hvdWxkIHdlIGhhdmUg c2VwYXJhdGUgdGlsZV9waXRjaCBhbmQgdGlsZV93aWR0aCB0byB1bmNvbmZ1c2UgdGhpcz8KPiBH ZW5lcmFsbHkgZm9vX3dpZHRoIGluIHRoZSBtb2Rlc2V0IGNvZGUgaXMgbW9zdGx5IHBpeGVscyAu Li4KClllYWgsIHRoaW5ncyBhcmUgYSBiaXQgdW5jbGVhciB3aXRoIGJ5dGVzIHZzLiBwaXhlbHMg c29tZXRpbWVzLiBJCnVzdWFsbHkgdGhpbmsgb2YgdGlsZSB3aWR0aCBhcyBieXRlcyBiZWNhdXNl IHRoZW4geW91IGRvbid0IGhhdmUgdG8KY29uc2lkZXIgdGhlIHBpeGVsIGZvcm1hdCAod2VsbCwg ZXhjZXB0IGZvciBZZi9ZcyB0aWxpbmcpLCBidXQgaGVyZQp3ZSB3YW50IGl0IGluIHBpeGVscyBp bnN0ZWFkLgoKSSdtIG5vdCBzdXJlIHRpbGVfcGl0Y2ggaXMgYSBnb29kIG5hbWUgYmVjdXNlIHRo ZW4gaXQgbWlnaHQgZ2V0CmNvbmZ1c2VkIHdpdGggdGhlIHBpdGNoIGZvciB0aGUgZmIgb3IgZmVu Y2UuIEJ1dCBJIGRvbid0IHJlYWxseSBoYXZlCmEgYmV0dGVyIG5hbWUgaW4gbWluZCBlaXRoZXIu Cgo+IAo+IFJldmlld2VkLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNo PiBvbiB0aGlzIG9uZSAoYW5kIEkKPiByZXRyYWN0IG15IGVhcmxpZXIgcmV2aWV3IG9uIHRpbGVf d2lkdGgpLCBidXQgSSdkIGxpa2Ugc29tZXRoaW5nIGNsZWFyZXIKPiBoZXJlIGluIHRoZSBlbmQg Li4uCj4gCj4gQ2hlZXJzLCBEYW5pZWwKPiAKPiA+ICsKPiA+ICsJCS8qCj4gPiArCQkgKiBDb29y ZGluYXRlIHNwYWNlIGlzIHJvdGF0ZWQsIG9yaWVudAo+ID4gKwkJICogb3VyIHRpbGUgZGltZW5z aW9ucyB0aGUgc2FtZSB3YXkKPiA+ICsJCSAqLwo+ID4gKwkJc3dhcCgqdGlsZV93aWR0aCwgKnRp bGVfaGVpZ2h0KTsKPiA+ICsJfSBlbHNlIHsKPiA+ICsJCVdBUk5fT04oKnBpdGNoICUgKnRpbGVf d2lkdGgpOwo+ID4gKwo+ID4gKwkJLyogcGl4ZWwgdW5pdHMgcGxlYXNlICovCj4gPiArCQkqdGls ZV93aWR0aCAvPSBjcHA7Cj4gPiArCQkqcGl0Y2ggLz0gY3BwOwo+ID4gKwl9Cj4gPiArfQo+ID4g Kwo+ID4gKy8qCj4gPiArICogQ29tcHV0ZXMgdGhlIGxpbmVhciBvZmZzZXQgdG8gdGhlIGJhc2Ug dGlsZSBhbmQgYWRqdXN0cwo+ID4gKyAqIHgsIHkuIGJ5dGVzIHBlciBwaXhlbCBpcyBhc3N1bWVk IHRvIGJlIGEgcG93ZXItb2YtdHdvLgo+ID4gKyAqCj4gPiArICogSW4gdGhlIDkwLzI3MCByb3Rh dGVkIGNhc2UsIHggYW5kIHkgYXJlIGFzc3VtZWQKPiA+ICsgKiB0byBiZSBhbHJlYWR5IHJvdGF0 ZWQgdG8gbWF0Y2ggdGhlIHJvdGF0ZWQgR1RUIHZpZXcsIGFuZAo+ID4gKyAqIHBpdGNoIGlzIHRo ZSB0aWxlX2hlaWdodCBhbGlnbmVkIGZyYW1lYnVmZmVyIGhlaWdodC4KPiA+ICsgKi8KPiA+ICB1 bnNpZ25lZCBsb25nIGludGVsX2NvbXB1dGVfcGFnZV9vZmZzZXQoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAo+ID4gIAkJCQkJaW50ICp4LCBpbnQgKnksCj4gPiAgCQkJCQl1aW50 NjRfdCBmYl9tb2RpZmllciwKPiA+ICAJCQkJCXVuc2lnbmVkIGludCBjcHAsCj4gPiAtCQkJCQl1 bnNpZ25lZCBpbnQgcGl0Y2gpCj4gPiArCQkJCQl1bnNpZ25lZCBpbnQgcGl0Y2gsCj4gPiArCQkJ CQl1bnNpZ25lZCBpbnQgcm90YXRpb24pCj4gPiAgewo+ID4gIAlpZiAoZmJfbW9kaWZpZXIgIT0g RFJNX0ZPUk1BVF9NT0RfTk9ORSkgewo+ID4gIAkJdW5zaWduZWQgaW50IHRpbGVfc2l6ZSwgdGls ZV93aWR0aCwgdGlsZV9oZWlnaHQ7Cj4gPiBAQCAtMjQ2NywxMyArMjUwNCwxNiBAQCB1bnNpZ25l ZCBsb25nIGludGVsX2NvbXB1dGVfcGFnZV9vZmZzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAo+ID4gIAkJdGlsZV93aWR0aCA9IGludGVsX3RpbGVfd2lkdGgoZGV2X3ByaXYs IGZiX21vZGlmaWVyLCBjcHApOwo+ID4gIAkJdGlsZV9oZWlnaHQgPSB0aWxlX3NpemUgLyB0aWxl X3dpZHRoOwo+ID4gIAo+ID4gKwkJaW50ZWxfcm90YXRlX3RpbGVfZGltcygmdGlsZV93aWR0aCwg JnRpbGVfaGVpZ2h0LAo+ID4gKwkJCQkgICAgICAgJnBpdGNoLCBjcHAsIHJvdGF0aW9uKTsKPiA+ ICsKPiA+ICAJCXRpbGVfcm93cyA9ICp5IC8gdGlsZV9oZWlnaHQ7Cj4gPiAgCQkqeSAlPSB0aWxl X2hlaWdodDsKPiA+ICAKPiA+IC0JCXRpbGVzID0gKnggLyAodGlsZV93aWR0aC9jcHApOwo+ID4g LQkJKnggJT0gdGlsZV93aWR0aC9jcHA7Cj4gPiArCQl0aWxlcyA9ICp4IC8gdGlsZV93aWR0aDsK PiA+ICsJCSp4ICU9IHRpbGVfd2lkdGg7Cj4gPiAgCj4gPiAtCQlyZXR1cm4gdGlsZV9yb3dzICog cGl0Y2ggKiB0aWxlX2hlaWdodCArIHRpbGVzICogdGlsZV9zaXplOwo+ID4gKwkJcmV0dXJuICh0 aWxlX3Jvd3MgKiAocGl0Y2ggLyB0aWxlX3dpZHRoKSArIHRpbGVzKSAqIHRpbGVfc2l6ZTsKPiA+ ICAJfSBlbHNlIHsKPiA+ICAJCXVuc2lnbmVkIGludCBhbGlnbm1lbnQgPSBpbnRlbF9saW5lYXJf YWxpZ25tZW50KGRldl9wcml2KSAtIDE7Cj4gPiAgCQl1bnNpZ25lZCBpbnQgb2Zmc2V0Owo+ID4g QEAgLTI2ODUsNiArMjcyNSw3IEBAIHN0YXRpYyB2b2lkIGk5eHhfdXBkYXRlX3ByaW1hcnlfcGxh bmUoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ID4gIAlib29sIHZpc2libGUgPSB0b19pbnRlbF9w bGFuZV9zdGF0ZShwcmltYXJ5LT5zdGF0ZSktPnZpc2libGU7Cj4gPiAgCXN0cnVjdCBkcm1faTkx NV9nZW1fb2JqZWN0ICpvYmo7Cj4gPiAgCWludCBwbGFuZSA9IGludGVsX2NydGMtPnBsYW5lOwo+ ID4gKwl1bnNpZ25lZCBpbnQgcm90YXRpb247Cj4gPiAgCXVuc2lnbmVkIGxvbmcgbGluZWFyX29m ZnNldDsKPiA+ICAJdTMyIGRzcGNudHI7Cj4gPiAgCXUzMiByZWcgPSBEU1BDTlRSKHBsYW5lKTsK PiA+IEBAIC0yNzA0LDYgKzI3NDUsNyBAQCBzdGF0aWMgdm9pZCBpOXh4X3VwZGF0ZV9wcmltYXJ5 X3BsYW5lKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiA+ICAJaWYgKFdBUk5fT04ob2JqID09IE5V TEwpKQo+ID4gIAkJcmV0dXJuOwo+ID4gIAo+ID4gKwlyb3RhdGlvbiA9IGNydGMtPnByaW1hcnkt PnN0YXRlLT5yb3RhdGlvbjsKPiA+ICAJcGl4ZWxfc2l6ZSA9IGRybV9mb3JtYXRfcGxhbmVfY3Bw KGZiLT5waXhlbF9mb3JtYXQsIDApOwo+ID4gIAo+ID4gIAlkc3BjbnRyID0gRElTUFBMQU5FX0dB TU1BX0VOQUJMRTsKPiA+IEBAIC0yNzY4LDcgKzI4MTAsNyBAQCBzdGF0aWMgdm9pZCBpOXh4X3Vw ZGF0ZV9wcmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiA+ICAJCWludGVsX2Ny dGMtPmRzcGFkZHJfb2Zmc2V0ID0KPiA+ICAJCQlpbnRlbF9jb21wdXRlX3BhZ2Vfb2Zmc2V0KGRl dl9wcml2LCAmeCwgJnksCj4gPiAgCQkJCQkJICBmYi0+bW9kaWZpZXJbMF0sIHBpeGVsX3NpemUs Cj4gPiAtCQkJCQkJICBmYi0+cGl0Y2hlc1swXSk7Cj4gPiArCQkJCQkJICBmYi0+cGl0Y2hlc1sw XSwgcm90YXRpb24pOwo+ID4gIAkJbGluZWFyX29mZnNldCAtPSBpbnRlbF9jcnRjLT5kc3BhZGRy X29mZnNldDsKPiA+ICAJfSBlbHNlIHsKPiA+ICAJCWludGVsX2NydGMtPmRzcGFkZHJfb2Zmc2V0 ID0gbGluZWFyX29mZnNldDsKPiA+IEBAIC0yODE0LDYgKzI4NTYsNyBAQCBzdGF0aWMgdm9pZCBp cm9ubGFrZV91cGRhdGVfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gPiAg CWJvb2wgdmlzaWJsZSA9IHRvX2ludGVsX3BsYW5lX3N0YXRlKHByaW1hcnktPnN0YXRlKS0+dmlz aWJsZTsKPiA+ICAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKPiA+ICAJaW50IHBs YW5lID0gaW50ZWxfY3J0Yy0+cGxhbmU7Cj4gPiArCXVuc2lnbmVkIGludCByb3RhdGlvbjsKPiA+ ICAJdW5zaWduZWQgbG9uZyBsaW5lYXJfb2Zmc2V0Owo+ID4gIAl1MzIgZHNwY250cjsKPiA+ICAJ dTMyIHJlZyA9IERTUENOVFIocGxhbmUpOwo+ID4gQEAgLTI4MzAsNiArMjg3Myw3IEBAIHN0YXRp YyB2b2lkIGlyb25sYWtlX3VwZGF0ZV9wcmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1fY3J0YyAqY3J0 YywKPiA+ICAJaWYgKFdBUk5fT04ob2JqID09IE5VTEwpKQo+ID4gIAkJcmV0dXJuOwo+ID4gIAo+ ID4gKwlyb3RhdGlvbiA9IGNydGMtPnByaW1hcnktPnN0YXRlLT5yb3RhdGlvbjsKPiA+ICAJcGl4 ZWxfc2l6ZSA9IGRybV9mb3JtYXRfcGxhbmVfY3BwKGZiLT5waXhlbF9mb3JtYXQsIDApOwo+ID4g IAo+ID4gIAlkc3BjbnRyID0gRElTUFBMQU5FX0dBTU1BX0VOQUJMRTsKPiA+IEBAIC0yODcyLDkg KzI5MTYsOSBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV91cGRhdGVfcHJpbWFyeV9wbGFuZShzdHJ1 Y3QgZHJtX2NydGMgKmNydGMsCj4gPiAgCWludGVsX2NydGMtPmRzcGFkZHJfb2Zmc2V0ID0KPiA+ ICAJCWludGVsX2NvbXB1dGVfcGFnZV9vZmZzZXQoZGV2X3ByaXYsICZ4LCAmeSwKPiA+ICAJCQkJ CSAgZmItPm1vZGlmaWVyWzBdLCBwaXhlbF9zaXplLAo+ID4gLQkJCQkJICBmYi0+cGl0Y2hlc1sw XSk7Cj4gPiArCQkJCQkgIGZiLT5waXRjaGVzWzBdLCByb3RhdGlvbik7Cj4gPiAgCWxpbmVhcl9v ZmZzZXQgLT0gaW50ZWxfY3J0Yy0+ZHNwYWRkcl9vZmZzZXQ7Cj4gPiAtCWlmIChjcnRjLT5wcmlt YXJ5LT5zdGF0ZS0+cm90YXRpb24gPT0gQklUKERSTV9ST1RBVEVfMTgwKSkgewo+ID4gKwlpZiAo cm90YXRpb24gPT0gQklUKERSTV9ST1RBVEVfMTgwKSkgewo+ID4gIAkJZHNwY250ciB8PSBESVNQ UExBTkVfUk9UQVRFXzE4MDsKPiA+ICAKPiA+ICAJCWlmICghSVNfSEFTV0VMTChkZXYpICYmICFJ U19CUk9BRFdFTEwoZGV2KSkgewo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+IGluZGV4 IGExMmFjOTUuLmVkNDdjYTMgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaAo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+ IEBAIC0xMTM5LDcgKzExMzksOCBAQCB1bnNpZ25lZCBsb25nIGludGVsX2NvbXB1dGVfcGFnZV9v ZmZzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gIAkJCQkJaW50ICp4 LCBpbnQgKnksCj4gPiAgCQkJCQl1aW50NjRfdCBmYl9tb2RpZmllciwKPiA+ICAJCQkJCXVuc2ln bmVkIGludCBjcHAsCj4gPiAtCQkJCQl1bnNpZ25lZCBpbnQgcGl0Y2gpOwo+ID4gKwkJCQkJdW5z aWduZWQgaW50IHBpdGNoLAo+ID4gKwkJCQkJdW5zaWduZWQgaW50IHJvdGF0aW9uKTsKPiA+ICB2 b2lkIGludGVsX3ByZXBhcmVfcmVzZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gPiAgdm9p ZCBpbnRlbF9maW5pc2hfcmVzZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gPiAgdm9pZCBo c3dfZW5hYmxlX3BjOChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPiA+IGluZGV4IDY2MTRhZGIuLjhlYWViY2UgMTAw NjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+ID4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPiA+IEBAIC0zNTQsNiArMzU0 LDcgQEAgdmx2X3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpkcGxhbmUsIHN0cnVjdCBk cm1fY3J0YyAqY3J0YywKPiA+ICAJaW50IHBpcGUgPSBpbnRlbF9wbGFuZS0+cGlwZTsKPiA+ICAJ aW50IHBsYW5lID0gaW50ZWxfcGxhbmUtPnBsYW5lOwo+ID4gIAl1MzIgc3ByY3RsOwo+ID4gKwl1 bnNpZ25lZCBpbnQgcm90YXRpb24gPSBkcGxhbmUtPnN0YXRlLT5yb3RhdGlvbjsKPiA+ICAJdW5z aWduZWQgbG9uZyBzcHJzdXJmX29mZnNldCwgbGluZWFyX29mZnNldDsKPiA+ICAJaW50IHBpeGVs X3NpemUgPSBkcm1fZm9ybWF0X3BsYW5lX2NwcChmYi0+cGl4ZWxfZm9ybWF0LCAwKTsKPiA+ICAJ Y29uc3Qgc3RydWN0IGRybV9pbnRlbF9zcHJpdGVfY29sb3JrZXkgKmtleSA9Cj4gPiBAQCAtNDIy LDEwICs0MjMsMTAgQEAgdmx2X3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpkcGxhbmUs IHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiA+ICAJbGluZWFyX29mZnNldCA9IHkgKiBmYi0+cGl0 Y2hlc1swXSArIHggKiBwaXhlbF9zaXplOwo+ID4gIAlzcHJzdXJmX29mZnNldCA9IGludGVsX2Nv bXB1dGVfcGFnZV9vZmZzZXQoZGV2X3ByaXYsICZ4LCAmeSwKPiA+ICAJCQkJCQkgICBmYi0+bW9k aWZpZXJbMF0sIHBpeGVsX3NpemUsCj4gPiAtCQkJCQkJICAgZmItPnBpdGNoZXNbMF0pOwo+ID4g KwkJCQkJCSAgIGZiLT5waXRjaGVzWzBdLCByb3RhdGlvbik7Cj4gPiAgCWxpbmVhcl9vZmZzZXQg LT0gc3Byc3VyZl9vZmZzZXQ7Cj4gPiAgCj4gPiAtCWlmIChkcGxhbmUtPnN0YXRlLT5yb3RhdGlv biA9PSBCSVQoRFJNX1JPVEFURV8xODApKSB7Cj4gPiArCWlmIChyb3RhdGlvbiA9PSBCSVQoRFJN X1JPVEFURV8xODApKSB7Cj4gPiAgCQlzcHJjdGwgfD0gU1BfUk9UQVRFXzE4MDsKPiA+ICAKPiA+ ICAJCXggKz0gc3JjX3c7Cj4gPiBAQCAtNDkxLDYgKzQ5Miw3IEBAIGl2Yl91cGRhdGVfcGxhbmUo c3RydWN0IGRybV9wbGFuZSAqcGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiA+ICAJc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IGludGVsX2ZiX29iaihmYik7Cj4gPiAgCWVu dW0gcGlwZSBwaXBlID0gaW50ZWxfcGxhbmUtPnBpcGU7Cj4gPiAgCXUzMiBzcHJjdGwsIHNwcnNj YWxlID0gMDsKPiA+ICsJdW5zaWduZWQgaW50IHJvdGF0aW9uID0gcGxhbmUtPnN0YXRlLT5yb3Rh dGlvbjsKPiA+ICAJdW5zaWduZWQgbG9uZyBzcHJzdXJmX29mZnNldCwgbGluZWFyX29mZnNldDsK PiA+ICAJaW50IHBpeGVsX3NpemUgPSBkcm1fZm9ybWF0X3BsYW5lX2NwcChmYi0+cGl4ZWxfZm9y bWF0LCAwKTsKPiA+ICAJY29uc3Qgc3RydWN0IGRybV9pbnRlbF9zcHJpdGVfY29sb3JrZXkgKmtl eSA9Cj4gPiBAQCAtNTU0LDEwICs1NTYsMTAgQEAgaXZiX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJt X3BsYW5lICpwbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ID4gIAlsaW5lYXJfb2Zmc2V0 ID0geSAqIGZiLT5waXRjaGVzWzBdICsgeCAqIHBpeGVsX3NpemU7Cj4gPiAgCXNwcnN1cmZfb2Zm c2V0ID0gaW50ZWxfY29tcHV0ZV9wYWdlX29mZnNldChkZXZfcHJpdiwgJngsICZ5LAo+ID4gIAkJ CQkJCSAgIGZiLT5tb2RpZmllclswXSwgcGl4ZWxfc2l6ZSwKPiA+IC0JCQkJCQkgICBmYi0+cGl0 Y2hlc1swXSk7Cj4gPiArCQkJCQkJICAgZmItPnBpdGNoZXNbMF0sIHJvdGF0aW9uKTsKPiA+ICAJ bGluZWFyX29mZnNldCAtPSBzcHJzdXJmX29mZnNldDsKPiA+ICAKPiA+IC0JaWYgKHBsYW5lLT5z dGF0ZS0+cm90YXRpb24gPT0gQklUKERSTV9ST1RBVEVfMTgwKSkgewo+ID4gKwlpZiAocm90YXRp b24gPT0gQklUKERSTV9ST1RBVEVfMTgwKSkgewo+ID4gIAkJc3ByY3RsIHw9IFNQUklURV9ST1RB VEVfMTgwOwo+ID4gIAo+ID4gIAkJLyogSFNXIGFuZCBCRFcgZG9lcyB0aGlzIGF1dG9tYWdpY2Fs bHkgaW4gaGFyZHdhcmUgKi8KPiA+IEBAIC02MzEsNiArNjMzLDcgQEAgaWxrX3VwZGF0ZV9wbGFu ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ID4gIAlz dHJ1Y3QgaW50ZWxfcGxhbmUgKmludGVsX3BsYW5lID0gdG9faW50ZWxfcGxhbmUocGxhbmUpOwo+ ID4gIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gaW50ZWxfZmJfb2JqKGZiKTsK PiA+ICAJaW50IHBpcGUgPSBpbnRlbF9wbGFuZS0+cGlwZTsKPiA+ICsJdW5zaWduZWQgaW50IHJv dGF0aW9uID0gcGxhbmUtPnN0YXRlLT5yb3RhdGlvbjsKPiA+ICAJdW5zaWduZWQgbG9uZyBkdnNz dXJmX29mZnNldCwgbGluZWFyX29mZnNldDsKPiA+ICAJdTMyIGR2c2NudHIsIGR2c3NjYWxlOwo+ ID4gIAlpbnQgcGl4ZWxfc2l6ZSA9IGRybV9mb3JtYXRfcGxhbmVfY3BwKGZiLT5waXhlbF9mb3Jt YXQsIDApOwo+ID4gQEAgLTY5MSwxMCArNjk0LDEwIEBAIGlsa191cGRhdGVfcGxhbmUoc3RydWN0 IGRybV9wbGFuZSAqcGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiA+ICAJbGluZWFyX29m ZnNldCA9IHkgKiBmYi0+cGl0Y2hlc1swXSArIHggKiBwaXhlbF9zaXplOwo+ID4gIAlkdnNzdXJm X29mZnNldCA9IGludGVsX2NvbXB1dGVfcGFnZV9vZmZzZXQoZGV2X3ByaXYsICZ4LCAmeSwKPiA+ ICAJCQkJCQkgICBmYi0+bW9kaWZpZXJbMF0sIHBpeGVsX3NpemUsCj4gPiAtCQkJCQkJICAgZmIt PnBpdGNoZXNbMF0pOwo+ID4gKwkJCQkJCSAgIGZiLT5waXRjaGVzWzBdLCByb3RhdGlvbik7Cj4g PiAgCWxpbmVhcl9vZmZzZXQgLT0gZHZzc3VyZl9vZmZzZXQ7Cj4gPiAgCj4gPiAtCWlmIChwbGFu ZS0+c3RhdGUtPnJvdGF0aW9uID09IEJJVChEUk1fUk9UQVRFXzE4MCkpIHsKPiA+ICsJaWYgKHJv dGF0aW9uID09IEJJVChEUk1fUk9UQVRFXzE4MCkpIHsKPiA+ICAJCWR2c2NudHIgfD0gRFZTX1JP VEFURV8xODA7Cj4gPiAgCj4gPiAgCQl4ICs9IHNyY193Owo+ID4gLS0gCj4gPiAyLjQuOQo+ID4g Cj4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ID4g SW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+ID4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y Zwo+ID4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeAo+IAo+IC0tIAo+IERhbmllbCBWZXR0ZXIKPiBTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwg Q29ycG9yYXRpb24KPiBodHRwOi8vYmxvZy5mZndsbC5jaAoKLS0gClZpbGxlIFN5cmrDpGzDpApJ bnRlbCBPVEMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K SW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK