From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: Re: [isg-gms] [RFC 3/6] drm/i915/vlv: Move fifo_size from intel_plane_wm_parameters to vlv_wm_state Date: Tue, 14 Jun 2016 14:52:11 -0700 Message-ID: <20160614215211.GA31785@intel.com> References: <1465399364-28512-1-git-send-email-chix.ding@intel.com> <1465399364-28512-4-git-send-email-chix.ding@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id CD3086E7A5 for ; Tue, 14 Jun 2016 21:52:59 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1465399364-28512-4-git-send-email-chix.ding@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chi Ding Cc: yetundex.adebisi@intel.com, isg-gms@eclists.intel.com, intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBKdW4gMDgsIDIwMTYgYXQgMDU6MjI6NDFQTSArMDIwMCwgQ2hpIERpbmcgd3JvdGU6 Cj4gRnJvbTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVs LmNvbT4KPiAKPiBUaGlzIGNvbW1pdCBzYXZlcyB3YXRlcm1hcmsgZm9yIGVhY2ggcGxhbmUgaW4g dmx2X3dtX3N0YXRlIHRvIHByZXBhcmUKPiBmb3IgdHdvLWxldmVsIHdhdGVybWFyayBiZWNhdXNl IHdlJ2xsIGNvbXB1dGUgYW5kIHNhdmUgaW50ZXJtZWRpYXRlIGFuZAo+IG9wdGltYWwgd2F0ZXJt YXJrIGFuZCBmaWZvIHNpemUgZm9yIGVhY2ggcGxhbmUuCj4gCj4gU2lnbmVkLW9mZi1ieTogTWFh cnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KPiBTaWdu ZWQtb2ZmLWJ5OiBDaGkgRGluZyA8Y2hpeC5kaW5nQGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggfCAgMTIgKy0tLS0KPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcG0uYyAgfCAxMTEgKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0t LS0tLS0tCj4gIDIgZmlsZXMgY2hhbmdlZCwgNjEgaW5zZXJ0aW9ucygrKSwgNjIgZGVsZXRpb25z KC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBpbmRleCBiOTczYjg2Li4zMTExOGUx IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBAQCAtNjI0LDYgKzYyNCw3IEBAIHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlIHsKPiAgc3RydWN0IHZsdl93bV9zdGF0ZSB7Cj4gIAlzdHJ1 Y3Qgdmx2X3BpcGVfd20gd21bM107Cj4gIAlzdHJ1Y3Qgdmx2X3NyX3dtIHNyWzNdOwo+ICsJdWlu dDE2X3QgZmlmb19zaXplW0k5MTVfTUFYX1BMQU5FU107Cj4gIAl1aW50OF90IG51bV9hY3RpdmVf cGxhbmVzOwo+ICAJdWludDhfdCBudW1fbGV2ZWxzOwo+ICAJdWludDhfdCBsZXZlbDsKPiBAQCAt Njk2LDEwICs2OTcsNiBAQCBzdHJ1Y3QgaW50ZWxfY3J0YyB7Cj4gIAlzdHJ1Y3Qgdmx2X3dtX3N0 YXRlIHdtX3N0YXRlOwo+ICB9Owo+ICAKPiAtc3RydWN0IGludGVsX3BsYW5lX3dtX3BhcmFtZXRl cnMgewo+IC0JdWludDE2X3QgZmlmb19zaXplOwo+IC19Owo+IC0KPiAgc3RydWN0IGludGVsX3Bs YW5lIHsKPiAgCXN0cnVjdCBkcm1fcGxhbmUgYmFzZTsKPiAgCWludCBwbGFuZTsKPiBAQCAtNzA4 LDEzICs3MDUsNiBAQCBzdHJ1Y3QgaW50ZWxfcGxhbmUgewo+ICAJaW50IG1heF9kb3duc2NhbGU7 Cj4gIAl1aW50MzJfdCBmcm9udGJ1ZmZlcl9iaXQ7Cj4gIAo+IC0JLyogU2luY2Ugd2UgbmVlZCB0 byBjaGFuZ2UgdGhlIHdhdGVybWFya3MgYmVmb3JlL2FmdGVyCj4gLQkgKiBlbmFibGluZy9kaXNh YmxpbmcgdGhlIHBsYW5lcywgd2UgbmVlZCB0byBzdG9yZSB0aGUgcGFyYW1ldGVycyBoZXJlCj4g LQkgKiBhcyB0aGUgb3RoZXIgcGllY2VzIG9mIHRoZSBzdHJ1Y3QgbWF5IG5vdCByZWZsZWN0IHRo ZSB2YWx1ZXMgd2Ugd2FudAo+IC0JICogZm9yIHRoZSB3YXRlcm1hcmsgY2FsY3VsYXRpb25zLiBD dXJyZW50bHkgb25seSBIYXN3ZWxsIHVzZXMgdGhpcy4KPiAtCSAqLwo+IC0Jc3RydWN0IGludGVs X3BsYW5lX3dtX3BhcmFtZXRlcnMgd207Cj4gLQo+ICAJLyoKPiAgCSAqIE5PVEU6IERvIG5vdCBw bGFjZSBuZXcgcGxhbmUgc3RhdGUgZmllbGRzIGhlcmUgKGUuZy4sIHdoZW4gYWRkaW5nCj4gIAkg KiBuZXcgcGxhbmUgcHJvcGVydGllcykuICBOZXcgcnVudGltZSBzdGF0ZSBzaG91bGQgbm93IGJl IHBsYWNlZCBpbgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+IGluZGV4IGEzOTQyZGYuLjMzZjUy YWUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiBAQCAtOTgzLDE0ICs5ODMsMTYgQEAg c3RhdGljIHVpbnQxNl90IHZsdl9jb21wdXRlX3dtX2xldmVsKHN0cnVjdCBpbnRlbF9wbGFuZSAq cGxhbmUsCj4gIAlyZXR1cm4gbWluX3QoaW50LCB3bSwgVVNIUlRfTUFYKTsKPiAgfQo+ICAKPiAt c3RhdGljIHZvaWQgdmx2X2NvbXB1dGVfZmlmbyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKPiAr c3RhdGljIHZvaWQgdmx2X2NvbXB1dGVfZmlmbyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiAr CQkJCXN0cnVjdCB2bHZfd21fc3RhdGUgKndtX3N0YXRlKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7Cj4gLQlzdHJ1Y3Qgdmx2X3dtX3N0YXRlICp3bV9z dGF0ZSA9ICZjcnRjLT53bV9zdGF0ZTsKPiAgCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmU7Cj4g IAl1bnNpZ25lZCBpbnQgdG90YWxfcmF0ZSA9IDA7Cj4gIAljb25zdCBpbnQgZmlmb19zaXplID0g NTEyIC0gMTsKPiAgCWludCBmaWZvX2V4dHJhLCBmaWZvX2xlZnQgPSBmaWZvX3NpemU7Cj4gKwlp bnQgcmF0ZVtJOTE1X01BWF9QTEFORVNdID0ge307CgpJIHRoaW5rIHRoaXMgc3ludGF4IG1pZ2h0 IGNhdXNlIGEgd2FybmluZyBvbiBzb21lIHZlcnNpb25zIG9mIEdDQyAoaWlyYywKZW1wdHkgYnJh Y2VzIGFyZSB0ZWNobmljYWxseSBpbGxlZ2FsIGluIHRoZSBDIHNwZWMsIGJ1dCBsZWdhbCBpbiBD KyspLgpJIGJlbGlldmUgcHJvdmlkaW5nIHRoZSB2YWx1ZSBvZiB0aGUgZmlyc3QgZWxlbWVudCB3 aWxsIGF2b2lkIHRoZQp3YXJuaW5nIChhbmQgc3RpbGwgaW5pdGlhbGl6ZSBhbGwgZW50cmllcyB0 byAwKTsgaS5lLiwgCgogICAgICAgIGludCByYXRlW0k5MTVfTUFYX1BMQU5FU10gPSB7IDAgfTsK Cj4gKwlpbnQgaTsKPiAgCj4gIAlmb3JfZWFjaF9pbnRlbF9wbGFuZV9vbl9jcnRjKGRldiwgY3J0 YywgcGxhbmUpIHsKPiAgCQlzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnN0YXRlID0KPiBAQCAt MTAwMSw1OCArMTAwMyw1NSBAQCBzdGF0aWMgdm9pZCB2bHZfY29tcHV0ZV9maWZvKHN0cnVjdCBp bnRlbF9jcnRjICpjcnRjKQo+ICAKPiAgCQlpZiAoc3RhdGUtPnZpc2libGUpIHsKPiAgCQkJd21f c3RhdGUtPm51bV9hY3RpdmVfcGxhbmVzKys7Cj4gLQkJCXRvdGFsX3JhdGUgKz0gZHJtX2Zvcm1h dF9wbGFuZV9jcHAoc3RhdGUtPmJhc2UuZmItPnBpeGVsX2Zvcm1hdCwgMCk7Cj4gKwkJCXJhdGVb d21fcGxhbmVfaWQocGxhbmUpXSA9Cj4gKwkJCWRybV9mb3JtYXRfcGxhbmVfY3BwKHN0YXRlLT5i YXNlLmZiLT5waXhlbF9mb3JtYXQsIDApOwo+ICsJCQl0b3RhbF9yYXRlICs9IHJhdGVbd21fcGxh bmVfaWQocGxhbmUpXTsKPiAgCQl9Cj4gIAl9Cj4gIAo+IC0JZm9yX2VhY2hfaW50ZWxfcGxhbmVf b25fY3J0YyhkZXYsIGNydGMsIHBsYW5lKSB7Cj4gLQkJc3RydWN0IGludGVsX3BsYW5lX3N0YXRl ICpzdGF0ZSA9Cj4gLQkJCXRvX2ludGVsX3BsYW5lX3N0YXRlKHBsYW5lLT5iYXNlLnN0YXRlKTsK PiAtCQl1bnNpZ25lZCBpbnQgcmF0ZTsKPiAtCj4gLQkJaWYgKHBsYW5lLT5iYXNlLnR5cGUgPT0g RFJNX1BMQU5FX1RZUEVfQ1VSU09SKSB7Cj4gLQkJCXBsYW5lLT53bS5maWZvX3NpemUgPSA2MzsK PiArCWZvciAoaSA9IDA7IGkgPCBJOTE1X01BWF9QTEFORVM7IGkrKykgewoKSXMgdGhlcmUgYSBz cGVjaWZpYyByZWFzb24gdG8gY2hhbmdlIGZyb20gaXRlcmF0aW5nIG92ZXIgcGxhbmVzIHRvCml0 ZXJhdGluZyBvdmVyIGluZGljZXMgaGVyZT8gIEkgdGhpbmsgdGhlIGVuZCByZXN1bHQgaXMgdGhl IHNhbWUgZWl0aGVyCndheSBhcyBmYXIgYXMgSSBjYW4gc2VlPyAgKEFzc3VtaW5nIHlvdSBjb3Vs ZCBqdXN0IHNldAppID0gd21fcGxhbmVfaWQocGxhbmUpIGxpa2UgeW91IGRpZCBpbiB0aGUgZmly c3QgbG9vcCBpZiB5b3Uga2VwdCB0aGUKb3JpZ2luYWwgbG9vcCkuCgoKPiArCQlpZiAoaSA9PSBQ TEFORV9DVVJTT1IpIHsKPiArCQkJd21fc3RhdGUtPmZpZm9fc2l6ZVtpXSA9IDYzOwo+ICAJCQlj b250aW51ZTsKPiAgCQl9Cj4gIAo+IC0JCWlmICghc3RhdGUtPnZpc2libGUpIHsKPiAtCQkJcGxh bmUtPndtLmZpZm9fc2l6ZSA9IDA7Cj4gKwkJaWYgKCFyYXRlW2ldKSB7Cj4gKwkJCXdtX3N0YXRl LT5maWZvX3NpemVbaV0gPSAwOwo+ICAJCQljb250aW51ZTsKPiAgCQl9Cj4gIAo+IC0JCXJhdGUg PSBkcm1fZm9ybWF0X3BsYW5lX2NwcChzdGF0ZS0+YmFzZS5mYi0+cGl4ZWxfZm9ybWF0LCAwKTsK PiAtCQlwbGFuZS0+d20uZmlmb19zaXplID0gZmlmb19zaXplICogcmF0ZSAvIHRvdGFsX3JhdGU7 Cj4gLQkJZmlmb19sZWZ0IC09IHBsYW5lLT53bS5maWZvX3NpemU7Cj4gKwkJd21fc3RhdGUtPmZp Zm9fc2l6ZVtpXSA9IGZpZm9fc2l6ZSAqIHJhdGVbaV0gLyB0b3RhbF9yYXRlOwo+ICsJCWZpZm9f bGVmdCAtPSB3bV9zdGF0ZS0+Zmlmb19zaXplW2ldOwo+ICAJfQo+ICAKPiAgCWZpZm9fZXh0cmEg PSBESVZfUk9VTkRfVVAoZmlmb19sZWZ0LCB3bV9zdGF0ZS0+bnVtX2FjdGl2ZV9wbGFuZXMgPzog MSk7Cj4gIAo+ICAJLyogc3ByZWFkIHRoZSByZW1haW5kZXIgZXZlbmx5ICovCj4gLQlmb3JfZWFj aF9pbnRlbF9wbGFuZV9vbl9jcnRjKGRldiwgY3J0YywgcGxhbmUpIHsKPiArCWZvciAoaSA9IDA7 IGkgPCBJOTE1X01BWF9QTEFORVM7IGkrKykgewo+ICAJCWludCBwbGFuZV9leHRyYTsKPiAgCj4g IAkJaWYgKGZpZm9fbGVmdCA9PSAwKQo+ICAJCQlicmVhazsKPiAgCj4gLQkJaWYgKHBsYW5lLT5i YXNlLnR5cGUgPT0gRFJNX1BMQU5FX1RZUEVfQ1VSU09SKQo+ICsJCWlmIChpID09IFBMQU5FX0NV UlNPUikKPiAgCQkJY29udGludWU7Cj4gIAo+ICAJCS8qIGdpdmUgaXQgYWxsIHRvIHRoZSBmaXJz dCBwbGFuZSBpZiBub25lIGFyZSBhY3RpdmUgKi8KPiAtCQlpZiAocGxhbmUtPndtLmZpZm9fc2l6 ZSA9PSAwICYmCj4gKwkJaWYgKCF3bV9zdGF0ZS0+Zmlmb19zaXplW2ldICYmCj4gIAkJICAgIHdt X3N0YXRlLT5udW1fYWN0aXZlX3BsYW5lcykKPiAgCQkJY29udGludWU7Cj4gIAo+ICAJCXBsYW5l X2V4dHJhID0gbWluKGZpZm9fZXh0cmEsIGZpZm9fbGVmdCk7Cj4gLQkJcGxhbmUtPndtLmZpZm9f c2l6ZSArPSBwbGFuZV9leHRyYTsKPiArCQl3bV9zdGF0ZS0+Zmlmb19zaXplW2ldICs9IHBsYW5l X2V4dHJhOwo+ICAJCWZpZm9fbGVmdCAtPSBwbGFuZV9leHRyYTsKPiAgCX0KPiAgCj4gIAlXQVJO X09OKGZpZm9fbGVmdCAhPSAwKTsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgdmx2X2ludmVydF93 bXMoc3RydWN0IGludGVsX2NydGMgKmNydGMpCj4gK3N0YXRpYyB2b2lkIHZsdl9pbnZlcnRfd21z KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICsJCQlzdHJ1Y3Qgdmx2X3dtX3N0YXRlICp3bV9z dGF0ZSkKPiAgewo+IC0Jc3RydWN0IHZsdl93bV9zdGF0ZSAqd21fc3RhdGUgPSAmY3J0Yy0+d21f c3RhdGU7CgpQYXNzaW5nIHdtX3N0YXRlIGJ5IHBhcmFtZXRlciBzZWVtcyB1bnJlbGF0ZWQgdG8g dGhlIHB1cnBvc2Ugb2YgdGhpcwpwYXRjaCAobW92aW5nIHRoZSBmaWZvX3NpemUgZmllbGQpLiAg V2FzIGl0IHN1cHBvc2VkIHRvIGdvIGluIGEgbGF0ZXIKcGF0Y2g/Cgo+ICAJaW50IGxldmVsOwo+ ICAKPiAgCWZvciAobGV2ZWwgPSAwOyBsZXZlbCA8IHdtX3N0YXRlLT5udW1fbGV2ZWxzOyBsZXZl bCsrKSB7Cj4gQEAgLTEwNjQsMTkgKzEwNjMsMjQgQEAgc3RhdGljIHZvaWQgdmx2X2ludmVydF93 bXMoc3RydWN0IGludGVsX2NydGMgKmNydGMpCj4gIAkJd21fc3RhdGUtPnNyW2xldmVsXS5jdXJz b3IgPSA2MyAtIHdtX3N0YXRlLT5zcltsZXZlbF0uY3Vyc29yOwo+ICAKPiAgCQlmb3JfZWFjaF9p bnRlbF9wbGFuZV9vbl9jcnRjKGRldiwgY3J0YywgcGxhbmUpIHsKPiArCQkJaW50IGkgPSB3bV9w bGFuZV9pZChwbGFuZSk7Cj4gKwo+ICAJCQlzd2l0Y2ggKHBsYW5lLT5iYXNlLnR5cGUpIHsKPiAg CQkJCWludCBzcHJpdGU7Cj4gIAkJCWNhc2UgRFJNX1BMQU5FX1RZUEVfQ1VSU09SOgo+IC0JCQkJ d21fc3RhdGUtPndtW2xldmVsXS5jdXJzb3IgPSBwbGFuZS0+d20uZmlmb19zaXplIC0KPiArCQkJ CXdtX3N0YXRlLT53bVtsZXZlbF0uY3Vyc29yID0KPiArCQkJCQl3bV9zdGF0ZS0+Zmlmb19zaXpl W2ldIC0KPiAgCQkJCQl3bV9zdGF0ZS0+d21bbGV2ZWxdLmN1cnNvcjsKPiAgCQkJCWJyZWFrOwo+ ICAJCQljYXNlIERSTV9QTEFORV9UWVBFX1BSSU1BUlk6Cj4gLQkJCQl3bV9zdGF0ZS0+d21bbGV2 ZWxdLnByaW1hcnkgPSBwbGFuZS0+d20uZmlmb19zaXplIC0KPiArCQkJCXdtX3N0YXRlLT53bVts ZXZlbF0ucHJpbWFyeSA9Cj4gKwkJCQkJd21fc3RhdGUtPmZpZm9fc2l6ZVtpXSAtCj4gIAkJCQkJ d21fc3RhdGUtPndtW2xldmVsXS5wcmltYXJ5Owo+ICAJCQkJYnJlYWs7Cj4gIAkJCWNhc2UgRFJN X1BMQU5FX1RZUEVfT1ZFUkxBWToKPiAgCQkJCXNwcml0ZSA9IHBsYW5lLT5wbGFuZTsKPiAtCQkJ CXdtX3N0YXRlLT53bVtsZXZlbF0uc3ByaXRlW3Nwcml0ZV0gPSBwbGFuZS0+d20uZmlmb19zaXpl IC0KPiArCQkJCXdtX3N0YXRlLT53bVtsZXZlbF0uc3ByaXRlW3Nwcml0ZV0gPQo+ICsJCQkJCXdt X3N0YXRlLT5maWZvX3NpemVbaV0gLQo+ICAJCQkJCXdtX3N0YXRlLT53bVtsZXZlbF0uc3ByaXRl W3Nwcml0ZV07Cj4gIAkJCQlicmVhazsKPiAgCQkJfQo+IEBAIC0xMDg0LDcgKzEwODgsNyBAQCBz dGF0aWMgdm9pZCB2bHZfaW52ZXJ0X3dtcyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKPiAgCX0K PiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgdmx2X2NvbXB1dGVfd20oc3RydWN0IGludGVsX2NydGMg KmNydGMpCj4gK3N0YXRpYyBpbnQgdmx2X2NvbXB1dGVfd20oc3RydWN0IGludGVsX2NydGMgKmNy dGMpCj4gIHsKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsKPiAg CXN0cnVjdCB2bHZfd21fc3RhdGUgKndtX3N0YXRlID0gJmNydGMtPndtX3N0YXRlOwo+IEBAIC0x MDk5LDcgKzExMDMsNyBAQCBzdGF0aWMgdm9pZCB2bHZfY29tcHV0ZV93bShzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YykKPiAgCj4gIAl3bV9zdGF0ZS0+bnVtX2FjdGl2ZV9wbGFuZXMgPSAwOwo+ICAK PiAtCXZsdl9jb21wdXRlX2ZpZm8oY3J0Yyk7Cj4gKwl2bHZfY29tcHV0ZV9maWZvKGNydGMsIHdt X3N0YXRlKTsKPiAgCj4gIAlpZiAod21fc3RhdGUtPm51bV9hY3RpdmVfcGxhbmVzICE9IDEpCj4g IAkJd21fc3RhdGUtPmN4c3IgPSBmYWxzZTsKPiBAQCAtMTEyMywxMSArMTEyNywxNiBAQCBzdGF0 aWMgdm9pZCB2bHZfY29tcHV0ZV93bShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKPiAgCQkJaW50 IHdtID0gdmx2X2NvbXB1dGVfd21fbGV2ZWwocGxhbmUsIGNydGMsIHN0YXRlLCBsZXZlbCk7Cj4g IAkJCWludCBtYXhfd20gPSBwbGFuZS0+YmFzZS50eXBlID09IERSTV9QTEFORV9UWVBFX0NVUlNP UiA/IDYzIDogNTExOwo+ICAKPiAtCQkJLyogaGFjayAqLwo+IC0JCQlpZiAoV0FSTl9PTihsZXZl bCA9PSAwICYmIHdtID4gbWF4X3dtKSkKPiAtCQkJCXdtID0gbWF4X3dtOwo+ICsJCQlpZiAobGV2 ZWwgPT0gMCAmJiB3bSA+IG1heF93bSkgewo+ICsJCQkJRFJNX0RFQlVHX0tNUygiUmVxdWVzdGVk IGRpc3BsYXkgY29uZmlndXJhdGlvbiAiCj4gKwkJCQkiZXhjZWVkcyBzeXN0ZW0gd2F0ZXJtYXJr IGxpbWl0YXRpb25zXG4iKTsKPiArCQkJCURSTV9ERUJVR19LTVMoIlBsYW5lICVkLiVkOiBibG9j a3MgcmVxdWlyZWQgPSAldS8ldVxuIiwKPiArCQkJCSAgICAgIGNydGMtPnBpcGUsCj4gKwkJCQkg ICAgICBkcm1fcGxhbmVfaW5kZXgoJnBsYW5lLT5iYXNlKSwgd20sIG1heF93bSk7Cj4gKwkJCQly ZXR1cm4gLUVJTlZBTDsKPiArCQkJfQoKVGhpcyBpcyBhbiBpbXBvcnRhbnQgY2hhbmdlLCBidXQg SSB0aGluayB5b3UgbWVhbnQgdG8gaGF2ZSB0aGlzIGxhbmQgaW4KYSBkaWZmZXJlbnQgcGF0Y2gg c2luY2UgaXQncyB1bnJlbGF0ZWQgdG8gdGhlIGNvbnRlbnQgb2YgdGhpcyBwYXRjaAood2hpY2gg c2ltcGx5IG1vdmVzIHRoZSBmaWZvX3NpemUgZmllbGQpLgoKCj4gIAo+IC0JCQlpZiAod20gPiBw bGFuZS0+d20uZmlmb19zaXplKQo+ICsJCQlpZiAod20gPiB3bV9zdGF0ZS0+Zmlmb19zaXplW3dt X3BsYW5lX2lkKHBsYW5lKV0pCj4gIAkJCQlicmVhazsKPiAgCj4gIAkJCXN3aXRjaCAocGxhbmUt PmJhc2UudHlwZSkgewo+IEBAIC0xMTgwLDcgKzExODksOSBAQCBzdGF0aWMgdm9pZCB2bHZfY29t cHV0ZV93bShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKPiAgCQltZW1zZXQoJndtX3N0YXRlLT5z cltsZXZlbF0sIDAsIHNpemVvZih3bV9zdGF0ZS0+c3JbbGV2ZWxdKSk7Cj4gIAl9Cj4gIAo+IC0J dmx2X2ludmVydF93bXMoY3J0Yyk7Cj4gKwl2bHZfaW52ZXJ0X3dtcyhjcnRjLCB3bV9zdGF0ZSk7 Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gICNkZWZpbmUgVkxWX0ZJRk8ocGxhbmUsIHZh bHVlKSBcCj4gQEAgLTExOTAsMjQgKzEyMDEsMTggQEAgc3RhdGljIHZvaWQgdmx2X3BpcGVfc2V0 X2ZpZm9fc2l6ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKPiAgewo+ICAJc3RydWN0IGRybV9k ZXZpY2UgKmRldiA9IGNydGMtPmJhc2UuZGV2Owo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+IC0Jc3RydWN0IGludGVsX3BsYW5lICpwbGFuZTsK PiAgCWludCBzcHJpdGUwX3N0YXJ0ID0gMCwgc3ByaXRlMV9zdGFydCA9IDAsIGZpZm9fc2l6ZSA9 IDA7Cj4gKwljb25zdCBzdHJ1Y3Qgdmx2X3dtX3N0YXRlICp3bV9zdGF0ZSA9ICZjcnRjLT53bV9z dGF0ZTsKPiAgCj4gLQlmb3JfZWFjaF9pbnRlbF9wbGFuZV9vbl9jcnRjKGRldiwgY3J0YywgcGxh bmUpIHsKPiAtCQlpZiAocGxhbmUtPmJhc2UudHlwZSA9PSBEUk1fUExBTkVfVFlQRV9DVVJTT1Ip IHsKPiAtCQkJV0FSTl9PTihwbGFuZS0+d20uZmlmb19zaXplICE9IDYzKTsKPiAtCQkJY29udGlu dWU7Cj4gLQkJfQo+ICAKPiAtCQlpZiAocGxhbmUtPmJhc2UudHlwZSA9PSBEUk1fUExBTkVfVFlQ RV9QUklNQVJZKQo+IC0JCQlzcHJpdGUwX3N0YXJ0ID0gcGxhbmUtPndtLmZpZm9fc2l6ZTsKPiAt CQllbHNlIGlmIChwbGFuZS0+cGxhbmUgPT0gMCkKPiAtCQkJc3ByaXRlMV9zdGFydCA9IHNwcml0 ZTBfc3RhcnQgKyBwbGFuZS0+d20uZmlmb19zaXplOwo+IC0JCWVsc2UKPiAtCQkJZmlmb19zaXpl ID0gc3ByaXRlMV9zdGFydCArIHBsYW5lLT53bS5maWZvX3NpemU7Cj4gLQl9Cj4gKwlXQVJOX09O KHdtX3N0YXRlLT5maWZvX3NpemVbUExBTkVfQ1VSU09SXSAhPSA2Myk7Cj4gKwlzcHJpdGUwX3N0 YXJ0ID0gd21fc3RhdGUtPmZpZm9fc2l6ZVswXTsKPiArCXNwcml0ZTFfc3RhcnQgPSBzcHJpdGUw X3N0YXJ0ICsgd21fc3RhdGUtPmZpZm9fc2l6ZVsxXTsKPiArCWZpZm9fc2l6ZSA9IHNwcml0ZTFf c3RhcnQgKyB3bV9zdGF0ZS0+Zmlmb19zaXplWzJdOwo+ICAKPiAtCVdBUk5fT04oZmlmb19zaXpl ICE9IDUxMiAtIDEpOwo+ICsJV0FSTihmaWZvX3NpemUgIT0gNTEyIC0gMSwgIlBpcGUgJWMgRklG TyBzcGxpdCAlZCAvICVkIC8gJWRcbiIsCj4gKwkJICAgICAgcGlwZV9uYW1lKGNydGMtPnBpcGUp LCBzcHJpdGUwX3N0YXJ0LAo+ICsJCSAgICAgIHNwcml0ZTFfc3RhcnQsIGZpZm9fc2l6ZSk7CgpU aGUgRFJNX0RFQlVHX0tNUygpIGNhbGwgYmVsb3cgZ2l2ZXMgdGhlIHNhbWUgaW5mbyB5b3UncmUg YWRkaW5nIHRvIHRoZQptZXNzYWdlIGhlcmU7IGlmIGEgZGV2ZWxvcGVyIGlzIGRlYnVnZ2luZyBh IHByb2JsZW0gaGVyZSwgSSBhc3N1bWUKdGhleSdsbCBiZSBydW5uaW5nIHdpdGggZHJtLmRlYnVn PTB4ZiBvciBzaW1pbGFyLCBzbyBkbyB3ZSByZWFsbHkgbmVlZAp0byBjaGFuZ2UgdGhlIFdBUk4o KSBsaW5lIGhlcmUgdG8gZHVwbGljYXRlIHRoYXQgaW5mbz8KCgpNYXR0Cgo+ICAKPiAgCURSTV9E RUJVR19LTVMoIlBpcGUgJWMgRklGTyBzcGxpdCAlZCAvICVkIC8gJWRcbiIsCj4gIAkJICAgICAg cGlwZV9uYW1lKGNydGMtPnBpcGUpLCBzcHJpdGUwX3N0YXJ0LAo+IEBAIC00MjE2LDYgKzQyMjEs NyBAQCB2b2lkIHZsdl93bV9nZXRfaHdfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAg ewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ ICAJc3RydWN0IHZsdl93bV92YWx1ZXMgKndtID0gJmRldl9wcml2LT53bS52bHY7Cj4gKwlzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YzsKPiAgCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmU7Cj4gIAll bnVtIHBpcGUgcGlwZTsKPiAgCXUzMiB2YWw7Cj4gQEAgLTQyMjMsMTcgKzQyMjksMjAgQEAgdm9p ZCB2bHZfd21fZ2V0X2h3X3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAl2bHZfcmVh ZF93bV92YWx1ZXMoZGV2X3ByaXYsIHdtKTsKPiAgCj4gIAlmb3JfZWFjaF9pbnRlbF9wbGFuZShk ZXYsIHBsYW5lKSB7Cj4gKwkJc3RydWN0IHZsdl93bV9zdGF0ZSAqd21fc3RhdGU7Cj4gKwkJaW50 IGkgPSB3bV9wbGFuZV9pZChwbGFuZSk7Cj4gKwo+ICsJCWNydGMgPSB0b19pbnRlbF9jcnRjKGlu dGVsX2dldF9jcnRjX2Zvcl9waXBlKGRldiwgcGxhbmUtPnBpcGUpKTsKPiArCQl3bV9zdGF0ZSA9 ICZjcnRjLT53bV9zdGF0ZTsKPiArCj4gIAkJc3dpdGNoIChwbGFuZS0+YmFzZS50eXBlKSB7Cj4g LQkJCWludCBzcHJpdGU7Cj4gIAkJY2FzZSBEUk1fUExBTkVfVFlQRV9DVVJTT1I6Cj4gLQkJCXBs YW5lLT53bS5maWZvX3NpemUgPSA2MzsKPiArCQkJd21fc3RhdGUtPmZpZm9fc2l6ZVtpXSA9IDYz Owo+ICAJCQlicmVhazsKPiAgCQljYXNlIERSTV9QTEFORV9UWVBFX1BSSU1BUlk6Cj4gLQkJCXBs YW5lLT53bS5maWZvX3NpemUgPSB2bHZfZ2V0X2ZpZm9fc2l6ZShkZXYsIHBsYW5lLT5waXBlLCAw KTsKPiAtCQkJYnJlYWs7Cj4gIAkJY2FzZSBEUk1fUExBTkVfVFlQRV9PVkVSTEFZOgo+IC0JCQlz cHJpdGUgPSBwbGFuZS0+cGxhbmU7Cj4gLQkJCXBsYW5lLT53bS5maWZvX3NpemUgPSB2bHZfZ2V0 X2ZpZm9fc2l6ZShkZXYsIHBsYW5lLT5waXBlLCBzcHJpdGUgKyAxKTsKPiArCQkJd21fc3RhdGUt PmZpZm9fc2l6ZVtpXSA9Cj4gKwkJCQl2bHZfZ2V0X2ZpZm9fc2l6ZShkZXYsIHBsYW5lLT5waXBl LCBpKTsKPiAgCQkJYnJlYWs7Cj4gIAkJfQo+ICAJfQo+IC0tIAo+IDEuOC4wLjEKPiAKPiAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gaXNnLWdtc0BlY2xpc3RzLmludGVs LmNvbQo+IGh0dHBzOi8vZWNsaXN0cy5pbnRlbC5jb20vc3ltcGEvaW5mby9pc2ctZ21zCj4gVW5z dWJzY3JpYmUgYnkgc2VuZGluZyBlbWFpbCB0byBzeW1wYUBlY2xpc3RzLmludGVsLmNvbSB3aXRo IHN1YmplY3QgIlVuc3Vic2NyaWJlIGlzZy1nbXMiCgotLSAKTWF0dCBSb3BlcgpHcmFwaGljcyBT b2Z0d2FyZSBFbmdpbmVlcgpJb1RHIFBsYXRmb3JtIEVuYWJsaW5nICYgRGV2ZWxvcG1lbnQKSW50 ZWwgQ29ycG9yYXRpb24KKDkxNikgMzU2LTI3OTUKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaW50ZWwtZ2Z4Cg==