From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Gordon Subject: Re: [PATCH v2 5/6] drm/i915/guc: refactor doorbell management code Date: Mon, 13 Jun 2016 11:25:23 +0100 Message-ID: <575E8A13.4000902@intel.com> References: <1465577461-35616-1-git-send-email-david.s.gordon@intel.com> <1465577461-35616-6-git-send-email-david.s.gordon@intel.com> <575E8162.2010302@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id ABCEB6E50A for ; Mon, 13 Jun 2016 10:25:25 +0000 (UTC) In-Reply-To: <575E8162.2010302@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Tvrtko Ursulin , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gMTMvMDYvMTYgMTA6NDgsIFR2cnRrbyBVcnN1bGluIHdyb3RlOgo+Cj4gT24gMTAvMDYvMTYg MTc6NTEsIERhdmUgR29yZG9uIHdyb3RlOgo+PiBUaGlzIHBhdGNoIHJlZmFjdG9ycyB0aGUgZHJp dmVyJ3MgaGFuZGxpbmcgYW5kIHRyYWNraW5nIG9mIGRvb3JiZWxscywgaW4KPj4gcHJlcGFyYXRp b24gZm9yIGEgbGF0ZXIgb25lIHdoaWNoIHdpbGwgcmVzb2x2ZSBhIHN1c3BlbmQtcmVzdW1lIGlz c3VlLgo+Pgo+PiBUaGVyZSBhcmUgdGhyZWUgcmVzb3VyY2VzIHRvIGJlIG1hbmFnZWQ6Cj4+IDEu IENhY2hlbGluZXM6IGEgc2luZ2xlIGxpbmUgd2l0aGluIHRoZSBjbGllbnQtb2JqZWN0J3MgcGFn ZSAwCj4+ICAgICBpcyBzbm9vcGVkIGJ5IGRvb3JiZWxsIGhhcmR3YXJlIGZvciB3cml0ZXMgZnJv bSB0aGUgaG9zdC4KPj4gMi4gRG9vcmJlbGwgcmVnaXN0ZXJzOiBlYWNoIGRlZmluZXMgb25lIGNh Y2hlbGluZSB0byBiZSBzbm9vcGVkLgo+PiAzLiBCaXRtYXA6IHRyYWNrcyB3aGljaCBkb29yYmVs bCByZWdpc3RlcnMgYXJlIGluIHVzZS4KPj4KPj4gVGhlIGRvb3JiZWxsIHNldHVwL3RlYXJkb3du IHByb3RvY29sIHN0YXJ0cyB3aXRoOgo+PiAxLiBQaWNrIGEgY2FjaGVsaW5lOiBzZWxlY3RfZG9v cmJlbGxfY2FjaGVsaW5lKCkKPj4gMi4gRmluZCBhbiBhdmFpbGFibGUgZG9vcmJlbGwgcmVnaXN0 ZXI6IGFzc2lnbl9kb29yYmVsbCgpCj4+IChUaGVzZSB2YWx1ZXMgYXJlIHBhc3NlZCB0byB0aGUg R3VDIHZpYSB0aGUgc2hhcmVkIGNvbnRleHQKPj4gZGVzY3JpcHRvcjsgdGhpcyBwYXJ0IG9mIHRo ZSBzZXF1ZW5jZSByZW1haW5zIHVuY2hhbmdlZCkuCj4+Cj4+IDMuIFVwZGF0ZSB0aGUgYml0bWFw IHRvIHJlZmxlY3QgcmVnaXN0ZXJzLWluLXVzZQo+PiA0LiBQcmVwYXJlIHRoZSBjYWNoZWxpbmUg Zm9yIHVzZSBieSBzZXR0aW5nIGl0cyBzdGF0dXMgdG8gRU5BQkxFRAo+PiA1LiBBc2sgdGhlIEd1 QyB0byBwcm9ncmFtIHRoZSBkb29yYmVsbCB0byBzbm9vcCB0aGUgY2FjaGVsaW5lCj4+Cj4+IGFu ZCBvZiBjb3Vyc2UgdGVhcmRvd24gaXMgdmVyeSBzaW1pbGFyOgo+PiA2LiBTZXQgdGhlIGNhY2hl bGluZSB0byBESVNBQkxFRAo+PiA3LiBBc2sgdGhlIEd1QyB0byByZXByb2dyYW0gdGhlIGRvb3Ji ZWxsIHRvIHN0b3Agc25vb3BpbmcKPj4gOC4gUmVjb3JkIHRoYXQgdGhlIGRvb3JiZWxsIGlzIG5v dCBpbiB1c2UuCj4+Cj4+IE9wZXJhdGlvbnMgNi04IChndWNfZGlzYWJsZV9kb29yYmVsbCgpLCBo b3N0Mmd1Y19yZWxlYXNlX2Rvb3JiZWxsKCksIGFuZAo+PiByZWxlYXNlX2Rvb3JiZWxsKCkpIHdl cmUgY2FsbGVkIGluIHNlcXVlbmNlIGZyb20gZ3VjX2NsaWVudF9mcmVlKCksIGJ1dAo+PiBhcmUg bm93IG1vdmVkIGludG8gdGhlIHRlYXJkb3duIHBoYXNlIG9mIHRoZSBjb21tb24gZnVuY3Rpb24u Cj4+Cj4+IFN0ZXBzIDQtNSAoZ3VjX2luaXRfZG9vcmJlbGwoKSBhbmQgaG9zdDJndWNfYWxsb2Nh dGVfZG9vcmJlbGwoKSkgd2VyZQo+PiBzaW1pbGFybHkgZG9uZSBhcyBzZXF1ZW50aWFsIHN0ZXBz IGluIGd1Y19jbGllbnRfYWxsb2MoKSwgYnV0IHNpbmNlIGl0Cj4+IHR1cm5zIG91dCB0aGF0IHdl IGRvbid0IG5lZWQgdG8gYmUgYWJsZSB0byBkbyB0aGVtIHNlcGFyYXRlbHkgdGhleSdyZQo+PiBu b3cgY29sbGVjdGVkIGludG8gdGhlIHNldHVwIHBoYXNlIG9mIHRoZSBjb21tb24gZnVuY3Rpb24u Cj4+Cj4+IFRoZSBvbmx5IG5ldyBjb2RlIChhbmQgbmV3IGNhcGFiaWxpdHkpIGlzIHRoZSBibG9j ayB0YWdnZWQKPj4gICAgICAvKiBVcGRhdGUgdGhlIEd1QydzIGlkZWEgb2YgdGhlIGRvb3JiZWxs IElEICovCj4+IGkuZS4gd2UgY2FuIG5vdyAqY2hhbmdlKiB0aGUgZG9vcmJlbGwgcmVnaXN0ZXIg dXNlZCBieSBhbiBleGlzdGluZwo+PiBjbGllbnQsIHdoZXJlYXMgcHJldmlvdXNseSBpdCB3YXMg c2V0IG9uY2UgZm9yIHRoZSBlbnRpcmUgbGlmZXRpbWUKPj4gb2YgdGhlIGNsaWVudC4gV2Ugd2ls bCB1c2UgdGhpcyBuZXcgZmVhdHVyZSBpbiB0aGUgbmV4dCBwYXRjaC4KPj4KPj4gdjI6IFRyaXZp YWwgaW5kZXBlbmRlbnQgZml4ZXMgcHVzaGVkIGFoZWFkIGFzIHNlcGFyYXRlIHBhdGNoZXMuCj4+ ICAgICAgTVVDSCBsb25nZXIgY29tbWl0IG1lc3NhZ2UgOikgW1R2cnRrbyBVcnN1bGluXQo+Pgo+ PiBTaWduZWQtb2ZmLWJ5OiBEYXZlIEdvcmRvbiA8ZGF2aWQucy5nb3Jkb25AaW50ZWwuY29tPgo+ PiAtLS0KPj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMgfCA5 NAo+PiArKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KPj4gICAxIGZpbGUgY2hhbmdlZCwg NTMgaW5zZXJ0aW9ucygrKSwgNDEgZGVsZXRpb25zKC0pCj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKPj4gYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKPj4gaW5kZXggNDViMzNmOC4uMTgzM2JmZCAx MDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5j Cj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYwo+PiBA QCAtMTc0LDMxICsxNzQsNTkgQEAgc3RhdGljIGludCBob3N0Mmd1Y19zYW1wbGVfZm9yY2V3YWtl KHN0cnVjdAo+PiBpbnRlbF9ndWMgKmd1YywKPj4gICAgKiBjbGllbnQgb2JqZWN0IHdoaWNoIGNv bnRhaW5zIHRoZSBwYWdlIGJlaW5nIHVzZWQgZm9yIHRoZSBkb29yYmVsbAo+PiAgICAqLwo+Pgo+ PiAtc3RhdGljIHZvaWQgZ3VjX2luaXRfZG9vcmJlbGwoc3RydWN0IGludGVsX2d1YyAqZ3VjLAo+ PiAtICAgICAgICAgICAgICAgICAgc3RydWN0IGk5MTVfZ3VjX2NsaWVudCAqY2xpZW50KQo+PiAr c3RhdGljIGludCBndWNfdXBkYXRlX2Rvb3JiZWxsX2lkKHN0cnVjdCBpbnRlbF9ndWMgKmd1YywK Pj4gKyAgICAgICAgICAgICAgICAgIHN0cnVjdCBpOTE1X2d1Y19jbGllbnQgKmNsaWVudCwKPj4g KyAgICAgICAgICAgICAgICAgIHUxNiBuZXdfaWQpCj4+ICAgewo+PiArICAgIHN0cnVjdCBzZ190 YWJsZSAqc2cgPSBndWMtPmN0eF9wb29sX29iai0+cGFnZXM7Cj4+ICsgICAgdm9pZCAqZG9vcmJl bGxfYml0bWFwID0gZ3VjLT5kb29yYmVsbF9iaXRtYXA7Cj4+ICAgICAgIHN0cnVjdCBndWNfZG9v cmJlbGxfaW5mbyAqZG9vcmJlbGw7Cj4+ICsgICAgc3RydWN0IGd1Y19jb250ZXh0X2Rlc2MgZGVz YzsKPj4gKyAgICBzaXplX3QgbGVuOwo+Pgo+PiAgICAgICBkb29yYmVsbCA9IGNsaWVudC0+Y2xp ZW50X2Jhc2UgKyBjbGllbnQtPmRvb3JiZWxsX29mZnNldDsKPj4KPj4gLSAgICBkb29yYmVsbC0+ ZGJfc3RhdHVzID0gR1VDX0RPT1JCRUxMX0VOQUJMRUQ7Cj4+ICsgICAgaWYgKGNsaWVudC0+ZG9v cmJlbGxfaWQgIT0gR1VDX0lOVkFMSURfRE9PUkJFTExfSUQgJiYKPj4gKyAgICAgICAgdGVzdF9i aXQoY2xpZW50LT5kb29yYmVsbF9pZCwgZG9vcmJlbGxfYml0bWFwKSkgewo+PiArICAgICAgICAv KiBEZWFjdGl2YXRlIHRoZSBvbGQgZG9vcmJlbGwgKi8KPj4gKyAgICAgICAgZG9vcmJlbGwtPmRi X3N0YXR1cyA9IEdVQ19ET09SQkVMTF9ESVNBQkxFRDsKPj4gKyAgICAgICAgKHZvaWQpaG9zdDJn dWNfcmVsZWFzZV9kb29yYmVsbChndWMsIGNsaWVudCk7Cj4+ICsgICAgICAgIF9fY2xlYXJfYml0 KGNsaWVudC0+ZG9vcmJlbGxfaWQsIGRvb3JiZWxsX2JpdG1hcCk7Cj4+ICsgICAgfQo+PiArCj4+ ICsgICAgLyogVXBkYXRlIHRoZSBHdUMncyBpZGVhIG9mIHRoZSBkb29yYmVsbCBJRCAqLwo+PiAr ICAgIGxlbiA9IHNnX3Bjb3B5X3RvX2J1ZmZlcihzZy0+c2dsLCBzZy0+bmVudHMsICZkZXNjLCBz aXplb2YoZGVzYyksCj4+ICsgICAgICAgICAgICAgICAgIHNpemVvZihkZXNjKSAqIGNsaWVudC0+ Y3R4X2luZGV4KTsKPj4gKyAgICBpZiAobGVuICE9IHNpemVvZihkZXNjKSkKPj4gKyAgICAgICAg cmV0dXJuIC1FRkFVTFQ7Cj4+ICsgICAgZGVzYy5kYl9pZCA9IG5ld19pZDsKPj4gKyAgICBsZW4g PSBzZ19wY29weV9mcm9tX2J1ZmZlcihzZy0+c2dsLCBzZy0+bmVudHMsICZkZXNjLCBzaXplb2Yo ZGVzYyksCj4+ICsgICAgICAgICAgICAgICAgIHNpemVvZihkZXNjKSAqIGNsaWVudC0+Y3R4X2lu ZGV4KTsKPj4gKyAgICBpZiAobGVuICE9IHNpemVvZihkZXNjKSkKPj4gKyAgICAgICAgcmV0dXJu IC1FRkFVTFQ7Cj4+ICsKPj4gKyAgICBjbGllbnQtPmRvb3JiZWxsX2lkID0gbmV3X2lkOwo+PiAr ICAgIGlmIChuZXdfaWQgPT0gR1VDX0lOVkFMSURfRE9PUkJFTExfSUQpCj4+ICsgICAgICAgIHJl dHVybiAwOwo+PiArCj4+ICsgICAgLyogQWN0aXZhdGUgdGhlIG5ldyBkb29yYmVsbCAqLwo+PiAr ICAgIF9fc2V0X2JpdChuZXdfaWQsIGRvb3JiZWxsX2JpdG1hcCk7Cj4KPiBJcyB0aGlzIHRoZSBz YW1lIGJpdCBhcyBpbiBhc3NpZ25fZG9vcmJlbGwgc28gcmVkdW5kYW50PwoKSXQgaXMgdGhlIHNh bWUgYml0LCBhbmQgeWVzLCBpdCB3aWxsIGJlIHJlZHVuZGFudCBkdXJpbmcgdGhlIGluaXRpYWwg CnNldHVwLCBidXQgd2hlbiB3ZSBjb21lIHRvICpyZSphc3NpZ24gdGhlIGFzc29jaWF0aW9uIGJl dHdlZW4gYSBjbGllbnQgCmFuZCBhIGRvb3JiZWxsIChpbiB0aGUgbmV4dCBwYXRjaCkgdGhlbiBp dCB3b24ndCBiZS4KCldlIGNvdWxkIGFsc28gY2hvb3NlIHRvIGhhdmUgYXNzaWduX2Rvb3JiZWxs KCkgTk9UIHVwZGF0ZSB0aGUgbWFwLCBzbyAKdGhlbiB0aGlzIHdvdWxkIGJlIHRoZSBvbmx5IHBs YWNlIHdoZXJlIHRoZSBiaXRtYXAgZ2V0cyB1cGRhdGVkLiBJJ2QgCmhhdmUgdG8gcmVuYW1lIGl0 IHRob3VnaCwgYXMgaXQgd291bGQgbm8gbG9uZ2VyIGJlIGFzc2lnbmluZyBhbnl0aGluZyEKCi5E YXZlLgoKPj4gICAgICAgZG9vcmJlbGwtPmNvb2tpZSA9IDA7Cj4+ICsgICAgZG9vcmJlbGwtPmRi X3N0YXR1cyA9IEdVQ19ET09SQkVMTF9FTkFCTEVEOwo+PiArICAgIHJldHVybiBob3N0Mmd1Y19h bGxvY2F0ZV9kb29yYmVsbChndWMsIGNsaWVudCk7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBpbnQg Z3VjX2luaXRfZG9vcmJlbGwoc3RydWN0IGludGVsX2d1YyAqZ3VjLAo+PiArICAgICAgICAgICAg ICAgICAgc3RydWN0IGk5MTVfZ3VjX2NsaWVudCAqY2xpZW50LAo+PiArICAgICAgICAgICAgICAg ICAgdWludDE2X3QgZGJfaWQpCj4+ICt7Cj4+ICsgICAgcmV0dXJuIGd1Y191cGRhdGVfZG9vcmJl bGxfaWQoZ3VjLCBjbGllbnQsIGRiX2lkKTsKPj4gICB9Cj4+Cj4+ICAgc3RhdGljIHZvaWQgZ3Vj X2Rpc2FibGVfZG9vcmJlbGwoc3RydWN0IGludGVsX2d1YyAqZ3VjLAo+PiAgICAgICAgICAgICAg ICAgICAgc3RydWN0IGk5MTVfZ3VjX2NsaWVudCAqY2xpZW50KQo+PiAgIHsKPj4gLSAgICBzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBndWNfdG9faTkxNShndWMpOwo+PiAtICAg IHN0cnVjdCBndWNfZG9vcmJlbGxfaW5mbyAqZG9vcmJlbGw7Cj4+IC0gICAgaTkxNV9yZWdfdCBk cmJyZWcgPSBHRU44X0RSQlJFR0woY2xpZW50LT5kb29yYmVsbF9pZCk7Cj4+IC0gICAgaW50IHZh bHVlOwo+PiAtCj4+IC0gICAgZG9vcmJlbGwgPSBjbGllbnQtPmNsaWVudF9iYXNlICsgY2xpZW50 LT5kb29yYmVsbF9vZmZzZXQ7Cj4+IC0KPj4gLSAgICBkb29yYmVsbC0+ZGJfc3RhdHVzID0gR1VD X0RPT1JCRUxMX0RJU0FCTEVEOwo+PiAtCj4+IC0gICAgdmFsdWUgPSBJOTE1X1JFQUQoZHJicmVn KTsKPj4gLSAgICBXQVJOX09OKCh2YWx1ZSAmIEdFTjhfRFJCX1ZBTElEKSAhPSAwKTsKPj4gKyAg ICAodm9pZClndWNfdXBkYXRlX2Rvb3JiZWxsX2lkKGd1YywgY2xpZW50LCBHVUNfSU5WQUxJRF9E T09SQkVMTF9JRCk7Cj4+Cj4+ICAgICAgIC8qIFhYWDogd2FpdCBmb3IgYW55IGludGVycnVwdHMg Ki8KPj4gICAgICAgLyogWFhYOiB3YWl0IGZvciB3b3JrcXVldWUgdG8gZHJhaW4gKi8KPj4gQEAg LTI1NCwxMSArMjgyLDYgQEAgc3RhdGljIHVpbnQxNl90IGFzc2lnbl9kb29yYmVsbChzdHJ1Y3Qg aW50ZWxfZ3VjCj4+ICpndWMsIHVpbnQzMl90IHByaW9yaXR5KQo+PiAgICAgICByZXR1cm4gaWQ7 Cj4+ICAgfQo+Pgo+PiAtc3RhdGljIHZvaWQgcmVsZWFzZV9kb29yYmVsbChzdHJ1Y3QgaW50ZWxf Z3VjICpndWMsIHVpbnQxNl90IGlkKQo+PiAtewo+PiAtICAgIF9fY2xlYXJfYml0KGlkLCBndWMt PmRvb3JiZWxsX2JpdG1hcCk7Cj4+IC19Cj4+IC0KPj4gICAvKgo+PiAgICAqIEluaXRpYWxpc2Ug dGhlIHByb2Nlc3MgZGVzY3JpcHRvciBzaGFyZWQgd2l0aCB0aGUgR3VDIGZpcm13YXJlLgo+PiAg ICAqLwo+PiBAQCAtNjUyLDIxICs2NzUsMTEgQEAgc3RhdGljIHZvaWQgZ3VjX2NsaWVudF9mcmVl KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4+ICAgICAgICAqLwo+Pgo+PiAgICAgICBpZiAoY2xp ZW50LT5jbGllbnRfYmFzZSkgewo+PiAtICAgICAgICB1aW50MTZfdCBkYl9pZCA9IGNsaWVudC0+ ZG9vcmJlbGxfaWQ7Cj4+IC0KPj4gICAgICAgICAgIC8qCj4+IC0gICAgICAgICAqIElmIHdlIGdv dCBhcyBmYXIgYXMgc2V0dGluZyB1cCBhIGRvb3JiZWxsLCBtYWtlIHN1cmUKPj4gLSAgICAgICAg ICogd2Ugc2h1dCBpdCBkb3duIGJlZm9yZSB1bm1hcHBpbmcgJiBkZWFsbG9jYXRpbmcgdGhlCj4+ IC0gICAgICAgICAqIG1lbW9yeS4gU28gZmlyc3QgZGlzYWJsZSB0aGUgZG9vcmJlbGwsIHRoZW4g dGVsbCB0aGUKPj4gLSAgICAgICAgICogR3VDIHRoYXQgd2UndmUgZmluaXNoZWQgd2l0aCBpdCwg ZmluYWxseSBkZWFsbG9jYXRlCj4+IC0gICAgICAgICAqIGl0IGluIG91ciBiaXRtYXAKPj4gKyAg ICAgICAgICogSWYgd2UgZ290IGFzIGZhciBhcyBzZXR0aW5nIHVwIGEgZG9vcmJlbGwsIG1ha2Ug c3VyZSB3ZQo+PiArICAgICAgICAgKiBzaHV0IGl0IGRvd24gYmVmb3JlIHVubWFwcGluZyAmIGRl YWxsb2NhdGluZyB0aGUgbWVtb3J5Lgo+PiAgICAgICAgICAgICovCj4+IC0gICAgICAgIGlmIChk Yl9pZCAhPSBHVUNfSU5WQUxJRF9ET09SQkVMTF9JRCkgewo+PiAtICAgICAgICAgICAgZ3VjX2Rp c2FibGVfZG9vcmJlbGwoZ3VjLCBjbGllbnQpOwo+PiAtICAgICAgICAgICAgaWYgKHRlc3RfYml0 KGRiX2lkLCBndWMtPmRvb3JiZWxsX2JpdG1hcCkpCj4+IC0gICAgICAgICAgICAgICAgaG9zdDJn dWNfcmVsZWFzZV9kb29yYmVsbChndWMsIGNsaWVudCk7Cj4+IC0gICAgICAgICAgICByZWxlYXNl X2Rvb3JiZWxsKGd1YywgZGJfaWQpOwo+PiAtICAgICAgICB9Cj4+ICsgICAgICAgIGd1Y19kaXNh YmxlX2Rvb3JiZWxsKGd1YywgY2xpZW50KTsKPj4KPj4gICAgICAgICAgIGt1bm1hcChrbWFwX3Rv X3BhZ2UoY2xpZW50LT5jbGllbnRfYmFzZSkpOwo+PiAgICAgICB9Cj4+IEBAIC03MDEsNiArNzE0 LDcgQEAgc3RhdGljIHN0cnVjdCBpOTE1X2d1Y19jbGllbnQKPj4gKmd1Y19jbGllbnRfYWxsb2Mo c3RydWN0IGRybV9kZXZpY2UgKmRldiwKPj4gICAgICAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPj4gICAgICAgc3RydWN0IGludGVsX2d1YyAq Z3VjID0gJmRldl9wcml2LT5ndWM7Cj4+ICAgICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpvYmo7Cj4+ICsgICAgdWludDE2X3QgZGJfaWQ7Cj4+Cj4+ICAgICAgIGNsaWVudCA9IGt6YWxs b2Moc2l6ZW9mKCpjbGllbnQpLCBHRlBfS0VSTkVMKTsKPj4gICAgICAgaWYgKCFjbGllbnQpCj4+ IEBAIC03NDEsMjIgKzc1NSwyMCBAQCBzdGF0aWMgc3RydWN0IGk5MTVfZ3VjX2NsaWVudAo+PiAq Z3VjX2NsaWVudF9hbGxvYyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+PiAgICAgICBlbHNlCj4+ ICAgICAgICAgICBjbGllbnQtPnByb2NfZGVzY19vZmZzZXQgPSAoR1VDX0RCX1NJWkUgLyAyKTsK Pj4KPj4gLSAgICBjbGllbnQtPmRvb3JiZWxsX2lkID0gYXNzaWduX2Rvb3JiZWxsKGd1YywgY2xp ZW50LT5wcmlvcml0eSk7Cj4+IC0gICAgaWYgKGNsaWVudC0+ZG9vcmJlbGxfaWQgPT0gR1VDX0lO VkFMSURfRE9PUkJFTExfSUQpCj4+ICsgICAgZGJfaWQgPSBhc3NpZ25fZG9vcmJlbGwoZ3VjLCBj bGllbnQtPnByaW9yaXR5KTsKPj4gKyAgICBpZiAoZGJfaWQgPT0gR1VDX0lOVkFMSURfRE9PUkJF TExfSUQpCj4+ICAgICAgICAgICAvKiBYWFg6IGV2aWN0IGEgZG9vcmJlbGwgaW5zdGVhZCAqLwo+ PiAgICAgICAgICAgZ290byBlcnI7Cj4+Cj4+ICAgICAgIGd1Y19pbml0X3Byb2NfZGVzYyhndWMs IGNsaWVudCk7Cj4+ICAgICAgIGd1Y19pbml0X2N0eF9kZXNjKGd1YywgY2xpZW50KTsKPj4gLSAg ICBndWNfaW5pdF9kb29yYmVsbChndWMsIGNsaWVudCk7Cj4+IC0KPj4gLSAgICAvKiBYWFg6IEFu eSBjYWNoZSBmbHVzaGVzIG5lZWRlZD8gR2VuZXJhbCBkb21haW4gbWdtdCBjYWxscz8gKi8KPj4g LQo+PiAtICAgIGlmIChob3N0Mmd1Y19hbGxvY2F0ZV9kb29yYmVsbChndWMsIGNsaWVudCkpCj4+ ICsgICAgaWYgKGd1Y19pbml0X2Rvb3JiZWxsKGd1YywgY2xpZW50LCBkYl9pZCkpCj4+ICAgICAg ICAgICBnb3RvIGVycjsKPj4KPj4gLSAgICBEUk1fREVCVUdfRFJJVkVSKCJuZXcgcHJpb3JpdHkg JXUgY2xpZW50ICVwOiBjdHhfaW5kZXggJXUgZGJfaWQKPj4gJXVcbiIsCj4+IC0gICAgICAgIHBy aW9yaXR5LCBjbGllbnQsIGNsaWVudC0+Y3R4X2luZGV4LCBjbGllbnQtPmRvb3JiZWxsX2lkKTsK Pj4gKyAgICBEUk1fREVCVUdfRFJJVkVSKCJuZXcgcHJpb3JpdHkgJXUgY2xpZW50ICVwOiBjdHhf aW5kZXggJXVcbiIsCj4+ICsgICAgICAgIHByaW9yaXR5LCBjbGllbnQsIGNsaWVudC0+Y3R4X2lu ZGV4KTsKPj4gKyAgICBEUk1fREVCVUdfRFJJVkVSKCJkb29yYmVsbCBpZCAldSwgY2FjaGVsaW5l IG9mZnNldCAweCV4XG4iLAo+PiArICAgICAgICBjbGllbnQtPmRvb3JiZWxsX2lkLCBjbGllbnQt PmRvb3JiZWxsX29mZnNldCk7Cj4+Cj4+ICAgICAgIHJldHVybiBjbGllbnQ7Cj4+Cj4+Cj4KPiBP dGhlcndpc2UgbG9va3MgZ29vZCB0byBtZSwgbXVjaCBtb3JlIGVhc2llciB0byB1bmRlcnN0YW5k IHdoYXQgaXMKPiBoYXBwZW5pbmcgbm93Lgo+Cj4gUmVnYXJkcywKPgo+IFR2cnRrbwoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==