From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH] drm/i915: Shut down displays gracefully on reboot Date: Mon, 8 Aug 2016 15:52:41 +0300 Message-ID: <20160808125241.GF4329@intel.com> References: <1470231378-10656-1-git-send-email-ville.syrjala@linux.intel.com> <57A516FF.6000505@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id AB6236E294 for ; Mon, 8 Aug 2016 12:52:45 +0000 (UTC) Content-Disposition: inline In-Reply-To: <57A516FF.6000505@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Clint Taylor Cc: intel-gfx@lists.freedesktop.org, Paulo Zanoni List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBBdWcgMDUsIDIwMTYgYXQgMDM6NDU6MTlQTSAtMDcwMCwgQ2xpbnQgVGF5bG9yIHdy b3RlOgo+IE9uIDA4LzAzLzIwMTYgMDY6MzYgQU0sIHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwu Y29tIHdyb3RlOgo+ID4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4 LmludGVsLmNvbT4KPiA+Cj4gPiBEZWxsIFVQMjQxNFEgZG9lc24ndCBsaWtlIGl0IHdoZW4gd2Un cmUgZHJpdmluZyBpdCBpbiBNU1QgbW9kZSwgYW5kIHRoZW4KPiA+IHJlYm9vdCB0aGUgbWFjaGlu ZS4gQWZ0ZXIgcmVib290LCB0aGUgbW9uaXRvciBpcyBzb21laG93IGNvbmZ1c2VkIGFuZAo+ID4g cmVmdXNlcyB0byBkbyB0aGUgcGF5bG9hZCBhbGxvY2F0aW9uOgo+ID4gICBbZHJtOmRybV9kcF9t c3RfYWxsb2NhdGVfdmNwaV0gaW5pdGluZyB2Y3BpIGZvciAyODIgOAo+ID4gICBbZHJtOmRybV9k cF9kcGNkX3dyaXRlX3BheWxvYWRdIHN0YXR1cyBub3Qgc2V0IGFmdGVyIHJlYWQgcGF5bG9hZCB0 YWJsZSBzdGF0dXMgMAo+ID4gYW5kIHRodXMgd2UncmUgbGVmdCB3aXRoIGEgYmxhY2sgc2NyZWVu IHVudGlsIHRoZSBtb25pdG9yIHBvd2VyIGlzCj4gPiB0b2dnbGVkLgo+ID4KPiA+IEl0IHNlZW1z IHRoYXQgaWYgd2Ugc2h1dCBkb3duIHRoaW5ncyBncmFjZWZ1bGx5IHByaW9yIHRvIHJlYm9vdGlu ZywgdGhlCj4gPiBtb25pdG9yIGRvZXNuJ3QgZ2V0IGNvbmZ1c2VkIGxpa2UgdGhpcy4gU28gbGV0 J3MgdHJ5IHRvIHNodXQgZG93biBhbGwKPiA+IHRoZSBkaXNwbGF5cyBncmFjZWZ1bGx5IG9uIHJl Ym9vdC4gVGhlIGRvd25zaWRlIGlzIHRoYXQgd2Ugd2lsbAo+ID4gaW50cm9kdWNlIHRoZSByZWJv b3Qgbm90aWZpZXIgdG8gYWxsIHRoZSBtb2Rlc2V0bCBsb2Nrcy4gU28gaWYgdGhlcmUncwo+ID4g YSBsb2NraW5nIGJ1ZyBhcm91bmQsIHdlIG1pZ2h0IG5vdCBiZSBhYmxlIHRvIHJlYm9vdCB0aGUg bWFjaGluZQo+ID4gZ3JhY2VmdWxseS4gc3lzcnEgcmVib290IHdpbGwgc3RpbGwgd29yayB0aG91 Z2gsIGFzIGl0IHdpbGwgbm90Cj4gPiBjYWxsIHRoZSBub3RpZmllcnMuCj4gPgo+ID4gV2hpbGUg d2UgZG8gdGhpcywgd2UgY2FuIGVsaW1pbmF0ZSB0aGUgZURQIHJlYm9vdCBub3RpZmllciwgd2hp Y2ggaXMKPiA+IHRoZXJlIHRvIHNodXQgZG93biB0aGUgcGFuZWwgcG93ZXIgYW5kIG1ha2Ugc3Vy ZSB0aGUgZmlybXdhcmUgd29uJ3QKPiA+IHZpb2xhdGUgdGhlIHBhbmVsIHBvd2VyIGN5Y2xlIGRl bGF5IHBvc3QtcmVib290LiBTaW5jZSB3ZSdyZSBub3cKPiA+IHNodXR0aW5nIGVEUCBkb3duIHBy b3Blcmx5LCB3ZSBjYW4gbW9zdGx5IGp1c3QgcmlwIG91dCB0aGUgZURQIG5vdGlmaWVyLgo+ID4g V2Ugc3RpbGwgbmVlZCB0byBkbyB0aGUgcGFuZWwgcG93ZXIgY3ljbGUgd2FpdCB0aG91Z2gsIGFz IHRoYXQgd291bGQKPiA+IG5vcm1hbGx5IGdldCBwb3N0cG9uZWQgdW50aWwgdGhlIG5leHQgbW9k ZXNldC4gU28gbGV0J3MgbW92ZSB0aGF0IHBhcnQKPiA+IGludG8gaW50ZWxfcGFuZWwgc28gdGhh dCBvdGhlciBkaXNwbGF5IHR5cGVzIHdpbGwgZ2V0IHRoZSBzYW1lIHRyZWF0bWVudAo+ID4gYXMg YSBib251cy4KPiA+Cj4gPiBUaGUgRGVsbCBVUDI0MTRRIGNhbiBvZnRlbiBnZXQgZXZlbiBtb3Jl IGNvbmZ1c2VkLCBhbmQgc29tZXRpbWVzIHdoYXQKPiA+IHlvdSBoYXZlIHRvIGRvIGlzOiBzd2l0 Y2ggdG8gYW5vdGhlciBpbnB1dCBvbiB0aGUgbW9uaXRvciwgdG9nZ2xlIHRoZQo+ID4gbW9uaXRv ciBwb3dlciwgc3dpdGNoIHRoZSBpbnB1dCBiYWNrIHRvIHRoZSBvcmlnaW5hbCBzZXR0aW5nLiBB bmQKPiA+IHNvbWV0aW1lcyBpdCBzZWVtcyB5b3UganVzdCBoYXZlIHRvIHlhbmsgdGhlIHBvd2Vy IGNhYmxlIGVudGlyZWx5LiBJJ20KPiA+IG5vdCBzdXJlIGlmIHRoaXMgcmVib290IG5vdGlmaWVy IG1pZ2h0IGF2b2lkIHNvbWUgb2YgdGhlc2Ugb3RoZXIKPiA+IGZhaWx1cmUgbW9kZXMgYXMgd2Vs bCwgYnV0IEknbSBwcmV0dHkgc3VyZSBpdCBjYW4ndCBodXJ0IGF0IGxlYXN0Lgo+ID4KPiAKPiBX aGlsZSB0ZXN0aW5nIHRoaXMgY2hhbmdlIG9uIFNLTCBpZiAyIGNydGMncyBhcmUgZW5hYmxlZCBy ZXN1bWUgZnJvbSAKPiBzdXNwZW5kIGlzIDUwMG1zIGxvbmdlciB0aGFuIGEgc2luZ2xlIGNydGMg cmVzdW1lLiBBcmUgd2UgY2FsbGluZyB0aGUgCj4gVDEyIG1zbGVlcCg1MDApIGZvciBub24gZURQ IHBhbmVscz8KClNlZW1zIHVubGlrZWx5LCB1bmxlc3Mgd2UgbWlzZGV0ZWN0IERQIGFzIGVEUC4g NTAwbXMgc3VyZSBzb3VuZHMgYSBsb3QKZm9yIG5vbi1lRFAgdGhvdWdoLgoKPiAKPiBEdXJpbmcg dGVzdGluZyBWREQgdG8gdGhlIHBhbmVsLCB0aGUgVDEyIHBhbmVsIHRpbWVvdXQgcmVxdWlyZW1l bnQgaXMgCj4gYmVpbmcgbWVldCBhdCA+NTAwbXMgZHVyaW5nIHJlYm9vdCBhbmQgc3VzcGVuZC9y ZXN1bWUuCj4gCj4gPiBDYzogQ2xpbnQgVGF5bG9yIDxjbGludG9uLmEudGF5bG9yQGludGVsLmNv bT4KPiA+IENjOiBQYXVsbyBaYW5vbmkgPHBhdWxvLnIuemFub25pQGludGVsLmNvbT4KPiA+IFNp Z25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5j b20+Cj4gPiAtLS0KPiA+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgIHwg IDIgKysKPiA+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgMjQgKysr KysrKysrKysrKysrKysrCj4gPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgICAg ICB8IDQ5ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgNyArKystLS0KPiA+ICAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMgICAgIHwgIDMgKystCj4gPiAgIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2R2by5jICAgICB8ICAyICstCj4gPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2x2ZHMuYyAgICB8ICAzICsrLQo+ID4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9wYW5lbC5jICAgfCAyOSArKysrKysrKysrKysrKysrKysrKy0KPiA+ICAgOCBmaWxlcyBjaGFu Z2VkLCA2NSBpbnNlcnRpb25zKCspLCA1NCBkZWxldGlvbnMoLSkKPiA+Cj4gPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmgKPiA+IGluZGV4IDY1YWRhNWQyZjg4Yy4uZjhlYjhjN2RlMDA3IDEwMDY0NAo+ ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4gQEAgLTE3MjcsNiArMTcyNyw4IEBAIHN0cnVj dCBpbnRlbF93bV9jb25maWcgewo+ID4gICBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7Cj4gPiAg IAlzdHJ1Y3QgZHJtX2RldmljZSBkcm07Cj4gPgo+ID4gKwlzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sg cmVib290X25vdGlmaWVyOwo+ID4gKwo+ID4gICAJc3RydWN0IGttZW1fY2FjaGUgKm9iamVjdHM7 Cj4gPiAgIAlzdHJ1Y3Qga21lbV9jYWNoZSAqdm1hczsKPiA+ICAgCXN0cnVjdCBrbWVtX2NhY2hl ICpyZXF1ZXN0czsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+IGluZGV4 IGE4ZThjYzhkZmFlOS4uMjE5MmEyMWFhNmM5IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMKPiA+IEBAIC0zMSw2ICszMSw4IEBACj4gPiAgICNpbmNsdWRlIDxsaW51 eC9rZXJuZWwuaD4KPiA+ICAgI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KPiA+ICAgI2luY2x1ZGUg PGxpbnV4L3ZnYWFyYi5oPgo+ID4gKyNpbmNsdWRlIDxsaW51eC9ub3RpZmllci5oPgo+ID4gKyNp bmNsdWRlIDxsaW51eC9yZWJvb3QuaD4KPiA+ICAgI2luY2x1ZGUgPGRybS9kcm1fZWRpZC5oPgo+ ID4gICAjaW5jbHVkZSA8ZHJtL2RybVAuaD4KPiA+ICAgI2luY2x1ZGUgImludGVsX2Rydi5oIgo+ ID4gQEAgLTE1NTc4LDYgKzE1NTgwLDIzIEBAIGZhaWw6Cj4gPiAgIAlkcm1fbW9kZXNldF9hY3F1 aXJlX2ZpbmkoJmN0eCk7Cj4gPiAgIH0KPiA+Cj4gPiArCj4gPiArc3RhdGljIGludCBpbnRlbF9y ZWJvb3Rfbm90aWZpZXIoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYiwKPiA+ICsJCQkJIHVuc2ln bmVkIGxvbmcgY29kZSwgdm9pZCAqdW51c2VkKQo+ID4gK3sKPiA+ICsJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0KPiA+ICsJCWNvbnRhaW5lcl9vZihuYiwgdHlwZW9mKCpkZXZf cHJpdiksIHJlYm9vdF9ub3RpZmllcik7Cj4gPiArCj4gPiArCWlmIChjb2RlICE9IFNZU19SRVNU QVJUKQo+ID4gKwkJcmV0dXJuIDA7Cj4gPiArCj4gPiArCWludGVsX2Rpc3BsYXlfc3VzcGVuZCgm ZGV2X3ByaXYtPmRybSk7Cj4gPiArCj4gCj4gTmVlZCB0byBjaGVjayB0byBtYWtlIHN1cmUgdGhl cmUgaXMgYSBwYW5lbCBiZWZvcmUgY2FsbGluZyAKPiBpbnRlbF9wYW5lbF9yZWJvb3Rfbm90aWZp ZXIoKS4KPiAKPiA+ICsJaW50ZWxfcGFuZWxfcmVib290X25vdGlmaWVyKGRldl9wcml2KTsKPiA+ ICsKPiA+ICsJcmV0dXJuIDA7Cj4gPiArfQo+ID4gKwo+ID4gICB2b2lkIGludGVsX21vZGVzZXRf aW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4gICB7Cj4gPiAgIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gPiBAQCAtMTU3MDYsNiArMTU3 MjUsOSBAQCB2b2lkIGludGVsX21vZGVzZXRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ ID4gICAJICogc2luY2UgdGhlIHdhdGVybWFyayBjYWxjdWxhdGlvbiBkb25lIGhlcmUgd2lsbCB1 c2UgcHN0YXRlLT5mYi4KPiA+ICAgCSAqLwo+ID4gICAJc2FuaXRpemVfd2F0ZXJtYXJrcyhkZXYp Owo+ID4gKwo+ID4gKwlkZXZfcHJpdi0+cmVib290X25vdGlmaWVyLm5vdGlmaWVyX2NhbGwgPSBp bnRlbF9yZWJvb3Rfbm90aWZpZXI7Cj4gPiArCXJlZ2lzdGVyX3JlYm9vdF9ub3RpZmllcigmZGV2 X3ByaXYtPnJlYm9vdF9ub3RpZmllcik7Cj4gPiAgIH0KPiA+Cj4gPiAgIHN0YXRpYyB2b2lkIGlu dGVsX2VuYWJsZV9waXBlX2Eoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiA+IEBAIC0xNjI5MSw2 ICsxNjMxMyw4IEBAIHZvaWQgaW50ZWxfbW9kZXNldF9jbGVhbnVwKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpCj4gPiAgIHsKPiA+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoZGV2KTsKPiA+Cj4gPiArCXVucmVnaXN0ZXJfcmVib290X25vdGlmaWVyKCZkZXZf cHJpdi0+cmVib290X25vdGlmaWVyKTsKPiA+ICsKPiA+ICAgCWludGVsX2Rpc2FibGVfZ3RfcG93 ZXJzYXZlKGRldl9wcml2KTsKPiA+Cj4gPiAgIAkvKgo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5j Cj4gPiBpbmRleCAwMDFmNzRmYzBjZTUuLmQ4ZDEzYTllMzNlNSAxMDA2NDQKPiA+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RwLmMKPiA+IEBAIC0yOCw4ICsyOCw2IEBACj4gPiAgICNpbmNsdWRlIDxsaW51 eC9pMmMuaD4KPiA+ICAgI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KPiA+ICAgI2luY2x1ZGUgPGxp bnV4L2V4cG9ydC5oPgo+ID4gLSNpbmNsdWRlIDxsaW51eC9ub3RpZmllci5oPgo+ID4gLSNpbmNs dWRlIDxsaW51eC9yZWJvb3QuaD4KPiA+ICAgI2luY2x1ZGUgPGRybS9kcm1QLmg+Cj4gPiAgICNp bmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KPiA+ICAgI2luY2x1ZGUgPGRybS9kcm1f Y3J0Yy5oPgo+ID4gQEAgLTYzMSw0MiArNjI5LDYgQEAgX3BwX3N0YXRfcmVnKHN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHApCj4gPiAgIAlyZXR1cm4gcmVncy5wcF9zdGF0Owo+ID4gICB9Cj4gPgo+ ID4gLS8qIFJlYm9vdCBub3RpZmllciBoYW5kbGVyIHRvIHNodXRkb3duIHBhbmVsIHBvd2VyIHRv IGd1YXJhbnRlZSBUMTIgdGltaW5nCj4gPiAtICAgVGhpcyBmdW5jdGlvbiBvbmx5IGFwcGxpY2Fi bGUgd2hlbiBwYW5lbCBQTSBzdGF0ZSBpcyBub3QgdG8gYmUgdHJhY2tlZCAqLwo+ID4gLXN0YXRp YyBpbnQgZWRwX25vdGlmeV9oYW5kbGVyKHN0cnVjdCBub3RpZmllcl9ibG9jayAqdGhpcywgdW5z aWduZWQgbG9uZyBjb2RlLAo+ID4gLQkJCSAgICAgIHZvaWQgKnVudXNlZCkKPiA+IC17Cj4gPiAt CXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBjb250YWluZXJfb2YodGhpcywgdHlwZW9mKCog aW50ZWxfZHApLAo+ID4gLQkJCQkJCSBlZHBfbm90aWZpZXIpOwo+ID4gLQlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gaW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKTsKPiA+IC0Jc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ID4gLQo+ID4gLQlpZiAoIWlz X2VkcChpbnRlbF9kcCkgfHwgY29kZSAhPSBTWVNfUkVTVEFSVCkKPiA+IC0JCXJldHVybiAwOwo+ ID4gLQo+ID4gLQlwcHNfbG9jayhpbnRlbF9kcCk7Cj4gPiAtCj4gPiAtCWlmIChJU19WQUxMRVlW SUVXKGRldikgfHwgSVNfQ0hFUlJZVklFVyhkZXYpKSB7Cj4gPiAtCQllbnVtIHBpcGUgcGlwZSA9 IHZsdl9wb3dlcl9zZXF1ZW5jZXJfcGlwZShpbnRlbF9kcCk7Cj4gPiAtCQlpOTE1X3JlZ190IHBw X2N0cmxfcmVnLCBwcF9kaXZfcmVnOwo+ID4gLQkJdTMyIHBwX2RpdjsKPiA+IC0KPiA+IC0JCXBw X2N0cmxfcmVnID0gVkxWX1BJUEVfUFBfQ09OVFJPTChwaXBlKTsKPiA+IC0JCXBwX2Rpdl9yZWcg ID0gVkxWX1BJUEVfUFBfRElWSVNPUihwaXBlKTsKPiA+IC0JCXBwX2RpdiA9IEk5MTVfUkVBRChw cF9kaXZfcmVnKTsKPiA+IC0JCXBwX2RpdiAmPSBQUF9SRUZFUkVOQ0VfRElWSURFUl9NQVNLOwo+ ID4gLQo+ID4gLQkJLyogMHgxRiB3cml0ZSB0byBQUF9ESVZfUkVHIHNldHMgbWF4IGN5Y2xlIGRl bGF5ICovCj4gPiAtCQlJOTE1X1dSSVRFKHBwX2Rpdl9yZWcsIHBwX2RpdiB8IDB4MUYpOwo+ID4g LQkJSTkxNV9XUklURShwcF9jdHJsX3JlZywgUEFORUxfVU5MT0NLX1JFR1MgfCBQQU5FTF9QT1dF Ul9PRkYpOwo+ID4gLQkJbXNsZWVwKGludGVsX2RwLT5wYW5lbF9wb3dlcl9jeWNsZV9kZWxheSk7 Cj4gPiAtCX0KPiA+IC0KPiA+IC0JcHBzX3VubG9jayhpbnRlbF9kcCk7Cj4gPiAtCj4gPiAtCXJl dHVybiAwOwo+ID4gLX0KPiA+IC0KPiA+ICAgc3RhdGljIGJvb2wgZWRwX2hhdmVfcGFuZWxfcG93 ZXIoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiA+ICAgewo+ID4gICAJc3RydWN0IGRybV9k ZXZpY2UgKmRldiA9IGludGVsX2RwX3RvX2RldihpbnRlbF9kcCk7Cj4gPiBAQCAtNDU2MiwxMSAr NDUyNCw2IEBAIHZvaWQgaW50ZWxfZHBfZW5jb2Rlcl9kZXN0cm95KHN0cnVjdCBkcm1fZW5jb2Rl ciAqZW5jb2RlcikKPiA+ICAgCQlwcHNfbG9jayhpbnRlbF9kcCk7Cj4gPiAgIAkJZWRwX3BhbmVs X3ZkZF9vZmZfc3luYyhpbnRlbF9kcCk7Cj4gPiAgIAkJcHBzX3VubG9jayhpbnRlbF9kcCk7Cj4g PiAtCj4gPiAtCQlpZiAoaW50ZWxfZHAtPmVkcF9ub3RpZmllci5ub3RpZmllcl9jYWxsKSB7Cj4g PiAtCQkJdW5yZWdpc3Rlcl9yZWJvb3Rfbm90aWZpZXIoJmludGVsX2RwLT5lZHBfbm90aWZpZXIp Owo+ID4gLQkJCWludGVsX2RwLT5lZHBfbm90aWZpZXIubm90aWZpZXJfY2FsbCA9IE5VTEw7Cj4g PiAtCQl9Cj4gPiAgIAl9Cj4gPgo+ID4gICAJaW50ZWxfZHBfYXV4X2ZpbmkoaW50ZWxfZHApOwo+ ID4gQEAgLTU0NjUsOSArNTQyMiw2IEBAIHN0YXRpYyBib29sIGludGVsX2VkcF9pbml0X2Nvbm5l Y3RvcihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ID4gICAJbXV0ZXhfdW5sb2NrKCZkZXYt Pm1vZGVfY29uZmlnLm11dGV4KTsKPiA+Cj4gPiAgIAlpZiAoSVNfVkFMTEVZVklFVyhkZXYpIHx8 IElTX0NIRVJSWVZJRVcoZGV2KSkgewo+ID4gLQkJaW50ZWxfZHAtPmVkcF9ub3RpZmllci5ub3Rp Zmllcl9jYWxsID0gZWRwX25vdGlmeV9oYW5kbGVyOwo+ID4gLQkJcmVnaXN0ZXJfcmVib290X25v dGlmaWVyKCZpbnRlbF9kcC0+ZWRwX25vdGlmaWVyKTsKPiA+IC0KPiA+ICAgCQkvKgo+ID4gICAJ CSAqIEZpZ3VyZSBvdXQgdGhlIGN1cnJlbnQgcGlwZSBmb3IgdGhlIGluaXRpYWwgYmFja2xpZ2h0 IHNldHVwLgo+ID4gICAJCSAqIElmIHRoZSBjdXJyZW50IHBpcGUgaXNuJ3QgdmFsaWQsIHRyeSB0 aGUgUFBTIHBpcGUsIGFuZCBpZiB0aGF0Cj4gPiBAQCAtNTQ4OCw3ICs1NDQyLDggQEAgc3RhdGlj IGJvb2wgaW50ZWxfZWRwX2luaXRfY29ubmVjdG9yKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAs Cj4gPiAgIAkJCSAgICAgIHBpcGVfbmFtZShwaXBlKSk7Cj4gPiAgIAl9Cj4gPgo+ID4gLQlpbnRl bF9wYW5lbF9pbml0KCZpbnRlbF9jb25uZWN0b3ItPnBhbmVsLCBmaXhlZF9tb2RlLCBkb3duY2xv Y2tfbW9kZSk7Cj4gPiArCWludGVsX3BhbmVsX2luaXQoJmludGVsX2Nvbm5lY3Rvci0+cGFuZWws IGZpeGVkX21vZGUsIGRvd25jbG9ja19tb2RlLAo+ID4gKwkJCSBpbnRlbF9kcC0+cGFuZWxfcG93 ZXJfY3ljbGVfZGVsYXkpOwo+ID4gICAJaW50ZWxfY29ubmVjdG9yLT5wYW5lbC5iYWNrbGlnaHQu cG93ZXIgPSBpbnRlbF9lZHBfYmFja2xpZ2h0X3Bvd2VyOwo+ID4gICAJaW50ZWxfcGFuZWxfc2V0 dXBfYmFja2xpZ2h0KGNvbm5lY3RvciwgcGlwZSk7Cj4gPgo+ID4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmgKPiA+IGluZGV4IDUwY2RjODkwZDk1Ni4uOTJmYTY2YTAyY2E1IDEwMDY0NAo+ID4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiBAQCAtMjI2LDYgKzIyNiw3IEBAIHN0cnVjdCBpbnRl bF9wYW5lbCB7Cj4gPiAgIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqZml4ZWRfbW9kZTsKPiA+ ICAgCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpkb3duY2xvY2tfbW9kZTsKPiA+ICAgCWludCBm aXR0aW5nX21vZGU7Cj4gPiArCWludCByZWJvb3RfcG93ZXJfY3ljbGVfZGVsYXk7Cj4gPgo+ID4g ICAJLyogYmFja2xpZ2h0ICovCj4gPiAgIAlzdHJ1Y3Qgewo+ID4gQEAgLTg3Nyw4ICs4NzgsNiBA QCBzdHJ1Y3QgaW50ZWxfZHAgewo+ID4gICAJdW5zaWduZWQgbG9uZyBsYXN0X2JhY2tsaWdodF9v ZmY7Cj4gPiAgIAlrdGltZV90IHBhbmVsX3Bvd2VyX29mZl90aW1lOwo+ID4KPiA+IC0Jc3RydWN0 IG5vdGlmaWVyX2Jsb2NrIGVkcF9ub3RpZmllcjsKPiA+IC0KPiA+ICAgCS8qCj4gPiAgIAkgKiBQ aXBlIHdob3NlIHBvd2VyIHNlcXVlbmNlciBpcyBjdXJyZW50bHkgbG9ja2VkIGludG8KPiA+ICAg CSAqIHRoaXMgcG9ydC4gT25seSByZWxldmFudCBvbiBWTFYvQ0hWLgo+ID4gQEAgLTE1MjEsOCAr MTUyMCwxMCBAQCB2b2lkIGludGVsX292ZXJsYXlfcmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KTsKPiA+ICAgLyogaW50ZWxfcGFuZWwuYyAqLwo+ID4gICBpbnQgaW50ZWxf cGFuZWxfaW5pdChzdHJ1Y3QgaW50ZWxfcGFuZWwgKnBhbmVsLAo+ID4gICAJCSAgICAgc3RydWN0 IGRybV9kaXNwbGF5X21vZGUgKmZpeGVkX21vZGUsCj4gPiAtCQkgICAgIHN0cnVjdCBkcm1fZGlz cGxheV9tb2RlICpkb3duY2xvY2tfbW9kZSk7Cj4gPiArCQkgICAgIHN0cnVjdCBkcm1fZGlzcGxh eV9tb2RlICpkb3duY2xvY2tfbW9kZSwKPiA+ICsJCSAgICAgaW50IHJlYm9vdF9wb3dlcl9jeWNs ZV9kZWxheSk7Cj4gPiAgIHZvaWQgaW50ZWxfcGFuZWxfZmluaShzdHJ1Y3QgaW50ZWxfcGFuZWwg KnBhbmVsKTsKPiA+ICt2b2lkIGludGVsX3BhbmVsX3JlYm9vdF9ub3RpZmllcihzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ID4gICB2b2lkIGludGVsX2ZpeGVkX3BhbmVsX21v ZGUoY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmZpeGVkX21vZGUsCj4gPiAgIAkJCSAg ICBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSk7Cj4gPiAgIHZvaWQgaW50 ZWxfcGNoX3BhbmVsX2ZpdHRpbmcoc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kc2kuYwo+ID4gaW5kZXggZGU4ZTlmYjUxNTk1Li41YjcyMmVjMjMzODEgMTAw NjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYwo+ID4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMKPiA+IEBAIC0xNTk2LDcgKzE1OTYsOCBA QCB2b2lkIGludGVsX2RzaV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gPiAgIAljb25u ZWN0b3ItPmRpc3BsYXlfaW5mby53aWR0aF9tbSA9IGZpeGVkX21vZGUtPndpZHRoX21tOwo+ID4g ICAJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uaGVpZ2h0X21tID0gZml4ZWRfbW9kZS0+aGVpZ2h0 X21tOwo+ID4KPiA+IC0JaW50ZWxfcGFuZWxfaW5pdCgmaW50ZWxfY29ubmVjdG9yLT5wYW5lbCwg Zml4ZWRfbW9kZSwgTlVMTCk7Cj4gPiArCWludGVsX3BhbmVsX2luaXQoJmludGVsX2Nvbm5lY3Rv ci0+cGFuZWwsIGZpeGVkX21vZGUsIE5VTEwsCj4gPiArCQkJIGludGVsX2RzaS0+cGFuZWxfcHdy X2N5Y2xlX2RlbGF5KTsKPiA+ICAgCWludGVsX3BhbmVsX3NldHVwX2JhY2tsaWdodChjb25uZWN0 b3IsIElOVkFMSURfUElQRSk7Cj4gPgo+ID4gICAJaW50ZWxfZHNpX2FkZF9wcm9wZXJ0aWVzKGlu dGVsX2Nvbm5lY3Rvcik7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHZvLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kdm8uYwo+ID4gaW5kZXggNDdi ZGY5ZGFkMGQzLi5jMmM5YzkyMjU5MGMgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kdm8uYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHZv LmMKPiA+IEBAIC01NDcsNyArNTQ3LDcgQEAgdm9pZCBpbnRlbF9kdm9faW5pdChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KQo+ID4gICAJCQkgKi8KPiA+ICAgCQkJaW50ZWxfcGFuZWxfaW5pdCgmaW50 ZWxfY29ubmVjdG9yLT5wYW5lbCwKPiA+ICAgCQkJCQkgaW50ZWxfZHZvX2dldF9jdXJyZW50X21v ZGUoY29ubmVjdG9yKSwKPiA+IC0JCQkJCSBOVUxMKTsKPiA+ICsJCQkJCSBOVUxMLCAwKTsKPiA+ ICAgCQkJaW50ZWxfZHZvLT5wYW5lbF93YW50c19kaXRoZXIgPSB0cnVlOwo+ID4gICAJCX0KPiA+ Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHZkcy5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHZkcy5jCj4gPiBpbmRleCA0OTU1MDQ3MDQ4M2UuLjA3 ZDdhYzJjMTUyMCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2x2 ZHMuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHZkcy5jCj4gPiBAQCAt MTEyMCw3ICsxMTIwLDggQEAgdm9pZCBpbnRlbF9sdmRzX2luaXQoc3RydWN0IGRybV9kZXZpY2Ug KmRldikKPiA+ICAgb3V0Ogo+ID4gICAJbXV0ZXhfdW5sb2NrKCZkZXYtPm1vZGVfY29uZmlnLm11 dGV4KTsKPiA+Cj4gPiAtCWludGVsX3BhbmVsX2luaXQoJmludGVsX2Nvbm5lY3Rvci0+cGFuZWws IGZpeGVkX21vZGUsIGRvd25jbG9ja19tb2RlKTsKPiA+ICsJLyogRklYTUUgZmlsbCBpbiBhbiBh Y2N1cmF0ZSBwb3dlciBjeWNsZSBkZWxheSAqLwo+ID4gKwlpbnRlbF9wYW5lbF9pbml0KCZpbnRl bF9jb25uZWN0b3ItPnBhbmVsLCBmaXhlZF9tb2RlLCBkb3duY2xvY2tfbW9kZSwgMCk7Cj4gPiAg IAlpbnRlbF9wYW5lbF9zZXR1cF9iYWNrbGlnaHQoY29ubmVjdG9yLCBJTlZBTElEX1BJUEUpOwo+ ID4KPiA+ICAgCWx2ZHNfZW5jb2Rlci0+aXNfZHVhbF9saW5rID0gY29tcHV0ZV9pc19kdWFsX2xp bmtfbHZkcyhsdmRzX2VuY29kZXIpOwo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3BhbmVsLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jCj4g PiBpbmRleCA5NmM2NWQ3N2U4ODYuLmZlNTdhNzQzYWQyMSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3BhbmVsLmMKPiA+IEBAIC0xNzgxLDE0ICsxNzgxLDQxIEBAIGludGVsX3BhbmVs X2luaXRfYmFja2xpZ2h0X2Z1bmNzKHN0cnVjdCBpbnRlbF9wYW5lbCAqcGFuZWwpCj4gPiAgIAl9 Cj4gPiAgIH0KPiA+Cj4gPiArLyoKPiA+ICsgKiBNYWtlIHN1cmUgdGhlIHBvd2VyIGN5Y2xlIGRl bGF5IGlzIHJlc3BlY3RlZC4gVGhlIFBQUwo+ID4gKyAqIGRvZXMgc3VwcG9zZWRseSBpbml0aWF0 ZSBhIHBvd2VyIGN5Y2xlIG9uIHJlc2V0LCBidXQgaXQKPiA+ICsgKiBhbHNvIHJlc2V0cyB0aGUg cG93ZXIgY3ljbGUgZGVsYXkgcmVnaXN0ZXIgdmFsdWUgdG8gdGhlCj4gPiArICogZGVmYXVsdCB2 YWx1ZSwgYW5kIGhlbmNlIG1heSBub3Qgd2FpdCBsb25nIGVub3VnaCBpZiB0aGUKPiA+ICsgKiBm aXJtd2FyZSBhdHRlbXB0cyB0byBwb3dlciB1cCB0aGUgcGFuZWwgaW1tZWRpYXRlbHkuCj4gPiAr ICogQWxzbyBlZy4gRFNJIGRvZXNuJ3QgdXNlIHRoZSBQUFMuCj4gPiArICovCj4gPiArdm9pZCBp bnRlbF9wYW5lbF9yZWJvb3Rfbm90aWZpZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQo+ID4gK3sKPiA+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9ICZkZXZfcHJpdi0+ZHJt Owo+ID4gKwlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3I7Cj4gPiArCWludCByZWJv b3RfcG93ZXJfY3ljbGVfZGVsYXkgPSAwOwo+ID4gKwo+ID4gKwlmb3JfZWFjaF9pbnRlbF9jb25u ZWN0b3IoZGV2LCBjb25uZWN0b3IpIHsKPiA+ICsJCXN0cnVjdCBpbnRlbF9wYW5lbCAqcGFuZWwg PSAmY29ubmVjdG9yLT5wYW5lbDsKPiA+ICsKPiA+ICsJCXJlYm9vdF9wb3dlcl9jeWNsZV9kZWxh eSA9IG1heChyZWJvb3RfcG93ZXJfY3ljbGVfZGVsYXksCj4gPiArCQkJCQkgICAgICAgcGFuZWwt PnJlYm9vdF9wb3dlcl9jeWNsZV9kZWxheSk7Cj4gPiArCX0KPiA+ICsKPiA+ICsJaWYgKHJlYm9v dF9wb3dlcl9jeWNsZV9kZWxheSkKPiA+ICsJCW1zbGVlcChyZWJvb3RfcG93ZXJfY3ljbGVfZGVs YXkpOwo+ID4gK30KPiA+ICsKPiA+ICAgaW50IGludGVsX3BhbmVsX2luaXQoc3RydWN0IGludGVs X3BhbmVsICpwYW5lbCwKPiA+ICAgCQkgICAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpmaXhl ZF9tb2RlLAo+ID4gLQkJICAgICBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqZG93bmNsb2NrX21v ZGUpCj4gPiArCQkgICAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpkb3duY2xvY2tfbW9kZSwK PiA+ICsJCSAgICAgaW50IHJlYm9vdF9wb3dlcl9jeWNsZV9kZWxheSkKPiA+ICAgewo+ID4gICAJ aW50ZWxfcGFuZWxfaW5pdF9iYWNrbGlnaHRfZnVuY3MocGFuZWwpOwo+ID4KPiA+ICAgCXBhbmVs LT5maXhlZF9tb2RlID0gZml4ZWRfbW9kZTsKPiA+ICAgCXBhbmVsLT5kb3duY2xvY2tfbW9kZSA9 IGRvd25jbG9ja19tb2RlOwo+ID4gKwlwYW5lbC0+cmVib290X3Bvd2VyX2N5Y2xlX2RlbGF5ID0g cmVib290X3Bvd2VyX2N5Y2xlX2RlbGF5Owo+ID4KPiA+ICAgCXJldHVybiAwOwo+ID4gICB9Cj4g PgoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbCBPVEMKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==