From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [RFC 8/8] drm/i915: Add two-stage ILK-style watermark programming (v2) Date: Mon, 6 Jul 2015 11:11:39 +0200 Message-ID: <20150706091139.GL2156@phenom.ffwll.local> References: <1435803961-30079-1-git-send-email-matthew.d.roper@intel.com> <1435803961-30079-9-git-send-email-matthew.d.roper@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f181.google.com (mail-wi0-f181.google.com [209.85.212.181]) by gabe.freedesktop.org (Postfix) with ESMTPS id B95AA892BB for ; Mon, 6 Jul 2015 02:08:52 -0700 (PDT) Received: by wiclp1 with SMTP id lp1so14570074wic.0 for ; Mon, 06 Jul 2015 02:08:51 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1435803961-30079-9-git-send-email-matthew.d.roper@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 Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBKdWwgMDEsIDIwMTUgYXQgMDc6MjY6MDFQTSAtMDcwMCwgTWF0dCBSb3BlciB3cm90 ZToKPiBGcm9tOiBNYXR0IFJvcGVyIDxtYXR0QG1hdHRyb3BlLmNvbT4KPiAKPiBJbiBhZGRpdGlv biB0byBjYWxjdWxhdGluZyBmaW5hbCB3YXRlcm1hcmtzLCBsZXQncyBhbHNvIHByZS1jYWxjdWxh dGUgYQo+IHNldCBvZiBpbnRlcm1lZGlhdGUgd2F0ZXJtYXJrIHZhbHVlcyBhdCBhdG9taWMgY2hl Y2sgdGltZS4gIFRoZXNlCj4gaW50ZXJtZWRpYXRlIHdhdGVybWFya3MgYXJlIGEgY29tYmluYXRp b24gb2YgdGhlIHdhdGVybWFya3MgZm9yIHRoZSBvbGQKPiBzdGF0ZSBhbmQgdGhlIG5ldyBzdGF0 ZTsgdGhleSBzaG91bGQgc2F0aXNmeSB0aGUgcmVxdWlyZW1lbnRzIG9mIGJvdGgKPiBzdGF0ZXMg d2hpY2ggbWVhbnMgdGhleSBjYW4gYmUgcHJvZ3JhbW1lZCBpbW1lZGlhdGVseSB3aGVuIHdlIGNv bW1pdCB0aGUKPiBhdG9taWMgc3RhdGUgKHdpdGhvdXQgd2FpdGluZyBmb3IgYSB2YmxhbmspLiAg T25jZSB0aGUgdmJsYW5rIGRvZXMKPiBoYXBwZW4sIHdlIGNhbiB0aGVuIHJlLXByb2dyYW0gd2F0 ZXJtYXJrcyB0byB0aGUgbW9yZSBvcHRpbWFsIGZpbmFsCj4gdmFsdWUuCj4gCj4gdjI6IFNpZ25p ZmljYW50IHJlYmFzaW5nL3Jld3JpdGluZy4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBNYXR0IFJvcGVy IDxtYXR0aGV3LmQucm9wZXJAaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oICAgICAgfCAgOSArKysrKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2lycS5jICAgICAgfCAgNyArKysrCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYyB8IDM0ICsrKysrKysrKysrKysrKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmggICAgIHwgMjYgKysrKysrKysrLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9wbS5jICAgICAgfCA3NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0KPiAg NSBmaWxlcyBjaGFuZ2VkLCAxMzAgaW5zZXJ0aW9ucygrKSwgMjEgZGVsZXRpb25zKC0pCj4gCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5kZXggNWFkOTQyZS4uNDIzOTdlMiAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaAo+IEBAIC02MjMsNiArNjIzLDkgQEAgc3RydWN0IGRybV9pOTE1 X2Rpc3BsYXlfZnVuY3Mgewo+ICAJCQkgIHN0cnVjdCBkcGxsICpiZXN0X2Nsb2NrKTsKPiAgCWlu dCAoKmNvbXB1dGVfcGlwZV93bSkoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAJCQkgICAgICAg c3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKTsKPiArCXZvaWQgKCpjb21wdXRlX2ludGVy bWVkaWF0ZV93bSkoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiArCQkJCQlzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqbmV3c3RhdGUsCj4gKwkJCQkJY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKm9sZHN0YXRlKTsKPiAgCXZvaWQgKCp1cGRhdGVfd20pKHN0cnVjdCBkcm1fY3J0YyAqY3J0 Yyk7Cj4gIAl2b2lkICgqdXBkYXRlX3Nwcml0ZV93bSkoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUs Cj4gIAkJCQkgc3RydWN0IGRybV9jcnRjICpjcnRjLAo+IEBAIC0yNTc0LDYgKzI1NzcsMTIgQEAg c3RydWN0IGRybV9pOTE1X2NtZF90YWJsZSB7Cj4gICAqLwo+ICAjZGVmaW5lIEhBU19BVE9NSUNf V00oZGV2X3ByaXYpIChkZXZfcHJpdi0+ZGlzcGxheS5wcm9ncmFtX3dhdGVybWFya3MgIT0gTlVM TCkKPiAgCj4gKy8qCj4gKyAqIE5ld2VyIHBsYXRmb3JtcyBoYXZlIGRvdWJsZWJ1ZmZlcmVkIHdh dGVybWFyayByZWdpc3RlcnMgYW5kIGRvIG5vdCBuZWVkCj4gKyAqIHRoZSB0d28tc3RlcCB3YXRl cm1hcmsgcHJvZ3JhbW1pbmcgdXNlZCBieSBvbGRlciBwbGF0Zm9ybXMuCj4gKyAqLwo+ICsjZGVm aW5lIEhBU19EQkxCVUZfV00oZGV2X3ByaXYpIChJTlRFTF9JTkZPKGRldl9wcml2KS0+Z2VuID49 IDkpCgpKdXN0IG1vdmUgbmVlZF92Ymxhbmtfd21fdXBkYXRlIGludG8gY3J0Y19zdGF0ZSBhbmQg Y29tcHV0ZSBpdCBpbiB0aGUKY29tcHV0ZV9waXBlX3dtIGZ1bmN0aW9ucz8KCj4gKwo+ICAjZGVm aW5lIEdUX0ZSRVFVRU5DWV9NVUxUSVBMSUVSIDUwCj4gICNkZWZpbmUgR0VOOV9GUkVRX1NDQUxF UiAzCj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+IGluZGV4IDIwYzcyNjAuLjYyN2M1NmYg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKPiBAQCAtMTQ1NSw4ICsxNDU1LDE1IEBAIHN0 YXRpYyBib29sIGludGVsX3BpcGVfaGFuZGxlX3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCBlbnVtIHBpcGUgcGlwZSkKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoZGV2KTsKPiAgCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IGRldl9wcml2LT5waXBl X3RvX2NydGNfbWFwcGluZ1twaXBlXTsKPiAgCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRj ID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPiArCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3Rh dGUgPSB0b19pbnRlbF9jcnRjX3N0YXRlKGNydGMtPnN0YXRlKTsKPiAgCj4gIAlpZiAoaW50ZWxf Y3J0Yy0+bmVlZF92Ymxhbmtfd21fdXBkYXRlKSB7Cj4gKwkJV0FSTl9PTihIQVNfREJMQlVGX1dN KGRldl9wcml2KSk7Cj4gKwo+ICsJCS8qIExhdGNoIGZpbmFsIHdhdGVybWFya3Mgbm93IHRoYXQg dmJsYW5rIGlzIHBhc3QgKi8KPiArCQljc3RhdGUtPndtLmFjdGl2ZSA9IGNzdGF0ZS0+d20udGFy Z2V0Owo+ICsKPiArCQkvKiBRdWV1ZSB3b3JrIHRvIGFjdHVhbGx5IHByb2dyYW0gdGhlbSBhc3lu Y2hyb25vdXNseSAqLwo+ICAJCXF1ZXVlX3dvcmsoZGV2X3ByaXYtPndxLCAmaW50ZWxfY3J0Yy0+ d21fd29yayk7Cj4gIAkJaW50ZWxfY3J0Yy0+bmVlZF92Ymxhbmtfd21fdXBkYXRlID0gZmFsc2U7 Cj4gIAl9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IGluZGV4IGZhNDM3M2Uu LjE2MTZkN2YgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gQEAgLTQ3 MzcsNyArNDczNyw3IEBAIHN0YXRpYyB2b2lkIGludGVsX3Bvc3RfcGxhbmVfdXBkYXRlKHN0cnVj dCBpbnRlbF9jcnRjICpjcnRjKQo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmJh c2UuZGV2Owo+ICAJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7Cj4gIAo+IC0JaWYgKEhBU19BVE9N SUNfV00odG9faTkxNShkZXYpKSkKPiArCWlmIChIQVNfQVRPTUlDX1dNKHRvX2k5MTUoZGV2KSkg JiYgIUhBU19EQkxCVUZfV00odG9faTkxNShkZXYpKSkKPiAgCQkvKiB2YmxhbmsgaGFuZGxlciB3 aWxsIGtpY2sgb2ZmIHdvcmtxdWV1ZSB0YXNrIHRvIHVwZGF0ZSB3bSdzICovCj4gIAkJY3J0Yy0+ bmVlZF92Ymxhbmtfd21fdXBkYXRlID0gdHJ1ZTsKPiAgCj4gQEAgLTExODMzLDYgKzExODMzLDgg QEAgc3RhdGljIGludCBpbnRlbF9jcnRjX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2NydGMgKmNy dGMsCj4gIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0 Yyk7Cj4gIAlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcgPQo+ICAJCXRvX2lu dGVsX2NydGNfc3RhdGUoY3J0Y19zdGF0ZSk7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq b2xkX3BpcGVfY29uZmlnID0KPiArCQl0b19pbnRlbF9jcnRjX3N0YXRlKGNydGMtPnN0YXRlKTsK PiAgCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IGNydGNfc3RhdGUtPnN0YXRlOwo+ ICAJaW50IHJldCwgaWR4ID0gY3J0Yy0+YmFzZS5pZDsKPiAgCWJvb2wgbW9kZV9jaGFuZ2VkID0g bmVlZHNfbW9kZXNldChjcnRjX3N0YXRlKTsKPiBAQCAtMTE4NjMsOSArMTE4NjUsMjAgQEAgc3Rh dGljIGludCBpbnRlbF9jcnRjX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4g IAl9Cj4gIAo+ICAJaWYgKGRldl9wcml2LT5kaXNwbGF5LmNvbXB1dGVfcGlwZV93bSkgewo+ICsJ CWlmIChXQVJOX09OKCFkZXZfcHJpdi0+ZGlzcGxheS5jb21wdXRlX2ludGVybWVkaWF0ZV93bSkp Cj4gKwkJCXJldHVybiAwOwoKc2tsIHdvbid0IG5lZWQgdGhpcywgcmlnaHQ/Cgo+ICsKPiAgCQly ZXQgPSBkZXZfcHJpdi0+ZGlzcGxheS5jb21wdXRlX3BpcGVfd20oY3J0Yywgc3RhdGUpOwo+ICAJ CWlmIChyZXQpCj4gIAkJCXJldHVybiByZXQ7Cj4gKwo+ICsJCS8qCj4gKwkJICogQ2FsY3VsYXRl ICdpbnRlcm1lZGlhdGUnIHdhdGVybWFya3MgdGhhdCBzYXRpc2Z5IGJvdGggdGhlIG9sZCBzdGF0 ZQo+ICsJCSAqIGFuZCB0aGUgbmV3IHN0YXRlLiAgV2UgY2FuIHByb2dyYW0gdGhlc2UgaW1tZWRp YXRlbHkuCj4gKwkJICovCj4gKwkJZGV2X3ByaXYtPmRpc3BsYXkuY29tcHV0ZV9pbnRlcm1lZGlh dGVfd20oY3J0Yy0+ZGV2LAo+ICsJCQkJCQkJICBwaXBlX2NvbmZpZywKPiArCQkJCQkJCSAgb2xk X3BpcGVfY29uZmlnKTsKPiAgCX0KPiAgCj4gIAlyZXR1cm4gaW50ZWxfYXRvbWljX3NldHVwX3Nj YWxlcnMoZGV2LCBpbnRlbF9jcnRjLCBwaXBlX2NvbmZpZyk7Cj4gQEAgLTEzNzg5LDggKzEzODAy LDI1IEBAIHN0YXRpYyB2b2lkIGludGVsX2JlZ2luX2NydGNfY29tbWl0KHN0cnVjdCBkcm1fY3J0 YyAqY3J0YykKPiAgCWlmICghbmVlZHNfbW9kZXNldChjcnRjLT5zdGF0ZSkpCj4gIAkJaW50ZWxf cHJlX3BsYW5lX3VwZGF0ZShpbnRlbF9jcnRjKTsKPiAgCj4gLQlpZiAoaW50ZWxfY3J0Yy0+YXRv bWljLnVwZGF0ZV93bV9wcmUpCj4gKwkvKgo+ICsJICogRm9yIHBsYXRmb3JtcyB0aGF0IHN1cHBv cnQgYXRvbWljIHdhdGVybWFya3MsIHByb2dyYW0gdGhlICdwZW5kaW5nJwo+ICsJICogd2F0ZXJt YXJrcyBpbW1lZGlhdGVseS4gIE9uIHByZS1nZW45IHBsYXRmb3JtcywgdGhlc2Ugd2lsbCBiZSB0 aGUKPiArCSAqIGludGVybWVkaWF0ZSB2YWx1ZXMgdGhhdCBhcmUgc2FmZSBmb3IgYm90aCBwcmUt IGFuZCBwb3N0LSB2Ymxhbms7Cj4gKwkgKiB3aGVuIHZibGFuayBoYXBwZW5zLCB0aGUgJ3BlbmRp bmcnIHZhbHVlcyB3aWxsIGJlIHNldCB0byB0aGUgZmluYWwKPiArCSAqICd0YXJnZXQnIHZhbHVl cyBhbmQgd2UnbGwgZG8gdGhpcyBhZ2FpbiB0byBnZXQgdGhlIG9wdGltYWwKPiArCSAqIHdhdGVy bWFya3MuICBGb3IgZ2VuOSsgcGxhdGZvcm1zLCB0aGUgdmFsdWVzIHdlIHByb2dyYW0gaGVyZSB3 aWxsIGJlCj4gKwkgKiB0aGUgZmluYWwgdGFyZ2V0IHZhbHVlcyB3aGljaCB3aWxsIGdldCBhdXRv bWF0aWNhbGx5IGxhdGNoZWQgYXQKPiArCSAqIHZibGFuayB0aW1lOyBubyBmdXJ0aGVyIHByb2dy YW1taW5nIHdpbGwgYmUgbmVjZXNzYXJ5Lgo+ICsJICoKPiArCSAqIElmIGEgcGxhdGZvcm0gaGFz bid0IGJlZW4gdHJhbnNpdGlvbmVkIHRvIGF0b21pYyB3YXRlcm1hcmtzIHlldCwKPiArCSAqIHdl J2xsIGNvbnRpbnVlIHRvIHVwZGF0ZSB3YXRlcm1hcmtzIHRoZSBvbGQgd2F5LCBpZiBmbGFncyB0 ZWxsCj4gKwkgKiB1cyB0by4KPiArCSAqLwo+ICsJaWYgKEhBU19BVE9NSUNfV00oZGV2X3ByaXYp KSB7Cj4gKwkJZGV2X3ByaXYtPmRpc3BsYXkucHJvZ3JhbV93YXRlcm1hcmtzKGRldl9wcml2KTsK PiArCX0gZWxzZSBpZiAoaW50ZWxfY3J0Yy0+YXRvbWljLnVwZGF0ZV93bV9wcmUpIHsKPiAgCQlp bnRlbF91cGRhdGVfd2F0ZXJtYXJrcyhjcnRjKTsKPiArCX0KPiAgCj4gIAlpbnRlbF9ydW50aW1l X3BtX2dldChkZXZfcHJpdik7Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXgg Nzc1ZTNkMC4uN2JjNGU4MSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gQEAgLTM0 Myw2ICszNDMsMTEgQEAgc3RydWN0IHNrbF9waXBlX3dtIHsKPiAgCXVpbnQzMl90IGxpbmV0aW1l Owo+ICB9Owo+ICAKPiArdW5pb24gcGlwZV93bSB7Cj4gKwlzdHJ1Y3QgaW50ZWxfcGlwZV93bSBp bGs7Cj4gKwlzdHJ1Y3Qgc2tsX3BpcGVfd20gc2tsOwo+ICt9Owo+ICsKPiAgc3RydWN0IGludGVs X2NydGNfc3RhdGUgewo+ICAJc3RydWN0IGRybV9jcnRjX3N0YXRlIGJhc2U7Cj4gIAo+IEBAIC00 ODEsMTYgKzQ4NiwyMSBAQCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSB7Cj4gIAo+ICAJc3RydWN0 IHsKPiAgCQkvKgo+IC0JCSAqIGZpbmFsIHdhdGVybWFya3MsIHByb2dyYW1tZWQgcG9zdC12Ymxh bmsgd2hlbiB0aGlzIHN0YXRlCj4gLQkJICogaXMgY29tbWl0dGVkCj4gKwkJICogZmluYWwsIHRh cmdldCB3YXRlcm1hcmtzIGZvciBzdGF0ZTsgb24gcHJlLWdlbjkgcGxhdGZvcm1zLAo+ICsJCSAq IHRoaXMgbWlnaHQgbm90IGhhdmUgYmVlbiBwcm9ncmFtbWVkIHlldCBpZiBhIHZibGFuayBoYXNu J3QKPiArCQkgKiBoYXBwZW5lZCBzaW5jZSB0aGlzIHN0YXRlIHdhcyBjb21taXR0ZWQKPiArCQkg Ki8KPiArCQl1bmlvbiBwaXBlX3dtIHRhcmdldDsKPiArCj4gKwkJLyoKPiArCQkgKiBjdXJyZW50 bHkgcHJvZ3JhbW1lZCB3YXRlcm1hcms7IG9uIHByZS1nZW45LCB0aGlzIHdpbGwgYmUKPiArCQkg KiB0aGUgaW50ZXJtZWRpYXRlIHZhbHVlcyBiZWZvcmUgdmJsYW5rIHRoZW4gc3dpdGNoIHRvIG1h dGNoCj4gKwkJICogJ3RhcmdldCcgYWZ0ZXIgdmJsYW5rIGZpcmVzKQo+ICAJCSAqLwo+IC0JCXVu aW9uIHsKPiAtCQkJc3RydWN0IGludGVsX3BpcGVfd20gaWxrOwo+IC0JCQlzdHJ1Y3Qgc2tsX3Bp cGVfd20gc2tsOwo+IC0JCX0gYWN0aXZlOwo+ICsJCXVuaW9uIHBpcGVfd20gYWN0aXZlOwo+ICAK PiAtCQkvKiBhbGxvdyBDeFNSIG9uIHRoaXMgcGlwZSAqLwo+IC0JCWJvb2wgY3hzcl9hbGxvd2Vk Owo+ICsgICAgICAgICAgICAgICAvKiBhbGxvdyBDeFNSIG9uIHRoaXMgcGlwZSAqLwo+ICsgICAg ICAgICAgICAgICBib29sIGN4c3JfYWxsb3dlZDsKPiAgCX0gd207Cj4gIH07Cj4gIAo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcG0uYwo+IGluZGV4IGM2ZTczNWYuLjc5NDJiYjAgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3BtLmMKPiBAQCAtMjMzOCw2ICsyMzM4LDI0IEBAIHN0YXRpYyB2b2lkIGlsa19j b21wdXRlX3dtX2NvbmZpZyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJfQo+ICB9Cj4gIAo+ ICtzdGF0aWMgYm9vbCBpbGtfdmFsaWRhdGVfcGlwZV93bShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAo+ICsJCQkJIHN0cnVjdCBpbnRlbF93bV9jb25maWcgKmNvbmZpZywKPiArCQkJCSBzdHJ1Y3Qg aW50ZWxfcGlwZV93bSAqcGlwZV93bSkKPiArewo+ICsJc3RydWN0IGlsa193bV9tYXhpbXVtcyBt YXg7Cj4gKwo+ICsJLyogTFAwIHdhdGVybWFya3MgYWx3YXlzIHVzZSAxLzIgRERCIHBhcnRpdGlv bmluZyAqLwo+ICsJaWxrX2NvbXB1dGVfd21fbWF4aW11bXMoZGV2LCAwLCBjb25maWcsIElOVEVM X0REQl9QQVJUXzFfMiwgJm1heCk7Cj4gKwo+ICsJLyogQXQgbGVhc3QgTFAwIG11c3QgYmUgdmFs aWQgKi8KPiArCWlmICghaWxrX3ZhbGlkYXRlX3dtX2xldmVsKDAsICZtYXgsICZwaXBlX3dtLT53 bVswXSkpIHsKPiArCQlEUk1fREVCVUdfS01TKCJMUDAgd2F0ZXJtYXJrIGludmFsaWRcbiIpOwo+ ICsJCXJldHVybiBmYWxzZTsKPiArCX0KPiArCj4gKwlyZXR1cm4gdHJ1ZTsKPiArfQo+ICsKPiAg LyogQ29tcHV0ZSBuZXcgd2F0ZXJtYXJrcyBmb3IgdGhlIHBpcGUgKi8KPiAgc3RhdGljIGludCBp bGtfY29tcHV0ZV9waXBlX3dtKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgCQkJICAgICAgIHN0 cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiBAQCAtMjM2Niw3ICsyMzg0LDcgQEAgc3Rh dGljIGludCBpbGtfY29tcHV0ZV9waXBlX3dtKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgCWVs c2UKPiAgCQljc3RhdGUgPSB0b19pbnRlbF9jcnRjX3N0YXRlKGNzKTsKPiAgCj4gLQlwaXBlX3dt ID0gJmNzdGF0ZS0+d20uYWN0aXZlLmlsazsKPiArCXBpcGVfd20gPSAmY3N0YXRlLT53bS50YXJn ZXQuaWxrOwo+ICAKPiAgCWZvcl9lYWNoX2ludGVsX3BsYW5lX29uX2NydGMoZGV2LCBpbnRlbF9j cnRjLCBpbnRlbF9wbGFuZSkgewo+ICAJCXBzID0gZHJtX2F0b21pY19nZXRfcGxhbmVfc3RhdGUo c3RhdGUsCj4gQEAgLTI0MDUsMTIgKzI0MjMsOCBAQCBzdGF0aWMgaW50IGlsa19jb21wdXRlX3Bp cGVfd20oc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAJaWYgKElTX0hBU1dFTEwoZGV2KSB8fCBJ U19CUk9BRFdFTEwoZGV2KSkKPiAgCQlwaXBlX3dtLT5saW5ldGltZSA9IGhzd19jb21wdXRlX2xp bmV0aW1lX3dtKGRldiwgY3J0Yyk7Cj4gIAo+IC0JLyogTFAwIHdhdGVybWFya3MgYWx3YXlzIHVz ZSAxLzIgRERCIHBhcnRpdGlvbmluZyAqLwo+IC0JaWxrX2NvbXB1dGVfd21fbWF4aW11bXMoZGV2 LCAwLCAmY29uZmlnLCBJTlRFTF9EREJfUEFSVF8xXzIsICZtYXgpOwo+IC0KPiAtCS8qIEF0IGxl YXN0IExQMCBtdXN0IGJlIHZhbGlkICovCj4gLQlpZiAoIWlsa192YWxpZGF0ZV93bV9sZXZlbCgw LCAmbWF4LCAmcGlwZV93bS0+d21bMF0pKQo+IC0JCXJldHVybiAtRUlOVkFMOwo+ICsJaWYgKCFp bGtfdmFsaWRhdGVfcGlwZV93bShkZXYsICZjb25maWcsIHBpcGVfd20pKQo+ICsJCXJldHVybiBm YWxzZTsKPiAgCj4gIAlpbGtfY29tcHV0ZV93bV9yZWdfbWF4aW11bXMoZGV2LCAxLCAmbWF4KTsK PiAgCj4gQEAgLTI0MzUsNiArMjQ0OSw0MCBAQCBzdGF0aWMgaW50IGlsa19jb21wdXRlX3BpcGVf d20oc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICB9Cj4gIAo+ICAvKgo+ICsgKiBCdWlsZCBhIHNl dCBvZiAnaW50ZXJtZWRpYXRlJyB3YXRlcm1hcmsgdmFsdWVzIHRoYXQgc2F0aXNmeSBib3RoIHRo ZSBvbGQKPiArICogc3RhdGUgYW5kIHRoZSBuZXcgc3RhdGUuICBUaGVzZSBjYW4gYmUgcHJvZ3Jh bW1lZCB0byB0aGUgaGFyZHdhcmUKPiArICogaW1tZWRpYXRlbHkuCj4gKyAqLwo+ICt2b2lkIGls a19jb21wdXRlX2ludGVybWVkaWF0ZV93bShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICsJCQkJ IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpuZXdzdGF0ZSwKPiArCQkJCSBjb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqb2xkc3RhdGUpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9waXBlX3dt ICphID0gJm5ld3N0YXRlLT53bS5hY3RpdmUuaWxrOwo+ICsJY29uc3Qgc3RydWN0IGludGVsX3Bp cGVfd20gKmIgPSAmb2xkc3RhdGUtPndtLmFjdGl2ZS5pbGs7Cj4gKwlpbnQgbGV2ZWwsIG1heF9s ZXZlbCA9IGlsa193bV9tYXhfbGV2ZWwoZGV2KTsKPiArCj4gKwkvKgo+ICsJICogU3RhcnQgd2l0 aCB0aGUgZmluYWwsIHRhcmdldCB3YXRlcm1hcmtzLCB0aGVuIGNvbWJpbmUgd2l0aCB0aGUKPiAr CSAqIGN1cnJlbnQgc3RhdGUncyB3YXRlcm1hcmtzLgo+ICsJICovCj4gKwkqYSA9IG5ld3N0YXRl LT53bS50YXJnZXQuaWxrOwo+ICsJYS0+cGlwZV9lbmFibGVkIHw9IGItPnBpcGVfZW5hYmxlZDsK PiArCWEtPnNwcml0ZXNfZW5hYmxlZCB8PSBiLT5zcHJpdGVzX2VuYWJsZWQ7Cj4gKwlhLT5zcHJp dGVzX3NjYWxlZCB8PSBiLT5zcHJpdGVzX3NjYWxlZDsKPiArCj4gKwlmb3IgKGxldmVsID0gMDsg bGV2ZWwgPD0gbWF4X2xldmVsOyBsZXZlbCsrKSB7Cj4gKwkJc3RydWN0IGludGVsX3dtX2xldmVs ICphX3dtID0gJmEtPndtW2xldmVsXTsKPiArCQljb25zdCBzdHJ1Y3QgaW50ZWxfd21fbGV2ZWwg KmJfd20gPSAmYi0+d21bbGV2ZWxdOwo+ICsKPiArCQlhX3dtLT5lbmFibGUgJj0gYl93bS0+ZW5h YmxlOwo+ICsJCWFfd20tPnByaV92YWwgPSBtYXgoYV93bS0+cHJpX3ZhbCwgYl93bS0+cHJpX3Zh bCk7Cj4gKwkJYV93bS0+c3ByX3ZhbCA9IG1heChhX3dtLT5zcHJfdmFsLCBiX3dtLT5zcHJfdmFs KTsKPiArCQlhX3dtLT5jdXJfdmFsID0gbWF4KGFfd20tPmN1cl92YWwsIGJfd20tPmN1cl92YWwp Owo+ICsJCWFfd20tPmZiY192YWwgPSBtYXgoYV93bS0+ZmJjX3ZhbCwgYl93bS0+ZmJjX3ZhbCk7 Cj4gKwl9Cj4gK30KPiArCj4gKy8qCj4gICAqIE1lcmdlIHRoZSB3YXRlcm1hcmtzIGZyb20gYWxs IGFjdGl2ZSBwaXBlcyBmb3IgYSBzcGVjaWZpYyBsZXZlbC4KPiAgICovCj4gIHN0YXRpYyB2b2lk IGlsa19tZXJnZV93bV9sZXZlbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+IEBAIC0zNjAxLDEw ICszNjQ5LDEwIEBAIHN0YXRpYyBib29sIHNrbF91cGRhdGVfcGlwZV93bShzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMsCj4gIAlza2xfYWxsb2NhdGVfcGlwZV9kZGIoY3J0YywgY29uZmlnLCBwYXJhbXMs IGRkYik7Cj4gIAlza2xfY29tcHV0ZV9waXBlX3dtKGNydGMsIGRkYiwgcGFyYW1zLCBwaXBlX3dt KTsKPiAgCj4gLQlpZiAoIW1lbWNtcCgmY3N0YXRlLT53bS5hY3RpdmUuc2tsLCBwaXBlX3dtLCBz aXplb2YoKnBpcGVfd20pKSkKPiArCWlmICghbWVtY21wKCZjc3RhdGUtPndtLnRhcmdldC5za2ws IHBpcGVfd20sIHNpemVvZigqcGlwZV93bSkpKQo+ICAJCXJldHVybiBmYWxzZTsKPiAgCj4gLQlj c3RhdGUtPndtLmFjdGl2ZS5za2wgPSAqcGlwZV93bTsKPiArCWNzdGF0ZS0+d20udGFyZ2V0LnNr bCA9ICpwaXBlX3dtOwo+ICAKPiAgCXJldHVybiB0cnVlOwo+ICB9Cj4gQEAgLTM4MjUsNyArMzg3 Myw3IEBAIHN0YXRpYyB2b2lkIHNrbF9waXBlX3dtX2dldF9od19zdGF0ZShzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMpCj4gIAlzdHJ1Y3Qgc2tsX3dtX3ZhbHVlcyAqaHcgPSAmZGV2X3ByaXYtPndtLnNr bF9odzsKPiAgCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0Yyhj cnRjKTsKPiAgCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUgPSB0b19pbnRlbF9jcnRj X3N0YXRlKGNydGMtPnN0YXRlKTsKPiAtCXN0cnVjdCBza2xfcGlwZV93bSAqYWN0aXZlID0gJmNz dGF0ZS0+d20uYWN0aXZlLnNrbDsKPiArCXN0cnVjdCBza2xfcGlwZV93bSAqYWN0aXZlID0gJmNz dGF0ZS0+d20udGFyZ2V0LnNrbDsKPiAgCWVudW0gcGlwZSBwaXBlID0gaW50ZWxfY3J0Yy0+cGlw ZTsKPiAgCWludCBsZXZlbCwgaSwgbWF4X2xldmVsOwo+ICAJdWludDMyX3QgdGVtcDsKPiBAQCAt Mzg4OSw3ICszOTM3LDcgQEAgc3RhdGljIHZvaWQgaWxrX3BpcGVfd21fZ2V0X2h3X3N0YXRlKHN0 cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAgCXN0cnVjdCBpbGtfd21fdmFsdWVzICpodyA9ICZkZXZf cHJpdi0+d20uaHc7Cj4gIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVs X2NydGMoY3J0Yyk7Cj4gIAlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlID0gdG9faW50 ZWxfY3J0Y19zdGF0ZShjcnRjLT5zdGF0ZSk7Cj4gLQlzdHJ1Y3QgaW50ZWxfcGlwZV93bSAqYWN0 aXZlID0gJmNzdGF0ZS0+d20uYWN0aXZlLmlsazsKPiArCXN0cnVjdCBpbnRlbF9waXBlX3dtICph Y3RpdmUgPSAmY3N0YXRlLT53bS50YXJnZXQuaWxrOwo+ICAJZW51bSBwaXBlIHBpcGUgPSBpbnRl bF9jcnRjLT5waXBlOwo+ICAJc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCB3bTBfcGlwZV9yZWdb XSA9IHsKPiAgCQlbUElQRV9BXSA9IFdNMF9QSVBFQV9JTEssCj4gQEAgLTM5MjgsNiArMzk3Niw4 IEBAIHN0YXRpYyB2b2lkIGlsa19waXBlX3dtX2dldF9od19zdGF0ZShzdHJ1Y3QgZHJtX2NydGMg KmNydGMpCj4gIAkJZm9yIChsZXZlbCA9IDA7IGxldmVsIDw9IG1heF9sZXZlbDsgbGV2ZWwrKykK PiAgCQkJYWN0aXZlLT53bVtsZXZlbF0uZW5hYmxlID0gdHJ1ZTsKPiAgCX0KPiArCj4gKwljc3Rh dGUtPndtLmFjdGl2ZS5pbGsgPSBjc3RhdGUtPndtLnRhcmdldC5pbGsgPSAqYWN0aXZlOwo+ICB9 Cj4gIAo+ICAjZGVmaW5lIF9GV19XTSh2YWx1ZSwgcGxhbmUpIFwKPiBAQCAtNzA0OCw2ICs3MDk4 LDkgQEAgdm9pZCBpbnRlbF9pbml0X3BtKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAkJICAg ICBkZXZfcHJpdi0+d20uc3ByX2xhdGVuY3lbMF0gJiYgZGV2X3ByaXYtPndtLmN1cl9sYXRlbmN5 WzBdKSkgewo+ICAJCQlkZXZfcHJpdi0+ZGlzcGxheS51cGRhdGVfd20gPSBpbGtfdXBkYXRlX3dt Owo+ICAJCQlkZXZfcHJpdi0+ZGlzcGxheS5jb21wdXRlX3BpcGVfd20gPSBpbGtfY29tcHV0ZV9w aXBlX3dtOwo+ICsJCQlkZXZfcHJpdi0+ZGlzcGxheS5jb21wdXRlX2ludGVybWVkaWF0ZV93bSA9 Cj4gKwkJCQlpbGtfY29tcHV0ZV9pbnRlcm1lZGlhdGVfd207Cj4gKwkJCWRldl9wcml2LT5kaXNw bGF5LnByb2dyYW1fd2F0ZXJtYXJrcyA9IGlsa19wcm9ncmFtX3dhdGVybWFya3M7Cj4gIAkJfSBl bHNlIHsKPiAgCQkJRFJNX0RFQlVHX0tNUygiRmFpbGVkIHRvIHJlYWQgZGlzcGxheSBwbGFuZSBs YXRlbmN5LiAiCj4gIAkJCQkgICAgICAiRGlzYWJsZSBDeFNSXG4iKTsKPiAtLSAKPiAyLjEuNAo+ IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBo dHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cgot LSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0 cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRl bC1nZngK