From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v2 01/14] drm/i915: Use passed plane state for sprite planes, v3. Date: Tue, 3 Nov 2015 11:22:39 +0200 Message-ID: <20151103092239.GO4437@intel.com> References: <1446535913-31970-1-git-send-email-maarten.lankhorst@linux.intel.com> <1446535913-31970-2-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 mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 1402A6E0FB for ; Tue, 3 Nov 2015 01:23:40 -0800 (PST) Content-Disposition: inline In-Reply-To: <1446535913-31970-2-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 T24gVHVlLCBOb3YgMDMsIDIwMTUgYXQgMDg6MzE6NDBBTSArMDEwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gRG9uJ3QgdXNlIHBsYW5lLT5zdGF0ZSBkaXJlY3RseSwgdXNlIHRoZSBwb2lu dGVyIGZyb20gY29tbWl0X3BsYW5lLgo+IAo+IENoYW5nZXMgc2luY2UgdjE6Cj4gLSBGaXggdXNl cyBvZiBwbGFuZS0+c3RhdGUtPnJvdGF0aW9uIGFuZCBjb2xvciBrZXkgdG8gdXNlIHRoZSBwYXNz ZWQgc3RhdGUgdG9vLgo+IC0gT25seSBwYXNzIGNydGNfc3RhdGUgYW5kIHBsYW5lX3N0YXRlIHRv IHVwZGF0ZV9wbGFuZS4KPiBDaGFuZ2VzIHNpbmNlIHYyOgo+IC0gUmViYXNlZC4KPiAKPiBTaWdu ZWQtb2ZmLWJ5OiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50 ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICB8ICAx MCArLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMgfCAxMjAgKysrKysr KysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tCj4gIDIgZmlsZXMgY2hhbmdlZCwgNjcgaW5z ZXJ0aW9ucygrKSwgNjMgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgK PiBpbmRleCBkMWE2MDcxYWZhYmUuLjE2ZDQ2MjczNjRjNSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oCj4gQEAgLTY0NywxNiArNjQ3LDEyIEBAIHN0cnVjdCBpbnRlbF9wbGFuZSB7Cj4g IAkvKgo+ICAJICogTk9URTogRG8gbm90IHBsYWNlIG5ldyBwbGFuZSBzdGF0ZSBmaWVsZHMgaGVy ZSAoZS5nLiwgd2hlbiBhZGRpbmcKPiAgCSAqIG5ldyBwbGFuZSBwcm9wZXJ0aWVzKS4gIE5ldyBy dW50aW1lIHN0YXRlIHNob3VsZCBub3cgYmUgcGxhY2VkIGluCj4gLQkgKiB0aGUgaW50ZWxfcGxh bmVfc3RhdGUgc3RydWN0dXJlIGFuZCBhY2Nlc3NlZCB2aWEgZHJtX3BsYW5lLT5zdGF0ZS4KPiAr CSAqIHRoZSBpbnRlbF9wbGFuZV9zdGF0ZSBzdHJ1Y3R1cmUgYW5kIGFjY2Vzc2VkIHZpYSBwbGFu ZV9zdGF0ZS4KPiAgCSAqLwo+ICAKPiAgCXZvaWQgKCp1cGRhdGVfcGxhbmUpKHN0cnVjdCBkcm1f cGxhbmUgKnBsYW5lLAo+IC0JCQkgICAgIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAtCQkJICAg ICBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiAtCQkJICAgICBpbnQgY3J0Y194LCBpbnQg Y3J0Y195LAo+IC0JCQkgICAgIHVuc2lnbmVkIGludCBjcnRjX3csIHVuc2lnbmVkIGludCBjcnRj X2gsCj4gLQkJCSAgICAgdWludDMyX3QgeCwgdWludDMyX3QgeSwKPiAtCQkJICAgICB1aW50MzJf dCBzcmNfdywgdWludDMyX3Qgc3JjX2gpOwo+ICsJCQkgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlLAo+ICsJCQkgICAgIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxh bmVfc3RhdGUpOwoKVGhlc2Ugc2hvdWxkIGJlIGNvbnN0LgoKPiAgCXZvaWQgKCpkaXNhYmxlX3Bs YW5lKShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAgCQkJICAgICAgc3RydWN0IGRybV9jcnRj ICpjcnRjKTsKPiAgCWludCAoKmNoZWNrX3BsYW5lKShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+IGluZGV4IDQyNzZjMTM1YjlmMi4uNmQz MDQ3ZjljODBmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0 ZS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPiBAQCAtMTc4 LDI4ICsxNzgsMzIgQEAgdm9pZCBpbnRlbF9waXBlX3VwZGF0ZV9lbmQoc3RydWN0IGludGVsX2Ny dGMgKmNydGMpCj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkCj4gLXNrbF91cGRhdGVfcGxhbmUoc3Ry dWN0IGRybV9wbGFuZSAqZHJtX3BsYW5lLCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gLQkJIHN0 cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAo+IC0JCSBpbnQgY3J0Y194LCBpbnQgY3J0Y195LAo+ IC0JCSB1bnNpZ25lZCBpbnQgY3J0Y193LCB1bnNpZ25lZCBpbnQgY3J0Y19oLAo+IC0JCSB1aW50 MzJfdCB4LCB1aW50MzJfdCB5LAo+IC0JCSB1aW50MzJfdCBzcmNfdywgdWludDMyX3Qgc3JjX2gp Cj4gK3NrbF91cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqZHJtX3BsYW5lLAo+ICsJCSBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiArCQkgc3RydWN0IGludGVsX3Bs YW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKPiAgewo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 IGRybV9wbGFuZS0+ZGV2Owo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g ZGV2LT5kZXZfcHJpdmF0ZTsKPiAgCXN0cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxhbmUgPSB0 b19pbnRlbF9wbGFuZShkcm1fcGxhbmUpOwo+ICsJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIg PSBwbGFuZV9zdGF0ZS0+YmFzZS5mYjsKPiAgCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpv YmogPSBpbnRlbF9mYl9vYmooZmIpOwo+ICAJY29uc3QgaW50IHBpcGUgPSBpbnRlbF9wbGFuZS0+ cGlwZTsKPiAgCWNvbnN0IGludCBwbGFuZSA9IGludGVsX3BsYW5lLT5wbGFuZSArIDE7Cj4gIAl1 MzIgcGxhbmVfY3RsLCBzdHJpZGVfZGl2LCBzdHJpZGU7Cj4gLQljb25zdCBzdHJ1Y3QgZHJtX2lu dGVsX3Nwcml0ZV9jb2xvcmtleSAqa2V5ID0KPiAtCQkmdG9faW50ZWxfcGxhbmVfc3RhdGUoZHJt X3BsYW5lLT5zdGF0ZSktPmNrZXk7Cj4gKwljb25zdCBzdHJ1Y3QgZHJtX2ludGVsX3Nwcml0ZV9j b2xvcmtleSAqa2V5ID0gJnBsYW5lX3N0YXRlLT5ja2V5Owo+ICAJdW5zaWduZWQgbG9uZyBzdXJm X2FkZHI7Cj4gIAl1MzIgdGlsZV9oZWlnaHQsIHBsYW5lX29mZnNldCwgcGxhbmVfc2l6ZTsKPiAg CXVuc2lnbmVkIGludCByb3RhdGlvbjsKPiAgCWludCB4X29mZnNldCwgeV9vZmZzZXQ7Cj4gLQlz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSA9IHRvX2ludGVsX2NydGMoY3J0Yykt PmNvbmZpZzsKPiAtCWludCBzY2FsZXJfaWQ7Cj4gKwoKV2hhdCdzIHdpdGggdGhlIGV4dHJhIG5l d2xpbmU/Cgo+ICsJaW50IGNydGNfeCA9IHBsYW5lX3N0YXRlLT5kc3QueDEsIGNydGNfeSA9IHBs YW5lX3N0YXRlLT5kc3QueTE7Cj4gKwl1aW50MzJfdCBjcnRjX3cgPSBkcm1fcmVjdF93aWR0aCgm cGxhbmVfc3RhdGUtPmRzdCk7Cj4gKwl1aW50MzJfdCBjcnRjX2ggPSBkcm1fcmVjdF9oZWlnaHQo JnBsYW5lX3N0YXRlLT5kc3QpOwo+ICsJdWludDMyX3QgeCA9IHBsYW5lX3N0YXRlLT5zcmMueDEg Pj4gMTYsIHkgPSBwbGFuZV9zdGF0ZS0+c3JjLnkxID4+IDE2Owo+ICsJdWludDMyX3Qgc3JjX3cg PSBkcm1fcmVjdF93aWR0aCgmcGxhbmVfc3RhdGUtPnNyYykgPj4gMTY7Cj4gKwl1aW50MzJfdCBz cmNfaCA9IGRybV9yZWN0X2hlaWdodCgmcGxhbmVfc3RhdGUtPnNyYykgPj4gMTY7Cj4gKwljb25z dCBzdHJ1Y3QgaW50ZWxfc2NhbGVyICpzY2FsZXIgPQo+ICsJCSZjcnRjX3N0YXRlLT5zY2FsZXJf c3RhdGUuc2NhbGVyc1twbGFuZV9zdGF0ZS0+c2NhbGVyX2lkXTsKClRoaXMgbG9va3MgbWVzc3ku IEkgd291bGQgYXQgbGVhc3QgZ2V0IHJpZCBvZiB0aGUgImFzc2lnbiB0d28gdGhpbmdzIG9uCm9u ZSBsaW5lIHRoaW5nIi4KCj4gIAo+ICAJcGxhbmVfY3RsID0gUExBTkVfQ1RMX0VOQUJMRSB8Cj4g IAkJUExBTkVfQ1RMX1BJUEVfR0FNTUFfRU5BQkxFIHwKPiBAQCAtMjA4LDE0ICsyMTIsMTIgQEAg c2tsX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpkcm1fcGxhbmUsIHN0cnVjdCBkcm1f Y3J0YyAqY3J0YywKPiAgCXBsYW5lX2N0bCB8PSBza2xfcGxhbmVfY3RsX2Zvcm1hdChmYi0+cGl4 ZWxfZm9ybWF0KTsKPiAgCXBsYW5lX2N0bCB8PSBza2xfcGxhbmVfY3RsX3RpbGluZyhmYi0+bW9k aWZpZXJbMF0pOwo+ICAKPiAtCXJvdGF0aW9uID0gZHJtX3BsYW5lLT5zdGF0ZS0+cm90YXRpb247 Cj4gKwlyb3RhdGlvbiA9IHBsYW5lX3N0YXRlLT5iYXNlLnJvdGF0aW9uOwo+ICAJcGxhbmVfY3Rs IHw9IHNrbF9wbGFuZV9jdGxfcm90YXRpb24ocm90YXRpb24pOwo+ICAKPiAgCXN0cmlkZV9kaXYg PSBpbnRlbF9mYl9zdHJpZGVfYWxpZ25tZW50KGRldiwgZmItPm1vZGlmaWVyWzBdLAo+ICAJCQkJ CSAgICAgICBmYi0+cGl4ZWxfZm9ybWF0KTsKPiAgCj4gLQlzY2FsZXJfaWQgPSB0b19pbnRlbF9w bGFuZV9zdGF0ZShkcm1fcGxhbmUtPnN0YXRlKS0+c2NhbGVyX2lkOwo+IC0KPiAgCS8qIFNpemVz IGFyZSAwIGJhc2VkICovCj4gIAlzcmNfdy0tOwo+ICAJc3JjX2gtLTsKPiBAQCAtMjU2LDEzICsy NTgsMTMgQEAgc2tsX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpkcm1fcGxhbmUsIHN0 cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgCUk5MTVfV1JJVEUoUExBTkVfU0laRShwaXBlLCBwbGFu ZSksIHBsYW5lX3NpemUpOwo+ICAKPiAgCS8qIHByb2dyYW0gcGxhbmUgc2NhbGVyICovCj4gLQlp ZiAoc2NhbGVyX2lkID49IDApIHsKPiArCWlmIChwbGFuZV9zdGF0ZS0+c2NhbGVyX2lkID49IDAp IHsKPiAgCQl1aW50MzJfdCBwc19jdHJsID0gMDsKPiArCQlpbnQgc2NhbGVyX2lkID0gcGxhbmVf c3RhdGUtPnNjYWxlcl9pZDsKPiAgCj4gIAkJRFJNX0RFQlVHX0tNUygicGxhbmUgPSAlZCBQU19Q TEFORV9TRUwocGxhbmUpID0gMHgleFxuIiwgcGxhbmUsCj4gIAkJCVBTX1BMQU5FX1NFTChwbGFu ZSkpOwo+IC0JCXBzX2N0cmwgPSBQU19TQ0FMRVJfRU4gfCBQU19QTEFORV9TRUwocGxhbmUpIHwK PiAtCQkJY3J0Y19zdGF0ZS0+c2NhbGVyX3N0YXRlLnNjYWxlcnNbc2NhbGVyX2lkXS5tb2RlOwo+ ICsJCXBzX2N0cmwgPSBQU19TQ0FMRVJfRU4gfCBQU19QTEFORV9TRUwocGxhbmUpIHwgc2NhbGVy LT5tb2RlOwo+ICAJCUk5MTVfV1JJVEUoU0tMX1BTX0NUUkwocGlwZSwgc2NhbGVyX2lkKSwgcHNf Y3RybCk7Cj4gIAkJSTkxNV9XUklURShTS0xfUFNfUFdSX0dBVEUocGlwZSwgc2NhbGVyX2lkKSwg MCk7Cj4gIAkJSTkxNV9XUklURShTS0xfUFNfV0lOX1BPUyhwaXBlLCBzY2FsZXJfaWQpLCAoY3J0 Y194IDw8IDE2KSB8IGNydGNfeSk7Cj4gQEAgLTMzNCwyNCArMzM2LDI4IEBAIGNodl91cGRhdGVf Y3NjKHN0cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxhbmUsIHVpbnQzMl90IGZvcm1hdCkKPiAg fQo+ICAKPiAgc3RhdGljIHZvaWQKPiAtdmx2X3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5l ICpkcGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAtCQkgc3RydWN0IGRybV9mcmFtZWJ1 ZmZlciAqZmIsCj4gLQkJIGludCBjcnRjX3gsIGludCBjcnRjX3ksCj4gLQkJIHVuc2lnbmVkIGlu dCBjcnRjX3csIHVuc2lnbmVkIGludCBjcnRjX2gsCj4gLQkJIHVpbnQzMl90IHgsIHVpbnQzMl90 IHksCj4gLQkJIHVpbnQzMl90IHNyY193LCB1aW50MzJfdCBzcmNfaCkKPiArdmx2X3VwZGF0ZV9w bGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpkcGxhbmUsCj4gKwkJIHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlLAo+ICsJCSBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0 YXRlKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZHBsYW5lLT5kZXY7Cj4gIAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICAJ c3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZSA9IHRvX2ludGVsX3BsYW5lKGRwbGFuZSk7 Cj4gKwlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5iYXNlLmZiOwo+ ICAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IGludGVsX2ZiX29iaihmYik7Cj4g IAlpbnQgcGlwZSA9IGludGVsX3BsYW5lLT5waXBlOwo+ICAJaW50IHBsYW5lID0gaW50ZWxfcGxh bmUtPnBsYW5lOwo+ICAJdTMyIHNwcmN0bDsKPiAgCXVuc2lnbmVkIGxvbmcgc3Byc3VyZl9vZmZz ZXQsIGxpbmVhcl9vZmZzZXQ7Cj4gIAlpbnQgcGl4ZWxfc2l6ZSA9IGRybV9mb3JtYXRfcGxhbmVf Y3BwKGZiLT5waXhlbF9mb3JtYXQsIDApOwo+IC0JY29uc3Qgc3RydWN0IGRybV9pbnRlbF9zcHJp dGVfY29sb3JrZXkgKmtleSA9Cj4gLQkJJnRvX2ludGVsX3BsYW5lX3N0YXRlKGRwbGFuZS0+c3Rh dGUpLT5ja2V5Owo+ICsJY29uc3Qgc3RydWN0IGRybV9pbnRlbF9zcHJpdGVfY29sb3JrZXkgKmtl eSA9ICZwbGFuZV9zdGF0ZS0+Y2tleTsKPiArCj4gKwlpbnQgY3J0Y194ID0gcGxhbmVfc3RhdGUt PmRzdC54MSwgY3J0Y195ID0gcGxhbmVfc3RhdGUtPmRzdC55MTsKPiArCXVpbnQzMl90IGNydGNf dyA9IGRybV9yZWN0X3dpZHRoKCZwbGFuZV9zdGF0ZS0+ZHN0KTsKPiArCXVpbnQzMl90IGNydGNf aCA9IGRybV9yZWN0X2hlaWdodCgmcGxhbmVfc3RhdGUtPmRzdCk7Cj4gKwl1aW50MzJfdCB4ID0g cGxhbmVfc3RhdGUtPnNyYy54MSA+PiAxNiwgeSA9IHBsYW5lX3N0YXRlLT5zcmMueTEgPj4gMTY7 Cj4gKwl1aW50MzJfdCBzcmNfdyA9IGRybV9yZWN0X3dpZHRoKCZwbGFuZV9zdGF0ZS0+c3JjKSA+ PiAxNjsKPiArCXVpbnQzMl90IHNyY19oID0gZHJtX3JlY3RfaGVpZ2h0KCZwbGFuZV9zdGF0ZS0+ c3JjKSA+PiAxNjsKPiAgCj4gIAlzcHJjdGwgPSBTUF9FTkFCTEU7Cj4gIAo+IEBAIC00MjEsNyAr NDI3LDcgQEAgdmx2X3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpkcGxhbmUsIHN0cnVj dCBkcm1fY3J0YyAqY3J0YywKPiAgCQkJCQkJCWZiLT5waXRjaGVzWzBdKTsKPiAgCWxpbmVhcl9v ZmZzZXQgLT0gc3Byc3VyZl9vZmZzZXQ7Cj4gIAo+IC0JaWYgKGRwbGFuZS0+c3RhdGUtPnJvdGF0 aW9uID09IEJJVChEUk1fUk9UQVRFXzE4MCkpIHsKPiArCWlmIChwbGFuZV9zdGF0ZS0+YmFzZS5y b3RhdGlvbiA9PSBCSVQoRFJNX1JPVEFURV8xODApKSB7Cj4gIAkJc3ByY3RsIHw9IFNQX1JPVEFU RV8xODA7Cj4gIAo+ICAJCXggKz0gc3JjX3c7Cj4gQEAgLTQ3NCwyMyArNDgwLDI3IEBAIHZsdl9k aXNhYmxlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKmRwbGFuZSwgc3RydWN0IGRybV9jcnRjICpj cnRjKQo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZAo+IC1pdmJfdXBkYXRlX3BsYW5lKHN0cnVjdCBk cm1fcGxhbmUgKnBsYW5lLCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gLQkJIHN0cnVjdCBkcm1f ZnJhbWVidWZmZXIgKmZiLAo+IC0JCSBpbnQgY3J0Y194LCBpbnQgY3J0Y195LAo+IC0JCSB1bnNp Z25lZCBpbnQgY3J0Y193LCB1bnNpZ25lZCBpbnQgY3J0Y19oLAo+IC0JCSB1aW50MzJfdCB4LCB1 aW50MzJfdCB5LAo+IC0JCSB1aW50MzJfdCBzcmNfdywgdWludDMyX3Qgc3JjX2gpCj4gK2l2Yl91 cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gKwkJIHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ICsJCSBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBs YW5lX3N0YXRlKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcGxhbmUtPmRldjsK PiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7 Cj4gIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKmludGVsX3BsYW5lID0gdG9faW50ZWxfcGxhbmUocGxh bmUpOwo+ICsJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+YmFzZS5m YjsKPiAgCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSBpbnRlbF9mYl9vYmooZmIp Owo+ICAJZW51bSBwaXBlIHBpcGUgPSBpbnRlbF9wbGFuZS0+cGlwZTsKPiAgCXUzMiBzcHJjdGws IHNwcnNjYWxlID0gMDsKPiAgCXVuc2lnbmVkIGxvbmcgc3Byc3VyZl9vZmZzZXQsIGxpbmVhcl9v ZmZzZXQ7Cj4gIAlpbnQgcGl4ZWxfc2l6ZSA9IGRybV9mb3JtYXRfcGxhbmVfY3BwKGZiLT5waXhl bF9mb3JtYXQsIDApOwo+IC0JY29uc3Qgc3RydWN0IGRybV9pbnRlbF9zcHJpdGVfY29sb3JrZXkg KmtleSA9Cj4gLQkJJnRvX2ludGVsX3BsYW5lX3N0YXRlKHBsYW5lLT5zdGF0ZSktPmNrZXk7Cj4g Kwljb25zdCBzdHJ1Y3QgZHJtX2ludGVsX3Nwcml0ZV9jb2xvcmtleSAqa2V5ID0gJnBsYW5lX3N0 YXRlLT5ja2V5Owo+ICsKPiArCWludCBjcnRjX3ggPSBwbGFuZV9zdGF0ZS0+ZHN0LngxLCBjcnRj X3kgPSBwbGFuZV9zdGF0ZS0+ZHN0LnkxOwo+ICsJdWludDMyX3QgY3J0Y193ID0gZHJtX3JlY3Rf d2lkdGgoJnBsYW5lX3N0YXRlLT5kc3QpOwo+ICsJdWludDMyX3QgY3J0Y19oID0gZHJtX3JlY3Rf aGVpZ2h0KCZwbGFuZV9zdGF0ZS0+ZHN0KTsKPiArCXVpbnQzMl90IHggPSBwbGFuZV9zdGF0ZS0+ c3JjLngxID4+IDE2LCB5ID0gcGxhbmVfc3RhdGUtPnNyYy55MSA+PiAxNjsKPiArCXVpbnQzMl90 IHNyY193ID0gZHJtX3JlY3Rfd2lkdGgoJnBsYW5lX3N0YXRlLT5zcmMpID4+IDE2Owo+ICsJdWlu dDMyX3Qgc3JjX2ggPSBkcm1fcmVjdF9oZWlnaHQoJnBsYW5lX3N0YXRlLT5zcmMpID4+IDE2Owo+ ICAKPiAgCXNwcmN0bCA9IFNQUklURV9FTkFCTEU7Cj4gIAo+IEBAIC01NTAsNyArNTYwLDcgQEAg aXZiX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwgc3RydWN0IGRybV9jcnRj ICpjcnRjLAo+ICAJCQkJCSAgICAgICBwaXhlbF9zaXplLCBmYi0+cGl0Y2hlc1swXSk7Cj4gIAls aW5lYXJfb2Zmc2V0IC09IHNwcnN1cmZfb2Zmc2V0Owo+ICAKPiAtCWlmIChwbGFuZS0+c3RhdGUt PnJvdGF0aW9uID09IEJJVChEUk1fUk9UQVRFXzE4MCkpIHsKPiArCWlmIChwbGFuZV9zdGF0ZS0+ YmFzZS5yb3RhdGlvbiA9PSBCSVQoRFJNX1JPVEFURV8xODApKSB7Cj4gIAkJc3ByY3RsIHw9IFNQ UklURV9ST1RBVEVfMTgwOwo+ICAKPiAgCQkvKiBIU1cgYW5kIEJEVyBkb2VzIHRoaXMgYXV0b21h Z2ljYWxseSBpbiBoYXJkd2FyZSAqLwo+IEBAIC02MTIsMjMgKzYyMiwyNyBAQCBpdmJfZGlzYWJs ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZAo+IC1pbGtfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxh bmUgKnBsYW5lLCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gLQkJIHN0cnVjdCBkcm1fZnJhbWVi dWZmZXIgKmZiLAo+IC0JCSBpbnQgY3J0Y194LCBpbnQgY3J0Y195LAo+IC0JCSB1bnNpZ25lZCBp bnQgY3J0Y193LCB1bnNpZ25lZCBpbnQgY3J0Y19oLAo+IC0JCSB1aW50MzJfdCB4LCB1aW50MzJf dCB5LAo+IC0JCSB1aW50MzJfdCBzcmNfdywgdWludDMyX3Qgc3JjX2gpCj4gK2lsa191cGRhdGVf cGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gKwkJIHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlLAo+ICsJCSBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0 YXRlKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcGxhbmUtPmRldjsKPiAgCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gIAlz dHJ1Y3QgaW50ZWxfcGxhbmUgKmludGVsX3BsYW5lID0gdG9faW50ZWxfcGxhbmUocGxhbmUpOwo+ ICsJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+YmFzZS5mYjsKPiAg CXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSBpbnRlbF9mYl9vYmooZmIpOwo+ICAJ aW50IHBpcGUgPSBpbnRlbF9wbGFuZS0+cGlwZTsKPiAgCXVuc2lnbmVkIGxvbmcgZHZzc3VyZl9v ZmZzZXQsIGxpbmVhcl9vZmZzZXQ7Cj4gIAl1MzIgZHZzY250ciwgZHZzc2NhbGU7Cj4gIAlpbnQg cGl4ZWxfc2l6ZSA9IGRybV9mb3JtYXRfcGxhbmVfY3BwKGZiLT5waXhlbF9mb3JtYXQsIDApOwo+ IC0JY29uc3Qgc3RydWN0IGRybV9pbnRlbF9zcHJpdGVfY29sb3JrZXkgKmtleSA9Cj4gLQkJJnRv X2ludGVsX3BsYW5lX3N0YXRlKHBsYW5lLT5zdGF0ZSktPmNrZXk7Cj4gKwljb25zdCBzdHJ1Y3Qg ZHJtX2ludGVsX3Nwcml0ZV9jb2xvcmtleSAqa2V5ID0gJnBsYW5lX3N0YXRlLT5ja2V5Owo+ICsK PiArCWludCBjcnRjX3ggPSBwbGFuZV9zdGF0ZS0+ZHN0LngxLCBjcnRjX3kgPSBwbGFuZV9zdGF0 ZS0+ZHN0LnkxOwo+ICsJdWludDMyX3QgY3J0Y193ID0gZHJtX3JlY3Rfd2lkdGgoJnBsYW5lX3N0 YXRlLT5kc3QpOwo+ICsJdWludDMyX3QgY3J0Y19oID0gZHJtX3JlY3RfaGVpZ2h0KCZwbGFuZV9z dGF0ZS0+ZHN0KTsKPiArCXVpbnQzMl90IHggPSBwbGFuZV9zdGF0ZS0+c3JjLngxID4+IDE2LCB5 ID0gcGxhbmVfc3RhdGUtPnNyYy55MSA+PiAxNjsKPiArCXVpbnQzMl90IHNyY193ID0gZHJtX3Jl Y3Rfd2lkdGgoJnBsYW5lX3N0YXRlLT5zcmMpID4+IDE2Owo+ICsJdWludDMyX3Qgc3JjX2ggPSBk cm1fcmVjdF9oZWlnaHQoJnBsYW5lX3N0YXRlLT5zcmMpID4+IDE2Owo+ICAKPiAgCWR2c2NudHIg PSBEVlNfRU5BQkxFOwo+ICAKPiBAQCAtNjg0LDcgKzY5OCw3IEBAIGlsa191cGRhdGVfcGxhbmUo c3RydWN0IGRybV9wbGFuZSAqcGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgCQkJCQkg ICAgICAgcGl4ZWxfc2l6ZSwgZmItPnBpdGNoZXNbMF0pOwo+ICAJbGluZWFyX29mZnNldCAtPSBk dnNzdXJmX29mZnNldDsKPiAgCj4gLQlpZiAocGxhbmUtPnN0YXRlLT5yb3RhdGlvbiA9PSBCSVQo RFJNX1JPVEFURV8xODApKSB7Cj4gKwlpZiAocGxhbmVfc3RhdGUtPmJhc2Uucm90YXRpb24gPT0g QklUKERSTV9ST1RBVEVfMTgwKSkgewo+ICAJCWR2c2NudHIgfD0gRFZTX1JPVEFURV8xODA7Cj4g IAo+ICAJCXggKz0gc3JjX3c7Cj4gQEAgLTkxNywyMyArOTMxLDE3IEBAIHN0YXRpYyB2b2lkCj4g IGludGVsX2NvbW1pdF9zcHJpdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gIAkJ CSAgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpzdGF0ZSkKCkkgd29uZGVyIHdoeSB0aGF0IGlz bid0IGNvbnN0Li4uCgo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBzdGF0ZS0+YmFz ZS5jcnRjOwo+ICAJc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZSA9IHRvX2ludGVsX3Bs YW5lKHBsYW5lKTsKPiAtCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gc3RhdGUtPmJhc2Uu ZmI7Cj4gLQo+IC0JY3J0YyA9IGNydGMgPyBjcnRjIDogcGxhbmUtPmNydGM7Cj4gIAo+ICAJaWYg KHN0YXRlLT52aXNpYmxlKSB7Cj4gLQkJaW50ZWxfcGxhbmUtPnVwZGF0ZV9wbGFuZShwbGFuZSwg Y3J0YywgZmIsCj4gLQkJCQkJICBzdGF0ZS0+ZHN0LngxLCBzdGF0ZS0+ZHN0LnkxLAo+IC0JCQkJ CSAgZHJtX3JlY3Rfd2lkdGgoJnN0YXRlLT5kc3QpLAo+IC0JCQkJCSAgZHJtX3JlY3RfaGVpZ2h0 KCZzdGF0ZS0+ZHN0KSwKPiAtCQkJCQkgIHN0YXRlLT5zcmMueDEgPj4gMTYsCj4gLQkJCQkJICBz dGF0ZS0+c3JjLnkxID4+IDE2LAo+IC0JCQkJCSAgZHJtX3JlY3Rfd2lkdGgoJnN0YXRlLT5zcmMp ID4+IDE2LAo+IC0JCQkJCSAgZHJtX3JlY3RfaGVpZ2h0KCZzdGF0ZS0+c3JjKSA+PiAxNik7Cj4g KwkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUgPQo+ICsJCQl0b19pbnRlbF9j cnRjKHN0YXRlLT5iYXNlLmNydGMpLT5jb25maWc7Cj4gKwo+ICsJCWludGVsX3BsYW5lLT51cGRh dGVfcGxhbmUocGxhbmUsIGNydGNfc3RhdGUsIHN0YXRlKTsKPiAgCX0gZWxzZSB7Cj4gLQkJaW50 ZWxfcGxhbmUtPmRpc2FibGVfcGxhbmUocGxhbmUsIGNydGMpOwo+ICsJCXN0cnVjdCBkcm1fY3J0 YyAqY3J0YyA9IHN0YXRlLT5iYXNlLmNydGM7Cj4gKwo+ICsJCWludGVsX3BsYW5lLT5kaXNhYmxl X3BsYW5lKHBsYW5lLCBjcnRjID86IHBsYW5lLT5jcnRjKTsKPiAgCX0KPiAgfQo+ICAKPiAtLSAK PiAyLjEuMAo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKPiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4CgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsIE9UQwpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=