From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 1/7] drm/i915: Use passed plane state for sprite planes, v4. Date: Thu, 7 Jan 2016 14:15:56 +0200 Message-ID: <20160107121556.GT4437@intel.com> References: <1452164052-21752-1-git-send-email-maarten.lankhorst@linux.intel.com> <1452164052-21752-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 mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 00EF88A383 for ; Thu, 7 Jan 2016 04:16:00 -0800 (PST) Content-Disposition: inline In-Reply-To: <1452164052-21752-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 T24gVGh1LCBKYW4gMDcsIDIwMTYgYXQgMTE6NTQ6MDZBTSArMDEwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gRG9uJ3QgdXNlIHBsYW5lLT5zdGF0ZSBkaXJlY3RseSwgdXNlIHRoZSBwb2lu dGVyIGZyb20gY29tbWl0X3BsYW5lLgo+IAo+IENoYW5nZXMgc2luY2UgdjE6Cj4gLSBGaXggdXNl cyBvZiBwbGFuZS0+c3RhdGUtPnJvdGF0aW9uIGFuZCBjb2xvciBrZXkgdG8gdXNlIHRoZSBwYXNz ZWQgc3RhdGUgdG9vLgo+IC0gT25seSBwYXNzIGNydGNfc3RhdGUgYW5kIHBsYW5lX3N0YXRlIHRv IHVwZGF0ZV9wbGFuZS4KPiBDaGFuZ2VzIHNpbmNlIHYyOgo+IC0gUmViYXNlZC4KPiBDaGFuZ2Vz IHNpbmNlIHYzOgo+IC0gU21hbGwgd2hpdGVzcGFjZSBjaGFuZ2VzIGFuZCBvbmx5IGFzc2lnbiAx IHZhcmlhYmxlIHBlciBsaW5lLgo+IC0gQ29uc3RpZnkgcGxhbmVfc3RhdGUgYW5kIGNydGNfc3Rh dGUuICh2c3lyamFsYSkKPiAKPiBTaWduZWQtb2ZmLWJ5OiBNYWFydGVuIExhbmtob3JzdCA8bWFh cnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgo+IENjOiBWaWxsZSBTeXJqw6Rsw6QgPHZp bGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgoKUmV2aWV3ZWQtYnk6IFZpbGxlIFN5cmrDpGzD pCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaCAgICB8ICAxMCArLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfc3ByaXRlLmMgfCAxMjQgKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0t Cj4gIDIgZmlsZXMgY2hhbmdlZCwgNzEgaW5zZXJ0aW9ucygrKSwgNjMgZGVsZXRpb25zKC0pCj4g Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBpbmRleCBhM2IyMDI1ZGE1NjMuLjA2ODA1MDg4 NDM1MyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gQEAgLTY1OCwxNiArNjU4LDEy IEBAIHN0cnVjdCBpbnRlbF9wbGFuZSB7Cj4gIAkvKgo+ICAJICogTk9URTogRG8gbm90IHBsYWNl IG5ldyBwbGFuZSBzdGF0ZSBmaWVsZHMgaGVyZSAoZS5nLiwgd2hlbiBhZGRpbmcKPiAgCSAqIG5l dyBwbGFuZSBwcm9wZXJ0aWVzKS4gIE5ldyBydW50aW1lIHN0YXRlIHNob3VsZCBub3cgYmUgcGxh Y2VkIGluCj4gLQkgKiB0aGUgaW50ZWxfcGxhbmVfc3RhdGUgc3RydWN0dXJlIGFuZCBhY2Nlc3Nl ZCB2aWEgZHJtX3BsYW5lLT5zdGF0ZS4KPiArCSAqIHRoZSBpbnRlbF9wbGFuZV9zdGF0ZSBzdHJ1 Y3R1cmUgYW5kIGFjY2Vzc2VkIHZpYSBwbGFuZV9zdGF0ZS4KPiAgCSAqLwo+ICAKPiAgCXZvaWQg KCp1cGRhdGVfcGxhbmUpKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+IC0JCQkgICAgIHN0cnVj dCBkcm1fY3J0YyAqY3J0YywKPiAtCQkJICAgICBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwK PiAtCQkJICAgICBpbnQgY3J0Y194LCBpbnQgY3J0Y195LAo+IC0JCQkgICAgIHVuc2lnbmVkIGlu dCBjcnRjX3csIHVuc2lnbmVkIGludCBjcnRjX2gsCj4gLQkJCSAgICAgdWludDMyX3QgeCwgdWlu dDMyX3QgeSwKPiAtCQkJICAgICB1aW50MzJfdCBzcmNfdywgdWludDMyX3Qgc3JjX2gpOwo+ICsJ CQkgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ICsJCQkg ICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpOwo+ICAJdm9p ZCAoKmRpc2FibGVfcGxhbmUpKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAJCQkgICAgICBz dHJ1Y3QgZHJtX2NydGMgKmNydGMpOwo+ICAJaW50ICgqY2hlY2tfcGxhbmUpKHN0cnVjdCBkcm1f cGxhbmUgKnBsYW5lLAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9z cHJpdGUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCj4gaW5kZXggNGZm N2ExZjQxODNlLi45ZjY0Mjg5MzMzZTggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfc3ByaXRlLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJp dGUuYwo+IEBAIC0xNzgsMjggKzE3OCwzMyBAQCB2b2lkIGludGVsX3BpcGVfdXBkYXRlX2VuZChz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKPiAgfQo+ICAKPiAgc3RhdGljIHZvaWQKPiAtc2tsX3Vw ZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpkcm1fcGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAq Y3J0YywKPiAtCQkgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCj4gLQkJIGludCBjcnRjX3gs IGludCBjcnRjX3ksCj4gLQkJIHVuc2lnbmVkIGludCBjcnRjX3csIHVuc2lnbmVkIGludCBjcnRj X2gsCj4gLQkJIHVpbnQzMl90IHgsIHVpbnQzMl90IHksCj4gLQkJIHVpbnQzMl90IHNyY193LCB1 aW50MzJfdCBzcmNfaCkKPiArc2tsX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpkcm1f cGxhbmUsCj4gKwkJIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ ICsJCSBjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQo+ICB7Cj4g IAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZHJtX3BsYW5lLT5kZXY7Cj4gIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICAJc3RydWN0IGlu dGVsX3BsYW5lICppbnRlbF9wbGFuZSA9IHRvX2ludGVsX3BsYW5lKGRybV9wbGFuZSk7Cj4gKwlz dHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5iYXNlLmZiOwo+ICAJc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IGludGVsX2ZiX29iaihmYik7Cj4gIAljb25z dCBpbnQgcGlwZSA9IGludGVsX3BsYW5lLT5waXBlOwo+ICAJY29uc3QgaW50IHBsYW5lID0gaW50 ZWxfcGxhbmUtPnBsYW5lICsgMTsKPiAgCXUzMiBwbGFuZV9jdGwsIHN0cmlkZV9kaXYsIHN0cmlk ZTsKPiAtCWNvbnN0IHN0cnVjdCBkcm1faW50ZWxfc3ByaXRlX2NvbG9ya2V5ICprZXkgPQo+IC0J CSZ0b19pbnRlbF9wbGFuZV9zdGF0ZShkcm1fcGxhbmUtPnN0YXRlKS0+Y2tleTsKPiArCWNvbnN0 IHN0cnVjdCBkcm1faW50ZWxfc3ByaXRlX2NvbG9ya2V5ICprZXkgPSAmcGxhbmVfc3RhdGUtPmNr ZXk7Cj4gIAl1MzIgc3VyZl9hZGRyOwo+ICAJdTMyIHRpbGVfaGVpZ2h0LCBwbGFuZV9vZmZzZXQs IHBsYW5lX3NpemU7Cj4gIAl1bnNpZ25lZCBpbnQgcm90YXRpb247Cj4gIAlpbnQgeF9vZmZzZXQs IHlfb2Zmc2V0Owo+IC0Jc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUgPSB0b19p bnRlbF9jcnRjKGNydGMpLT5jb25maWc7Cj4gLQlpbnQgc2NhbGVyX2lkOwo+ICsJaW50IGNydGNf eCA9IHBsYW5lX3N0YXRlLT5kc3QueDE7Cj4gKwlpbnQgY3J0Y195ID0gcGxhbmVfc3RhdGUtPmRz dC55MTsKPiArCXVpbnQzMl90IGNydGNfdyA9IGRybV9yZWN0X3dpZHRoKCZwbGFuZV9zdGF0ZS0+ ZHN0KTsKPiArCXVpbnQzMl90IGNydGNfaCA9IGRybV9yZWN0X2hlaWdodCgmcGxhbmVfc3RhdGUt PmRzdCk7Cj4gKwl1aW50MzJfdCB4ID0gcGxhbmVfc3RhdGUtPnNyYy54MSA+PiAxNjsKPiArCXVp bnQzMl90IHkgPSBwbGFuZV9zdGF0ZS0+c3JjLnkxID4+IDE2Owo+ICsJdWludDMyX3Qgc3JjX3cg PSBkcm1fcmVjdF93aWR0aCgmcGxhbmVfc3RhdGUtPnNyYykgPj4gMTY7Cj4gKwl1aW50MzJfdCBz cmNfaCA9IGRybV9yZWN0X2hlaWdodCgmcGxhbmVfc3RhdGUtPnNyYykgPj4gMTY7Cj4gKwljb25z dCBzdHJ1Y3QgaW50ZWxfc2NhbGVyICpzY2FsZXIgPQo+ICsJCSZjcnRjX3N0YXRlLT5zY2FsZXJf c3RhdGUuc2NhbGVyc1twbGFuZV9zdGF0ZS0+c2NhbGVyX2lkXTsKPiAgCj4gIAlwbGFuZV9jdGwg PSBQTEFORV9DVExfRU5BQkxFIHwKPiAgCQlQTEFORV9DVExfUElQRV9HQU1NQV9FTkFCTEUgfAo+ IEBAIC0yMDgsMTQgKzIxMywxMiBAQCBza2xfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUg KmRybV9wbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAJcGxhbmVfY3RsIHw9IHNrbF9w bGFuZV9jdGxfZm9ybWF0KGZiLT5waXhlbF9mb3JtYXQpOwo+ICAJcGxhbmVfY3RsIHw9IHNrbF9w bGFuZV9jdGxfdGlsaW5nKGZiLT5tb2RpZmllclswXSk7Cj4gIAo+IC0Jcm90YXRpb24gPSBkcm1f cGxhbmUtPnN0YXRlLT5yb3RhdGlvbjsKPiArCXJvdGF0aW9uID0gcGxhbmVfc3RhdGUtPmJhc2Uu cm90YXRpb247Cj4gIAlwbGFuZV9jdGwgfD0gc2tsX3BsYW5lX2N0bF9yb3RhdGlvbihyb3RhdGlv bik7Cj4gIAo+ICAJc3RyaWRlX2RpdiA9IGludGVsX2ZiX3N0cmlkZV9hbGlnbm1lbnQoZGV2LCBm Yi0+bW9kaWZpZXJbMF0sCj4gIAkJCQkJICAgICAgIGZiLT5waXhlbF9mb3JtYXQpOwo+ICAKPiAt CXNjYWxlcl9pZCA9IHRvX2ludGVsX3BsYW5lX3N0YXRlKGRybV9wbGFuZS0+c3RhdGUpLT5zY2Fs ZXJfaWQ7Cj4gLQo+ICAJLyogU2l6ZXMgYXJlIDAgYmFzZWQgKi8KPiAgCXNyY193LS07Cj4gIAlz cmNfaC0tOwo+IEBAIC0yNTYsMTMgKzI1OSwxMyBAQCBza2xfdXBkYXRlX3BsYW5lKHN0cnVjdCBk cm1fcGxhbmUgKmRybV9wbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAJSTkxNV9XUklU RShQTEFORV9TSVpFKHBpcGUsIHBsYW5lKSwgcGxhbmVfc2l6ZSk7Cj4gIAo+ICAJLyogcHJvZ3Jh bSBwbGFuZSBzY2FsZXIgKi8KPiAtCWlmIChzY2FsZXJfaWQgPj0gMCkgewo+ICsJaWYgKHBsYW5l X3N0YXRlLT5zY2FsZXJfaWQgPj0gMCkgewo+ICAJCXVpbnQzMl90IHBzX2N0cmwgPSAwOwo+ICsJ CWludCBzY2FsZXJfaWQgPSBwbGFuZV9zdGF0ZS0+c2NhbGVyX2lkOwo+ICAKPiAgCQlEUk1fREVC VUdfS01TKCJwbGFuZSA9ICVkIFBTX1BMQU5FX1NFTChwbGFuZSkgPSAweCV4XG4iLCBwbGFuZSwK PiAgCQkJUFNfUExBTkVfU0VMKHBsYW5lKSk7Cj4gLQkJcHNfY3RybCA9IFBTX1NDQUxFUl9FTiB8 IFBTX1BMQU5FX1NFTChwbGFuZSkgfAo+IC0JCQljcnRjX3N0YXRlLT5zY2FsZXJfc3RhdGUuc2Nh bGVyc1tzY2FsZXJfaWRdLm1vZGU7Cj4gKwkJcHNfY3RybCA9IFBTX1NDQUxFUl9FTiB8IFBTX1BM QU5FX1NFTChwbGFuZSkgfCBzY2FsZXItPm1vZGU7Cj4gIAkJSTkxNV9XUklURShTS0xfUFNfQ1RS TChwaXBlLCBzY2FsZXJfaWQpLCBwc19jdHJsKTsKPiAgCQlJOTE1X1dSSVRFKFNLTF9QU19QV1Jf R0FURShwaXBlLCBzY2FsZXJfaWQpLCAwKTsKPiAgCQlJOTE1X1dSSVRFKFNLTF9QU19XSU5fUE9T KHBpcGUsIHNjYWxlcl9pZCksIChjcnRjX3ggPDwgMTYpIHwgY3J0Y195KTsKPiBAQCAtMzM0LDI0 ICszMzcsMjkgQEAgY2h2X3VwZGF0ZV9jc2Moc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFu ZSwgdWludDMyX3QgZm9ybWF0KQo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZAo+IC12bHZfdXBkYXRl X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKmRwbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ IC0JCSBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiAtCQkgaW50IGNydGNfeCwgaW50IGNy dGNfeSwKPiAtCQkgdW5zaWduZWQgaW50IGNydGNfdywgdW5zaWduZWQgaW50IGNydGNfaCwKPiAt CQkgdWludDMyX3QgeCwgdWludDMyX3QgeSwKPiAtCQkgdWludDMyX3Qgc3JjX3csIHVpbnQzMl90 IHNyY19oKQo+ICt2bHZfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKmRwbGFuZSwKPiAr CQkgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gKwkJIGNvbnN0 IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCj4gIHsKPiAgCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBkcGxhbmUtPmRldjsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKmlu dGVsX3BsYW5lID0gdG9faW50ZWxfcGxhbmUoZHBsYW5lKTsKPiArCXN0cnVjdCBkcm1fZnJhbWVi dWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCAqb2JqID0gaW50ZWxfZmJfb2JqKGZiKTsKPiAgCWludCBwaXBlID0gaW50ZWxfcGxh bmUtPnBpcGU7Cj4gIAlpbnQgcGxhbmUgPSBpbnRlbF9wbGFuZS0+cGxhbmU7Cj4gIAl1MzIgc3By Y3RsOwo+ICAJdW5zaWduZWQgbG9uZyBzcHJzdXJmX29mZnNldCwgbGluZWFyX29mZnNldDsKPiAg CWludCBwaXhlbF9zaXplID0gZHJtX2Zvcm1hdF9wbGFuZV9jcHAoZmItPnBpeGVsX2Zvcm1hdCwg MCk7Cj4gLQljb25zdCBzdHJ1Y3QgZHJtX2ludGVsX3Nwcml0ZV9jb2xvcmtleSAqa2V5ID0KPiAt CQkmdG9faW50ZWxfcGxhbmVfc3RhdGUoZHBsYW5lLT5zdGF0ZSktPmNrZXk7Cj4gKwljb25zdCBz dHJ1Y3QgZHJtX2ludGVsX3Nwcml0ZV9jb2xvcmtleSAqa2V5ID0gJnBsYW5lX3N0YXRlLT5ja2V5 Owo+ICsJaW50IGNydGNfeCA9IHBsYW5lX3N0YXRlLT5kc3QueDE7Cj4gKwlpbnQgY3J0Y195ID0g cGxhbmVfc3RhdGUtPmRzdC55MTsKPiArCXVpbnQzMl90IGNydGNfdyA9IGRybV9yZWN0X3dpZHRo KCZwbGFuZV9zdGF0ZS0+ZHN0KTsKPiArCXVpbnQzMl90IGNydGNfaCA9IGRybV9yZWN0X2hlaWdo dCgmcGxhbmVfc3RhdGUtPmRzdCk7Cj4gKwl1aW50MzJfdCB4ID0gcGxhbmVfc3RhdGUtPnNyYy54 MSA+PiAxNjsKPiArCXVpbnQzMl90IHkgPSBwbGFuZV9zdGF0ZS0+c3JjLnkxID4+IDE2Owo+ICsJ dWludDMyX3Qgc3JjX3cgPSBkcm1fcmVjdF93aWR0aCgmcGxhbmVfc3RhdGUtPnNyYykgPj4gMTY7 Cj4gKwl1aW50MzJfdCBzcmNfaCA9IGRybV9yZWN0X2hlaWdodCgmcGxhbmVfc3RhdGUtPnNyYykg Pj4gMTY7Cj4gIAo+ICAJc3ByY3RsID0gU1BfRU5BQkxFOwo+ICAKPiBAQCAtNDIxLDcgKzQyOSw3 IEBAIHZsdl91cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqZHBsYW5lLCBzdHJ1Y3QgZHJt X2NydGMgKmNydGMsCj4gIAkJCQkJCQlmYi0+cGl0Y2hlc1swXSk7Cj4gIAlsaW5lYXJfb2Zmc2V0 IC09IHNwcnN1cmZfb2Zmc2V0Owo+ICAKPiAtCWlmIChkcGxhbmUtPnN0YXRlLT5yb3RhdGlvbiA9 PSBCSVQoRFJNX1JPVEFURV8xODApKSB7Cj4gKwlpZiAocGxhbmVfc3RhdGUtPmJhc2Uucm90YXRp b24gPT0gQklUKERSTV9ST1RBVEVfMTgwKSkgewo+ICAJCXNwcmN0bCB8PSBTUF9ST1RBVEVfMTgw Owo+ICAKPiAgCQl4ICs9IHNyY193Owo+IEBAIC00NzQsMjMgKzQ4MiwyOCBAQCB2bHZfZGlzYWJs ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpkcGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YykK PiAgfQo+ICAKPiAgc3RhdGljIHZvaWQKPiAtaXZiX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3Bs YW5lICpwbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjLAo+IC0JCSBzdHJ1Y3QgZHJtX2ZyYW1l YnVmZmVyICpmYiwKPiAtCQkgaW50IGNydGNfeCwgaW50IGNydGNfeSwKPiAtCQkgdW5zaWduZWQg aW50IGNydGNfdywgdW5zaWduZWQgaW50IGNydGNfaCwKPiAtCQkgdWludDMyX3QgeCwgdWludDMy X3QgeSwKPiAtCQkgdWludDMyX3Qgc3JjX3csIHVpbnQzMl90IHNyY19oKQo+ICtpdmJfdXBkYXRl X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICsJCSBjb25zdCBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiArCQkgY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0 YXRlICpwbGFuZV9zdGF0ZSkKPiAgewo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHBsYW5l LT5kZXY7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9w cml2YXRlOwo+ICAJc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZSA9IHRvX2ludGVsX3Bs YW5lKHBsYW5lKTsKPiArCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUt PmJhc2UuZmI7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gaW50ZWxfZmJf b2JqKGZiKTsKPiAgCWVudW0gcGlwZSBwaXBlID0gaW50ZWxfcGxhbmUtPnBpcGU7Cj4gIAl1MzIg c3ByY3RsLCBzcHJzY2FsZSA9IDA7Cj4gIAl1bnNpZ25lZCBsb25nIHNwcnN1cmZfb2Zmc2V0LCBs aW5lYXJfb2Zmc2V0Owo+ICAJaW50IHBpeGVsX3NpemUgPSBkcm1fZm9ybWF0X3BsYW5lX2NwcChm Yi0+cGl4ZWxfZm9ybWF0LCAwKTsKPiAtCWNvbnN0IHN0cnVjdCBkcm1faW50ZWxfc3ByaXRlX2Nv bG9ya2V5ICprZXkgPQo+IC0JCSZ0b19pbnRlbF9wbGFuZV9zdGF0ZShwbGFuZS0+c3RhdGUpLT5j a2V5Owo+ICsJY29uc3Qgc3RydWN0IGRybV9pbnRlbF9zcHJpdGVfY29sb3JrZXkgKmtleSA9ICZw bGFuZV9zdGF0ZS0+Y2tleTsKPiArCWludCBjcnRjX3ggPSBwbGFuZV9zdGF0ZS0+ZHN0LngxOwo+ ICsJaW50IGNydGNfeSA9IHBsYW5lX3N0YXRlLT5kc3QueTE7Cj4gKwl1aW50MzJfdCBjcnRjX3cg PSBkcm1fcmVjdF93aWR0aCgmcGxhbmVfc3RhdGUtPmRzdCk7Cj4gKwl1aW50MzJfdCBjcnRjX2gg PSBkcm1fcmVjdF9oZWlnaHQoJnBsYW5lX3N0YXRlLT5kc3QpOwo+ICsJdWludDMyX3QgeCA9IHBs YW5lX3N0YXRlLT5zcmMueDEgPj4gMTY7Cj4gKwl1aW50MzJfdCB5ID0gcGxhbmVfc3RhdGUtPnNy Yy55MSA+PiAxNjsKPiArCXVpbnQzMl90IHNyY193ID0gZHJtX3JlY3Rfd2lkdGgoJnBsYW5lX3N0 YXRlLT5zcmMpID4+IDE2Owo+ICsJdWludDMyX3Qgc3JjX2ggPSBkcm1fcmVjdF9oZWlnaHQoJnBs YW5lX3N0YXRlLT5zcmMpID4+IDE2Owo+ICAKPiAgCXNwcmN0bCA9IFNQUklURV9FTkFCTEU7Cj4g IAo+IEBAIC01NTAsNyArNTYzLDcgQEAgaXZiX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5l ICpwbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAJCQkJCSAgICAgICBwaXhlbF9zaXpl LCBmYi0+cGl0Y2hlc1swXSk7Cj4gIAlsaW5lYXJfb2Zmc2V0IC09IHNwcnN1cmZfb2Zmc2V0Owo+ ICAKPiAtCWlmIChwbGFuZS0+c3RhdGUtPnJvdGF0aW9uID09IEJJVChEUk1fUk9UQVRFXzE4MCkp IHsKPiArCWlmIChwbGFuZV9zdGF0ZS0+YmFzZS5yb3RhdGlvbiA9PSBCSVQoRFJNX1JPVEFURV8x ODApKSB7Cj4gIAkJc3ByY3RsIHw9IFNQUklURV9ST1RBVEVfMTgwOwo+ICAKPiAgCQkvKiBIU1cg YW5kIEJEVyBkb2VzIHRoaXMgYXV0b21hZ2ljYWxseSBpbiBoYXJkd2FyZSAqLwo+IEBAIC02MTIs MjMgKzYyNSwyOCBAQCBpdmJfZGlzYWJsZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwg c3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZAo+IC1pbGtfdXBk YXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMs Cj4gLQkJIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAo+IC0JCSBpbnQgY3J0Y194LCBpbnQg Y3J0Y195LAo+IC0JCSB1bnNpZ25lZCBpbnQgY3J0Y193LCB1bnNpZ25lZCBpbnQgY3J0Y19oLAo+ IC0JCSB1aW50MzJfdCB4LCB1aW50MzJfdCB5LAo+IC0JCSB1aW50MzJfdCBzcmNfdywgdWludDMy X3Qgc3JjX2gpCj4gK2lsa191cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4g KwkJIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ICsJCSBjb25z dCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQo+ICB7Cj4gIAlzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2ID0gcGxhbmUtPmRldjsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKmlu dGVsX3BsYW5lID0gdG9faW50ZWxfcGxhbmUocGxhbmUpOwo+ICsJc3RydWN0IGRybV9mcmFtZWJ1 ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+YmFzZS5mYjsKPiAgCXN0cnVjdCBkcm1faTkxNV9nZW1f b2JqZWN0ICpvYmogPSBpbnRlbF9mYl9vYmooZmIpOwo+ICAJaW50IHBpcGUgPSBpbnRlbF9wbGFu ZS0+cGlwZTsKPiAgCXVuc2lnbmVkIGxvbmcgZHZzc3VyZl9vZmZzZXQsIGxpbmVhcl9vZmZzZXQ7 Cj4gIAl1MzIgZHZzY250ciwgZHZzc2NhbGU7Cj4gIAlpbnQgcGl4ZWxfc2l6ZSA9IGRybV9mb3Jt YXRfcGxhbmVfY3BwKGZiLT5waXhlbF9mb3JtYXQsIDApOwo+IC0JY29uc3Qgc3RydWN0IGRybV9p bnRlbF9zcHJpdGVfY29sb3JrZXkgKmtleSA9Cj4gLQkJJnRvX2ludGVsX3BsYW5lX3N0YXRlKHBs YW5lLT5zdGF0ZSktPmNrZXk7Cj4gKwljb25zdCBzdHJ1Y3QgZHJtX2ludGVsX3Nwcml0ZV9jb2xv cmtleSAqa2V5ID0gJnBsYW5lX3N0YXRlLT5ja2V5Owo+ICsJaW50IGNydGNfeCA9IHBsYW5lX3N0 YXRlLT5kc3QueDE7Cj4gKwlpbnQgY3J0Y195ID0gcGxhbmVfc3RhdGUtPmRzdC55MTsKPiArCXVp bnQzMl90IGNydGNfdyA9IGRybV9yZWN0X3dpZHRoKCZwbGFuZV9zdGF0ZS0+ZHN0KTsKPiArCXVp bnQzMl90IGNydGNfaCA9IGRybV9yZWN0X2hlaWdodCgmcGxhbmVfc3RhdGUtPmRzdCk7Cj4gKwl1 aW50MzJfdCB4ID0gcGxhbmVfc3RhdGUtPnNyYy54MSA+PiAxNjsKPiArCXVpbnQzMl90IHkgPSBw bGFuZV9zdGF0ZS0+c3JjLnkxID4+IDE2Owo+ICsJdWludDMyX3Qgc3JjX3cgPSBkcm1fcmVjdF93 aWR0aCgmcGxhbmVfc3RhdGUtPnNyYykgPj4gMTY7Cj4gKwl1aW50MzJfdCBzcmNfaCA9IGRybV9y ZWN0X2hlaWdodCgmcGxhbmVfc3RhdGUtPnNyYykgPj4gMTY7Cj4gIAo+ICAJZHZzY250ciA9IERW U19FTkFCTEU7Cj4gIAo+IEBAIC02ODQsNyArNzAyLDcgQEAgaWxrX3VwZGF0ZV9wbGFuZShzdHJ1 Y3QgZHJtX3BsYW5lICpwbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAJCQkJCSAgICAg ICBwaXhlbF9zaXplLCBmYi0+cGl0Y2hlc1swXSk7Cj4gIAlsaW5lYXJfb2Zmc2V0IC09IGR2c3N1 cmZfb2Zmc2V0Owo+ICAKPiAtCWlmIChwbGFuZS0+c3RhdGUtPnJvdGF0aW9uID09IEJJVChEUk1f Uk9UQVRFXzE4MCkpIHsKPiArCWlmIChwbGFuZV9zdGF0ZS0+YmFzZS5yb3RhdGlvbiA9PSBCSVQo RFJNX1JPVEFURV8xODApKSB7Cj4gIAkJZHZzY250ciB8PSBEVlNfUk9UQVRFXzE4MDsKPiAgCj4g IAkJeCArPSBzcmNfdzsKPiBAQCAtOTE3LDIzICs5MzUsMTcgQEAgc3RhdGljIHZvaWQKPiAgaW50 ZWxfY29tbWl0X3Nwcml0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAgCQkJICBz dHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnN0YXRlKQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2NydGMg KmNydGMgPSBzdGF0ZS0+YmFzZS5jcnRjOwo+ICAJc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9w bGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lKTsKPiAtCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIg KmZiID0gc3RhdGUtPmJhc2UuZmI7Cj4gLQo+IC0JY3J0YyA9IGNydGMgPyBjcnRjIDogcGxhbmUt PmNydGM7Cj4gIAo+ICAJaWYgKHN0YXRlLT52aXNpYmxlKSB7Cj4gLQkJaW50ZWxfcGxhbmUtPnVw ZGF0ZV9wbGFuZShwbGFuZSwgY3J0YywgZmIsCj4gLQkJCQkJICBzdGF0ZS0+ZHN0LngxLCBzdGF0 ZS0+ZHN0LnkxLAo+IC0JCQkJCSAgZHJtX3JlY3Rfd2lkdGgoJnN0YXRlLT5kc3QpLAo+IC0JCQkJ CSAgZHJtX3JlY3RfaGVpZ2h0KCZzdGF0ZS0+ZHN0KSwKPiAtCQkJCQkgIHN0YXRlLT5zcmMueDEg Pj4gMTYsCj4gLQkJCQkJICBzdGF0ZS0+c3JjLnkxID4+IDE2LAo+IC0JCQkJCSAgZHJtX3JlY3Rf d2lkdGgoJnN0YXRlLT5zcmMpID4+IDE2LAo+IC0JCQkJCSAgZHJtX3JlY3RfaGVpZ2h0KCZzdGF0 ZS0+c3JjKSA+PiAxNik7Cj4gKwkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUg PQo+ICsJCQl0b19pbnRlbF9jcnRjKHN0YXRlLT5iYXNlLmNydGMpLT5jb25maWc7Cj4gKwo+ICsJ CWludGVsX3BsYW5lLT51cGRhdGVfcGxhbmUocGxhbmUsIGNydGNfc3RhdGUsIHN0YXRlKTsKPiAg CX0gZWxzZSB7Cj4gLQkJaW50ZWxfcGxhbmUtPmRpc2FibGVfcGxhbmUocGxhbmUsIGNydGMpOwo+ ICsJCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IHN0YXRlLT5iYXNlLmNydGM7Cj4gKwo+ICsJCWlu dGVsX3BsYW5lLT5kaXNhYmxlX3BsYW5lKHBsYW5lLCBjcnRjID86IHBsYW5lLT5jcnRjKTsKPiAg CX0KPiAgfQo+ICAKPiAtLSAKPiAyLjEuMAoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbCBPVEMK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK