From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 06/18] drm/i915: Handle log buffer flush interrupt event from GuC Date: Mon, 15 Aug 2016 16:20:50 +0100 Message-ID: <57B1DDD2.9090707@linux.intel.com> References: <1471272599-14586-1-git-send-email-akash.goel@intel.com> <1471272599-14586-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 mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id B36176E578 for ; Mon, 15 Aug 2016 15:20:53 +0000 (UTC) In-Reply-To: <1471272599-14586-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 CgpPbiAxNS8wOC8xNiAxNTo0OSwgYWthc2guZ29lbEBpbnRlbC5jb20gd3JvdGU6Cj4gRnJvbTog U2FnYXIgQXJ1biBLYW1ibGUgPHNhZ2FyLmEua2FtYmxlQGludGVsLmNvbT4KPgo+IEd1QyB1a2Vy bmVsIHNlbmRzIGFuIGludGVycnVwdCB0byBIb3N0IHRvIGZsdXNoIHRoZSBsb2cgYnVmZmVyCj4g YW5kIGV4cGVjdHMgSG9zdCB0byBjb3JyZXNwb25kaW5nbHkgdXBkYXRlIHRoZSByZWFkIHBvaW50 ZXIKPiBpbmZvcm1hdGlvbiBpbiB0aGUgc3RhdGUgc3RydWN0dXJlLCBvbmNlIGl0IGhhcyBjb25z dW1lZCB0aGUKPiBsb2cgYnVmZmVyIGNvbnRlbnRzIGJ5IGNvcHlpbmcgdGhlbSB0byBhIGZpbGUg b3IgYnVmZmVyLgo+IEV2ZW4gaWYgSG9zdCBjb3VsZG4ndCBjb3B5IHRoZSBjb250ZW50cywgaXQg Y2FuIHN0aWxsIHVwZGF0ZSB0aGUKPiByZWFkIHBvaW50ZXIgc28gdGhhdCBsb2dnaW5nIHN0YXRl IGlzIG5vdCBkaXN0dXJiZWQgb24gR3VDIHNpZGUuCj4KPiB2MjoKPiAtIFVzZSBhIGRlZGljYXRl ZCB3b3JrcXVldWUgZm9yIGhhbmRsaW5nIGZsdXNoIGludGVycnVwdC4gKFR2cnRrbykKPiAtIFJl ZHVjZSB0aGUgb3ZlcmFsbCBsb2cgYnVmZmVyIGNvcHlpbmcgdGltZSBieSBza2lwcGluZyB0aGUg Y29weSBvZgo+ICAgIGNyYXNoIGJ1ZmZlciBhcmVhIGZvciByZWd1bGFyIGNhc2VzIGFuZCBjb3B5 aW5nIG9ubHkgdGhlIHN0YXRlCj4gICAgc3RydWN0dXJlIGRhdGEgaW4gZmlyc3QgcGFnZS4KPgo+ IHYzOgo+ICAgLSBDcmVhdGUgYSB2bWFsbG9jIG1hcHBpbmcgb2YgbG9nIGJ1ZmZlci4gKENocmlz KQo+ICAgLSBDb3ZlciB0aGUgZmx1c2ggYWNrbm93bGVkZ21lbnQgdW5kZXIgcnBtIGdldCAmIHB1 dC4oQ2hyaXMpCj4gICAtIFJldmVydCB0aGUgY2hhbmdlIG9mIHNraXBwaW5nIHRoZSBjb3B5IG9m IGNyYXNoIGR1bXAgYXJlYSwgYXMKPiAgICAgbm90IHJlYWxseSBuZWVkZWQsIHdpbGwgYmUgY292 ZXJlZCBieSBzdWJzZXF1ZW50IHBhdGNoLgo+Cj4gdjQ6Cj4gICAtIERlc3Ryb3kgdGhlIHdxIHVu ZGVyIHRoZSBzYW1lIGNvbmRpdGlvbiBpbiB3aGljaCBpdCB3YXMgY3JlYXRlZCwKPiAgICAgcGFz cyBkZXZfcGl2IHBvaW50ZXIgaW5zdGVhZCBvZiBkZXYgdG8gbmV3bHkgYWRkZWQgR3VDIGZ1bmN0 aW9uLAo+ICAgICBhZGQgbW9yZSBjb21tZW50cyAmIHJlbmFtZSB2YXJpYWJsZSBmb3IgY2xhcml0 eS4gKFR2cnRrbykKPgo+IHY1Ogo+IC0gQWxsb2NhdGUgJiBkZXN0cm95IHRoZSBkZWRpY2F0ZWQg d3EsIGZvciBoYW5kbGluZyBmbHVzaCBpbnRlcnJ1cHQsCj4gICAgZnJvbSB0aGUgc2V0dXAvdGVh cmRvd24gcm91dGluZXMgb2YgR3VDIGxvZ2dpbmcuIChDaHJpcykKPiAtIFZhbGlkYXRlIHRoZSBs b2cgYnVmZmVyIHNpemUgdmFsdWUgcmV0cmlldmVkIGZyb20gc3RhdGUgc3RydWN0dXJlCj4gICAg YW5kIGRvIHNvbWUgbWlub3IgY2xlYW51cC4gKFR2cnRrbykKPiAtIEZpeCBlcnJvci93YXJuaW5n cyByZXBvcnRlZCBieSBjaGVja3BhdGNoLiAoVHZydGtvKQo+IC0gUmViYXNlLgo+Cj4gU2lnbmVk LW9mZi1ieTogU2FnYXIgQXJ1biBLYW1ibGUgPHNhZ2FyLmEua2FtYmxlQGludGVsLmNvbT4KPiBT aWduZWQtb2ZmLWJ5OiBBa2FzaCBHb2VsIDxha2FzaC5nb2VsQGludGVsLmNvbT4KPiAtLS0KPiAg IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYyB8IDIwMiArKysrKysr KysrKysrKysrKysrKysrKysrKysrKwo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEu YyAgICAgICAgICAgIHwgIDI5ICsrKystCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9n dWMuaCAgICAgICAgICAgfCAgIDQgKwo+ICAgMyBmaWxlcyBjaGFuZ2VkLCAyMzQgaW5zZXJ0aW9u cygrKSwgMSBkZWxldGlvbigtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1 Ym1pc3Npb24uYwo+IGluZGV4IGIwNjJkYTYuLjJiMjdiODcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCj4gQEAgLTE3Miw2ICsxNzIsMTUgQEAgc3Rh dGljIGludCBob3N0Mmd1Y19zYW1wbGVfZm9yY2V3YWtlKHN0cnVjdCBpbnRlbF9ndWMgKmd1YywK PiAgIAlyZXR1cm4gaG9zdDJndWNfYWN0aW9uKGd1YywgZGF0YSwgQVJSQVlfU0laRShkYXRhKSk7 Cj4gICB9Cj4KPiArc3RhdGljIGludCBob3N0Mmd1Y19sb2didWZmZXJfZmx1c2hfY29tcGxldGUo c3RydWN0IGludGVsX2d1YyAqZ3VjKQo+ICt7Cj4gKwl1MzIgZGF0YVsxXTsKPiArCj4gKwlkYXRh WzBdID0gSE9TVDJHVUNfQUNUSU9OX0xPR19CVUZGRVJfRklMRV9GTFVTSF9DT01QTEVURTsKPiAr Cj4gKwlyZXR1cm4gaG9zdDJndWNfYWN0aW9uKGd1YywgZGF0YSwgMSk7Cj4gK30KPiArCj4gICAv Kgo+ICAgICogSW5pdGlhbGlzZSwgdXBkYXRlLCBvciBjbGVhciBkb29yYmVsbCBkYXRhIHNoYXJl ZCB3aXRoIHRoZSBHdUMKPiAgICAqCj4gQEAgLTgyOCw2ICs4MzcsMTc5IEBAIGVycjoKPiAgIAly ZXR1cm4gTlVMTDsKPiAgIH0KPgo+ICtzdGF0aWMgdm9pZCBndWNfbW92ZV90b19uZXh0X2J1Zihz dHJ1Y3QgaW50ZWxfZ3VjICpndWMpCj4gK3sKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgKmd1Y19n ZXRfd3JpdGVfYnVmZmVyKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKPiArewo+ICsJcmV0dXJuIE5V TEw7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGd1Y19yZWFkX3VwZGF0ZV9sb2dfYnVmZmVyKHN0 cnVjdCBpbnRlbF9ndWMgKmd1YykKPiArewo+ICsJc3RydWN0IGd1Y19sb2dfYnVmZmVyX3N0YXRl ICpsb2dfYnVmZmVyX3N0YXRlLCAqbG9nX2J1ZmZlcl9zbmFwc2hvdF9zdGF0ZTsKPiArCXN0cnVj dCBndWNfbG9nX2J1ZmZlcl9zdGF0ZSBsb2dfYnVmZmVyX3N0YXRlX2xvY2FsOwo+ICsJdm9pZCAq c3JjX2RhdGFfcHRyLCAqZHN0X2RhdGFfcHRyOwo+ICsJdW5zaWduZWQgaW50IGJ1ZmZlcl9zaXpl LCBleHBlY3RlZF9zaXplOwo+ICsJZW51bSBndWNfbG9nX2J1ZmZlcl90eXBlIHR5cGU7Cj4gKwo+ ICsJaWYgKFdBUk5fT04oIWd1Yy0+bG9nLmJ1Zl9hZGRyKSkKPiArCQlyZXR1cm47Cj4gKwo+ICsJ LyogR2V0IHRoZSBwb2ludGVyIHRvIHNoYXJlZCBHdUMgbG9nIGJ1ZmZlciAqLwo+ICsJbG9nX2J1 ZmZlcl9zdGF0ZSA9IHNyY19kYXRhX3B0ciA9IGd1Yy0+bG9nLmJ1Zl9hZGRyOwo+ICsKPiArCS8q IEdldCB0aGUgcG9pbnRlciB0byBsb2NhbCBidWZmZXIgdG8gc3RvcmUgdGhlIGxvZ3MgKi8KPiAr CWRzdF9kYXRhX3B0ciA9IGxvZ19idWZmZXJfc25hcHNob3Rfc3RhdGUgPSBndWNfZ2V0X3dyaXRl X2J1ZmZlcihndWMpOwo+ICsKPiArCS8qIEFjdHVhbCBsb2dzIGFyZSBwcmVzZW50IGZyb20gdGhl IDJuZCBwYWdlICovCj4gKwlzcmNfZGF0YV9wdHIgKz0gUEFHRV9TSVpFOwo+ICsJZHN0X2RhdGFf cHRyICs9IFBBR0VfU0laRTsKPiArCj4gKwlmb3IgKHR5cGUgPSBHVUNfSVNSX0xPR19CVUZGRVI7 IHR5cGUgPCBHVUNfTUFYX0xPR19CVUZGRVI7IHR5cGUrKykgewo+ICsJCS8qIE1ha2UgYSBjb3B5 IG9mIHRoZSBzdGF0ZSBzdHJ1Y3R1cmUgaW4gR3VDIGxvZyBidWZmZXIgKHdoaWNoCj4gKwkJICog aXMgdW5jYWNoZWQgbWFwcGVkKSBvbiB0aGUgc3RhY2sgdG8gYXZvaWQgcmVhZGluZyBmcm9tIGl0 Cj4gKwkJICogbXVsdGlwbGUgdGltZXMuCj4gKwkJICovCj4gKwkJbWVtY3B5KCZsb2dfYnVmZmVy X3N0YXRlX2xvY2FsLCBsb2dfYnVmZmVyX3N0YXRlLAo+ICsJCSAgICAgICBzaXplb2Yoc3RydWN0 IGd1Y19sb2dfYnVmZmVyX3N0YXRlKSk7Cj4gKwkJYnVmZmVyX3NpemUgPSBsb2dfYnVmZmVyX3N0 YXRlX2xvY2FsLnNpemU7Cj4gKwo+ICsJCWlmIChsb2dfYnVmZmVyX3NuYXBzaG90X3N0YXRlKSB7 Cj4gKwkJCS8qIEZpcnN0IGNvcHkgdGhlIHN0YXRlIHN0cnVjdHVyZSBpbiBzbmFwc2hvdCBidWZm ZXIgKi8KPiArCQkJbWVtY3B5KGxvZ19idWZmZXJfc25hcHNob3Rfc3RhdGUsICZsb2dfYnVmZmVy X3N0YXRlX2xvY2FsLAo+ICsJCQkgICAgICAgc2l6ZW9mKHN0cnVjdCBndWNfbG9nX2J1ZmZlcl9z dGF0ZSkpOwo+ICsKPiArCQkJLyogVGhlIHdyaXRlIHBvaW50ZXIgY291bGQgaGF2ZSBiZWVuIHVw ZGF0ZWQgYnkgdGhlIEd1Qwo+ICsJCQkgKiBmaXJtd2FyZSwgYWZ0ZXIgc2VuZGluZyB0aGUgZmx1 c2ggaW50ZXJydXB0IHRvIEhvc3QsCj4gKwkJCSAqIGZvciBjb25zaXN0ZW5jeSBzZXQgdGhlIHdy aXRlIHBvaW50ZXIgdmFsdWUgdG8gc2FtZQo+ICsJCQkgKiB2YWx1ZSBvZiBzYW1wbGVkX3dyaXRl X3B0ciBpbiB0aGUgc25hcHNob3QgYnVmZmVyLgo+ICsJCQkgKi8KPiArCQkJbG9nX2J1ZmZlcl9z bmFwc2hvdF9zdGF0ZS0+d3JpdGVfcHRyID0KPiArCQkJCWxvZ19idWZmZXJfc25hcHNob3Rfc3Rh dGUtPnNhbXBsZWRfd3JpdGVfcHRyOwo+ICsKPiArCQkJbG9nX2J1ZmZlcl9zbmFwc2hvdF9zdGF0 ZSsrOwo+ICsKPiArCQkJLyogTm93IGNvcHkgdGhlIGFjdHVhbCBsb2dzLCBidXQgYmVmb3JlIHRo YXQgdmFsaWRhdGUKPiArCQkJICogdGhlIGJ1ZmZlciBzaXplIHZhbHVlIHJldHJpZXZlZCBmcm9t IHN0YXRlIHN0cnVjdHVyZS4KPiArCQkJICovCj4gKwkJCWlmICh0eXBlID09IEdVQ19JU1JfTE9H X0JVRkZFUikKPiArCQkJCWV4cGVjdGVkX3NpemUgPSAoR1VDX0xPR19JU1JfUEFHRVMrMSkqUEFH RV9TSVpFOwo+ICsJCQllbHNlIGlmICh0eXBlID09IEdVQ19EUENfTE9HX0JVRkZFUikKPiArCQkJ CWV4cGVjdGVkX3NpemUgPSAoR1VDX0xPR19EUENfUEFHRVMrMSkqUEFHRV9TSVpFOwo+ICsJCQll bHNlCj4gKwkJCQlleHBlY3RlZF9zaXplID0gKEdVQ19MT0dfQ1JBU0hfUEFHRVMrMSkqUEFHRV9T SVpFOwoKQ2FuZGlkYXRlIGZvciBleHRyYWN0aW9uIHRvIGEgaGVscGVyIGZ1bmN0aW9uIC0gdG8g a2VlcCB0aGUgYm9keSBvZiB0aGUgCmxvb3Agc2hvcnRlci4KCkkgd291bGQgYWxzbyBkbyB0aGlz IGFib3ZlIGFmdGVyIHRoZSBsaW5lIHdoaWNoIGxvYWRzIHRoZSBidWZmZXJfc2l6ZSBzbyAKb3Bl cmF0aW9ucyBhcmUgbG9naWNhbGx5IHRvZ2V0aGVyLgoKQW5kIGEgbml0cGljazogc3BhY2VzIGFy b3VuZCBhcml0aG1ldGljIG9wZXJhdG9ycyBhcmUgc3RhbmRhcmQgLSAKY2hlY2twYXRjaCBkaWQg bm90IGNvbXBsYWluPyBNYXliZSBpdCBkb2VzIG9ubHkgaW4gc3RyaWN0IG1vZGU/Cgo+ICsKPiAr CQkJaWYgKHVubGlrZWx5KGJ1ZmZlcl9zaXplICE9IGV4cGVjdGVkX3NpemUpKSB7Cj4gKwkJCQlE Uk1fRVJST1IoInVuZXhwZWN0ZWQgbG9nIGJ1ZmZlciBzaXplXG4iKTsKPiArCQkJCS8qIENvbnRp bnVlIHdpdGggZnVydGhlciBjb3B5aW5nLCBhbHJlYWR5IHN0YXRlCj4gKwkJCQkgKiBzdHJ1Y3R1 cmUgaGFzIGJlZW4gY29waWVkIHdoaWNoIGlzIGVub3VnaCB0bwo+ICsJCQkJICogbGV0IFVzZXJz cGFjZSBrbm93IGFib3V0IHRoZSBhbm9tYWx5Lgo+ICsJCQkJICovCj4gKwkJCQlidWZmZXJfc2l6 ZSA9IGV4cGVjdGVkX3NpemU7CgpXb3VsZCBpdCBiZSB3b3J0aCBjaGVja2luZyBhbmQgcHJvdGVj dGluZyBhZ2FpbnN0IHJlcG9ydGVkIGJ1ZmZlciBzaXplIApiZWluZyBzbWFsbGVyIHRoYW4gZXhw ZWN0ZWQ/Cgo+ICsJCQl9Cj4gKwo+ICsJCQltZW1jcHkoZHN0X2RhdGFfcHRyLCBzcmNfZGF0YV9w dHIsIGJ1ZmZlcl9zaXplKTsKPiArCj4gKwkJCXNyY19kYXRhX3B0ciArPSBidWZmZXJfc2l6ZTsK PiArCQkJZHN0X2RhdGFfcHRyICs9IGJ1ZmZlcl9zaXplOwo+ICsJCX0KPiArCj4gKwkJLyogRklY TUU6IGludmFsaWRhdGUvZmx1c2ggZm9yIGxvZyBidWZmZXIgbmVlZGVkICovCj4gKwo+ICsJCS8q IFVwZGF0ZSB0aGUgcmVhZCBwb2ludGVyIGluIHRoZSBzaGFyZWQgbG9nIGJ1ZmZlciAqLwo+ICsJ CWxvZ19idWZmZXJfc3RhdGUtPnJlYWRfcHRyID0KPiArCQkJbG9nX2J1ZmZlcl9zdGF0ZV9sb2Nh bC5zYW1wbGVkX3dyaXRlX3B0cjsKPiArCj4gKwkJLyogQ2xlYXIgdGhlICdmbHVzaCB0byBmaWxl JyBmbGFnICovCj4gKwkJbG9nX2J1ZmZlcl9zdGF0ZS0+Zmx1c2hfdG9fZmlsZSA9IDA7Cj4gKwkJ bG9nX2J1ZmZlcl9zdGF0ZSsrOwo+ICsJfQo+ICsKPiArCWlmIChsb2dfYnVmZmVyX3NuYXBzaG90 X3N0YXRlKQo+ICsJCWd1Y19tb3ZlX3RvX25leHRfYnVmKGd1Yyk7Cj4gK30KPiArCj4gK3N0YXRp YyB2b2lkIGd1Y19jYXB0dXJlX2xvZ3Nfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCj4g K3sKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9Cj4gKwkJY29udGFpbmVy X29mKHdvcmssIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlLCBndWMubG9nLmZsdXNoX3dvcmspOwo+ ICsKPiArCXNwaW5fbG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7Cj4gKwkvKiBTcGVlZCB1 cCB3b3JrIGNhbmNlbGxhdGlvbiBkdXJpbmcgZGlzYWJsaW5nIGd1YyBpbnRlcnJ1cHRzLiAqLwoK SG0gSSBjYW4ndCBzZWUgd29yayBjYW5jZWxsYXRpb24gaW4gdGhpcyBwYXRjaD8KCj4gKwlpZiAo IWRldl9wcml2LT5ndWMuaW50ZXJydXB0c19lbmFibGVkKSB7Cj4gKwkJc3Bpbl91bmxvY2tfaXJx KCZkZXZfcHJpdi0+aXJxX2xvY2spOwo+ICsJCXJldHVybjsKPiArCX0KPiArCXNwaW5fdW5sb2Nr X2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKCkNhbiBnZW45X2Rpc2FibGVfZ3VjX2ludGVycnVw dHMgcnVuIG9uIGFub3RoZXIgQ1BVIGp1c3QgYXQgdGhpcyBwb2ludD8gClNvIGFmdGVyIGEgc3Bp bmxvY2sgaGVyZSBoYXMgYmVlbiByZWxlYXNlZC4gSWYgc28gdGhlIHNwaW5sb2NrIGRhbmNlIAph Ym92ZSBkb2VzIG5vdCBkbyBhbnl0aGluZy4KCj4gKwo+ICsJaTkxNV9ndWNfY2FwdHVyZV9sb2dz KGRldl9wcml2KTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgZ3VjX2xvZ19jbGVhbnVwKHN0cnVj dCBpbnRlbF9ndWMgKmd1YykKPiArewo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gZ3VjX3RvX2k5MTUoZ3VjKTsKPiArCj4gKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZkZXZf cHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7Cj4gKwo+ICsJaWYgKGk5MTUuZ3VjX2xvZ19sZXZlbCA8 IDApCj4gKwkJcmV0dXJuOwo+ICsKPiArCS8qIEZpcnN0IGRpc2FibGUgdGhlIGZsdXNoIGludGVy cnVwdCAqLwo+ICsJZ2VuOV9kaXNhYmxlX2d1Y19pbnRlcnJ1cHRzKGRldl9wcml2KTsKPiArCj4g KwlpZiAoZ3VjLT5sb2cuZmx1c2hfd3EpCj4gKwkJZGVzdHJveV93b3JrcXVldWUoZ3VjLT5sb2cu Zmx1c2hfd3EpOwoKSXQgZG9lc24ndCBuZWVkIGNhbmNlbF93b3JrX3N5bmMgYmVmb3JlIG9yIHNv bWV0aGluZz8KCj4gKwo+ICsJZ3VjLT5sb2cuZmx1c2hfd3EgPSBOVUxMOwo+ICsKPiArCWlmIChn dWMtPmxvZy5idWZfYWRkcikKPiArCQlpOTE1X2dlbV9vYmplY3RfdW5waW5fbWFwKGd1Yy0+bG9n LnZtYS0+b2JqKTsKPiArCj4gKwlndWMtPmxvZy5idWZfYWRkciA9IE5VTEw7Cj4gK30KPiArCj4g K3N0YXRpYyBpbnQgZ3VjX2NyZWF0ZV9sb2dfZXh0cmFzKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykK PiArewo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZ3VjX3RvX2k5MTUo Z3VjKTsKPiArCXZvaWQgKnZhZGRyOwo+ICsJaW50IHJldDsKPiArCj4gKwlsb2NrZGVwX2Fzc2Vy dF9oZWxkKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7Cj4gKwo+ICsJLyogTm90aGluZyB0 byBkbyAqLwo+ICsJaWYgKGk5MTUuZ3VjX2xvZ19sZXZlbCA8IDApCj4gKwkJcmV0dXJuIDA7Cj4g Kwo+ICsJaWYgKCFndWMtPmxvZy5idWZfYWRkcikgewo+ICsJCS8qIENyZWF0ZSBhIHZtYWxsb2Mg bWFwcGluZyBvZiBsb2cgYnVmZmVyIHBhZ2VzICovCj4gKwkJdmFkZHIgPSBpOTE1X2dlbV9vYmpl Y3RfcGluX21hcChndWMtPmxvZy52bWEtPm9iaiwgSTkxNV9NQVBfV0IpOwo+ICsJCWlmIChJU19F UlIodmFkZHIpKSB7Cj4gKwkJCXJldCA9IFBUUl9FUlIodmFkZHIpOwo+ICsJCQlEUk1fRVJST1Io IkNvdWxkbid0IG1hcCBsb2cgYnVmZmVyIHBhZ2VzICVkXG4iLCByZXQpOwo+ICsJCQlyZXR1cm4g cmV0Owo+ICsJCX0KPiArCj4gKwkJZ3VjLT5sb2cuYnVmX2FkZHIgPSB2YWRkcjsKPiArCX0KPiAr Cj4gKwlpZiAoIWd1Yy0+bG9nLmZsdXNoX3dxKSB7Cj4gKwkJSU5JVF9XT1JLKCZndWMtPmxvZy5m bHVzaF93b3JrLCBndWNfY2FwdHVyZV9sb2dzX3dvcmspOwo+ICsKPiArCQkvKiBOZWVkIGEgZGVk aWNhdGVkIHdxIHRvIHByb2Nlc3MgbG9nIGJ1ZmZlciBmbHVzaCBpbnRlcnJ1cHRzCj4gKwkJICog ZnJvbSBHdUMgd2l0aG91dCBtdWNoIGRlbGF5IHNvIGFzIHRvIGF2b2lkIGFueSBsb3NzIG9mIGxv Z3MuCj4gKwkJICovCj4gKwkJZ3VjLT5sb2cuZmx1c2hfd3EgPSBhbGxvY19vcmRlcmVkX3dvcmtx dWV1ZSgiaTkxNS1ndWNfbG9nIiwgMCk7Cj4gKwkJaWYgKGd1Yy0+bG9nLmZsdXNoX3dxID09IE5V TEwpIHsKPiArCQkJRFJNX0VSUk9SKCJDb3VsZG4ndCBhbGxvY2F0ZSB0aGUgd3EgZm9yIEd1QyBs b2dnaW5nXG4iKTsKPiArCQkJcmV0dXJuIC1FTk9NRU07Cj4gKwkJfQo+ICsJfQo+ICsKPiArCXJl dHVybiAwOwo+ICt9Cj4gKwo+ICAgc3RhdGljIHZvaWQgZ3VjX2NyZWF0ZV9sb2coc3RydWN0IGlu dGVsX2d1YyAqZ3VjKQo+ICAgewo+ICAgCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwo+IEBAIC04NTMs NiArMTAzNSwxMyBAQCBzdGF0aWMgdm9pZCBndWNfY3JlYXRlX2xvZyhzdHJ1Y3QgaW50ZWxfZ3Vj ICpndWMpCj4gICAJCX0KPgo+ICAgCQlndWMtPmxvZy52bWEgPSB2bWE7Cj4gKwo+ICsJCWlmIChn dWNfY3JlYXRlX2xvZ19leHRyYXMoZ3VjKSkgewo+ICsJCQlndWNfbG9nX2NsZWFudXAoZ3VjKTsK PiArCQkJaTkxNV92bWFfdW5waW5fYW5kX3JlbGVhc2UoJmd1Yy0+bG9nLnZtYSk7Cj4gKwkJCWk5 MTUuZ3VjX2xvZ19sZXZlbCA9IC0xOwo+ICsJCQlyZXR1cm47Cj4gKwkJfQo+ICAgCX0KPgo+ICAg CS8qIGVhY2ggYWxsb2NhdGVkIHVuaXQgaXMgYSBwYWdlICovCj4gQEAgLTEwMzQsNiArMTIyMyw3 IEBAIHZvaWQgaTkxNV9ndWNfc3VibWlzc2lvbl9maW5pKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKPiAgIAlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmZGV2X3ByaXYtPmd1YzsK Pgo+ICAgCWk5MTVfdm1hX3VucGluX2FuZF9yZWxlYXNlKCZndWMtPmFkc192bWEpOwo+ICsJZ3Vj X2xvZ19jbGVhbnVwKGd1Yyk7Cj4gICAJaTkxNV92bWFfdW5waW5fYW5kX3JlbGVhc2UoJmd1Yy0+ bG9nLnZtYSk7CgpXb3VsZCBpdCBtYWtlIHNlbnNlIHRvIG1vdmUgdGhlIHVucGluX2FuZF9yZWxl YXNlIGludG8gdGhlIGd1Y19sb2dfY2xlYW51cD8KCj4KPiAgIAlpZiAoZ3VjLT5jdHhfcG9vbF92 bWEpCj4gQEAgLTEwOTUsMyArMTI4NSwxNSBAQCBpbnQgaW50ZWxfZ3VjX3Jlc3VtZShzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KQo+Cj4gICAJcmV0dXJuIGhvc3QyZ3VjX2FjdGlvbihndWMsIGRhdGEs IEFSUkFZX1NJWkUoZGF0YSkpOwo+ICAgfQo+ICsKPiArdm9pZCBpOTE1X2d1Y19jYXB0dXJlX2xv Z3Moc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICt7Cj4gKwlndWNfcmVhZF91 cGRhdGVfbG9nX2J1ZmZlcigmZGV2X3ByaXYtPmd1Yyk7Cj4gKwo+ICsJLyogR2VuZXJhbGx5IGRl dmljZSBpcyBleHBlY3RlZCB0byBiZSBhY3RpdmUgb25seSBhdCB0aGlzCj4gKwkgKiB0aW1lLCBz byBnZXQvcHV0IHNob3VsZCBiZSByZWFsbHkgcXVpY2suCj4gKwkgKi8KPiArCWludGVsX3J1bnRp bWVfcG1fZ2V0KGRldl9wcml2KTsKPiArCWhvc3QyZ3VjX2xvZ2J1ZmZlcl9mbHVzaF9jb21wbGV0 ZSgmZGV2X3ByaXYtPmd1Yyk7Cj4gKwlpbnRlbF9ydW50aW1lX3BtX3B1dChkZXZfcHJpdik7Cj4g K30KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKPiBpbmRleCBlYjQ3NzRmLi43ZTQzZDdkIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCj4gQEAgLTE2NjgsNyArMTY2OCwzNCBAQCBzdGF0aWMg dm9pZCBnZW45X2d1Y19pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsIHUzMiBndF9paXIpCj4gICAJCWludGVycnVwdHNfZW5hYmxlZCA9IGRldl9wcml2LT5ndWMu aW50ZXJydXB0c19lbmFibGVkOwo+ICAgCQlzcGluX3VubG9jaygmZGV2X3ByaXYtPmlycV9sb2Nr KTsKPiAgIAkJaWYgKGludGVycnVwdHNfZW5hYmxlZCkgewo+IC0JCQkvKiBUT0RPOiBIYW5kbGUg ZXZlbnRzIGZvciB3aGljaCBHdUMgaW50ZXJydXB0ZWQgaG9zdCAqLwo+ICsJCQkvKiBTYW1wbGUg dGhlIGxvZyBidWZmZXIgZmx1c2ggcmVsYXRlZCBiaXRzICYgY2xlYXIgdGhlbQo+ICsJCQkgKiBv dXQgbm93IGl0c2VsZiBmcm9tIHRoZSBtZXNzYWdlIGlkZW50aXR5IHJlZ2lzdGVyIHRvCj4gKwkJ CSAqIG1pbmltaXplIHRoZSBwcm9iYWJpbGl0eSBvZiBsb3NpbmcgYSBmbHVzaCBpbnRlcnJ1cHQs Cj4gKwkJCSAqIHdoZW4gdGhlcmUgYXJlIGJhY2sgdG8gYmFjayBmbHVzaCBpbnRlcnJ1cHRzLgo+ ICsJCQkgKiBUaGVyZSBjYW4gYmUgYSBuZXcgZmx1c2ggaW50ZXJydXB0LCBmb3IgZGlmZmVyZW50 IGxvZwo+ICsJCQkgKiBidWZmZXIgdHlwZSAobGlrZSBmb3IgSVNSKSwgd2hpbHN0IEhvc3QgaXMg aGFuZGxpbmcKPiArCQkJICogb25lIChmb3IgRFBDKS4gU2luY2Ugc2FtZSBiaXQgaXMgdXNlZCBp biBtZXNzYWdlCj4gKwkJCSAqIHJlZ2lzdGVyIGZvciBJU1IgJiBEUEMsIGl0IGNvdWxkIGhhcHBl biB0aGF0IEd1Qwo+ICsJCQkgKiBzZXRzIHRoZSBiaXQgZm9yIDJuZCBpbnRlcnJ1cHQgYnV0IEhv c3QgY2xlYXJzIG91dAo+ICsJCQkgKiB0aGUgYml0IG9uIGhhbmRsaW5nIHRoZSAxc3QgaW50ZXJy dXB0Lgo+ICsJCQkgKi8KPiArCQkJdTMyIG1zZywgZmx1c2g7Cj4gKwo+ICsJCQltc2cgPSBJOTE1 X1JFQUQoU09GVF9TQ1JBVENIKDE1KSk7Cj4gKwkJCWZsdXNoID0gbXNnICYgKEdVQzJIT1NUX01T R19DUkFTSF9EVU1QX1BPU1RFRCB8Cj4gKwkJCQkgICAgICAgR1VDMkhPU1RfTVNHX0ZMVVNIX0xP R19CVUZGRVIpOwo+ICsJCQlpZiAoZmx1c2gpIHsKPiArCQkJCS8qIENsZWFyIHRoZSBtZXNzYWdl IGJpdHMgdGhhdCBhcmUgaGFuZGxlZCAqLwo+ICsJCQkJSTkxNV9XUklURShTT0ZUX1NDUkFUQ0go MTUpLCBtc2cgJiB+Zmx1c2gpOwo+ICsKPiArCQkJCS8qIEhhbmRsZSBmbHVzaCBpbnRlcnJ1cHQg aW4gYm90dG9tIGhhbGYgKi8KPiArCQkJCXF1ZXVlX3dvcmsoZGV2X3ByaXYtPmd1Yy5sb2cuZmx1 c2hfd3EsCj4gKwkJCQkJICAgJmRldl9wcml2LT5ndWMubG9nLmZsdXNoX3dvcmspOwo+ICsJCQl9 IGVsc2Ugewo+ICsJCQkJLyogTm90IGNsZWFyaW5nIG9mIHVuaGFuZGxlZCBldmVudCBiaXRzIHdv bid0Cj4gKwkJCQkgKiByZXN1bHQgaW4gcmUtdHJpZ2dlcmluZyBvZiB0aGUgaW50ZXJydXB0Lgo+ ICsJCQkJICovCj4gKwkJCX0KPiAgIAkJfQo+ICAgCX0KPiAgIH0KPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9ndWMuaAo+IGluZGV4IDFmYzYzZmUuLmQwNTNhMTggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9ndWMuaAo+IEBAIC0xMjQsNiArMTI0LDkgQEAgc3RydWN0IGludGVsX2d1Y19mdyB7Cj4gICBz dHJ1Y3QgaW50ZWxfZ3VjX2xvZyB7Cj4gICAJdWludDMyX3QgZmxhZ3M7Cj4gICAJc3RydWN0IGk5 MTVfdm1hICp2bWE7Cj4gKwl2b2lkICpidWZfYWRkcjsKPiArCXN0cnVjdCB3b3JrcXVldWVfc3Ry dWN0ICpmbHVzaF93cTsKPiArCXN0cnVjdCB3b3JrX3N0cnVjdCBmbHVzaF93b3JrOwo+ICAgfTsK Pgo+ICAgc3RydWN0IGludGVsX2d1YyB7Cj4gQEAgLTE2Nyw1ICsxNzAsNiBAQCBpbnQgaTkxNV9n dWNfc3VibWlzc2lvbl9lbmFibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsK PiAgIGludCBpOTE1X2d1Y193cV9jaGVja19zcGFjZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVl c3QgKnJxKTsKPiAgIHZvaWQgaTkxNV9ndWNfc3VibWlzc2lvbl9kaXNhYmxlKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gICB2b2lkIGk5MTVfZ3VjX3N1Ym1pc3Npb25fZmlu aShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ICt2b2lkIGk5MTVfZ3VjX2Nh cHR1cmVfbG9ncyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+Cj4gICAjZW5k aWYKPgoKUmVnYXJkcywKClR2cnRrbwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pbnRlbC1nZngK