From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: Re: [PATCH 7/8] drm/i915: Defer enabling rc6 til after we submit the first batch/context Date: Thu, 14 Jul 2016 16:56:50 +0300 Message-ID: <87shvcpbkt.fsf@gaia.fi.intel.com> References: <1468397438-21226-1-git-send-email-chris@chris-wilson.co.uk> <1468397438-21226-7-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTP id 363616E8A0 for ; Thu, 14 Jul 2016 13:57:29 +0000 (UTC) In-Reply-To: <1468397438-21226-7-git-send-email-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+IHdyaXRlczoKCj4gU29tZSBo YXJkd2FyZSByZXF1aXJlcyBhIHZhbGlkIHJlbmRlciBjb250ZXh0IGJlZm9yZSBpdCBjYW4gaW5p dGlhdGUKPiByYzYgcG93ZXIgZ2F0aW5nIG9mIHRoZSBHUFU7IHRoZSBkZWZhdWx0IHN0YXRlIG9m IHRoZSBHUFUgaXMgbm90Cj4gc3VmZmljaWVudCBhbmQgbWF5IGxlYWQgdG8gdW5kZWZpbmVkIGJl aGF2aW91ci4gVGhlIGZpcnN0IGV4ZWN1dGlvbiBvZgo+IGFueSBiYXRjaCB3aWxsIGxvYWQgdGhl ICJnb2xkZW4gcmVuZGVyIHN0YXRlIiwgYXQgd2hpY2ggcG9pbnQgaXQgaXMgc2FmZQo+IHRvIGVu YWJsZSByYzYuIEFzIHdlIGRvIG5vdCBmb3JjaWJseSBsb2FkIHRoZSBrZXJuZWwgY29udGV4dCBh dCByZXN1bWUsCj4gd2UgaGF2ZSB0byBob29rIGludG8gdGhlIGJhdGNoIHN1Ym1pc3Npb24gdG8g YmUgc3VyZSB0aGF0IHRoZSByZW5kZXIKPiBzdGF0ZSBpcyBzZXR1cCBiZWZvcmUgZW5hYmxpbmcg cmM2Lgo+Cj4gSG93ZXZlciwgc2luY2Ugd2UgZG9uJ3QgZW5hYmxlIHBvd2Vyc2F2aW5nIHVudGls IHRoYXQgZmlyc3QgYmF0Y2gsIHdlCj4gcXVldWVkIGEgZGVsYXllZCB0YXNrIGluIG9yZGVyIHRv IGd1YXJhbnRlZSB0aGF0IHRoZSBiYXRjaCBpcyBpbmRlZWQKPiBzdWJtaXR0ZWQuCj4KPiB2Mjog UmVhcnJhbmdlIGludGVsX2Rpc2FibGVfZ3RfcG93ZXJzYXZlKCkgdG8gbWF0Y2guCj4gdjM6IEFw cGx5IHVzZXIgc3BlY2lmaWVkIGN1cl9mcmVxIChvciBpZGxlX2ZyZXEgaWYgbm90IHNldCkuCj4g djQ6IEdpdmUgaW4sIGFuZCBzdXBwbHkgYSBkZWxheWVkIHdvcmsgdG8gYXV0b2VuYWJsZSByYzYK PiB2NTogTWlrYSBzdWdnZXN0ZWQgYSBjb3VwbGUgb2YgYmV0dGVyIG5hbWVzIGZvciBkZWxheWVk X3Jlc3VtZV93b3JrCj4gdjY6IFJlYmFsYW5jZSBycG1fcHV0IGFyb3VuZCB0aGUgYXV0b2VuYWJs ZSB0YXNrCj4KPiBTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNv bi5jby51az4KPiBDYzogTWlrYSBLdW9wcGFsYSA8bWlrYS5rdW9wcGFsYUBpbnRlbC5jb20+Cj4g Q2M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+CgpUYSBm b3Igc3BsaXR0aW5nIHN0dWZmIG91dCBmcm9tIHRoaXMgcGF0Y2goc2V0KSB0byBzbWFsbGVyCmJp dHMuIEkgdGhpbmsgaXQncyBhbGwgZG9uZSBub3cuCgpSZXZpZXdlZC1ieTogTWlrYSBLdW9wcGFs YSA8bWlrYS5rdW9wcGFsYUBpbnRlbC5jb20KCj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmMgICAgICB8ICAxMSArLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaCAgICAgIHwgICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAg ICB8ICAgMyArCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8ICAgMSAt Cj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICB8ICAgMyArLQo+ICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jICAgICAgfCAxMzYgKysrKysrKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMg IHwgICAyICstCj4gIDcgZmlsZXMgY2hhbmdlZCwgOTQgaW5zZXJ0aW9ucygrKSwgNjQgZGVsZXRp b25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiBpbmRleCBiOWE4MTE3NTBjYTguLmM2 Y2MwMWZhYWEzNiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+IEBAIC0xMzQzLDcgKzEz NDMsNyBAQCB2b2lkIGk5MTVfZHJpdmVyX3VubG9hZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ ICAJaTkxNV9kZXN0cm95X2Vycm9yX3N0YXRlKGRldik7Cj4gIAo+ICAJLyogRmx1c2ggYW55IG91 dHN0YW5kaW5nIHVucGluX3dvcmsuICovCj4gLQlmbHVzaF93b3JrcXVldWUoZGV2X3ByaXYtPndx KTsKPiArCWRyYWluX3dvcmtxdWV1ZShkZXZfcHJpdi0+d3EpOwo+ICAKPiAgCWludGVsX2d1Y19m aW5pKGRldik7Cj4gIAlpOTE1X2dlbV9maW5pKGRldik7Cj4gQEAgLTE0NTgsOCArMTQ1OCw2IEBA IHN0YXRpYyBpbnQgaTkxNV9kcm1fc3VzcGVuZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAK PiAgCWludGVsX2d1Y19zdXNwZW5kKGRldik7Cj4gIAo+IC0JaW50ZWxfc3VzcGVuZF9ndF9wb3dl cnNhdmUoZGV2X3ByaXYpOwo+IC0KPiAgCWludGVsX2Rpc3BsYXlfc3VzcGVuZChkZXYpOwo+ICAK PiAgCWludGVsX2RwX21zdF9zdXNwZW5kKGRldik7Cj4gQEAgLTE2NTIsNiArMTY1MCw3IEBAIHN0 YXRpYyBpbnQgaTkxNV9kcm1fcmVzdW1lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAo+ICAJ aW50ZWxfb3ByZWdpb25fbm90aWZ5X2FkYXB0ZXIoZGV2X3ByaXYsIFBDSV9EMCk7Cj4gIAo+ICsJ aW50ZWxfYXV0b2VuYWJsZV9ndF9wb3dlcnNhdmUoZGV2X3ByaXYpOwo+ICAJZHJtX2ttc19oZWxw ZXJfcG9sbF9lbmFibGUoZGV2KTsKPiAgCj4gIAllbmFibGVfcnBtX3dha2VyZWZfYXNzZXJ0cyhk ZXZfcHJpdik7Cj4gQEAgLTE3NzgsOCArMTc3Nyw2IEBAIGludCBpOTE1X3Jlc2V0KHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCXVuc2lnbmVkIHJlc2V0X2NvdW50ZXI7Cj4g IAlpbnQgcmV0Owo+ICAKPiAtCWludGVsX3Jlc2V0X2d0X3Bvd2Vyc2F2ZShkZXZfcHJpdik7Cj4g LQo+ICAJbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+ICAKPiAgCS8qIENsZWFyIGFu eSBwcmV2aW91cyBmYWlsZWQgYXR0ZW1wdHMgYXQgcmVjb3ZlcnkuIFRpbWUgdG8gdHJ5IGFnYWlu LiAqLwo+IEBAIC0xODM1LDggKzE4MzIsNyBAQCBpbnQgaTkxNV9yZXNldChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAkgKiBwcmV2aW91cyBjb25jZXJucyB0aGF0IGl0IGRv ZXNuJ3QgcmVzcG9uZCB3ZWxsIHRvIHNvbWUgZm9ybXMKPiAgCSAqIG9mIHJlLWluaXQgYWZ0ZXIg cmVzZXQuCj4gIAkgKi8KPiAtCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+IDUpCj4gLQkJaW50 ZWxfZW5hYmxlX2d0X3Bvd2Vyc2F2ZShkZXZfcHJpdik7Cj4gKwlpbnRlbF9hdXRvZW5hYmxlX2d0 X3Bvd2Vyc2F2ZShkZXZfcHJpdik7Cj4gIAo+ICAJcmV0dXJuIDA7Cj4gIAo+IEBAIC0yNDU5LDcg KzI0NTUsNiBAQCBzdGF0aWMgaW50IGludGVsX3J1bnRpbWVfcmVzdW1lKHN0cnVjdCBkZXZpY2Ug KmRldmljZSkKPiAgCSAqIHdlIGNhbiBkbyBpcyB0byBob3BlIHRoYXQgdGhpbmdzIHdpbGwgc3Rp bGwgd29yayAoYW5kIGRpc2FibGUgUlBNKS4KPiAgCSAqLwo+ICAJaTkxNV9nZW1faW5pdF9zd2l6 emxpbmcoZGV2KTsKPiAtCWdlbjZfdXBkYXRlX3JpbmdfZnJlcShkZXZfcHJpdik7Cj4gIAo+ICAJ aW50ZWxfcnVudGltZV9wbV9lbmFibGVfaW50ZXJydXB0cyhkZXZfcHJpdik7Cj4gIAo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaAo+IGluZGV4IGZlODUyMzUzNjdiZS4uMWZkY2EzYmI3ZjMzIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gQEAgLTExODgsNyArMTE4OCw3IEBAIHN0cnVjdCBp bnRlbF9nZW42X3Bvd2VyX21nbXQgewo+ICAJYm9vbCBjbGllbnRfYm9vc3Q7Cj4gIAo+ICAJYm9v bCBlbmFibGVkOwo+IC0Jc3RydWN0IGRlbGF5ZWRfd29yayBkZWxheWVkX3Jlc3VtZV93b3JrOwo+ ICsJc3RydWN0IGRlbGF5ZWRfd29yayBhdXRvZW5hYmxlX3dvcms7Cj4gIAl1bnNpZ25lZCBib29z dHM7Cj4gIAo+ICAJc3RydWN0IGludGVsX3Jwc19jbGllbnQgc2VtYXBob3JlcywgbW1pb2ZsaXBz Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+IGluZGV4IDlkOGMyNmY0MmRlZS4uNjdjM2JmZmI3 MDBkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gQEAgLTI4NDIsNiArMjg0Miw3IEBA IHN0YXRpYyB2b2lkIGk5MTVfZ2VtX21hcmtfYnVzeShjb25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmUpCj4gIAlpbnRlbF9ydW50aW1lX3BtX2dldF9ub3Jlc3VtZShkZXZfcHJpdik7 Cj4gIAlkZXZfcHJpdi0+Z3QuYXdha2UgPSB0cnVlOwo+ICAKPiArCWludGVsX2VuYWJsZV9ndF9w b3dlcnNhdmUoZGV2X3ByaXYpOwo+ICAJaTkxNV91cGRhdGVfZ2Z4X3ZhbChkZXZfcHJpdik7Cj4g IAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA2KQo+ICAJCWdlbjZfcnBzX2J1c3koZGV2X3By aXYpOwo+IEBAIC00OTgwLDYgKzQ5ODEsOCBAQCBpOTE1X2dlbV9zdXNwZW5kKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpCj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGRldik7Cj4gIAlpbnQgcmV0ID0gMDsKPiAgCj4gKwlpbnRlbF9zdXNwZW5kX2d0X3Bvd2Vy c2F2ZShkZXZfcHJpdik7Cj4gKwo+ICAJbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+ ICAJcmV0ID0gaTkxNV9nZW1fd2FpdF9mb3JfaWRsZShkZXZfcHJpdik7Cj4gIAlpZiAocmV0KQo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRleCBiZTNiMmNhYjI2NDAuLjg4 NTg5YjViZGUyNSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBAQCAt MTU0NTYsNyArMTU0NTYsNiBAQCB2b2lkIGludGVsX21vZGVzZXRfaW5pdF9odyhzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KQo+ICAJZGV2X3ByaXYtPmF0b21pY19jZGNsa19mcmVxID0gZGV2X3ByaXYt PmNkY2xrX2ZyZXE7Cj4gIAo+ICAJaW50ZWxfaW5pdF9jbG9ja19nYXRpbmcoZGV2KTsKPiAtCWlu dGVsX2VuYWJsZV9ndF9wb3dlcnNhdmUoZGV2X3ByaXYpOwo+ICB9Cj4gIAo+ICAvKgo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXggNmM4NDg1YzNhNDRmLi5jMDM2ZGZkZmZlMGQgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IEBAIC0xNjkwLDEwICsxNjkwLDExIEBAIHZv aWQgaW50ZWxfZ3B1X2lwc19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7 Cj4gIHZvaWQgaW50ZWxfZ3B1X2lwc190ZWFyZG93bih2b2lkKTsKPiAgdm9pZCBpbnRlbF9pbml0 X2d0X3Bvd2Vyc2F2ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ICB2b2lk IGludGVsX2NsZWFudXBfZ3RfcG93ZXJzYXZlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdik7Cj4gK3ZvaWQgaW50ZWxfc2FuaXRpemVfZ3RfcG93ZXJzYXZlKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdik7Cj4gIHZvaWQgaW50ZWxfZW5hYmxlX2d0X3Bvd2Vyc2F2ZShz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ICt2b2lkIGludGVsX2F1dG9lbmFi bGVfZ3RfcG93ZXJzYXZlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gIHZv aWQgaW50ZWxfZGlzYWJsZV9ndF9wb3dlcnNhdmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KTsKPiAgdm9pZCBpbnRlbF9zdXNwZW5kX2d0X3Bvd2Vyc2F2ZShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+IC12b2lkIGludGVsX3Jlc2V0X2d0X3Bvd2Vyc2F2ZShz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ICB2b2lkIGdlbjZfdXBkYXRlX3Jp bmdfZnJlcShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ICB2b2lkIGdlbjZf cnBzX2J1c3koc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiAgdm9pZCBnZW42 X3Jwc19yZXNldF9laShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcG0uYwo+IGluZGV4IGFhYjFlMGI1ZDJlYi4uYzc3ZWMxMDZhOTNjIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4gQEAgLTY1MzYsNiArNjUzNiw4IEBAIHZvaWQgaW50 ZWxfaW5pdF9ndF9wb3dlcnNhdmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ ICAJZGV2X3ByaXYtPnJwcy5ib29zdF9mcmVxID0gZGV2X3ByaXYtPnJwcy5tYXhfZnJlcTsKPiAg Cj4gIAltdXRleF91bmxvY2soJmRldl9wcml2LT5ycHMuaHdfbG9jayk7Cj4gKwo+ICsJaW50ZWxf YXV0b2VuYWJsZV9ndF9wb3dlcnNhdmUoZGV2X3ByaXYpOwo+ICB9Cj4gIAo+ICB2b2lkIGludGVs X2NsZWFudXBfZ3RfcG93ZXJzYXZlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK PiBAQCAtNjU0OSwxMyArNjU1MSw2IEBAIHZvaWQgaW50ZWxfY2xlYW51cF9ndF9wb3dlcnNhdmUo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAJCWludGVsX3J1bnRpbWVfcG1f cHV0KGRldl9wcml2KTsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgZ2VuNl9zdXNwZW5kX3Jwcyhz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gLXsKPiAtCWZsdXNoX2RlbGF5ZWRf d29yaygmZGV2X3ByaXYtPnJwcy5kZWxheWVkX3Jlc3VtZV93b3JrKTsKPiAtCj4gLQlnZW42X2Rp c2FibGVfcnBzX2ludGVycnVwdHMoZGV2X3ByaXYpOwo+IC19Cj4gLQo+ICAvKioKPiAgICogaW50 ZWxfc3VzcGVuZF9ndF9wb3dlcnNhdmUgLSBzdXNwZW5kIFBNIHdvcmsgYW5kIGhlbHBlciB0aHJl YWRzCj4gICAqIEBkZXZfcHJpdjogaTkxNSBkZXZpY2UKPiBAQCAtNjU2OSw1MCArNjU2NCw2MyBA QCB2b2lkIGludGVsX3N1c3BlbmRfZ3RfcG93ZXJzYXZlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKPiAgCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgNikKPiAgCQlyZXR1cm47 Cj4gIAo+IC0JZ2VuNl9zdXNwZW5kX3JwcyhkZXZfcHJpdik7Cj4gKwlpZiAoY2FuY2VsX2RlbGF5 ZWRfd29ya19zeW5jKCZkZXZfcHJpdi0+cnBzLmF1dG9lbmFibGVfd29yaykpCj4gKwkJaW50ZWxf cnVudGltZV9wbV9wdXQoZGV2X3ByaXYpOwo+ICAKPiAtCS8qIEZvcmNlIEdQVSB0byBtaW4gZnJl cSBkdXJpbmcgc3VzcGVuZCAqLwo+IC0JZ2VuNl9ycHNfaWRsZShkZXZfcHJpdik7Cj4gKwkvKiBn ZW42X3Jwc19pZGxlKCkgd2lsbCBiZSBjYWxsZWQgbGF0ZXIgdG8gZGlzYWJsZSBpbnRlcnJ1cHRz ICovCj4gK30KPiArCj4gK3ZvaWQgaW50ZWxfc2FuaXRpemVfZ3RfcG93ZXJzYXZlKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiArewo+ICsJZGV2X3ByaXYtPnJwcy5lbmFibGVk ID0gdHJ1ZTsgLyogZm9yY2UgZGlzYWJsaW5nICovCj4gKwlpbnRlbF9kaXNhYmxlX2d0X3Bvd2Vy c2F2ZShkZXZfcHJpdik7Cj4gKwo+ICsJZ2VuNl9yZXNldF9ycHNfaW50ZXJydXB0cyhkZXZfcHJp dik7Cj4gIH0KPiAgCj4gIHZvaWQgaW50ZWxfZGlzYWJsZV9ndF9wb3dlcnNhdmUoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICB7Cj4gLQlpZiAoSVNfSVJPTkxBS0VfTShkZXZf cHJpdikpIHsKPiAtCQlpcm9ubGFrZV9kaXNhYmxlX2RycHMoZGV2X3ByaXYpOwo+IC0JfSBlbHNl IGlmIChJTlRFTF9JTkZPKGRldl9wcml2KS0+Z2VuID49IDYpIHsKPiAtCQlpbnRlbF9zdXNwZW5k X2d0X3Bvd2Vyc2F2ZShkZXZfcHJpdik7Cj4gKwlpZiAoIVJFQURfT05DRShkZXZfcHJpdi0+cnBz LmVuYWJsZWQpKQo+ICsJCXJldHVybjsKPiAgCj4gLQkJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPnJw cy5od19sb2NrKTsKPiAtCQlpZiAoSU5URUxfSU5GTyhkZXZfcHJpdiktPmdlbiA+PSA5KSB7Cj4g LQkJCWdlbjlfZGlzYWJsZV9yYzYoZGV2X3ByaXYpOwo+IC0JCQlnZW45X2Rpc2FibGVfcnBzKGRl dl9wcml2KTsKPiAtCQl9IGVsc2UgaWYgKElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQo+IC0JCQlj aGVycnl2aWV3X2Rpc2FibGVfcnBzKGRldl9wcml2KTsKPiAtCQllbHNlIGlmIChJU19WQUxMRVlW SUVXKGRldl9wcml2KSkKPiAtCQkJdmFsbGV5dmlld19kaXNhYmxlX3JwcyhkZXZfcHJpdik7Cj4g LQkJZWxzZQo+IC0JCQlnZW42X2Rpc2FibGVfcnBzKGRldl9wcml2KTsKPiArCW11dGV4X2xvY2so JmRldl9wcml2LT5ycHMuaHdfbG9jayk7Cj4gIAo+IC0JCWRldl9wcml2LT5ycHMuZW5hYmxlZCA9 IGZhbHNlOwo+IC0JCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPnJwcy5od19sb2NrKTsKPiArCWlm IChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkpIHsKPiArCQlnZW45X2Rpc2FibGVfcmM2KGRldl9w cml2KTsKPiArCQlnZW45X2Rpc2FibGVfcnBzKGRldl9wcml2KTsKPiArCX0gZWxzZSBpZiAoSVNf Q0hFUlJZVklFVyhkZXZfcHJpdikpIHsKPiArCQljaGVycnl2aWV3X2Rpc2FibGVfcnBzKGRldl9w cml2KTsKPiArCX0gZWxzZSBpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikpIHsKPiArCQl2YWxs ZXl2aWV3X2Rpc2FibGVfcnBzKGRldl9wcml2KTsKPiArCX0gZWxzZSBpZiAoSU5URUxfR0VOKGRl dl9wcml2KSA+PSA2KSB7Cj4gKwkJZ2VuNl9kaXNhYmxlX3JwcyhkZXZfcHJpdik7Cj4gKwl9ICBl bHNlIGlmIChJU19JUk9OTEFLRV9NKGRldl9wcml2KSkgewo+ICsJCWlyb25sYWtlX2Rpc2FibGVf ZHJwcyhkZXZfcHJpdik7Cj4gIAl9Cj4gKwo+ICsJZGV2X3ByaXYtPnJwcy5lbmFibGVkID0gZmFs c2U7Cj4gKwltdXRleF91bmxvY2soJmRldl9wcml2LT5ycHMuaHdfbG9jayk7Cj4gIH0KPiAgCj4g LXN0YXRpYyB2b2lkIGludGVsX2dlbjZfcG93ZXJzYXZlX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0 ICp3b3JrKQo+ICt2b2lkIGludGVsX2VuYWJsZV9ndF9wb3dlcnNhdmUoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPQo+IC0JCWNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSwK PiAtCQkJICAgICBycHMuZGVsYXllZF9yZXN1bWVfd29yay53b3JrKTsKPiArCS8qIFdlIHNob3Vs ZG4ndCBiZSBkaXNhYmxpbmcgYXMgd2Ugc3VibWl0LCBzbyB0aGlzIHNob3VsZCBiZSBsZXNzCj4g KwkgKiByYWN5IHRoYW4gaXQgYXBwZWFycyEKPiArCSAqLwo+ICsJaWYgKFJFQURfT05DRShkZXZf cHJpdi0+cnBzLmVuYWJsZWQpKQo+ICsJCXJldHVybjsKPiAgCj4gLQltdXRleF9sb2NrKCZkZXZf cHJpdi0+cnBzLmh3X2xvY2spOwo+ICsJLyogUG93ZXJzYXZpbmcgaXMgY29udHJvbGxlZCBieSB0 aGUgaG9zdCB3aGVuIGluc2lkZSBhIFZNICovCj4gKwlpZiAoaW50ZWxfdmdwdV9hY3RpdmUoZGV2 X3ByaXYpKQo+ICsJCXJldHVybjsKPiAgCj4gLQlnZW42X3Jlc2V0X3Jwc19pbnRlcnJ1cHRzKGRl dl9wcml2KTsKPiArCW11dGV4X2xvY2soJmRldl9wcml2LT5ycHMuaHdfbG9jayk7Cj4gIAo+ICAJ aWYgKElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKSB7Cj4gIAkJY2hlcnJ5dmlld19lbmFibGVfcnBz KGRldl9wcml2KTsKPiAgCX0gZWxzZSBpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikpIHsKPiAg CQl2YWxsZXl2aWV3X2VuYWJsZV9ycHMoZGV2X3ByaXYpOwo+IC0JfSBlbHNlIGlmIChJTlRFTF9J TkZPKGRldl9wcml2KS0+Z2VuID49IDkpIHsKPiArCX0gZWxzZSBpZiAoSU5URUxfR0VOKGRldl9w cml2KSA+PSA5KSB7Cj4gIAkJZ2VuOV9lbmFibGVfcmM2KGRldl9wcml2KTsKPiAgCQlnZW45X2Vu YWJsZV9ycHMoZGV2X3ByaXYpOwo+ICAJCWlmIChJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJU19L QUJZTEFLRShkZXZfcHJpdikpCj4gQEAgLTY2MjAsOSArNjYyOCwxMiBAQCBzdGF0aWMgdm9pZCBp bnRlbF9nZW42X3Bvd2Vyc2F2ZV93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPiAgCX0g ZWxzZSBpZiAoSVNfQlJPQURXRUxMKGRldl9wcml2KSkgewo+ICAJCWdlbjhfZW5hYmxlX3Jwcyhk ZXZfcHJpdik7Cj4gIAkJX19nZW42X3VwZGF0ZV9yaW5nX2ZyZXEoZGV2X3ByaXYpOwo+IC0JfSBl bHNlIHsKPiArCX0gZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA2KSB7Cj4gIAkJZ2Vu Nl9lbmFibGVfcnBzKGRldl9wcml2KTsKPiAgCQlfX2dlbjZfdXBkYXRlX3JpbmdfZnJlcShkZXZf cHJpdik7Cj4gKwl9IGVsc2UgaWYgKElTX0lST05MQUtFX00oZGV2X3ByaXYpKSB7Cj4gKwkJaXJv bmxha2VfZW5hYmxlX2RycHMoZGV2X3ByaXYpOwo+ICsJCWludGVsX2luaXRfZW1vbihkZXZfcHJp dik7Cj4gIAl9Cj4gIAo+ICAJV0FSTl9PTihkZXZfcHJpdi0+cnBzLm1heF9mcmVxIDwgZGV2X3By aXYtPnJwcy5taW5fZnJlcSk7Cj4gQEAgLTY2MzIsMTggKzY2NDMsNDcgQEAgc3RhdGljIHZvaWQg aW50ZWxfZ2VuNl9wb3dlcnNhdmVfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCj4gIAlX QVJOX09OKGRldl9wcml2LT5ycHMuZWZmaWNpZW50X2ZyZXEgPiBkZXZfcHJpdi0+cnBzLm1heF9m cmVxKTsKPiAgCj4gIAlkZXZfcHJpdi0+cnBzLmVuYWJsZWQgPSB0cnVlOwo+ICsJbXV0ZXhfdW5s b2NrKCZkZXZfcHJpdi0+cnBzLmh3X2xvY2spOwo+ICt9Cj4gIAo+IC0JZ2VuNl9lbmFibGVfcnBz X2ludGVycnVwdHMoZGV2X3ByaXYpOwo+ICtzdGF0aWMgdm9pZCBfX2ludGVsX2F1dG9lbmFibGVf Z3RfcG93ZXJzYXZlKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPiArewo+ICsJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0KPiArCQljb250YWluZXJfb2Yod29yaywgdHlwZW9m KCpkZXZfcHJpdiksIHJwcy5hdXRvZW5hYmxlX3dvcmsud29yayk7Cj4gKwlzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICpyY3M7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcTsKPiAg Cj4gLQltdXRleF91bmxvY2soJmRldl9wcml2LT5ycHMuaHdfbG9jayk7Cj4gKwlpZiAoUkVBRF9P TkNFKGRldl9wcml2LT5ycHMuZW5hYmxlZCkpCj4gKwkJZ290byBvdXQ7Cj4gKwo+ICsJcmNzID0g JmRldl9wcml2LT5lbmdpbmVbUkNTXTsKPiArCWlmIChyY3MtPmxhc3RfY29udGV4dCkKPiArCQln b3RvIG91dDsKPiArCj4gKwlpZiAoIXJjcy0+aW5pdF9jb250ZXh0KQo+ICsJCWdvdG8gb3V0Owo+ ICAKPiArCW11dGV4X2xvY2soJmRldl9wcml2LT5kcm0uc3RydWN0X211dGV4KTsKPiArCj4gKwly ZXEgPSBpOTE1X2dlbV9yZXF1ZXN0X2FsbG9jKHJjcywgZGV2X3ByaXYtPmtlcm5lbF9jb250ZXh0 KTsKPiArCWlmIChJU19FUlIocmVxKSkKPiArCQlnb3RvIHVubG9jazsKPiArCj4gKwlpZiAoIWk5 MTUuZW5hYmxlX2V4ZWNsaXN0cyAmJiBpOTE1X3N3aXRjaF9jb250ZXh0KHJlcSkgPT0gMCkKPiAr CQlyY3MtPmluaXRfY29udGV4dChyZXEpOwo+ICsKPiArCS8qIE1hcmsgdGhlIGRldmljZSBidXN5 LCBjYWxsaW5nIGludGVsX2VuYWJsZV9ndF9wb3dlcnNhdmUoKSAqLwo+ICsJaTkxNV9hZGRfcmVx dWVzdF9ub19mbHVzaChyZXEpOwo+ICsKPiArdW5sb2NrOgo+ICsJbXV0ZXhfdW5sb2NrKCZkZXZf cHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7Cj4gK291dDoKPiAgCWludGVsX3J1bnRpbWVfcG1fcHV0 KGRldl9wcml2KTsKPiAgfQo+ICAKPiAtdm9pZCBpbnRlbF9lbmFibGVfZ3RfcG93ZXJzYXZlKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiArdm9pZCBpbnRlbF9hdXRvZW5hYmxl X2d0X3Bvd2Vyc2F2ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIHsKPiAt CS8qIFBvd2Vyc2F2aW5nIGlzIGNvbnRyb2xsZWQgYnkgdGhlIGhvc3Qgd2hlbiBpbnNpZGUgYSBW TSAqLwo+IC0JaWYgKGludGVsX3ZncHVfYWN0aXZlKGRldl9wcml2KSkKPiArCWlmIChSRUFEX09O Q0UoZGV2X3ByaXYtPnJwcy5lbmFibGVkKSkKPiAgCQlyZXR1cm47Cj4gIAo+ICAJaWYgKElTX0lS T05MQUtFX00oZGV2X3ByaXYpKSB7Cj4gQEAgLTY2NjQsMjEgKzY3MDQsMTMgQEAgdm9pZCBpbnRl bF9lbmFibGVfZ3RfcG93ZXJzYXZlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK PiAgCQkgKiBwYXRocywgc28gdGhlIF9ub3Jlc3VtZSB2ZXJzaW9uIGlzIGVub3VnaCAoYW5kIGlu IGNhc2Ugb2YKPiAgCQkgKiBydW50aW1lIHJlc3VtZSBpdCdzIG5lY2Vzc2FyeSkuCj4gIAkJICov Cj4gLQkJaWYgKHNjaGVkdWxlX2RlbGF5ZWRfd29yaygmZGV2X3ByaXYtPnJwcy5kZWxheWVkX3Jl c3VtZV93b3JrLAo+IC0JCQkJCSAgIHJvdW5kX2ppZmZpZXNfdXBfcmVsYXRpdmUoSFopKSkKPiAr CQlpZiAocXVldWVfZGVsYXllZF93b3JrKGRldl9wcml2LT53cSwKPiArCQkJCSAgICAgICAmZGV2 X3ByaXYtPnJwcy5hdXRvZW5hYmxlX3dvcmssCj4gKwkJCQkgICAgICAgcm91bmRfamlmZmllc191 cF9yZWxhdGl2ZShIWikpKQo+ICAJCQlpbnRlbF9ydW50aW1lX3BtX2dldF9ub3Jlc3VtZShkZXZf cHJpdik7Cj4gIAl9Cj4gIH0KPiAgCj4gLXZvaWQgaW50ZWxfcmVzZXRfZ3RfcG93ZXJzYXZlKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAtewo+IC0JaWYgKElOVEVMX0lORk8o ZGV2X3ByaXYpLT5nZW4gPCA2KQo+IC0JCXJldHVybjsKPiAtCj4gLQlnZW42X3N1c3BlbmRfcnBz KGRldl9wcml2KTsKPiAtCWRldl9wcml2LT5ycHMuZW5hYmxlZCA9IGZhbHNlOwo+IC19Cj4gLQo+ ICBzdGF0aWMgdm9pZCBpYnhfaW5pdF9jbG9ja19nYXRpbmcoc3RydWN0IGRybV9kZXZpY2UgKmRl dikKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShk ZXYpOwo+IEBAIC03Nzg1LDggKzc4MTcsOCBAQCB2b2lkIGludGVsX3BtX3NldHVwKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpCj4gIAltdXRleF9pbml0KCZkZXZfcHJpdi0+cnBzLmh3X2xvY2spOwo+ ICAJc3Bpbl9sb2NrX2luaXQoJmRldl9wcml2LT5ycHMuY2xpZW50X2xvY2spOwo+ICAKPiAtCUlO SVRfREVMQVlFRF9XT1JLKCZkZXZfcHJpdi0+cnBzLmRlbGF5ZWRfcmVzdW1lX3dvcmssCj4gLQkJ CSAgaW50ZWxfZ2VuNl9wb3dlcnNhdmVfd29yayk7Cj4gKwlJTklUX0RFTEFZRURfV09SSygmZGV2 X3ByaXYtPnJwcy5hdXRvZW5hYmxlX3dvcmssCj4gKwkJCSAgX19pbnRlbF9hdXRvZW5hYmxlX2d0 X3Bvd2Vyc2F2ZSk7Cj4gIAlJTklUX0xJU1RfSEVBRCgmZGV2X3ByaXYtPnJwcy5jbGllbnRzKTsK PiAgCUlOSVRfTElTVF9IRUFEKCZkZXZfcHJpdi0+cnBzLnNlbWFwaG9yZXMubGluayk7Cj4gIAlJ TklUX0xJU1RfSEVBRCgmZGV2X3ByaXYtPnJwcy5tbWlvZmxpcHMubGluayk7Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfdW5jb3JlLmMKPiBpbmRleCBmZjgwYTgxYjFhODQuLmVlYjRjYmNlMTlmZiAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5jCj4gQEAgLTQzNSw3ICs0MzUsNyBA QCB2b2lkIGludGVsX3VuY29yZV9zYW5pdGl6ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCj4gIAlpOTE1LmVuYWJsZV9yYzYgPSBzYW5pdGl6ZV9yYzZfb3B0aW9uKGRldl9wcml2 LCBpOTE1LmVuYWJsZV9yYzYpOwo+ICAKPiAgCS8qIEJJT1Mgb2Z0ZW4gbGVhdmVzIFJDNiBlbmFi bGVkLCBidXQgZGlzYWJsZSBpdCBmb3IgaHcgaW5pdCAqLwo+IC0JaW50ZWxfZGlzYWJsZV9ndF9w b3dlcnNhdmUoZGV2X3ByaXYpOwo+ICsJaW50ZWxfc2FuaXRpemVfZ3RfcG93ZXJzYXZlKGRldl9w cml2KTsKPiAgfQo+ICAKPiAgc3RhdGljIHZvaWQgX19pbnRlbF91bmNvcmVfZm9yY2V3YWtlX2dl dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gLS0gCj4gMi44LjEKPgo+IF9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeApfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK