From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Deucher Subject: Re: [PATCH] drm/radeon: Adding UVD handle basis fps estimation v2 Date: Tue, 12 Aug 2014 09:05:13 -0400 Message-ID: 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" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qc0-f170.google.com (mail-qc0-f170.google.com [209.85.216.170]) by gabe.freedesktop.org (Postfix) with ESMTP id F3C636E080 for ; Tue, 12 Aug 2014 06:05:13 -0700 (PDT) Received: by mail-qc0-f170.google.com with SMTP id x3so2794682qcv.1 for ; Tue, 12 Aug 2014 06:05:13 -0700 (PDT) In-Reply-To: <53E9E5A8.8010004@vodafone.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: =?UTF-8?Q?Christian_K=C3=B6nig?= Cc: Maling list - DRI developers List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBBdWcgMTIsIDIwMTQgYXQgNjowMCBBTSwgQ2hyaXN0aWFuIEvDtm5pZwo8ZGVhdGhz aW1wbGVAdm9kYWZvbmUuZGU+IHdyb3RlOgo+IEFtIDExLjA4LjIwMTQgdW0gMTY6NTIgc2Nocmll YiBBbGV4IERldWNoZXI6Cj4KPj4gT24gTW9uLCBBdWcgMTEsIDIwMTQgYXQgNTowOCBBTSwgQ2hy aXN0aWFuIEvDtm5pZwo+PiA8ZGVhdGhzaW1wbGVAdm9kYWZvbmUuZGU+IHdyb3RlOgo+Pj4KPj4+ IEFtIDA3LjA4LjIwMTQgdW0gMjE6NDMgc2NocmllYiBBbGV4IERldWNoZXI6Cj4+Pgo+Pj4+IE9u IFRodSwgQXVnIDcsIDIwMTQgYXQgMTE6MzIgQU0sIENocmlzdGlhbiBLw7ZuaWcKPj4+PiA8ZGVh dGhzaW1wbGVAdm9kYWZvbmUuZGU+IHdyb3RlOgo+Pj4+Pgo+Pj4+PiBBbSAwNy4wOC4yMDE0IHVt IDE2OjMyIHNjaHJpZWIgQWxleCBEZXVjaGVyOgo+Pj4+Pgo+Pj4+Pj4gT24gVGh1LCBBdWcgNywg MjAxNCBhdCA3OjMzIEFNLCBDaHJpc3RpYW4gS8O2bmlnCj4+Pj4+PiA8ZGVhdGhzaW1wbGVAdm9k YWZvbmUuZGU+Cj4+Pj4+PiB3cm90ZToKPj4+Pj4+Pgo+Pj4+Pj4+IEZyb206IE1hcmNvIEEgQmVu YXR0byA8bWFyY28uYW50b25pby43ODBAZ21haWwuY29tPgo+Pj4+Pj4+Cj4+Pj4+Pj4gQWRkaW5n IGEgRnJhbWVzIFBlciBTZWNvbmQgZXN0aW1hdGlvbiBsb2dpYyBvbiBVVkQgaGFuZGxlcwo+Pj4+ Pj4+IHdoZW4gaXQgaGFzIGJlaW5nIHVzZWQuIFRoaXMgZXN0aW1hdGlvbiBpcyBwZXIgaGFuZGxl IGJhc2lzCj4+Pj4+Pj4gYW5kIHdpbGwgaGVscCBvbiBEUE0gcHJvZmlsZSBjYWxjdWxhdGlvbi4K Pj4+Pj4+Pgo+Pj4+Pj4+IHYyIChjaGspOiBmaXggdGltZXN0YW1wIHR5cGUsIG1vdmUgZnVuY3Rp b25zIGFyb3VuZCBhbmQKPj4+Pj4+PiAgICAgICAgICAgICAgY2xlYW51cCBjb2RlIGEgYml0Lgo+ Pj4+Pj4KPj4+Pj4+IFdpbGwgdGhpcyByZWFsbHkgaGVscCBtdWNoPyAgSSB0aG91Z2h0IHRoZSBw cm9ibGVtIHdhcyBtYWlubHkgZHVlIHRvCj4+Pj4+PiBzY2xrIGFuZCBtY2xrIGZvciBwb3N0IHBy b2Nlc3NpbmcuCj4+Pj4+Cj4+Pj4+Cj4+Pj4+IEl0IHNob3VsZCBhdCBsZWFzdCBoYW5kbGUgdGhl IFVWRCBzaWRlIGZvciB1cGNsb2NraW5nIHdoZW4geW91IGdldCBhCj4+Pj4+IGxvdAo+Pj4+PiBv Zgo+Pj4+PiBzdHJlYW1zIC8gZnBzLiBBbmQgYXQgb24gbXkgTkkgdGhlIHBhdGNoIHNlZW1zIHRv IGRvIGV4YWN0bHkgdGhhdC4KPj4+Pj4KPj4+Pj4gU3dpdGNoaW5nIHNjbGsgYW5kIG1jbGsgZm9y IHBvc3QgcHJvY2Vzc2luZyBpcyBhIGRpZmZlcmVudCB0YXNrLCBhbmQgSQo+Pj4+PiBhY3R1YWxs eSBoYXZlIG5vIGlkZWEgd2hhdCB0byBkbyB3aXRoIHRoZW0uCj4+Pj4KPj4+PiBBdCB0aGlzIHBv aW50IHdlIGFsd2F5cyBjaG9vc2UgdGhlIHBsYWluIFVWRCBzdGF0ZSBhbnl3YXkgc28gdGhpcwo+ Pj4+IHBhdGNoIHdvdWxkIG9ubHkgdGFrZSBlZmZlY3QgaWYgd2UgcmUtZW5hYmxlZCB0aGUgZHlu YW1pYyBVVkQgc3RhdGUKPj4+PiBzZWxlY3Rpb24uCj4+Pgo+Pj4KPj4+IEh1aT8gSSB0aG91Z2h0 IHdlIGFscmVhZHkgcmUtZW5hYmxlZCB0aGUgZHluYW1pYyBVVkQgc3RhdGUgc2VsZWN0aW9uLCBi dXQKPj4+IGRvdWJsZSBjaGVja2luZyB0aGlzIEkgZm91bmQgaXQgZGlzYWJsZWQgYWdhaW4uCj4+ Pgo+Pj4gV2hhdCB3YXMgdGhlIHByb2JsZW0gd2l0aCB0aGF0PyBMb29rcyBsaWtlIEkgc29tZWhv dyBtaXNzZWQgdGhlCj4+PiBkaXNjdXNzaW9uCj4+PiBhcm91bmQgaXQuCj4+Cj4+IFdlIGRpZCwg YnV0IGFmdGVyIGRvaW5nIHNvIGEgbnVtYmVyIG9mIHBlb3BsZSBjb21wbGFpbmVkIGFib3V0IGEK Pj4gcmVncmVzc2lvbiBvbiBJUkMgYmVjYXVzZSB3aGVuIGFwcHMgbGlrZSB4bWJjIGVuYWJsZWQg cG9zdCBwcm9jZXNzaW5nLAo+PiBwZXJmb3JtYW5jZSB3ZW50IGRvd24uCj4KPgo+IFRoYXQncyBz dHJhbmdlLCBmcm9tIG15IGV4cGVyaWVuY2UgdGhlIGRpZmZlcmVudCBVVkQgcGVyZm9ybWFuY2Ug c3RhdGVzIG9ubHkKPiBhZmZlY3QgVVZEcyBkY2xrL3ZjbGssIG5vdCBzY2xrL21jbGsuIEkgbmVl ZCB0byBnZXQgdGhlIERQTSBkdW1wcyB0bwo+IGNvbmZpcm1zIHRoaXMuCj4KClRoZSBzY2xrcyBh bmQgbWNsa3MgYXJlIHVzdWFsbHkgZGlmZmVyZW50IGFzIHdlbGwsIGVzcGVjaWFsbHkgb24gQVBV cy4KSSBjYW4gc2VuZCB5b3Ugc29tZSBleGFtcGxlcy4KCj4gWW91IG5vdCBvZmYgaGFuZCByZW1l bWJlciB3aG8gY29tcGxhaW5lZCBvbiBJUkM/IEZpbmRpbmcgc29tZXRoaW5nIGluIHRoZQo+IElS QyBsb2dzIGlzIGxpa2Ugc2VhcmNoaW5nIGZvciBhIG5lZWRsZSBpbiBhIGhheXN0YWNrLgoKSSBk b24ndCByZW1lbWJlciBvZmYgaGFuZC4gIEkgdGhpbmsgemdyZWcgd2FzIGludm9sdmVkIGluIHNv bWUgb2YgdGhlCmRpc2N1c3Npb25zLgoKQWxleAoKPgo+IFRoYW5rcywKPiBDaHJpc3RpYW4uCj4K Pgo+Pgo+PiBBbGV4Cj4+Cj4+Cj4+PiBDaHJpc3RpYW4uCj4+Pgo+Pj4KPj4+PiBGb3IgdGhlIHBv c3QgcHJvY2Vzc2luZywgd2UgcHJvYmFibHkgbmVlZCBhIGhpbnQgd2UgY2FuCj4+Pj4gcGFzcyB0 byB0aGUgZHJpdmVyIGluIHRoZSBDUyBpb2N0bCB0byBkZW5vdGUgd2hhdCBzdGF0ZSB3ZSBuZWVk Lgo+Pj4+IEFsdGhvdWdoIGlmIHdlIGRpZCB0aGF0LCB0aGlzIGNvdWxkIHdvdWxkIGxhcmdlbHkg YmUgbW9vdC4gIFRoYXQgc2FpZCwKPj4+PiBuZXdlciBhc2ljcyBzdXBwb3J0IGR5bmFtaWMgVVZE IGNsb2NrcyBzbyB3ZSByZWFsbHkgb25seSBuZWVkCj4+Pj4gc29tZXRoaW5nIGxpa2UgdGhhdCBm b3Igb2xkZXIgYXNpY3MgYW5kIEkgZ3Vlc3MgVkNFLgo+Pj4+Cj4+Pj4gQWxleAo+Pj4+Cj4+Pj4+ IENocmlzdGlhbi4KPj4+Pj4KPj4+Pj4KPj4+Pj4+IEFsZXgKPj4+Pj4+Cj4+Pj4+Pj4gU2lnbmVk LW9mZi1ieTogTWFyY28gQSBCZW5hdHRvIDxtYXJjby5hbnRvbmlvLjc4MEBnbWFpbC5jb20+Cj4+ Pj4+Pj4gU2lnbmVkLW9mZi1ieTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0Bh bWQuY29tPgo+Pj4+Pj4+IC0tLQo+Pj4+Pj4+ICAgICBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3Jh ZGVvbi5oICAgICB8IDEwICsrKysrKwo+Pj4+Pj4+ICAgICBkcml2ZXJzL2dwdS9kcm0vcmFkZW9u L3JhZGVvbl91dmQuYyB8IDY0Cj4+Pj4+Pj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrLS0tLQo+Pj4+Pj4+ICAgICAyIGZpbGVzIGNoYW5nZWQsIDY4IGluc2VydGlvbnMoKyksIDYg ZGVsZXRpb25zKC0pCj4+Pj4+Pj4KPj4+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9yYWRlb24uaAo+Pj4+Pj4+IGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb24u aAo+Pj4+Pj4+IGluZGV4IDllMTczMmUuLmU5MmY2Y2IgMTAwNjQ0Cj4+Pj4+Pj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb24uaAo+Pj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vcmFkZW9uLmgKPj4+Pj4+PiBAQCAtMTYxNyw2ICsxNjE3LDE1IEBAIGludCByYWRl b25fcG1fZ2V0X3R5cGVfaW5kZXgoc3RydWN0Cj4+Pj4+Pj4gcmFkZW9uX2RldmljZQo+Pj4+Pj4+ ICpyZGV2LAo+Pj4+Pj4+ICAgICAjZGVmaW5lIFJBREVPTl9VVkRfU1RBQ0tfU0laRSAgKDEwMjQq MTAyNCkKPj4+Pj4+PiAgICAgI2RlZmluZSBSQURFT05fVVZEX0hFQVBfU0laRSAgICgxMDI0KjEw MjQpCj4+Pj4+Pj4KPj4+Pj4+PiArI2RlZmluZSBSQURFT05fVVZEX0ZQU19FVkVOVFNfTUFYIDgK Pj4+Pj4+PiArI2RlZmluZSBSQURFT05fVVZEX0RFRkFVTFRfRlBTIDYwCj4+Pj4+Pj4gKwo+Pj4+ Pj4+ICtzdHJ1Y3QgcmFkZW9uX3V2ZF9mcHMgewo+Pj4+Pj4+ICsgICAgICAgdWludDY0X3QgICAg ICAgIHRpbWVzdGFtcDsKPj4+Pj4+PiArICAgICAgIHVpbnQ4X3QgICAgICAgICBldmVudF9pbmRl eDsKPj4+Pj4+PiArICAgICAgIHVpbnQ4X3QgICAgICAgICBldmVudHNbUkFERU9OX1VWRF9GUFNf RVZFTlRTX01BWF07Cj4+Pj4+Pj4gK307Cj4+Pj4+Pj4gKwo+Pj4+Pj4+ICAgICBzdHJ1Y3QgcmFk ZW9uX3V2ZCB7Cj4+Pj4+Pj4gICAgICAgICAgICBzdHJ1Y3QgcmFkZW9uX2JvICAgICAgICAqdmNw dV9ibzsKPj4+Pj4+PiAgICAgICAgICAgIHZvaWQgICAgICAgICAgICAgICAgICAgICpjcHVfYWRk cjsKPj4+Pj4+PiBAQCAtMTYyNiw2ICsxNjM1LDcgQEAgc3RydWN0IHJhZGVvbl91dmQgewo+Pj4+ Pj4+ICAgICAgICAgICAgc3RydWN0IGRybV9maWxlICAgICAgICAgKmZpbHBbUkFERU9OX01BWF9V VkRfSEFORExFU107Cj4+Pj4+Pj4gICAgICAgICAgICB1bnNpZ25lZCAgICAgICAgICAgICAgICBp bWdfc2l6ZVtSQURFT05fTUFYX1VWRF9IQU5ETEVTXTsKPj4+Pj4+PiAgICAgICAgICAgIHN0cnVj dCBkZWxheWVkX3dvcmsgICAgIGlkbGVfd29yazsKPj4+Pj4+PiArICAgICAgIHN0cnVjdCByYWRl b25fdXZkX2ZwcyAgIGZwc19pbmZvW1JBREVPTl9NQVhfVVZEX0hBTkRMRVNdOwo+Pj4+Pj4+ICAg ICB9Owo+Pj4+Pj4+Cj4+Pj4+Pj4gICAgIGludCByYWRlb25fdXZkX2luaXQoc3RydWN0IHJhZGVv bl9kZXZpY2UgKnJkZXYpOwo+Pj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL3JhZGVvbl91dmQuYwo+Pj4+Pj4+IGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25f dXZkLmMKPj4+Pj4+PiBpbmRleCA2YmY1NWVjLi5lZjU2NjdhIDEwMDY0NAo+Pj4+Pj4+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3V2ZC5jCj4+Pj4+Pj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fdXZkLmMKPj4+Pj4+PiBAQCAtMjM3LDYgKzIzNyw1MSBA QCB2b2lkIHJhZGVvbl91dmRfZm9yY2VfaW50b191dmRfc2VnbWVudChzdHJ1Y3QKPj4+Pj4+PiBy YWRlb25fYm8gKnJibykKPj4+Pj4+PiAgICAgICAgICAgIHJiby0+cGxhY2VtZW50LmxwZm4gPSAo MjU2ICogMTAyNCAqIDEwMjQpID4+IFBBR0VfU0hJRlQ7Cj4+Pj4+Pj4gICAgIH0KPj4+Pj4+Pgo+ Pj4+Pj4+ICtzdGF0aWMgdm9pZCByYWRlb25fdXZkX2Zwc19jbGVhcl9ldmVudHMoc3RydWN0IHJh ZGVvbl9kZXZpY2UgKnJkZXYsCj4+Pj4+Pj4gaW50Cj4+Pj4+Pj4gaWR4KQo+Pj4+Pj4+ICt7Cj4+ Pj4+Pj4gKyAgICAgICBzdHJ1Y3QgcmFkZW9uX3V2ZF9mcHMgKmZwcyA9ICZyZGV2LT51dmQuZnBz X2luZm9baWR4XTsKPj4+Pj4+PiArICAgICAgIHVuc2lnbmVkIGk7Cj4+Pj4+Pj4gKwo+Pj4+Pj4+ ICsgICAgICAgZnBzLT50aW1lc3RhbXAgPSBqaWZmaWVzXzY0Owo+Pj4+Pj4+ICsgICAgICAgZnBz LT5ldmVudF9pbmRleCA9IDA7Cj4+Pj4+Pj4gKyAgICAgICBmb3IgKGkgPSAwOyBpIDwgUkFERU9O X1VWRF9GUFNfRVZFTlRTX01BWDsgaSsrKQo+Pj4+Pj4+ICsgICAgICAgICAgICAgICBmcHMtPmV2 ZW50c1tpXSA9IDA7Cj4+Pj4+Pj4gK30KPj4+Pj4+PiArCj4+Pj4+Pj4gK3N0YXRpYyB2b2lkIHJh ZGVvbl91dmRfZnBzX25vdGVfZXZlbnQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCj4+Pj4+ Pj4gaW50Cj4+Pj4+Pj4gaWR4KQo+Pj4+Pj4+ICt7Cj4+Pj4+Pj4gKyAgICAgICBzdHJ1Y3QgcmFk ZW9uX3V2ZF9mcHMgKmZwcyA9ICZyZGV2LT51dmQuZnBzX2luZm9baWR4XTsKPj4+Pj4+PiArICAg ICAgIHVpbnQ2NF90IHRpbWVzdGFtcCA9IGppZmZpZXNfNjQ7Cj4+Pj4+Pj4gKyAgICAgICB1bnNp Z25lZCByYXRlID0gMDsKPj4+Pj4+PiArCj4+Pj4+Pj4gKyAgICAgICB1aW50OF90IGluZGV4ID0g ZnBzLT5ldmVudF9pbmRleCsrOwo+Pj4+Pj4+ICsgICAgICAgZnBzLT5ldmVudF9pbmRleCAlPSBS QURFT05fVVZEX0ZQU19FVkVOVFNfTUFYOwo+Pj4+Pj4+ICsKPj4+Pj4+PiArICAgICAgIHJhdGUg PSBkaXY2NF91NjQoSFosIG1heCh0aW1lc3RhbXAgLSBmcHMtPnRpbWVzdGFtcCwgMVVMTCkpOwo+ Pj4+Pj4+ICsKPj4+Pj4+PiArICAgICAgIGZwcy0+dGltZXN0YW1wID0gdGltZXN0YW1wOwo+Pj4+ Pj4+ICsgICAgICAgZnBzLT5ldmVudHNbaW5kZXhdID0gbWluKHJhdGUsIDEyMHUpOwo+Pj4+Pj4+ ICt9Cj4+Pj4+Pj4gKwo+Pj4+Pj4+ICtzdGF0aWMgdW5zaWduZWQgcmFkZW9uX3V2ZF9lc3RpbWF0 ZV9mcHMoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCj4+Pj4+Pj4gaW50Cj4+Pj4+Pj4gaWR4 KQo+Pj4+Pj4+ICt7Cj4+Pj4+Pj4gKyAgICAgICBzdHJ1Y3QgcmFkZW9uX3V2ZF9mcHMgKmZwcyA9 ICZyZGV2LT51dmQuZnBzX2luZm9baWR4XTsKPj4+Pj4+PiArICAgICAgIHVuc2lnbmVkIGksIHZh bGlkID0gMCwgY291bnQgPSAwOwo+Pj4+Pj4+ICsKPj4+Pj4+PiArICAgICAgIGZvciAoaSA9IDA7 IGkgPCBSQURFT05fVVZEX0ZQU19FVkVOVFNfTUFYOyBpKyspIHsKPj4+Pj4+PiArICAgICAgICAg ICAgICAgLyogV2Ugc2hvdWxkIGlnbm9yZSB6ZXJvIHZhbHVlcyAqLwo+Pj4+Pj4+ICsgICAgICAg ICAgICAgICBpZiAoZnBzLT5ldmVudHNbaV0gIT0gMCkgewo+Pj4+Pj4+ICsgICAgICAgICAgICAg ICAgICAgICAgIGNvdW50ICs9IGZwcy0+ZXZlbnRzW2ldOwo+Pj4+Pj4+ICsgICAgICAgICAgICAg ICAgICAgICAgIHZhbGlkKys7Cj4+Pj4+Pj4gKyAgICAgICAgICAgICAgIH0KPj4+Pj4+PiArICAg ICAgIH0KPj4+Pj4+PiArCj4+Pj4+Pj4gKyAgICAgICBpZiAodmFsaWQgPiAwKQo+Pj4+Pj4+ICsg ICAgICAgICAgICAgICByZXR1cm4gY291bnQgLyB2YWxpZDsKPj4+Pj4+PiArICAgICAgIGVsc2UK Pj4+Pj4+PiArICAgICAgICAgICAgICAgcmV0dXJuIFJBREVPTl9VVkRfREVGQVVMVF9GUFM7Cj4+ Pj4+Pj4gK30KPj4+Pj4+PiArCj4+Pj4+Pj4gICAgIHZvaWQgcmFkZW9uX3V2ZF9mcmVlX2hhbmRs ZXMoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHN0cnVjdAo+Pj4+Pj4+IGRybV9maWxlICpm aWxwKQo+Pj4+Pj4+ICAgICB7Cj4+Pj4+Pj4gICAgICAgICAgICBpbnQgaSwgcjsKPj4+Pj4+PiBA QCAtNDE5LDggKzQ2NCwxMCBAQCBzdGF0aWMgaW50IHJhZGVvbl91dmRfY3NfbXNnKHN0cnVjdAo+ Pj4+Pj4+IHJhZGVvbl9jc19wYXJzZXIKPj4+Pj4+PiAqcCwgc3RydWN0IHJhZGVvbl9ibyAqYm8s Cj4+Pj4+Pj4KPj4+Pj4+PiAgICAgICAgICAgIC8qIGNyZWF0ZSBvciBkZWNvZGUsIHZhbGlkYXRl IHRoZSBoYW5kbGUgKi8KPj4+Pj4+PiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBSQURFT05f TUFYX1VWRF9IQU5ETEVTOyArK2kpIHsKPj4+Pj4+PiAtICAgICAgICAgICAgICAgaWYgKGF0b21p Y19yZWFkKCZwLT5yZGV2LT51dmQuaGFuZGxlc1tpXSkgPT0gaGFuZGxlKQo+Pj4+Pj4+ICsgICAg ICAgICAgICAgICBpZiAoYXRvbWljX3JlYWQoJnAtPnJkZXYtPnV2ZC5oYW5kbGVzW2ldKSA9PSBo YW5kbGUpCj4+Pj4+Pj4gewo+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgIHJhZGVvbl91 dmRfZnBzX25vdGVfZXZlbnQocC0+cmRldiwgaSk7Cj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgcmV0dXJuIDA7Cj4+Pj4+Pj4gKyAgICAgICAgICAgICAgIH0KPj4+Pj4+PiAgICAg ICAgICAgIH0KPj4+Pj4+Pgo+Pj4+Pj4+ICAgICAgICAgICAgLyogaGFuZGxlIG5vdCBmb3VuZCB0 cnkgdG8gYWxsb2MgYSBuZXcgb25lICovCj4+Pj4+Pj4gQEAgLTQyOCw2ICs0NzUsNyBAQCBzdGF0 aWMgaW50IHJhZGVvbl91dmRfY3NfbXNnKHN0cnVjdAo+Pj4+Pj4+IHJhZGVvbl9jc19wYXJzZXIK Pj4+Pj4+PiAqcCwgc3RydWN0IHJhZGVvbl9ibyAqYm8sCj4+Pj4+Pj4gICAgICAgICAgICAgICAg ICAgIGlmICghYXRvbWljX2NtcHhjaGcoJnAtPnJkZXYtPnV2ZC5oYW5kbGVzW2ldLCAwLAo+Pj4+ Pj4+IGhhbmRsZSkpIHsKPj4+Pj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwLT5yZGV2 LT51dmQuZmlscFtpXSA9IHAtPmZpbHA7Cj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgcC0+cmRldi0+dXZkLmltZ19zaXplW2ldID0gaW1nX3NpemU7Cj4+Pj4+Pj4gKyAgICAgICAg ICAgICAgICAgICAgICAgcmFkZW9uX3V2ZF9mcHNfY2xlYXJfZXZlbnRzKHAtPnJkZXYsIGkpOwo+ Pj4+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOwo+Pj4+Pj4+ICAgICAg ICAgICAgICAgICAgICB9Cj4+Pj4+Pj4gICAgICAgICAgICB9Cj4+Pj4+Pj4gQEAgLTc2Myw3ICs4 MTEsNyBAQCBpbnQgcmFkZW9uX3V2ZF9nZXRfZGVzdHJveV9tc2coc3RydWN0Cj4+Pj4+Pj4gcmFk ZW9uX2RldmljZQo+Pj4+Pj4+ICpyZGV2LCBpbnQgcmluZywKPj4+Pj4+PiAgICAgc3RhdGljIHZv aWQgcmFkZW9uX3V2ZF9jb3VudF9oYW5kbGVzKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAo+ Pj4+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCAq c2QsIHVuc2lnbmVkICpoZCkKPj4+Pj4+PiAgICAgewo+Pj4+Pj4+IC0gICAgICAgdW5zaWduZWQg aTsKPj4+Pj4+PiArICAgICAgIHVuc2lnbmVkIGksIGZwc19yYXRlID0gMDsKPj4+Pj4+Pgo+Pj4+ Pj4+ICAgICAgICAgICAgKnNkID0gMDsKPj4+Pj4+PiAgICAgICAgICAgICpoZCA9IDA7Cj4+Pj4+ Pj4gQEAgLTc3MiwxMCArODIwLDEzIEBAIHN0YXRpYyB2b2lkIHJhZGVvbl91dmRfY291bnRfaGFu ZGxlcyhzdHJ1Y3QKPj4+Pj4+PiByYWRlb25fZGV2aWNlICpyZGV2LAo+Pj4+Pj4+ICAgICAgICAg ICAgICAgICAgICBpZiAoIWF0b21pY19yZWFkKCZyZGV2LT51dmQuaGFuZGxlc1tpXSkpCj4+Pj4+ Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Cj4+Pj4+Pj4KPj4+Pj4+PiAt ICAgICAgICAgICAgICAgaWYgKHJkZXYtPnV2ZC5pbWdfc2l6ZVtpXSA+PSA3MjAqNTc2KQo+Pj4+ Pj4+IC0gICAgICAgICAgICAgICAgICAgICAgICsrKCpoZCk7Cj4+Pj4+Pj4gLSAgICAgICAgICAg ICAgIGVsc2UKPj4+Pj4+PiAtICAgICAgICAgICAgICAgICAgICAgICArKygqc2QpOwo+Pj4+Pj4+ ICsgICAgICAgICAgICAgICBmcHNfcmF0ZSA9IHJhZGVvbl91dmRfZXN0aW1hdGVfZnBzKHJkZXYs IGkpOwo+Pj4+Pj4+ICsKPj4+Pj4+PiArICAgICAgICAgICAgICAgaWYgKHJkZXYtPnV2ZC5pbWdf c2l6ZVtpXSA+PSA3MjAqNTc2KSB7Cj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgKCpo ZCkgKz0gZnBzX3JhdGUgPiAzMCA/IDEgOiAyOwo+Pj4+Pj4+ICsgICAgICAgICAgICAgICB9IGVs c2Ugewo+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICgqc2QpICs9IGZwc19yYXRlID4g MzAgPyAxIDogMjsKPj4+Pj4+PiArICAgICAgICAgICAgICAgfQo+Pj4+Pj4+ICAgICAgICAgICAg fQo+Pj4+Pj4+ICAgICB9Cj4+Pj4+Pj4KPj4+Pj4+PiBAQCAtODA1LDYgKzg1Niw3IEBAIHZvaWQg cmFkZW9uX3V2ZF9ub3RlX3VzYWdlKHN0cnVjdCByYWRlb25fZGV2aWNlCj4+Pj4+Pj4gKnJkZXYp Cj4+Pj4+Pj4gICAgICAgICAgICBzZXRfY2xvY2tzICY9IHNjaGVkdWxlX2RlbGF5ZWRfd29yaygm cmRldi0+dXZkLmlkbGVfd29yaywKPj4+Pj4+Pgo+Pj4+Pj4+IG1zZWNzX3RvX2ppZmZpZXMoVVZE X0lETEVfVElNRU9VVF9NUykpOwo+Pj4+Pj4+Cj4+Pj4+Pj4gKwo+Pj4+Pj4+ICAgICAgICAgICAg aWYgKChyZGV2LT5wbS5wbV9tZXRob2QgPT0gUE1fTUVUSE9EX0RQTSkgJiYKPj4+Pj4+PiByZGV2 LT5wbS5kcG1fZW5hYmxlZCkgewo+Pj4+Pj4+ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBo ZCA9IDAsIHNkID0gMDsKPj4+Pj4+PiAgICAgICAgICAgICAgICAgICAgcmFkZW9uX3V2ZF9jb3Vu dF9oYW5kbGVzKHJkZXYsICZzZCwgJmhkKTsKPj4+Pj4+PiAtLQo+Pj4+Pj4+IDEuOS4xCj4+Pj4+ Pj4KPgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmkt ZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=