From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: Re: [isg-gms] [RFC 3/6] drm/i915/vlv: Move fifo_size from intel_plane_wm_parameters to vlv_wm_state Date: Wed, 15 Jun 2016 07:51:25 +0200 Message-ID: <4cb0498f-2546-0e20-274d-c068cfebe6d2@linux.intel.com> References: <1465399364-28512-1-git-send-email-chix.ding@intel.com> <1465399364-28512-4-git-send-email-chix.ding@intel.com> <20160614215211.GA31785@intel.com> 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 868FC6E842 for ; Wed, 15 Jun 2016 05:51:28 +0000 (UTC) In-Reply-To: <20160614215211.GA31785@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Matt Roper , Chi Ding Cc: yetundex.adebisi@intel.com, isg-gms@eclists.intel.com, intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T3AgMTQtMDYtMTYgb20gMjM6NTIgc2NocmVlZiBNYXR0IFJvcGVyOgo+IE9uIFdlZCwgSnVuIDA4 LCAyMDE2IGF0IDA1OjIyOjQxUE0gKzAyMDAsIENoaSBEaW5nIHdyb3RlOgo+PiBGcm9tOiBNYWFy dGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgo+Pgo+PiBU aGlzIGNvbW1pdCBzYXZlcyB3YXRlcm1hcmsgZm9yIGVhY2ggcGxhbmUgaW4gdmx2X3dtX3N0YXRl IHRvIHByZXBhcmUKPj4gZm9yIHR3by1sZXZlbCB3YXRlcm1hcmsgYmVjYXVzZSB3ZSdsbCBjb21w dXRlIGFuZCBzYXZlIGludGVybWVkaWF0ZSBhbmQKPj4gb3B0aW1hbCB3YXRlcm1hcmsgYW5kIGZp Zm8gc2l6ZSBmb3IgZWFjaCBwbGFuZS4KPj4KPj4gU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5r aG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KPj4gU2lnbmVkLW9mZi1i eTogQ2hpIERpbmcgPGNoaXguZGluZ0BpbnRlbC5jb20+Cj4+IC0tLQo+PiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmggfCAgMTIgKy0tLS0KPj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3BtLmMgIHwgMTExICsrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0t LQo+PiAgMiBmaWxlcyBjaGFuZ2VkLCA2MSBpbnNlcnRpb25zKCspLCA2MiBkZWxldGlvbnMoLSkK Pj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPj4gaW5kZXggYjk3M2I4Ni4uMzExMThlMSAx MDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPj4gQEAgLTYyNCw2ICs2MjQsNyBAQCBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSB7Cj4+ICBzdHJ1Y3Qgdmx2X3dtX3N0YXRlIHsKPj4gIAlz dHJ1Y3Qgdmx2X3BpcGVfd20gd21bM107Cj4+ICAJc3RydWN0IHZsdl9zcl93bSBzclszXTsKPj4g Kwl1aW50MTZfdCBmaWZvX3NpemVbSTkxNV9NQVhfUExBTkVTXTsKPj4gIAl1aW50OF90IG51bV9h Y3RpdmVfcGxhbmVzOwo+PiAgCXVpbnQ4X3QgbnVtX2xldmVsczsKPj4gIAl1aW50OF90IGxldmVs Owo+PiBAQCAtNjk2LDEwICs2OTcsNiBAQCBzdHJ1Y3QgaW50ZWxfY3J0YyB7Cj4+ICAJc3RydWN0 IHZsdl93bV9zdGF0ZSB3bV9zdGF0ZTsKPj4gIH07Cj4+ICAKPj4gLXN0cnVjdCBpbnRlbF9wbGFu ZV93bV9wYXJhbWV0ZXJzIHsKPj4gLQl1aW50MTZfdCBmaWZvX3NpemU7Cj4+IC19Owo+PiAtCj4+ ICBzdHJ1Y3QgaW50ZWxfcGxhbmUgewo+PiAgCXN0cnVjdCBkcm1fcGxhbmUgYmFzZTsKPj4gIAlp bnQgcGxhbmU7Cj4+IEBAIC03MDgsMTMgKzcwNSw2IEBAIHN0cnVjdCBpbnRlbF9wbGFuZSB7Cj4+ ICAJaW50IG1heF9kb3duc2NhbGU7Cj4+ICAJdWludDMyX3QgZnJvbnRidWZmZXJfYml0Owo+PiAg Cj4+IC0JLyogU2luY2Ugd2UgbmVlZCB0byBjaGFuZ2UgdGhlIHdhdGVybWFya3MgYmVmb3JlL2Fm dGVyCj4+IC0JICogZW5hYmxpbmcvZGlzYWJsaW5nIHRoZSBwbGFuZXMsIHdlIG5lZWQgdG8gc3Rv cmUgdGhlIHBhcmFtZXRlcnMgaGVyZQo+PiAtCSAqIGFzIHRoZSBvdGhlciBwaWVjZXMgb2YgdGhl IHN0cnVjdCBtYXkgbm90IHJlZmxlY3QgdGhlIHZhbHVlcyB3ZSB3YW50Cj4+IC0JICogZm9yIHRo ZSB3YXRlcm1hcmsgY2FsY3VsYXRpb25zLiBDdXJyZW50bHkgb25seSBIYXN3ZWxsIHVzZXMgdGhp cy4KPj4gLQkgKi8KPj4gLQlzdHJ1Y3QgaW50ZWxfcGxhbmVfd21fcGFyYW1ldGVycyB3bTsKPj4g LQo+PiAgCS8qCj4+ICAJICogTk9URTogRG8gbm90IHBsYWNlIG5ldyBwbGFuZSBzdGF0ZSBmaWVs ZHMgaGVyZSAoZS5nLiwgd2hlbiBhZGRpbmcKPj4gIAkgKiBuZXcgcGxhbmUgcHJvcGVydGllcyku ICBOZXcgcnVudGltZSBzdGF0ZSBzaG91bGQgbm93IGJlIHBsYWNlZCBpbgo+PiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3BtLmMKPj4gaW5kZXggYTM5NDJkZi4uMzNmNTJhZSAxMDA2NDQKPj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9wbS5jCj4+IEBAIC05ODMsMTQgKzk4MywxNiBAQCBzdGF0aWMgdWludDE2X3Qgdmx2 X2NvbXB1dGVfd21fbGV2ZWwoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwKPj4gIAlyZXR1cm4g bWluX3QoaW50LCB3bSwgVVNIUlRfTUFYKTsKPj4gIH0KPj4gIAo+PiAtc3RhdGljIHZvaWQgdmx2 X2NvbXB1dGVfZmlmbyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKPj4gK3N0YXRpYyB2b2lkIHZs dl9jb21wdXRlX2ZpZm8oc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4+ICsJCQkJc3RydWN0IHZs dl93bV9zdGF0ZSAqd21fc3RhdGUpCj4+ICB7Cj4+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 IGNydGMtPmJhc2UuZGV2Owo+PiAtCXN0cnVjdCB2bHZfd21fc3RhdGUgKndtX3N0YXRlID0gJmNy dGMtPndtX3N0YXRlOwo+PiAgCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmU7Cj4+ICAJdW5zaWdu ZWQgaW50IHRvdGFsX3JhdGUgPSAwOwo+PiAgCWNvbnN0IGludCBmaWZvX3NpemUgPSA1MTIgLSAx Owo+PiAgCWludCBmaWZvX2V4dHJhLCBmaWZvX2xlZnQgPSBmaWZvX3NpemU7Cj4+ICsJaW50IHJh dGVbSTkxNV9NQVhfUExBTkVTXSA9IHt9Owo+IEkgdGhpbmsgdGhpcyBzeW50YXggbWlnaHQgY2F1 c2UgYSB3YXJuaW5nIG9uIHNvbWUgdmVyc2lvbnMgb2YgR0NDIChpaXJjLAo+IGVtcHR5IGJyYWNl cyBhcmUgdGVjaG5pY2FsbHkgaWxsZWdhbCBpbiB0aGUgQyBzcGVjLCBidXQgbGVnYWwgaW4gQysr KS4KPiBJIGJlbGlldmUgcHJvdmlkaW5nIHRoZSB2YWx1ZSBvZiB0aGUgZmlyc3QgZWxlbWVudCB3 aWxsIGF2b2lkIHRoZQo+IHdhcm5pbmcgKGFuZCBzdGlsbCBpbml0aWFsaXplIGFsbCBlbnRyaWVz IHRvIDApOyBpLmUuLCAKS2VybmVsIGFsbG93cyBpdCwganVzdCBncmVwIGZvciAnPSB7IH0nIG9y ICc9IHt9Jy4KPiAgICAgICAgIGludCByYXRlW0k5MTVfTUFYX1BMQU5FU10gPSB7IDAgfTsKPgo+ PiArCWludCBpOwo+PiAgCj4+ICAJZm9yX2VhY2hfaW50ZWxfcGxhbmVfb25fY3J0YyhkZXYsIGNy dGMsIHBsYW5lKSB7Cj4+ICAJCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqc3RhdGUgPQo+PiBA QCAtMTAwMSw1OCArMTAwMyw1NSBAQCBzdGF0aWMgdm9pZCB2bHZfY29tcHV0ZV9maWZvKHN0cnVj dCBpbnRlbF9jcnRjICpjcnRjKQo+PiAgCj4+ICAJCWlmIChzdGF0ZS0+dmlzaWJsZSkgewo+PiAg CQkJd21fc3RhdGUtPm51bV9hY3RpdmVfcGxhbmVzKys7Cj4+IC0JCQl0b3RhbF9yYXRlICs9IGRy bV9mb3JtYXRfcGxhbmVfY3BwKHN0YXRlLT5iYXNlLmZiLT5waXhlbF9mb3JtYXQsIDApOwo+PiAr CQkJcmF0ZVt3bV9wbGFuZV9pZChwbGFuZSldID0KPj4gKwkJCWRybV9mb3JtYXRfcGxhbmVfY3Bw KHN0YXRlLT5iYXNlLmZiLT5waXhlbF9mb3JtYXQsIDApOwo+PiArCQkJdG90YWxfcmF0ZSArPSBy YXRlW3dtX3BsYW5lX2lkKHBsYW5lKV07Cj4+ICAJCX0KPj4gIAl9Cj4+ICAKPj4gLQlmb3JfZWFj aF9pbnRlbF9wbGFuZV9vbl9jcnRjKGRldiwgY3J0YywgcGxhbmUpIHsKPj4gLQkJc3RydWN0IGlu dGVsX3BsYW5lX3N0YXRlICpzdGF0ZSA9Cj4+IC0JCQl0b19pbnRlbF9wbGFuZV9zdGF0ZShwbGFu ZS0+YmFzZS5zdGF0ZSk7Cj4+IC0JCXVuc2lnbmVkIGludCByYXRlOwo+PiAtCj4+IC0JCWlmIChw bGFuZS0+YmFzZS50eXBlID09IERSTV9QTEFORV9UWVBFX0NVUlNPUikgewo+PiAtCQkJcGxhbmUt PndtLmZpZm9fc2l6ZSA9IDYzOwo+PiArCWZvciAoaSA9IDA7IGkgPCBJOTE1X01BWF9QTEFORVM7 IGkrKykgewo+IElzIHRoZXJlIGEgc3BlY2lmaWMgcmVhc29uIHRvIGNoYW5nZSBmcm9tIGl0ZXJh dGluZyBvdmVyIHBsYW5lcyB0bwo+IGl0ZXJhdGluZyBvdmVyIGluZGljZXMgaGVyZT8gIEkgdGhp bmsgdGhlIGVuZCByZXN1bHQgaXMgdGhlIHNhbWUgZWl0aGVyCj4gd2F5IGFzIGZhciBhcyBJIGNh biBzZWU/ICAoQXNzdW1pbmcgeW91IGNvdWxkIGp1c3Qgc2V0Cj4gaSA9IHdtX3BsYW5lX2lkKHBs YW5lKSBsaWtlIHlvdSBkaWQgaW4gdGhlIGZpcnN0IGxvb3AgaWYgeW91IGtlcHQgdGhlCj4gb3Jp Z2luYWwgbG9vcCkuClllYWgsIHJlc3VsdCBpcyB0aGUgc2FtZSwgYnV0IHRoaXMgd2F5IHdlIGRv bid0IGhhdmUgdG8gZ3JhYiB0aGUgcGxhbmUgc3RhdGUgbXVsdGlwbGUgdGltZXMuCj4KPj4gKwkJ aWYgKGkgPT0gUExBTkVfQ1VSU09SKSB7Cj4+ICsJCQl3bV9zdGF0ZS0+Zmlmb19zaXplW2ldID0g NjM7Cj4+ICAJCQljb250aW51ZTsKPj4gIAkJfQo+PiAgCj4+IC0JCWlmICghc3RhdGUtPnZpc2li bGUpIHsKPj4gLQkJCXBsYW5lLT53bS5maWZvX3NpemUgPSAwOwo+PiArCQlpZiAoIXJhdGVbaV0p IHsKPj4gKwkJCXdtX3N0YXRlLT5maWZvX3NpemVbaV0gPSAwOwo+PiAgCQkJY29udGludWU7Cj4+ ICAJCX0KPj4gIAo+PiAtCQlyYXRlID0gZHJtX2Zvcm1hdF9wbGFuZV9jcHAoc3RhdGUtPmJhc2Uu ZmItPnBpeGVsX2Zvcm1hdCwgMCk7Cj4+IC0JCXBsYW5lLT53bS5maWZvX3NpemUgPSBmaWZvX3Np emUgKiByYXRlIC8gdG90YWxfcmF0ZTsKPj4gLQkJZmlmb19sZWZ0IC09IHBsYW5lLT53bS5maWZv X3NpemU7Cj4+ICsJCXdtX3N0YXRlLT5maWZvX3NpemVbaV0gPSBmaWZvX3NpemUgKiByYXRlW2ld IC8gdG90YWxfcmF0ZTsKPj4gKwkJZmlmb19sZWZ0IC09IHdtX3N0YXRlLT5maWZvX3NpemVbaV07 Cj4+ICAJfQo+PiAgCj4+ICAJZmlmb19leHRyYSA9IERJVl9ST1VORF9VUChmaWZvX2xlZnQsIHdt X3N0YXRlLT5udW1fYWN0aXZlX3BsYW5lcyA/OiAxKTsKPj4gIAo+PiAgCS8qIHNwcmVhZCB0aGUg cmVtYWluZGVyIGV2ZW5seSAqLwo+PiAtCWZvcl9lYWNoX2ludGVsX3BsYW5lX29uX2NydGMoZGV2 LCBjcnRjLCBwbGFuZSkgewo+PiArCWZvciAoaSA9IDA7IGkgPCBJOTE1X01BWF9QTEFORVM7IGkr Kykgewo+PiAgCQlpbnQgcGxhbmVfZXh0cmE7Cj4+ICAKPj4gIAkJaWYgKGZpZm9fbGVmdCA9PSAw KQo+PiAgCQkJYnJlYWs7Cj4+ICAKPj4gLQkJaWYgKHBsYW5lLT5iYXNlLnR5cGUgPT0gRFJNX1BM QU5FX1RZUEVfQ1VSU09SKQo+PiArCQlpZiAoaSA9PSBQTEFORV9DVVJTT1IpCj4+ICAJCQljb250 aW51ZTsKPj4gIAo+PiAgCQkvKiBnaXZlIGl0IGFsbCB0byB0aGUgZmlyc3QgcGxhbmUgaWYgbm9u ZSBhcmUgYWN0aXZlICovCj4+IC0JCWlmIChwbGFuZS0+d20uZmlmb19zaXplID09IDAgJiYKPj4g KwkJaWYgKCF3bV9zdGF0ZS0+Zmlmb19zaXplW2ldICYmCj4+ICAJCSAgICB3bV9zdGF0ZS0+bnVt X2FjdGl2ZV9wbGFuZXMpCj4+ICAJCQljb250aW51ZTsKPj4gIAo+PiAgCQlwbGFuZV9leHRyYSA9 IG1pbihmaWZvX2V4dHJhLCBmaWZvX2xlZnQpOwo+PiAtCQlwbGFuZS0+d20uZmlmb19zaXplICs9 IHBsYW5lX2V4dHJhOwo+PiArCQl3bV9zdGF0ZS0+Zmlmb19zaXplW2ldICs9IHBsYW5lX2V4dHJh Owo+PiAgCQlmaWZvX2xlZnQgLT0gcGxhbmVfZXh0cmE7Cj4+ICAJfQo+PiAgCj4+ICAJV0FSTl9P TihmaWZvX2xlZnQgIT0gMCk7Cj4+ICB9Cj4+ICAKPj4gLXN0YXRpYyB2b2lkIHZsdl9pbnZlcnRf d21zKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQo+PiArc3RhdGljIHZvaWQgdmx2X2ludmVydF93 bXMoc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4+ICsJCQlzdHJ1Y3Qgdmx2X3dtX3N0YXRlICp3 bV9zdGF0ZSkKPj4gIHsKPj4gLQlzdHJ1Y3Qgdmx2X3dtX3N0YXRlICp3bV9zdGF0ZSA9ICZjcnRj LT53bV9zdGF0ZTsKPiBQYXNzaW5nIHdtX3N0YXRlIGJ5IHBhcmFtZXRlciBzZWVtcyB1bnJlbGF0 ZWQgdG8gdGhlIHB1cnBvc2Ugb2YgdGhpcwo+IHBhdGNoIChtb3ZpbmcgdGhlIGZpZm9fc2l6ZSBm aWVsZCkuICBXYXMgaXQgc3VwcG9zZWQgdG8gZ28gaW4gYSBsYXRlcgo+IHBhdGNoPwpNYXliZSwg YnV0IGl0IGRvZXNuJ3QgY2hhbmdlIG11Y2guIFRoZSBzYW1lIHdtX3N0YXRlIGlzIHN0aWxsIHVz ZWQuCj4+ICAJaW50IGxldmVsOwo+PiAgCj4+ICAJZm9yIChsZXZlbCA9IDA7IGxldmVsIDwgd21f c3RhdGUtPm51bV9sZXZlbHM7IGxldmVsKyspIHsKPj4gQEAgLTEwNjQsMTkgKzEwNjMsMjQgQEAg c3RhdGljIHZvaWQgdmx2X2ludmVydF93bXMoc3RydWN0IGludGVsX2NydGMgKmNydGMpCj4+ICAJ CXdtX3N0YXRlLT5zcltsZXZlbF0uY3Vyc29yID0gNjMgLSB3bV9zdGF0ZS0+c3JbbGV2ZWxdLmN1 cnNvcjsKPj4gIAo+PiAgCQlmb3JfZWFjaF9pbnRlbF9wbGFuZV9vbl9jcnRjKGRldiwgY3J0Yywg cGxhbmUpIHsKPj4gKwkJCWludCBpID0gd21fcGxhbmVfaWQocGxhbmUpOwo+PiArCj4+ICAJCQlz d2l0Y2ggKHBsYW5lLT5iYXNlLnR5cGUpIHsKPj4gIAkJCQlpbnQgc3ByaXRlOwo+PiAgCQkJY2Fz ZSBEUk1fUExBTkVfVFlQRV9DVVJTT1I6Cj4+IC0JCQkJd21fc3RhdGUtPndtW2xldmVsXS5jdXJz b3IgPSBwbGFuZS0+d20uZmlmb19zaXplIC0KPj4gKwkJCQl3bV9zdGF0ZS0+d21bbGV2ZWxdLmN1 cnNvciA9Cj4+ICsJCQkJCXdtX3N0YXRlLT5maWZvX3NpemVbaV0gLQo+PiAgCQkJCQl3bV9zdGF0 ZS0+d21bbGV2ZWxdLmN1cnNvcjsKPj4gIAkJCQlicmVhazsKPj4gIAkJCWNhc2UgRFJNX1BMQU5F X1RZUEVfUFJJTUFSWToKPj4gLQkJCQl3bV9zdGF0ZS0+d21bbGV2ZWxdLnByaW1hcnkgPSBwbGFu ZS0+d20uZmlmb19zaXplIC0KPj4gKwkJCQl3bV9zdGF0ZS0+d21bbGV2ZWxdLnByaW1hcnkgPQo+ PiArCQkJCQl3bV9zdGF0ZS0+Zmlmb19zaXplW2ldIC0KPj4gIAkJCQkJd21fc3RhdGUtPndtW2xl dmVsXS5wcmltYXJ5Owo+PiAgCQkJCWJyZWFrOwo+PiAgCQkJY2FzZSBEUk1fUExBTkVfVFlQRV9P VkVSTEFZOgo+PiAgCQkJCXNwcml0ZSA9IHBsYW5lLT5wbGFuZTsKPj4gLQkJCQl3bV9zdGF0ZS0+ d21bbGV2ZWxdLnNwcml0ZVtzcHJpdGVdID0gcGxhbmUtPndtLmZpZm9fc2l6ZSAtCj4+ICsJCQkJ d21fc3RhdGUtPndtW2xldmVsXS5zcHJpdGVbc3ByaXRlXSA9Cj4+ICsJCQkJCXdtX3N0YXRlLT5m aWZvX3NpemVbaV0gLQo+PiAgCQkJCQl3bV9zdGF0ZS0+d21bbGV2ZWxdLnNwcml0ZVtzcHJpdGVd Owo+PiAgCQkJCWJyZWFrOwo+PiAgCQkJfQo+PiBAQCAtMTA4NCw3ICsxMDg4LDcgQEAgc3RhdGlj IHZvaWQgdmx2X2ludmVydF93bXMoc3RydWN0IGludGVsX2NydGMgKmNydGMpCj4+ICAJfQo+PiAg fQo+PiAgCj4+IC1zdGF0aWMgdm9pZCB2bHZfY29tcHV0ZV93bShzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YykKPj4gK3N0YXRpYyBpbnQgdmx2X2NvbXB1dGVfd20oc3RydWN0IGludGVsX2NydGMgKmNy dGMpCj4+ICB7Cj4+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmJhc2UuZGV2Owo+ PiAgCXN0cnVjdCB2bHZfd21fc3RhdGUgKndtX3N0YXRlID0gJmNydGMtPndtX3N0YXRlOwo+PiBA QCAtMTA5OSw3ICsxMTAzLDcgQEAgc3RhdGljIHZvaWQgdmx2X2NvbXB1dGVfd20oc3RydWN0IGlu dGVsX2NydGMgKmNydGMpCj4+ICAKPj4gIAl3bV9zdGF0ZS0+bnVtX2FjdGl2ZV9wbGFuZXMgPSAw Owo+PiAgCj4+IC0Jdmx2X2NvbXB1dGVfZmlmbyhjcnRjKTsKPj4gKwl2bHZfY29tcHV0ZV9maWZv KGNydGMsIHdtX3N0YXRlKTsKPj4gIAo+PiAgCWlmICh3bV9zdGF0ZS0+bnVtX2FjdGl2ZV9wbGFu ZXMgIT0gMSkKPj4gIAkJd21fc3RhdGUtPmN4c3IgPSBmYWxzZTsKPj4gQEAgLTExMjMsMTEgKzEx MjcsMTYgQEAgc3RhdGljIHZvaWQgdmx2X2NvbXB1dGVfd20oc3RydWN0IGludGVsX2NydGMgKmNy dGMpCj4+ICAJCQlpbnQgd20gPSB2bHZfY29tcHV0ZV93bV9sZXZlbChwbGFuZSwgY3J0Yywgc3Rh dGUsIGxldmVsKTsKPj4gIAkJCWludCBtYXhfd20gPSBwbGFuZS0+YmFzZS50eXBlID09IERSTV9Q TEFORV9UWVBFX0NVUlNPUiA/IDYzIDogNTExOwo+PiAgCj4+IC0JCQkvKiBoYWNrICovCj4+IC0J CQlpZiAoV0FSTl9PTihsZXZlbCA9PSAwICYmIHdtID4gbWF4X3dtKSkKPj4gLQkJCQl3bSA9IG1h eF93bTsKPj4gKwkJCWlmIChsZXZlbCA9PSAwICYmIHdtID4gbWF4X3dtKSB7Cj4+ICsJCQkJRFJN X0RFQlVHX0tNUygiUmVxdWVzdGVkIGRpc3BsYXkgY29uZmlndXJhdGlvbiAiCj4+ICsJCQkJImV4 Y2VlZHMgc3lzdGVtIHdhdGVybWFyayBsaW1pdGF0aW9uc1xuIik7Cj4+ICsJCQkJRFJNX0RFQlVH X0tNUygiUGxhbmUgJWQuJWQ6IGJsb2NrcyByZXF1aXJlZCA9ICV1LyV1XG4iLAo+PiArCQkJCSAg ICAgIGNydGMtPnBpcGUsCj4+ICsJCQkJICAgICAgZHJtX3BsYW5lX2luZGV4KCZwbGFuZS0+YmFz ZSksIHdtLCBtYXhfd20pOwo+PiArCQkJCXJldHVybiAtRUlOVkFMOwo+PiArCQkJfQo+IFRoaXMg aXMgYW4gaW1wb3J0YW50IGNoYW5nZSwgYnV0IEkgdGhpbmsgeW91IG1lYW50IHRvIGhhdmUgdGhp cyBsYW5kIGluCj4gYSBkaWZmZXJlbnQgcGF0Y2ggc2luY2UgaXQncyB1bnJlbGF0ZWQgdG8gdGhl IGNvbnRlbnQgb2YgdGhpcyBwYXRjaAo+ICh3aGljaCBzaW1wbHkgbW92ZXMgdGhlIGZpZm9fc2l6 ZSBmaWVsZCkuCkFncmVlZC4KPgo+PiAgCj4+IC0JCQlpZiAod20gPiBwbGFuZS0+d20uZmlmb19z aXplKQo+PiArCQkJaWYgKHdtID4gd21fc3RhdGUtPmZpZm9fc2l6ZVt3bV9wbGFuZV9pZChwbGFu ZSldKQo+PiAgCQkJCWJyZWFrOwo+PiAgCj4+ICAJCQlzd2l0Y2ggKHBsYW5lLT5iYXNlLnR5cGUp IHsKPj4gQEAgLTExODAsNyArMTE4OSw5IEBAIHN0YXRpYyB2b2lkIHZsdl9jb21wdXRlX3dtKHN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjKQo+PiAgCQltZW1zZXQoJndtX3N0YXRlLT5zcltsZXZlbF0s IDAsIHNpemVvZih3bV9zdGF0ZS0+c3JbbGV2ZWxdKSk7Cj4+ICAJfQo+PiAgCj4+IC0Jdmx2X2lu dmVydF93bXMoY3J0Yyk7Cj4+ICsJdmx2X2ludmVydF93bXMoY3J0Yywgd21fc3RhdGUpOwo+PiAr Cj4+ICsJcmV0dXJuIDA7Cj4+ICB9Cj4+ICAKPj4gICNkZWZpbmUgVkxWX0ZJRk8ocGxhbmUsIHZh bHVlKSBcCj4+IEBAIC0xMTkwLDI0ICsxMjAxLDE4IEBAIHN0YXRpYyB2b2lkIHZsdl9waXBlX3Nl dF9maWZvX3NpemUoc3RydWN0IGludGVsX2NydGMgKmNydGMpCj4+ICB7Cj4+ICAJc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9IGNydGMtPmJhc2UuZGV2Owo+PiAgCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPj4gLQlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBs YW5lOwo+PiAgCWludCBzcHJpdGUwX3N0YXJ0ID0gMCwgc3ByaXRlMV9zdGFydCA9IDAsIGZpZm9f c2l6ZSA9IDA7Cj4+ICsJY29uc3Qgc3RydWN0IHZsdl93bV9zdGF0ZSAqd21fc3RhdGUgPSAmY3J0 Yy0+d21fc3RhdGU7Cj4+ICAKPj4gLQlmb3JfZWFjaF9pbnRlbF9wbGFuZV9vbl9jcnRjKGRldiwg Y3J0YywgcGxhbmUpIHsKPj4gLQkJaWYgKHBsYW5lLT5iYXNlLnR5cGUgPT0gRFJNX1BMQU5FX1RZ UEVfQ1VSU09SKSB7Cj4+IC0JCQlXQVJOX09OKHBsYW5lLT53bS5maWZvX3NpemUgIT0gNjMpOwo+ PiAtCQkJY29udGludWU7Cj4+IC0JCX0KPj4gIAo+PiAtCQlpZiAocGxhbmUtPmJhc2UudHlwZSA9 PSBEUk1fUExBTkVfVFlQRV9QUklNQVJZKQo+PiAtCQkJc3ByaXRlMF9zdGFydCA9IHBsYW5lLT53 bS5maWZvX3NpemU7Cj4+IC0JCWVsc2UgaWYgKHBsYW5lLT5wbGFuZSA9PSAwKQo+PiAtCQkJc3By aXRlMV9zdGFydCA9IHNwcml0ZTBfc3RhcnQgKyBwbGFuZS0+d20uZmlmb19zaXplOwo+PiAtCQll bHNlCj4+IC0JCQlmaWZvX3NpemUgPSBzcHJpdGUxX3N0YXJ0ICsgcGxhbmUtPndtLmZpZm9fc2l6 ZTsKPj4gLQl9Cj4+ICsJV0FSTl9PTih3bV9zdGF0ZS0+Zmlmb19zaXplW1BMQU5FX0NVUlNPUl0g IT0gNjMpOwo+PiArCXNwcml0ZTBfc3RhcnQgPSB3bV9zdGF0ZS0+Zmlmb19zaXplWzBdOwo+PiAr CXNwcml0ZTFfc3RhcnQgPSBzcHJpdGUwX3N0YXJ0ICsgd21fc3RhdGUtPmZpZm9fc2l6ZVsxXTsK Pj4gKwlmaWZvX3NpemUgPSBzcHJpdGUxX3N0YXJ0ICsgd21fc3RhdGUtPmZpZm9fc2l6ZVsyXTsK Pj4gIAo+PiAtCVdBUk5fT04oZmlmb19zaXplICE9IDUxMiAtIDEpOwo+PiArCVdBUk4oZmlmb19z aXplICE9IDUxMiAtIDEsICJQaXBlICVjIEZJRk8gc3BsaXQgJWQgLyAlZCAvICVkXG4iLAo+PiAr CQkgICAgICBwaXBlX25hbWUoY3J0Yy0+cGlwZSksIHNwcml0ZTBfc3RhcnQsCj4+ICsJCSAgICAg IHNwcml0ZTFfc3RhcnQsIGZpZm9fc2l6ZSk7Cj4gVGhlIERSTV9ERUJVR19LTVMoKSBjYWxsIGJl bG93IGdpdmVzIHRoZSBzYW1lIGluZm8geW91J3JlIGFkZGluZyB0byB0aGUKPiBtZXNzYWdlIGhl cmU7IGlmIGEgZGV2ZWxvcGVyIGlzIGRlYnVnZ2luZyBhIHByb2JsZW0gaGVyZSwgSSBhc3N1bWUK PiB0aGV5J2xsIGJlIHJ1bm5pbmcgd2l0aCBkcm0uZGVidWc9MHhmIG9yIHNpbWlsYXIsIHNvIGRv IHdlIHJlYWxseSBuZWVkCj4gdG8gY2hhbmdlIHRoZSBXQVJOKCkgbGluZSBoZXJlIHRvIGR1cGxp Y2F0ZSB0aGF0IGluZm8/CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRl bC1nZngK