From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH v2 01/11] drm/i915: Use passed plane state for sprite planes, v2. Date: Mon, 26 Oct 2015 10:30:22 +0100 Message-ID: <562DF2AE.2090702@linux.intel.com> References: <1445514996-18733-1-git-send-email-maarten.lankhorst@linux.intel.com> <1445514996-18733-2-git-send-email-maarten.lankhorst@linux.intel.com> <20151022125819.GS16848@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 CFDBB6E8AC for ; Mon, 26 Oct 2015 02:30:26 -0700 (PDT) In-Reply-To: <20151022125819.GS16848@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 T3AgMjItMTAtMTUgb20gMTQ6NTggc2NocmVlZiBEYW5pZWwgVmV0dGVyOgo+IE9uIFRodSwgT2N0 IDIyLCAyMDE1IGF0IDAxOjU2OjI2UE0gKzAyMDAsIE1hYXJ0ZW4gTGFua2hvcnN0IHdyb3RlOgo+ PiBEb24ndCB1c2UgcGxhbmUtPnN0YXRlIGRpcmVjdGx5LCB1c2UgdGhlIHBvaW50ZXIgZnJvbSBj b21taXRfcGxhbmUuCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFy dGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+Cj4+IC0tLQo+PiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHJ2LmggICAgfCAgOCArKy0tLQo+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfc3ByaXRlLmMgfCA2NyArKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0t Cj4+ICAyIGZpbGVzIGNoYW5nZWQsIDQ1IGluc2VydGlvbnMoKyksIDMwIGRlbGV0aW9ucygtKQo+ Pgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+PiBpbmRleCA0ZTM1NTU3YmJkNDEuLjUxNzIy ZTY1N2I5MSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgK Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPj4gQEAgLTYzMSwxNiAr NjMxLDE2IEBAIHN0cnVjdCBpbnRlbF9wbGFuZSB7Cj4+ICAJLyoKPj4gIAkgKiBOT1RFOiBEbyBu b3QgcGxhY2UgbmV3IHBsYW5lIHN0YXRlIGZpZWxkcyBoZXJlIChlLmcuLCB3aGVuIGFkZGluZwo+ PiAgCSAqIG5ldyBwbGFuZSBwcm9wZXJ0aWVzKS4gIE5ldyBydW50aW1lIHN0YXRlIHNob3VsZCBu b3cgYmUgcGxhY2VkIGluCj4+IC0JICogdGhlIGludGVsX3BsYW5lX3N0YXRlIHN0cnVjdHVyZSBh bmQgYWNjZXNzZWQgdmlhIGRybV9wbGFuZS0+c3RhdGUuCj4+ICsJICogdGhlIGludGVsX3BsYW5l X3N0YXRlIHN0cnVjdHVyZSBhbmQgYWNjZXNzZWQgdmlhIHBsYW5lX3N0YXRlLgo+PiAgCSAqLwo+ PiAgCj4+ICAJdm9pZCAoKnVwZGF0ZV9wbGFuZSkoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4+ IC0JCQkgICAgIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPj4gLQkJCSAgICAgc3RydWN0IGRybV9m cmFtZWJ1ZmZlciAqZmIsCj4+ICsJCQkgICAgIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxh bmVfc3RhdGUsCj4+ICAJCQkgICAgIGludCBjcnRjX3gsIGludCBjcnRjX3ksCj4+ICAJCQkgICAg IHVuc2lnbmVkIGludCBjcnRjX3csIHVuc2lnbmVkIGludCBjcnRjX2gsCj4+ICAJCQkgICAgIHVp bnQzMl90IHgsIHVpbnQzMl90IHksCj4+IC0JCQkgICAgIHVpbnQzMl90IHNyY193LCB1aW50MzJf dCBzcmNfaCk7Cj4+ICsJCQkgICAgIHVpbnQzMl90IHNyY193LCB1aW50MzJfdCBzcmNfaCwKPj4g KwkJCSAgICAgc3RydWN0IGludGVsX3NjYWxlciAqc2NhbGVyKTsKPiBUaGlzIGlzIGFuIHVnbHkg aGFjayBpbW8uIEJldHRlciB0byBhZGQgdGhlIHNjYWxlciBwb2ludGVyIHRvIHRoZSBwbGFuZQo+ IHN0YXRlLCBzZXQgaXQgaW4gY29tcHV0ZV9jb25maWcgb25jZSB3ZSdyZSBkb25lIGFuZCBub3Qg cGFzcyBpdCBhcm91bmQKPiBsaWtlIHRoaXMuIE9yIHdlIGFsc28gcGFzcyBhcm91bmQgYSBwb2lu dGVyIHRvIHRoZSByaWdodCBjcnRjX3N0YXRlLgo+Cj4gQWxzbywgaWYgd2UgcGFzcyBhcm91bmQg cGxhbmVfc3RhdGUgSSB0aGluayBhbGwgdGhlIGNydGNfeC95L3cvaCBhbmQgeC95Cj4gYW5kIHNy Y194L3kvdy9oIHNob3VsZCBkaXNhcHBlYXIsIGZvciBhIHJlYWxseSBjbGVhbiB2ZnVuYyBpbnRl cmZhY2UuCgpIb3cgYWJvdXQgdGhpcz8gV2l0aCAtLXNjaXNzb3JzCgpNYXliZSB0aGUgY29tbWVu dCBpbiBpbnRlbF9kcnYuaCBjYW4gYmUgcmVtb3ZlZCBub3cgdG9vLCBzaW5jZQpldmVyeXRoaW5n IGlzIHBhc3NlZCB0aHJvdWdoIHBsYW5lX3N0YXRlIG5vdy4KCi0tLS0tPjgtLS0tLS0tCkRvbid0 IHVzZSBwbGFuZS0+c3RhdGUgZGlyZWN0bHksIHVzZSB0aGUgcG9pbnRlciBmcm9tIGNvbW1pdF9w bGFuZS4KCkNoYW5nZXMgc2luY2UgdjE6Ci0gRml4IHVzZXMgb2YgcGxhbmUtPnN0YXRlLT5yb3Rh dGlvbiBhbmQgY29sb3Iga2V5IHRvIHVzZSB0aGUgcGFzc2VkIHN0YXRlIHRvby4KLSBPbmx5IHBh c3MgY3J0Y19zdGF0ZSBhbmQgcGxhbmVfc3RhdGUgdG8gdXBkYXRlX3BsYW5lLgoKU2lnbmVkLW9m Zi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNv bT4KLS0tCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCmluZGV4IDRlMzU1NTdiYmQ0MS4uNjgyZjcw Zjk1ZTE3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAorKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaApAQCAtNjMxLDE2ICs2MzEsMTIgQEAg c3RydWN0IGludGVsX3BsYW5lIHsKIAkvKgogCSAqIE5PVEU6IERvIG5vdCBwbGFjZSBuZXcgcGxh bmUgc3RhdGUgZmllbGRzIGhlcmUgKGUuZy4sIHdoZW4gYWRkaW5nCiAJICogbmV3IHBsYW5lIHBy b3BlcnRpZXMpLiAgTmV3IHJ1bnRpbWUgc3RhdGUgc2hvdWxkIG5vdyBiZSBwbGFjZWQgaW4KLQkg KiB0aGUgaW50ZWxfcGxhbmVfc3RhdGUgc3RydWN0dXJlIGFuZCBhY2Nlc3NlZCB2aWEgZHJtX3Bs YW5lLT5zdGF0ZS4KKwkgKiB0aGUgaW50ZWxfcGxhbmVfc3RhdGUgc3RydWN0dXJlIGFuZCBhY2Nl c3NlZCB2aWEgcGxhbmVfc3RhdGUuCiAJICovCiAKIAl2b2lkICgqdXBkYXRlX3BsYW5lKShzdHJ1 Y3QgZHJtX3BsYW5lICpwbGFuZSwKLQkJCSAgICAgc3RydWN0IGRybV9jcnRjICpjcnRjLAotCQkJ ICAgICBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKLQkJCSAgICAgaW50IGNydGNfeCwgaW50 IGNydGNfeSwKLQkJCSAgICAgdW5zaWduZWQgaW50IGNydGNfdywgdW5zaWduZWQgaW50IGNydGNf aCwKLQkJCSAgICAgdWludDMyX3QgeCwgdWludDMyX3QgeSwKLQkJCSAgICAgdWludDMyX3Qgc3Jj X3csIHVpbnQzMl90IHNyY19oKTsKKwkJCSAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNy dGNfc3RhdGUsCisJCQkgICAgIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUp OwogCXZvaWQgKCpkaXNhYmxlX3BsYW5lKShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkJCSAg ICAgIHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7CiAJaW50ICgqY2hlY2tfcGxhbmUpKHN0cnVjdCBk cm1fcGxhbmUgKnBsYW5lLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf c3ByaXRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwppbmRleCAyNTUx MzM1YWRhMDQuLjE4MTFiOGJjYWU5NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfc3ByaXRlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMK QEAgLTE3OCwyOSArMTc4LDM0IEBAIHZvaWQgaW50ZWxfcGlwZV91cGRhdGVfZW5kKHN0cnVjdCBp bnRlbF9jcnRjICpjcnRjKQogfQogCiBzdGF0aWMgdm9pZAotc2tsX3VwZGF0ZV9wbGFuZShzdHJ1 Y3QgZHJtX3BsYW5lICpkcm1fcGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKLQkJIHN0cnVj dCBkcm1fZnJhbWVidWZmZXIgKmZiLAotCQkgaW50IGNydGNfeCwgaW50IGNydGNfeSwKLQkJIHVu c2lnbmVkIGludCBjcnRjX3csIHVuc2lnbmVkIGludCBjcnRjX2gsCi0JCSB1aW50MzJfdCB4LCB1 aW50MzJfdCB5LAotCQkgdWludDMyX3Qgc3JjX3csIHVpbnQzMl90IHNyY19oKQorc2tsX3VwZGF0 ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpkcm1fcGxhbmUsCisJCSBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKKwkJIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVf c3RhdGUpCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGRybV9wbGFuZS0+ZGV2OwogCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3Ry dWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZSA9IHRvX2ludGVsX3BsYW5lKGRybV9wbGFuZSk7 CisJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+YmFzZS5mYjsKIAlz dHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gaW50ZWxfZmJfb2JqKGZiKTsKIAljb25z dCBpbnQgcGlwZSA9IGludGVsX3BsYW5lLT5waXBlOwogCWNvbnN0IGludCBwbGFuZSA9IGludGVs X3BsYW5lLT5wbGFuZSArIDE7CiAJdTMyIHBsYW5lX2N0bCwgc3RyaWRlX2Rpdiwgc3RyaWRlOwog CWludCBwaXhlbF9zaXplID0gZHJtX2Zvcm1hdF9wbGFuZV9jcHAoZmItPnBpeGVsX2Zvcm1hdCwg MCk7Ci0JY29uc3Qgc3RydWN0IGRybV9pbnRlbF9zcHJpdGVfY29sb3JrZXkgKmtleSA9Ci0JCSZ0 b19pbnRlbF9wbGFuZV9zdGF0ZShkcm1fcGxhbmUtPnN0YXRlKS0+Y2tleTsKKwljb25zdCBzdHJ1 Y3QgZHJtX2ludGVsX3Nwcml0ZV9jb2xvcmtleSAqa2V5ID0gJnBsYW5lX3N0YXRlLT5ja2V5Owog CXVuc2lnbmVkIGxvbmcgc3VyZl9hZGRyOwogCXUzMiB0aWxlX2hlaWdodCwgcGxhbmVfb2Zmc2V0 LCBwbGFuZV9zaXplOwogCXVuc2lnbmVkIGludCByb3RhdGlvbjsKIAlpbnQgeF9vZmZzZXQsIHlf b2Zmc2V0OwotCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlID0gdG9faW50ZWxf Y3J0YyhjcnRjKS0+Y29uZmlnOwotCWludCBzY2FsZXJfaWQ7CisKKwlzdHJ1Y3QgZHJtX2NydGMg KmNydGMgPSBjcnRjX3N0YXRlLT5iYXNlLmNydGM7CisJaW50IGNydGNfeCA9IHBsYW5lX3N0YXRl LT5kc3QueDEsIGNydGNfeSA9IHBsYW5lX3N0YXRlLT5kc3QueTE7CisJdWludDMyX3QgY3J0Y193 ID0gZHJtX3JlY3Rfd2lkdGgoJnBsYW5lX3N0YXRlLT5kc3QpOworCXVpbnQzMl90IGNydGNfaCA9 IGRybV9yZWN0X2hlaWdodCgmcGxhbmVfc3RhdGUtPmRzdCk7CisJdWludDMyX3QgeCA9IHBsYW5l X3N0YXRlLT5zcmMueDEgPj4gMTYsIHkgPSBwbGFuZV9zdGF0ZS0+c3JjLnkxID4+IDE2OworCXVp bnQzMl90IHNyY193ID0gZHJtX3JlY3Rfd2lkdGgoJnBsYW5lX3N0YXRlLT5zcmMpID4+IDE2Owor CXVpbnQzMl90IHNyY19oID0gZHJtX3JlY3RfaGVpZ2h0KCZwbGFuZV9zdGF0ZS0+c3JjKSA+PiAx NjsKKwljb25zdCBzdHJ1Y3QgaW50ZWxfc2NhbGVyICpzY2FsZXIgPQorCQkmY3J0Y19zdGF0ZS0+ c2NhbGVyX3N0YXRlLnNjYWxlcnNbcGxhbmVfc3RhdGUtPnNjYWxlcl9pZF07CiAKIAlwbGFuZV9j dGwgPSBQTEFORV9DVExfRU5BQkxFIHwKIAkJUExBTkVfQ1RMX1BJUEVfR0FNTUFfRU5BQkxFIHwK QEAgLTIwOSw3ICsyMTQsNyBAQCBza2xfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKmRy bV9wbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjLAogCXBsYW5lX2N0bCB8PSBza2xfcGxhbmVf Y3RsX2Zvcm1hdChmYi0+cGl4ZWxfZm9ybWF0KTsKIAlwbGFuZV9jdGwgfD0gc2tsX3BsYW5lX2N0 bF90aWxpbmcoZmItPm1vZGlmaWVyWzBdKTsKIAotCXJvdGF0aW9uID0gZHJtX3BsYW5lLT5zdGF0 ZS0+cm90YXRpb247CisJcm90YXRpb24gPSBwbGFuZV9zdGF0ZS0+YmFzZS5yb3RhdGlvbjsKIAlw bGFuZV9jdGwgfD0gc2tsX3BsYW5lX2N0bF9yb3RhdGlvbihyb3RhdGlvbik7CiAKIAlpbnRlbF91 cGRhdGVfc3ByaXRlX3dhdGVybWFya3MoZHJtX3BsYW5lLCBjcnRjLCBzcmNfdywgc3JjX2gsCkBA IC0yMTksOCArMjI0LDYgQEAgc2tsX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpkcm1f cGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAlzdHJpZGVfZGl2ID0gaW50ZWxfZmJfc3Ry aWRlX2FsaWdubWVudChkZXYsIGZiLT5tb2RpZmllclswXSwKIAkJCQkJICAgICAgIGZiLT5waXhl bF9mb3JtYXQpOwogCi0Jc2NhbGVyX2lkID0gdG9faW50ZWxfcGxhbmVfc3RhdGUoZHJtX3BsYW5l LT5zdGF0ZSktPnNjYWxlcl9pZDsKLQogCS8qIFNpemVzIGFyZSAwIGJhc2VkICovCiAJc3JjX3ct LTsKIAlzcmNfaC0tOwpAQCAtMjYxLDEzICsyNjQsMTMgQEAgc2tsX3VwZGF0ZV9wbGFuZShzdHJ1 Y3QgZHJtX3BsYW5lICpkcm1fcGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAlJOTE1X1dS SVRFKFBMQU5FX1NJWkUocGlwZSwgcGxhbmUpLCBwbGFuZV9zaXplKTsKIAogCS8qIHByb2dyYW0g cGxhbmUgc2NhbGVyICovCi0JaWYgKHNjYWxlcl9pZCA+PSAwKSB7CisJaWYgKHBsYW5lX3N0YXRl LT5zY2FsZXJfaWQgPj0gMCkgewogCQl1aW50MzJfdCBwc19jdHJsID0gMDsKKwkJaW50IHNjYWxl cl9pZCA9IHBsYW5lX3N0YXRlLT5zY2FsZXJfaWQ7CiAKIAkJRFJNX0RFQlVHX0tNUygicGxhbmUg PSAlZCBQU19QTEFORV9TRUwocGxhbmUpID0gMHgleFxuIiwgcGxhbmUsCiAJCQlQU19QTEFORV9T RUwocGxhbmUpKTsKLQkJcHNfY3RybCA9IFBTX1NDQUxFUl9FTiB8IFBTX1BMQU5FX1NFTChwbGFu ZSkgfAotCQkJY3J0Y19zdGF0ZS0+c2NhbGVyX3N0YXRlLnNjYWxlcnNbc2NhbGVyX2lkXS5tb2Rl OworCQlwc19jdHJsID0gUFNfU0NBTEVSX0VOIHwgUFNfUExBTkVfU0VMKHBsYW5lKSB8IHNjYWxl ci0+bW9kZTsKIAkJSTkxNV9XUklURShTS0xfUFNfQ1RSTChwaXBlLCBzY2FsZXJfaWQpLCBwc19j dHJsKTsKIAkJSTkxNV9XUklURShTS0xfUFNfUFdSX0dBVEUocGlwZSwgc2NhbGVyX2lkKSwgMCk7 CiAJCUk5MTVfV1JJVEUoU0tMX1BTX1dJTl9QT1MocGlwZSwgc2NhbGVyX2lkKSwgKGNydGNfeCA8 PCAxNikgfCBjcnRjX3kpOwpAQCAtMzQxLDI0ICszNDQsMjggQEAgY2h2X3VwZGF0ZV9jc2Moc3Ry dWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZSwgdWludDMyX3QgZm9ybWF0KQogfQogCiBzdGF0 aWMgdm9pZAotdmx2X3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpkcGxhbmUsIHN0cnVj dCBkcm1fY3J0YyAqY3J0YywKLQkJIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAotCQkgaW50 IGNydGNfeCwgaW50IGNydGNfeSwKLQkJIHVuc2lnbmVkIGludCBjcnRjX3csIHVuc2lnbmVkIGlu dCBjcnRjX2gsCi0JCSB1aW50MzJfdCB4LCB1aW50MzJfdCB5LAotCQkgdWludDMyX3Qgc3JjX3cs IHVpbnQzMl90IHNyY19oKQordmx2X3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpkcGxh bmUsCisJCSBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKKwkJIHN0cnVjdCBp bnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRl diA9IGRwbGFuZS0+ZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRl di0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZSA9IHRvX2lu dGVsX3BsYW5lKGRwbGFuZSk7CisJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9z dGF0ZS0+YmFzZS5mYjsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gaW50ZWxf ZmJfb2JqKGZiKTsKIAlpbnQgcGlwZSA9IGludGVsX3BsYW5lLT5waXBlOwogCWludCBwbGFuZSA9 IGludGVsX3BsYW5lLT5wbGFuZTsKIAl1MzIgc3ByY3RsOwogCXVuc2lnbmVkIGxvbmcgc3Byc3Vy Zl9vZmZzZXQsIGxpbmVhcl9vZmZzZXQ7CiAJaW50IHBpeGVsX3NpemUgPSBkcm1fZm9ybWF0X3Bs YW5lX2NwcChmYi0+cGl4ZWxfZm9ybWF0LCAwKTsKLQljb25zdCBzdHJ1Y3QgZHJtX2ludGVsX3Nw cml0ZV9jb2xvcmtleSAqa2V5ID0KLQkJJnRvX2ludGVsX3BsYW5lX3N0YXRlKGRwbGFuZS0+c3Rh dGUpLT5ja2V5OworCWNvbnN0IHN0cnVjdCBkcm1faW50ZWxfc3ByaXRlX2NvbG9ya2V5ICprZXkg PSAmcGxhbmVfc3RhdGUtPmNrZXk7CisKKwlpbnQgY3J0Y194ID0gcGxhbmVfc3RhdGUtPmRzdC54 MSwgY3J0Y195ID0gcGxhbmVfc3RhdGUtPmRzdC55MTsKKwl1aW50MzJfdCBjcnRjX3cgPSBkcm1f cmVjdF93aWR0aCgmcGxhbmVfc3RhdGUtPmRzdCk7CisJdWludDMyX3QgY3J0Y19oID0gZHJtX3Jl Y3RfaGVpZ2h0KCZwbGFuZV9zdGF0ZS0+ZHN0KTsKKwl1aW50MzJfdCB4ID0gcGxhbmVfc3RhdGUt PnNyYy54MSA+PiAxNiwgeSA9IHBsYW5lX3N0YXRlLT5zcmMueTEgPj4gMTY7CisJdWludDMyX3Qg c3JjX3cgPSBkcm1fcmVjdF93aWR0aCgmcGxhbmVfc3RhdGUtPnNyYykgPj4gMTY7CisJdWludDMy X3Qgc3JjX2ggPSBkcm1fcmVjdF9oZWlnaHQoJnBsYW5lX3N0YXRlLT5zcmMpID4+IDE2OwogCiAJ c3ByY3RsID0gU1BfRU5BQkxFOwogCkBAIC00MjgsNyArNDM1LDcgQEAgdmx2X3VwZGF0ZV9wbGFu ZShzdHJ1Y3QgZHJtX3BsYW5lICpkcGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJCQkJ CQlmYi0+cGl0Y2hlc1swXSk7CiAJbGluZWFyX29mZnNldCAtPSBzcHJzdXJmX29mZnNldDsKIAot CWlmIChkcGxhbmUtPnN0YXRlLT5yb3RhdGlvbiA9PSBCSVQoRFJNX1JPVEFURV8xODApKSB7CisJ aWYgKHBsYW5lX3N0YXRlLT5iYXNlLnJvdGF0aW9uID09IEJJVChEUk1fUk9UQVRFXzE4MCkpIHsK IAkJc3ByY3RsIHw9IFNQX1JPVEFURV8xODA7CiAKIAkJeCArPSBzcmNfdzsKQEAgLTQ4MSwyMyAr NDg4LDI4IEBAIHZsdl9kaXNhYmxlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKmRwbGFuZSwgc3Ry dWN0IGRybV9jcnRjICpjcnRjKQogfQogCiBzdGF0aWMgdm9pZAotaXZiX3VwZGF0ZV9wbGFuZShz dHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjLAotCQkgc3RydWN0 IGRybV9mcmFtZWJ1ZmZlciAqZmIsCi0JCSBpbnQgY3J0Y194LCBpbnQgY3J0Y195LAotCQkgdW5z aWduZWQgaW50IGNydGNfdywgdW5zaWduZWQgaW50IGNydGNfaCwKLQkJIHVpbnQzMl90IHgsIHVp bnQzMl90IHksCi0JCSB1aW50MzJfdCBzcmNfdywgdWludDMyX3Qgc3JjX2gpCitpdmJfdXBkYXRl X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAorCQkgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUsCisJCSBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRl KQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBwbGFuZS0+ZGV2OwogCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGludGVs X3BsYW5lICppbnRlbF9wbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lKTsKKwlzdHJ1Y3QgZHJt X2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5iYXNlLmZiOwogCXN0cnVjdCBkcm1faTkx NV9nZW1fb2JqZWN0ICpvYmogPSBpbnRlbF9mYl9vYmooZmIpOwogCWVudW0gcGlwZSBwaXBlID0g aW50ZWxfcGxhbmUtPnBpcGU7CiAJdTMyIHNwcmN0bCwgc3Byc2NhbGUgPSAwOwogCXVuc2lnbmVk IGxvbmcgc3Byc3VyZl9vZmZzZXQsIGxpbmVhcl9vZmZzZXQ7CiAJaW50IHBpeGVsX3NpemUgPSBk cm1fZm9ybWF0X3BsYW5lX2NwcChmYi0+cGl4ZWxfZm9ybWF0LCAwKTsKLQljb25zdCBzdHJ1Y3Qg ZHJtX2ludGVsX3Nwcml0ZV9jb2xvcmtleSAqa2V5ID0KLQkJJnRvX2ludGVsX3BsYW5lX3N0YXRl KHBsYW5lLT5zdGF0ZSktPmNrZXk7CisJY29uc3Qgc3RydWN0IGRybV9pbnRlbF9zcHJpdGVfY29s b3JrZXkgKmtleSA9ICZwbGFuZV9zdGF0ZS0+Y2tleTsKKworCXN0cnVjdCBkcm1fY3J0YyAqY3J0 YyA9IGNydGNfc3RhdGUtPmJhc2UuY3J0YzsKKwlpbnQgY3J0Y194ID0gcGxhbmVfc3RhdGUtPmRz dC54MSwgY3J0Y195ID0gcGxhbmVfc3RhdGUtPmRzdC55MTsKKwl1aW50MzJfdCBjcnRjX3cgPSBk cm1fcmVjdF93aWR0aCgmcGxhbmVfc3RhdGUtPmRzdCk7CisJdWludDMyX3QgY3J0Y19oID0gZHJt X3JlY3RfaGVpZ2h0KCZwbGFuZV9zdGF0ZS0+ZHN0KTsKKwl1aW50MzJfdCB4ID0gcGxhbmVfc3Rh dGUtPnNyYy54MSA+PiAxNiwgeSA9IHBsYW5lX3N0YXRlLT5zcmMueTEgPj4gMTY7CisJdWludDMy X3Qgc3JjX3cgPSBkcm1fcmVjdF93aWR0aCgmcGxhbmVfc3RhdGUtPnNyYykgPj4gMTY7CisJdWlu dDMyX3Qgc3JjX2ggPSBkcm1fcmVjdF9oZWlnaHQoJnBsYW5lX3N0YXRlLT5zcmMpID4+IDE2Owog CiAJc3ByY3RsID0gU1BSSVRFX0VOQUJMRTsKIApAQCAtNTYxLDcgKzU3Myw3IEBAIGl2Yl91cGRh dGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywK IAkJCQkJICAgICAgIHBpeGVsX3NpemUsIGZiLT5waXRjaGVzWzBdKTsKIAlsaW5lYXJfb2Zmc2V0 IC09IHNwcnN1cmZfb2Zmc2V0OwogCi0JaWYgKHBsYW5lLT5zdGF0ZS0+cm90YXRpb24gPT0gQklU KERSTV9ST1RBVEVfMTgwKSkgeworCWlmIChwbGFuZV9zdGF0ZS0+YmFzZS5yb3RhdGlvbiA9PSBC SVQoRFJNX1JPVEFURV8xODApKSB7CiAJCXNwcmN0bCB8PSBTUFJJVEVfUk9UQVRFXzE4MDsKIAog CQkvKiBIU1cgYW5kIEJEVyBkb2VzIHRoaXMgYXV0b21hZ2ljYWxseSBpbiBoYXJkd2FyZSAqLwpA QCAtNjIzLDIzICs2MzUsMjggQEAgaXZiX2Rpc2FibGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAq cGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIH0KIAogc3RhdGljIHZvaWQKLWlsa191cGRh dGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywK LQkJIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAotCQkgaW50IGNydGNfeCwgaW50IGNydGNf eSwKLQkJIHVuc2lnbmVkIGludCBjcnRjX3csIHVuc2lnbmVkIGludCBjcnRjX2gsCi0JCSB1aW50 MzJfdCB4LCB1aW50MzJfdCB5LAotCQkgdWludDMyX3Qgc3JjX3csIHVpbnQzMl90IHNyY19oKQor aWxrX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKKwkJIHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAorCQkgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpw bGFuZV9zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcGxhbmUtPmRldjsKIAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwogCXN0 cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFuZSk7CisJ c3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+YmFzZS5mYjsKIAlzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gaW50ZWxfZmJfb2JqKGZiKTsKIAlpbnQgcGlw ZSA9IGludGVsX3BsYW5lLT5waXBlOwogCXVuc2lnbmVkIGxvbmcgZHZzc3VyZl9vZmZzZXQsIGxp bmVhcl9vZmZzZXQ7CiAJdTMyIGR2c2NudHIsIGR2c3NjYWxlOwogCWludCBwaXhlbF9zaXplID0g ZHJtX2Zvcm1hdF9wbGFuZV9jcHAoZmItPnBpeGVsX2Zvcm1hdCwgMCk7Ci0JY29uc3Qgc3RydWN0 IGRybV9pbnRlbF9zcHJpdGVfY29sb3JrZXkgKmtleSA9Ci0JCSZ0b19pbnRlbF9wbGFuZV9zdGF0 ZShwbGFuZS0+c3RhdGUpLT5ja2V5OworCWNvbnN0IHN0cnVjdCBkcm1faW50ZWxfc3ByaXRlX2Nv bG9ya2V5ICprZXkgPSAmcGxhbmVfc3RhdGUtPmNrZXk7CisKKwlzdHJ1Y3QgZHJtX2NydGMgKmNy dGMgPSBjcnRjX3N0YXRlLT5iYXNlLmNydGM7CisJaW50IGNydGNfeCA9IHBsYW5lX3N0YXRlLT5k c3QueDEsIGNydGNfeSA9IHBsYW5lX3N0YXRlLT5kc3QueTE7CisJdWludDMyX3QgY3J0Y193ID0g ZHJtX3JlY3Rfd2lkdGgoJnBsYW5lX3N0YXRlLT5kc3QpOworCXVpbnQzMl90IGNydGNfaCA9IGRy bV9yZWN0X2hlaWdodCgmcGxhbmVfc3RhdGUtPmRzdCk7CisJdWludDMyX3QgeCA9IHBsYW5lX3N0 YXRlLT5zcmMueDEgPj4gMTYsIHkgPSBwbGFuZV9zdGF0ZS0+c3JjLnkxID4+IDE2OworCXVpbnQz Ml90IHNyY193ID0gZHJtX3JlY3Rfd2lkdGgoJnBsYW5lX3N0YXRlLT5zcmMpID4+IDE2OworCXVp bnQzMl90IHNyY19oID0gZHJtX3JlY3RfaGVpZ2h0KCZwbGFuZV9zdGF0ZS0+c3JjKSA+PiAxNjsK IAogCWR2c2NudHIgPSBEVlNfRU5BQkxFOwogCkBAIC02OTksNyArNzE2LDcgQEAgaWxrX3VwZGF0 ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjLAog CQkJCQkgICAgICAgcGl4ZWxfc2l6ZSwgZmItPnBpdGNoZXNbMF0pOwogCWxpbmVhcl9vZmZzZXQg LT0gZHZzc3VyZl9vZmZzZXQ7CiAKLQlpZiAocGxhbmUtPnN0YXRlLT5yb3RhdGlvbiA9PSBCSVQo RFJNX1JPVEFURV8xODApKSB7CisJaWYgKHBsYW5lX3N0YXRlLT5iYXNlLnJvdGF0aW9uID09IEJJ VChEUk1fUk9UQVRFXzE4MCkpIHsKIAkJZHZzY250ciB8PSBEVlNfUk9UQVRFXzE4MDsKIAogCQl4 ICs9IHNyY193OwpAQCAtOTMyLDIzICs5NDksMTcgQEAgc3RhdGljIHZvaWQKIGludGVsX2NvbW1p dF9zcHJpdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJCQkgIHN0cnVjdCBpbnRl bF9wbGFuZV9zdGF0ZSAqc3RhdGUpCiB7Ci0Jc3RydWN0IGRybV9jcnRjICpjcnRjID0gc3RhdGUt PmJhc2UuY3J0YzsKIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKmludGVsX3BsYW5lID0gdG9faW50ZWxf cGxhbmUocGxhbmUpOwotCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gc3RhdGUtPmJhc2Uu ZmI7Ci0KLQljcnRjID0gY3J0YyA/IGNydGMgOiBwbGFuZS0+Y3J0YzsKIAogCWlmIChzdGF0ZS0+ dmlzaWJsZSkgewotCQlpbnRlbF9wbGFuZS0+dXBkYXRlX3BsYW5lKHBsYW5lLCBjcnRjLCBmYiwK LQkJCQkJICBzdGF0ZS0+ZHN0LngxLCBzdGF0ZS0+ZHN0LnkxLAotCQkJCQkgIGRybV9yZWN0X3dp ZHRoKCZzdGF0ZS0+ZHN0KSwKLQkJCQkJICBkcm1fcmVjdF9oZWlnaHQoJnN0YXRlLT5kc3QpLAot CQkJCQkgIHN0YXRlLT5zcmMueDEgPj4gMTYsCi0JCQkJCSAgc3RhdGUtPnNyYy55MSA+PiAxNiwK LQkJCQkJICBkcm1fcmVjdF93aWR0aCgmc3RhdGUtPnNyYykgPj4gMTYsCi0JCQkJCSAgZHJtX3Jl Y3RfaGVpZ2h0KCZzdGF0ZS0+c3JjKSA+PiAxNik7CisJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlID0KKwkJCXRvX2ludGVsX2NydGMoc3RhdGUtPmJhc2UuY3J0YyktPmNvbmZp ZzsKKworCQlpbnRlbF9wbGFuZS0+dXBkYXRlX3BsYW5lKHBsYW5lLCBjcnRjX3N0YXRlLCBzdGF0 ZSk7CiAJfSBlbHNlIHsKLQkJaW50ZWxfcGxhbmUtPmRpc2FibGVfcGxhbmUocGxhbmUsIGNydGMp OworCQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBzdGF0ZS0+YmFzZS5jcnRjOworCisJCWludGVs X3BsYW5lLT5kaXNhYmxlX3BsYW5lKHBsYW5lLCBjcnRjID86IHBsYW5lLT5jcnRjKTsKIAl9CiB9 CiAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVs LWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==