From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: Re: [PATCH v2 07/20] drm/i915: Rework primary plane stuff slightly. Date: Tue, 07 Jul 2015 16:02:32 +0200 Message-ID: <559BDBF8.9060309@linux.intel.com> References: <1436252911-5703-1-git-send-email-maarten.lankhorst@linux.intel.com> <1436252911-5703-8-git-send-email-maarten.lankhorst@linux.intel.com> <20150707111655.GJ7568@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id CF4BA89276 for ; Tue, 7 Jul 2015 07:02:58 -0700 (PDT) In-Reply-To: <20150707111655.GJ7568@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 T3AgMDctMDctMTUgb20gMTM6MTYgc2NocmVlZiBEYW5pZWwgVmV0dGVyOgo+IE9uIFR1ZSwgSnVs IDA3LCAyMDE1IGF0IDA5OjA4OjE4QU0gKzAyMDAsIE1hYXJ0ZW4gTGFua2hvcnN0IHdyb3RlOgo+ PiBNYWtlIHN1cmUgdGhlIHByaW1hcnkgcGxhbmUgaXMgc2V0IHVwIGNvcnJlY3RseS4gVGhpcyBp cyBkb25lIGJ5Cj4+IHNldHRpbmcgcGxhbmVfc3RhdGUtPnNyYyBhbmQgcGxhbmVfc3RhdGUtPmNy dGMuCj4+Cj4+IEFsbCBub24tcHJpbWFyeSBwbGFuZXMgZ2V0IGRpc2FibGVkLgo+IFRvbyB0ZXJz ZSBjb21taXQgbWVzc2FnZSwgZmFpbHMgdG8gbWVudGlvbiB0aGF0IHRoaXMgaXMgYWJvdXQgaHcK PiByZWFkb3V0IGNvbXBsZXRlbHkuIEFsc28gc2hvdWxkIG1lbnRpb24gdGhhdCB0aGlzIHJlbW92 ZXMgdGhlCj4gaW5pdGlhbF9wbGFuZXMgaGFjay4KPgo+PiBTaWduZWQtb2ZmLWJ5OiBNYWFydGVu IExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgo+PiAtLS0KPj4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pYy5jICB8ICAgNyAtLQo+PiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgMTY3ICsrKysrKysrKysrKystLS0tLS0t LS0tLS0tLS0tLS0tLS0tCj4+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAg fCAgIDIgLQo+PiAgMyBmaWxlcyBjaGFuZ2VkLCA2MCBpbnNlcnRpb25zKCspLCAxMTYgZGVsZXRp b25zKC0pCj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9t aWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pYy5jCj4+IGluZGV4IDQyOTY3 N2ExMTFkNS4uYjU5MzYxMmE5MTdkIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9hdG9taWMuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9t aWMuYwo+PiBAQCAtOTgsMTMgKzk4LDYgQEAgaW50IGludGVsX2F0b21pY19jaGVjayhzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LAo+PiAgCQlyZXR1cm4gLUVJTlZBTDsKPj4gIAl9Cj4+ICAKPj4gLQlp ZiAoY3J0Y19zdGF0ZSAmJgo+PiAtCSAgICBjcnRjX3N0YXRlLT5xdWlya3MgJiBQSVBFX0NPTkZJ R19RVUlSS19JTklUSUFMX1BMQU5FUykgewo+PiAtCQlyZXQgPSBkcm1fYXRvbWljX2FkZF9hZmZl Y3RlZF9wbGFuZXMoc3RhdGUsICZudWNsZWFyX2NydGMtPmJhc2UpOwo+PiAtCQlpZiAocmV0KQo+ PiAtCQkJcmV0dXJuIHJldDsKPj4gLQl9Cj4+IC0KPj4gIAlyZXQgPSBkcm1fYXRvbWljX2hlbHBl cl9jaGVja19wbGFuZXMoZGV2LCBzdGF0ZSk7Cj4+ICAJaWYgKHJldCkKPj4gIAkJcmV0dXJuIHJl dDsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+PiBpbmRleCBlYjdjMmUyODE5 YjcuLmZhMTEwMjM5MmVjYSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku Ywo+PiBAQCAtMTA5LDYgKzEwOSw3IEBAIHN0YXRpYyB2b2lkIHNrbF9pbml0X3NjYWxlcnMoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGludGVsX2NydGMgKmludGVsX2NyCj4+ICAJc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpOwo+PiAgc3RhdGljIGludCBpOXh4X2dl dF9yZWZjbGsoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4+ICAJ CQkgICBpbnQgbnVtX2Nvbm5lY3RvcnMpOwo+PiArc3RhdGljIHZvaWQgaW50ZWxfcHJlX2Rpc2Fi bGVfcHJpbWFyeShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpOwo+PiAgCj4+ICBzdGF0aWMgc3RydWN0 IGludGVsX2VuY29kZXIgKmludGVsX2ZpbmRfZW5jb2RlcihzdHJ1Y3QgaW50ZWxfY29ubmVjdG9y ICpjb25uZWN0b3IsIGludCBwaXBlKQo+PiAgewo+PiBAQCAtMjU4MiwxMSArMjU4MywxMiBAQCBp bnRlbF9maW5kX2luaXRpYWxfcGxhbmVfb2JqKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRj LAo+PiAgewo+PiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9jcnRjLT5iYXNlLmRl djsKPj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2 YXRlOwo+PiAtCXN0cnVjdCBkcm1fY3J0YyAqYzsKPj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaTsK Pj4gIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOwo+PiAtCXN0cnVjdCBkcm1fcGxh bmUgKnByaW1hcnkgPSBpbnRlbF9jcnRjLT5iYXNlLnByaW1hcnk7Cj4+ICAJc3RydWN0IGRybV9m cmFtZWJ1ZmZlciAqZmI7Cj4+ICsJc3RydWN0IGRybV9wbGFuZSAqcHJpbWFyeSA9IGludGVsX2Ny dGMtPmJhc2UucHJpbWFyeTsKPj4gKwlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnA7Cj4+ICsJc3RydWN0 IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSA9Cj4+ICsJCXRvX2ludGVsX3BsYW5lX3N0 YXRlKHByaW1hcnktPnN0YXRlKTsKPj4gIAo+PiAgCWlmICghcGxhbmVfY29uZmlnLT5mYikKPj4g IAkJcmV0dXJuOwo+PiBAQCAtMjYwMiwxNiArMjYwNCwxMSBAQCBpbnRlbF9maW5kX2luaXRpYWxf cGxhbmVfb2JqKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLAo+PiAgCSAqIEZhaWxlZCB0 byBhbGxvYyB0aGUgb2JqLCBjaGVjayB0byBzZWUgaWYgd2Ugc2hvdWxkIHNoYXJlCj4+ICAJICog YW4gZmIgd2l0aCBhbm90aGVyIENSVEMgaW5zdGVhZAo+PiAgCSAqLwo+PiAtCWZvcl9lYWNoX2Ny dGMoZGV2LCBjKSB7Cj4+IC0JCWkgPSB0b19pbnRlbF9jcnRjKGMpOwo+PiAtCj4+IC0JCWlmIChj ID09ICZpbnRlbF9jcnRjLT5iYXNlKQo+PiAtCQkJY29udGludWU7Cj4+IC0KPj4gLQkJaWYgKCFp LT5hY3RpdmUpCj4+ICsJZm9yX2VhY2hfaW50ZWxfcGxhbmUoZGV2LCBwKSB7Cj4+ICsJCWlmIChw LT5iYXNlLnR5cGUgIT0gRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSkKPj4gIAkJCWNvbnRpbnVlOwo+ PiAgCj4+IC0JCWZiID0gYy0+cHJpbWFyeS0+ZmI7Cj4+ICsJCWZiID0gcC0+YmFzZS5zdGF0ZS0+ ZmI7Cj4gVGhpcyBzZWVtcyB0byBicmVhayB0aGUgc2hhcmluZyBsb2dpYyBjb21wbGV0ZWx5OiBX ZSB3YW50IHRvIGNoZWNrIHByaW1hcnkKPiBwbGFuZXMgb2YgYWxsIG90aGVyIGNydGNzIHRvIHNl ZSB3aGV0aGVyIHdlIGNvdWxkIG1lcmdlZCB0aGUgZmIgdG9nZXRoZXIuCj4gV2UgZG9uJ3QgZXZl biByZWFkIG91dCBwbGFuZSBzdGF0ZSBmb3Igbm9uLXByaW1hcnkgcGxhbmVzLCBzbyB0aGUgYmVs b3cgZmIKPiBjaGVjayB3aWxsIG5ldmVyIGJlIG5vbi1OVUxMLgpJIHRob3VnaHQgdGhpcyB3YXMg YWJvdXQgbXVsdGlwbGUgcGxhbmVzIHNoYXJpbmcgdGhlIHNhbWUgZmIgd2l0aCBzYW1lIG9mZnNl dC4KQW5kIGFzIHN1Y2ggY2hlY2tpbmcgZm9yIHRoZSBjcnRjIGlzIHVubmVjZXNzYXJ5LCBmb3Ig dGhlIGN1cnJlbnQgY3J0YyBpdCB3aWxsIGJlIGJlIE5VTEwgaGVyZS4KClRoaXMgb25seSByZWFk cyBvdXQgdGhlIGN1cnJlbnQgZmIsIG5vdCBkaWZmZXJlbnQgb25lcy4KCkFuZCBzaGFyaW5nIHRo ZSBzYW1lIGZiIHdpdGggb3RoZXIgY3J0YydzIGlzIGRvbmUgaW4gaW50ZWxfZmJkZXZfaW5pdF9i aW9zLgoKPj4gIAkJaWYgKCFmYikKPj4gIAkJCWNvbnRpbnVlOwo+PiAgCj4+IEBAIC0yNjIyLDE4 ICsyNjE5LDI4IEBAIGludGVsX2ZpbmRfaW5pdGlhbF9wbGFuZV9vYmooc3RydWN0IGludGVsX2Ny dGMgKmludGVsX2NydGMsCj4+ICAJCX0KPj4gIAl9Cj4+ICAKPj4gKwlpbnRlbF9wcmVfZGlzYWJs ZV9wcmltYXJ5KCZpbnRlbF9jcnRjLT5iYXNlKTsKPj4gKwl0b19pbnRlbF9wbGFuZShwcmltYXJ5 KS0+ZGlzYWJsZV9wbGFuZShwcmltYXJ5LCAmaW50ZWxfY3J0Yy0+YmFzZSk7Cj4+ICsKPj4gIAly ZXR1cm47Cj4+ICAKPj4gIHZhbGlkX2ZiOgo+PiArCWRybV9mcmFtZWJ1ZmZlcl9yZWZlcmVuY2Uo ZmIpOwo+PiArCXByaW1hcnktPmZiID0gcGxhbmVfc3RhdGUtPmJhc2UuZmIgPSBmYjsKPj4gKwlw bGFuZV9zdGF0ZS0+YmFzZS5jcnRjID0gcHJpbWFyeS0+Y3J0YyA9ICZpbnRlbF9jcnRjLT5iYXNl Owo+PiArCj4+ICsJcGxhbmVfc3RhdGUtPmJhc2Uuc3JjX3ggPSBwbGFuZV9zdGF0ZS0+YmFzZS5z cmNfeSA9IDA7Cj4+ICsJcGxhbmVfc3RhdGUtPmJhc2Uuc3JjX3cgPSBmYi0+d2lkdGggPDwgMTY7 Cj4+ICsJcGxhbmVfc3RhdGUtPmJhc2Uuc3JjX2ggPSBmYi0+aGVpZ2h0IDw8IDE2Owo+PiArCj4+ ICsJcGxhbmVfc3RhdGUtPmJhc2UuY3J0Y194ID0gcGxhbmVfc3RhdGUtPmJhc2Uuc3JjX3kgPSAw Owo+PiArCXBsYW5lX3N0YXRlLT5iYXNlLmNydGNfdyA9IGZiLT53aWR0aDsKPj4gKwlwbGFuZV9z dGF0ZS0+YmFzZS5jcnRjX2ggPSBmYi0+aGVpZ2h0Owo+PiArCj4+ICsJcGxhbmVfc3RhdGUtPnZp c2libGUgPSB0cnVlOwo+PiAgCW9iaiA9IGludGVsX2ZiX29iaihmYik7Cj4+ICAJaWYgKG9iai0+ dGlsaW5nX21vZGUgIT0gSTkxNV9USUxJTkdfTk9ORSkKPj4gIAkJZGV2X3ByaXYtPnByZXNlcnZl X2Jpb3Nfc3dpenpsZSA9IHRydWU7Cj4+IC0KPj4gLQlwcmltYXJ5LT5mYiA9IGZiOwo+PiAtCXBy aW1hcnktPmNydGMgPSBwcmltYXJ5LT5zdGF0ZS0+Y3J0YyA9ICZpbnRlbF9jcnRjLT5iYXNlOwo+ PiAtCXVwZGF0ZV9zdGF0ZV9mYihwcmltYXJ5KTsKPiBEbyB3ZSBzdGlsbCBoYXZlIG90aGVyIHVz ZXJzIG9mIHVwZGF0ZV9zdGF0ZV9mYiBsZWZ0PwpKdXN0IHRoZSBwYWdlIGZsaXAgaGFuZGxlci4K Pj4gLQlpbnRlbF9jcnRjLT5iYXNlLnN0YXRlLT5wbGFuZV9tYXNrIHw9ICgxIDw8IGRybV9wbGFu ZV9pbmRleChwcmltYXJ5KSk7Cj4+IC0Jb2JqLT5mcm9udGJ1ZmZlcl9iaXRzIHw9IHRvX2ludGVs X3BsYW5lKHByaW1hcnkpLT5mcm9udGJ1ZmZlcl9iaXQ7Cj4+ICB9Cj4+ICAKPj4gIHN0YXRpYyB2 b2lkIGk5eHhfdXBkYXRlX3ByaW1hcnlfcGxhbmUoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+PiBA QCAtMTE3NjEsMzQgKzExNzY4LDYgQEAgc3RhdGljIGJvb2wgY2hlY2tfZW5jb2Rlcl9jbG9uaW5n KHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKPj4gIAlyZXR1cm4gdHJ1ZTsKPj4gIH0K Pj4gIAo+PiAtc3RhdGljIHZvaWQgaW50ZWxfY3J0Y19jaGVja19pbml0aWFsX3BsYW5lcyhzdHJ1 Y3QgZHJtX2NydGMgKmNydGMsCj4+IC0JCQkJCSAgICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNy dGNfc3RhdGUpCj4+IC17Cj4+IC0Jc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmln ID0KPj4gLQkJdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjX3N0YXRlKTsKPj4gLQlzdHJ1Y3QgZHJt X3BsYW5lICpwOwo+PiAtCXVuc2lnbmVkIHZpc2libGVfbWFzayA9IDA7Cj4+IC0KPj4gLQlkcm1f Zm9yX2VhY2hfcGxhbmVfbWFzayhwLCBjcnRjLT5kZXYsIGNydGNfc3RhdGUtPnBsYW5lX21hc2sp IHsKPj4gLQkJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUgPQo+PiAtCQkJZHJt X2F0b21pY19nZXRfZXhpc3RpbmdfcGxhbmVfc3RhdGUoY3J0Y19zdGF0ZS0+c3RhdGUsIHApOwo+ PiAtCj4+IC0JCWlmIChXQVJOX09OKCFwbGFuZV9zdGF0ZSkpCj4+IC0JCQljb250aW51ZTsKPj4g LQo+PiAtCQlpZiAoIXBsYW5lX3N0YXRlLT5mYikKPj4gLQkJCWNydGNfc3RhdGUtPnBsYW5lX21h c2sgJj0KPj4gLQkJCQl+KDEgPDwgZHJtX3BsYW5lX2luZGV4KHApKTsKPj4gLQkJZWxzZSBpZiAo dG9faW50ZWxfcGxhbmVfc3RhdGUocGxhbmVfc3RhdGUpLT52aXNpYmxlKQo+PiAtCQkJdmlzaWJs ZV9tYXNrIHw9IDEgPDwgZHJtX3BsYW5lX2luZGV4KHApOwo+PiAtCX0KPj4gLQo+PiAtCWlmICgh dmlzaWJsZV9tYXNrKQo+PiAtCQlyZXR1cm47Cj4+IC0KPj4gLQlwaXBlX2NvbmZpZy0+cXVpcmtz ICY9IH5QSVBFX0NPTkZJR19RVUlSS19JTklUSUFMX1BMQU5FUzsKPj4gLX0KPj4gLQo+PiAgc3Rh dGljIGludCBpbnRlbF9jcnRjX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4+ ICAJCQkJICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+PiAgewo+PiBAQCAt MTE4MTAsMTAgKzExNzg5LDYgQEAgc3RhdGljIGludCBpbnRlbF9jcnRjX2F0b21pY19jaGVjayhz dHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4+ICAJCSJbQ1JUQzolaV0gbWlzbWF0Y2ggYmV0d2VlbiBz dGF0ZS0+YWN0aXZlKCVpKSBhbmQgY3J0Yy0+YWN0aXZlKCVpKVxuIiwKPj4gIAkJaWR4LCBjcnRj LT5zdGF0ZS0+YWN0aXZlLCBpbnRlbF9jcnRjLT5hY3RpdmUpOwo+PiAgCj4+IC0JLyogcGxhbmUg bWFzayBpcyBmaXhlZCB1cCBhZnRlciBhbGwgaW5pdGlhbCBwbGFuZXMgYXJlIGNhbGN1bGF0ZWQg Ki8KPj4gLQlpZiAocGlwZV9jb25maWctPnF1aXJrcyAmIFBJUEVfQ09ORklHX1FVSVJLX0lOSVRJ QUxfUExBTkVTKQo+PiAtCQlpbnRlbF9jcnRjX2NoZWNrX2luaXRpYWxfcGxhbmVzKGNydGMsIGNy dGNfc3RhdGUpOwo+PiAtCj4+ICAJaWYgKG1vZGVfY2hhbmdlZCAmJiAhY3J0Y19zdGF0ZS0+YWN0 aXZlKQo+PiAgCQlpbnRlbF9jcnRjLT5hdG9taWMudXBkYXRlX3dtX3Bvc3QgPSB0cnVlOwo+PiAg Cj4+IEBAIC0xMzE1NSwxOSArMTMxMzAsNiBAQCBpbnRlbF9tb2Rlc2V0X2NvbXB1dGVfY29uZmln KHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPj4gIAkJCWNvbnRpbnVlOwo+PiAgCQl9 Cj4+ICAKPj4gLQkJaWYgKHBpcGVfY29uZmlnLT5xdWlya3MgJiBQSVBFX0NPTkZJR19RVUlSS19J TklUSUFMX1BMQU5FUykgewo+PiAtCQkJcmV0ID0gZHJtX2F0b21pY19hZGRfYWZmZWN0ZWRfcGxh bmVzKHN0YXRlLCBjcnRjKTsKPj4gLQkJCWlmIChyZXQpCj4+IC0JCQkJcmV0dXJuIHJldDsKPj4g LQo+PiAtCQkJLyoKPj4gLQkJCSAqIFdlIG91Z2h0IHRvIGhhbmRsZSBpOTE1LmZhc3Rib290IGhl cmUuCj4+IC0JCQkgKiBJZiBubyBtb2Rlc2V0IGlzIHJlcXVpcmVkIGFuZCB0aGUgcHJpbWFyeSBw bGFuZSBoYXMKPj4gLQkJCSAqIGEgZmIsIHVwZGF0ZSB0aGUgbWVtYmVycyBvZiBjcnRjX3N0YXRl IGFzIG5lZWRlZCwKPj4gLQkJCSAqIGFuZCBydW4gdGhlIG5lY2Vzc2FyeSB1cGRhdGVzIGR1cmlu ZyB2YmxhbmsgZXZhc2lvbi4KPj4gLQkJCSAqLwo+PiAtCQl9Cj4+IC0KPj4gIAkJaWYgKCFuZWVk c19tb2Rlc2V0KGNydGNfc3RhdGUpKSB7Cj4+ICAJCQlpZiAoIShwaXBlX2NvbmZpZy0+cXVpcmtz ICYgUElQRV9DT05GSUdfUVVJUktfSU5IRVJJVEVEX01PREUpKQo+PiAgCQkJCWNvbnRpbnVlOwo+ PiBAQCAtMTUxNDksMjUgKzE1MTExLDMwIEBAIHZvaWQgaW50ZWxfbW9kZXNldF9pbml0KHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpCj4+ICAJZHJtX21vZGVzZXRfdW5sb2NrX2FsbChkZXYpOwo+PiAg Cj4+ICAJZm9yX2VhY2hfaW50ZWxfY3J0YyhkZXYsIGNydGMpIHsKPj4gLQkJaWYgKCFjcnRjLT5h Y3RpdmUpCj4+ICsJCXN0cnVjdCBpbnRlbF9pbml0aWFsX3BsYW5lX2NvbmZpZyBwbGFuZV9jb25m aWc7Cj4+ICsJCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lOwo+PiArCj4+ICsJCWlmICghY3J0Yy0+ YmFzZS5zdGF0ZS0+YWN0aXZlKQo+PiAgCQkJY29udGludWU7Cj4+ICAKPj4gKwkJLyogZGlzYWJs ZSBhbGwgbm9uLXByaW1hcnkgcGxhbmVzICovCj4+ICsJCWRybV9mb3JfZWFjaF9wbGFuZV9tYXNr KHBsYW5lLCBkZXYsCj4+ICsJCQkJCWNydGMtPmJhc2Uuc3RhdGUtPnBsYW5lX21hc2spCj4+ICsJ CQlpZiAocGxhbmUtPnR5cGUgIT0gRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSkKPj4gKwkJCQl0b19p bnRlbF9wbGFuZShwbGFuZSktPmRpc2FibGVfcGxhbmUocGxhbmUsICZjcnRjLT5iYXNlKTsKPj4g Kwo+PiArCQljcnRjLT5iYXNlLnN0YXRlLT5wbGFuZV9tYXNrICY9Cj4+ICsJCQkxIDw8IGRybV9w bGFuZV9pbmRleChjcnRjLT5iYXNlLnByaW1hcnkpOwo+PiArCj4+ICsJCXBsYW5lX2NvbmZpZy5m YiA9IE5VTEw7Cj4+ICsJCWRldl9wcml2LT5kaXNwbGF5LmdldF9pbml0aWFsX3BsYW5lX2NvbmZp ZyhjcnRjLAo+PiArCQkJCQkJCSAgICZwbGFuZV9jb25maWcpOwo+PiArCj4+ICAJCS8qCj4+IC0J CSAqIE5vdGUgdGhhdCByZXNlcnZpbmcgdGhlIEJJT1MgZmIgdXAgZnJvbnQgcHJldmVudHMgdXMK Pj4gLQkJICogZnJvbSBzdHVmZmluZyBvdGhlciBzdG9sZW4gYWxsb2NhdGlvbnMgbGlrZSB0aGUg cmluZwo+PiAtCQkgKiBvbiB0b3AuICBUaGlzIHByZXZlbnRzIHNvbWUgdWdsaW5lc3MgYXQgYm9v dCB0aW1lLCBhbmQKPj4gLQkJICogY2FuIGV2ZW4gYWxsb3cgZm9yIHNtb290aCBib290IHRyYW5z aXRpb25zIGlmIHRoZSBCSU9TCj4+IC0JCSAqIGZiIGlzIGxhcmdlIGVub3VnaCBmb3IgdGhlIGFj dGl2ZSBwaXBlIGNvbmZpZ3VyYXRpb24uCj4+ICsJCSAqIElmIHRoZSBmYiBpcyBzaGFyZWQgYmV0 d2VlbiBtdWx0aXBsZSBoZWFkcywgd2UnbGwKPj4gKwkJICoganVzdCBnZXQgdGhlIGZpcnN0IG9u ZS4KPj4gIAkJICovCj4+IC0JCWlmIChkZXZfcHJpdi0+ZGlzcGxheS5nZXRfaW5pdGlhbF9wbGFu ZV9jb25maWcpIHsKPj4gLQkJCWRldl9wcml2LT5kaXNwbGF5LmdldF9pbml0aWFsX3BsYW5lX2Nv bmZpZyhjcnRjLAo+PiAtCQkJCQkJCSAgICZjcnRjLT5wbGFuZV9jb25maWcpOwo+PiAtCQkJLyoK Pj4gLQkJCSAqIElmIHRoZSBmYiBpcyBzaGFyZWQgYmV0d2VlbiBtdWx0aXBsZSBoZWFkcywgd2Un bGwKPj4gLQkJCSAqIGp1c3QgZ2V0IHRoZSBmaXJzdCBvbmUuCj4+IC0JCQkgKi8KPj4gLQkJCWlu dGVsX2ZpbmRfaW5pdGlhbF9wbGFuZV9vYmooY3J0YywgJmNydGMtPnBsYW5lX2NvbmZpZyk7Cj4+ IC0JCX0KPj4gKwkJaW50ZWxfZmluZF9pbml0aWFsX3BsYW5lX29iaihjcnRjLCAmcGxhbmVfY29u ZmlnKTsKPj4gIAl9Cj4+ICB9Cj4gT2sgSSBsb29rZWQgYXQgdGhpcyBhbmQgdGhlIHJlYWRvdXRf cGxhbmVfc3RhdGUgZnVuY3Rpb24gYW5kIEkgdGhpbmsgd2UKPiBoYXZlIGEgYml0IGEgY29uZnVz aW9uIGFib3V0IHJlc3BvbnNpYmlsaXRpZXMgaGVyZS4gVGhlIGJpZyB0aGluZyBpcyB0aGF0Cj4g b25seSBkcml2ZXIgbG9hZCBjYXJlcyBhYm91dCByZWNvbnN0cnVjdGluZyBwbGFuZSBzdGF0ZSBh Y2N1cmF0ZWx5LCBmb3IKPiByZXN1bWUgYW5kIGxpZCBub3RpZmllciB3ZSBqdXN0IHdhbnQgdG8g bWFrZSBzdXJlIHRoYXQgd2UgdXBkYXRlIHRoZQo+IHBsYW5lcy4gQW5kIHRoYXQgY291bGQgYmUg YWNoaWV2ZWQgYnkgdW5jb25kaXRpb25hbGx5IHNldHRpbmcKPiBjcnRjX3N0YXRlLT5wbGFuZXNf Y2hhbmdlZC4gV2UgYWxyZWFkeSBoYXZlIGFsbCB0aGUgcGxhbmUgc3RhdGVzIHdoZW4KPiByZXN0 b3Jpbmcgc3RhdGUgYW55d2F5LgpPbiByZXN1bWUgSSBmb3JjZSBhIG1vZGVzZXQgZm9yIHRoaXMg cmVhc29uLCBhbmQgc2V0IHRoZSBwbGFuZV9tYXNrLgpUaGlzIG1ha2VzIHN1cmUgYW55IHBsYW5l IGdldHMgZGlzYWJsZWQuCgpUaGUgbW9kZXNldCB3aWxsIGFsc28gYWRkIGFsbCBwbGFuZXMsIHdo aWNoIHNldHMgcGxhbmVzX2NoYW5nZWQgaWYgbmVlZGVkLgoKQSBjb21taXQgb24gaXRzIG93biBk b2Vzbid0IGRvIHRoaXMsIHdoZW4gYSBwbGFuZSBkb2Vzbid0IGhhdmUgYSBmYgppdCB3b24ndCBk aXNhYmxlIGl0IG9uIGl0cyBvd24gYmVjYXVzZSB0aGUgcGxhbmUncyBhc3N1bWVkIHRvIGJlIGRp c2FibGVkCndoZW4gb2xkX3BsYW5lX3N0YXRlLT5mYiA9PSBOVUxMIGFuZCBuZXdfcGxhbmVfc3Rh dGUtPmZiID09IE5VTEwuCgpJIGRvbid0IGtub3cgaWYgSSBjYW4gY2FsbCBkaXNhYmxlX3BsYW5l IGluIHRoaXMgbG9vcCBlaXRoZXIsIGJlY2F1c2UgdGhhdCB3aWxsCnVwZGF0ZSB0aGUgd2F0ZXJt YXJrcyBvbiBza3lsYWtlIHdpdGggdGhlIGNhbGwgdG8gaW50ZWxfdXBkYXRlX3Nwcml0ZV93YXRl cm1hcmtzCmNhbGxpbmcgc2tsX3VwZGF0ZV9zcHJpdGVfd20gY2FsbGluZyBza2xfdXBkYXRlX3dt LgoKV2UgZG9uJ3QgZXZlbiBoYXZlIGFueSB3YXRlcm1hcmtzIGNhbGN1bGF0ZWQgeWV0LCBzbyB0 aGF0IHdpbGwgYnJlYWsuCj4gVGhhdCBtZWFucyB3ZSBzaG91bGQgbW92ZSByZWFkb3V0X3BsYW5l X3N0YXRlIGludG8gdGhlIGFib3ZlIGxvb3AuIFdoaWNoCj4gdGhlbiBnZXRzIGEgYml0IHRvbyBi aWcsIHNvIGJldHRlciBleHRyYWN0IHRoaXMgaW50byBhCj4gaW50ZWxfcmVjb25zdHJ1Y3RfcGxh bmVfc3RhdGUgb3Igc2ltaWxhci4gVGhpcyBmdW5jdGlvbiBzaG91bGQgdGhlbiBkbyBhbGwKPiB0 aGUgcGxhbmUgc3RhdGUgcmVjb25zdHJ1Y3Rpb24uCj4KPiBUaGF0IGFsc28gbWVhbnMgd2UgZG9u J3QgaGF2ZSB0byBwbGF5IHRyaWNrcyB3aXRoIHBsYW5lX21hc2sgbGlrZSB5b3UgZG8uCj4gV2Ug c2ltcGx5IHJlY29uc3RydWN0IHRoZSBwcmltYXJ5IHBsYW5lIChpZiBwb3NzaWJsZSkgYW5kIGZv cmNlLWRpc2FibGUKPiBhbGwgdGhlIG90aGVycy4gU2luY2UgdGhpcyBvbmx5IGhhcHBlbnMgYXQg ZHJpdmVyIGxvYWQgdGhlcmUncyBubyBuZWVkIHRvCj4gY2xlYXIgb3V0IGFueSBzdGF0ZSBmb3Ig c3ByaXRlL2N1cnNvcnMgc2luY2UgaXQncyBhbHJlYWR5IGZ1bGx5IGNsZWFyZWQuCj4KPiBJIHRo aW5rIHRoaXMgd2F5IHdlIHNob3VsZCBiZSBhYmxlIHRvIGhhdmUgZXZlcnl0aGluZyBpbiBvbmUg cGxhY2UsIGFuZAo+IHRoYXQgc2hvdWxkIGFsbG93IHVzIHRvIHNpbXBsaWZ5IHRoaW5ncyBhIGxv dC4KSSBkbyB0aGlzIHRyaWNrIGZvciBhdG9taWMgcmVzdW1lLCB3ZSBjYW4ndCBhbGxvY2F0ZSB0 aGUgb3JpZ2luYWwgZmIgaW4gdGhhdCBjYXNlCmJ1dCBJIHN0aWxsIHdhbnQgdG8gc2FuaXRpemUg ZXZlcnl0aGluZy4gVGhpcyBlaXRoZXIgaGFwcGVucyBiZWNhdXNlCmEgbmV3IHByaW1hcnkgZmIg Z2V0cyBjb21taXR0ZWQgb3IgdGhlIHByaW1hcnkgZmIgZ2V0cyBkaXNhYmxlZC4KCj4+ICAKPj4g QEAgLTE1NDA0LDQ3ICsxNTM3MSwzMCBAQCBzdGF0aWMgdm9pZCByZWFkb3V0X3BsYW5lX3N0YXRl KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+PiAgCXN0cnVjdCBpbnRlbF9wbGFuZSAqcDsKPj4g IAlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpkcm1fcGxhbmVfc3RhdGU7Cj4+ICAJYm9vbCBhY3Rp dmUgPSBjcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZTsKPj4gKwlib29sIHdyb25nX3BsYW5lOwo+PiAg Cj4+IC0JaWYgKGFjdGl2ZSkgewo+PiAtCQljcnRjX3N0YXRlLT5xdWlya3MgfD0gUElQRV9DT05G SUdfUVVJUktfSU5JVElBTF9QTEFORVM7Cj4+IC0KPj4gLQkJLyogYXBwbHkgdG8gcHJldmlvdXMg c3cgc3RhdGUgdG9vICovCj4+IC0JCXRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+YmFzZS5zdGF0 ZSktPnF1aXJrcyB8PQo+PiAtCQkJUElQRV9DT05GSUdfUVVJUktfSU5JVElBTF9QTEFORVM7Cj4+ IC0JfQo+PiArCXdyb25nX3BsYW5lID0gYWN0aXZlICYmICFpbnRlbF9jaGVja19wbGFuZV9tYXBw aW5nKGNydGMpOwo+PiArCWlmICh3cm9uZ19wbGFuZSkKPj4gKwkJY3J0Yy0+cGlwZSA9ICFjcnRj LT5waXBlOwo+PiAgCj4+ICAJZm9yX2VhY2hfaW50ZWxfcGxhbmUoY3J0Yy0+YmFzZS5kZXYsIHAp IHsKPj4gLQkJYm9vbCB2aXNpYmxlID0gYWN0aXZlOwo+PiAtCj4+ICAJCWlmIChjcnRjLT5waXBl ICE9IHAtPnBpcGUpCj4+ICAJCQljb250aW51ZTsKPj4gIAo+PiAgCQlkcm1fcGxhbmVfc3RhdGUg PSBwLT5iYXNlLnN0YXRlOwo+PiAgCj4+IC0JCS8qIFBsYW5lIHNjYWxlciBzdGF0ZSBpcyBub3Qg dG91Y2hlZCBoZXJlLiBUaGUgZmlyc3QgYXRvbWljCj4+IC0JCSAqIGNvbW1pdCB3aWxsIHJlc3Rv cmUgYWxsIHBsYW5lIHNjYWxlcnMgdG8gaXRzIG9sZCBzdGF0ZS4KPj4gLQkJICovCj4+IC0KPj4g LQkJaWYgKGFjdGl2ZSAmJiBwLT5iYXNlLnR5cGUgPT0gRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSkg ewo+PiAtCQkJdmlzaWJsZSA9IHByaW1hcnlfZ2V0X2h3X3N0YXRlKGNydGMpOwo+PiAtCQkJdG9f aW50ZWxfcGxhbmVfc3RhdGUoZHJtX3BsYW5lX3N0YXRlKS0+dmlzaWJsZSA9IHZpc2libGU7Cj4+ IC0JCX0gZWxzZSB7Cj4+IC0JCQkvKgo+PiAtCQkJICogdW5rbm93biBzdGF0ZSwgYXNzdW1lIGl0 J3Mgb2ZmIHRvIGZvcmNlIGEgdHJhbnNpdGlvbgo+PiAtCQkJICogdG8gb24gd2hlbiBjYWxjdWxh dGluZyBzdGF0ZSBjaGFuZ2VzLgo+PiAtCQkJICovCj4+ICsJCWlmIChwLT5iYXNlLnR5cGUgPT0g RFJNX1BMQU5FX1RZUEVfUFJJTUFSWSkKPj4gKwkJCXRvX2ludGVsX3BsYW5lX3N0YXRlKGRybV9w bGFuZV9zdGF0ZSktPnZpc2libGUgPQo+PiArCQkJCXByaW1hcnlfZ2V0X2h3X3N0YXRlKGNydGMp Owo+PiArCQllbHNlCj4+ICAJCQl0b19pbnRlbF9wbGFuZV9zdGF0ZShkcm1fcGxhbmVfc3RhdGUp LT52aXNpYmxlID0gZmFsc2U7Cj4+IC0JCX0KPj4gIAo+PiAtCQlpZiAodmlzaWJsZSkgewo+PiAt CQkJY3J0Y19zdGF0ZS0+YmFzZS5wbGFuZV9tYXNrIHw9Cj4+IC0JCQkJMSA8PCBkcm1fcGxhbmVf aW5kZXgoJnAtPmJhc2UpOwo+PiAtCQl9IGVsc2UgaWYgKGNydGNfc3RhdGUtPmJhc2Uuc3RhdGUp IHsKPj4gLQkJCS8qIE1ha2UgdGhpcyB1bmNvbmRpdGlvbmFsIGZvciBhdG9taWMgaHcgcmVhZG91 dC4gKi8KPj4gLQkJCWNydGNfc3RhdGUtPmJhc2UucGxhbmVfbWFzayAmPQo+PiAtCQkJCX4oMSA8 PCBkcm1fcGxhbmVfaW5kZXgoJnAtPmJhc2UpKTsKPj4gLQkJfQo+PiArCQljcnRjX3N0YXRlLT5i YXNlLnBsYW5lX21hc2sgfD0KPj4gKwkJCTEgPDwgZHJtX3BsYW5lX2luZGV4KCZwLT5iYXNlKTsK Pj4gIAl9Cj4+ICsKPj4gKwlpZiAod3JvbmdfcGxhbmUpCj4+ICsJCWNydGMtPnBpcGUgPSAhY3J0 Yy0+cGlwZTsKPj4gIH0KPj4gIAo+PiAgc3RhdGljIHZvaWQgaW50ZWxfbW9kZXNldF9yZWFkb3V0 X2h3X3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4+IEBAIC0xNTY2NCw2ICsxNTYxNCw5 IEBAIHZvaWQgaW50ZWxfbW9kZXNldF9nZW1faW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ PiAgCQkJdXBkYXRlX3N0YXRlX2ZiKGMtPnByaW1hcnkpOwo+PiAgCQkJYy0+c3RhdGUtPnBsYW5l X21hc2sgJj0gfigxIDw8IGRybV9wbGFuZV9pbmRleChjLT5wcmltYXJ5KSk7Cj4+ICAJCX0KPj4g KwkJZWxzZQo+PiArCQkJb2JqLT5mcm9udGJ1ZmZlcl9iaXRzIHw9Cj4+ICsJCQkJdG9faW50ZWxf cGxhbmUoYy0+cHJpbWFyeSktPmZyb250YnVmZmVyX2JpdDsKPiBUaGlzIGlzIHBhcnQgb2YgcGxh bmUgc3RhdGUgcmVjb25zdHJ1Y3Rpb24sIG5vIG5lZWQgdG8gbW92ZSBpdC4gVGhlIG9ubHkKPiBy ZWFzb24gd2UgaGF2ZSB0byBwaW4gbGF0ZSBpcyB0aGF0IGdlbSBpc24ndCBpbml0aWFsaXplZCB5 ZXQgZnVsbHkgd2hlbiB3ZQo+IHdhbnQgdG8gcmVjb25zdHJ1Y3QgdGhlIG1vZGVzZXQgc3RhdGUu IEFuZCB0aGF0IHBpbm5pbmcgc2hvdWxkbid0IGV2ZXIKPiBmYWlsLCBpdCBqdXN0IGluY3JlbWVu dHMgcGluX2NvdW50IGFuZCB3cml0ZXMgdGhlIHB0ZXMgKGFnYWluKS4KV2h5IGJvdGhlciBoYW5k bGluZyB0aGUgcmV0dXJuIHZhbHVlIGF0IGFsbCB0aGVuPwoKfk1hYXJ0ZW4KX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlz dApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK