From mboxrd@z Thu Jan 1 00:00:00 1970 From: "O'Rourke, Tom" Subject: Re: [PATCH 11/13 v4] drm/i915: Integrate GuC-based command submission Date: Mon, 27 Jul 2015 08:57:49 -0700 Message-ID: <20150727155749.GA124515@torourke-desk1> References: <1436466554-24806-1-git-send-email-david.s.gordon@intel.com> <1436466554-24806-12-git-send-email-david.s.gordon@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 671D86E9A3 for ; Mon, 27 Jul 2015 09:01:28 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1436466554-24806-12-git-send-email-david.s.gordon@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Dave Gordon Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBKdWwgMDksIDIwMTUgYXQgMDc6Mjk6MTJQTSArMDEwMCwgRGF2ZSBHb3Jkb24gd3Jv dGU6Cj4gRnJvbTogQWxleCBEYWkgPHl1LmRhaUBpbnRlbC5jb20+Cj4gCj4gR3VDLWJhc2VkIHN1 Ym1pc3Npb24gaXMgbW9zdGx5IHRoZSBzYW1lIGFzIGV4ZWNsaXN0IG1vZGUsIHVwIHRvCj4gaW50 ZWxfbG9naWNhbF9yaW5nX2FkdmFuY2VfYW5kX3N1Ym1pdCgpLCB3aGVyZSB0aGUgY29udGV4dCBi ZWluZwo+IGRpc3BhdGNoZWQgd291bGQgYmUgYWRkZWQgdG8gdGhlIGV4ZWNsaXN0IHF1ZXVlOyBh dCB0aGlzIHBvaW50Cj4gd2Ugc3VibWl0IHRoZSBjb250ZXh0IHRvIHRoZSBHdUMgYmFja2VuZCBp bnN0ZWFkLgo+IAo+IFRoZXJlIGFyZSwgaG93ZXZlciwgYSBmZXcgb3RoZXIgY2hhbmdlcyBhbHNv IHJlcXVpcmVkLCBub3RhYmx5Ogo+IDEuICBDb250ZXh0cyBtdXN0IGJlIHBpbm5lZCBhdCBHR1RU IGFkZHJlc3NlcyBhY2Nlc3NpYmxlIGJ5IHRoZSBHdUMKPiAgICAgaS5lLiBOT1QgaW4gdGhlIHJh bmdlIFswLi5XT1BDTV9TSVpFKSwgc28gd2UgaGF2ZSB0byBhZGQgdGhlCj4gICAgIFBJTl9PRkZT RVRfQklBUyBmbGFnIHRvIHRoZSByZWxldmFudCBHR1RULXBpbm5pbmcgY2FsbHMuCj4gCj4gMi4g IFRoZSBHdUMncyBUTEIgbXVzdCBiZSBpbnZhbGlkYXRlZCBhZnRlciBhIGNvbnRleHQgaXMgcGlu bmVkIGF0Cj4gICAgIGEgbmV3IEdHVFQgYWRkcmVzcy4KPiAKPiAzLiAgR3VDIGZpcm13YXJlIHVz ZXMgdGhlIG9uZSBwYWdlIGJlZm9yZSBSaW5nIENvbnRleHQgYXMgc2hhcmVkIGRhdGEuCj4gICAg IFRoZXJlZm9yZSwgd2hlbmV2ZXIgZHJpdmVyIHdhbnRzIHRvIGdldCBiYXNlIGFkZHJlc3Mgb2Yg TFJDLCB3ZQo+ICAgICB3aWxsIG9mZnNldCBvbmUgcGFnZSBmb3IgaXQuIExSQ19QUEhXU1BfUE4g aXMgZGVmaW5lZCBhcyB0aGUgcGFnZQo+ICAgICBudW1iZXIgb2YgTFJDQS4KPiAKPiA0LiAgSW4g dGhlIHdvcmsgcXVldWUgdXNlZCB0byBwYXNzIHJlcXVlc3RzIHRvIHRoZSBHdUMsIHRoZSBHdUMK PiAgICAgZmlybXdhcmUgcmVxdWlyZXMgdGhlIHJpbmctdGFpbC1vZmZzZXQgdG8gYmUgcmVwcmVz ZW50ZWQgYXMgYW4KPiAgICAgMTEtYml0IHZhbHVlLCBleHByZXNzZWQgaW4gUVdvcmRzLiBUaGVy ZWZvcmUsIHRoZSByaW5nYnVmZmVyCj4gICAgIHNpemUgbXVzdCBiZSByZWR1Y2VkIHRvIHRoZSBy ZXByZXNlbnRhYmxlIHJhbmdlICg0IHBhZ2VzKS4KPiAKPiB2MjoKPiAgICAgRGVmZXIgYWRkaW5n ICNkZWZpbmVzIHVudGlsIG5lZWRlZCBbQ2hyaXMgV2lsc29uXQo+ICAgICBSYXRpb25hbGlzZSB0 eXBlIGRlY2xhcmF0aW9ucyBbQ2hyaXMgV2lsc29uXQo+IAo+IHY0Ogo+ICAgICBTcXVhc2hlZCBr ZXJuZWxkb2MgcGF0Y2ggaW50byBoZXJlIFtEYW5pZWwgVmV0dGVyXQo+IAo+IElzc3VlOiBWSVot NDg4NAo+IFNpZ25lZC1vZmYtYnk6IEFsZXggRGFpIDx5dS5kYWlAaW50ZWwuY29tPgo+IFNpZ25l ZC1vZmYtYnk6IERhdmUgR29yZG9uIDxkYXZpZC5zLmdvcmRvbkBpbnRlbC5jb20+Cj4gLS0tCj4g IERvY3VtZW50YXRpb24vRG9jQm9vay9kcm0udG1wbCAgICAgICAgICAgICB8IDE0ICsrKysrKysr Cj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jICAgICAgICB8ICAyICstCj4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYyB8IDUyICsrKysrKysr KysrKysrKysrKysrKysrKysrKy0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMu aCAgICAgICAgICAgfCAgMSArCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jICAg ICAgICAgICB8IDUxICsrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2xyYy5oICAgICAgICAgICB8ICA2ICsrKysKPiAgNiBmaWxlcyBjaGFu Z2VkLCAxMDYgaW5zZXJ0aW9ucygrKSwgMjAgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBh L0RvY3VtZW50YXRpb24vRG9jQm9vay9kcm0udG1wbCBiL0RvY3VtZW50YXRpb24vRG9jQm9vay9k cm0udG1wbAo+IGluZGV4IDU5NmIxMWQuLjBmZjVmZDcgMTAwNjQ0Cj4gLS0tIGEvRG9jdW1lbnRh dGlvbi9Eb2NCb29rL2RybS50bXBsCj4gKysrIGIvRG9jdW1lbnRhdGlvbi9Eb2NCb29rL2RybS50 bXBsCj4gQEAgLTQyMjMsNiArNDIyMywyMCBAQCBpbnQgbnVtX2lvY3Rsczs8L3N5bm9wc2lzPgo+ ICAgICAgICA8L3NlY3QyPgo+ICAgICAgPC9zZWN0MT4KPiAgICAgIDxzZWN0MT4KPiArICAgICAg PHRpdGxlPkd1Qy1iYXNlZCBDb21tYW5kIFN1Ym1pc3Npb248L3RpdGxlPgo+ICsgICAgICA8c2Vj dDI+Cj4gKyAgICAgICAgPHRpdGxlPkd1QzwvdGl0bGU+Cj4gKyFQZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZ3VjX2xvYWRlci5jIEd1Qy1zcGVjaWZpYyBmaXJtd2FyZSBsb2FkZXIKPiArIUlk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMKPiArICAgICAgPC9zZWN0Mj4K PiArICAgICAgPHNlY3QyPgo+ICsgICAgICAgIDx0aXRsZT5HdUMgQ2xpZW50PC90aXRsZT4KPiAr IVBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfc3VibWlzc2lvbi5jIEd1Qy1iYXNlZCBj b21tYW5kIHN1Ym1pc3Npc29uCj4gKyFJZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX3N1 Ym1pc3Npb24uYwo+ICsgICAgICA8L3NlY3QyPgo+ICsgICAgPC9zZWN0MT4KPiArCj4gKyAgICA8 c2VjdDE+Cj4gICAgICAgIDx0aXRsZT4gVHJhY2luZyA8L3RpdGxlPgo+ICAgICAgICA8cGFyYT4K PiAgICAgIFRoaXMgc2VjdGlvbnMgY292ZXJzIGFsbCB0aGluZ3MgcmVsYXRlZCB0byB0aGUgdHJh Y2Vwb2ludHMgaW1wbGVtZW50ZWQgaW4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+ IGluZGV4IDEzZTM3ZDEuLmQ5MzczMmEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kZWJ1Z2ZzLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVn ZnMuYwo+IEBAIC0xOTgyLDcgKzE5ODIsNyBAQCBzdGF0aWMgdm9pZCBpOTE1X2R1bXBfbHJjX29i aihzdHJ1Y3Qgc2VxX2ZpbGUgKm0sCj4gIAkJcmV0dXJuOwo+ICAJfQo+ICAKPiAtCXBhZ2UgPSBp OTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2UoY3R4X29iaiwgMSk7Cj4gKwlwYWdlID0gaTkxNV9nZW1f b2JqZWN0X2dldF9wYWdlKGN0eF9vYmosIExSQ19TVEFURV9QTik7Cj4gIAlpZiAoIVdBUk5fT04o cGFnZSA9PSBOVUxMKSkgewo+ICAJCXJlZ19zdGF0ZSA9IGttYXBfYXRvbWljKHBhZ2UpOwo+ICAK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCj4gaW5kZXggMjVk ODgwNy4uYzVjOWZiZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1 Y19zdWJtaXNzaW9uLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJt aXNzaW9uLmMKPiBAQCAtMzQ2LDE4ICszNDYsNTggQEAgc3RhdGljIHZvaWQgZ3VjX2luaXRfcHJv Y19kZXNjKHN0cnVjdCBpbnRlbF9ndWMgKmd1YywKPiAgc3RhdGljIHZvaWQgZ3VjX2luaXRfY3R4 X2Rlc2Moc3RydWN0IGludGVsX2d1YyAqZ3VjLAo+ICAJCQkgICAgICBzdHJ1Y3QgaTkxNV9ndWNf Y2xpZW50ICpjbGllbnQpCj4gIHsKPiArCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHggPSBjbGll bnQtPm93bmVyOwo+ICAJc3RydWN0IGd1Y19jb250ZXh0X2Rlc2MgZGVzYzsKPiAgCXN0cnVjdCBz Z190YWJsZSAqc2c7Cj4gKwlpbnQgaTsKPiAgCj4gIAltZW1zZXQoJmRlc2MsIDAsIHNpemVvZihk ZXNjKSk7Cj4gIAo+ICAJZGVzYy5hdHRyaWJ1dGUgPSBHVUNfQ1RYX0RFU0NfQVRUUl9BQ1RJVkUg fCBHVUNfQ1RYX0RFU0NfQVRUUl9LRVJORUw7Cj4gIAlkZXNjLmNvbnRleHRfaWQgPSBjbGllbnQt PmN0eF9pbmRleDsKPiAgCWRlc2MucHJpb3JpdHkgPSBjbGllbnQtPnByaW9yaXR5Owo+IC0JZGVz Yy5lbmdpbmVzX3VzZWQgPSAoMSA8PCBSQ1MpIHwgKDEgPDwgVkNTKSB8ICgxIDw8IEJDUykgfAo+ IC0JCQkgICAgKDEgPDwgVkVDUykgfCAoMSA8PCBWQ1MyKTsgLyogYWxsIGVuZ2luZXMgKi8KPiAg CWRlc2MuZGJfaWQgPSBjbGllbnQtPmRvb3JiZWxsX2lkOwo+ICAKPiArCWZvciAoaSA9IDA7IGkg PCBJOTE1X05VTV9SSU5HUzsgaSsrKSB7Cj4gKwkJc3RydWN0IGd1Y19leGVjbGlzdF9jb250ZXh0 ICpscmMgPSAmZGVzYy5scmNbaV07Cj4gKwkJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdi dWYgPSBjdHgtPmVuZ2luZVtpXS5yaW5nYnVmOwo+ICsJCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KnJpbmc7Cj4gKwkJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKPiArCQl1aW50NjRf dCBjdHhfZGVzYzsKPiArCj4gKwkJLyogVE9ETzogV2UgaGF2ZSBhIGRlc2lnbiBpc3N1ZSB0byBi ZSBzb2x2ZWQgaGVyZS4gT25seSB3aGVuIHdlCj4gKwkJICogcmVjZWl2ZSB0aGUgZmlyc3QgYmF0 Y2gsIHdlIGtub3cgd2hpY2ggZW5naW5lIGlzIHVzZWQgYnkgdGhlCj4gKwkJICogdXNlci4gQnV0 IGhlcmUgR3VDIGV4cGVjdHMgdGhlIGxyYyBhbmQgcmluZyB0byBiZSBwaW5uZWQuIEl0Cj4gKwkJ ICogaXMgbm90IGFuIGlzc3VlIGZvciBkZWZhdWx0IGNvbnRleHQsIHdoaWNoIGlzIHRoZSBvbmx5 IG9uZQo+ICsJCSAqIGZvciBub3cgd2hvIG93bnMgYSBHdUMgY2xpZW50LiBCdXQgZm9yIGZ1dHVy ZSBvd25lciBvZiBHdUMKPiArCQkgKiBjbGllbnQsIG5lZWQgdG8gbWFrZSBzdXJlIGxyYyBpcyBw aW5uZWQgcHJpb3IgdG8gZW50ZXIgaGVyZS4KPiArCQkgKi8KPiArCQlvYmogPSBjdHgtPmVuZ2lu ZVtpXS5zdGF0ZTsKPiArCQlpZiAoIW9iaikKPiArCQkJYnJlYWs7Cj4gKwo+ICsJCXJpbmcgPSBy aW5nYnVmLT5yaW5nOwo+ICsJCWN0eF9kZXNjID0gaW50ZWxfbHJfY29udGV4dF9kZXNjcmlwdG9y KGN0eCwgcmluZyk7Cj4gKwkJbHJjLT5jb250ZXh0X2Rlc2MgPSAodTMyKWN0eF9kZXNjOwo+ICsK PiArCQkvKiBUaGUgc3RhdGUgcGFnZSBpcyBhZnRlciBQUEhXU1AgKi8KPiArCQlscmMtPnJpbmdf bGNyYSA9IGk5MTVfZ2VtX29ial9nZ3R0X29mZnNldChvYmopICsKPiArCQkJCUxSQ19TVEFURV9Q TiAqIFBBR0VfU0laRTsKPiArCQlscmMtPmNvbnRleHRfaWQgPSAoY2xpZW50LT5jdHhfaW5kZXgg PDwgR1VDX0VMQ19DVFhJRF9PRkZTRVQpIHwKPiArCQkJCShyaW5nLT5pZCA8PCBHVUNfRUxDX0VO R0lORV9PRkZTRVQpOwo+ICsKPiArCQlvYmogPSByaW5nYnVmLT5vYmo7Cj4gKwo+ICsJCWxyYy0+ cmluZ19iZWdpbiA9IGk5MTVfZ2VtX29ial9nZ3R0X29mZnNldChvYmopOwo+ICsJCWxyYy0+cmlu Z19lbmQgPSBscmMtPnJpbmdfYmVnaW4gKyBvYmotPmJhc2Uuc2l6ZSAtIDE7Cj4gKwkJbHJjLT5y aW5nX25leHRfZnJlZV9sb2NhdGlvbiA9IGxyYy0+cmluZ19iZWdpbjsKPiArCQlscmMtPnJpbmdf Y3VycmVudF90YWlsX3BvaW50ZXJfdmFsdWUgPSAwOwo+ICsKPiArCQlkZXNjLmVuZ2luZXNfdXNl ZCB8PSAoMSA8PCByaW5nLT5pZCk7Cj4gKwl9Cj4gKwo+ICsJV0FSTl9PTihkZXNjLmVuZ2luZXNf dXNlZCA9PSAwKTsKPiArCj4gIAkvKgo+ICAJICogVGhlIENQVSBhZGRyZXNzIGlzIG9ubHkgbmVl ZGVkIGF0IGNlcnRhaW4gcG9pbnRzLCBzbyBrbWFwX2F0b21pYyBvbgo+ICAJICogZGVtYW5kIGlu c3RlYWQgb2Ygc3RvcmluZyBpdCBpbiB0aGUgY3R4IGRlc2NyaXB0b3IuCj4gQEAgLTYyMiwxMSAr NjYyLDEzIEBAIHN0YXRpYyB2b2lkIGd1Y19jbGllbnRfZnJlZShzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAo+ICAgKiAJCVRoZSBrZXJuZWwgY2xpZW50IHRvIHJlcGxhY2UgRXhlY0xpc3Qgc3VibWlz c2lvbiBpcyBjcmVhdGVkIHdpdGgKPiAgICogCQlOT1JNQUwgcHJpb3JpdHkuIFByaW9yaXR5IG9m IGEgY2xpZW50IGZvciBzY2hlZHVsZXIgY2FuIGJlIEhJR0gsCj4gICAqIAkJd2hpbGUgYSBwcmVl bXB0aW9uIGNvbnRleHQgY2FuIHVzZSBDUklUSUNBTC4KPiArICogQGN0eAkJdGhlIGNvbnRleHQg dG8gb3duIHRoZSBjbGllbnQgKHdlIHVzZSB0aGUgZGVmYXVsdCByZW5kZXIgY29udGV4dCkKPiAg ICoKPiAgICogUmV0dXJuOglBbiBpOTE1X2d1Y19jbGllbnQgb2JqZWN0IGlmIHN1Y2Nlc3MuCj4g ICAqLwo+ICBzdGF0aWMgc3RydWN0IGk5MTVfZ3VjX2NsaWVudCAqZ3VjX2NsaWVudF9hbGxvYyhz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+IC0JCQkJCQl1aW50MzJfdCBwcmlvcml0eSkKPiArCQkJ CQkJdWludDMyX3QgcHJpb3JpdHksCj4gKwkJCQkJCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgp Cj4gIHsKPiAgCXN0cnVjdCBpOTE1X2d1Y19jbGllbnQgKmNsaWVudDsKPiAgCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gQEAgLTYzOSw2ICs2 ODEsNyBAQCBzdGF0aWMgc3RydWN0IGk5MTVfZ3VjX2NsaWVudCAqZ3VjX2NsaWVudF9hbGxvYyhz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAKPiAgCWNsaWVudC0+ZG9vcmJlbGxfaWQgPSBHVUNf SU5WQUxJRF9ET09SQkVMTF9JRDsKPiAgCWNsaWVudC0+cHJpb3JpdHkgPSBwcmlvcml0eTsKPiAr CWNsaWVudC0+b3duZXIgPSBjdHg7Cj4gIAo+ICAJY2xpZW50LT5jdHhfaW5kZXggPSAodWludDMy X3QpaWRhX3NpbXBsZV9nZXQoJmd1Yy0+Y3R4X2lkcywgMCwKPiAgCQkJR1VDX01BWF9HUFVfQ09O VEVYVFMsIEdGUF9LRVJORUwpOwo+IEBAIC03NzIsMTAgKzgxNSwxMSBAQCBpbnQgaTkxNV9ndWNf c3VibWlzc2lvbl9lbmFibGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgewo+ICAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAgCXN0cnVj dCBpbnRlbF9ndWMgKmd1YyA9ICZkZXZfcHJpdi0+Z3VjOwo+ICsJc3RydWN0IGludGVsX2NvbnRl eHQgKmN0eCA9IGRldl9wcml2LT5yaW5nW1JDU10uZGVmYXVsdF9jb250ZXh0Owo+ICAJc3RydWN0 IGk5MTVfZ3VjX2NsaWVudCAqY2xpZW50Owo+ICAKPiAgCS8qIGNsaWVudCBmb3IgZXhlY2J1ZiBz dWJtaXNzaW9uICovCj4gLQljbGllbnQgPSBndWNfY2xpZW50X2FsbG9jKGRldiwgR1VDX0NUWF9Q UklPUklUWV9OT1JNQUwpOwo+ICsJY2xpZW50ID0gZ3VjX2NsaWVudF9hbGxvYyhkZXYsIEdVQ19D VFhfUFJJT1JJVFlfTk9STUFMLCBjdHgpOwo+ICAJaWYgKCFjbGllbnQpIHsKPiAgCQlEUk1fRVJS T1IoIkZhaWxlZCB0byBjcmVhdGUgZXhlY2J1ZiBndWNfY2xpZW50XG4iKTsKPiAgCQlyZXR1cm4g LUVOT01FTTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaAo+IGluZGV4IGQyNDkzMjYuLjk1NzFi NTYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmgKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaAo+IEBAIC0yOSw2ICsyOSw3IEBACj4g IAo+ICBzdHJ1Y3QgaTkxNV9ndWNfY2xpZW50IHsKPiAgCXN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpjbGllbnRfb2JqOwo+ICsJc3RydWN0IGludGVsX2NvbnRleHQgKm93bmVyOwo+ICAJdWlu dDMyX3QgcHJpb3JpdHk7Cj4gIAl1aW50MzJfdCBjdHhfaW5kZXg7Cj4gIAo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2xyYy5jCj4gaW5kZXggOWUxMjFkMy4uODI5NDQ2MiAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2xyYy5jCj4gQEAgLTI1NCw3ICsyNTQsOCBAQCBpbnQgaW50ZWxfc2FuaXRpemVfZW5h YmxlX2V4ZWNsaXN0cyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgZW5hYmxlX2V4ZWNsaXN0 cwo+ICAgKi8KPiAgdTMyIGludGVsX2V4ZWNsaXN0c19jdHhfaWQoc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKmN0eF9vYmopCj4gIHsKPiAtCXUzMiBscmNhID0gaTkxNV9nZW1fb2JqX2dndHRf b2Zmc2V0KGN0eF9vYmopOwo+ICsJdTMyIGxyY2EgPSBpOTE1X2dlbV9vYmpfZ2d0dF9vZmZzZXQo Y3R4X29iaikgKwo+ICsJCQlMUkNfUFBIV1NQX1BOICogUEFHRV9TSVpFOwo+ICAKPiAgCS8qIExS Q0EgaXMgcmVxdWlyZWQgdG8gYmUgNEsgYWxpZ25lZCBzbyB0aGUgbW9yZSBzaWduaWZpY2FudCAy MCBiaXRzCj4gIAkgKiBhcmUgZ2xvYmFsbHkgdW5pcXVlICovCj4gQEAgLTI2Nyw3ICsyNjgsOCBA QCB1aW50NjRfdCBpbnRlbF9scl9jb250ZXh0X2Rlc2NyaXB0b3Ioc3RydWN0IGludGVsX2NvbnRl eHQgKmN0eCwKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSByaW5nLT5kZXY7Cj4gIAlzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4X29iaiA9IGN0eC0+ZW5naW5lW3JpbmctPmlkXS5z dGF0ZTsKPiAgCXVpbnQ2NF90IGRlc2M7Cj4gLQl1aW50NjRfdCBscmNhID0gaTkxNV9nZW1fb2Jq X2dndHRfb2Zmc2V0KGN0eF9vYmopOwo+ICsJdWludDY0X3QgbHJjYSA9IGk5MTVfZ2VtX29ial9n Z3R0X29mZnNldChjdHhfb2JqKSArCj4gKwkJCUxSQ19QUEhXU1BfUE4gKiBQQUdFX1NJWkU7Cj4g IAo+ICAJV0FSTl9PTihscmNhICYgMHhGRkZGRkZGRjAwMDAwRkZGVUxMKTsKPiAgCj4gQEAgLTM0 Miw3ICszNDQsNyBAQCB2b2lkIGludGVsX2xyX2NvbnRleHRfdXBkYXRlKHN0cnVjdCBkcm1faTkx NV9nZW1fcmVxdWVzdCAqcnEpCj4gIAlXQVJOX09OKCFpOTE1X2dlbV9vYmpfaXNfcGlubmVkKGN0 eF9vYmopKTsKPiAgCVdBUk5fT04oIWk5MTVfZ2VtX29ial9pc19waW5uZWQocmJfb2JqKSk7Cj4g IAo+IC0JcGFnZSA9IGk5MTVfZ2VtX29iamVjdF9nZXRfcGFnZShjdHhfb2JqLCAxKTsKPiArCXBh Z2UgPSBpOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2UoY3R4X29iaiwgTFJDX1NUQVRFX1BOKTsKPiAg CXJlZ19zdGF0ZSA9IGttYXBfYXRvbWljKHBhZ2UpOwo+ICAKPiAgCXJlZ19zdGF0ZVtDVFhfUklO R19UQUlMKzFdID0gcnEtPnRhaWw7Cj4gQEAgLTY4NywxMyArNjg5LDE3IEBAIHN0YXRpYyB2b2lk Cj4gIGludGVsX2xvZ2ljYWxfcmluZ19hZHZhbmNlX2FuZF9zdWJtaXQoc3RydWN0IGRybV9pOTE1 X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KQo+ICB7Cj4gIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpy aW5nID0gcmVxdWVzdC0+cmluZzsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHJlcXVlc3QtPmk5MTU7Cj4gIAo+ICAJaW50ZWxfbG9naWNhbF9yaW5nX2FkdmFuY2UocmVx dWVzdC0+cmluZ2J1Zik7Cj4gIAo+ICAJaWYgKGludGVsX3Jpbmdfc3RvcHBlZChyaW5nKSkKPiAg CQlyZXR1cm47Cj4gIAo+IC0JZXhlY2xpc3RzX2NvbnRleHRfcXVldWUocmVxdWVzdCk7Cj4gKwlp ZiAoZGV2X3ByaXYtPmd1Yy5leGVjYnVmX2NsaWVudCkKPiArCQlpOTE1X2d1Y19zdWJtaXQoZGV2 X3ByaXYtPmd1Yy5leGVjYnVmX2NsaWVudCwgcmVxdWVzdCk7Cj4gKwllbHNlCj4gKwkJZXhlY2xp c3RzX2NvbnRleHRfcXVldWUocmVxdWVzdCk7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIF9fd3Jh cF9yaW5nX2J1ZmZlcihzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZikKPiBAQCAtOTg0 LDYgKzk5MCw3IEBAIGludCBsb2dpY2FsX3JpbmdfZmx1c2hfYWxsX2NhY2hlcyhzdHJ1Y3QgZHJt X2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPiAgCj4gIHN0YXRpYyBpbnQgaW50ZWxfbHJfY29udGV4 dF9waW4oc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpycSkKPiAgewo+ICsJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gcnEtPmk5MTU7Cj4gIAlzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICpyaW5nID0gcnEtPnJpbmc7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq Y3R4X29iaiA9IHJxLT5jdHgtPmVuZ2luZVtyaW5nLT5pZF0uc3RhdGU7Cj4gIAlzdHJ1Y3QgaW50 ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiA9IHJxLT5yaW5nYnVmOwo+IEBAIC05OTEsMTQgKzk5OCwx OCBAQCBzdGF0aWMgaW50IGludGVsX2xyX2NvbnRleHRfcGluKHN0cnVjdCBkcm1faTkxNV9nZW1f cmVxdWVzdCAqcnEpCj4gIAo+ICAJV0FSTl9PTighbXV0ZXhfaXNfbG9ja2VkKCZyaW5nLT5kZXYt PnN0cnVjdF9tdXRleCkpOwo+ICAJaWYgKHJxLT5jdHgtPmVuZ2luZVtyaW5nLT5pZF0ucGluX2Nv dW50KysgPT0gMCkgewo+IC0JCXJldCA9IGk5MTVfZ2VtX29ial9nZ3R0X3BpbihjdHhfb2JqLAo+ IC0JCQkJR0VOOF9MUl9DT05URVhUX0FMSUdOLCAwKTsKPiArCQlyZXQgPSBpOTE1X2dlbV9vYmpf Z2d0dF9waW4oY3R4X29iaiwgR0VOOF9MUl9DT05URVhUX0FMSUdOLAo+ICsJCQkJUElOX09GRlNF VF9CSUFTIHwgR1VDX1dPUENNX1NJWkVfVkFMVUUpOwo+ICAJCWlmIChyZXQpCj4gIAkJCWdvdG8g cmVzZXRfcGluX2NvdW50Owo+ICAKPiAgCQlyZXQgPSBpbnRlbF9waW5fYW5kX21hcF9yaW5nYnVm ZmVyX29iaihyaW5nLT5kZXYsIHJpbmdidWYpOwo+ICAJCWlmIChyZXQpCj4gIAkJCWdvdG8gdW5w aW5fY3R4X29iajsKPiArCj4gKwkJLyogSW52YWxpZGF0ZSBHdUMgVExCLiAqLwo+ICsJCWlmIChp OTE1LmVuYWJsZV9ndWNfc3VibWlzc2lvbikKPiArCQkJSTkxNV9XUklURShHRU44X0dUQ1IsIEdF TjhfR1RDUl9JTlZBTElEQVRFKTsKPiAgCX0KPiAgCj4gIAlyZXR1cm4gcmV0Owo+IEBAIC0xNjY4 LDggKzE2NzksMTMgQEAgb3V0Ogo+ICAKPiAgc3RhdGljIGludCBnZW44X2luaXRfcmNzX2NvbnRl eHQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCj4gIHsKPiArCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHJlcS0+aTkxNTsKPiAgCWludCByZXQ7Cj4gIAo+ICsJ LyogSW52YWxpZGF0ZSBHdUMgVExCLiAqLwpbVE9SOl0gVGhpcyBpbnZhbGlkYXRpb24gaXMgaW4g dGhlIGluaXRfY29udGV4dCBmb3IgcmVuZGVyCnJpbmcgYnV0IG5vdCB0aGUgb3RoZXIgcmluZ3Mu ICBJcyB0aGlzIG5lZWRlZCBmb3Igb3RoZXIKcmluZ3M/ICBPciwgc2hvdWxkIHRoaXMgaW52YWxp ZGF0aW9uIGhhcHBlbiBhdCBhIGRpZmZlcmVudApsZXZlbD8gIEl0IHNlZW1zIHRoaXMgbWF5IGRl cGVuZCBvbiB0aGUgb24gcmVuZGVyIHJpbmcgYmVpbmcKaW5pdGlhbGl6ZWQgZmlyc3QuCgpUaGFu a3MsClRvbQoKPiArCWlmIChpOTE1LmVuYWJsZV9ndWNfc3VibWlzc2lvbikKPiArCQlJOTE1X1dS SVRFKEdFTjhfR1RDUiwgR0VOOF9HVENSX0lOVkFMSURBVEUpOwo+ICsKPiAgCXJldCA9IGludGVs X2xvZ2ljYWxfcmluZ193b3JrYXJvdW5kc19lbWl0KHJlcSk7Cj4gIAlpZiAocmV0KQo+ICAJCXJl dHVybiByZXQ7Cj4gQEAgLTIwMjYsNyArMjA0Miw3IEBAIHBvcHVsYXRlX2xyX2NvbnRleHQoc3Ry dWN0IGludGVsX2NvbnRleHQgKmN0eCwgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmN0eF9v Cj4gIAo+ICAJLyogVGhlIHNlY29uZCBwYWdlIG9mIHRoZSBjb250ZXh0IG9iamVjdCBjb250YWlu cyBzb21lIGZpZWxkcyB3aGljaCBtdXN0Cj4gIAkgKiBiZSBzZXQgdXAgcHJpb3IgdG8gdGhlIGZp cnN0IGV4ZWN1dGlvbi4gKi8KPiAtCXBhZ2UgPSBpOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2UoY3R4 X29iaiwgMSk7Cj4gKwlwYWdlID0gaTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlKGN0eF9vYmosIExS Q19TVEFURV9QTik7Cj4gIAlyZWdfc3RhdGUgPSBrbWFwX2F0b21pYyhwYWdlKTsKPiAgCj4gIAkv KiBBIGNvbnRleHQgaXMgYWN0dWFsbHkgYSBiaWcgYmF0Y2ggYnVmZmVyIHdpdGggc2V2ZXJhbCBN SV9MT0FEX1JFR0lTVEVSX0lNTQo+IEBAIC0yMTg1LDEyICsyMjAxLDEzIEBAIHN0YXRpYyB2b2lk IGxyY19zZXR1cF9oYXJkd2FyZV9zdGF0dXNfcGFnZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpy aW5nLAo+ICAJCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpkZWZhdWx0X2N0eF9vYmopCj4g IHsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHJpbmctPmRldi0+ZGV2 X3ByaXZhdGU7Cj4gKwlzdHJ1Y3QgcGFnZSAqcGFnZTsKPiAgCj4gLQkvKiBUaGUgc3RhdHVzIHBh Z2UgaXMgb2Zmc2V0IDAgZnJvbSB0aGUgZGVmYXVsdCBjb250ZXh0IG9iamVjdAo+IC0JICogaW4g TFJDIG1vZGUuICovCj4gLQlyaW5nLT5zdGF0dXNfcGFnZS5nZnhfYWRkciA9IGk5MTVfZ2VtX29i al9nZ3R0X29mZnNldChkZWZhdWx0X2N0eF9vYmopOwo+IC0JcmluZy0+c3RhdHVzX3BhZ2UucGFn ZV9hZGRyID0KPiAtCQkJa21hcChzZ19wYWdlKGRlZmF1bHRfY3R4X29iai0+cGFnZXMtPnNnbCkp Owo+ICsJLyogVGhlIEhXU1AgaXMgcGFydCBvZiB0aGUgZGVmYXVsdCBjb250ZXh0IG9iamVjdCBp biBMUkMgbW9kZS4gKi8KPiArCXJpbmctPnN0YXR1c19wYWdlLmdmeF9hZGRyID0gaTkxNV9nZW1f b2JqX2dndHRfb2Zmc2V0KGRlZmF1bHRfY3R4X29iaikKPiArCQkJKyBMUkNfUFBIV1NQX1BOICog UEFHRV9TSVpFOwo+ICsJcGFnZSA9IGk5MTVfZ2VtX29iamVjdF9nZXRfcGFnZShkZWZhdWx0X2N0 eF9vYmosIExSQ19QUEhXU1BfUE4pOwo+ICsJcmluZy0+c3RhdHVzX3BhZ2UucGFnZV9hZGRyID0g a21hcChwYWdlKTsKPiAgCXJpbmctPnN0YXR1c19wYWdlLm9iaiA9IGRlZmF1bHRfY3R4X29iajsK PiAgCj4gIAlJOTE1X1dSSVRFKFJJTkdfSFdTX1BHQShyaW5nLT5tbWlvX2Jhc2UpLAo+IEBAIC0y MjI2LDYgKzIyNDMsOSBAQCBpbnQgaW50ZWxfbHJfY29udGV4dF9kZWZlcnJlZF9jcmVhdGUoc3Ry dWN0IGludGVsX2NvbnRleHQgKmN0eCwKPiAgCj4gIAljb250ZXh0X3NpemUgPSByb3VuZF91cChn ZXRfbHJfY29udGV4dF9zaXplKHJpbmcpLCA0MDk2KTsKPiAgCj4gKwkvKiBPbmUgZXh0cmEgcGFn ZSBhcyB0aGUgc2hhcmluZyBkYXRhIGJldHdlZW4gZHJpdmVyIGFuZCBHdUMgKi8KPiArCWNvbnRl eHRfc2l6ZSArPSBQQUdFX1NJWkUgKiBMUkNfUFBIV1NQX1BOOwo+ICsKPiAgCWN0eF9vYmogPSBp OTE1X2dlbV9hbGxvY19vYmplY3QoZGV2LCBjb250ZXh0X3NpemUpOwo+ICAJaWYgKCFjdHhfb2Jq KSB7Cj4gIAkJRFJNX0RFQlVHX0RSSVZFUigiQWxsb2MgTFJDIGJhY2tpbmcgb2JqIGZhaWxlZC5c biIpOwo+IEBAIC0yMjMzLDcgKzIyNTMsOCBAQCBpbnQgaW50ZWxfbHJfY29udGV4dF9kZWZlcnJl ZF9jcmVhdGUoc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwKPiAgCX0KPiAgCj4gIAlpZiAoaXNf Z2xvYmFsX2RlZmF1bHRfY3R4KSB7Cj4gLQkJcmV0ID0gaTkxNV9nZW1fb2JqX2dndHRfcGluKGN0 eF9vYmosIEdFTjhfTFJfQ09OVEVYVF9BTElHTiwgMCk7Cj4gKwkJcmV0ID0gaTkxNV9nZW1fb2Jq X2dndHRfcGluKGN0eF9vYmosIEdFTjhfTFJfQ09OVEVYVF9BTElHTiwKPiArCQkJCVBJTl9PRkZT RVRfQklBUyB8IEdVQ19XT1BDTV9TSVpFX1ZBTFVFKTsKPiAgCQlpZiAocmV0KSB7Cj4gIAkJCURS TV9ERUJVR19EUklWRVIoIlBpbiBMUkMgYmFja2luZyBvYmogZmFpbGVkOiAlZFxuIiwKPiAgCQkJ CQlyZXQpOwo+IEBAIC0yMjUyLDcgKzIyNzMsNyBAQCBpbnQgaW50ZWxfbHJfY29udGV4dF9kZWZl cnJlZF9jcmVhdGUoc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwKPiAgCj4gIAlyaW5nYnVmLT5y aW5nID0gcmluZzsKPiAgCj4gLQlyaW5nYnVmLT5zaXplID0gMzIgKiBQQUdFX1NJWkU7Cj4gKwly aW5nYnVmLT5zaXplID0gNCAqIFBBR0VfU0laRTsKPiAgCXJpbmdidWYtPmVmZmVjdGl2ZV9zaXpl ID0gcmluZ2J1Zi0+c2l6ZTsKPiAgCXJpbmdidWYtPmhlYWQgPSAwOwo+ICAJcmluZ2J1Zi0+dGFp bCA9IDA7Cj4gQEAgLTIzNTIsNyArMjM3Myw3IEBAIHZvaWQgaW50ZWxfbHJfY29udGV4dF9yZXNl dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJCQlXQVJOKDEsICJGYWlsZWQgZ2V0X3BhZ2Vz IGZvciBjb250ZXh0IG9ialxuIik7Cj4gIAkJCWNvbnRpbnVlOwo+ICAJCX0KPiAtCQlwYWdlID0g aTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlKGN0eF9vYmosIDEpOwo+ICsJCXBhZ2UgPSBpOTE1X2dl bV9vYmplY3RfZ2V0X3BhZ2UoY3R4X29iaiwgTFJDX1NUQVRFX1BOKTsKPiAgCQlyZWdfc3RhdGUg PSBrbWFwX2F0b21pYyhwYWdlKTsKPiAgCj4gIAkJcmVnX3N0YXRlW0NUWF9SSU5HX0hFQUQrMV0g PSAwOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oCj4gaW5kZXggNmVjYzBiMy4uZTA0YjVjMiAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaAo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oCj4gQEAgLTY3LDYgKzY3LDEyIEBAIHN0YXRp YyBpbmxpbmUgdm9pZCBpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChzdHJ1Y3QgaW50ZWxfcmluZ2J1 ZmZlciAqcmluZ2J1ZiwKPiAgfQo+ICAKPiAgLyogTG9naWNhbCBSaW5nIENvbnRleHRzICovCj4g Kwo+ICsvKiBPbmUgZXh0cmEgcGFnZSBpcyBhZGRlZCBiZWZvcmUgTFJDIGZvciBHdUMgYXMgc2hh cmVkIGRhdGEgKi8KPiArI2RlZmluZSBMUkNfR1VDU0hSX1BOCSgwKQo+ICsjZGVmaW5lIExSQ19Q UEhXU1BfUE4JKExSQ19HVUNTSFJfUE4gKyAxKQo+ICsjZGVmaW5lIExSQ19TVEFURV9QTgkoTFJD X1BQSFdTUF9QTiArIDEpCj4gKwo+ICB2b2lkIGludGVsX2xyX2NvbnRleHRfZnJlZShzdHJ1Y3Qg aW50ZWxfY29udGV4dCAqY3R4KTsKPiAgaW50IGludGVsX2xyX2NvbnRleHRfZGVmZXJyZWRfY3Jl YXRlKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgsCj4gIAkJCQkgICAgIHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKnJpbmcpOwo+IC0tIAo+IDEuOS4xCj4gCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==