From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 06/17] drm/i915: Handle log buffer flush interrupt event from GuC Date: Tue, 19 Jul 2016 11:58:48 +0100 Message-ID: <578E07E8.6080207@linux.intel.com> References: <1468158084-22028-1-git-send-email-akash.goel@intel.com> <1468158084-22028-7-git-send-email-akash.goel@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 264086E65F for ; Tue, 19 Jul 2016 10:58:50 +0000 (UTC) In-Reply-To: <1468158084-22028-7-git-send-email-akash.goel@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: akash.goel@intel.com, intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDEwLzA3LzE2IDE0OjQxLCBha2FzaC5nb2VsQGludGVsLmNvbSB3cm90ZToKPiBGcm9tOiBT YWdhciBBcnVuIEthbWJsZSA8c2FnYXIuYS5rYW1ibGVAaW50ZWwuY29tPgo+Cj4gR3VDIHVrZXJu ZWwgc2VuZHMgYW4gaW50ZXJydXB0IHRvIEhvc3QgdG8gZmx1c2ggdGhlIGxvZyBidWZmZXIKPiBh bmQgZXhwZWN0cyBIb3N0IHRvIGNvcnJlc3BvbmRpbmdseSB1cGRhdGUgdGhlIHJlYWQgcG9pbnRl cgo+IGluZm9ybWF0aW9uIGluIHRoZSBzdGF0ZSBzdHJ1Y3R1cmUsIG9uY2UgaXQgaGFzIGNvbnN1 bWVkIHRoZQo+IGxvZyBidWZmZXIgY29udGVudHMgYnkgY29weWluZyB0aGVtIHRvIGEgZmlsZSBv ciBidWZmZXIuCj4gRXZlbiBpZiBIb3N0IGNvdWxkbid0IGNvcHkgdGhlIGNvbnRlbnRzLCBpdCBj YW4gc3RpbGwgdXBkYXRlIHRoZQo+IHJlYWQgcG9pbnRlciBzbyB0aGF0IGxvZ2dpbmcgc3RhdGUg aXMgbm90IGRpc3R1cmJlZCBvbiBHdUMgc2lkZS4KPgo+IHYyOgo+IC0gVXNlIGEgZGVkaWNhdGVk IHdvcmtxdWV1ZSBmb3IgaGFuZGxpbmcgZmx1c2ggaW50ZXJydXB0LiAoVHZydGtvKQo+IC0gUmVk dWNlIHRoZSBvdmVyYWxsIGxvZyBidWZmZXIgY29weWluZyB0aW1lIGJ5IHNraXBwaW5nIHRoZSBj b3B5IG9mCj4gICAgY3Jhc2ggYnVmZmVyIGFyZWEgZm9yIHJlZ3VsYXIgY2FzZXMgYW5kIGNvcHlp bmcgb25seSB0aGUgc3RhdGUKPiAgICBzdHJ1Y3R1cmUgZGF0YSBpbiBmaXJzdCBwYWdlLgo+Cj4g djM6Cj4gICAtIENyZWF0ZSBhIHZtYWxsb2MgbWFwcGluZyBvZiBsb2cgYnVmZmVyLiAoQ2hyaXMp Cj4gICAtIENvdmVyIHRoZSBmbHVzaCBhY2tub3dsZWRnbWVudCB1bmRlciBycG0gZ2V0ICYgcHV0 LihDaHJpcykKPiAgIC0gUmV2ZXJ0IHRoZSBjaGFuZ2Ugb2Ygc2tpcHBpbmcgdGhlIGNvcHkgb2Yg Y3Jhc2ggZHVtcCBhcmVhLCBhcwo+ICAgICBub3QgcmVhbGx5IG5lZWRlZCwgd2lsbCBiZSBjb3Zl cmVkIGJ5IHN1YnNlcXVlbnQgcGF0Y2guCj4KPiBTaWduZWQtb2ZmLWJ5OiBTYWdhciBBcnVuIEth bWJsZSA8c2FnYXIuYS5rYW1ibGVAaW50ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IEFrYXNoIEdv ZWwgPGFrYXNoLmdvZWxAaW50ZWwuY29tPgo+IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuYyAgICAgICAgICAgIHwgIDEzICsrKwo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9ndWNfc3VibWlzc2lvbi5jIHwgMTQ4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr Cj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jICAgICAgICAgICAgfCAgIDUgKy0K PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Yy5oICAgICAgICAgICB8ICAgMyArCj4g ICA0IGZpbGVzIGNoYW5nZWQsIDE2NyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQo+Cj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4gaW5kZXggYjlhODExNy4uMjVjNmI5YiAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuYwo+IEBAIC03OTEsOCArNzkxLDIwIEBAIHN0YXRpYyBpbnQgaTkx NV93b3JrcXVldWVzX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAg CWlmIChkZXZfcHJpdi0+aG90cGx1Zy5kcF93cSA9PSBOVUxMKQo+ICAgCQlnb3RvIG91dF9mcmVl X3dxOwo+Cj4gKwlpZiAoSEFTX0dVQ19TQ0hFRChkZXZfcHJpdikpIHsKPiArCQkvKiBOZWVkIGEg ZGVkaWNhdGVkIHdxIHRvIHByb2Nlc3MgbG9nIGJ1ZmZlciBmbHVzaCBpbnRlcnJ1cHRzCj4gKwkJ ICogZnJvbSBHdUMgd2l0aG91dCBtdWNoIGRlbGF5IHNvIGFzIHRvIGF2b2lkIGFueSBsb3NzIG9m IGxvZ3MuCj4gKwkJICovCj4gKwkJZGV2X3ByaXYtPmd1Yy5sb2cud3EgPQo+ICsJCQlhbGxvY19v cmRlcmVkX3dvcmtxdWV1ZSgiaTkxNS1ndWNfbG9nIiwgMCk7Cj4gKwkJaWYgKGRldl9wcml2LT5n dWMubG9nLndxID09IE5VTEwpCj4gKwkJCWdvdG8gb3V0X2ZyZWVfaG90cGx1Z19kcF93cTsKPiAr CX0KPiArCj4gICAJcmV0dXJuIDA7Cj4KPiArb3V0X2ZyZWVfaG90cGx1Z19kcF93cToKPiArCWRl c3Ryb3lfd29ya3F1ZXVlKGRldl9wcml2LT5ob3RwbHVnLmRwX3dxKTsKPiAgIG91dF9mcmVlX3dx Ogo+ICAgCWRlc3Ryb3lfd29ya3F1ZXVlKGRldl9wcml2LT53cSk7Cj4gICBvdXRfZXJyOgo+IEBA IC04MDMsNiArODE1LDcgQEAgb3V0X2VycjoKPgo+ICAgc3RhdGljIHZvaWQgaTkxNV93b3JrcXVl dWVzX2NsZWFudXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgewo+ICsJ ZGVzdHJveV93b3JrcXVldWUoZGV2X3ByaXYtPmd1Yy5sb2cud3EpOwoKSSBhbSBpZ25vcmluZyB0 aGUgd3EgcGFydHMgb2YgdGhlIHBhdGNoIHNpbmNlIHRoZSBuZXh0IHNlcmllcyBtYXkgbG9vayAK ZGlmZmVyZW50IGluIHRoaXMgcmVzcGVjdC4KCkhvd2V2ZXIgeW91IG1heSBuZWVkIHRvIGhhdmUg d3EgZGVzdHJ1Y3Rpb24gdW5kZXIgdGhlIHNhbWUgSEFTX0dVQ19TQ0hFRCAKY29uZGl0aW9uIGFz IHdoZW4geW91IGNyZWF0ZSBpdC4KCj4gICAJZGVzdHJveV93b3JrcXVldWUoZGV2X3ByaXYtPmhv dHBsdWcuZHBfd3EpOwo+ICAgCWRlc3Ryb3lfd29ya3F1ZXVlKGRldl9wcml2LT53cSk7Cj4gICB9 Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24u YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYwo+IGluZGV4IDBi YWMxNzIuLmQzZGJiOGUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n dWNfc3VibWlzc2lvbi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3Vi bWlzc2lvbi5jCj4gQEAgLTE3Miw2ICsxNzIsMTUgQEAgc3RhdGljIGludCBob3N0Mmd1Y19zYW1w bGVfZm9yY2V3YWtlKHN0cnVjdCBpbnRlbF9ndWMgKmd1YywKPiAgIAlyZXR1cm4gaG9zdDJndWNf YWN0aW9uKGd1YywgZGF0YSwgQVJSQVlfU0laRShkYXRhKSk7Cj4gICB9Cj4KPiArc3RhdGljIGlu dCBob3N0Mmd1Y19sb2didWZmZXJfZmx1c2hfY29tcGxldGUoc3RydWN0IGludGVsX2d1YyAqZ3Vj KQo+ICt7Cj4gKwl1MzIgZGF0YVsxXTsKPiArCj4gKwlkYXRhWzBdID0gSE9TVDJHVUNfQUNUSU9O X0xPR19CVUZGRVJfRklMRV9GTFVTSF9DT01QTEVURTsKPiArCj4gKwlyZXR1cm4gaG9zdDJndWNf YWN0aW9uKGd1YywgZGF0YSwgMSk7Cj4gK30KPiArCj4gICAvKgo+ICAgICogSW5pdGlhbGlzZSwg dXBkYXRlLCBvciBjbGVhciBkb29yYmVsbCBkYXRhIHNoYXJlZCB3aXRoIHRoZSBHdUMKPiAgICAq Cj4gQEAgLTgyNSw2ICs4MzQsMTIzIEBAIGVycjoKPiAgIAlyZXR1cm4gTlVMTDsKPiAgIH0KPgo+ ICtzdGF0aWMgdm9pZCBndWNfbW92ZV90b19uZXh0X2J1ZihzdHJ1Y3QgaW50ZWxfZ3VjICpndWMp Cj4gK3sKPiArCXJldHVybjsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQqIGd1Y19nZXRfd3JpdGVf YnVmZmVyKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKPiArewo+ICsJcmV0dXJuIE5VTEw7Cj4gK30K PiArCj4gK3N0YXRpYyB2b2lkIGd1Y19yZWFkX3VwZGF0ZV9sb2dfYnVmZmVyKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpCgpkZXZfcHJpdiBzaG91bGQgYmUgcGFzc2VkIGluIGZvciBkcml2ZXIgaW50 ZXJuYWwgZnVuY3Rpb25zLgoKPiArewo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiArCXN0cnVjdCBpbnRlbF9ndWMgKmd1YyA9ICZkZXZf cHJpdi0+Z3VjOwo+ICsJc3RydWN0IGd1Y19sb2dfYnVmZmVyX3N0YXRlICpsb2dfYnVmZmVyX3N0 YXRlLCAqbG9nX2J1ZmZlcl9jb3B5X3N0YXRlOwo+ICsJc3RydWN0IGd1Y19sb2dfYnVmZmVyX3N0 YXRlIGxvZ19idWZmZXJfc3RhdGVfbG9jYWw7Cj4gKwl2b2lkICpzcmNfZGF0YV9wdHIsICpkc3Rf ZGF0YV9wdHI7Cj4gKwl1MzIgaSwgYnVmZmVyX3NpemU7Cj4gKwo+ICsJaWYgKCFndWMtPmxvZy5v YmogfHwgIWd1Yy0+bG9nLmJ1Zl9hZGRyKQo+ICsJCXJldHVybjsKPiArCj4gKwlsb2dfYnVmZmVy X3N0YXRlID0gc3JjX2RhdGFfcHRyID0gZ3VjLT5sb2cuYnVmX2FkZHI7Cj4gKwo+ICsJLyogR2V0 IHRoZSBwb2ludGVyIHRvIGxvY2FsIGJ1ZmZlciB0byBzdG9yZSB0aGUgbG9ncyAqLwo+ICsJZHN0 X2RhdGFfcHRyID0gbG9nX2J1ZmZlcl9jb3B5X3N0YXRlID0gZ3VjX2dldF93cml0ZV9idWZmZXIo Z3VjKTsKClRoaXMgd2lsbCByZXR1cm4gTlVMTCBzbyB0aGUgbG9vcCBiZWxvdyBkb2Vzbid0IGRv IGFueXRoaW5nIG11Y2guIEkgCmFzc3VtZSBhdCB0aGlzIHBvaW50IGluIHRoZSBwYXRjaCBzZXJp ZXMgdGhpbmdzIGFyZSBub3Qgd2lyZWQgdXAgeWV0PwoKPiArCj4gKwkvKiBBY3R1YWwgbG9ncyBh cmUgcHJlc2VudCBmcm9tIHRoZSAybmQgcGFnZSAqLwo+ICsJc3JjX2RhdGFfcHRyICs9IFBBR0Vf U0laRTsKPiArCWRzdF9kYXRhX3B0ciArPSBQQUdFX1NJWkU7Cj4gKwo+ICsJZm9yIChpID0gMDsg aSA8IEdVQ19NQVhfTE9HX0JVRkZFUjsgaSsrKSB7Cj4gKwkJbG9nX2J1ZmZlcl9zdGF0ZV9sb2Nh bCA9ICpsb2dfYnVmZmVyX3N0YXRlOwo+ICsJCWJ1ZmZlcl9zaXplID0gbG9nX2J1ZmZlcl9zdGF0 ZV9sb2NhbC5zaXplOwo+ICsKPiArCQlpZiAobG9nX2J1ZmZlcl9jb3B5X3N0YXRlKSB7Cj4gKwkJ CS8qIEZpcnN0IGNvcHkgdGhlIHN0YXRlIHN0cnVjdHVyZSAqLwo+ICsJCQltZW1jcHkobG9nX2J1 ZmZlcl9jb3B5X3N0YXRlLCAmbG9nX2J1ZmZlcl9zdGF0ZV9sb2NhbCwKPiArCQkJCQlzaXplb2Yo c3RydWN0IGd1Y19sb2dfYnVmZmVyX3N0YXRlKSk7CgpGb3Igc29tZSByZWFzb24gSSBmaW5kIGl0 IGhhcmQgdG8gZ3Jhc3AgdGhlIG1lYW5pbmcgb2YgdGhlIGRpZmZlcmVudCAKdmFyaWFibGVzIHdp dGggc2xpZ2h0bHkgZGlmZmVyZW50IG5hbWVzOgoKbG9nX2J1ZmZlcl9zdGF0ZQpsb2dfYnVmZmVy X2NvcHlfc3RhdGUsCmxvZ19idWZmZXJfc3RhdGVfbG9jYWwKClRoZSBfbG9jYWwgb25lIGZvciBl eGFtcGxlLCBpdCBzZWVtcyB0byBiZSBjb3BpZWQgaW50byBmcm9tIHRoZSBHdUMgCm1hcHBpbmcg YW5kIHRoZW4gY29waWVkIGFnYWluIGludG8gbG9nX2J1ZmZlcl9jb3B5X3N0YXRlLgoKV2h5IGRv IHlvdSBuZWVkIHR3byBjb3BpZXMgb2YgaXQ/CgpBbmQgd2h5IHNvbWV0aW1lcyB0aGUgY29kZSBk b2VzIGEgc3RydWN0dXJlIGNvcHkgYW5kIHNvbWV0aW1lcyBleHBsaWNpdCAKbWVtY3B5PwoKSSB0 aGluayBldmVuIHdvcnNlLCB3aGVuIGl0IGRvZXMgYSBzdHJ1Y3R1cmUgY29weToKCmxvZ19idWZm ZXJfc3RhdGVfbG9jYWwgPSAqbG9nX2J1ZmZlciBzdGF0ZTsKClRoZSBsb2dfYnVmZmVyX3N0YXRl IGlzIGEgR0VNIG9iamVjdCBtYXBwaW5nLiBTbyBpbiBteSBtaW5kIGl0IHdvdWxkIGJlIApiZXR0 ZXIgdGhlIGRvIHRoZSBleHBsaWNpdCBtZW1jcHkgdGhlcmUuCgpBbmQgdGhlbiB0aGlzIG1lbWNw eSBiZXR3ZWVuIHRoZSBsb2NhbCBjb3B5IGFuZCB3cml0ZSBidWZmZXIsIHRoYXQgd2lsbCAKYmUg aW50byB0aGUgcmVsYXkgc3ViIGJ1ZmZlcj8KCkl0IHNlZW1zIHRvIG1lIHRoZXJlIGlzIG5vIHJl YWwgbmVlZCBmb3IgbG9nX2J1ZmZlcl9zdGF0ZV9sb2NhbCBzaW5jZSAKdGhlIGJvdHRvbSBvZiB0 aGUgbG9vcCBzdGlsbCBhY2Nlc3NlcyBpdCB2aWEgdGhlIEdFTSBvYmogbWFwcGluZyAKKGxvZ19i dWZmZXJfc3RhdGUpCgpTbyBkb24ndCBrbm93LCBJIGZpbmQgaXQgYWxsIGNvbmZ1c2luZy4KCj4g Kwo+ICsJCQkvKiBUaGUgd3JpdGUgcG9pbnRlciBjb3VsZCBoYXZlIGJlZW4gdXBkYXRlZCBieSB0 aGUgR3VDCj4gKwkJCSAqIGZpcm13YXJlLCBhZnRlciBzZW5kaW5nIHRoZSBmbHVzaCBpbnRlcnJ1 cHQgdG8gSG9zdCwKPiArCQkJICogZm9yIGNvbnNpc3RlbmN5IHNldCB0aGUgd3JpdGUgcG9pbnRl ciB2YWx1ZSB0byBzYW1lCj4gKwkJCSAqIHZhbHVlIG9mIHNhbXBsZWRfd3JpdGVfcHRyIGluIHRo ZSBzbmFwc2hvdCBidWZmZXIuCj4gKwkJCSAqLwo+ICsJCQlsb2dfYnVmZmVyX2NvcHlfc3RhdGUt PndyaXRlX3B0ciA9Cj4gKwkJCQlsb2dfYnVmZmVyX2NvcHlfc3RhdGUtPnNhbXBsZWRfd3JpdGVf cHRyOwo+ICsKPiArCQkJbG9nX2J1ZmZlcl9jb3B5X3N0YXRlKys7Cj4gKwo+ICsJCQkvKiBOb3cg Y29weSB0aGUgYWN0dWFsIGxvZ3MgKi8KPiArCQkJbWVtY3B5KGRzdF9kYXRhX3B0ciwgc3JjX2Rh dGFfcHRyLCBidWZmZXJfc2l6ZSk7CgpEb2Vzbid0IHRoaXMgY29weSAoYW5kIG92ZXJ3cml0ZSkg dGhlIHNhbWUgbG9jYXRpb24gCmxvZ19idWZmZXJfY29weV9zdGF0ZSBwb2ludHMgdG8/IFNvIHRo ZSBtZW1jcHkgYWJvdmUgYW5kIHRoZSB3cml0ZV9wdHIgCnVwZGF0ZSAod2h5PykgYXJlIHRoZW4g b3ZlcndyaXR0ZW4gYnkgdGhpcyBtZW1jcHkgYmVjYXVzZSBkc3RfZGF0YV9wdHIgCj09IGxvZ19i dWZmZXJfY29weV9zdGF0ZSBhdCB0aGlzIHBvaW50IHVubGVzcyBJIGFtIG1pc3Npbmcgc29tZXRo aW5nLgoKPiArCj4gKwkJCXNyY19kYXRhX3B0ciArPSBidWZmZXJfc2l6ZTsKPiArCQkJZHN0X2Rh dGFfcHRyICs9IGJ1ZmZlcl9zaXplOwo+ICsJCX0KPiArCj4gKwkJLyogRklYTUU6IGludmFsaWRh dGUvZmx1c2ggZm9yIGxvZyBidWZmZXIgbmVlZGVkICovCj4gKwo+ICsJCS8qIFVwZGF0ZSB0aGUg cmVhZCBwb2ludGVyIGluIHRoZSBzaGFyZWQgbG9nIGJ1ZmZlciAqLwo+ICsJCWxvZ19idWZmZXJf c3RhdGUtPnJlYWRfcHRyID0KPiArCQkJbG9nX2J1ZmZlcl9zdGF0ZV9sb2NhbC5zYW1wbGVkX3dy aXRlX3B0cjsKPiArCj4gKwkJLyogQ2xlYXIgdGhlICdmbHVzaCB0byBmaWxlJyBmbGFnICovCj4g KwkJbG9nX2J1ZmZlcl9zdGF0ZS0+Zmx1c2hfdG9fZmlsZSA9IDA7Cj4gKwkJbG9nX2J1ZmZlcl9z dGF0ZSsrOwo+ICsJfQo+ICsKPiArCWlmIChsb2dfYnVmZmVyX2NvcHlfc3RhdGUpCj4gKwkJZ3Vj X21vdmVfdG9fbmV4dF9idWYoZ3VjKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgZ3VjX2xvZ19j bGVhbnVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiArewo+ICsJc3RydWN0 IGludGVsX2d1YyAqZ3VjID0gJmRldl9wcml2LT5ndWM7Cj4gKwo+ICsJbG9ja2RlcF9hc3NlcnRf aGVsZCgmZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOwo+ICsKPiArCWlmIChpOTE1Lmd1Y19s b2dfbGV2ZWwgPCAwKQo+ICsJCXJldHVybjsKPiArCj4gKwkvKiBGaXJzdCBkaXNhYmxlIHRoZSBm bHVzaCBpbnRlcnJ1cHQgKi8KPiArCWdlbjlfZGlzYWJsZV9ndWNfaW50ZXJydXB0cyhkZXZfcHJp dik7Cj4gKwo+ICsJaWYgKGd1Yy0+bG9nLmJ1Zl9hZGRyKQo+ICsJCWk5MTVfZ2VtX29iamVjdF91 bnBpbl9tYXAoZ3VjLT5sb2cub2JqKTsKPiArCj4gKwlndWMtPmxvZy5idWZfYWRkciA9IE5VTEw7 Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgZ3VjX2NyZWF0ZV9sb2dfZXh0cmFzKHN0cnVjdCBpbnRl bF9ndWMgKmd1YykKPiArewo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g Z3VjX3RvX2k5MTUoZ3VjKTsKPiArCXZvaWQgKnZhZGRyOwo+ICsJaW50IHJldDsKPiArCj4gKwls b2NrZGVwX2Fzc2VydF9oZWxkKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7Cj4gKwo+ICsJ LyogTm90aGluZyB0byBkbyAqLwo+ICsJaWYgKGk5MTUuZ3VjX2xvZ19sZXZlbCA8IDApCj4gKwkJ cmV0dXJuIDA7Cj4gKwo+ICsJaWYgKCFndWMtPmxvZy5idWZfYWRkcikgewo+ICsJCS8qIENyZWF0 ZSBhIHZtYWxsb2MgbWFwcGluZyBvZiBsb2cgYnVmZmVyIHBhZ2VzICovCj4gKwkJdmFkZHIgPSBp OTE1X2dlbV9vYmplY3RfcGluX21hcChndWMtPmxvZy5vYmopOwo+ICsJCWlmIChJU19FUlIodmFk ZHIpKSB7Cj4gKwkJCXJldCA9IFBUUl9FUlIodmFkZHIpOwo+ICsJCQlEUk1fRVJST1IoIkNvdWxk bid0IG1hcCBsb2cgYnVmZmVyIHBhZ2VzICVkXG4iLCByZXQpOwo+ICsJCQlyZXR1cm4gcmV0Owo+ ICsJCX0KPiArCj4gKwkJZ3VjLT5sb2cuYnVmX2FkZHIgPSB2YWRkcjsKPiArCX0KPiArCj4gKwly ZXR1cm4gMDsKPiArfQo+ICsKPiAgIHN0YXRpYyB2b2lkIGd1Y19jcmVhdGVfbG9nKHN0cnVjdCBp bnRlbF9ndWMgKmd1YykKPiAgIHsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBndWNfdG9faTkxNShndWMpOwo+IEBAIC04NTEsNiArOTc3LDEzIEBAIHN0YXRpYyB2b2lk IGd1Y19jcmVhdGVfbG9nKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKPiAgIAkJfQo+Cj4gICAJCWd1 Yy0+bG9nLm9iaiA9IG9iajsKPiArCj4gKwkJaWYgKGd1Y19jcmVhdGVfbG9nX2V4dHJhcyhndWMp KSB7Cj4gKwkJCWdlbV9yZWxlYXNlX2d1Y19vYmooZ3VjLT5sb2cub2JqKTsKPiArCQkJZ3VjLT5s b2cub2JqID0gTlVMTDsKPiArCQkJaTkxNS5ndWNfbG9nX2xldmVsID0gLTE7Cj4gKwkJCXJldHVy bjsKPiArCQl9Cj4gICAJfQo+Cj4gICAJLyogZWFjaCBhbGxvY2F0ZWQgdW5pdCBpcyBhIHBhZ2Ug Ki8KPiBAQCAtMTAyMSw2ICsxMTU0LDcgQEAgdm9pZCBpOTE1X2d1Y19zdWJtaXNzaW9uX2Zpbmko c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgCWdlbV9yZWxlYXNlX2d1Y19v YmooZGV2X3ByaXYtPmd1Yy5hZHNfb2JqKTsKPiAgIAlndWMtPmFkc19vYmogPSBOVUxMOwo+Cj4g KwlndWNfbG9nX2NsZWFudXAoZGV2X3ByaXYpOwo+ICAgCWdlbV9yZWxlYXNlX2d1Y19vYmooZGV2 X3ByaXYtPmd1Yy5sb2cub2JqKTsKPiAgIAlndWMtPmxvZy5vYmogPSBOVUxMOwo+Cj4gQEAgLTEw ODQsMyArMTIxOCwxNyBAQCBpbnQgaW50ZWxfZ3VjX3Jlc3VtZShzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQo+Cj4gICAJcmV0dXJuIGhvc3QyZ3VjX2FjdGlvbihndWMsIGRhdGEsIEFSUkFZX1NJWkUo ZGF0YSkpOwo+ICAgfQo+ICsKPiArdm9pZCBpOTE1X2d1Y19jYXB0dXJlX2xvZ3Moc3RydWN0IGRy bV9kZXZpY2UgKmRldikKPiArewo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiArCj4gKwlndWNfcmVhZF91cGRhdGVfbG9nX2J1ZmZlcihk ZXYpOwo+ICsKPiArCS8qIEdlbmVyYWxseSBkZXZpY2UgaXMgZXhwZWN0ZWQgdG8gYmUgYWN0aXZl IG9ubHkgYXQgdGhpcwo+ICsJICogdGltZSwgc28gZ2V0L3B1dCBzaG91bGQgYmUgcmVhbGx5IHF1 aWNrLgo+ICsJICovCj4gKwlpbnRlbF9ydW50aW1lX3BtX2dldChkZXZfcHJpdik7Cj4gKwlob3N0 Mmd1Y19sb2didWZmZXJfZmx1c2hfY29tcGxldGUoJmRldl9wcml2LT5ndWMpOwo+ICsJaW50ZWxf cnVudGltZV9wbV9wdXQoZGV2X3ByaXYpOwo+ICt9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfaXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCj4g aW5kZXggZmQ3M2M5NC4uZjkwZDNjNiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2lycS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+IEBA IC0xMjIxLDcgKzEyMjEsNyBAQCBzdGF0aWMgdm9pZCBnZW45X2d1YzJob3N0X2V2ZW50c193b3Jr KHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPiAgIAl9Cj4gICAJc3Bpbl91bmxvY2tfaXJxKCZk ZXZfcHJpdi0+aXJxX2xvY2spOwo+Cj4gLQkvKiBUT0RPOiBIYW5kbGUgdGhlIGV2ZW50cyBmb3Ig d2hpY2ggR3VDIGludGVycnVwdGVkIGhvc3QgKi8KPiArCWk5MTVfZ3VjX2NhcHR1cmVfbG9ncygm ZGV2X3ByaXYtPmRybSk7Cj4gICB9Cj4KPiAgIC8qKgo+IEBAIC0xNzA3LDcgKzE3MDcsOCBAQCBz dGF0aWMgdm9pZCBnZW45X2d1Y19pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsIHUzMiBndF9paXIpCj4gICAJCQkJCUk5MTVfUkVBRChTT0ZUX1NDUkFUQ0goMTUp KSAmIH5tc2cpOwo+Cj4gICAJCQkJLyogSGFuZGxlIGZsdXNoIGludGVycnVwdCBldmVudCBpbiBi b3R0b20gaGFsZiAqLwo+IC0JCQkJcXVldWVfd29yayhkZXZfcHJpdi0+d3EsICZkZXZfcHJpdi0+ Z3VjLmV2ZW50c193b3JrKTsKPiArCQkJCXF1ZXVlX3dvcmsoZGV2X3ByaXYtPmd1Yy5sb2cud3Es Cj4gKwkJCQkJCSZkZXZfcHJpdi0+Z3VjLmV2ZW50c193b3JrKTsKPiAgIAkJCX0KPiAgIAkJfQo+ ICAgCQlzcGluX3VubG9jaygmZGV2X3ByaXYtPmlycV9sb2NrKTsKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9ndWMuaAo+IGluZGV4IDI2NjNiNDEuLmQ0ZjBmYWUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9ndWMuaAo+IEBAIC0xMjUsNiArMTI1LDggQEAgc3RydWN0IGludGVsX2d1Y19mdyB7Cj4gICBz dHJ1Y3QgaW50ZWxfZ3VjX2xvZyB7Cj4gICAJdWludDMyX3QgZmxhZ3M7Cj4gICAJc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKm9iajsKPiArCXN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICp3cTsK PiArCXZvaWQgKmJ1Zl9hZGRyOwo+ICAgfTsKPgo+ICAgc3RydWN0IGludGVsX2d1YyB7Cj4gQEAg LTE3MSw1ICsxNzMsNiBAQCBpbnQgaTkxNV9ndWNfd3FfY2hlY2tfc3BhY2Uoc3RydWN0IGRybV9p OTE1X2dlbV9yZXF1ZXN0ICpycSk7Cj4gICBpbnQgaTkxNV9ndWNfc3VibWl0KHN0cnVjdCBkcm1f aTkxNV9nZW1fcmVxdWVzdCAqcnEpOwo+ICAgdm9pZCBpOTE1X2d1Y19zdWJtaXNzaW9uX2Rpc2Fi bGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiAgIHZvaWQgaTkxNV9ndWNf c3VibWlzc2lvbl9maW5pKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gK3Zv aWQgaTkxNV9ndWNfY2FwdHVyZV9sb2dzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+Cj4gICAj ZW5kaWYKPgoKUmVnYXJkcywKClR2cnRrbwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cg==