From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 3/5] drm/i915/skl: Support secondary (rotated) frame buffer mapping Date: Wed, 04 Mar 2015 15:04:46 +0000 Message-ID: <54F71F0E.7090900@linux.intel.com> References: <1425307432-4955-1-git-send-email-tvrtko.ursulin@linux.intel.com> <1425307432-4955-4-git-send-email-tvrtko.ursulin@linux.intel.com> <20150302182158.GF18775@phenom.ffwll.local> <54F58603.30601@linux.intel.com> <20150304144358.GU18775@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" 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 F2A426E670 for ; Wed, 4 Mar 2015 07:04:58 -0800 (PST) In-Reply-To: <20150304144358.GU18775@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 Ck9uIDAzLzA0LzIwMTUgMDI6NDMgUE0sIERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gT24gVHVlLCBN YXIgMDMsIDIwMTUgYXQgMDk6NTk6MzFBTSArMDAwMCwgVHZydGtvIFVyc3VsaW4gd3JvdGU6Cj4+ Cj4+IE9uIDAzLzAyLzIwMTUgMDY6MjEgUE0sIERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4+PiBPbiBN b24sIE1hciAwMiwgMjAxNSBhdCAwMjo0Mzo1MFBNICswMDAwLCBUdnJ0a28gVXJzdWxpbiB3cm90 ZToKPj4+PiBGcm9tOiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgo+ Pj4+Cj4+Pj4gOTAvMjcwIHJvdGF0ZWQgc2Nhbm91dCBuZWVkcyBhIHJvdGF0ZWQgR1RUIHZpZXcg b2YgdGhlIGZyYW1lYnVmZmVyLgo+Pj4+Cj4+Pj4gVGhpcyBpcyBwdXQgaW4gYSBzZXBhcmF0ZSBW TUEgd2l0aCBhIGRlZGljYXRlZCBnZ3R0X3ZpZXcgYW5kIHdpcmVkIHN1Y2hzIHRoYXQKPj4+PiBp dCBpcyBjcmVhdGVkIHdoZW4gYSBmcmFtZWJ1ZmZlciBpcyBwaW5uZWQgdG8gYSA5MC8yNzAgcm90 YXRlZCBwbGFuZS4KPj4+Pgo+Pj4+IFJvdGF0aW9uIGlzIG9ubHkgcG9zc2libGUgd2l0aCBZYi9Z ZiBidWZmZXJzIGFuZCBlcnJvciBpcyBwcm9wYWdhdGVkIHRvCj4+Pj4gdXNlciBzcGFjZSBpbiBj YXNlIG9mIGEgbWlzbWF0Y2guCj4+Pj4KPj4+PiBTcGVjaWFsIHJvdGF0ZWQgcGFnZSB2aWV3IGlz IGNvbnN0cnVjdGVkIGF0IHRoZSBWTUEgY3JlYXRpb24gdGltZSBieQo+Pj4+IGJvcnJvd2luZyB0 aGUgRE1BIGFkZHJlc3NlcyBmcm9tIG9iai0+cGFnZXMuCj4+Pj4KPj4+PiB2MjoKPj4+PiAgICAg ICogRG8gbm90IGJvdGhlciB3aXRoIHBhZ2VzIGZvciByb3RhdGVkIHNnIGxpc3QsIGp1c3QgcG9w dWxhdGUgdGhlIERNQQo+Pj4+ICAgICAgICBhZGRyZXNzZXMuIChEYW5pZWwgVmV0dGVyKQo+Pj4+ ICAgICAgKiBDaGVja3BhdGNoIGNsZWFudXAuCj4+Pj4KPj4+PiB2MzoKPj4+PiAgICAgICogUmVi YXNlZCBvbiB0b3Agb2YgbmV3IHBsYW5lIGhhbmRsaW5nIChjcmVhdGUgcm90YXRlZCBtYXBwaW5n IHdoZW4KPj4+PiAgICAgICAgc2V0dGluZyB0aGUgcm90YXRpb24gcHJvcGVydHkpLgo+Pj4+ICAg ICAgKiBVbnBpbiByb3RhdGVkIFZNQSBvbiB1bnBpbm5pbmcgZnJvbSBkaXNwbGF5IHBsYW5lLgo+ Pj4+ICAgICAgKiBTaW1wbGlmeSByb3RhdGlvbiBjaGVjayB1c2luZyBiaXR3aXNlIEFORC4gKENo cmlzIFdpbHNvbikKPj4+Pgo+Pj4+IHY0Ogo+Pj4+ICAgICAgKiBGaXggdW5waW5uaW5nIG9mIG9w dGlvbmFsIHJvdGF0ZWQgbWFwcGluZyBzbyBpdCBpcyByZWFsbHkgY29uc2lkZXJlZAo+Pj4+ICAg ICAgICB0byBiZSBvcHRpb25hbC4KPj4+Pgo+Pj4+IHY1Ogo+Pj4+ICAgICAqIFJlYmFzZWQgZm9y IGZiIG1vZGlmaWVyIGNoYW5nZXMuCj4+Pj4gICAgICogUmViYXNlZCBmb3IgYXRvbWljIGNvbW1p dC4KPj4+PiAgICAgKiBPbmx5IHBpbiBuZWVkZWQgdmlldyBmb3IgZGlzcGxheS4gKFZpbGxlIFN5 cmrDpGzDpCwgRGFuaWVsIFZldHRlcikKPj4+Pgo+Pj4+IEZvcjogVklaLTQ3MjYKPj4+PiBTaWdu ZWQtb2ZmLWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgo+Pj4+ IFJldmlld2VkLWJ5OiBNaWNoZWwgVGhpZXJyeSA8bWljaGVsLnRoaWVycnlAaW50ZWwuY29tPiAo djQpCj4+Pgo+Pj4gQnVuY2ggb2Ygbml0cGlja3MgYmVsb3cuIEFsc28gSSB0aGluayBpdCdkIGJl IGdvb2QgdG8gc3BsaXQgdGhpcyBwYXRjaAo+Pj4gaW50byB0aGUgcm90ZSByZWZhY3RvcmluZyB3 b3JrIHRvIGFkZCB2aWV3IHBhcmFtZXRlcnMgYWxsIG92ZXIgdGhlIHBsYWNlCj4+PiBhbmQgdGhl IGFjdHVhbCBpbXBsZW1lbnRhdGlvbi4KPj4KPj4gT2sgd2lsbCBzcGxpdCBpdC4gUmVzdCBiZWxv dy4uLgo+Pgo+Pj4+IC0tLQo+Pj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAg ICAgIHwgIDMzICsrKysrLQo+Pj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAg ICAgIHwgIDI3ICsrKy0tCj4+Pj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQu YyAgfCAgMTQgKystCj4+Pj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaCAg fCAgMTIgKysrCj4+Pj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAy MDQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0KPj4+PiAgIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICB8ICAgNCArCj4+Pj4gICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9mYmRldi5jICAgfCAgIDIgKy0KPj4+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX292ZXJsYXkuYyB8ICAgMyArLQo+Pj4+ICAgOCBmaWxlcyBjaGFuZ2VkLCAyNjMgaW5z ZXJ0aW9ucygrKSwgMzYgZGVsZXRpb25zKC0pCj4+Pj4KPj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmgKPj4+PiBpbmRleCBlMDdhMWNiLi43OWQzZjJjIDEwMDY0NAo+Pj4+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oCj4+Pj4gQEAgLTI3NDMsOCArMjc0MywxMCBAQCBpOTE1X2dlbV9vYmplY3Rfc2V0 X3RvX2NwdV9kb21haW4oc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwgYm9vbCB3cml0 ZSk7Cj4+Pj4gICBpbnQgX19tdXN0X2NoZWNrCj4+Pj4gICBpOTE1X2dlbV9vYmplY3RfcGluX3Rv X2Rpc3BsYXlfcGxhbmUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPj4+PiAgIAkJ CQkgICAgIHUzMiBhbGlnbm1lbnQsCj4+Pj4gLQkJCQkgICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKnBpcGVsaW5lZCk7Cj4+Pj4gLXZvaWQgaTkxNV9nZW1fb2JqZWN0X3VucGluX2Zyb21fZGlz cGxheV9wbGFuZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKTsKPj4+PiArCQkJCSAg ICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcGlwZWxpbmVkLAo+Pj4+ICsJCQkJICAgICBjb25z dCBzdHJ1Y3QgaTkxNV9nZ3R0X3ZpZXcgKnZpZXcpOwo+Pj4+ICt2b2lkIGk5MTVfZ2VtX29iamVj dF91bnBpbl9mcm9tX2Rpc3BsYXlfcGxhbmUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9i aiwKPj4+PiArCQkJCQkgICAgICBjb25zdCBzdHJ1Y3QgaTkxNV9nZ3R0X3ZpZXcgKnZpZXcpOwo+ Pj4+ICAgaW50IGk5MTVfZ2VtX29iamVjdF9hdHRhY2hfcGh5cyhzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCAqb2JqLAo+Pj4+ICAgCQkJCWludCBhbGlnbik7Cj4+Pj4gICBpbnQgaTkxNV9nZW1f b3BlbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpOwo+Pj4+ IEBAIC0yODEzLDcgKzI4MTUsMTMgQEAgaTkxNV9nZW1fb2JqX2xvb2t1cF9vcl9jcmVhdGVfdm1h KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4+Pj4gICAJCQkJCQkmaTkxNV9nZ3R0 X3ZpZXdfbm9ybWFsKTsKPj4+PiAgIH0KPj4+Pgo+Pj4+IC1zdHJ1Y3QgaTkxNV92bWEgKmk5MTVf Z2VtX29ial90b19nZ3R0KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopOwo+Pj4+ICtz dHJ1Y3QgaTkxNV92bWEgKmk5MTVfZ2VtX29ial90b19nZ3R0X3ZpZXcoc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iaiwKPj4+PiArCQkJCQkgICBlbnVtIGk5MTVfZ2d0dF92aWV3X3R5cGUg dmlldyk7Cj4+Pj4gK3N0YXRpYyBpbmxpbmUKPj4+PiArc3RydWN0IGk5MTVfdm1hICppOTE1X2dl bV9vYmpfdG9fZ2d0dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQo+Pj4+ICt7Cj4+ Pj4gKwlyZXR1cm4gaTkxNV9nZW1fb2JqX3RvX2dndHRfdmlldyhvYmosIEk5MTVfR0dUVF9WSUVX X05PUk1BTCk7Cj4+Pj4gK30KPj4+PiAgIHN0YXRpYyBpbmxpbmUgYm9vbCBpOTE1X2dlbV9vYmpf aXNfcGlubmVkKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopIHsKPj4+PiAgIAlzdHJ1 Y3QgaTkxNV92bWEgKnZtYTsKPj4+PiAgIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KHZtYSwgJm9iai0+ dm1hX2xpc3QsIHZtYV9saW5rKQo+Pj4+IEBAIC0yODY3LDEzICsyODc1LDMwIEBAIGk5MTVfZ2Vt X29ial9nZ3R0X3BpbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+Pj4+ICAgCQkJ CSAgIGFsaWdubWVudCwgZmxhZ3MgfCBQSU5fR0xPQkFMKTsKPj4+PiAgIH0KPj4+Pgo+Pj4+ICtz dGF0aWMgaW5saW5lIGludCBfX211c3RfY2hlY2sKPj4+PiAraTkxNV9nZW1fb2JqX2dndHRfcGlu X3ZpZXcoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPj4+PiArCQkJICAgdWludDMy X3QgYWxpZ25tZW50LAo+Pj4+ICsJCQkgICB1bnNpZ25lZCBmbGFncywKPj4+PiArCQkJICAgY29u c3Qgc3RydWN0IGk5MTVfZ2d0dF92aWV3ICpnZ3R0X3ZpZXcpCj4+Pj4gK3sKPj4+PiArCXJldHVy biBpOTE1X2dlbV9vYmplY3RfcGluX3ZpZXcob2JqLCBpOTE1X29ial90b19nZ3R0KG9iaiksCj4+ Pj4gKwkJCQkJYWxpZ25tZW50LCBmbGFncyB8IFBJTl9HTE9CQUwsCj4+Pj4gKwkJCQkJZ2d0dF92 aWV3KTsKPj4+PiArfQo+Pj4+ICsKPj4+PiAgIHN0YXRpYyBpbmxpbmUgaW50Cj4+Pj4gICBpOTE1 X2dlbV9vYmplY3RfZ2d0dF91bmJpbmQoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikK Pj4+PiAgIHsKPj4+PiAgIAlyZXR1cm4gaTkxNV92bWFfdW5iaW5kKGk5MTVfZ2VtX29ial90b19n Z3R0KG9iaikpOwo+Pj4+ICAgfQo+Pj4+Cj4+Pj4gLXZvaWQgaTkxNV9nZW1fb2JqZWN0X2dndHRf dW5waW4oc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaik7Cj4+Pj4gK3ZvaWQgaTkxNV9n ZW1fb2JqZWN0X2dndHRfdW5waW5fdmlldyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2Jq LAo+Pj4+ICsJCQkJICAgICBlbnVtIGk5MTVfZ2d0dF92aWV3X3R5cGUgdmlldyk7Cj4+Pj4gK3N0 YXRpYyBpbmxpbmUgdm9pZAo+Pj4+ICtpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQo+Pj4+ICt7Cj4+Pj4gKwlpOTE1X2dlbV9vYmplY3Rf Z2d0dF91bnBpbl92aWV3KG9iaiwgSTkxNV9HR1RUX1ZJRVdfTk9STUFMKTsKPj4+PiArfQo+Pj4+ Cj4+Pj4gICAvKiBpOTE1X2dlbV9jb250ZXh0LmMgKi8KPj4+PiAgIGludCBfX211c3RfY2hlY2sg aTkxNV9nZW1fY29udGV4dF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+Pj4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW0uYwo+Pj4+IGluZGV4IDAxMDdjMmEuLjA0YzBjYjEgMTAwNjQ0Cj4+Pj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+Pj4+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPj4+PiBAQCAtMzkzOCw3ICszOTM4LDggQEAgc3RhdGlj IGJvb2wgaXNfcGluX2Rpc3BsYXkoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKPj4+ PiAgIGludAo+Pj4+ICAgaTkxNV9nZW1fb2JqZWN0X3Bpbl90b19kaXNwbGF5X3BsYW5lKHN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4+Pj4gICAJCQkJICAgICB1MzIgYWxpZ25tZW50 LAo+Pj4+IC0JCQkJICAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpwaXBlbGluZWQpCj4+Pj4g KwkJCQkgICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnBpcGVsaW5lZCwKPj4+PiArCQkJCSAg ICAgY29uc3Qgc3RydWN0IGk5MTVfZ2d0dF92aWV3ICp2aWV3KQo+Pj4+ICAgewo+Pj4+ICAgCXUz MiBvbGRfcmVhZF9kb21haW5zLCBvbGRfd3JpdGVfZG9tYWluOwo+Pj4+ICAgCWJvb2wgd2FzX3Bp bl9kaXNwbGF5Owo+Pj4+IEBAIC0zOTc0LDcgKzM5NzUsOSBAQCBpOTE1X2dlbV9vYmplY3RfcGlu X3RvX2Rpc3BsYXlfcGxhbmUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPj4+PiAg IAkgKiAoZS5nLiBsaWJrbXMgZm9yIHRoZSBib290dXAgc3BsYXNoKSwgd2UgaGF2ZSB0byBlbnN1 cmUgdGhhdCB3ZQo+Pj4+ICAgCSAqIGFsd2F5cyB1c2UgbWFwX2FuZF9mZW5jZWFibGUgZm9yIGFs bCBzY2Fub3V0IGJ1ZmZlcnMuCj4+Pj4gICAJICovCj4+Pj4gLQlyZXQgPSBpOTE1X2dlbV9vYmpf Z2d0dF9waW4ob2JqLCBhbGlnbm1lbnQsIFBJTl9NQVBQQUJMRSk7Cj4+Pj4gKwlyZXQgPSBpOTE1 X2dlbV9vYmpfZ2d0dF9waW5fdmlldyhvYmosIGFsaWdubWVudCwKPj4+PiArCQkJCQkgdmlldy0+ dHlwZSA9PSBJOTE1X0dHVFRfVklFV19OT1JNQUwgPwo+Pj4+ICsJCQkJCSBQSU5fTUFQUEFCTEUg OiAwLCB2aWV3KTsKPj4+PiAgIAlpZiAocmV0KQo+Pj4+ICAgCQlnb3RvIGVycl91bnBpbl9kaXNw bGF5Owo+Pj4+Cj4+Pj4gQEAgLTQwMDIsOSArNDAwNSwxMSBAQCBlcnJfdW5waW5fZGlzcGxheToK Pj4+PiAgIH0KPj4+Pgo+Pj4+ICAgdm9pZAo+Pj4+IC1pOTE1X2dlbV9vYmplY3RfdW5waW5fZnJv bV9kaXNwbGF5X3BsYW5lKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCj4+Pj4gK2k5 MTVfZ2VtX29iamVjdF91bnBpbl9mcm9tX2Rpc3BsYXlfcGxhbmUoc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKm9iaiwKPj4+PiArCQkJCQkgY29uc3Qgc3RydWN0IGk5MTVfZ2d0dF92aWV3ICp2 aWV3KQo+Pj4+ICAgewo+Pj4+IC0JaTkxNV9nZW1fb2JqZWN0X2dndHRfdW5waW4ob2JqKTsKPj4+ PiArCWk5MTVfZ2VtX29iamVjdF9nZ3R0X3VucGluX3ZpZXcob2JqLCB2aWV3LT50eXBlKTsKPj4+ PiArCj4+Pj4gICAJb2JqLT5waW5fZGlzcGxheSA9IGlzX3Bpbl9kaXNwbGF5KG9iaik7Cj4+Pj4g ICB9Cj4+Pj4KPj4+PiBAQCAtNDI0MSwxNSArNDI0NiwxNiBAQCBpOTE1X2dlbV9vYmplY3RfcGlu X3ZpZXcoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPj4+PiAgIH0KPj4+Pgo+Pj4+ ICAgdm9pZAo+Pj4+IC1pOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihzdHJ1Y3QgZHJtX2k5MTVf Z2VtX29iamVjdCAqb2JqKQo+Pj4+ICtpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbl92aWV3KHN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4+Pj4gKwkJCQllbnVtIGk5MTVfZ2d0dF92 aWV3X3R5cGUgdmlldykKPj4+PiAgIHsKPj4+PiAtCXN0cnVjdCBpOTE1X3ZtYSAqdm1hID0gaTkx NV9nZW1fb2JqX3RvX2dndHQob2JqKTsKPj4+PiArCXN0cnVjdCBpOTE1X3ZtYSAqdm1hID0gaTkx NV9nZW1fb2JqX3RvX2dndHRfdmlldyhvYmosIHZpZXcpOwo+Pj4+Cj4+Pj4gICAJQlVHX09OKCF2 bWEpOwo+Pj4+ICAgCUJVR19PTih2bWEtPnBpbl9jb3VudCA9PSAwKTsKPj4+PiAtCUJVR19PTigh aTkxNV9nZW1fb2JqX2dndHRfYm91bmQob2JqKSk7Cj4+Pj4gKwlCVUdfT04oIWk5MTVfZ2VtX29i al9ib3VuZF92aWV3KG9iaiwgaTkxNV9vYmpfdG9fZ2d0dChvYmopLCB2aWV3KSk7Cj4+Pj4KPj4+ PiAtCWlmICgtLXZtYS0+cGluX2NvdW50ID09IDApCj4+Pj4gKwlpZiAoLS12bWEtPnBpbl9jb3Vu dCA9PSAwICYmIHZpZXcgPT0gSTkxNV9HR1RUX1ZJRVdfTk9STUFMKQo+Pj4+ICAgCQlvYmotPnBp bl9tYXBwYWJsZSA9IGZhbHNlOwo+Pj4+ICAgfQo+Pj4+Cj4+Pj4gQEAgLTUzMDYsMTQgKzUzMTIs MTUgQEAgaTkxNV9nZW1fc2hyaW5rZXJfb29tKHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIsIHVu c2lnbmVkIGxvbmcgZXZlbnQsIHZvaWQgKnB0cikKPj4+PiAgIAlyZXR1cm4gTk9USUZZX0RPTkU7 Cj4+Pj4gICB9Cj4+Pj4KPj4+PiAtc3RydWN0IGk5MTVfdm1hICppOTE1X2dlbV9vYmpfdG9fZ2d0 dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQo+Pj4+ICtzdHJ1Y3QgaTkxNV92bWEg Kmk5MTVfZ2VtX29ial90b19nZ3R0X3ZpZXcoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9i aiwKPj4+PiArCQkJCQkgICBlbnVtIGk5MTVfZ2d0dF92aWV3X3R5cGUgdmlldykKPj4+PiAgIHsK Pj4+PiAgIAlzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICpnZ3R0ID0gaTkxNV9vYmpfdG9fZ2d0 dChvYmopOwo+Pj4+ICAgCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwo+Pj4+Cj4+Pj4gICAJbGlzdF9m b3JfZWFjaF9lbnRyeSh2bWEsICZvYmotPnZtYV9saXN0LCB2bWFfbGluaykKPj4+PiAgIAkJaWYg KHZtYS0+dm0gPT0gZ2d0dCAmJgo+Pj4+IC0JCSAgICB2bWEtPmdndHRfdmlldy50eXBlID09IEk5 MTVfR0dUVF9WSUVXX05PUk1BTCkKPj4+PiArCQkgICAgdm1hLT5nZ3R0X3ZpZXcudHlwZSA9PSB2 aWV3KQo+Pj4+ICAgCQkJcmV0dXJuIHZtYTsKPj4+Pgo+Pj4+ICAgCXJldHVybiBOVUxMOwo+Pj4+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCj4+Pj4gaW5kZXggYmQ5NTc3Ni4uOTMzNjE0 MiAxMDA2NDQKPj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwo+ Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCj4+Pj4gQEAgLTIz NzUsMTEgKzIzNzUsMTYgQEAgaTkxNV9nZW1fb2JqX2xvb2t1cF9vcl9jcmVhdGVfdm1hX3ZpZXco c3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPj4+PiAgIHN0YXRpYyBpbmxpbmUKPj4+ PiAgIGludCBpOTE1X2dldF92bWFfcGFnZXMoc3RydWN0IGk5MTVfdm1hICp2bWEpCj4+Pj4gICB7 Cj4+Pj4gKwlpbnQgcmV0ID0gMDsKPj4+PiArCj4+Pj4gICAJaWYgKHZtYS0+Z2d0dF92aWV3LnBh Z2VzKQo+Pj4+ICAgCQlyZXR1cm4gMDsKPj4+Pgo+Pj4+ICAgCWlmICh2bWEtPmdndHRfdmlldy50 eXBlID09IEk5MTVfR0dUVF9WSUVXX05PUk1BTCkKPj4+PiAgIAkJdm1hLT5nZ3R0X3ZpZXcucGFn ZXMgPSB2bWEtPm9iai0+cGFnZXM7Cj4+Pj4gKwllbHNlIGlmICh2bWEtPmdndHRfdmlldy50eXBl ID09IEk5MTVfR0dUVF9WSUVXX1JPVEFURUQpCj4+Pj4gKwkJdm1hLT5nZ3R0X3ZpZXcucGFnZXMg PQo+Pj4+ICsJCQlpbnRlbF9yb3RhdGVfZmJfb2JqX3BhZ2VzKCZ2bWEtPmdndHRfdmlldywgdm1h LT5vYmopOwo+Pj4KPj4+IFRoZXJlJ3MgYSBiaXQgYSBsYXllcmluZyBjb25mdXNpb24gZ29pbmcg b24sIGdndHQgdmlldyBjb2RlIHNob3VsZCBiZSBoZXJlCj4+PiBpbiB0aGUgZ2VtIGNvZGUgd2l0 aCBhbiBhcHByb3ByaWF0ZSBwcmVmaXguIEp1c3QgbW92aW5nIHRoZSBjb2RlIGlzIGFsbAo+Pj4g dGhhdCdzIGltbyBuZWVkZWQuCj4+Cj4+IFlvdSB3b3VsZCBtb3ZlIGludGVsX3JvdGF0ZV9mYl9v YmpfcGFnZXMgaW1wbGVtZW50YXRpb24gaW50byBpOTE1X2dlbV9ndHQuYz8KPj4gSW50ZXJlc3Rp bmcsIGJlY2F1c2UgSSBzYXcgaXQgZGlmZmVyZW50bHkgLSBhcyBhIGRpc3BsYXkgaW50ZXJuYWwK Pj4gX2ltcGxlbWVudGF0aW9uXyB1c2luZyB0aGUgR0VNIEdHVFQgdmlldyBmcmFtZXdvcmsgLSBh bmQgYXMgc3VjaCBkb2VzIG5vdAo+PiBiZWxvbmcgaW4gY29yZSBHRU0uICBDb3VsZCB5b3UgZXhw bGFpbiB3aHkgeW91IHRoaW5rIHNvPwo+Cj4gTW9zdGx5IHNvIHRoYXQgY29kZSBpbiB0aGUgc2Ft ZSBsYXllciBpcyBpbiB0aGUgc2FtZSBzb3VyY2UgZmlsZXMuIFdlIGhhdmUKPiBkaXNwbGF5IGNv ZGUgaW4gaW50ZWxfZGlzcGxheSB3aGljaCBjYWxscyBpbnRvIHRoZSBnZW0gbWVtb3J5IG1hbmFn ZW1lbnQKPiBjb2RlIGV4Y2x1c2l2ZWx5IHRocm91Z2ggaW50ZWxfcGluX2FuZF9mZW5jZV9mYl9v YmouCj4KPiBNYW5naW5nIG9mIHZtYXMgYW5kIHB0ZXMgYW5kIGFsbCB0aGF0IGlzIGdlbSB0ZXJy aXRvcnkgYW5kIGhlbmNlIGFsbCB0aGUKPiBkaWZmZXJlbnQgdmlldyBpbW8gc2hvdWxkIGJlIHRo ZXJlLiBXZSBtaWdodCB3YW50IHRvIGV2ZW50dWFsbHkgZXh0cmFjdCBhbgo+IGk5MTVfZ2VtX3Zt YS5jIGZpbGUgYW5kIHB1dCBhbGwgdGhhdCBzdHVmZiBpbiB0aGVyZS4gSW1vIHRoZSBiZW5lZml0 IGlzCj4gdGhhdCBpZiB5b3UgbmVlZCB0byBtYWtlIGNoYW5nZXMgdG8gYSB2aWV3IHRoZXkncmUg YWxsIGluIHRoZSBzYW1lIHNwb3QKPiBhbmQgYWRkaW5nIGFub3RoZXIgb25lIHlvdSBoYXZlIGFs bCB0aGUgZXhhbXBsZXMgbG9jYWxseS4KPgo+IFRoZXJlJ3Mgbm90aGluZyB3cm9uZyB3aXRoIHlv dXIgYXBwcm9hY2gsIGl0J3MganVzdCBob3cgd2Ugb3JnYW5pemUKPiBmdW5jdGlvbnMgaW50byBm aWxlcyBmb3IgaTkxNS4gTWF5YmUgYSBjbGVhcmVyIGV4YW1wbGUgd291bGQgYmUgYmFzaWMgZ2Vu Cj4gZW5hYmxpbmcuIEF0bSBpdCdzIGFsbCBzcHJlYWQgb3V0IG92ZXIgdGhlIGRpZmZlcmVudCBs YXllcnMgYW5kIGZ1bmN0aW9uYWwKPiBwYXJ0cyBvZiB0aGUgZHJpdmVyLCBidXQgd2UgY291bGQg dmVyeSB3ZWxsIGV4dHJhY3QgdGhpbmdzIGFuZCBkbyBmaWxlcwo+IHBlci1nZW4gKG9yIG1heWJl IHBlciBodyBibG9jayBzaW5jZSB0aGV5IGRvbid0IGNoYW5nZSBpbiBsb2Nrc3RlcAo+IGV2ZXJ5 d2hlcmUpLiByYWRlb24gaXMgbW9yZSBvcmdhbml6ZWQgbGlrZSB0aGF0IGFzIGFuIGV4YW1wbGUu IEJ1dCBmb3IKPiBpOTE1IHdlIGhhdmUgYWxsIHRoZSBndHQgY29kZSBpbiBpOTE1X2dlbV9ndHQu YywgYWxsIHRoZSByZXNldCBjb2RlIGluCj4gaTkxNV9ncHVfZXJyb3IuYywgYWxsIHRoZSBsZWdh Y3kgcmluZ3VmZmVyIHN0dWZmIGluIGludGVsX3JpbmdidWZmZXIuYy4KPgo+IEFuZCBoZW5jZSBJ IGFsc28gdGhpbmsgd2Ugc2hvdWxkIHB1dCBhbGwgdGhlIHZtYSBhbmQgdmlldyByZWxhdGVkIHRo aW5ncwo+IHRvZ2V0aGVyIHRvby4KCldoYXQgYWJvdXQgY3JlYXRpbmcgc29tZXRoaW5nIGxpa2Ug aW50ZWxfZGlzcGxheV9yb3RhdGlvbi5jIHRoZW4gdG8gbWVldCAKaGFsZi13YXk/IDopCgpSZWdh cmRzLAoKVHZydGtvCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cg==