From mboxrd@z Thu Jan 1 00:00:00 1970 From: Clint Taylor Subject: Re: [PATCH] drm/i915: Shut down displays gracefully on reboot Date: Fri, 5 Aug 2016 15:45:19 -0700 Message-ID: <57A516FF.6000505@intel.com> References: <1470231378-10656-1-git-send-email-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" 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 405696EC5B for ; Fri, 5 Aug 2016 22:46:30 +0000 (UTC) In-Reply-To: <1470231378-10656-1-git-send-email-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: ville.syrjala@linux.intel.com, intel-gfx@lists.freedesktop.org Cc: Paulo Zanoni List-Id: intel-gfx@lists.freedesktop.org T24gMDgvMDMvMjAxNiAwNjozNiBBTSwgdmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20gd3Jv dGU6Cj4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNv bT4KPgo+IERlbGwgVVAyNDE0USBkb2Vzbid0IGxpa2UgaXQgd2hlbiB3ZSdyZSBkcml2aW5nIGl0 IGluIE1TVCBtb2RlLCBhbmQgdGhlbgo+IHJlYm9vdCB0aGUgbWFjaGluZS4gQWZ0ZXIgcmVib290 LCB0aGUgbW9uaXRvciBpcyBzb21laG93IGNvbmZ1c2VkIGFuZAo+IHJlZnVzZXMgdG8gZG8gdGhl IHBheWxvYWQgYWxsb2NhdGlvbjoKPiAgIFtkcm06ZHJtX2RwX21zdF9hbGxvY2F0ZV92Y3BpXSBp bml0aW5nIHZjcGkgZm9yIDI4MiA4Cj4gICBbZHJtOmRybV9kcF9kcGNkX3dyaXRlX3BheWxvYWRd IHN0YXR1cyBub3Qgc2V0IGFmdGVyIHJlYWQgcGF5bG9hZCB0YWJsZSBzdGF0dXMgMAo+IGFuZCB0 aHVzIHdlJ3JlIGxlZnQgd2l0aCBhIGJsYWNrIHNjcmVlbiB1bnRpbCB0aGUgbW9uaXRvciBwb3dl ciBpcwo+IHRvZ2dsZWQuCj4KPiBJdCBzZWVtcyB0aGF0IGlmIHdlIHNodXQgZG93biB0aGluZ3Mg Z3JhY2VmdWxseSBwcmlvciB0byByZWJvb3RpbmcsIHRoZQo+IG1vbml0b3IgZG9lc24ndCBnZXQg Y29uZnVzZWQgbGlrZSB0aGlzLiBTbyBsZXQncyB0cnkgdG8gc2h1dCBkb3duIGFsbAo+IHRoZSBk aXNwbGF5cyBncmFjZWZ1bGx5IG9uIHJlYm9vdC4gVGhlIGRvd25zaWRlIGlzIHRoYXQgd2Ugd2ls bAo+IGludHJvZHVjZSB0aGUgcmVib290IG5vdGlmaWVyIHRvIGFsbCB0aGUgbW9kZXNldGwgbG9j a3MuIFNvIGlmIHRoZXJlJ3MKPiBhIGxvY2tpbmcgYnVnIGFyb3VuZCwgd2UgbWlnaHQgbm90IGJl IGFibGUgdG8gcmVib290IHRoZSBtYWNoaW5lCj4gZ3JhY2VmdWxseS4gc3lzcnEgcmVib290IHdp bGwgc3RpbGwgd29yayB0aG91Z2gsIGFzIGl0IHdpbGwgbm90Cj4gY2FsbCB0aGUgbm90aWZpZXJz Lgo+Cj4gV2hpbGUgd2UgZG8gdGhpcywgd2UgY2FuIGVsaW1pbmF0ZSB0aGUgZURQIHJlYm9vdCBu b3RpZmllciwgd2hpY2ggaXMKPiB0aGVyZSB0byBzaHV0IGRvd24gdGhlIHBhbmVsIHBvd2VyIGFu ZCBtYWtlIHN1cmUgdGhlIGZpcm13YXJlIHdvbid0Cj4gdmlvbGF0ZSB0aGUgcGFuZWwgcG93ZXIg Y3ljbGUgZGVsYXkgcG9zdC1yZWJvb3QuIFNpbmNlIHdlJ3JlIG5vdwo+IHNodXR0aW5nIGVEUCBk b3duIHByb3Blcmx5LCB3ZSBjYW4gbW9zdGx5IGp1c3QgcmlwIG91dCB0aGUgZURQIG5vdGlmaWVy Lgo+IFdlIHN0aWxsIG5lZWQgdG8gZG8gdGhlIHBhbmVsIHBvd2VyIGN5Y2xlIHdhaXQgdGhvdWdo LCBhcyB0aGF0IHdvdWxkCj4gbm9ybWFsbHkgZ2V0IHBvc3Rwb25lZCB1bnRpbCB0aGUgbmV4dCBt b2Rlc2V0LiBTbyBsZXQncyBtb3ZlIHRoYXQgcGFydAo+IGludG8gaW50ZWxfcGFuZWwgc28gdGhh dCBvdGhlciBkaXNwbGF5IHR5cGVzIHdpbGwgZ2V0IHRoZSBzYW1lIHRyZWF0bWVudAo+IGFzIGEg Ym9udXMuCj4KPiBUaGUgRGVsbCBVUDI0MTRRIGNhbiBvZnRlbiBnZXQgZXZlbiBtb3JlIGNvbmZ1 c2VkLCBhbmQgc29tZXRpbWVzIHdoYXQKPiB5b3UgaGF2ZSB0byBkbyBpczogc3dpdGNoIHRvIGFu b3RoZXIgaW5wdXQgb24gdGhlIG1vbml0b3IsIHRvZ2dsZSB0aGUKPiBtb25pdG9yIHBvd2VyLCBz d2l0Y2ggdGhlIGlucHV0IGJhY2sgdG8gdGhlIG9yaWdpbmFsIHNldHRpbmcuIEFuZAo+IHNvbWV0 aW1lcyBpdCBzZWVtcyB5b3UganVzdCBoYXZlIHRvIHlhbmsgdGhlIHBvd2VyIGNhYmxlIGVudGly ZWx5LiBJJ20KPiBub3Qgc3VyZSBpZiB0aGlzIHJlYm9vdCBub3RpZmllciBtaWdodCBhdm9pZCBz b21lIG9mIHRoZXNlIG90aGVyCj4gZmFpbHVyZSBtb2RlcyBhcyB3ZWxsLCBidXQgSSdtIHByZXR0 eSBzdXJlIGl0IGNhbid0IGh1cnQgYXQgbGVhc3QuCj4KCldoaWxlIHRlc3RpbmcgdGhpcyBjaGFu Z2Ugb24gU0tMIGlmIDIgY3J0YydzIGFyZSBlbmFibGVkIHJlc3VtZSBmcm9tIApzdXNwZW5kIGlz IDUwMG1zIGxvbmdlciB0aGFuIGEgc2luZ2xlIGNydGMgcmVzdW1lLiBBcmUgd2UgY2FsbGluZyB0 aGUgClQxMiBtc2xlZXAoNTAwKSBmb3Igbm9uIGVEUCBwYW5lbHM/CgpEdXJpbmcgdGVzdGluZyBW REQgdG8gdGhlIHBhbmVsLCB0aGUgVDEyIHBhbmVsIHRpbWVvdXQgcmVxdWlyZW1lbnQgaXMgCmJl aW5nIG1lZXQgYXQgPjUwMG1zIGR1cmluZyByZWJvb3QgYW5kIHN1c3BlbmQvcmVzdW1lLgoKPiBD YzogQ2xpbnQgVGF5bG9yIDxjbGludG9uLmEudGF5bG9yQGludGVsLmNvbT4KPiBDYzogUGF1bG8g WmFub25pIDxwYXVsby5yLnphbm9uaUBpbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogVmlsbGUg U3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiAtLS0KPiAgIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICB8ICAyICsrCj4gICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAyNCArKysrKysrKysrKysrKysrKysKPiAgIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgICAgICB8IDQ5ICsrLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAg IHwgIDcgKysrLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYyAgICAgfCAg MyArKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2R2by5jICAgICB8ICAyICstCj4g ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sdmRzLmMgICAgfCAgMyArKy0KPiAgIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMgICB8IDI5ICsrKysrKysrKysrKysrKysrKysr LQo+ICAgOCBmaWxlcyBjaGFuZ2VkLCA2NSBpbnNlcnRpb25zKCspLCA1NCBkZWxldGlvbnMoLSkK Pgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IGluZGV4IDY1YWRhNWQyZjg4Yy4uZjhlYjhjN2Rl MDA3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gQEAgLTE3MjcsNiArMTcyNyw4IEBA IHN0cnVjdCBpbnRlbF93bV9jb25maWcgewo+ICAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewo+ ICAgCXN0cnVjdCBkcm1fZGV2aWNlIGRybTsKPgo+ICsJc3RydWN0IG5vdGlmaWVyX2Jsb2NrIHJl Ym9vdF9ub3RpZmllcjsKPiArCj4gICAJc3RydWN0IGttZW1fY2FjaGUgKm9iamVjdHM7Cj4gICAJ c3RydWN0IGttZW1fY2FjaGUgKnZtYXM7Cj4gICAJc3RydWN0IGttZW1fY2FjaGUgKnJlcXVlc3Rz Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRleCBhOGU4Y2M4ZGZhZTku LjIxOTJhMjFhYTZjOSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBA QCAtMzEsNiArMzEsOCBAQAo+ICAgI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgo+ICAgI2luY2x1 ZGUgPGxpbnV4L3NsYWIuaD4KPiAgICNpbmNsdWRlIDxsaW51eC92Z2FhcmIuaD4KPiArI2luY2x1 ZGUgPGxpbnV4L25vdGlmaWVyLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9yZWJvb3QuaD4KPiAgICNp bmNsdWRlIDxkcm0vZHJtX2VkaWQuaD4KPiAgICNpbmNsdWRlIDxkcm0vZHJtUC5oPgo+ICAgI2lu Y2x1ZGUgImludGVsX2Rydi5oIgo+IEBAIC0xNTU3OCw2ICsxNTU4MCwyMyBAQCBmYWlsOgo+ICAg CWRybV9tb2Rlc2V0X2FjcXVpcmVfZmluaSgmY3R4KTsKPiAgIH0KPgo+ICsKPiArc3RhdGljIGlu dCBpbnRlbF9yZWJvb3Rfbm90aWZpZXIoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYiwKPiArCQkJ CSB1bnNpZ25lZCBsb25nIGNvZGUsIHZvaWQgKnVudXNlZCkKPiArewo+ICsJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0KPiArCQljb250YWluZXJfb2YobmIsIHR5cGVvZigqZGV2 X3ByaXYpLCByZWJvb3Rfbm90aWZpZXIpOwo+ICsKPiArCWlmIChjb2RlICE9IFNZU19SRVNUQVJU KQo+ICsJCXJldHVybiAwOwo+ICsKPiArCWludGVsX2Rpc3BsYXlfc3VzcGVuZCgmZGV2X3ByaXYt PmRybSk7Cj4gKwoKTmVlZCB0byBjaGVjayB0byBtYWtlIHN1cmUgdGhlcmUgaXMgYSBwYW5lbCBi ZWZvcmUgY2FsbGluZyAKaW50ZWxfcGFuZWxfcmVib290X25vdGlmaWVyKCkuCgo+ICsJaW50ZWxf cGFuZWxfcmVib290X25vdGlmaWVyKGRldl9wcml2KTsKPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ ICsKPiAgIHZvaWQgaW50ZWxfbW9kZXNldF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4g ICB7Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYp Owo+IEBAIC0xNTcwNiw2ICsxNTcyNSw5IEBAIHZvaWQgaW50ZWxfbW9kZXNldF9pbml0KHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpCj4gICAJICogc2luY2UgdGhlIHdhdGVybWFyayBjYWxjdWxhdGlv biBkb25lIGhlcmUgd2lsbCB1c2UgcHN0YXRlLT5mYi4KPiAgIAkgKi8KPiAgIAlzYW5pdGl6ZV93 YXRlcm1hcmtzKGRldik7Cj4gKwo+ICsJZGV2X3ByaXYtPnJlYm9vdF9ub3RpZmllci5ub3RpZmll cl9jYWxsID0gaW50ZWxfcmVib290X25vdGlmaWVyOwo+ICsJcmVnaXN0ZXJfcmVib290X25vdGlm aWVyKCZkZXZfcHJpdi0+cmVib290X25vdGlmaWVyKTsKPiAgIH0KPgo+ICAgc3RhdGljIHZvaWQg aW50ZWxfZW5hYmxlX3BpcGVfYShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+IEBAIC0xNjI5MSw2 ICsxNjMxMyw4IEBAIHZvaWQgaW50ZWxfbW9kZXNldF9jbGVhbnVwKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpCj4gICB7Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShkZXYpOwo+Cj4gKwl1bnJlZ2lzdGVyX3JlYm9vdF9ub3RpZmllcigmZGV2X3ByaXYtPnJl Ym9vdF9ub3RpZmllcik7Cj4gKwo+ICAgCWludGVsX2Rpc2FibGVfZ3RfcG93ZXJzYXZlKGRldl9w cml2KTsKPgo+ICAgCS8qCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gaW5kZXggMDAxZjc0ZmMw Y2U1Li5kOGQxM2E5ZTMzZTUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHAuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiBAQCAtMjgs OCArMjgsNiBAQAo+ICAgI2luY2x1ZGUgPGxpbnV4L2kyYy5oPgo+ICAgI2luY2x1ZGUgPGxpbnV4 L3NsYWIuaD4KPiAgICNpbmNsdWRlIDxsaW51eC9leHBvcnQuaD4KPiAtI2luY2x1ZGUgPGxpbnV4 L25vdGlmaWVyLmg+Cj4gLSNpbmNsdWRlIDxsaW51eC9yZWJvb3QuaD4KPiAgICNpbmNsdWRlIDxk cm0vZHJtUC5oPgo+ICAgI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgo+ICAgI2lu Y2x1ZGUgPGRybS9kcm1fY3J0Yy5oPgo+IEBAIC02MzEsNDIgKzYyOSw2IEBAIF9wcF9zdGF0X3Jl ZyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ICAgCXJldHVybiByZWdzLnBwX3N0YXQ7Cj4g ICB9Cj4KPiAtLyogUmVib290IG5vdGlmaWVyIGhhbmRsZXIgdG8gc2h1dGRvd24gcGFuZWwgcG93 ZXIgdG8gZ3VhcmFudGVlIFQxMiB0aW1pbmcKPiAtICAgVGhpcyBmdW5jdGlvbiBvbmx5IGFwcGxp Y2FibGUgd2hlbiBwYW5lbCBQTSBzdGF0ZSBpcyBub3QgdG8gYmUgdHJhY2tlZCAqLwo+IC1zdGF0 aWMgaW50IGVkcF9ub3RpZnlfaGFuZGxlcihzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKnRoaXMsIHVu c2lnbmVkIGxvbmcgY29kZSwKPiAtCQkJICAgICAgdm9pZCAqdW51c2VkKQo+IC17Cj4gLQlzdHJ1 Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gY29udGFpbmVyX29mKHRoaXMsIHR5cGVvZigqIGludGVs X2RwKSwKPiAtCQkJCQkJIGVkcF9ub3RpZmllcik7Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gaW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKTsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiAtCj4gLQlpZiAoIWlzX2VkcChpbnRlbF9kcCkg fHwgY29kZSAhPSBTWVNfUkVTVEFSVCkKPiAtCQlyZXR1cm4gMDsKPiAtCj4gLQlwcHNfbG9jayhp bnRlbF9kcCk7Cj4gLQo+IC0JaWYgKElTX1ZBTExFWVZJRVcoZGV2KSB8fCBJU19DSEVSUllWSUVX KGRldikpIHsKPiAtCQllbnVtIHBpcGUgcGlwZSA9IHZsdl9wb3dlcl9zZXF1ZW5jZXJfcGlwZShp bnRlbF9kcCk7Cj4gLQkJaTkxNV9yZWdfdCBwcF9jdHJsX3JlZywgcHBfZGl2X3JlZzsKPiAtCQl1 MzIgcHBfZGl2Owo+IC0KPiAtCQlwcF9jdHJsX3JlZyA9IFZMVl9QSVBFX1BQX0NPTlRST0wocGlw ZSk7Cj4gLQkJcHBfZGl2X3JlZyAgPSBWTFZfUElQRV9QUF9ESVZJU09SKHBpcGUpOwo+IC0JCXBw X2RpdiA9IEk5MTVfUkVBRChwcF9kaXZfcmVnKTsKPiAtCQlwcF9kaXYgJj0gUFBfUkVGRVJFTkNF X0RJVklERVJfTUFTSzsKPiAtCj4gLQkJLyogMHgxRiB3cml0ZSB0byBQUF9ESVZfUkVHIHNldHMg bWF4IGN5Y2xlIGRlbGF5ICovCj4gLQkJSTkxNV9XUklURShwcF9kaXZfcmVnLCBwcF9kaXYgfCAw eDFGKTsKPiAtCQlJOTE1X1dSSVRFKHBwX2N0cmxfcmVnLCBQQU5FTF9VTkxPQ0tfUkVHUyB8IFBB TkVMX1BPV0VSX09GRik7Cj4gLQkJbXNsZWVwKGludGVsX2RwLT5wYW5lbF9wb3dlcl9jeWNsZV9k ZWxheSk7Cj4gLQl9Cj4gLQo+IC0JcHBzX3VubG9jayhpbnRlbF9kcCk7Cj4gLQo+IC0JcmV0dXJu IDA7Cj4gLX0KPiAtCj4gICBzdGF0aWMgYm9vbCBlZHBfaGF2ZV9wYW5lbF9wb3dlcihzdHJ1Y3Qg aW50ZWxfZHAgKmludGVsX2RwKQo+ICAgewo+ICAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBp bnRlbF9kcF90b19kZXYoaW50ZWxfZHApOwo+IEBAIC00NTYyLDExICs0NTI0LDYgQEAgdm9pZCBp bnRlbF9kcF9lbmNvZGVyX2Rlc3Ryb3koc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQo+ICAg CQlwcHNfbG9jayhpbnRlbF9kcCk7Cj4gICAJCWVkcF9wYW5lbF92ZGRfb2ZmX3N5bmMoaW50ZWxf ZHApOwo+ICAgCQlwcHNfdW5sb2NrKGludGVsX2RwKTsKPiAtCj4gLQkJaWYgKGludGVsX2RwLT5l ZHBfbm90aWZpZXIubm90aWZpZXJfY2FsbCkgewo+IC0JCQl1bnJlZ2lzdGVyX3JlYm9vdF9ub3Rp ZmllcigmaW50ZWxfZHAtPmVkcF9ub3RpZmllcik7Cj4gLQkJCWludGVsX2RwLT5lZHBfbm90aWZp ZXIubm90aWZpZXJfY2FsbCA9IE5VTEw7Cj4gLQkJfQo+ICAgCX0KPgo+ICAgCWludGVsX2RwX2F1 eF9maW5pKGludGVsX2RwKTsKPiBAQCAtNTQ2NSw5ICs1NDIyLDYgQEAgc3RhdGljIGJvb2wgaW50 ZWxfZWRwX2luaXRfY29ubmVjdG9yKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gICAJbXV0 ZXhfdW5sb2NrKCZkZXYtPm1vZGVfY29uZmlnLm11dGV4KTsKPgo+ICAgCWlmIChJU19WQUxMRVlW SUVXKGRldikgfHwgSVNfQ0hFUlJZVklFVyhkZXYpKSB7Cj4gLQkJaW50ZWxfZHAtPmVkcF9ub3Rp Zmllci5ub3RpZmllcl9jYWxsID0gZWRwX25vdGlmeV9oYW5kbGVyOwo+IC0JCXJlZ2lzdGVyX3Jl Ym9vdF9ub3RpZmllcigmaW50ZWxfZHAtPmVkcF9ub3RpZmllcik7Cj4gLQo+ICAgCQkvKgo+ICAg CQkgKiBGaWd1cmUgb3V0IHRoZSBjdXJyZW50IHBpcGUgZm9yIHRoZSBpbml0aWFsIGJhY2tsaWdo dCBzZXR1cC4KPiAgIAkJICogSWYgdGhlIGN1cnJlbnQgcGlwZSBpc24ndCB2YWxpZCwgdHJ5IHRo ZSBQUFMgcGlwZSwgYW5kIGlmIHRoYXQKPiBAQCAtNTQ4OCw3ICs1NDQyLDggQEAgc3RhdGljIGJv b2wgaW50ZWxfZWRwX2luaXRfY29ubmVjdG9yKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4g ICAJCQkgICAgICBwaXBlX25hbWUocGlwZSkpOwo+ICAgCX0KPgo+IC0JaW50ZWxfcGFuZWxfaW5p dCgmaW50ZWxfY29ubmVjdG9yLT5wYW5lbCwgZml4ZWRfbW9kZSwgZG93bmNsb2NrX21vZGUpOwo+ ICsJaW50ZWxfcGFuZWxfaW5pdCgmaW50ZWxfY29ubmVjdG9yLT5wYW5lbCwgZml4ZWRfbW9kZSwg ZG93bmNsb2NrX21vZGUsCj4gKwkJCSBpbnRlbF9kcC0+cGFuZWxfcG93ZXJfY3ljbGVfZGVsYXkp Owo+ICAgCWludGVsX2Nvbm5lY3Rvci0+cGFuZWwuYmFja2xpZ2h0LnBvd2VyID0gaW50ZWxfZWRw X2JhY2tsaWdodF9wb3dlcjsKPiAgIAlpbnRlbF9wYW5lbF9zZXR1cF9iYWNrbGlnaHQoY29ubmVj dG9yLCBwaXBlKTsKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXggNTBjZGM4OTBk OTU2Li45MmZhNjZhMDJjYTUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IEBAIC0y MjYsNiArMjI2LDcgQEAgc3RydWN0IGludGVsX3BhbmVsIHsKPiAgIAlzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSAqZml4ZWRfbW9kZTsKPiAgIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqZG93bmNs b2NrX21vZGU7Cj4gICAJaW50IGZpdHRpbmdfbW9kZTsKPiArCWludCByZWJvb3RfcG93ZXJfY3lj bGVfZGVsYXk7Cj4KPiAgIAkvKiBiYWNrbGlnaHQgKi8KPiAgIAlzdHJ1Y3Qgewo+IEBAIC04Nzcs OCArODc4LDYgQEAgc3RydWN0IGludGVsX2RwIHsKPiAgIAl1bnNpZ25lZCBsb25nIGxhc3RfYmFj a2xpZ2h0X29mZjsKPiAgIAlrdGltZV90IHBhbmVsX3Bvd2VyX29mZl90aW1lOwo+Cj4gLQlzdHJ1 Y3Qgbm90aWZpZXJfYmxvY2sgZWRwX25vdGlmaWVyOwo+IC0KPiAgIAkvKgo+ICAgCSAqIFBpcGUg d2hvc2UgcG93ZXIgc2VxdWVuY2VyIGlzIGN1cnJlbnRseSBsb2NrZWQgaW50bwo+ICAgCSAqIHRo aXMgcG9ydC4gT25seSByZWxldmFudCBvbiBWTFYvQ0hWLgo+IEBAIC0xNTIxLDggKzE1MjAsMTAg QEAgdm9pZCBpbnRlbF9vdmVybGF5X3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdik7Cj4gICAvKiBpbnRlbF9wYW5lbC5jICovCj4gICBpbnQgaW50ZWxfcGFuZWxfaW5pdChz dHJ1Y3QgaW50ZWxfcGFuZWwgKnBhbmVsLAo+ICAgCQkgICAgIHN0cnVjdCBkcm1fZGlzcGxheV9t b2RlICpmaXhlZF9tb2RlLAo+IC0JCSAgICAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmRvd25j bG9ja19tb2RlKTsKPiArCQkgICAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpkb3duY2xvY2tf bW9kZSwKPiArCQkgICAgIGludCByZWJvb3RfcG93ZXJfY3ljbGVfZGVsYXkpOwo+ICAgdm9pZCBp bnRlbF9wYW5lbF9maW5pKHN0cnVjdCBpbnRlbF9wYW5lbCAqcGFuZWwpOwo+ICt2b2lkIGludGVs X3BhbmVsX3JlYm9vdF9ub3RpZmllcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp Owo+ICAgdm9pZCBpbnRlbF9maXhlZF9wYW5lbF9tb2RlKGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxh eV9tb2RlICpmaXhlZF9tb2RlLAo+ICAgCQkJICAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICph ZGp1c3RlZF9tb2RlKTsKPiAgIHZvaWQgaW50ZWxfcGNoX3BhbmVsX2ZpdHRpbmcoc3RydWN0IGlu dGVsX2NydGMgKmNydGMsCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RzaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMKPiBpbmRleCBkZThlOWZi NTE1OTUuLjViNzIyZWMyMzM4MSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kc2kuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jCj4gQEAg LTE1OTYsNyArMTU5Niw4IEBAIHZvaWQgaW50ZWxfZHNpX2luaXQoc3RydWN0IGRybV9kZXZpY2Ug KmRldikKPiAgIAljb25uZWN0b3ItPmRpc3BsYXlfaW5mby53aWR0aF9tbSA9IGZpeGVkX21vZGUt PndpZHRoX21tOwo+ICAgCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmhlaWdodF9tbSA9IGZpeGVk X21vZGUtPmhlaWdodF9tbTsKPgo+IC0JaW50ZWxfcGFuZWxfaW5pdCgmaW50ZWxfY29ubmVjdG9y LT5wYW5lbCwgZml4ZWRfbW9kZSwgTlVMTCk7Cj4gKwlpbnRlbF9wYW5lbF9pbml0KCZpbnRlbF9j b25uZWN0b3ItPnBhbmVsLCBmaXhlZF9tb2RlLCBOVUxMLAo+ICsJCQkgaW50ZWxfZHNpLT5wYW5l bF9wd3JfY3ljbGVfZGVsYXkpOwo+ICAgCWludGVsX3BhbmVsX3NldHVwX2JhY2tsaWdodChjb25u ZWN0b3IsIElOVkFMSURfUElQRSk7Cj4KPiAgIAlpbnRlbF9kc2lfYWRkX3Byb3BlcnRpZXMoaW50 ZWxfY29ubmVjdG9yKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHZvLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kdm8uYwo+IGluZGV4IDQ3YmRmOWRh ZDBkMy4uYzJjOWM5MjI1OTBjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2R2by5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHZvLmMKPiBAQCAt NTQ3LDcgKzU0Nyw3IEBAIHZvaWQgaW50ZWxfZHZvX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRl dikKPiAgIAkJCSAqLwo+ICAgCQkJaW50ZWxfcGFuZWxfaW5pdCgmaW50ZWxfY29ubmVjdG9yLT5w YW5lbCwKPiAgIAkJCQkJIGludGVsX2R2b19nZXRfY3VycmVudF9tb2RlKGNvbm5lY3RvciksCj4g LQkJCQkJIE5VTEwpOwo+ICsJCQkJCSBOVUxMLCAwKTsKPiAgIAkJCWludGVsX2R2by0+cGFuZWxf d2FudHNfZGl0aGVyID0gdHJ1ZTsKPiAgIAkJfQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2x2ZHMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2x2ZHMu Ywo+IGluZGV4IDQ5NTUwNDcwNDgzZS4uMDdkN2FjMmMxNTIwIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2x2ZHMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2x2ZHMuYwo+IEBAIC0xMTIwLDcgKzExMjAsOCBAQCB2b2lkIGludGVsX2x2ZHNfaW5p dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAgb3V0Ogo+ICAgCW11dGV4X3VubG9jaygmZGV2 LT5tb2RlX2NvbmZpZy5tdXRleCk7Cj4KPiAtCWludGVsX3BhbmVsX2luaXQoJmludGVsX2Nvbm5l Y3Rvci0+cGFuZWwsIGZpeGVkX21vZGUsIGRvd25jbG9ja19tb2RlKTsKPiArCS8qIEZJWE1FIGZp bGwgaW4gYW4gYWNjdXJhdGUgcG93ZXIgY3ljbGUgZGVsYXkgKi8KPiArCWludGVsX3BhbmVsX2lu aXQoJmludGVsX2Nvbm5lY3Rvci0+cGFuZWwsIGZpeGVkX21vZGUsIGRvd25jbG9ja19tb2RlLCAw KTsKPiAgIAlpbnRlbF9wYW5lbF9zZXR1cF9iYWNrbGlnaHQoY29ubmVjdG9yLCBJTlZBTElEX1BJ UEUpOwo+Cj4gICAJbHZkc19lbmNvZGVyLT5pc19kdWFsX2xpbmsgPSBjb21wdXRlX2lzX2R1YWxf bGlua19sdmRzKGx2ZHNfZW5jb2Rlcik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3BhbmVsLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jCj4g aW5kZXggOTZjNjVkNzdlODg2Li5mZTU3YTc0M2FkMjEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3BhbmVsLmMKPiBAQCAtMTc4MSwxNCArMTc4MSw0MSBAQCBpbnRlbF9wYW5lbF9pbml0X2Jh Y2tsaWdodF9mdW5jcyhzdHJ1Y3QgaW50ZWxfcGFuZWwgKnBhbmVsKQo+ICAgCX0KPiAgIH0KPgo+ ICsvKgo+ICsgKiBNYWtlIHN1cmUgdGhlIHBvd2VyIGN5Y2xlIGRlbGF5IGlzIHJlc3BlY3RlZC4g VGhlIFBQUwo+ICsgKiBkb2VzIHN1cHBvc2VkbHkgaW5pdGlhdGUgYSBwb3dlciBjeWNsZSBvbiBy ZXNldCwgYnV0IGl0Cj4gKyAqIGFsc28gcmVzZXRzIHRoZSBwb3dlciBjeWNsZSBkZWxheSByZWdp c3RlciB2YWx1ZSB0byB0aGUKPiArICogZGVmYXVsdCB2YWx1ZSwgYW5kIGhlbmNlIG1heSBub3Qg d2FpdCBsb25nIGVub3VnaCBpZiB0aGUKPiArICogZmlybXdhcmUgYXR0ZW1wdHMgdG8gcG93ZXIg dXAgdGhlIHBhbmVsIGltbWVkaWF0ZWx5Lgo+ICsgKiBBbHNvIGVnLiBEU0kgZG9lc24ndCB1c2Ug dGhlIFBQUy4KPiArICovCj4gK3ZvaWQgaW50ZWxfcGFuZWxfcmVib290X25vdGlmaWVyKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiArewo+ICsJc3RydWN0IGRybV9kZXZpY2Ug KmRldiA9ICZkZXZfcHJpdi0+ZHJtOwo+ICsJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVj dG9yOwo+ICsJaW50IHJlYm9vdF9wb3dlcl9jeWNsZV9kZWxheSA9IDA7Cj4gKwo+ICsJZm9yX2Vh Y2hfaW50ZWxfY29ubmVjdG9yKGRldiwgY29ubmVjdG9yKSB7Cj4gKwkJc3RydWN0IGludGVsX3Bh bmVsICpwYW5lbCA9ICZjb25uZWN0b3ItPnBhbmVsOwo+ICsKPiArCQlyZWJvb3RfcG93ZXJfY3lj bGVfZGVsYXkgPSBtYXgocmVib290X3Bvd2VyX2N5Y2xlX2RlbGF5LAo+ICsJCQkJCSAgICAgICBw YW5lbC0+cmVib290X3Bvd2VyX2N5Y2xlX2RlbGF5KTsKPiArCX0KPiArCj4gKwlpZiAocmVib290 X3Bvd2VyX2N5Y2xlX2RlbGF5KQo+ICsJCW1zbGVlcChyZWJvb3RfcG93ZXJfY3ljbGVfZGVsYXkp Owo+ICt9Cj4gKwo+ICAgaW50IGludGVsX3BhbmVsX2luaXQoc3RydWN0IGludGVsX3BhbmVsICpw YW5lbCwKPiAgIAkJICAgICBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqZml4ZWRfbW9kZSwKPiAt CQkgICAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpkb3duY2xvY2tfbW9kZSkKPiArCQkgICAg IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpkb3duY2xvY2tfbW9kZSwKPiArCQkgICAgIGludCBy ZWJvb3RfcG93ZXJfY3ljbGVfZGVsYXkpCj4gICB7Cj4gICAJaW50ZWxfcGFuZWxfaW5pdF9iYWNr bGlnaHRfZnVuY3MocGFuZWwpOwo+Cj4gICAJcGFuZWwtPmZpeGVkX21vZGUgPSBmaXhlZF9tb2Rl Owo+ICAgCXBhbmVsLT5kb3duY2xvY2tfbW9kZSA9IGRvd25jbG9ja19tb2RlOwo+ICsJcGFuZWwt PnJlYm9vdF9wb3dlcl9jeWNsZV9kZWxheSA9IHJlYm9vdF9wb3dlcl9jeWNsZV9kZWxheTsKPgo+ ICAgCXJldHVybiAwOwo+ICAgfQo+CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pbnRlbC1nZngK