From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?B?Q2hyaXN0aWFuIEvDtm5pZw==?= Subject: Re: [PATCH] drm/radeon: Adding UVD handle basis fps estimation v2 Date: Fri, 15 Aug 2014 10:48:03 +0200 Message-ID: <53EDC943.3020306@amd.com> References: <1407411210-1939-1-git-send-email-deathsimple@vodafone.de> <53E39C0A.6090109@vodafone.de> <53E88811.9030302@vodafone.de> <53E9E5A8.8010004@vodafone.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1lp0144.outbound.protection.outlook.com [207.46.163.144]) by gabe.freedesktop.org (Postfix) with ESMTP id 4EA9B6E7B4 for ; Fri, 15 Aug 2014 01:48:14 -0700 (PDT) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: "marco.antonio.780@gmail.com >> Marco Benatto" , "greg@chown.ath.cx >> Grigori Goronzy" , "Peter.Fruehberger@gmail.com" Cc: Maling list - DRI developers List-Id: dri-devel@lists.freedesktop.org SGkgZ3V5cywKCnRvIG1ha2UgYSBsb25nIHN0b3J5IHNob3J0IGV2ZXJ5IHRpbWUgSSB3YXRjaCBh IG1vdmllIG15IGxhcHRvcCBzdGFydCB0byAKaGVhdCB1cCBiZWNhdXNlIHdlIGFsd2F5cyBzZWxl Y3QgdGhlIHN0YW5kYXJkIFVWRCBwb3dlciBwcm9maWxlIHdpdGhvdXQgCmFjdHVhbGx5IG1lYXN1 cmluZyBpZiB0aGF0IGlzIG5lY2Vzc2FyeS4KCk1hcmNvIGNhbWUgdXAgd2l0aCBhIHBhdGNoIHRo YXQgc2VlbXMgdG8gcmVsaWFibGUgbWVhc3VyZSB0aGUgZnBzIHNlbmQgCmRvd24gdG8gdGhlIGtl cm5lbCBhbmQgc28gdG9nZXRoZXIgd2l0aCBrbm93aW5nIHRoZSBmcmFtZSBzaXplIG9mIHRoZSAK dmlkZW8gc2hvdWxkIGFsbG93IHVzIHRvIHNlbGVjdCB0aGUgcmlnaHQgVVZEIHBvd2VyIHByb2Zp bGUuCgpUaGUgcHJvYmxlbSBpcyB0aGF0IEFsZXggKHVubm90aWNlZCBieSBtZSkgY29tcGxldGVs eSBkaXNhYmxlZCBzZWxlY3RpbmcgCnRoZSBVVkQgcHJvZmlsZXMgYmVjYXVzZSBvZiBzb21lIGlz c3VlcyB3aXRoIGFkdmFuY2VkIHBvc3QgcHJvY2Vzc2luZyAKZGlzY3Vzc2VkIG9uIElSQy4gVGhl IHByb2JsZW0gc2VlbXMgdG8gYmUgdGhhdCB0aGUgbG93ZXIgVVZEIHByb2ZpbGVzIApoYXZlIGEg dG8gbG93IFNDTEsvTUNMSyB0byBoYW5kbGUgdGhlIDNEIGxvYWQgdGhhdCBjb21lcyB3aXRoIHNj YWxpbmcsIApkZWludGVybGFjaW5nIGV0Yy4uLgoKSSB1bmZvcnR1bmF0ZWx5IGRvbid0IGhhdmUg dGltZSBmb3IgaXQsIGNhdXNlIHRoaXMgb25seSBhZmZlY3RzIHRoZSAKaGFyZHdhcmUgZ2VuZXJh dGlvbnMgUjYwMC1TSSBhbmQgbm90IHRoZSBuZXdlc3Qgb25lIENJSy4gU28gY291bGQgeW91IApn dXlzIHN0aWNrIHRvZ2V0aGVyIGFuZCBjb21lIHVwIHdpdGggYSBzb2x1dGlvbj8gU29tZXRoaW5n IGxpa2UgYSBzeXNmcyAKZW50cnkgdGhhdCBsZXQncyB1cyBzZWxlY3QgdGhlIG1pbmltdW0gVVZE IHBvd2VyIGxldmVsIGFsbG93ZWQ/CgpJIHRoaW5rIE1hcmNvIGlzIGhhcHB5IHRvIGNvbWUgdXAg d2l0aCBhIHBhdGNoLCB3ZSBqdXN0IG5lZWQgdG8ga25vdyAKd2hhdCdzIHJlYWxseSBuZWVkZWQg YW5kIHdoYXQgc2hvdWxkIGJlIHRoZSBkZWZhdWx0IHZhbHVlcy4gSSdtIGhhcHB5IHRvIApyZXZp ZXcgZXZlcnl0aGluZyB0aGF0IGNvbWVzIG91dCBvZiBpdCwganVzdCBkb24ndCBoYXZlIHRpbWUg dG8gZG8gaXQgCm15c2VsZi4KCkhhcHB5IGRpc2N1c3Npb24gYW5kIHRoYW5rcyBpbiBhZHZhbmNl LApDaHJpc3RpYW4uCgpBbSAxMi4wOC4yMDE0IHVtIDE1OjA1IHNjaHJpZWIgQWxleCBEZXVjaGVy Ogo+IE9uIFR1ZSwgQXVnIDEyLCAyMDE0IGF0IDY6MDAgQU0sIENocmlzdGlhbiBLw7ZuaWcKPiA8 ZGVhdGhzaW1wbGVAdm9kYWZvbmUuZGU+IHdyb3RlOgo+PiBBbSAxMS4wOC4yMDE0IHVtIDE2OjUy IHNjaHJpZWIgQWxleCBEZXVjaGVyOgo+Pgo+Pj4gT24gTW9uLCBBdWcgMTEsIDIwMTQgYXQgNTow OCBBTSwgQ2hyaXN0aWFuIEvDtm5pZwo+Pj4gPGRlYXRoc2ltcGxlQHZvZGFmb25lLmRlPiB3cm90 ZToKPj4+PiBBbSAwNy4wOC4yMDE0IHVtIDIxOjQzIHNjaHJpZWIgQWxleCBEZXVjaGVyOgo+Pj4+ Cj4+Pj4+IE9uIFRodSwgQXVnIDcsIDIwMTQgYXQgMTE6MzIgQU0sIENocmlzdGlhbiBLw7ZuaWcK Pj4+Pj4gPGRlYXRoc2ltcGxlQHZvZGFmb25lLmRlPiB3cm90ZToKPj4+Pj4+IEFtIDA3LjA4LjIw MTQgdW0gMTY6MzIgc2NocmllYiBBbGV4IERldWNoZXI6Cj4+Pj4+Pgo+Pj4+Pj4+IE9uIFRodSwg QXVnIDcsIDIwMTQgYXQgNzozMyBBTSwgQ2hyaXN0aWFuIEvDtm5pZwo+Pj4+Pj4+IDxkZWF0aHNp bXBsZUB2b2RhZm9uZS5kZT4KPj4+Pj4+PiB3cm90ZToKPj4+Pj4+Pj4gRnJvbTogTWFyY28gQSBC ZW5hdHRvIDxtYXJjby5hbnRvbmlvLjc4MEBnbWFpbC5jb20+Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+IEFk ZGluZyBhIEZyYW1lcyBQZXIgU2Vjb25kIGVzdGltYXRpb24gbG9naWMgb24gVVZEIGhhbmRsZXMK Pj4+Pj4+Pj4gd2hlbiBpdCBoYXMgYmVpbmcgdXNlZC4gVGhpcyBlc3RpbWF0aW9uIGlzIHBlciBo YW5kbGUgYmFzaXMKPj4+Pj4+Pj4gYW5kIHdpbGwgaGVscCBvbiBEUE0gcHJvZmlsZSBjYWxjdWxh dGlvbi4KPj4+Pj4+Pj4KPj4+Pj4+Pj4gdjIgKGNoayk6IGZpeCB0aW1lc3RhbXAgdHlwZSwgbW92 ZSBmdW5jdGlvbnMgYXJvdW5kIGFuZAo+Pj4+Pj4+PiAgICAgICAgICAgICAgIGNsZWFudXAgY29k ZSBhIGJpdC4KPj4+Pj4+PiBXaWxsIHRoaXMgcmVhbGx5IGhlbHAgbXVjaD8gIEkgdGhvdWdodCB0 aGUgcHJvYmxlbSB3YXMgbWFpbmx5IGR1ZSB0bwo+Pj4+Pj4+IHNjbGsgYW5kIG1jbGsgZm9yIHBv c3QgcHJvY2Vzc2luZy4KPj4+Pj4+Cj4+Pj4+PiBJdCBzaG91bGQgYXQgbGVhc3QgaGFuZGxlIHRo ZSBVVkQgc2lkZSBmb3IgdXBjbG9ja2luZyB3aGVuIHlvdSBnZXQgYQo+Pj4+Pj4gbG90Cj4+Pj4+ PiBvZgo+Pj4+Pj4gc3RyZWFtcyAvIGZwcy4gQW5kIGF0IG9uIG15IE5JIHRoZSBwYXRjaCBzZWVt cyB0byBkbyBleGFjdGx5IHRoYXQuCj4+Pj4+Pgo+Pj4+Pj4gU3dpdGNoaW5nIHNjbGsgYW5kIG1j bGsgZm9yIHBvc3QgcHJvY2Vzc2luZyBpcyBhIGRpZmZlcmVudCB0YXNrLCBhbmQgSQo+Pj4+Pj4g YWN0dWFsbHkgaGF2ZSBubyBpZGVhIHdoYXQgdG8gZG8gd2l0aCB0aGVtLgo+Pj4+PiBBdCB0aGlz IHBvaW50IHdlIGFsd2F5cyBjaG9vc2UgdGhlIHBsYWluIFVWRCBzdGF0ZSBhbnl3YXkgc28gdGhp cwo+Pj4+PiBwYXRjaCB3b3VsZCBvbmx5IHRha2UgZWZmZWN0IGlmIHdlIHJlLWVuYWJsZWQgdGhl IGR5bmFtaWMgVVZEIHN0YXRlCj4+Pj4+IHNlbGVjdGlvbi4KPj4+Pgo+Pj4+IEh1aT8gSSB0aG91 Z2h0IHdlIGFscmVhZHkgcmUtZW5hYmxlZCB0aGUgZHluYW1pYyBVVkQgc3RhdGUgc2VsZWN0aW9u LCBidXQKPj4+PiBkb3VibGUgY2hlY2tpbmcgdGhpcyBJIGZvdW5kIGl0IGRpc2FibGVkIGFnYWlu Lgo+Pj4+Cj4+Pj4gV2hhdCB3YXMgdGhlIHByb2JsZW0gd2l0aCB0aGF0PyBMb29rcyBsaWtlIEkg c29tZWhvdyBtaXNzZWQgdGhlCj4+Pj4gZGlzY3Vzc2lvbgo+Pj4+IGFyb3VuZCBpdC4KPj4+IFdl IGRpZCwgYnV0IGFmdGVyIGRvaW5nIHNvIGEgbnVtYmVyIG9mIHBlb3BsZSBjb21wbGFpbmVkIGFi b3V0IGEKPj4+IHJlZ3Jlc3Npb24gb24gSVJDIGJlY2F1c2Ugd2hlbiBhcHBzIGxpa2UgeG1iYyBl bmFibGVkIHBvc3QgcHJvY2Vzc2luZywKPj4+IHBlcmZvcm1hbmNlIHdlbnQgZG93bi4KPj4KPj4g VGhhdCdzIHN0cmFuZ2UsIGZyb20gbXkgZXhwZXJpZW5jZSB0aGUgZGlmZmVyZW50IFVWRCBwZXJm b3JtYW5jZSBzdGF0ZXMgb25seQo+PiBhZmZlY3QgVVZEcyBkY2xrL3ZjbGssIG5vdCBzY2xrL21j bGsuIEkgbmVlZCB0byBnZXQgdGhlIERQTSBkdW1wcyB0bwo+PiBjb25maXJtcyB0aGlzLgo+Pgo+ IFRoZSBzY2xrcyBhbmQgbWNsa3MgYXJlIHVzdWFsbHkgZGlmZmVyZW50IGFzIHdlbGwsIGVzcGVj aWFsbHkgb24gQVBVcy4KPiBJIGNhbiBzZW5kIHlvdSBzb21lIGV4YW1wbGVzLgo+Cj4+IFlvdSBu b3Qgb2ZmIGhhbmQgcmVtZW1iZXIgd2hvIGNvbXBsYWluZWQgb24gSVJDPyBGaW5kaW5nIHNvbWV0 aGluZyBpbiB0aGUKPj4gSVJDIGxvZ3MgaXMgbGlrZSBzZWFyY2hpbmcgZm9yIGEgbmVlZGxlIGlu IGEgaGF5c3RhY2suCj4gSSBkb24ndCByZW1lbWJlciBvZmYgaGFuZC4gIEkgdGhpbmsgemdyZWcg d2FzIGludm9sdmVkIGluIHNvbWUgb2YgdGhlCj4gZGlzY3Vzc2lvbnMuCj4KPiBBbGV4Cj4KPj4g VGhhbmtzLAo+PiBDaHJpc3RpYW4uCj4+Cj4+Cj4+PiBBbGV4Cj4+Pgo+Pj4KPj4+PiBDaHJpc3Rp YW4uCj4+Pj4KPj4+Pgo+Pj4+PiBGb3IgdGhlIHBvc3QgcHJvY2Vzc2luZywgd2UgcHJvYmFibHkg bmVlZCBhIGhpbnQgd2UgY2FuCj4+Pj4+IHBhc3MgdG8gdGhlIGRyaXZlciBpbiB0aGUgQ1MgaW9j dGwgdG8gZGVub3RlIHdoYXQgc3RhdGUgd2UgbmVlZC4KPj4+Pj4gQWx0aG91Z2ggaWYgd2UgZGlk IHRoYXQsIHRoaXMgY291bGQgd291bGQgbGFyZ2VseSBiZSBtb290LiAgVGhhdCBzYWlkLAo+Pj4+ PiBuZXdlciBhc2ljcyBzdXBwb3J0IGR5bmFtaWMgVVZEIGNsb2NrcyBzbyB3ZSByZWFsbHkgb25s eSBuZWVkCj4+Pj4+IHNvbWV0aGluZyBsaWtlIHRoYXQgZm9yIG9sZGVyIGFzaWNzIGFuZCBJIGd1 ZXNzIFZDRS4KPj4+Pj4KPj4+Pj4gQWxleAo+Pj4+Pgo+Pj4+Pj4gQ2hyaXN0aWFuLgo+Pj4+Pj4K Pj4+Pj4+Cj4+Pj4+Pj4gQWxleAo+Pj4+Pj4+Cj4+Pj4+Pj4+IFNpZ25lZC1vZmYtYnk6IE1hcmNv IEEgQmVuYXR0byA8bWFyY28uYW50b25pby43ODBAZ21haWwuY29tPgo+Pj4+Pj4+PiBTaWduZWQt b2ZmLWJ5OiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+Cj4+Pj4+ Pj4+IC0tLQo+Pj4+Pj4+PiAgICAgIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uLmggICAg IHwgMTAgKysrKysrCj4+Pj4+Pj4+ICAgICAgZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25f dXZkLmMgfCA2NAo+Pj4+Pj4+PiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0t Cj4+Pj4+Pj4+ICAgICAgMiBmaWxlcyBjaGFuZ2VkLCA2OCBpbnNlcnRpb25zKCspLCA2IGRlbGV0 aW9ucygtKQo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Jh ZGVvbi9yYWRlb24uaAo+Pj4+Pj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uLmgK Pj4+Pj4+Pj4gaW5kZXggOWUxNzMyZS4uZTkyZjZjYiAxMDA2NDQKPj4+Pj4+Pj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb24uaAo+Pj4+Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL3JhZGVvbi5oCj4+Pj4+Pj4+IEBAIC0xNjE3LDYgKzE2MTcsMTUgQEAgaW50IHJh ZGVvbl9wbV9nZXRfdHlwZV9pbmRleChzdHJ1Y3QKPj4+Pj4+Pj4gcmFkZW9uX2RldmljZQo+Pj4+ Pj4+PiAqcmRldiwKPj4+Pj4+Pj4gICAgICAjZGVmaW5lIFJBREVPTl9VVkRfU1RBQ0tfU0laRSAg KDEwMjQqMTAyNCkKPj4+Pj4+Pj4gICAgICAjZGVmaW5lIFJBREVPTl9VVkRfSEVBUF9TSVpFICAg KDEwMjQqMTAyNCkKPj4+Pj4+Pj4KPj4+Pj4+Pj4gKyNkZWZpbmUgUkFERU9OX1VWRF9GUFNfRVZF TlRTX01BWCA4Cj4+Pj4+Pj4+ICsjZGVmaW5lIFJBREVPTl9VVkRfREVGQVVMVF9GUFMgNjAKPj4+ Pj4+Pj4gKwo+Pj4+Pj4+PiArc3RydWN0IHJhZGVvbl91dmRfZnBzIHsKPj4+Pj4+Pj4gKyAgICAg ICB1aW50NjRfdCAgICAgICAgdGltZXN0YW1wOwo+Pj4+Pj4+PiArICAgICAgIHVpbnQ4X3QgICAg ICAgICBldmVudF9pbmRleDsKPj4+Pj4+Pj4gKyAgICAgICB1aW50OF90ICAgICAgICAgZXZlbnRz W1JBREVPTl9VVkRfRlBTX0VWRU5UU19NQVhdOwo+Pj4+Pj4+PiArfTsKPj4+Pj4+Pj4gKwo+Pj4+ Pj4+PiAgICAgIHN0cnVjdCByYWRlb25fdXZkIHsKPj4+Pj4+Pj4gICAgICAgICAgICAgc3RydWN0 IHJhZGVvbl9ibyAgICAgICAgKnZjcHVfYm87Cj4+Pj4+Pj4+ICAgICAgICAgICAgIHZvaWQgICAg ICAgICAgICAgICAgICAgICpjcHVfYWRkcjsKPj4+Pj4+Pj4gQEAgLTE2MjYsNiArMTYzNSw3IEBA IHN0cnVjdCByYWRlb25fdXZkIHsKPj4+Pj4+Pj4gICAgICAgICAgICAgc3RydWN0IGRybV9maWxl ICAgICAgICAgKmZpbHBbUkFERU9OX01BWF9VVkRfSEFORExFU107Cj4+Pj4+Pj4+ICAgICAgICAg ICAgIHVuc2lnbmVkICAgICAgICAgICAgICAgIGltZ19zaXplW1JBREVPTl9NQVhfVVZEX0hBTkRM RVNdOwo+Pj4+Pj4+PiAgICAgICAgICAgICBzdHJ1Y3QgZGVsYXllZF93b3JrICAgICBpZGxlX3dv cms7Cj4+Pj4+Pj4+ICsgICAgICAgc3RydWN0IHJhZGVvbl91dmRfZnBzICAgZnBzX2luZm9bUkFE RU9OX01BWF9VVkRfSEFORExFU107Cj4+Pj4+Pj4+ICAgICAgfTsKPj4+Pj4+Pj4KPj4+Pj4+Pj4g ICAgICBpbnQgcmFkZW9uX3V2ZF9pbml0KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KTsKPj4+ Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3V2ZC5jCj4+ Pj4+Pj4+IGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fdXZkLmMKPj4+Pj4+Pj4gaW5k ZXggNmJmNTVlYy4uZWY1NjY3YSAxMDA2NDQKPj4+Pj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9yYWRlb25fdXZkLmMKPj4+Pj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9yYWRlb25fdXZkLmMKPj4+Pj4+Pj4gQEAgLTIzNyw2ICsyMzcsNTEgQEAgdm9pZCByYWRlb25f dXZkX2ZvcmNlX2ludG9fdXZkX3NlZ21lbnQoc3RydWN0Cj4+Pj4+Pj4+IHJhZGVvbl9ibyAqcmJv KQo+Pj4+Pj4+PiAgICAgICAgICAgICByYm8tPnBsYWNlbWVudC5scGZuID0gKDI1NiAqIDEwMjQg KiAxMDI0KSA+PiBQQUdFX1NISUZUOwo+Pj4+Pj4+PiAgICAgIH0KPj4+Pj4+Pj4KPj4+Pj4+Pj4g K3N0YXRpYyB2b2lkIHJhZGVvbl91dmRfZnBzX2NsZWFyX2V2ZW50cyhzdHJ1Y3QgcmFkZW9uX2Rl dmljZSAqcmRldiwKPj4+Pj4+Pj4gaW50Cj4+Pj4+Pj4+IGlkeCkKPj4+Pj4+Pj4gK3sKPj4+Pj4+ Pj4gKyAgICAgICBzdHJ1Y3QgcmFkZW9uX3V2ZF9mcHMgKmZwcyA9ICZyZGV2LT51dmQuZnBzX2lu Zm9baWR4XTsKPj4+Pj4+Pj4gKyAgICAgICB1bnNpZ25lZCBpOwo+Pj4+Pj4+PiArCj4+Pj4+Pj4+ ICsgICAgICAgZnBzLT50aW1lc3RhbXAgPSBqaWZmaWVzXzY0Owo+Pj4+Pj4+PiArICAgICAgIGZw cy0+ZXZlbnRfaW5kZXggPSAwOwo+Pj4+Pj4+PiArICAgICAgIGZvciAoaSA9IDA7IGkgPCBSQURF T05fVVZEX0ZQU19FVkVOVFNfTUFYOyBpKyspCj4+Pj4+Pj4+ICsgICAgICAgICAgICAgICBmcHMt PmV2ZW50c1tpXSA9IDA7Cj4+Pj4+Pj4+ICt9Cj4+Pj4+Pj4+ICsKPj4+Pj4+Pj4gK3N0YXRpYyB2 b2lkIHJhZGVvbl91dmRfZnBzX25vdGVfZXZlbnQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYs Cj4+Pj4+Pj4+IGludAo+Pj4+Pj4+PiBpZHgpCj4+Pj4+Pj4+ICt7Cj4+Pj4+Pj4+ICsgICAgICAg c3RydWN0IHJhZGVvbl91dmRfZnBzICpmcHMgPSAmcmRldi0+dXZkLmZwc19pbmZvW2lkeF07Cj4+ Pj4+Pj4+ICsgICAgICAgdWludDY0X3QgdGltZXN0YW1wID0gamlmZmllc182NDsKPj4+Pj4+Pj4g KyAgICAgICB1bnNpZ25lZCByYXRlID0gMDsKPj4+Pj4+Pj4gKwo+Pj4+Pj4+PiArICAgICAgIHVp bnQ4X3QgaW5kZXggPSBmcHMtPmV2ZW50X2luZGV4Kys7Cj4+Pj4+Pj4+ICsgICAgICAgZnBzLT5l dmVudF9pbmRleCAlPSBSQURFT05fVVZEX0ZQU19FVkVOVFNfTUFYOwo+Pj4+Pj4+PiArCj4+Pj4+ Pj4+ICsgICAgICAgcmF0ZSA9IGRpdjY0X3U2NChIWiwgbWF4KHRpbWVzdGFtcCAtIGZwcy0+dGlt ZXN0YW1wLCAxVUxMKSk7Cj4+Pj4+Pj4+ICsKPj4+Pj4+Pj4gKyAgICAgICBmcHMtPnRpbWVzdGFt cCA9IHRpbWVzdGFtcDsKPj4+Pj4+Pj4gKyAgICAgICBmcHMtPmV2ZW50c1tpbmRleF0gPSBtaW4o cmF0ZSwgMTIwdSk7Cj4+Pj4+Pj4+ICt9Cj4+Pj4+Pj4+ICsKPj4+Pj4+Pj4gK3N0YXRpYyB1bnNp Z25lZCByYWRlb25fdXZkX2VzdGltYXRlX2ZwcyhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwK Pj4+Pj4+Pj4gaW50Cj4+Pj4+Pj4+IGlkeCkKPj4+Pj4+Pj4gK3sKPj4+Pj4+Pj4gKyAgICAgICBz dHJ1Y3QgcmFkZW9uX3V2ZF9mcHMgKmZwcyA9ICZyZGV2LT51dmQuZnBzX2luZm9baWR4XTsKPj4+ Pj4+Pj4gKyAgICAgICB1bnNpZ25lZCBpLCB2YWxpZCA9IDAsIGNvdW50ID0gMDsKPj4+Pj4+Pj4g Kwo+Pj4+Pj4+PiArICAgICAgIGZvciAoaSA9IDA7IGkgPCBSQURFT05fVVZEX0ZQU19FVkVOVFNf TUFYOyBpKyspIHsKPj4+Pj4+Pj4gKyAgICAgICAgICAgICAgIC8qIFdlIHNob3VsZCBpZ25vcmUg emVybyB2YWx1ZXMgKi8KPj4+Pj4+Pj4gKyAgICAgICAgICAgICAgIGlmIChmcHMtPmV2ZW50c1tp XSAhPSAwKSB7Cj4+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgIGNvdW50ICs9IGZwcy0+ ZXZlbnRzW2ldOwo+Pj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICB2YWxpZCsrOwo+Pj4+ Pj4+PiArICAgICAgICAgICAgICAgfQo+Pj4+Pj4+PiArICAgICAgIH0KPj4+Pj4+Pj4gKwo+Pj4+ Pj4+PiArICAgICAgIGlmICh2YWxpZCA+IDApCj4+Pj4+Pj4+ICsgICAgICAgICAgICAgICByZXR1 cm4gY291bnQgLyB2YWxpZDsKPj4+Pj4+Pj4gKyAgICAgICBlbHNlCj4+Pj4+Pj4+ICsgICAgICAg ICAgICAgICByZXR1cm4gUkFERU9OX1VWRF9ERUZBVUxUX0ZQUzsKPj4+Pj4+Pj4gK30KPj4+Pj4+ Pj4gKwo+Pj4+Pj4+PiAgICAgIHZvaWQgcmFkZW9uX3V2ZF9mcmVlX2hhbmRsZXMoc3RydWN0IHJh ZGVvbl9kZXZpY2UgKnJkZXYsIHN0cnVjdAo+Pj4+Pj4+PiBkcm1fZmlsZSAqZmlscCkKPj4+Pj4+ Pj4gICAgICB7Cj4+Pj4+Pj4+ICAgICAgICAgICAgIGludCBpLCByOwo+Pj4+Pj4+PiBAQCAtNDE5 LDggKzQ2NCwxMCBAQCBzdGF0aWMgaW50IHJhZGVvbl91dmRfY3NfbXNnKHN0cnVjdAo+Pj4+Pj4+ PiByYWRlb25fY3NfcGFyc2VyCj4+Pj4+Pj4+ICpwLCBzdHJ1Y3QgcmFkZW9uX2JvICpibywKPj4+ Pj4+Pj4KPj4+Pj4+Pj4gICAgICAgICAgICAgLyogY3JlYXRlIG9yIGRlY29kZSwgdmFsaWRhdGUg dGhlIGhhbmRsZSAqLwo+Pj4+Pj4+PiAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgUkFERU9O X01BWF9VVkRfSEFORExFUzsgKytpKSB7Cj4+Pj4+Pj4+IC0gICAgICAgICAgICAgICBpZiAoYXRv bWljX3JlYWQoJnAtPnJkZXYtPnV2ZC5oYW5kbGVzW2ldKSA9PSBoYW5kbGUpCj4+Pj4+Pj4+ICsg ICAgICAgICAgICAgICBpZiAoYXRvbWljX3JlYWQoJnAtPnJkZXYtPnV2ZC5oYW5kbGVzW2ldKSA9 PSBoYW5kbGUpCj4+Pj4+Pj4+IHsKPj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgcmFk ZW9uX3V2ZF9mcHNfbm90ZV9ldmVudChwLT5yZGV2LCBpKTsKPj4+Pj4+Pj4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHJldHVybiAwOwo+Pj4+Pj4+PiArICAgICAgICAgICAgICAgfQo+Pj4+ Pj4+PiAgICAgICAgICAgICB9Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+ICAgICAgICAgICAgIC8qIGhhbmRs ZSBub3QgZm91bmQgdHJ5IHRvIGFsbG9jIGEgbmV3IG9uZSAqLwo+Pj4+Pj4+PiBAQCAtNDI4LDYg KzQ3NSw3IEBAIHN0YXRpYyBpbnQgcmFkZW9uX3V2ZF9jc19tc2coc3RydWN0Cj4+Pj4+Pj4+IHJh ZGVvbl9jc19wYXJzZXIKPj4+Pj4+Pj4gKnAsIHN0cnVjdCByYWRlb25fYm8gKmJvLAo+Pj4+Pj4+ PiAgICAgICAgICAgICAgICAgICAgIGlmICghYXRvbWljX2NtcHhjaGcoJnAtPnJkZXYtPnV2ZC5o YW5kbGVzW2ldLCAwLAo+Pj4+Pj4+PiBoYW5kbGUpKSB7Cj4+Pj4+Pj4+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBwLT5yZGV2LT51dmQuZmlscFtpXSA9IHAtPmZpbHA7Cj4+Pj4+Pj4+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwLT5yZGV2LT51dmQuaW1nX3NpemVbaV0gPSBpbWdf c2l6ZTsKPj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgcmFkZW9uX3V2ZF9mcHNfY2xl YXJfZXZlbnRzKHAtPnJkZXYsIGkpOwo+Pj4+Pj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcmV0dXJuIDA7Cj4+Pj4+Pj4+ICAgICAgICAgICAgICAgICAgICAgfQo+Pj4+Pj4+PiAgICAg ICAgICAgICB9Cj4+Pj4+Pj4+IEBAIC03NjMsNyArODExLDcgQEAgaW50IHJhZGVvbl91dmRfZ2V0 X2Rlc3Ryb3lfbXNnKHN0cnVjdAo+Pj4+Pj4+PiByYWRlb25fZGV2aWNlCj4+Pj4+Pj4+ICpyZGV2 LCBpbnQgcmluZywKPj4+Pj4+Pj4gICAgICBzdGF0aWMgdm9pZCByYWRlb25fdXZkX2NvdW50X2hh bmRsZXMoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCj4+Pj4+Pj4+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgKnNkLCB1bnNpZ25lZCAqaGQpCj4+ Pj4+Pj4+ICAgICAgewo+Pj4+Pj4+PiAtICAgICAgIHVuc2lnbmVkIGk7Cj4+Pj4+Pj4+ICsgICAg ICAgdW5zaWduZWQgaSwgZnBzX3JhdGUgPSAwOwo+Pj4+Pj4+Pgo+Pj4+Pj4+PiAgICAgICAgICAg ICAqc2QgPSAwOwo+Pj4+Pj4+PiAgICAgICAgICAgICAqaGQgPSAwOwo+Pj4+Pj4+PiBAQCAtNzcy LDEwICs4MjAsMTMgQEAgc3RhdGljIHZvaWQgcmFkZW9uX3V2ZF9jb3VudF9oYW5kbGVzKHN0cnVj dAo+Pj4+Pj4+PiByYWRlb25fZGV2aWNlICpyZGV2LAo+Pj4+Pj4+PiAgICAgICAgICAgICAgICAg ICAgIGlmICghYXRvbWljX3JlYWQoJnJkZXYtPnV2ZC5oYW5kbGVzW2ldKSkKPj4+Pj4+Pj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwo+Pj4+Pj4+Pgo+Pj4+Pj4+PiAtICAg ICAgICAgICAgICAgaWYgKHJkZXYtPnV2ZC5pbWdfc2l6ZVtpXSA+PSA3MjAqNTc2KQo+Pj4+Pj4+ PiAtICAgICAgICAgICAgICAgICAgICAgICArKygqaGQpOwo+Pj4+Pj4+PiAtICAgICAgICAgICAg ICAgZWxzZQo+Pj4+Pj4+PiAtICAgICAgICAgICAgICAgICAgICAgICArKygqc2QpOwo+Pj4+Pj4+ PiArICAgICAgICAgICAgICAgZnBzX3JhdGUgPSByYWRlb25fdXZkX2VzdGltYXRlX2ZwcyhyZGV2 LCBpKTsKPj4+Pj4+Pj4gKwo+Pj4+Pj4+PiArICAgICAgICAgICAgICAgaWYgKHJkZXYtPnV2ZC5p bWdfc2l6ZVtpXSA+PSA3MjAqNTc2KSB7Cj4+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAg ICgqaGQpICs9IGZwc19yYXRlID4gMzAgPyAxIDogMjsKPj4+Pj4+Pj4gKyAgICAgICAgICAgICAg IH0gZWxzZSB7Cj4+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICgqc2QpICs9IGZwc19y YXRlID4gMzAgPyAxIDogMjsKPj4+Pj4+Pj4gKyAgICAgICAgICAgICAgIH0KPj4+Pj4+Pj4gICAg ICAgICAgICAgfQo+Pj4+Pj4+PiAgICAgIH0KPj4+Pj4+Pj4KPj4+Pj4+Pj4gQEAgLTgwNSw2ICs4 NTYsNyBAQCB2b2lkIHJhZGVvbl91dmRfbm90ZV91c2FnZShzdHJ1Y3QgcmFkZW9uX2RldmljZQo+ Pj4+Pj4+PiAqcmRldikKPj4+Pj4+Pj4gICAgICAgICAgICAgc2V0X2Nsb2NrcyAmPSBzY2hlZHVs ZV9kZWxheWVkX3dvcmsoJnJkZXYtPnV2ZC5pZGxlX3dvcmssCj4+Pj4+Pj4+Cj4+Pj4+Pj4+IG1z ZWNzX3RvX2ppZmZpZXMoVVZEX0lETEVfVElNRU9VVF9NUykpOwo+Pj4+Pj4+Pgo+Pj4+Pj4+PiAr Cj4+Pj4+Pj4+ICAgICAgICAgICAgIGlmICgocmRldi0+cG0ucG1fbWV0aG9kID09IFBNX01FVEhP RF9EUE0pICYmCj4+Pj4+Pj4+IHJkZXYtPnBtLmRwbV9lbmFibGVkKSB7Cj4+Pj4+Pj4+ICAgICAg ICAgICAgICAgICAgICAgdW5zaWduZWQgaGQgPSAwLCBzZCA9IDA7Cj4+Pj4+Pj4+ICAgICAgICAg ICAgICAgICAgICAgcmFkZW9uX3V2ZF9jb3VudF9oYW5kbGVzKHJkZXYsICZzZCwgJmhkKTsKPj4+ Pj4+Pj4gLS0KPj4+Pj4+Pj4gMS45LjEKPj4+Pj4+Pj4KCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVs QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vZHJpLWRldmVsCg==