From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 06/19] drm/i915: Handle log buffer flush interrupt event from GuC Date: Fri, 19 Aug 2016 11:08:02 +0100 Message-ID: <57B6DA82.3010703@linux.intel.com> References: <1471596198-30748-1-git-send-email-akash.goel@intel.com> <1471596198-30748-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 mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 7533F6E056 for ; Fri, 19 Aug 2016 10:08:04 +0000 (UTC) In-Reply-To: <1471596198-30748-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 Ck9uIDE5LzA4LzE2IDA5OjQzLCBha2FzaC5nb2VsQGludGVsLmNvbSB3cm90ZToKPiBGcm9tOiBT 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 cmVkIGJ5IHN1YnNlcXVlbnQgcGF0Y2guCj4KPiB2NDoKPiAgIC0gRGVzdHJveSB0aGUgd3EgdW5k ZXIgdGhlIHNhbWUgY29uZGl0aW9uIGluIHdoaWNoIGl0IHdhcyBjcmVhdGVkLAo+ICAgICBwYXNz IGRldl9waXYgcG9pbnRlciBpbnN0ZWFkIG9mIGRldiB0byBuZXdseSBhZGRlZCBHdUMgZnVuY3Rp b24sCj4gICAgIGFkZCBtb3JlIGNvbW1lbnRzICYgcmVuYW1lIHZhcmlhYmxlIGZvciBjbGFyaXR5 LiAoVHZydGtvKQo+Cj4gdjU6Cj4gLSBBbGxvY2F0ZSAmIGRlc3Ryb3kgdGhlIGRlZGljYXRlZCB3 cSwgZm9yIGhhbmRsaW5nIGZsdXNoIGludGVycnVwdCwKPiAgICBmcm9tIHRoZSBzZXR1cC90ZWFy ZG93biByb3V0aW5lcyBvZiBHdUMgbG9nZ2luZy4gKENocmlzKQo+IC0gVmFsaWRhdGUgdGhlIGxv ZyBidWZmZXIgc2l6ZSB2YWx1ZSByZXRyaWV2ZWQgZnJvbSBzdGF0ZSBzdHJ1Y3R1cmUKPiAgICBh bmQgZG8gc29tZSBtaW5vciBjbGVhbnVwLiAoVHZydGtvKQo+IC0gRml4IGVycm9yL3dhcm5pbmdz IHJlcG9ydGVkIGJ5IGNoZWNrcGF0Y2guIChUdnJ0a28pCj4gLSBSZWJhc2UuCj4KPiB2NjoKPiAg IC0gUmVtb3ZlIHRoZSBpbnRlcnJ1cHRzX2VuYWJsZWQgY2hlY2sgZnJvbSBndWNfY2FwdHVyZV9s b2dzX3dvcmssIG5lZWQKPiAgICAgdG8gcHJvY2VzcyB0aGF0IGxhc3Qgd29yayBpdGVtIGFsc28s IHF1ZXVlZCBqdXN0IGJlZm9yZSBkaXNhYmxpbmcgdGhlCj4gICAgIGludGVycnVwdCBhcyBsb2cg YnVmZmVyIGZsdXNoIGludGVycnVwdCBoYW5kbGluZyBpcyBhIGJpdCBkaWZmZXJlbnQKPiAgICAg Y2FzZSB3aGVyZSBHdUMgaXMgYWN0dWFsbHkgZXhwZWN0aW5nIGFuIEFDSyBmcm9tIGhvc3QsIHdo aWNoIHNob3VsZCBiZQo+ICAgICBwcm92aWRlZCB0byBrZWVwIHRoZSBsb2dnaW5nIGdvaW5nLgo+ ICAgICBTeW5jIGFnYWluc3QgdGhlIHdvcmsgd2lsbCBiZSBkb25lIGJ5IGNhbGxlciBkaXNhYmxp bmcgdGhlIGludGVycnVwdC4KPiAgIC0gRG9uJ3Qgc2FtcGxlIHRoZSBsb2cgYnVmZmVyIHNpemUg dmFsdWUgZnJvbSBzdGF0ZSBzdHJ1Y3R1cmUsIGRpcmVjdGx5Cj4gICAgIHVzZSB0aGUgZXhwZWN0 ZWQgdmFsdWUgdG8gbW92ZSB0aGUgcG9pbnRlciAmIGRvIHRoZSBjb3B5IGFuZCB0aGF0IGNhbm5v dAo+ICAgICBnbyB3cm9uZyAob3V0IG9mIGJvdW5kcykgYXMgRHJpdmVyIG9ubHkgYWxsb2NhdGVk IHRoZSBsb2cgYnVmZmVyIGFuZCB0aGUKPiAgICAgcmVsYXkgYnVmZmVycy4gRHJpdmVyIHNob3Vs ZCByZWZyYWluIGZyb20gaW50ZXJwcmV0aW5nIHRoZSBsb2cgcGFja2V0LAo+ICAgICBhcyBtdWNo IHBvc3NpYmxlIGFuZCBsZXQgVXNlcnNwYWNlIHBhcnNlciBkZXRlY3QgdGhlIGFub21hbHkuIChD aHJpcykKPgo+IHY3Ogo+IC0gVXNlIHN3aXRjaCBzdGF0ZW1lbnQgaW5zdGVhZCBvZiAnaWYgZWxz ZScgZm9yIHJldHJpZXZpbmcgdGhlIEd1QyBsb2cKPiAgICBidWZmZXIgc2l6ZS4gKFR2cnRrbykK PiAtIFJlZmFjdG9yZWQgdGhlIGxvZyBidWZmZXIgY29weWluZyBmdW5jdGlvbiBhbmQgc2hvcnRl bmRlZCB0aGUgbmFtZSBvZgo+ICAgIGNvdXBsZSBvZiB2YXJpYWJsZXMgZm9yIGJldHRlciByZWFk YWJpbGl0eS4gKFR2cnRrbykKPgo+IFNpZ25lZC1vZmYtYnk6IFNhZ2FyIEFydW4gS2FtYmxlIDxz YWdhci5hLmthbWJsZUBpbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogQWthc2ggR29lbCA8YWth c2guZ29lbEBpbnRlbC5jb20+Cj4gLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1 Y19zdWJtaXNzaW9uLmMgfCAxODkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgICAgICAgICAgICB8ICAyOCArKysrLQo+ICAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmggICAgICAgICAgIHwgICA0ICsKPiAgIDMg ZmlsZXMgY2hhbmdlZCwgMjIwIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKPgo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKPiBpbmRleCBiMDYyZGE2Li44 MGU4NzI1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1p c3Npb24uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24u Ywo+IEBAIC0xNzIsNiArMTcyLDE1IEBAIHN0YXRpYyBpbnQgaG9zdDJndWNfc2FtcGxlX2ZvcmNl d2FrZShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMsCj4gICAJcmV0dXJuIGhvc3QyZ3VjX2FjdGlvbihn dWMsIGRhdGEsIEFSUkFZX1NJWkUoZGF0YSkpOwo+ICAgfQo+Cj4gK3N0YXRpYyBpbnQgaG9zdDJn dWNfbG9nYnVmZmVyX2ZsdXNoX2NvbXBsZXRlKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKPiArewo+ ICsJdTMyIGRhdGFbMV07Cj4gKwo+ICsJZGF0YVswXSA9IEhPU1QyR1VDX0FDVElPTl9MT0dfQlVG RkVSX0ZJTEVfRkxVU0hfQ09NUExFVEU7Cj4gKwo+ICsJcmV0dXJuIGhvc3QyZ3VjX2FjdGlvbihn dWMsIGRhdGEsIDEpOwo+ICt9Cj4gKwo+ICAgLyoKPiAgICAqIEluaXRpYWxpc2UsIHVwZGF0ZSwg b3IgY2xlYXIgZG9vcmJlbGwgZGF0YSBzaGFyZWQgd2l0aCB0aGUgR3VDCj4gICAgKgo+IEBAIC04 MjgsNiArODM3LDE2NiBAQCBlcnI6Cj4gICAJcmV0dXJuIE5VTEw7Cj4gICB9Cj4KPiArc3RhdGlj IHZvaWQgZ3VjX21vdmVfdG9fbmV4dF9idWYoc3RydWN0IGludGVsX2d1YyAqZ3VjKQo+ICt7Cj4g K30KPiArCj4gK3N0YXRpYyB2b2lkICpndWNfZ2V0X3dyaXRlX2J1ZmZlcihzdHJ1Y3QgaW50ZWxf Z3VjICpndWMpCj4gK3sKPiArCXJldHVybiBOVUxMOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdW5zaWdu ZWQgaW50IGd1Y19nZXRfbG9nX2J1ZmZlcl9zaXplKGVudW0gZ3VjX2xvZ19idWZmZXJfdHlwZSB0 eXBlKQo+ICt7Cj4gKwlzd2l0Y2ggKHR5cGUpIHsKPiArCWNhc2UgR1VDX0lTUl9MT0dfQlVGRkVS Ogo+ICsJCXJldHVybiAoR1VDX0xPR19JU1JfUEFHRVMgKyAxKSAqIFBBR0VfU0laRTsKPiArCWNh c2UgR1VDX0RQQ19MT0dfQlVGRkVSOgo+ICsJCXJldHVybiAoR1VDX0xPR19EUENfUEFHRVMgKyAx KSAqIFBBR0VfU0laRTsKPiArCWNhc2UgR1VDX0NSQVNIX0RVTVBfTE9HX0JVRkZFUjoKPiArCQly ZXR1cm4gKEdVQ19MT0dfQ1JBU0hfUEFHRVMgKyAxKSAqIFBBR0VfU0laRTsKPiArCWRlZmF1bHQ6 Cj4gKwkJTUlTU0lOR19DQVNFKHR5cGUpOwo+ICsJfQo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4g Kwo+ICtzdGF0aWMgdm9pZCBndWNfcmVhZF91cGRhdGVfbG9nX2J1ZmZlcihzdHJ1Y3QgaW50ZWxf Z3VjICpndWMpCj4gK3sKPiArCXN0cnVjdCBndWNfbG9nX2J1ZmZlcl9zdGF0ZSAqbG9nX2J1Zl9z dGF0ZSwgKmxvZ19idWZfc25hcHNob3Rfc3RhdGU7Cj4gKwlzdHJ1Y3QgZ3VjX2xvZ19idWZmZXJf c3RhdGUgbG9nX2J1Zl9zdGF0ZV9sb2NhbDsKPiArCXVuc2lnbmVkIGludCBidWZmZXJfc2l6ZSwg d3JpdGVfb2Zmc2V0Owo+ICsJZW51bSBndWNfbG9nX2J1ZmZlcl90eXBlIHR5cGU7Cj4gKwl2b2lk ICpzcmNfZGF0YSwgKmRzdF9kYXRhOwo+ICsKPiArCWlmIChXQVJOX09OKCFndWMtPmxvZy5idWZf YWRkcikpCj4gKwkJcmV0dXJuOwo+ICsKPiArCS8qIEdldCB0aGUgcG9pbnRlciB0byBzaGFyZWQg R3VDIGxvZyBidWZmZXIgKi8KPiArCWxvZ19idWZfc3RhdGUgPSBzcmNfZGF0YSA9IGd1Yy0+bG9n LmJ1Zl9hZGRyOwo+ICsKPiArCS8qIEdldCB0aGUgcG9pbnRlciB0byBsb2NhbCBidWZmZXIgdG8g c3RvcmUgdGhlIGxvZ3MgKi8KPiArCWxvZ19idWZfc25hcHNob3Rfc3RhdGUgPSBkc3RfZGF0YSA9 IGd1Y19nZXRfd3JpdGVfYnVmZmVyKGd1Yyk7Cj4gKwo+ICsJLyogQWN0dWFsIGxvZ3MgYXJlIHBy ZXNlbnQgZnJvbSB0aGUgMm5kIHBhZ2UgKi8KPiArCXNyY19kYXRhICs9IFBBR0VfU0laRTsKPiAr CWRzdF9kYXRhICs9IFBBR0VfU0laRTsKPiArCj4gKwlmb3IgKHR5cGUgPSBHVUNfSVNSX0xPR19C VUZGRVI7IHR5cGUgPCBHVUNfTUFYX0xPR19CVUZGRVI7IHR5cGUrKykgewo+ICsJCS8qIE1ha2Ug YSBjb3B5IG9mIHRoZSBzdGF0ZSBzdHJ1Y3R1cmUsIGluc2lkZSBHdUMgbG9nIGJ1ZmZlcgo+ICsJ CSAqICh3aGljaCBpcyB1bmNhY2hlZCBtYXBwZWQpLCBvbiB0aGUgc3RhY2sgdG8gYXZvaWQgcmVh ZGluZwo+ICsJCSAqIGZyb20gaXQgbXVsdGlwbGUgdGltZXMuCj4gKwkJICovCj4gKwkJbWVtY3B5 KCZsb2dfYnVmX3N0YXRlX2xvY2FsLCBsb2dfYnVmX3N0YXRlLAo+ICsJCSAgICAgICBzaXplb2Yo c3RydWN0IGd1Y19sb2dfYnVmZmVyX3N0YXRlKSk7Cj4gKwkJYnVmZmVyX3NpemUgPSBndWNfZ2V0 X2xvZ19idWZmZXJfc2l6ZSh0eXBlKTsKPiArCQl3cml0ZV9vZmZzZXQgPSBsb2dfYnVmX3N0YXRl X2xvY2FsLnNhbXBsZWRfd3JpdGVfcHRyOwo+ICsKPiArCQkvKiBVcGRhdGUgdGhlIHN0YXRlIG9m IHNoYXJlZCBsb2cgYnVmZmVyICovCj4gKwkJbG9nX2J1Zl9zdGF0ZS0+cmVhZF9wdHIgPSB3cml0 ZV9vZmZzZXQ7Cj4gKwkJbG9nX2J1Zl9zdGF0ZS0+Zmx1c2hfdG9fZmlsZSA9IDA7Cj4gKwkJbG9n X2J1Zl9zdGF0ZSsrOwo+ICsKPiArCQlpZiAodW5saWtlbHkoIWxvZ19idWZfc25hcHNob3Rfc3Rh dGUpKQo+ICsJCQljb250aW51ZTsKPiArCj4gKwkJLyogRmlyc3QgY29weSB0aGUgc3RhdGUgc3Ry dWN0dXJlIGluIHNuYXBzaG90IGJ1ZmZlciAqLwo+ICsJCW1lbWNweShsb2dfYnVmX3NuYXBzaG90 X3N0YXRlLCAmbG9nX2J1Zl9zdGF0ZV9sb2NhbCwKPiArCQkgICAgICAgc2l6ZW9mKHN0cnVjdCBn dWNfbG9nX2J1ZmZlcl9zdGF0ZSkpOwo+ICsKPiArCQkvKiBUaGUgd3JpdGUgcG9pbnRlciBjb3Vs ZCBoYXZlIGJlZW4gdXBkYXRlZCBieSBHdUMgZmlybXdhcmUsCj4gKwkJICogYWZ0ZXIgc2VuZGlu ZyB0aGUgZmx1c2ggaW50ZXJydXB0IHRvIEhvc3QsIGZvciBjb25zaXN0ZW5jeQo+ICsJCSAqIHNl dCB3cml0ZSBwb2ludGVyIHZhbHVlIHRvIHNhbWUgdmFsdWUgb2Ygc2FtcGxlZF93cml0ZV9wdHIK PiArCQkgKiBpbiB0aGUgc25hcHNob3QgYnVmZmVyLgo+ICsJCSAqLwo+ICsJCWxvZ19idWZfc25h cHNob3Rfc3RhdGUtPndyaXRlX3B0ciA9IHdyaXRlX29mZnNldDsKPiArCQlsb2dfYnVmX3NuYXBz aG90X3N0YXRlKys7Cj4gKwo+ICsJCS8qIE5vdyBjb3B5IHRoZSBhY3R1YWwgbG9ncy4gKi8KPiAr CQltZW1jcHkoZHN0X2RhdGEsIHNyY19kYXRhLCBidWZmZXJfc2l6ZSk7Cj4gKwo+ICsJCXNyY19k YXRhICs9IGJ1ZmZlcl9zaXplOwo+ICsJCWRzdF9kYXRhICs9IGJ1ZmZlcl9zaXplOwo+ICsKPiAr CQkvKiBGSVhNRTogaW52YWxpZGF0ZS9mbHVzaCBmb3IgbG9nIGJ1ZmZlciBuZWVkZWQgKi8KPiAr CX0KPiArCj4gKwlpZiAobG9nX2J1Zl9zbmFwc2hvdF9zdGF0ZSkKPiArCQlndWNfbW92ZV90b19u ZXh0X2J1ZihndWMpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBndWNfY2FwdHVyZV9sb2dzX3dv cmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPQo+ICsJCWNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSwgZ3VjLmxvZy5mbHVzaF93b3JrKTsKPiArCj4gKwlpOTE1X2d1Y19jYXB0dXJlX2xv Z3MoZGV2X3ByaXYpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBndWNfbG9nX2NsZWFudXAoc3Ry dWN0IGludGVsX2d1YyAqZ3VjKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSBndWNfdG9faTkxNShndWMpOwo+ICsKPiArCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmRl dl9wcml2LT5kcm0uc3RydWN0X211dGV4KTsKPiArCj4gKwlpZiAoaTkxNS5ndWNfbG9nX2xldmVs IDwgMCkKPiArCQlyZXR1cm47Cj4gKwo+ICsJLyogRmlyc3QgZGlzYWJsZSB0aGUgZmx1c2ggaW50 ZXJydXB0ICovCj4gKwlnZW45X2Rpc2FibGVfZ3VjX2ludGVycnVwdHMoZGV2X3ByaXYpOwo+ICsK PiArCWlmIChndWMtPmxvZy5mbHVzaF93cSkKPiArCQlkZXN0cm95X3dvcmtxdWV1ZShndWMtPmxv Zy5mbHVzaF93cSk7Cj4gKwo+ICsJZ3VjLT5sb2cuZmx1c2hfd3EgPSBOVUxMOwo+ICsKPiArCWlm IChndWMtPmxvZy5idWZfYWRkcikKPiArCQlpOTE1X2dlbV9vYmplY3RfdW5waW5fbWFwKGd1Yy0+ bG9nLnZtYS0+b2JqKTsKPiArCj4gKwlndWMtPmxvZy5idWZfYWRkciA9IE5VTEw7Cj4gK30KPiAr Cj4gK3N0YXRpYyBpbnQgZ3VjX2NyZWF0ZV9sb2dfZXh0cmFzKHN0cnVjdCBpbnRlbF9ndWMgKmd1 YykKPiArewo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZ3VjX3RvX2k5 MTUoZ3VjKTsKPiArCXZvaWQgKnZhZGRyOwo+ICsJaW50IHJldDsKPiArCj4gKwlsb2NrZGVwX2Fz c2VydF9oZWxkKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7Cj4gKwo+ICsJLyogTm90aGlu ZyB0byBkbyAqLwo+ICsJaWYgKGk5MTUuZ3VjX2xvZ19sZXZlbCA8IDApCj4gKwkJcmV0dXJuIDA7 Cj4gKwo+ICsJaWYgKCFndWMtPmxvZy5idWZfYWRkcikgewo+ICsJCS8qIENyZWF0ZSBhIHZtYWxs b2MgbWFwcGluZyBvZiBsb2cgYnVmZmVyIHBhZ2VzICovCj4gKwkJdmFkZHIgPSBpOTE1X2dlbV9v YmplY3RfcGluX21hcChndWMtPmxvZy52bWEtPm9iaiwgSTkxNV9NQVBfV0IpOwo+ICsJCWlmIChJ U19FUlIodmFkZHIpKSB7Cj4gKwkJCXJldCA9IFBUUl9FUlIodmFkZHIpOwo+ICsJCQlEUk1fRVJS T1IoIkNvdWxkbid0IG1hcCBsb2cgYnVmZmVyIHBhZ2VzICVkXG4iLCByZXQpOwo+ICsJCQlyZXR1 cm4gcmV0Owo+ICsJCX0KPiArCj4gKwkJZ3VjLT5sb2cuYnVmX2FkZHIgPSB2YWRkcjsKPiArCX0K PiArCj4gKwlpZiAoIWd1Yy0+bG9nLmZsdXNoX3dxKSB7Cj4gKwkJSU5JVF9XT1JLKCZndWMtPmxv Zy5mbHVzaF93b3JrLCBndWNfY2FwdHVyZV9sb2dzX3dvcmspOwo+ICsKPiArCQkvKiBOZWVkIGEg ZGVkaWNhdGVkIHdxIHRvIHByb2Nlc3MgbG9nIGJ1ZmZlciBmbHVzaCBpbnRlcnJ1cHRzCj4gKwkJ ICogZnJvbSBHdUMgd2l0aG91dCBtdWNoIGRlbGF5IHNvIGFzIHRvIGF2b2lkIGFueSBsb3NzIG9m IGxvZ3MuCj4gKwkJICovCj4gKwkJZ3VjLT5sb2cuZmx1c2hfd3EgPSBhbGxvY19vcmRlcmVkX3dv cmtxdWV1ZSgiaTkxNS1ndWNfbG9nIiwgMCk7Cj4gKwkJaWYgKGd1Yy0+bG9nLmZsdXNoX3dxID09 IE5VTEwpIHsKPiArCQkJRFJNX0VSUk9SKCJDb3VsZG4ndCBhbGxvY2F0ZSB0aGUgd3EgZm9yIEd1 QyBsb2dnaW5nXG4iKTsKPiArCQkJcmV0dXJuIC1FTk9NRU07Cj4gKwkJfQo+ICsJfQo+ICsKPiAr CXJldHVybiAwOwo+ICt9Cj4gKwo+ICAgc3RhdGljIHZvaWQgZ3VjX2NyZWF0ZV9sb2coc3RydWN0 IGludGVsX2d1YyAqZ3VjKQo+ICAgewo+ICAgCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwo+IEBAIC04 NTMsNiArMTAyMiwxMyBAQCBzdGF0aWMgdm9pZCBndWNfY3JlYXRlX2xvZyhzdHJ1Y3QgaW50ZWxf Z3VjICpndWMpCj4gICAJCX0KPgo+ICAgCQlndWMtPmxvZy52bWEgPSB2bWE7Cj4gKwo+ICsJCWlm IChndWNfY3JlYXRlX2xvZ19leHRyYXMoZ3VjKSkgewo+ICsJCQlndWNfbG9nX2NsZWFudXAoZ3Vj KTsKPiArCQkJaTkxNV92bWFfdW5waW5fYW5kX3JlbGVhc2UoJmd1Yy0+bG9nLnZtYSk7Cj4gKwkJ CWk5MTUuZ3VjX2xvZ19sZXZlbCA9IC0xOwo+ICsJCQlyZXR1cm47Cj4gKwkJfQo+ICAgCX0KPgo+ ICAgCS8qIGVhY2ggYWxsb2NhdGVkIHVuaXQgaXMgYSBwYWdlICovCj4gQEAgLTEwMzQsNiArMTIx MCw3IEBAIHZvaWQgaTkxNV9ndWNfc3VibWlzc2lvbl9maW5pKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKPiAgIAlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmZGV2X3ByaXYtPmd1 YzsKPgo+ICAgCWk5MTVfdm1hX3VucGluX2FuZF9yZWxlYXNlKCZndWMtPmFkc192bWEpOwo+ICsJ Z3VjX2xvZ19jbGVhbnVwKGd1Yyk7Cj4gICAJaTkxNV92bWFfdW5waW5fYW5kX3JlbGVhc2UoJmd1 Yy0+bG9nLnZtYSk7Cj4KPiAgIAlpZiAoZ3VjLT5jdHhfcG9vbF92bWEpCj4gQEAgLTEwOTUsMyAr MTI3MiwxNSBAQCBpbnQgaW50ZWxfZ3VjX3Jlc3VtZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ Cj4gICAJcmV0dXJuIGhvc3QyZ3VjX2FjdGlvbihndWMsIGRhdGEsIEFSUkFZX1NJWkUoZGF0YSkp Owo+ICAgfQo+ICsKPiArdm9pZCBpOTE1X2d1Y19jYXB0dXJlX2xvZ3Moc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQo+ICt7Cj4gKwlndWNfcmVhZF91cGRhdGVfbG9nX2J1ZmZlcigm ZGV2X3ByaXYtPmd1Yyk7Cj4gKwo+ICsJLyogR2VuZXJhbGx5IGRldmljZSBpcyBleHBlY3RlZCB0 byBiZSBhY3RpdmUgb25seSBhdCB0aGlzCj4gKwkgKiB0aW1lLCBzbyBnZXQvcHV0IHNob3VsZCBi ZSByZWFsbHkgcXVpY2suCj4gKwkgKi8KPiArCWludGVsX3J1bnRpbWVfcG1fZ2V0KGRldl9wcml2 KTsKPiArCWhvc3QyZ3VjX2xvZ2J1ZmZlcl9mbHVzaF9jb21wbGV0ZSgmZGV2X3ByaXYtPmd1Yyk7 Cj4gKwlpbnRlbF9ydW50aW1lX3BtX3B1dChkZXZfcHJpdik7Cj4gK30KPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfaXJxLmMKPiBpbmRleCBmYzFmZTcyLi4xOWMwMDc4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2lycS5jCj4gQEAgLTE2NjIsNyArMTY2MiwzMyBAQCBzdGF0aWMgdm9pZCBnZW42X3Jwc19pcnFf aGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBwbV9paXIpCj4g ICBzdGF0aWMgdm9pZCBnZW45X2d1Y19pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsIHUzMiBndF9paXIpCj4gICB7Cj4gICAJaWYgKGd0X2lpciAmIEdFTjlfR1VD X1RPX0hPU1RfSU5UX0VWRU5UKSB7Cj4gLQkJLyogVE9ETzogSGFuZGxlIGV2ZW50cyBmb3Igd2hp Y2ggR3VDIGludGVycnVwdGVkIGhvc3QgKi8KPiArCQkvKiBTYW1wbGUgdGhlIGxvZyBidWZmZXIg Zmx1c2ggcmVsYXRlZCBiaXRzICYgY2xlYXIgdGhlbSBvdXQgbm93Cj4gKwkJICogaXRzZWxmIGZy b20gdGhlIG1lc3NhZ2UgaWRlbnRpdHkgcmVnaXN0ZXIgdG8gbWluaW1pemUgdGhlCj4gKwkJICog cHJvYmFiaWxpdHkgb2YgbG9zaW5nIGEgZmx1c2ggaW50ZXJydXB0LCB3aGVuIHRoZXJlIGFyZSBi YWNrCj4gKwkJICogdG8gYmFjayBmbHVzaCBpbnRlcnJ1cHRzLgo+ICsJCSAqIFRoZXJlIGNhbiBi ZSBhIG5ldyBmbHVzaCBpbnRlcnJ1cHQsIGZvciBkaWZmZXJlbnQgbG9nIGJ1ZmZlcgo+ICsJCSAq IHR5cGUgKGxpa2UgZm9yIElTUiksIHdoaWxzdCBIb3N0IGlzIGhhbmRsaW5nIG9uZSAoZm9yIERQ QykuCj4gKwkJICogU2luY2Ugc2FtZSBiaXQgaXMgdXNlZCBpbiBtZXNzYWdlIHJlZ2lzdGVyIGZv ciBJU1IgJiBEUEMsIGl0Cj4gKwkJICogY291bGQgaGFwcGVuIHRoYXQgR3VDIHNldHMgdGhlIGJp dCBmb3IgMm5kIGludGVycnVwdCBidXQgSG9zdAo+ICsJCSAqIGNsZWFycyBvdXQgdGhlIGJpdCBv biBoYW5kbGluZyB0aGUgMXN0IGludGVycnVwdC4KPiArCQkgKi8KPiArCQl1MzIgbXNnLCBmbHVz aDsKPiArCj4gKwkJbXNnID0gSTkxNV9SRUFEKFNPRlRfU0NSQVRDSCgxNSkpOwo+ICsJCWZsdXNo ID0gbXNnICYgKEdVQzJIT1NUX01TR19DUkFTSF9EVU1QX1BPU1RFRCB8Cj4gKwkJCSAgICAgICBH VUMySE9TVF9NU0dfRkxVU0hfTE9HX0JVRkZFUik7Cj4gKwkJaWYgKGZsdXNoKSB7Cj4gKwkJCS8q IENsZWFyIHRoZSBtZXNzYWdlIGJpdHMgdGhhdCBhcmUgaGFuZGxlZCAqLwo+ICsJCQlJOTE1X1dS SVRFKFNPRlRfU0NSQVRDSCgxNSksIG1zZyAmIH5mbHVzaCk7Cj4gKwo+ICsJCQkvKiBIYW5kbGUg Zmx1c2ggaW50ZXJydXB0IGluIGJvdHRvbSBoYWxmICovCj4gKwkJCXF1ZXVlX3dvcmsoZGV2X3By aXYtPmd1Yy5sb2cuZmx1c2hfd3EsCj4gKwkJCQkgICAmZGV2X3ByaXYtPmd1Yy5sb2cuZmx1c2hf d29yayk7Cj4gKwkJfSBlbHNlIHsKPiArCQkJLyogTm90IGNsZWFyaW5nIG9mIHVuaGFuZGxlZCBl dmVudCBiaXRzIHdvbid0IHJlc3VsdCBpbgo+ICsJCQkgKiByZS10cmlnZ2VyaW5nIG9mIHRoZSBp bnRlcnJ1cHQuCj4gKwkJCSAqLwo+ICsJCX0KPiAgIAl9Cj4gICB9Cj4KPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9ndWMuaAo+IGluZGV4IDFmYzYzZmUuLmQwNTNhMTggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9ndWMuaAo+IEBAIC0xMjQsNiArMTI0LDkgQEAgc3RydWN0IGludGVsX2d1Y19mdyB7Cj4g ICBzdHJ1Y3QgaW50ZWxfZ3VjX2xvZyB7Cj4gICAJdWludDMyX3QgZmxhZ3M7Cj4gICAJc3RydWN0 IGk5MTVfdm1hICp2bWE7Cj4gKwl2b2lkICpidWZfYWRkcjsKPiArCXN0cnVjdCB3b3JrcXVldWVf c3RydWN0ICpmbHVzaF93cTsKPiArCXN0cnVjdCB3b3JrX3N0cnVjdCBmbHVzaF93b3JrOwo+ICAg fTsKPgo+ICAgc3RydWN0IGludGVsX2d1YyB7Cj4gQEAgLTE2Nyw1ICsxNzAsNiBAQCBpbnQgaTkx NV9ndWNfc3VibWlzc2lvbl9lbmFibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KTsKPiAgIGludCBpOTE1X2d1Y193cV9jaGVja19zcGFjZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3Jl cXVlc3QgKnJxKTsKPiAgIHZvaWQgaTkxNV9ndWNfc3VibWlzc2lvbl9kaXNhYmxlKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gICB2b2lkIGk5MTVfZ3VjX3N1Ym1pc3Npb25f ZmluaShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ICt2b2lkIGk5MTVfZ3Vj X2NhcHR1cmVfbG9ncyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+Cj4gICAj ZW5kaWYKPgoKUmV2aWV3ZWQtYnk6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRl bC5jb20+CgpSZWdhcmRzLAoKVHZydGtvCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeAo=