From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: Re: [PATCH 1/2] drm/rect: Add midpoint to scale calculation functions Date: Tue, 24 Apr 2018 17:11:37 +0200 Message-ID: References: <20180424113633.16140-1-maarten.lankhorst@linux.intel.com> <20180424152116.GQ13908@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180424152116.GQ13908@intel.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= Cc: intel-gfx@lists.freedesktop.org, Vidya Srinivas , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T3AgMjQtMDQtMTggb20gMTc6MjEgc2NocmVlZiBWaWxsZSBTeXJqw6Rsw6Q6Cj4gT24gVHVlLCBB cHIgMjQsIDIwMTggYXQgMDE6MzY6MzJQTSArMDIwMCwgTWFhcnRlbiBMYW5raG9yc3Qgd3JvdGU6 Cj4+IFdoZW4gY2FsY3VsYXRpbmcgbGltaXRzIHdlIHdhbnQgdG8gYmUgYXMgcGVzc2ltaXN0aWMg YXMgcG9zc2libGUsCj4+IHNvIHdlIGhhdmUgdG8gZXhwbGljaXRseSBzYXkgd2hldGhlciB3ZSB3 YW50IHRvIHJvdW5kIHVwIG9yIGRvd24KPj4gdG8gYWNjdXJhdGVseSBjYWxjdWxhdGUgd2hldGhl ciB3ZSBhcmUgYmVsb3cgbWluX3NjYWxlIG9yIGFib3ZlCj4+IG1heF9zY2FsZS4KPj4KPj4gU2ln bmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4Lmlu dGVsLmNvbT4KPj4gLS0tCj4+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYyB8 ICA0ICstLQo+PiAgZHJpdmVycy9ncHUvZHJtL2RybV9yZWN0LmMgICAgICAgICAgfCAzOSArKysr KysrKysrKysrKysrKysrKystLS0tLS0tLQo+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf c3ByaXRlLmMgfCAgOCArKystLS0KPj4gIGluY2x1ZGUvZHJtL2RybV9yZWN0LmggICAgICAgICAg ICAgIHwgIDggKysrLS0tCj4+ICA0IGZpbGVzIGNoYW5nZWQsIDM5IGluc2VydGlvbnMoKyksIDIw IGRlbGV0aW9ucygtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9t aWNfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwo+PiBpbmRl eCA5Y2IyMjA5ZjZmYzguLjc2NDMyMDJiZmNmNyAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2RybV9hdG9taWNfaGVscGVyLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9t aWNfaGVscGVyLmMKPj4gQEAgLTc1NCw4ICs3NTQsOCBAQCBpbnQgZHJtX2F0b21pY19oZWxwZXJf Y2hlY2tfcGxhbmVfc3RhdGUoc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUsCj4+ ICAJZHJtX3JlY3Rfcm90YXRlKHNyYywgZmItPndpZHRoIDw8IDE2LCBmYi0+aGVpZ2h0IDw8IDE2 LCByb3RhdGlvbik7Cj4+ICAKPj4gIAkvKiBDaGVjayBzY2FsaW5nICovCj4+IC0JaHNjYWxlID0g ZHJtX3JlY3RfY2FsY19oc2NhbGUoc3JjLCBkc3QsIG1pbl9zY2FsZSwgbWF4X3NjYWxlKTsKPj4g LQl2c2NhbGUgPSBkcm1fcmVjdF9jYWxjX3ZzY2FsZShzcmMsIGRzdCwgbWluX3NjYWxlLCBtYXhf c2NhbGUpOwo+PiArCWhzY2FsZSA9IGRybV9yZWN0X2NhbGNfaHNjYWxlKHNyYywgZHN0LCBtaW5f c2NhbGUsIDE8PDE2LCBtYXhfc2NhbGUpOwo+PiArCXZzY2FsZSA9IGRybV9yZWN0X2NhbGNfdnNj YWxlKHNyYywgZHN0LCBtaW5fc2NhbGUsIDE8PDE2LCBtYXhfc2NhbGUpOwo+PiAgCWlmIChoc2Nh bGUgPCAwIHx8IHZzY2FsZSA8IDApIHsKPj4gIAkJRFJNX0RFQlVHX0tNUygiSW52YWxpZCBzY2Fs aW5nIG9mIHBsYW5lXG4iKTsKPj4gIAkJZHJtX3JlY3RfZGVidWdfcHJpbnQoInNyYzogIiwgJnBs YW5lX3N0YXRlLT5zcmMsIHRydWUpOwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Ry bV9yZWN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3JlY3QuYwo+PiBpbmRleCA5ODE3YzE0NDVi YTkuLjIwOTM0NzRjMjY4YyAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9yZWN0 LmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9yZWN0LmMKPj4gQEAgLTk2LDcgKzk2LDcg QEAgYm9vbCBkcm1fcmVjdF9jbGlwX3NjYWxlZChzdHJ1Y3QgZHJtX3JlY3QgKnNyYywgc3RydWN0 IGRybV9yZWN0ICpkc3QsCj4+ICB9Cj4+ICBFWFBPUlRfU1lNQk9MKGRybV9yZWN0X2NsaXBfc2Nh bGVkKTsKPj4gIAo+PiAtc3RhdGljIGludCBkcm1fY2FsY19zY2FsZShpbnQgc3JjLCBpbnQgZHN0 KQo+PiArc3RhdGljIGludCBkcm1fY2FsY19zY2FsZShpbnQgc3JjLCBpbnQgZHN0LCBpbnQgc2Nh bGVfY2VudGVyKQo+PiAgewo+PiAgCWludCBzY2FsZSA9IDA7Cj4+ICAKPj4gQEAgLTEwNiw3ICsx MDYsMTAgQEAgc3RhdGljIGludCBkcm1fY2FsY19zY2FsZShpbnQgc3JjLCBpbnQgZHN0KQo+PiAg CWlmIChkc3QgPT0gMCkKPj4gIAkJcmV0dXJuIDA7Cj4+ICAKPj4gLQlzY2FsZSA9IHNyYyAvIGRz dDsKPj4gKwlpZiAoRElWX1JPVU5EX1VQKGRzdCwgc2NhbGVfY2VudGVyKSA+IHNyYykKPiBUaGF0 IGRvZXNuJ3QgbG9vayByaWdodCB0byBtZS4KPgo+IEhvdyBhYm91dCBqdXN0ICdpZiAoc3JjID4g ZHN0IDw8IDE2KScgPwo+Cj4gSSBndWVzcyBpZiB3ZSB3YW50IHRvIGtlZXAgdGhpcyBjb2RlIGlu ZGVwZW5kZW50IG9mIHRoZSBudW1iZXIgb2YKPiBmcmFjdGlvbmFsIGJpdHMgd2UgY291bGQgcGFz cyB0aGUgMTYgaW4gZnJvbSB0aGUgY2FsbGVyKHMpLiBOb3Qgc3VyZQo+IHRoZXJlJ3MgbXVjaCBw b2ludCBpbiB0aGF0IHRob3VnaC4KcGFzcyBhIGJvb2wgcm91bmRfdXAgdG8gdGhlIGNhbGNfc2Nh bGUgZnVuY3Rpb25zPwo+PiArCQlyZXR1cm4gRElWX1JPVU5EX1VQKHNyYywgZHN0KTsKPj4gKwll bHNlCj4+ICsJCXNjYWxlID0gc3JjIC8gZHN0Owo+PiAgCj4+ICAJcmV0dXJuIHNjYWxlOwo+PiAg fQo+PiBAQCAtMTE2LDIxICsxMTksMjUgQEAgc3RhdGljIGludCBkcm1fY2FsY19zY2FsZShpbnQg c3JjLCBpbnQgZHN0KQo+PiAgICogQHNyYzogc291cmNlIHdpbmRvdyByZWN0YW5nbGUKPj4gICAq IEBkc3Q6IGRlc3RpbmF0aW9uIHdpbmRvdyByZWN0YW5nbGUKPj4gICAqIEBtaW5faHNjYWxlOiBt aW5pbXVtIGFsbG93ZWQgaG9yaXpvbnRhbCBzY2FsaW5nIGZhY3Rvcgo+PiArICogQG1pZF9oc2Nh bGU6IG1pZCBwb2ludCwgYmVsb3cgdGhpcyBwb2ludCByb3VuZCBkb3duIHNjYWxpbmcsIGFib3Zl IHJvdW5kIHVwLgo+PiAgICogQG1heF9oc2NhbGU6IG1heGltdW0gYWxsb3dlZCBob3Jpem9udGFs IHNjYWxpbmcgZmFjdG9yCj4+ICAgKgo+PiAgICogQ2FsY3VsYXRlIHRoZSBob3Jpem9udGFsIHNj YWxpbmcgZmFjdG9yIGFzCj4+ICAgKiAoQHNyYyB3aWR0aCkgLyAoQGRzdCB3aWR0aCkuCj4+ICAg Kgo+PiArICogSWYgdGhlIHNjYWxlIGlzIGJlbG93IEBtaWRfaHNjYWxlIHdlIHJvdW5kIGRvd24s IGlmIGFib3ZlIHVwLiBUaGlzIHdpbGwKPj4gKyAqIGNhbGN1bGF0ZSB0aGUgaHNjYWxlIHdpdGgg dGhlIG1vc3QgcGVzc2ltaXN0aWMgbGltaXQgY2FsY3VsYXRpb24uCj4+ICsgKgo+PiAgICogUkVU VVJOUzoKPj4gICAqIFRoZSBob3Jpem9udGFsIHNjYWxpbmcgZmFjdG9yLCBvciBlcnJubyBvZiBv dXQgb2YgbGltaXRzLgo+PiAgICovCj4+ICBpbnQgZHJtX3JlY3RfY2FsY19oc2NhbGUoY29uc3Qg c3RydWN0IGRybV9yZWN0ICpzcmMsCj4+ICAJCQkgY29uc3Qgc3RydWN0IGRybV9yZWN0ICpkc3Qs Cj4+IC0JCQkgaW50IG1pbl9oc2NhbGUsIGludCBtYXhfaHNjYWxlKQo+PiArCQkJIGludCBtaW5f aHNjYWxlLCBpbnQgbWlkX2hzY2FsZSwgaW50IG1heF9oc2NhbGUpCj4+ICB7Cj4+ICAJaW50IHNy Y193ID0gZHJtX3JlY3Rfd2lkdGgoc3JjKTsKPj4gIAlpbnQgZHN0X3cgPSBkcm1fcmVjdF93aWR0 aChkc3QpOwo+PiAtCWludCBoc2NhbGUgPSBkcm1fY2FsY19zY2FsZShzcmNfdywgZHN0X3cpOwo+ PiArCWludCBoc2NhbGUgPSBkcm1fY2FsY19zY2FsZShzcmNfdywgZHN0X3csIG1pZF9oc2NhbGUp Owo+PiAgCj4+ICAJaWYgKGhzY2FsZSA8IDAgfHwgZHN0X3cgPT0gMCkKPj4gIAkJcmV0dXJuIGhz Y2FsZTsKPj4gQEAgLTE0NywyMSArMTU0LDI1IEBAIEVYUE9SVF9TWU1CT0woZHJtX3JlY3RfY2Fs Y19oc2NhbGUpOwo+PiAgICogQHNyYzogc291cmNlIHdpbmRvdyByZWN0YW5nbGUKPj4gICAqIEBk c3Q6IGRlc3RpbmF0aW9uIHdpbmRvdyByZWN0YW5nbGUKPj4gICAqIEBtaW5fdnNjYWxlOiBtaW5p bXVtIGFsbG93ZWQgdmVydGljYWwgc2NhbGluZyBmYWN0b3IKPj4gKyAqIEBtaWRfdnNjYWxlOiBt aWQgcG9pbnQsIGJlbG93IHRoaXMgcG9pbnQgcm91bmQgZG93biBzY2FsaW5nLCBhYm92ZSByb3Vu ZCB1cC4KPj4gICAqIEBtYXhfdnNjYWxlOiBtYXhpbXVtIGFsbG93ZWQgdmVydGljYWwgc2NhbGlu ZyBmYWN0b3IKPj4gICAqCj4+ICAgKiBDYWxjdWxhdGUgdGhlIHZlcnRpY2FsIHNjYWxpbmcgZmFj dG9yIGFzCj4+ICAgKiAoQHNyYyBoZWlnaHQpIC8gKEBkc3QgaGVpZ2h0KS4KPj4gICAqCj4+ICsg KiBJZiB0aGUgc2NhbGUgaXMgYmVsb3cgQG1pZF92c2NhbGUgd2Ugcm91bmQgZG93biwgaWYgYWJv dmUgdXAuIFRoaXMgd2lsbAo+PiArICogY2FsY3VsYXRlIHRoZSB2c2NhbGUgd2l0aCB0aGUgbW9z dCBwZXNzaW1pc3RpYyBsaW1pdCBjYWxjdWxhdGlvbi4KPj4gKyAqCj4+ICAgKiBSRVRVUk5TOgo+ PiAgICogVGhlIHZlcnRpY2FsIHNjYWxpbmcgZmFjdG9yLCBvciBlcnJubyBvZiBvdXQgb2YgbGlt aXRzLgo+PiAgICovCj4+ICBpbnQgZHJtX3JlY3RfY2FsY192c2NhbGUoY29uc3Qgc3RydWN0IGRy bV9yZWN0ICpzcmMsCj4+ICAJCQkgY29uc3Qgc3RydWN0IGRybV9yZWN0ICpkc3QsCj4+IC0JCQkg aW50IG1pbl92c2NhbGUsIGludCBtYXhfdnNjYWxlKQo+PiArCQkJIGludCBtaW5fdnNjYWxlLCBp bnQgbWlkX3ZzY2FsZSwgaW50IG1heF92c2NhbGUpCj4+ICB7Cj4+ICAJaW50IHNyY19oID0gZHJt X3JlY3RfaGVpZ2h0KHNyYyk7Cj4+ICAJaW50IGRzdF9oID0gZHJtX3JlY3RfaGVpZ2h0KGRzdCk7 Cj4+IC0JaW50IHZzY2FsZSA9IGRybV9jYWxjX3NjYWxlKHNyY19oLCBkc3RfaCk7Cj4+ICsJaW50 IHZzY2FsZSA9IGRybV9jYWxjX3NjYWxlKHNyY19oLCBkc3RfaCwgbWlkX3ZzY2FsZSk7Cj4+ICAK Pj4gIAlpZiAodnNjYWxlIDwgMCB8fCBkc3RfaCA9PSAwKQo+PiAgCQlyZXR1cm4gdnNjYWxlOwo+ PiBAQCAtMTc4LDYgKzE4OSw3IEBAIEVYUE9SVF9TWU1CT0woZHJtX3JlY3RfY2FsY192c2NhbGUp Owo+PiAgICogQHNyYzogc291cmNlIHdpbmRvdyByZWN0YW5nbGUKPj4gICAqIEBkc3Q6IGRlc3Rp bmF0aW9uIHdpbmRvdyByZWN0YW5nbGUKPj4gICAqIEBtaW5faHNjYWxlOiBtaW5pbXVtIGFsbG93 ZWQgaG9yaXpvbnRhbCBzY2FsaW5nIGZhY3Rvcgo+PiArICogQG1pZF9oc2NhbGU6IG1pZCBwb2lu dCwgYmVsb3cgdGhpcyBwb2ludCByb3VuZCBkb3duIHNjYWxpbmcsIGFib3ZlIHJvdW5kIHVwLgo+ PiAgICogQG1heF9oc2NhbGU6IG1heGltdW0gYWxsb3dlZCBob3Jpem9udGFsIHNjYWxpbmcgZmFj dG9yCj4+ICAgKgo+PiAgICogQ2FsY3VsYXRlIHRoZSBob3Jpem9udGFsIHNjYWxpbmcgZmFjdG9y IGFzCj4+IEBAIC0xODksMTYgKzIwMSwxOSBAQCBFWFBPUlRfU1lNQk9MKGRybV9yZWN0X2NhbGNf dnNjYWxlKTsKPj4gICAqIElmIHRoZSBjYWxjdWxhdGVkIHNjYWxpbmcgZmFjdG9yIGlzIGFib3Zl IEBtYXhfdnNjYWxlLAo+PiAgICogZGVjcmVhc2UgdGhlIGhlaWdodCBvZiByZWN0YW5nbGUgQHNy YyB0byBjb21wZW5zYXRlLgo+PiAgICoKPj4gKyAqIElmIHRoZSBzY2FsZSBpcyBiZWxvdyBAbWlk X2hzY2FsZSB3ZSByb3VuZCBkb3duLCBpZiBhYm92ZSB1cC4gVGhpcyB3aWxsCj4+ICsgKiBjYWxj dWxhdGUgdGhlIGhzY2FsZSB3aXRoIHRoZSBtb3N0IHBlc3NpbWlzdGljIGxpbWl0IGNhbGN1bGF0 aW9uLgo+PiArICoKPj4gICAqIFJFVFVSTlM6Cj4+ICAgKiBUaGUgaG9yaXpvbnRhbCBzY2FsaW5n IGZhY3Rvci4KPj4gICAqLwo+PiAgaW50IGRybV9yZWN0X2NhbGNfaHNjYWxlX3JlbGF4ZWQoc3Ry dWN0IGRybV9yZWN0ICpzcmMsCj4+ICAJCQkJIHN0cnVjdCBkcm1fcmVjdCAqZHN0LAo+PiAtCQkJ CSBpbnQgbWluX2hzY2FsZSwgaW50IG1heF9oc2NhbGUpCj4+ICsJCQkJIGludCBtaW5faHNjYWxl LCBpbnQgbWlkX2hzY2FsZSwgaW50IG1heF9oc2NhbGUpCj4+ICB7Cj4+ICAJaW50IHNyY193ID0g ZHJtX3JlY3Rfd2lkdGgoc3JjKTsKPj4gIAlpbnQgZHN0X3cgPSBkcm1fcmVjdF93aWR0aChkc3Qp Owo+PiAtCWludCBoc2NhbGUgPSBkcm1fY2FsY19zY2FsZShzcmNfdywgZHN0X3cpOwo+PiArCWlu dCBoc2NhbGUgPSBkcm1fY2FsY19zY2FsZShzcmNfdywgZHN0X3csIG1pZF9oc2NhbGUpOwo+PiAg Cj4+ICAJaWYgKGhzY2FsZSA8IDAgfHwgZHN0X3cgPT0gMCkKPj4gIAkJcmV0dXJuIGhzY2FsZTsK Pj4gQEAgLTIyOCw2ICsyNDMsNyBAQCBFWFBPUlRfU1lNQk9MKGRybV9yZWN0X2NhbGNfaHNjYWxl X3JlbGF4ZWQpOwo+PiAgICogQHNyYzogc291cmNlIHdpbmRvdyByZWN0YW5nbGUKPj4gICAqIEBk c3Q6IGRlc3RpbmF0aW9uIHdpbmRvdyByZWN0YW5nbGUKPj4gICAqIEBtaW5fdnNjYWxlOiBtaW5p bXVtIGFsbG93ZWQgdmVydGljYWwgc2NhbGluZyBmYWN0b3IKPj4gKyAqIEBtaWRfdnNjYWxlOiBt aWQgcG9pbnQsIGJlbG93IHRoaXMgcG9pbnQgcm91bmQgZG93biBzY2FsaW5nLCBhYm92ZSByb3Vu ZCB1cC4KPj4gICAqIEBtYXhfdnNjYWxlOiBtYXhpbXVtIGFsbG93ZWQgdmVydGljYWwgc2NhbGlu ZyBmYWN0b3IKPj4gICAqCj4+ICAgKiBDYWxjdWxhdGUgdGhlIHZlcnRpY2FsIHNjYWxpbmcgZmFj dG9yIGFzCj4+IEBAIC0yMzksMTYgKzI1NSwxOSBAQCBFWFBPUlRfU1lNQk9MKGRybV9yZWN0X2Nh bGNfaHNjYWxlX3JlbGF4ZWQpOwo+PiAgICogSWYgdGhlIGNhbGN1bGF0ZWQgc2NhbGluZyBmYWN0 b3IgaXMgYWJvdmUgQG1heF92c2NhbGUsCj4+ICAgKiBkZWNyZWFzZSB0aGUgaGVpZ2h0IG9mIHJl Y3RhbmdsZSBAc3JjIHRvIGNvbXBlbnNhdGUuCj4+ICAgKgo+PiArICogSWYgdGhlIHNjYWxlIGlz IGJlbG93IEBtaWRfdnNjYWxlIHdlIHJvdW5kIGRvd24sIGlmIGFib3ZlIHVwLiBUaGlzIHdpbGwK Pj4gKyAqIGNhbGN1bGF0ZSB0aGUgdnNjYWxlIHdpdGggdGhlIG1vc3QgcGVzc2ltaXN0aWMgbGlt aXQgY2FsY3VsYXRpb24uCj4+ICsgKgo+PiAgICogUkVUVVJOUzoKPj4gICAqIFRoZSB2ZXJ0aWNh bCBzY2FsaW5nIGZhY3Rvci4KPj4gICAqLwo+PiAgaW50IGRybV9yZWN0X2NhbGNfdnNjYWxlX3Jl bGF4ZWQoc3RydWN0IGRybV9yZWN0ICpzcmMsCj4+ICAJCQkJIHN0cnVjdCBkcm1fcmVjdCAqZHN0 LAo+PiAtCQkJCSBpbnQgbWluX3ZzY2FsZSwgaW50IG1heF92c2NhbGUpCj4+ICsJCQkJIGludCBt aW5fdnNjYWxlLCBpbnQgbWlkX3ZzY2FsZSwgaW50IG1heF92c2NhbGUpCj4+ICB7Cj4+ICAJaW50 IHNyY19oID0gZHJtX3JlY3RfaGVpZ2h0KHNyYyk7Cj4+ICAJaW50IGRzdF9oID0gZHJtX3JlY3Rf aGVpZ2h0KGRzdCk7Cj4+IC0JaW50IHZzY2FsZSA9IGRybV9jYWxjX3NjYWxlKHNyY19oLCBkc3Rf aCk7Cj4+ICsJaW50IHZzY2FsZSA9IGRybV9jYWxjX3NjYWxlKHNyY19oLCBtaWRfdnNjYWxlLCBk c3RfaCk7Cj4+ICAKPj4gIAlpZiAodnNjYWxlIDwgMCB8fCBkc3RfaCA9PSAwKQo+PiAgCQlyZXR1 cm4gdnNjYWxlOwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3By aXRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+PiBpbmRleCBhYTFk ZmFhNjkyYjkuLmY4ZjdjNjZmYzNhYyAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfc3ByaXRlLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3By aXRlLmMKPj4gQEAgLTk5OCwxMCArOTk4LDEwIEBAIGludGVsX2NoZWNrX3Nwcml0ZV9wbGFuZShz dHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLAo+PiAgCWRybV9yZWN0X3JvdGF0ZShzcmMsIGZiLT53 aWR0aCA8PCAxNiwgZmItPmhlaWdodCA8PCAxNiwKPj4gIAkJCXN0YXRlLT5iYXNlLnJvdGF0aW9u KTsKPj4gIAo+PiAtCWhzY2FsZSA9IGRybV9yZWN0X2NhbGNfaHNjYWxlX3JlbGF4ZWQoc3JjLCBk c3QsIG1pbl9zY2FsZSwgbWF4X3NjYWxlKTsKPj4gKwloc2NhbGUgPSBkcm1fcmVjdF9jYWxjX2hz Y2FsZV9yZWxheGVkKHNyYywgZHN0LCBtaW5fc2NhbGUsIDEgPDwgMTYsIG1heF9zY2FsZSk7Cj4+ ICAJQlVHX09OKGhzY2FsZSA8IDApOwo+PiAgCj4+IC0JdnNjYWxlID0gZHJtX3JlY3RfY2FsY192 c2NhbGVfcmVsYXhlZChzcmMsIGRzdCwgbWluX3NjYWxlLCBtYXhfc2NhbGUpOwo+PiArCXZzY2Fs ZSA9IGRybV9yZWN0X2NhbGNfdnNjYWxlX3JlbGF4ZWQoc3JjLCBkc3QsIG1pbl9zY2FsZSwgMSA8 PCAxNiwgbWF4X3NjYWxlKTsKPj4gIAlCVUdfT04odnNjYWxlIDwgMCk7Cj4+ICAKPj4gIAlpZiAo Y3J0Y19zdGF0ZS0+YmFzZS5lbmFibGUpCj4+IEBAIC0xMDE3LDcgKzEwMTcsNyBAQCBpbnRlbF9j aGVja19zcHJpdGVfcGxhbmUoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwKPj4gIAo+PiAgCWlm IChzdGF0ZS0+YmFzZS52aXNpYmxlKSB7Cj4+ICAJCS8qIGNoZWNrIGFnYWluIGluIGNhc2UgY2xp cHBpbmcgY2xhbXBlZCB0aGUgcmVzdWx0cyAqLwo+PiAtCQloc2NhbGUgPSBkcm1fcmVjdF9jYWxj X2hzY2FsZShzcmMsIGRzdCwgbWluX3NjYWxlLCBtYXhfc2NhbGUpOwo+PiArCQloc2NhbGUgPSBk cm1fcmVjdF9jYWxjX2hzY2FsZShzcmMsIGRzdCwgbWluX3NjYWxlLCAxIDw8IDE2LCBtYXhfc2Nh bGUpOwo+PiAgCQlpZiAoaHNjYWxlIDwgMCkgewo+PiAgCQkJRFJNX0RFQlVHX0tNUygiSG9yaXpv bnRhbCBzY2FsaW5nIGZhY3RvciBvdXQgb2YgbGltaXRzXG4iKTsKPj4gIAkJCWRybV9yZWN0X2Rl YnVnX3ByaW50KCJzcmM6ICIsIHNyYywgdHJ1ZSk7Cj4+IEBAIC0xMDI2LDcgKzEwMjYsNyBAQCBp bnRlbF9jaGVja19zcHJpdGVfcGxhbmUoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwKPj4gIAkJ CXJldHVybiBoc2NhbGU7Cj4+ICAJCX0KPj4gIAo+PiAtCQl2c2NhbGUgPSBkcm1fcmVjdF9jYWxj X3ZzY2FsZShzcmMsIGRzdCwgbWluX3NjYWxlLCBtYXhfc2NhbGUpOwo+PiArCQl2c2NhbGUgPSBk cm1fcmVjdF9jYWxjX3ZzY2FsZShzcmMsIGRzdCwgbWluX3NjYWxlLCAxIDw8IDE2LCBtYXhfc2Nh bGUpOwo+PiAgCQlpZiAodnNjYWxlIDwgMCkgewo+PiAgCQkJRFJNX0RFQlVHX0tNUygiVmVydGlj YWwgc2NhbGluZyBmYWN0b3Igb3V0IG9mIGxpbWl0c1xuIik7Cj4+ICAJCQlkcm1fcmVjdF9kZWJ1 Z19wcmludCgic3JjOiAiLCBzcmMsIHRydWUpOwo+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0v ZHJtX3JlY3QuaCBiL2luY2x1ZGUvZHJtL2RybV9yZWN0LmgKPj4gaW5kZXggNDRiYzEyMmI5ZWUw Li5kYmI4NjMxYTkyODggMTAwNjQ0Cj4+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9yZWN0LmgKPj4g KysrIGIvaW5jbHVkZS9kcm0vZHJtX3JlY3QuaAo+PiBAQCAtMTc5LDE2ICsxNzksMTYgQEAgYm9v bCBkcm1fcmVjdF9jbGlwX3NjYWxlZChzdHJ1Y3QgZHJtX3JlY3QgKnNyYywgc3RydWN0IGRybV9y ZWN0ICpkc3QsCj4+ICAJCQkgIGludCBoc2NhbGUsIGludCB2c2NhbGUpOwo+PiAgaW50IGRybV9y ZWN0X2NhbGNfaHNjYWxlKGNvbnN0IHN0cnVjdCBkcm1fcmVjdCAqc3JjLAo+PiAgCQkJIGNvbnN0 IHN0cnVjdCBkcm1fcmVjdCAqZHN0LAo+PiAtCQkJIGludCBtaW5faHNjYWxlLCBpbnQgbWF4X2hz Y2FsZSk7Cj4+ICsJCQkgaW50IG1pbl9oc2NhbGUsIGludCBtaWRfaHNjYWxlLCBpbnQgbWF4X2hz Y2FsZSk7Cj4+ICBpbnQgZHJtX3JlY3RfY2FsY192c2NhbGUoY29uc3Qgc3RydWN0IGRybV9yZWN0 ICpzcmMsCj4+ICAJCQkgY29uc3Qgc3RydWN0IGRybV9yZWN0ICpkc3QsCj4+IC0JCQkgaW50IG1p bl92c2NhbGUsIGludCBtYXhfdnNjYWxlKTsKPj4gKwkJCSBpbnQgbWluX3ZzY2FsZSwgaW50IG1p ZF92c2NhbGUsIGludCBtYXhfdnNjYWxlKTsKPj4gIGludCBkcm1fcmVjdF9jYWxjX2hzY2FsZV9y ZWxheGVkKHN0cnVjdCBkcm1fcmVjdCAqc3JjLAo+PiAgCQkJCSBzdHJ1Y3QgZHJtX3JlY3QgKmRz dCwKPj4gLQkJCQkgaW50IG1pbl9oc2NhbGUsIGludCBtYXhfaHNjYWxlKTsKPj4gKwkJCQkgaW50 IG1pbl9oc2NhbGUsIGludCBtaWRfaHNjYWxlLCBpbnQgbWF4X2hzY2FsZSk7Cj4+ICBpbnQgZHJt X3JlY3RfY2FsY192c2NhbGVfcmVsYXhlZChzdHJ1Y3QgZHJtX3JlY3QgKnNyYywKPj4gIAkJCQkg c3RydWN0IGRybV9yZWN0ICpkc3QsCj4+IC0JCQkJIGludCBtaW5fdnNjYWxlLCBpbnQgbWF4X3Zz Y2FsZSk7Cj4+ICsJCQkJIGludCBtaW5fdnNjYWxlLCBpbnQgbWlkX3ZzY2FsZSwgaW50IG1heF92 c2NhbGUpOwo+PiAgdm9pZCBkcm1fcmVjdF9kZWJ1Z19wcmludChjb25zdCBjaGFyICpwcmVmaXgs Cj4+ICAJCQkgIGNvbnN0IHN0cnVjdCBkcm1fcmVjdCAqciwgYm9vbCBmaXhlZF9wb2ludCk7Cj4+ ICB2b2lkIGRybV9yZWN0X3JvdGF0ZShzdHJ1Y3QgZHJtX3JlY3QgKnIsCj4+IC0tIAo+PiAyLjE3 LjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmkt ZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK