From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [RFC PATCH] drm/i915: Use universal planes for cursor on skylake. Date: Wed, 2 Sep 2015 11:15:44 +0200 Message-ID: <20150902091544.GM1367@phenom.ffwll.local> References: <55DEE19E.9070702@mblankhorst.nl> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f172.google.com (mail-wi0-f172.google.com [209.85.212.172]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2055F6E82C for ; Wed, 2 Sep 2015 02:15:48 -0700 (PDT) Received: by wibz8 with SMTP id z8so58307244wib.1 for ; Wed, 02 Sep 2015 02:15:47 -0700 (PDT) Content-Disposition: inline In-Reply-To: <55DEE19E.9070702@mblankhorst.nl> 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 Graphics Development List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBBdWcgMjcsIDIwMTUgYXQgMTI6MDg6MzBQTSArMDIwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gVGhpcyBhcHBlYXJzIHRvIG1ha2UgYWxsIHRoZSBjdXJzb3IgdGVzdHMgcmVh bGx5IHNsb3cgYmVjYXVzZSBvZiB0aGUgbWFueSBjYWxscyB0byBza2xfdXBkYXRlX3dtCj4gd2hl biB0aGUgY3Vyc29yIHBsYW5lIHZpc2liaWxpdHkgaXMgY2hhbmdlZC4gSXQgcGVyZm9ybXMgZG9l cyAzIHZibGFua3MgZWFjaCB0aW1lIGl0J3MgY2FsbGVkLCBhbmQKPiBpdCdzIHByb2JhYmx5IGNh bGxlZCBtb3JlIHRoYW4gb25jZSBvbiBlYWNoIHVwZGF0ZS4KCk9uIGFsbCBvdGhlciBwbGF0Zm9y bXMgd20gdXBkYXRlcyAocmlnaHQgbm93IGF0IGxlYXN0KSBkb24ndCBkbyBhbnkgdmJsYW5rCndh aXRzLCB3aGljaCBtZWFucyBjaGFuZ2luZyBjdXJzb3JzIGFjdHVhbGx5IF9kb2VzXyBjYXVzZSB0 b25zIG9mCnVuZGVycnVucy4gQ2FuIHdlIHBlcmhhcHMgYWRkIGEgaGFjayBpbiBza2wgdG8gZG8g dGhlIHNhbWUgKG1heWJlIGp1c3QgZm9yCmN1cnNvcnMpIHNvIHRoYXQgd2UgY2FuIGdldCB0aGlz IGluPyBUaGVyZSdzIGxvdHMgb3RoZXIgd29yayB0aGF0IHJlYWxseQp3YW50cyBwcm9wZXIgdW5p dmVyc2FsIHBsYW5lcyAuLi4KLURhbmllbAoKPiAKPiBTbWFydGVyIHdhdGVybWFyayB1cGRhdGVz IHdpbGwgaG9wZWZ1bGx5IGZpeCB0aGlzLi4KPiAKPiBUaGlzIHBhdGNoIGlzIHRlc3RlZCB3aXRo IFhvcmcgYW5kIGttc19jdXJzb3JfY3JjLCBhbmQgaXMganVzdCBhIFJGQy4gOikKPiAKPiBTaWdu ZWQtb2ZmLWJ5OiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50 ZWwuY29tPgo+IC0tLQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IGluZGV4IDA1NTIzNDkxYWQ2 Zi4uYmY1ZjgxNGY3MmFlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gQEAgLTI2Mywx MSArMjYzLDExIEBAIHN0cnVjdCBpOTE1X2hvdHBsdWcgewo+ICAJZm9yICgoX19wKSA9IDA7IChf X3ApIDwgSU5URUxfSU5GTyhfX2Rldl9wcml2KS0+bnVtX3BpcGVzOyAoX19wKSsrKQo+ICAjZGVm aW5lIGZvcl9lYWNoX3BsYW5lKF9fZGV2X3ByaXYsIF9fcGlwZSwgX19wKQkJCQlcCj4gIAlmb3Ig KChfX3ApID0gMDsJCQkJCQkJXAo+IC0JICAgICAoX19wKSA8IElOVEVMX0lORk8oX19kZXZfcHJp diktPm51bV9zcHJpdGVzWyhfX3BpcGUpXSArIDE7CVwKPiArCSAgICAgKF9fcCkgPCBJTlRFTF9J TkZPKF9fZGV2X3ByaXYpLT5udW1fc3ByaXRlc1soX19waXBlKV0gKyAxICsgSVNfR0VOOShfX2Rl dl9wcml2KTsJXAo+ICAJICAgICAoX19wKSsrKQo+ICAjZGVmaW5lIGZvcl9lYWNoX3Nwcml0ZShf X2Rldl9wcml2LCBfX3AsIF9fcykJCQkJXAo+ICAJZm9yICgoX19zKSA9IDA7CQkJCQkJCVwKPiAt CSAgICAgKF9fcykgPCBJTlRFTF9JTkZPKF9fZGV2X3ByaXYpLT5udW1fc3ByaXRlc1soX19wKV07 CVwKPiArCSAgICAgKF9fcykgPCBJTlRFTF9JTkZPKF9fZGV2X3ByaXYpLT5udW1fc3ByaXRlc1so X19wKV0gKyBJU19HRU45KF9fZGV2X3ByaXYpOwlcCj4gIAkgICAgIChfX3MpKyspCj4gIAo+ICAj ZGVmaW5lIGZvcl9lYWNoX2NydGMoZGV2LCBjcnRjKSBcCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYwo+IGluZGV4IDkyZTNmMDc0YWUzMC4uMzA3ZDEzNzRkYWE1IDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC0xNDAyLDcgKzE0MDIsNyBAQCBzdGF0 aWMgdm9pZCBhc3NlcnRfc3ByaXRlc19kaXNhYmxlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCj4gIAo+ICAJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDkpIHsKPiAgCQlm b3JfZWFjaF9zcHJpdGUoZGV2X3ByaXYsIHBpcGUsIHNwcml0ZSkgewo+IC0JCQl2YWwgPSBJOTE1 X1JFQUQoUExBTkVfQ1RMKHBpcGUsIHNwcml0ZSkpOwo+ICsJCQl2YWwgPSBJOTE1X1JFQUQoUExB TkVfQ1RMKHBpcGUsIHNwcml0ZSArIDEpKTsKPiAgCQkJSTkxNV9TVEFURV9XQVJOKHZhbCAmIFBM QU5FX0NUTF9FTkFCTEUsCj4gIAkJCSAgICAgInBsYW5lICVkIGFzc2VydGlvbiBmYWlsdXJlLCBz aG91bGQgYmUgb2ZmIG9uIHBpcGUgJWMgYnV0IGlzIHN0aWxsIGFjdGl2ZVxuIiwKPiAgCQkJICAg ICBzcHJpdGUsIHBpcGVfbmFtZShwaXBlKSk7Cj4gQEAgLTExNTYzLDEyICsxMTU2MywxNSBAQCBp bnQgaW50ZWxfcGxhbmVfYXRvbWljX2NhbGNfY2hhbmdlcyhzdHJ1Y3QgZHJtX2NydGNfc3RhdGUg KmNydGNfc3RhdGUsCj4gIAlib29sIG1vZGVfY2hhbmdlZCA9IG5lZWRzX21vZGVzZXQoY3J0Y19z dGF0ZSk7Cj4gIAlib29sIHdhc19jcnRjX2VuYWJsZWQgPSBjcnRjLT5zdGF0ZS0+YWN0aXZlOwo+ ICAJYm9vbCBpc19jcnRjX2VuYWJsZWQgPSBjcnRjX3N0YXRlLT5hY3RpdmU7Cj4gLQo+ICsJZW51 bSBkcm1fcGxhbmVfdHlwZSBwbGFuZV90eXBlID0gcGxhbmUtPnR5cGU7Cj4gIAlib29sIHR1cm5f b2ZmLCB0dXJuX29uLCB2aXNpYmxlLCB3YXNfdmlzaWJsZTsKPiAgCXN0cnVjdCBkcm1fZnJhbWVi dWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmZiOwo+ICAKPiArCWlmIChJU19HRU45KGRldikgJiYg cGxhbmUtPnR5cGUgPT0gRFJNX1BMQU5FX1RZUEVfQ1VSU09SKQo+ICsJCXBsYW5lX3R5cGUgPSBE Uk1fUExBTkVfVFlQRV9PVkVSTEFZOwo+ICsKPiAgCWlmIChjcnRjX3N0YXRlICYmIElOVEVMX0lO Rk8oZGV2KS0+Z2VuID49IDkgJiYKPiAtCSAgICBwbGFuZS0+dHlwZSAhPSBEUk1fUExBTkVfVFlQ RV9DVVJTT1IpIHsKPiArCSAgICBwbGFuZV90eXBlICE9IERSTV9QTEFORV9UWVBFX0NVUlNPUikg ewo+ICAJCXJldCA9IHNrbF91cGRhdGVfc2NhbGVyX3BsYW5lKAo+ICAJCQl0b19pbnRlbF9jcnRj X3N0YXRlKGNydGNfc3RhdGUpLAo+ICAJCQl0b19pbnRlbF9wbGFuZV9zdGF0ZShwbGFuZV9zdGF0 ZSkpOwo+IEBAIC0xMTYwMSw3ICsxMTYwNCw3IEBAIGludCBpbnRlbF9wbGFuZV9hdG9taWNfY2Fs Y19jaGFuZ2VzKHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAgCWlmICh0dXJu X29uKSB7Cj4gIAkJaW50ZWxfY3J0Yy0+YXRvbWljLnVwZGF0ZV93bV9wcmUgPSB0cnVlOwo+ICAJ CS8qIG11c3QgZGlzYWJsZSBjeHNyIGFyb3VuZCBwbGFuZSBlbmFibGUvZGlzYWJsZSAqLwo+IC0J CWlmIChwbGFuZS0+dHlwZSAhPSBEUk1fUExBTkVfVFlQRV9DVVJTT1IpIHsKPiArCQlpZiAocGxh bmVfdHlwZSAhPSBEUk1fUExBTkVfVFlQRV9DVVJTT1IpIHsKPiAgCQkJaW50ZWxfY3J0Yy0+YXRv bWljLmRpc2FibGVfY3hzciA9IHRydWU7Cj4gIAkJCS8qIHRvIHBvdGVudGlhbGx5IHJlLWVuYWJs ZSBjeHNyICovCj4gIAkJCWludGVsX2NydGMtPmF0b21pYy53YWl0X3ZibGFuayA9IHRydWU7Cj4g QEAgLTExNjEwLDcgKzExNjEzLDcgQEAgaW50IGludGVsX3BsYW5lX2F0b21pY19jYWxjX2NoYW5n ZXMoc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ICAJfSBlbHNlIGlmICh0dXJu X29mZikgewo+ICAJCWludGVsX2NydGMtPmF0b21pYy51cGRhdGVfd21fcG9zdCA9IHRydWU7Cj4g IAkJLyogbXVzdCBkaXNhYmxlIGN4c3IgYXJvdW5kIHBsYW5lIGVuYWJsZS9kaXNhYmxlICovCj4g LQkJaWYgKHBsYW5lLT50eXBlICE9IERSTV9QTEFORV9UWVBFX0NVUlNPUikgewo+ICsJCWlmIChw bGFuZV90eXBlICE9IERSTV9QTEFORV9UWVBFX0NVUlNPUikgewo+ICAJCQlpZiAoaXNfY3J0Y19l bmFibGVkKQo+ICAJCQkJaW50ZWxfY3J0Yy0+YXRvbWljLndhaXRfdmJsYW5rID0gdHJ1ZTsKPiAg CQkJaW50ZWxfY3J0Yy0+YXRvbWljLmRpc2FibGVfY3hzciA9IHRydWU7Cj4gQEAgLTExNjIzLDcg KzExNjI2LDcgQEAgaW50IGludGVsX3BsYW5lX2F0b21pY19jYWxjX2NoYW5nZXMoc3RydWN0IGRy bV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ICAJCWludGVsX2NydGMtPmF0b21pYy5mYl9iaXRz IHw9Cj4gIAkJCXRvX2ludGVsX3BsYW5lKHBsYW5lKS0+ZnJvbnRidWZmZXJfYml0Owo+ICAKPiAt CXN3aXRjaCAocGxhbmUtPnR5cGUpIHsKPiArCXN3aXRjaCAocGxhbmVfdHlwZSkgewo+ICAJY2Fz ZSBEUk1fUExBTkVfVFlQRV9QUklNQVJZOgo+ICAJCWludGVsX2NydGMtPmF0b21pYy53YWl0X2Zv cl9mbGlwcyA9IHRydWU7Cj4gIAkJaW50ZWxfY3J0Yy0+YXRvbWljLnByZV9kaXNhYmxlX3ByaW1h cnkgPSB0dXJuX29mZjsKPiBAQCAtMTM3NzAsNyArMTM3NzMsNyBAQCBzdGF0aWMgdm9pZCBpbnRl bF9jcnRjX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IHBpcGUpCj4gIAlzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSA9IE5VTEw7Cj4gIAlzdHJ1Y3QgZHJtX3BsYW5l ICpwcmltYXJ5ID0gTlVMTDsKPiAgCXN0cnVjdCBkcm1fcGxhbmUgKmN1cnNvciA9IE5VTEw7Cj4g LQlpbnQgaSwgcmV0Owo+ICsJaW50IGksIHJldCwgc3ByaXRlOwo+ICAKPiAgCWludGVsX2NydGMg PSBremFsbG9jKHNpemVvZigqaW50ZWxfY3J0YyksIEdGUF9LRVJORUwpOwo+ICAJaWYgKGludGVs X2NydGMgPT0gTlVMTCkKPiBAQCAtMTM3OTcsOSArMTM4MDAsMzEgQEAgc3RhdGljIHZvaWQgaW50 ZWxfY3J0Y19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBwaXBlKQo+ICAJaWYgKCFw cmltYXJ5KQo+ICAJCWdvdG8gZmFpbDsKPiAgCj4gLQljdXJzb3IgPSBpbnRlbF9jdXJzb3JfcGxh bmVfY3JlYXRlKGRldiwgcGlwZSk7Cj4gLQlpZiAoIWN1cnNvcikKPiAtCQlnb3RvIGZhaWw7Cj4g KwlpZiAoIUlTX0dFTjkoZGV2KSkgewo+ICsJCWN1cnNvciA9IGludGVsX2N1cnNvcl9wbGFuZV9j cmVhdGUoZGV2LCBwaXBlKTsKPiArCQlpZiAoIWN1cnNvcikKPiArCQkJZ290byBmYWlsOwo+ICsJ fQo+ICsKPiArCWZvcl9lYWNoX3Nwcml0ZShkZXZfcHJpdiwgcGlwZSwgc3ByaXRlKSB7Cj4gKwkJ ZW51bSBkcm1fcGxhbmVfdHlwZSBwbGFuZV90eXBlOwo+ICsJCXN0cnVjdCBkcm1fcGxhbmUgKnBs YW5lOwo+ICsKPiArCQlpZiAoc3ByaXRlIDwgSU5URUxfSU5GTyhkZXZfcHJpdiktPm51bV9zcHJp dGVzW3BpcGVdKQo+ICsJCQlwbGFuZV90eXBlID0gRFJNX1BMQU5FX1RZUEVfT1ZFUkxBWTsKPiAr CQllbHNlCj4gKwkJCXBsYW5lX3R5cGUgPSBEUk1fUExBTkVfVFlQRV9DVVJTT1I7Cj4gKwo+ICsJ CXBsYW5lID0gaW50ZWxfcGxhbmVfaW5pdChkZXYsIHBpcGUsIHNwcml0ZSwgcGxhbmVfdHlwZSk7 Cj4gKwkJaWYgKElTX0VSUihwbGFuZSkpIHsKPiArCQkJRFJNX0RFQlVHX0tNUygicGlwZSAlYyBz cHJpdGUgJWMgaW5pdCBmYWlsZWQ6ICVsZFxuIiwKPiArCQkJCSAgICAgIHBpcGVfbmFtZShwaXBl KSwgc3ByaXRlX25hbWUocGlwZSwgc3ByaXRlKSwgUFRSX0VSUihwbGFuZSkpOwo+ICsJCQlnb3Rv IGZhaWw7Cj4gKwkJfQo+ICsKPiArCQlpZiAocGxhbmVfdHlwZSA9PSBEUk1fUExBTkVfVFlQRV9D VVJTT1IpCj4gKwkJCWN1cnNvciA9IHBsYW5lOwo+ICsJfQo+ICAKPiAgCXJldCA9IGRybV9jcnRj X2luaXRfd2l0aF9wbGFuZXMoZGV2LCAmaW50ZWxfY3J0Yy0+YmFzZSwgcHJpbWFyeSwKPiAgCQkJ CQljdXJzb3IsICZpbnRlbF9jcnRjX2Z1bmNzKTsKPiBAQCAtMTQ3MjQsNyArMTQ3NDksNiBAQCB2 b2lkIGludGVsX21vZGVzZXRfaW5pdF9odyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICB2b2lk IGludGVsX21vZGVzZXRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICB7Cj4gIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+IC0JaW50 IHNwcml0ZSwgcmV0Owo+ICAJZW51bSBwaXBlIHBpcGU7Cj4gIAlzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YzsKPiAgCj4gQEAgLTE0Nzc4LDE1ICsxNDgwMiw4IEBAIHZvaWQgaW50ZWxfbW9kZXNldF9p bml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAkJICAgICAgSU5URUxfSU5GTyhkZXYpLT5u dW1fcGlwZXMsCj4gIAkJICAgICAgSU5URUxfSU5GTyhkZXYpLT5udW1fcGlwZXMgPiAxID8gInMi IDogIiIpOwo+ICAKPiAtCWZvcl9lYWNoX3BpcGUoZGV2X3ByaXYsIHBpcGUpIHsKPiArCWZvcl9l YWNoX3BpcGUoZGV2X3ByaXYsIHBpcGUpCj4gIAkJaW50ZWxfY3J0Y19pbml0KGRldiwgcGlwZSk7 Cj4gLQkJZm9yX2VhY2hfc3ByaXRlKGRldl9wcml2LCBwaXBlLCBzcHJpdGUpIHsKPiAtCQkJcmV0 ID0gaW50ZWxfcGxhbmVfaW5pdChkZXYsIHBpcGUsIHNwcml0ZSk7Cj4gLQkJCWlmIChyZXQpCj4g LQkJCQlEUk1fREVCVUdfS01TKCJwaXBlICVjIHNwcml0ZSAlYyBpbml0IGZhaWxlZDogJWRcbiIs Cj4gLQkJCQkJICAgICAgcGlwZV9uYW1lKHBpcGUpLCBzcHJpdGVfbmFtZShwaXBlLCBzcHJpdGUp LCByZXQpOwo+IC0JCX0KPiAtCX0KPiAgCj4gIAlpbnRlbF9pbml0X2RwaW8oZGV2KTsKPiAgCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBpbmRleCAzOTA4MDU5ZmM0MmYuLmRmM2JjYTZlNDAz MSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gQEAgLTg5MCwxMSArODkwLDEyIEBA IGhkbWlfdG9fZGlnX3BvcnQoc3RydWN0IGludGVsX2hkbWkgKmludGVsX2hkbWkpCj4gIAo+ICAv Kgo+ICAgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgcGxhbmVzIGZvciB0aGlzIHBpcGUsIGllIHRo ZSBudW1iZXIgb2Ygc3ByaXRlcyArIDEKPiAtICogKHByaW1hcnkgcGxhbmUpLiBUaGlzIGRvZXNu J3QgY291bnQgdGhlIGN1cnNvciBwbGFuZSB0aGVuLgo+ICsgKiAocHJpbWFyeSBwbGFuZSkuIFRo aXMgZG9lc24ndCBjb3VudCB0aGUgY3Vyc29yIHBsYW5lIGV4Y2VwdCBvbiBHRU45LAo+ICsgKiB3 aGljaCBoYXMgYSB1bml2ZXJzYWwgcGxhbmUgbWFza2VkIGFzIGN1cnNvciBwbGFuZS4KPiAgICov Cj4gIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGludGVsX251bV9wbGFuZXMoc3RydWN0IGlu dGVsX2NydGMgKmNydGMpCj4gIHsKPiAtCXJldHVybiBJTlRFTF9JTkZPKGNydGMtPmJhc2UuZGV2 KS0+bnVtX3Nwcml0ZXNbY3J0Yy0+cGlwZV0gKyAxOwo+ICsJcmV0dXJuIElOVEVMX0lORk8oY3J0 Yy0+YmFzZS5kZXYpLT5udW1fc3ByaXRlc1tjcnRjLT5waXBlXSArIDEgKyBJU19HRU45KGNydGMt PmJhc2UuZGV2KTsKPiAgfQo+ICAKPiAgLyogaW50ZWxfZmlmb191bmRlcnJ1bi5jICovCj4gQEAg LTEzODgsNyArMTM4OSw4IEBAIGJvb2wgaW50ZWxfc2R2b19pbml0KHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIHVpbnQzMl90IHNkdm9fcmVnLCBib29sIGlzX3Nkdm9iKTsKPiAgCj4gIAo+ICAvKiBp bnRlbF9zcHJpdGUuYyAqLwo+IC1pbnQgaW50ZWxfcGxhbmVfaW5pdChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCBlbnVtIHBpcGUgcGlwZSwgaW50IHBsYW5lKTsKPiArc3RydWN0IGRybV9wbGFuZSAq aW50ZWxfcGxhbmVfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBlbnVtIHBpcGUgcGlwZSwK PiArCQkJCSAgIGludCBwbGFuZSwgZW51bSBkcm1fcGxhbmVfdHlwZSBwbGFuZV90eXBlKTsKPiAg aW50IGludGVsX3Nwcml0ZV9zZXRfY29sb3JrZXkoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9p ZCAqZGF0YSwKPiAgCQkJICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwo+ICB2b2lk IGludGVsX3BpcGVfdXBkYXRlX3N0YXJ0KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcG0uYwo+IGluZGV4IGZmZjBjMjI2ODJlZS4uYjZlYTM0NWUyZjFiIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4gQEAgLTI5NzAsNyArMjk3MCw3IEBAIHNrbF9hbGxv Y2F0ZV9waXBlX2RkYihzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gIAlzdHJ1Y3QgaW50ZWxfY3J0 YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Cj4gIAllbnVtIHBpcGUgcGlwZSA9 IGludGVsX2NydGMtPnBpcGU7Cj4gIAlzdHJ1Y3Qgc2tsX2RkYl9lbnRyeSAqYWxsb2MgPSAmZGRi LT5waXBlW3BpcGVdOwo+IC0JdWludDE2X3QgYWxsb2Nfc2l6ZSwgc3RhcnQsIGN1cnNvcl9ibG9j a3M7Cj4gKwl1aW50MTZfdCBhbGxvY19zaXplLCBzdGFydDsKPiAgCXVpbnQxNl90IG1pbmltdW1b STkxNV9NQVhfUExBTkVTXTsKPiAgCXVpbnQxNl90IHlfbWluaW11bVtJOTE1X01BWF9QTEFORVNd Owo+ICAJdW5zaWduZWQgaW50IHRvdGFsX2RhdGFfcmF0ZTsKPiBAQCAtMjk4NCwxMiArMjk4NCwx NiBAQCBza2xfYWxsb2NhdGVfcGlwZV9kZGIoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAJCXJl dHVybjsKPiAgCX0KPiAgCj4gLQljdXJzb3JfYmxvY2tzID0gc2tsX2N1cnNvcl9hbGxvY2F0aW9u KGNvbmZpZyk7Cj4gLQlkZGItPmN1cnNvcltwaXBlXS5zdGFydCA9IGFsbG9jLT5lbmQgLSBjdXJz b3JfYmxvY2tzOwo+IC0JZGRiLT5jdXJzb3JbcGlwZV0uZW5kID0gYWxsb2MtPmVuZDsKPiArCWlm ICghSVNfR0VOOShkZXYpKSB7Cj4gKwkJdWludDE2X3QgY3Vyc29yX2Jsb2NrczsKPiAgCj4gLQlh bGxvY19zaXplIC09IGN1cnNvcl9ibG9ja3M7Cj4gLQlhbGxvYy0+ZW5kIC09IGN1cnNvcl9ibG9j a3M7Cj4gKwkJY3Vyc29yX2Jsb2NrcyA9IHNrbF9jdXJzb3JfYWxsb2NhdGlvbihjb25maWcpOwo+ ICsJCWRkYi0+Y3Vyc29yW3BpcGVdLnN0YXJ0ID0gYWxsb2MtPmVuZCAtIGN1cnNvcl9ibG9ja3M7 Cj4gKwkJZGRiLT5jdXJzb3JbcGlwZV0uZW5kID0gYWxsb2MtPmVuZDsKPiArCj4gKwkJYWxsb2Nf c2l6ZSAtPSBjdXJzb3JfYmxvY2tzOwo+ICsJCWFsbG9jLT5lbmQgLT0gY3Vyc29yX2Jsb2NrczsK PiArCX0KPiAgCj4gIAkvKiAxLiBBbGxvY2F0ZSB0aGUgbWluaW51bSByZXF1aXJlZCBibG9ja3Mg Zm9yIGVhY2ggYWN0aXZlIHBsYW5lICovCj4gIAlmb3JfZWFjaF9wbGFuZShkZXZfcHJpdiwgcGlw ZSwgcGxhbmUpIHsKPiBAQCAtMzE4Niw3ICszMTkwLDcgQEAgc3RhdGljIHZvaWQgc2tsX2NvbXB1 dGVfd21fcGlwZV9wYXJhbWV0ZXJzKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgCj4gIAkJZmIg PSBjcnRjLT5jdXJzb3ItPnN0YXRlLT5mYjsKPiAgCQlwLT5jdXJzb3IueV9ieXRlc19wZXJfcGl4 ZWwgPSAwOwo+IC0JCWlmIChmYikgewo+ICsJCWlmICghSVNfR0VOOShkZXYpICYmIGZiKSB7Cj4g IAkJCXAtPmN1cnNvci5lbmFibGVkID0gdHJ1ZTsKPiAgCQkJcC0+Y3Vyc29yLmJ5dGVzX3Blcl9w aXhlbCA9IGZiLT5iaXRzX3Blcl9waXhlbCAvIDg7Cj4gIAkJCXAtPmN1cnNvci5ob3Jpel9waXhl bHMgPSBjcnRjLT5jdXJzb3ItPnN0YXRlLT5jcnRjX3c7Cj4gQEAgLTMyMDIsOCArMzIwNiwxMSBA QCBzdGF0aWMgdm9pZCBza2xfY29tcHV0ZV93bV9waXBlX3BhcmFtZXRlcnMoc3RydWN0IGRybV9j cnRjICpjcnRjLAo+ICAJbGlzdF9mb3JfZWFjaF9lbnRyeShwbGFuZSwgJmRldi0+bW9kZV9jb25m aWcucGxhbmVfbGlzdCwgaGVhZCkgewo+ICAJCXN0cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxh bmUgPSB0b19pbnRlbF9wbGFuZShwbGFuZSk7Cj4gIAo+IC0JCWlmIChpbnRlbF9wbGFuZS0+cGlw ZSA9PSBwaXBlICYmCj4gLQkJCXBsYW5lLT50eXBlID09IERSTV9QTEFORV9UWVBFX09WRVJMQVkp Cj4gKwkJaWYgKGludGVsX3BsYW5lLT5waXBlICE9IHBpcGUpCj4gKwkJCWNvbnRpbnVlOwo+ICsK PiArCQlpZiAocGxhbmUtPnR5cGUgPT0gRFJNX1BMQU5FX1RZUEVfT1ZFUkxBWSB8fAo+ICsJCSAg ICAoSVNfR0VOOShkZXYpICYmIHBsYW5lLT50eXBlID09IERSTV9QTEFORV9UWVBFX0NVUlNPUikp Cj4gIAkJCXAtPnBsYW5lW2krK10gPSBpbnRlbF9wbGFuZS0+d207Cj4gIAl9Cj4gIH0KPiBAQCAt MzM5MCwxMSArMzM5NywxMyBAQCBzdGF0aWMgdm9pZCBza2xfY29tcHV0ZV93bV9yZXN1bHRzKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAo+ICAJCXRlbXAgPSAwOwo+ICAKPiAtCQl0ZW1wIHw9 IHBfd20tPndtW2xldmVsXS5jdXJzb3JfcmVzX2wgPDwgUExBTkVfV01fTElORVNfU0hJRlQ7Cj4g LQkJdGVtcCB8PSBwX3dtLT53bVtsZXZlbF0uY3Vyc29yX3Jlc19iOwo+ICsJCWlmICghSVNfR0VO OShkZXYpKSB7Cj4gKwkJCXRlbXAgfD0gcF93bS0+d21bbGV2ZWxdLmN1cnNvcl9yZXNfbCA8PCBQ TEFORV9XTV9MSU5FU19TSElGVDsKPiArCQkJdGVtcCB8PSBwX3dtLT53bVtsZXZlbF0uY3Vyc29y X3Jlc19iOwo+ICAKPiAtCQlpZiAocF93bS0+d21bbGV2ZWxdLmN1cnNvcl9lbikKPiAtCQkJdGVt cCB8PSBQTEFORV9XTV9FTjsKPiArCQkJaWYgKHBfd20tPndtW2xldmVsXS5jdXJzb3JfZW4pCj4g KwkJCQl0ZW1wIHw9IFBMQU5FX1dNX0VOOwo+ICsJCX0KPiAgCj4gIAkJci0+Y3Vyc29yW3BpcGVd W2xldmVsXSA9IHRlbXA7Cj4gIAo+IEBAIC0zNDEyLDEwICszNDIxLDEyIEBAIHN0YXRpYyB2b2lk IHNrbF9jb21wdXRlX3dtX3Jlc3VsdHMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCX0KPiAg Cj4gIAl0ZW1wID0gMDsKPiAtCXRlbXAgfD0gcF93bS0+dHJhbnNfd20uY3Vyc29yX3Jlc19sIDw8 IFBMQU5FX1dNX0xJTkVTX1NISUZUOwo+IC0JdGVtcCB8PSBwX3dtLT50cmFuc193bS5jdXJzb3Jf cmVzX2I7Cj4gLQlpZiAocF93bS0+dHJhbnNfd20uY3Vyc29yX2VuKQo+IC0JCXRlbXAgfD0gUExB TkVfV01fRU47Cj4gKwlpZiAoIUlTX0dFTjkoZGV2KSkgewo+ICsJCXRlbXAgfD0gcF93bS0+dHJh bnNfd20uY3Vyc29yX3Jlc19sIDw8IFBMQU5FX1dNX0xJTkVTX1NISUZUOwo+ICsJCXRlbXAgfD0g cF93bS0+dHJhbnNfd20uY3Vyc29yX3Jlc19iOwo+ICsJCWlmIChwX3dtLT50cmFuc193bS5jdXJz b3JfZW4pCj4gKwkJCXRlbXAgfD0gUExBTkVfV01fRU47Cj4gKwl9Cj4gIAo+ICAJci0+Y3Vyc29y X3RyYW5zW3BpcGVdID0gdGVtcDsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3Nwcml0ZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMK PiBpbmRleCA5ZDhhZjJmOGE4NzUuLjU5NmZhNDMxOTY4MSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3Nwcml0ZS5jCj4gQEAgLTk2MSw3ICs5NjEsOCBAQCBpbnQgaW50ZWxfc3ByaXRlX3Nl dF9jb2xvcmtleShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ICAJCXJldHVy biAtRUlOVkFMOwo+ICAKPiAgCXBsYW5lID0gZHJtX3BsYW5lX2ZpbmQoZGV2LCBzZXQtPnBsYW5l X2lkKTsKPiAtCWlmICghcGxhbmUgfHwgcGxhbmUtPnR5cGUgIT0gRFJNX1BMQU5FX1RZUEVfT1ZF UkxBWSkKPiArCWlmICghcGxhbmUgfHwgcGxhbmUtPnR5cGUgPT0gRFJNX1BMQU5FX1RZUEVfUFJJ TUFSWSB8fAo+ICsJICAgICghSVNfR0VOOShkZXYpICYmIHBsYW5lLT50eXBlID09IERSTV9QTEFO RV9UWVBFX0NVUlNPUikpCj4gIAkJcmV0dXJuIC1FTk9FTlQ7Cj4gIAo+ICAJZHJtX21vZGVzZXRf YWNxdWlyZV9pbml0KCZjdHgsIDApOwo+IEBAIC0xMDQwLDggKzEwNDEsOCBAQCBzdGF0aWMgdWlu dDMyX3Qgc2tsX3BsYW5lX2Zvcm1hdHNbXSA9IHsKPiAgCURSTV9GT1JNQVRfVllVWSwKPiAgfTsK PiAgCj4gLWludAo+IC1pbnRlbF9wbGFuZV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGVu dW0gcGlwZSBwaXBlLCBpbnQgcGxhbmUpCj4gK3N0cnVjdCBkcm1fcGxhbmUgKgo+ICtpbnRlbF9w bGFuZV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGVudW0gcGlwZSBwaXBlLCBpbnQgcGxh bmUsIGVudW0gZHJtX3BsYW5lX3R5cGUgcGxhbmVfdHlwZSkKPiAgewo+ICAJc3RydWN0IGludGVs X3BsYW5lICppbnRlbF9wbGFuZTsKPiAgCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqc3RhdGU7 Cj4gQEAgLTEwNTEsMTYgKzEwNTIsMTYgQEAgaW50ZWxfcGxhbmVfaW5pdChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCBlbnVtIHBpcGUgcGlwZSwgaW50IHBsYW5lKQo+ICAJaW50IHJldDsKPiAgCj4g IAlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPCA1KQo+IC0JCXJldHVybiAtRU5PREVWOwo+ICsJ CXJldHVybiBFUlJfUFRSKC1FTk9ERVYpOwo+ICAKPiAgCWludGVsX3BsYW5lID0ga3phbGxvYyhz aXplb2YoKmludGVsX3BsYW5lKSwgR0ZQX0tFUk5FTCk7Cj4gIAlpZiAoIWludGVsX3BsYW5lKQo+ IC0JCXJldHVybiAtRU5PTUVNOwo+ICsJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwo+ICAKPiAg CXN0YXRlID0gaW50ZWxfY3JlYXRlX3BsYW5lX3N0YXRlKCZpbnRlbF9wbGFuZS0+YmFzZSk7Cj4g IAlpZiAoIXN0YXRlKSB7Cj4gIAkJa2ZyZWUoaW50ZWxfcGxhbmUpOwo+IC0JCXJldHVybiAtRU5P TUVNOwo+ICsJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwo+ICAJfQo+ICAJaW50ZWxfcGxhbmUt PmJhc2Uuc3RhdGUgPSAmc3RhdGUtPmJhc2U7Cj4gIAo+IEBAIC0xMTE2LDcgKzExMTcsNyBAQCBp bnRlbF9wbGFuZV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGVudW0gcGlwZSBwaXBlLCBp bnQgcGxhbmUpCj4gIAkJYnJlYWs7Cj4gIAlkZWZhdWx0Ogo+ICAJCWtmcmVlKGludGVsX3BsYW5l KTsKPiAtCQlyZXR1cm4gLUVOT0RFVjsKPiArCQlyZXR1cm4gRVJSX1BUUigtRU5PREVWKTsKPiAg CX0KPiAgCj4gIAlpbnRlbF9wbGFuZS0+cGlwZSA9IHBpcGU7Cj4gQEAgLTExMjgsNyArMTEyOSw3 IEBAIGludGVsX3BsYW5lX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgZW51bSBwaXBlIHBp cGUsIGludCBwbGFuZSkKPiAgCXJldCA9IGRybV91bml2ZXJzYWxfcGxhbmVfaW5pdChkZXYsICZp bnRlbF9wbGFuZS0+YmFzZSwgcG9zc2libGVfY3J0Y3MsCj4gIAkJCQkgICAgICAgJmludGVsX3Bs YW5lX2Z1bmNzLAo+ICAJCQkJICAgICAgIHBsYW5lX2Zvcm1hdHMsIG51bV9wbGFuZV9mb3JtYXRz LAo+IC0JCQkJICAgICAgIERSTV9QTEFORV9UWVBFX09WRVJMQVkpOwo+ICsJCQkJICAgICAgIHBs YW5lX3R5cGUpOwo+ICAJaWYgKHJldCkgewo+ICAJCWtmcmVlKGludGVsX3BsYW5lKTsKPiAgCQln b3RvIG91dDsKPiBAQCAtMTEzOCw2ICsxMTM5LDggQEAgaW50ZWxfcGxhbmVfaW5pdChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCBlbnVtIHBpcGUgcGlwZSwgaW50IHBsYW5lKQo+ICAKPiAgCWRybV9w bGFuZV9oZWxwZXJfYWRkKCZpbnRlbF9wbGFuZS0+YmFzZSwgJmludGVsX3BsYW5lX2hlbHBlcl9m dW5jcyk7Cj4gIAo+ICsJcmV0dXJuICZpbnRlbF9wbGFuZS0+YmFzZTsKPiArCj4gIG91dDoKPiAt CXJldHVybiByZXQ7Cj4gKwlyZXR1cm4gRVJSX1BUUihyZXQpOwo+ICB9Cj4gCj4gX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZnggbWFpbGlu ZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHA6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKCi0tIApEYW5pZWwgVmV0 dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZnds bC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=