From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v11 4/7] drm/i915/skl: Update plane watermarks atomically during plane updates Date: Fri, 12 Aug 2016 15:42:28 +0300 Message-ID: <20160812124228.GA4329@intel.com> References: <1470945277-7973-1-git-send-email-cpaul@redhat.com> <1470945277-7973-5-git-send-email-cpaul@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1470945277-7973-5-git-send-email-cpaul@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Lyude Cc: dri-devel@lists.freedesktop.org, Radhakrishna Sripada , intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org, Hans de Goede , Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBBdWcgMTEsIDIwMTYgYXQgMDM6NTQ6MzNQTSAtMDQwMCwgTHl1ZGUgd3JvdGU6Cj4g VGhhbmtzIHRvIFZpbGxlIGZvciBzdWdnZXN0aW5nIHRoaXMgYXMgYSBwb3RlbnRpYWwgc29sdXRp b24gdG8gcGlwZQo+IHVuZGVycnVucyBvbiBTa3lsYWtlLgo+IAo+IE9uIFNreWxha2UgYWxsIG9m IHRoZSByZWdpc3RlcnMgZm9yIGNvbmZpZ3VyaW5nIHBsYW5lcywgaW5jbHVkaW5nIHRoZQo+IHJl Z2lzdGVycyBmb3IgY29uZmlndXJpbmcgdGhlaXIgd2F0ZXJtYXJrcywgYXJlIGRvdWJsZSBidWZm ZXJlZC4gTmV3Cj4gdmFsdWVzIHdyaXR0ZW4gdG8gdGhlbSB3b24ndCB0YWtlIGVmZmVjdCB1bnRp bCBzYWlkIHJlZ2lzdGVycyBhcmUKPiAiYXJtZWQiLCB3aGljaCBpcyBkb25lIGJ5IHdyaXRpbmcg dG8gdGhlIFBMQU5FX1NVUkYgKG9yIGluIHRoZSBjYXNlIG9mCj4gY3Vyc29yIHBsYW5lcywgdGhl IENVUkJBU0UgcmVnaXN0ZXIpIHJlZ2lzdGVyLgo+IAo+IFdpdGggdGhpcyBpbiBtaW5kLCB1cCB1 bnRpbCBub3cgd2UndmUgYmVlbiB1cGRhdGluZyB3YXRlcm1hcmtzIG9uIHNrbAo+IGxpa2UgdGhp czoKPiAKPiAgIG5vbi1tb2Rlc2V0IHsKPiAgICAtIGNhbGN1bGF0ZSAoZHVyaW5nIGF0b21pYyBj aGVjayBwaGFzZSkKPiAgICAtIGZpbmlzaF9hdG9taWNfY29tbWl0Ogo+ICAgICAgLSBpbnRlbF9w cmVfcGxhbmVfdXBkYXRlOgo+ICAgICAgICAgLSBpbnRlbF91cGRhdGVfd2F0ZXJtYXJrcygpCj4g ICAgICAtIHt2YmxhbmsgaGFwcGVuczsgbmV3IHdhdGVybWFya3MgKyBvbGQgcGxhbmUgdmFsdWVz ID0+IHVuZGVycnVuIH0KPiAgICAgIC0gZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X3BsYW5lc19v bl9jcnRjOgo+ICAgICAgICAgLSBzdGFydCB2YmxhbmsgZXZhc2lvbgo+ICAgICAgICAgLSB3cml0 ZSBuZXcgcGxhbmUgcmVnaXN0ZXJzCj4gICAgICAgICAtIGVuZCB2YmxhbmsgZXZhc2lvbgo+ICAg fQo+IAo+ICAgb3IKPiAKPiAgIG1vZGVzZXQgewo+ICAgIC0gY2FsY3VsYXRlIChkdXJpbmcgYXRv bWljIGNoZWNrIHBoYXNlKQo+ICAgIC0gZmluaXNoX2F0b21pY19jb21taXQ6Cj4gICAgICAtIGNy dGNfZW5hYmxlOgo+ICAgICAgICAgLSBpbnRlbF91cGRhdGVfd2F0ZXJtYXJrcygpCj4gICAgICAt IHt2YmxhbmsgaGFwcGVuczsgbmV3IHdhdGVybWFya3MgKyBvbGQgcGxhbmUgdmFsdWVzID0+IHVu ZGVycnVuIH0KPiAgICAgIC0gZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X3BsYW5lc19vbl9jcnRj Ogo+ICAgICAgICAgLSBzdGFydCB2YmxhbmsgZXZhc2lvbgo+ICAgICAgICAgLSB3cml0ZSBuZXcg cGxhbmUgcmVnaXN0ZXJzCj4gICAgICAgICAtIGVuZCB2YmxhbmsgZXZhc2lvbgo+ICAgfQo+IAo+ IE5vdyB3ZSB1cGRhdGUgd2F0ZXJtYXJrcyBhdG9taWNhbGx5IGxpa2UgdGhpczoKPiAKPiAgIG5v bi1tb2Rlc2V0IHsKPiAgICAtIGNhbGN1bGF0ZSAoZHVyaW5nIGF0b21pYyBjaGVjayBwaGFzZSkK PiAgICAtIGZpbmlzaF9hdG9taWNfY29tbWl0Ogo+ICAgICAgLSBpbnRlbF9wcmVfcGxhbmVfdXBk YXRlOgo+ICAgICAgICAgLSBpbnRlbF91cGRhdGVfd2F0ZXJtYXJrcygpICh3bSB2YWx1ZXMgYXJl bid0IHdyaXR0ZW4geWV0KQo+ICAgICAgLSBkcm1fYXRvbWljX2hlbHBlcl9jb21taXRfcGxhbmVz X29uX2NydGM6Cj4gICAgICAgICAtIHN0YXJ0IHZibGFuayBldmFzaW9uCj4gICAgICAgICAtIHdy aXRlIG5ldyBwbGFuZSByZWdpc3RlcnMKPiAgICAgICAgIC0gd3JpdGUgbmV3IHdtIHZhbHVlcwo+ ICAgICAgICAgLSBlbmQgdmJsYW5rIGV2YXNpb24KPiAgIH0KPiAKPiAgIG1vZGVzZXQgewo+ICAg IC0gY2FsY3VsYXRlIChkdXJpbmcgYXRvbWljIGNoZWNrIHBoYXNlKQo+ICAgIC0gZmluaXNoX2F0 b21pY19jb21taXQ6Cj4gICAgICAtIGNydGNfZW5hYmxlOgo+ICAgICAgICAgLSBpbnRlbF91cGRh dGVfd2F0ZXJtYXJrcygpIChhY3R1YWwgd20gdmFsdWVzIGFyZW4ndCB3cml0dGVuCj4gICAgICAg ICAgIHlldCkKPiAgICAgIC0gZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X3BsYW5lc19vbl9jcnRj Ogo+ICAgICAgICAgLSBzdGFydCB2YmxhbmsgZXZhc2lvbgo+ICAgICAgICAgLSB3cml0ZSBuZXcg cGxhbmUgcmVnaXN0ZXJzCj4gCS0gd3JpdGUgbmV3IHdtIHZhbHVlcwo+ICAgICAgICAgLSBlbmQg dmJsYW5rIGV2YXNpb24KPiAgIH0KPiAKPiBTbyB0aGlzIHBhdGNoIG1vdmVzIGFsbCBvZiB0aGUg d2F0ZXJtYXJrIHdyaXRlcyBpbnRvIHRoZSByaWdodCBwbGFjZTsKPiBpbnNpZGUgb2YgdGhlIHZi bGFuayBldmFzaW9uIHdoZXJlIHdlIHVwZGF0ZSBhbGwgb2YgdGhlIHJlZ2lzdGVycyBmb3IKPiBl YWNoIHBsYW5lLiBXaGlsZSB0aGlzIHBhdGNoIGRvZXNuJ3QgZml4IGV2ZXJ5dGhpbmcsIGl0IGRv ZXMgYWxsb3cgdXMgdG8KPiB1cGRhdGUgdGhlIHdhdGVybWFyayB2YWx1ZXMgaW4gdGhlIHdheSB0 aGUgaGFyZHdhcmUgZXhwZWN0cyB1cyB0by4KPiAKPiBDaGFuZ2VzIHNpbmNlIG9yaWdpbmFsIHBh dGNoIHNlcmllczoKPiAgLSBSZW1vdmUgbXV0ZXhfbG9jay9tdXRleF91bmxvY2sgc2luY2UgdGhl eSBkb24ndCBkbyBhbnl0aGluZyBhbmQgd2UncmUKPiAgICBub3QgdG91Y2hpbmcgZ2xvYmFsIHN0 YXRlCj4gIC0gTW92ZSBza2xfd3JpdGVfY3Vyc29yX3dtL3NrbF93cml0ZV9wbGFuZV93bSBmdW5j dGlvbnMgaW50bwo+ICAgIGludGVsX3BtLmMsIG1ha2UgZXh0ZXJuYWxseSB2aXNpYmxlCj4gIC0g QWRkIHNrbF93cml0ZV9wbGFuZV93bSBjYWxscyB0byBza2xfdXBkYXRlX3BsYW5lCj4gIC0gRml4 IGNvbmRpdGlvbmFsIGZvciBmb3IgbG9vcCBpbiBza2xfd3JpdGVfcGxhbmVfd20gKGxldmVsIDwg bWF4X2xldmVsCj4gICAgc2hvdWxkIGJlIGxldmVsIDw9IG1heF9sZXZlbCkKPiAgLSBNYWtlIGRp YWdyYW0gaW4gY29tbWl0IG1vcmUgYWNjdXJhdGUgdG8gd2hhdCdzIGFjdHVhbGx5IGhhcHBlbmlu Zwo+ICAtIEFkZCBGaXhlczoKPiAKPiBDaGFuZ2VzIHNpbmNlIHYxOgo+ICAtIFVzZSBJU19HRU45 KCkgaW5zdGVhZCBvZiBJU19TS1lMQUtFKCkgc2luY2UgdGhlc2UgZml4ZXMgYXBwbHkgdG8gbW9y ZQo+ICAgIHRoZW4ganVzdCBTa3lsYWtlCj4gIC0gVXBkYXRlIGRlc2NyaXB0aW9uIHRvIG1ha2Ug aXQgY2xlYXIgdGhpcyBwYXRjaCBkb2Vzbid0IGZpeCBldmVyeXRoaW5nCj4gIC0gQ2hlY2sgaWYg cGlwZXMgd2VyZSBhY3R1YWxseSBjaGFuZ2VkIGJlZm9yZSB3cml0aW5nIHdhdGVybWFya3MKPiAK PiBDaGFuZ2VzIHNpbmNlIHYyOgo+ICAtIFdyaXRlIFBJUEVfV01fTElORVRJTUUgZHVyaW5nIHZi bGFuayBldmFzaW9uCj4gCj4gQ2hhbmdlcyBzaW5jZSB2MzoKPiAgLSBSZWJhc2UgYWdhaW5zdCBu ZXcgU0FHViBwYXRjaCBjaGFuZ2VzCj4gCj4gQ2hhbmdlcyBzaW5jZSB2NDoKPiAgLSBBZGQgYSBw YXJhbWV0ZXIgdG8gY2hvb3NlIHdoYXQgc2tsX3dtX3ZhbHVlcyBzdHJ1Y3QgdG8gdXNlIHdoZW4K PiAgICB3cml0aW5nIG5ldyBwbGFuZSB3YXRlcm1hcmtzCj4gCj4gQ2hhbmdlcyBzaW5jZSB2NToK PiAgLSBSZW1vdmUgY3Vyc29yIGRkYiBlbnRyeSB3cml0ZSBpbiBza2xfd3JpdGVfY3Vyc29yX3dt KCksIGRlZmVyIHVudGlsCj4gICAgcGF0Y2ggNgo+ICAtIFdyaXRlIFdNX0xJTkVUSU1FIGluIGlu dGVsX2JlZ2luX2NydGNfY29tbWl0KCkKPiAKPiBDaGFuZ2VzIHNpbmNlIHY2Ogo+ICAtIFJlbW92 ZSByZWR1bmRhbnQgZGlydHlfcGlwZXMgY2hlY2sgaW4gc2tsX3dyaXRlX3BsYW5lX3dtICh3ZSBj aGVjawo+ICAgIHRoaXMgaW4gYWxsIHBsYWNlcyB3aGVyZSB3ZSBjYWxsIHRoaXMgZnVuY3Rpb24s IGFuZCBpdCB3YXMgc3VwcG9zZWQKPiAgICB0byBoYXZlIGJlZW4gcmVtb3ZlZCBlYXJsaWVyIGFu eXdheSkKPiAgLSBJbiBpOXh4X3VwZGF0ZV9jdXJzb3IoKSwgdXNlIGRldl9wcml2LT5pbmZvLmdl biA+PSA5IGluc3RlYWQgb2YKPiAgICBJU19HRU45KGRldl9wcml2KS4gV2UgZG8gdGhpcyBldmVy eXdoZXJlIGVsc2UgYW5kIEknZCBpbWFnaW5lIHRoaXMKPiAgICBuZWVkcyB0byBiZSBkb25lIGZv ciBnZW4xMCBhcyB3ZWxsCj4gCj4gRml4ZXM6IDJkNDFjMGI1OWFmYyAoImRybS9pOTE1L3NrbDog U0tMIFdhdGVybWFyayBDb21wdXRhdGlvbiIpCj4gU2lnbmVkLW9mZi1ieTogTHl1ZGUgPGNwYXVs QHJlZGhhdC5jb20+Cj4gUmV2aWV3ZWQtYnk6IE1hdHQgUm9wZXIgPG1hdHRoZXcuZC5yb3BlckBp bnRlbC5jb20+Cj4gQ2M6IHN0YWJsZUB2Z2VyLmtlcm5lbC5vcmcKPiBDYzogVmlsbGUgU3lyasOk bMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiBDYzogRGFuaWVsIFZldHRlciA8 ZGFuaWVsLnZldHRlckBpbnRlbC5jb20+Cj4gQ2M6IFJhZGhha3Jpc2huYSBTcmlwYWRhIDxyYWRo YWtyaXNobmEuc3JpcGFkYUBpbnRlbC5jb20+Cj4gQ2M6IEhhbnMgZGUgR29lZGUgPGhkZWdvZWRl QHJlZGhhdC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku YyB8IDE3ICsrKysrKysrKysrLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAg ICAgfCAgNSArKysrCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgICAgICB8IDUw ICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9zcHJpdGUuYyAgfCAgNyArKysrKwo+ICA0IGZpbGVzIGNoYW5nZWQsIDYyIGlu c2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMKPiBpbmRleCAzNWJkZDY3Li5iMmY4ZTI0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC0zMzg2LDYgKzMzODYsOCBAQCBzdGF0aWMgdm9pZCBza3ls YWtlX3VwZGF0ZV9wcmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ICAJc3RydWN0 IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2Uu Y3J0Yyk7Cj4gIAlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5iYXNl LmZiOwo+ICsJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IGludGVsX2ZiX29iaihm Yik7CgpyZWJhc2UgZmFpbD8KClBsZWFzZSBkb3VibGUgY2hlY2sgd2l0aCBnY2Mvc3BhcnNlIHRo YXQgbmV3IHdhcm5pbmdzIGFyZSBrZXB0IHRvIGEKbWluaW11bS4KCj4gKwlzdHJ1Y3Qgc2tsX3dt X3ZhbHVlcyAqd20gPSAmZGV2X3ByaXYtPndtLnNrbF9yZXN1bHRzOwoKY29uc3Q/Cgo+ICAJaW50 IHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwo+ICAJdTMyIHBsYW5lX2N0bDsKPiAgCXVuc2lnbmVk IGludCByb3RhdGlvbiA9IHBsYW5lX3N0YXRlLT5iYXNlLnJvdGF0aW9uOwo+IEBAIC0zNDE5LDYg KzM0MjEsOSBAQCBzdGF0aWMgdm9pZCBza3lsYWtlX3VwZGF0ZV9wcmltYXJ5X3BsYW5lKHN0cnVj dCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAJaW50ZWxfY3J0Yy0+YWRqdXN0ZWRfeCA9IHNyY194Owo+ ICAJaW50ZWxfY3J0Yy0+YWRqdXN0ZWRfeSA9IHNyY195Owo+ICAKPiArCWlmICh3bS0+ZGlydHlf cGlwZXMgJiBkcm1fY3J0Y19tYXNrKCZpbnRlbF9jcnRjLT5iYXNlKSkKPiArCSAgICBza2xfd3Jp dGVfcGxhbmVfd20oaW50ZWxfY3J0Yywgd20sIDApOwoKSW5kZW50IGZhaWwuCgo+ICsKPiAgCUk5 MTVfV1JJVEUoUExBTkVfQ1RMKHBpcGUsIDApLCBwbGFuZV9jdGwpOwo+ICAJSTkxNV9XUklURShQ TEFORV9PRkZTRVQocGlwZSwgMCksIChzcmNfeSA8PCAxNikgfCBzcmNfeCk7Cj4gIAlJOTE1X1dS SVRFKFBMQU5FX1NUUklERShwaXBlLCAwKSwgc3RyaWRlKTsKPiBAQCAtMTA2OTksOSArMTA3MDQs MTMgQEAgc3RhdGljIHZvaWQgaTl4eF91cGRhdGVfY3Vyc29yKHN0cnVjdCBkcm1fY3J0YyAqY3J0 YywgdTMyIGJhc2UsCj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2Owo+ICAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ICAJc3Ry dWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwo+ICsJc3Ry dWN0IHNrbF93bV92YWx1ZXMgKndtID0gJmRldl9wcml2LT53bS5za2xfcmVzdWx0czsKPiAgCWlu dCBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKPiAgCXVpbnQzMl90IGNudGwgPSAwOwo+ICAKPiAr CWlmIChkZXZfcHJpdi0+aW5mby5nZW4gPj0gOSAmJiB3bS0+ZGlydHlfcGlwZXMgJiBkcm1fY3J0 Y19tYXNrKGNydGMpCgpJTlRFTF9HRU4oKQoKPiArCQlza2xfd3JpdGVfY3Vyc29yX3dtKGludGVs X2NydGMsIHdtKTsKPiArCj4gIAlpZiAocGxhbmVfc3RhdGUgJiYgcGxhbmVfc3RhdGUtPmJhc2Uu dmlzaWJsZSkgewo+ICAJCWNudGwgPSBNQ1VSU09SX0dBTU1BX0VOQUJMRTsKPiAgCQlzd2l0Y2gg KHBsYW5lX3N0YXRlLT5iYXNlLmNydGNfdykgewo+IEBAIC0xNDYxMCwxMCArMTQ2MTksMTIgQEAg c3RhdGljIHZvaWQgaW50ZWxfYmVnaW5fY3J0Y19jb21taXQoc3RydWN0IGRybV9jcnRjICpjcnRj LAo+ICAJCQkJICAgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUpCj4gIHsK PiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7Cj4gKwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gIAlzdHJ1Y3QgaW50ZWxfY3J0 YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Cj4gIAlzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqb2xkX2ludGVsX3N0YXRlID0KPiAgCQl0b19pbnRlbF9jcnRjX3N0YXRlKG9sZF9j cnRjX3N0YXRlKTsKPiAgCWJvb2wgbW9kZXNldCA9IG5lZWRzX21vZGVzZXQoY3J0Yy0+c3RhdGUp Owo+ICsJZW51bSBwaXBlIHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwo+ICAKPiAgCS8qIFBlcmZv cm0gdmJsYW5rIGV2YXNpb24gYXJvdW5kIGNvbW1pdCBvcGVyYXRpb24gKi8KPiAgCWludGVsX3Bp cGVfdXBkYXRlX3N0YXJ0KGludGVsX2NydGMpOwo+IEBAIC0xNDYyOCw4ICsxNDYzOSwxMiBAQCBz dGF0aWMgdm9pZCBpbnRlbF9iZWdpbl9jcnRjX2NvbW1pdChzdHJ1Y3QgZHJtX2NydGMgKmNydGMs Cj4gIAo+ICAJaWYgKHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpLT51cGRhdGVfcGlw ZSkKPiAgCQlpbnRlbF91cGRhdGVfcGlwZV9jb25maWcoaW50ZWxfY3J0Yywgb2xkX2ludGVsX3N0 YXRlKTsKPiAtCWVsc2UgaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDkpCj4gKwllbHNlIGlm IChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA5KSB7Cj4gIAkJc2tsX2RldGFjaF9zY2FsZXJzKGlu dGVsX2NydGMpOwo+ICsKPiArCQlJOTE1X1dSSVRFKFBJUEVfV01fTElORVRJTUUocGlwZSksCj4g KwkJCSAgIGRldl9wcml2LT53bS5za2xfaHcud21fbGluZXRpbWVbcGlwZV0pOwo+ICsJfQo+ICB9 Cj4gIAo+ICBzdGF0aWMgdm9pZCBpbnRlbF9maW5pc2hfY3J0Y19jb21taXQoc3RydWN0IGRybV9j cnRjICpjcnRjLAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXggNzZlNzhiOC4uODgw ODhjMyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gQEAgLTE3MjMsNiArMTcyMywx MSBAQCB2b2lkIHNrbF9kZGJfZ2V0X2h3X3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKPiAgCQkJICBzdHJ1Y3Qgc2tsX2RkYl9hbGxvY2F0aW9uICpkZGIgLyogb3V0ICov KTsKPiAgaW50IHNrbF9lbmFibGVfc2FndihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpOwo+ICBpbnQgc2tsX2Rpc2FibGVfc2FndihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpOwo+ICt2b2lkIHNrbF93cml0ZV9jdXJzb3Jfd20oc3RydWN0IGludGVsX2NydGMgKmlu dGVsX2NydGMsCj4gKwkJCSBjb25zdCBzdHJ1Y3Qgc2tsX3dtX3ZhbHVlcyAqd20pOwo+ICt2b2lk IHNrbF93cml0ZV9wbGFuZV93bShzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKPiArCQkJ Y29uc3Qgc3RydWN0IHNrbF93bV92YWx1ZXMgKndtLAo+ICsJCQlpbnQgcGxhbmUpOwo+ICB1aW50 MzJfdCBpbGtfcGlwZV9waXhlbF9yYXRlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpw aXBlX2NvbmZpZyk7Cj4gIGJvb2wgaWxrX2Rpc2FibGVfbHBfd20oc3RydWN0IGRybV9kZXZpY2Ug KmRldik7Cj4gIGludCBzYW5pdGl6ZV9yYzZfb3B0aW9uKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwgaW50IGVuYWJsZV9yYzYpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+IGlu ZGV4IDc3MTY2YzYuLmU4NjUzZDggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcG0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiBAQCAt Mzc3OSw2ICszNzc5LDM5IEBAIHN0YXRpYyB2b2lkIHNrbF9kZGJfZW50cnlfd3JpdGUoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCUk5MTVfV1JJVEUocmVnLCAwKTsKPiAg fQo+ICAKPiArdm9pZCBza2xfd3JpdGVfcGxhbmVfd20oc3RydWN0IGludGVsX2NydGMgKmludGVs X2NydGMsCj4gKwkJCWNvbnN0IHN0cnVjdCBza2xfd21fdmFsdWVzICp3bSwKPiArCQkJaW50IHBs YW5lKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSAmaW50ZWxfY3J0Yy0+YmFzZTsK PiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7Cj4gKwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gKwlpbnQgbGV2ZWwsIG1heF9s ZXZlbCA9IGlsa193bV9tYXhfbGV2ZWwoZGV2KTsKPiArCWVudW0gcGlwZSBwaXBlID0gaW50ZWxf Y3J0Yy0+cGlwZTsKPiArCj4gKwlmb3IgKGxldmVsID0gMDsgbGV2ZWwgPD0gbWF4X2xldmVsOyBs ZXZlbCsrKSB7Cj4gKwkJSTkxNV9XUklURShQTEFORV9XTShwaXBlLCBwbGFuZSwgbGV2ZWwpLAo+ ICsJCQkgICB3bS0+cGxhbmVbcGlwZV1bcGxhbmVdW2xldmVsXSk7Cj4gKwl9Cj4gKwlJOTE1X1dS SVRFKFBMQU5FX1dNX1RSQU5TKHBpcGUsIHBsYW5lKSwgd20tPnBsYW5lX3RyYW5zW3BpcGVdW3Bs YW5lXSk7Cj4gK30KPiArCj4gK3ZvaWQgc2tsX3dyaXRlX2N1cnNvcl93bShzdHJ1Y3QgaW50ZWxf Y3J0YyAqaW50ZWxfY3J0YywKPiArCQkJIGNvbnN0IHN0cnVjdCBza2xfd21fdmFsdWVzICp3bSkK PiArewo+ICsJc3RydWN0IGRybV9jcnRjICpjcnRjID0gJmludGVsX2NydGMtPmJhc2U7Cj4gKwlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2Owo+ICsJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ICsJaW50IGxldmVsLCBtYXhfbGV2ZWwg PSBpbGtfd21fbWF4X2xldmVsKGRldik7Cj4gKwllbnVtIHBpcGUgcGlwZSA9IGludGVsX2NydGMt PnBpcGU7Cj4gKwo+ICsJZm9yIChsZXZlbCA9IDA7IGxldmVsIDw9IG1heF9sZXZlbDsgbGV2ZWwr Kykgewo+ICsJCUk5MTVfV1JJVEUoQ1VSX1dNKHBpcGUsIGxldmVsKSwKPiArCQkJICAgd20tPnBs YW5lW3BpcGVdW1BMQU5FX0NVUlNPUl1bbGV2ZWxdKTsKPiArCX0KPiArCUk5MTVfV1JJVEUoQ1VS X1dNX1RSQU5TKHBpcGUpLCB3bS0+cGxhbmVfdHJhbnNbcGlwZV1bUExBTkVfQ1VSU09SXSk7Cj4g K30KPiArCj4gIHN0YXRpYyB2b2lkIHNrbF93cml0ZV93bV92YWx1ZXMoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCQkJY29uc3Qgc3RydWN0IHNrbF93bV92YWx1ZXMgKm5l dykKPiAgewo+IEBAIC0zNzg2LDcgKzM4MTksNyBAQCBzdGF0aWMgdm9pZCBza2xfd3JpdGVfd21f dmFsdWVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCXN0cnVjdCBpbnRl bF9jcnRjICpjcnRjOwo+ICAKPiAgCWZvcl9lYWNoX2ludGVsX2NydGMoZGV2LCBjcnRjKSB7Cj4g LQkJaW50IGksIGxldmVsLCBtYXhfbGV2ZWwgPSBpbGtfd21fbWF4X2xldmVsKGRldik7Cj4gKwkJ aW50IGk7Cj4gIAkJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwo+ICAKPiAgCQlpZiAoKG5l dy0+ZGlydHlfcGlwZXMgJiBkcm1fY3J0Y19tYXNrKCZjcnRjLT5iYXNlKSkgPT0gMCkKPiBAQCAt Mzc5NCwyMSArMzgyNyw2IEBAIHN0YXRpYyB2b2lkIHNrbF93cml0ZV93bV92YWx1ZXMoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCWlmICghY3J0Yy0+YWN0aXZlKQo+ICAJ CQljb250aW51ZTsKPiAgCj4gLQkJSTkxNV9XUklURShQSVBFX1dNX0xJTkVUSU1FKHBpcGUpLCBu ZXctPndtX2xpbmV0aW1lW3BpcGVdKTsKPiAtCj4gLQkJZm9yIChsZXZlbCA9IDA7IGxldmVsIDw9 IG1heF9sZXZlbDsgbGV2ZWwrKykgewo+IC0JCQlmb3IgKGkgPSAwOyBpIDwgaW50ZWxfbnVtX3Bs YW5lcyhjcnRjKTsgaSsrKQo+IC0JCQkJSTkxNV9XUklURShQTEFORV9XTShwaXBlLCBpLCBsZXZl bCksCj4gLQkJCQkJICAgbmV3LT5wbGFuZVtwaXBlXVtpXVtsZXZlbF0pOwo+IC0JCQlJOTE1X1dS SVRFKENVUl9XTShwaXBlLCBsZXZlbCksCj4gLQkJCQkgICBuZXctPnBsYW5lW3BpcGVdW1BMQU5F X0NVUlNPUl1bbGV2ZWxdKTsKPiAtCQl9Cj4gLQkJZm9yIChpID0gMDsgaSA8IGludGVsX251bV9w bGFuZXMoY3J0Yyk7IGkrKykKPiAtCQkJSTkxNV9XUklURShQTEFORV9XTV9UUkFOUyhwaXBlLCBp KSwKPiAtCQkJCSAgIG5ldy0+cGxhbmVfdHJhbnNbcGlwZV1baV0pOwo+IC0JCUk5MTVfV1JJVEUo Q1VSX1dNX1RSQU5TKHBpcGUpLAo+IC0JCQkgICBuZXctPnBsYW5lX3RyYW5zW3BpcGVdW1BMQU5F X0NVUlNPUl0pOwo+IC0KPiAgCQlmb3IgKGkgPSAwOyBpIDwgaW50ZWxfbnVtX3BsYW5lcyhjcnRj KTsgaSsrKSB7Cj4gIAkJCXNrbF9kZGJfZW50cnlfd3JpdGUoZGV2X3ByaXYsCj4gIAkJCQkJICAg IFBMQU5FX0JVRl9DRkcocGlwZSwgaSksCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3Nwcml0ZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMK PiBpbmRleCAzNjY5MDBkLi4zYzU2MGY5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3Nwcml0ZS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3By aXRlLmMKPiBAQCAtMjAzLDYgKzIwMywxMCBAQCBza2xfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1f cGxhbmUgKmRybV9wbGFuZSwKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoZGV2KTsKPiAgCXN0cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxhbmUgPSB0b19p bnRlbF9wbGFuZShkcm1fcGxhbmUpOwo+ICAJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBw bGFuZV9zdGF0ZS0+YmFzZS5mYjsKPiArCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmog PSBpbnRlbF9mYl9vYmooZmIpOwo+ICsJc3RydWN0IHNrbF93bV92YWx1ZXMgKndtID0gJmRldl9w cml2LT53bS5za2xfcmVzdWx0czsKPiArCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IGNydGNfc3Rh dGUtPmJhc2UuY3J0YzsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50 ZWxfY3J0YyhjcnRjKTsKPiAgCWNvbnN0IGludCBwaXBlID0gaW50ZWxfcGxhbmUtPnBpcGU7Cj4g IAljb25zdCBpbnQgcGxhbmUgPSBpbnRlbF9wbGFuZS0+cGxhbmUgKyAxOwo+ICAJdTMyIHBsYW5l X2N0bDsKPiBAQCAtMjI4LDYgKzIzMiw5IEBAIHNrbF91cGRhdGVfcGxhbmUoc3RydWN0IGRybV9w bGFuZSAqZHJtX3BsYW5lLAo+ICAKPiAgCXBsYW5lX2N0bCB8PSBza2xfcGxhbmVfY3RsX3JvdGF0 aW9uKHJvdGF0aW9uKTsKPiAgCj4gKwlpZiAod20tPmRpcnR5X3BpcGVzICYgZHJtX2NydGNfbWFz ayhjcnRjKSkKPiArCSAgICBza2xfd3JpdGVfcGxhbmVfd20oaW50ZWxfY3J0Yywgd20sIHBsYW5l KTsKPiArCj4gIAlpZiAoa2V5LT5mbGFncykgewo+ICAJCUk5MTVfV1JJVEUoUExBTkVfS0VZVkFM KHBpcGUsIHBsYW5lKSwga2V5LT5taW5fdmFsdWUpOwo+ICAJCUk5MTVfV1JJVEUoUExBTkVfS0VZ TUFYKHBpcGUsIHBsYW5lKSwga2V5LT5tYXhfdmFsdWUpOwo+IC0tIAo+IDIuNy40CgotLSAKVmls bGUgU3lyasOkbMOkCkludGVsIE9UQwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9kcmktZGV2ZWwK