From mboxrd@z Thu Jan 1 00:00:00 1970 From: Inki Dae Subject: Re: [PATCH] drm/exynos/hdmi: refactor infoframe code Date: Mon, 07 Nov 2016 17:14:36 +0900 Message-ID: <582037EC.8090802@samsung.com> References: <1477485391-8911-1-git-send-email-a.hajda@samsung.com> <581FDCA6.3050405@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mailout3.samsung.com (mailout3.samsung.com [203.254.224.33]) by gabe.freedesktop.org (Postfix) with ESMTPS id 137F06E0AC for ; Mon, 7 Nov 2016 08:14:38 +0000 (UTC) Received: from epcpsbgm2new.samsung.com (epcpsbgm2 [203.254.230.27]) by mailout3.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0OG9030W0IWBVQ90@mailout3.samsung.com> for dri-devel@lists.freedesktop.org; Mon, 07 Nov 2016 17:14:36 +0900 (KST) 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: Andrzej Hajda , dri-devel@lists.freedesktop.org Cc: Marek Szyprowski , Bartlomiej Zolnierkiewicz List-Id: dri-devel@lists.freedesktop.org CgoyMDE264WEIDEx7JuUIDA37J28IDE3OjA17JeQIEFuZHJ6ZWogSGFqZGEg7J20KOqwgCkg7JO0 IOq4gDoKPiBPbiAwNy4xMS4yMDE2IDAyOjQ1LCBJbmtpIERhZSB3cm90ZToKPj4KPj4gMjAxNuuF hCAxMOyblCAyNuydvCAyMTozNuyXkCBBbmRyemVqIEhhamRhIOydtCjqsIApIOyTtCDquIA6Cj4+ PiBVc2UgY29yZSBoZWxwZXJzIHRvIGdlbmVyYXRlIGluZm9mcmFtZXMgYW5kIGdlbmVyYXRlIHZl bmRvciBmcmFtZSBpZiBuZWNlc3NhcnkuCj4+Pgo+Pj4gU2lnbmVkLW9mZi1ieTogQW5kcnplaiBI YWpkYSA8YS5oYWpkYUBzYW1zdW5nLmNvbT4KPj4+IC0tLQo+Pj4gIGRyaXZlcnMvZ3B1L2RybS9l eHlub3MvZXh5bm9zX2hkbWkuYyB8IDE0MSArKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQo+Pj4gIGRyaXZlcnMvZ3B1L2RybS9leHlub3MvcmVncy1oZG1pLmggICB8ICAgMiArCj4+ PiAgMiBmaWxlcyBjaGFuZ2VkLCA0MiBpbnNlcnRpb25zKCspLCAxMDEgZGVsZXRpb25zKC0pCj4+ Pgo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2hkbWkuYyBi L2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2hkbWkuYwo+Pj4gaW5kZXggZThmYjZlZi4u MWJiMmRmNyAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2hk bWkuYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfaGRtaS5jCj4+PiBA QCAtNDcsMTkgKzQ3LDYgQEAKPj4+ICAKPj4+ICAjZGVmaW5lIEhPVFBMVUdfREVCT1VOQ0VfTVMJ CTExMDAKPj4+ICAKPj4+IC0vKiBBVkkgaGVhZGVyIGFuZCBhc3BlY3QgcmF0aW8gKi8KPj4+IC0j ZGVmaW5lIEhETUlfQVZJX1ZFUlNJT04JCTB4MDIKPj4+IC0jZGVmaW5lIEhETUlfQVZJX0xFTkdU SAkJCTB4MGQKPj4+IC0KPj4+IC0vKiBBVUkgaGVhZGVyIGluZm8gKi8KPj4+IC0jZGVmaW5lIEhE TUlfQVVJX1ZFUlNJT04JCTB4MDEKPj4+IC0jZGVmaW5lIEhETUlfQVVJX0xFTkdUSAkJCTB4MGEK Pj4+IC0KPj4+IC0vKiBBVkkgYWN0aXZlIGZvcm1hdCBhc3BlY3QgcmF0aW8gKi8KPj4+IC0jZGVm aW5lIEFWSV9TQU1FX0FTX1BJQ19BU1BFQ1RfUkFUSU8JMHgwOAo+Pj4gLSNkZWZpbmUgQVZJXzRf M19DRU5URVJfUkFUSU8JCTB4MDkKPj4+IC0jZGVmaW5lIEFWSV8xNl85X0NFTlRFUl9SQVRJTwkJ MHgwYQo+Pj4gLQo+Pj4gIGVudW0gaGRtaV90eXBlIHsKPj4+ICAJSERNSV9UWVBFMTMsCj4+PiAg CUhETUlfVFlQRTE0LAo+Pj4gQEAgLTEzMSw3ICsxMTgsNiBAQCBzdHJ1Y3QgaGRtaV9jb250ZXh0 IHsKPj4+ICAJYm9vbAkJCQlkdmlfbW9kZTsKPj4+ICAJc3RydWN0IGRlbGF5ZWRfd29yawkJaG90 cGx1Z193b3JrOwo+Pj4gIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZQkJY3VycmVudF9tb2RlOwo+ Pj4gLQl1OAkJCQljZWFfdmlkZW9faWQ7Cj4+PiAgCWNvbnN0IHN0cnVjdCBoZG1pX2RyaXZlcl9k YXRhCSpkcnZfZGF0YTsKPj4+ICAKPj4+ICAJdm9pZCBfX2lvbWVtCQkJKnJlZ3M7Cj4+PiBAQCAt NjgxLDYgKzY2NywxMyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaGRtaV9yZWdfd3JpdGV2KHN0cnVj dCBoZG1pX2NvbnRleHQgKmhkYXRhLCB1MzIgcmVnX2lkLAo+Pj4gIAl9Cj4+PiAgfQo+Pj4gIAo+ Pj4gK3N0YXRpYyBpbmxpbmUgdm9pZCBoZG1pX3JlZ193cml0ZV9idWYoc3RydWN0IGhkbWlfY29u dGV4dCAqaGRhdGEsIHUzMiByZWdfaWQsCj4+PiArCQkJCSAgICAgIHU4ICpidWYsIGludCBzaXpl KQo+Pj4gK3sKPj4+ICsJZm9yIChyZWdfaWQgPSBoZG1pX21hcF9yZWcoaGRhdGEsIHJlZ19pZCk7 IHNpemU7IC0tc2l6ZSwgcmVnX2lkICs9IDQpCj4+PiArCQl3cml0ZWwoKmJ1ZisrLCBoZGF0YS0+ cmVncyArIHJlZ19pZCk7Cj4+PiArfQo+Pj4gKwo+Pj4gIHN0YXRpYyBpbmxpbmUgdm9pZCBoZG1p X3JlZ193cml0ZW1hc2soc3RydWN0IGhkbWlfY29udGV4dCAqaGRhdGEsCj4+PiAgCQkJCSB1MzIg cmVnX2lkLCB1MzIgdmFsdWUsIHUzMiBtYXNrKQo+Pj4gIHsKPj4+IEBAIC03NjIsOTMgKzc1NSw1 MCBAQCBzdGF0aWMgaW50IGhkbWlfY2xrX3NldF9wYXJlbnRzKHN0cnVjdCBoZG1pX2NvbnRleHQg KmhkYXRhLCBib29sIHRvX3BoeSkKPj4+ICAJcmV0dXJuIHJldDsKPj4+ICB9Cj4+PiAgCj4+PiAt c3RhdGljIHU4IGhkbWlfY2hrc3VtKHN0cnVjdCBoZG1pX2NvbnRleHQgKmhkYXRhLAo+Pj4gLQkJ CXUzMiBzdGFydCwgdTggbGVuLCB1MzIgaGRyX3N1bSkKPj4+IC17Cj4+PiAtCWludCBpOwo+Pj4g LQo+Pj4gLQkvKiBoZHJfc3VtIDogaGVhZGVyMCArIGhlYWRlcjEgKyBoZWFkZXIyCj4+PiAtCSog c3RhcnQgOiBzdGFydCBhZGRyZXNzIG9mIHBhY2tldCBieXRlMQo+Pj4gLQkqIGxlbiA6IHBhY2tl dCBieXRlcyAtIDEgKi8KPj4+IC0JZm9yIChpID0gMDsgaSA8IGxlbjsgKytpKQo+Pj4gLQkJaGRy X3N1bSArPSAweGZmICYgaGRtaV9yZWdfcmVhZChoZGF0YSwgc3RhcnQgKyBpICogNCk7Cj4+PiAt Cj4+PiAtCS8qIHJldHVybiAyJ3MgY29tcGxlbWVudCBvZiA4IGJpdCBoZHJfc3VtICovCj4+PiAt CXJldHVybiAodTgpKH4oaGRyX3N1bSAmIDB4ZmYpICsgMSk7Cj4+PiAtfQo+Pj4gLQo+Pj4gLXN0 YXRpYyB2b2lkIGhkbWlfcmVnX2luZm9mcmFtZShzdHJ1Y3QgaGRtaV9jb250ZXh0ICpoZGF0YSwK Pj4+IC0JCQl1bmlvbiBoZG1pX2luZm9mcmFtZSAqaW5mb2ZyYW1lKQo+Pj4gK3N0YXRpYyB2b2lk IGhkbWlfcmVnX2luZm9mcmFtZXMoc3RydWN0IGhkbWlfY29udGV4dCAqaGRhdGEpCj4+PiAgewo+ Pj4gLQl1MzIgaGRyX3N1bTsKPj4+IC0JdTggY2hrc3VtOwo+Pj4gLQl1OCBhcjsKPj4+ICsJdW5p b24gaGRtaV9pbmZvZnJhbWUgZnJtOwo+Pj4gKwl1OCBidWZbMjVdOwo+Pj4gKwlpbnQgcmV0Owo+ Pj4gIAo+Pj4gIAlpZiAoaGRhdGEtPmR2aV9tb2RlKSB7Cj4+PiAtCQloZG1pX3JlZ193cml0ZWIo aGRhdGEsIEhETUlfVlNJX0NPTiwKPj4+IC0JCQkJSERNSV9WU0lfQ09OX0RPX05PVF9UUkFOU01J VCk7Cj4+PiAgCQloZG1pX3JlZ193cml0ZWIoaGRhdGEsIEhETUlfQVZJX0NPTiwKPj4+ICAJCQkJ SERNSV9BVklfQ09OX0RPX05PVF9UUkFOU01JVCk7Cj4+PiArCQloZG1pX3JlZ193cml0ZWIoaGRh dGEsIEhETUlfVlNJX0NPTiwKPj4+ICsJCQkJSERNSV9WU0lfQ09OX0RPX05PVF9UUkFOU01JVCk7 Cj4+PiAgCQloZG1pX3JlZ193cml0ZWIoaGRhdGEsIEhETUlfQVVJX0NPTiwgSERNSV9BVUlfQ09O X05PX1RSQU4pOwo+Pj4gIAkJcmV0dXJuOwo+Pj4gIAl9Cj4+PiAgCj4+PiAtCXN3aXRjaCAoaW5m b2ZyYW1lLT5hbnkudHlwZSkgewo+Pj4gLQljYXNlIEhETUlfSU5GT0ZSQU1FX1RZUEVfQVZJOgo+ Pj4gKwlyZXQgPSBkcm1faGRtaV9hdmlfaW5mb2ZyYW1lX2Zyb21fZGlzcGxheV9tb2RlKCZmcm0u YXZpLAo+Pj4gKwkJCSZoZGF0YS0+Y3VycmVudF9tb2RlKTsKPj4+ICsJaWYgKHJldCA+PSAwKQo+ PiBTZWVtcyBhYm92ZSBjb25kaXRpb24gaXMgbm90IGNsZWFyIGJlY3Vhc2UgZHJtX2hkbWlfYXZp X2luZm9mcmFtZV9mcm9tX2Rpc3BsYXlfbW9kZSBmdW5jdGlvbiByZXR1cm5zIDAgb3IgbmVnYXRp dmUgdmFsdWUuCj4gCj4gU28gaXQgbWVhbnMgJ3RoZXJlIGlzIG5vIGVycm9yJywgSSBjYW4gY2hh bmdlIGl0IHRvICchcmV0JyBvciAncmV0ID09IDAnCj4gaWYgeW91IHByZWZlciwgSSBoYXZlIGp1 c3QgdXNlZCAnPj0gMCcgdG8gYmUgbW9yZSBjb25jaXNlIHdpdGggbmV4dAo+IGVycm9yIGNoZWNr LgoKQXMgSSBtZW50aW9uZWQsIG5ldmVyIHJldHVybiBiaWdnZXIgdGhhbiAwLiBMZXQncyBjaGFu Z2UgaXQgdG8gIXJldCBvciByZXQgPT0gMC4KCj4+Cj4+PiArCQlyZXQgPSBoZG1pX2F2aV9pbmZv ZnJhbWVfcGFjaygmZnJtLmF2aSwgYnVmLCBzaXplb2YoYnVmKSk7Cj4+PiArCWlmIChyZXQgPiAw KSB7Cj4+PiAgCQloZG1pX3JlZ193cml0ZWIoaGRhdGEsIEhETUlfQVZJX0NPTiwgSERNSV9BVklf Q09OX0VWRVJZX1ZTWU5DKTsKPj4gSSB0aGluayBhYm92ZSBjb2RlIHNob3VsZCBiZSBjYWxsZWQg d2hlbiBkcm1faGRtaV9hdmlfaW5mb2ZyYW1lX2Zyb21fZGlzcGxheV9tb2RlIGZ1bmN0aW9uIHJl dHVybmVkIDAgYW5kIHRoZSB2YWx1ZSBmcm9tIGhkbWlfYXZpX2luZm9mcmFtZV9wYWNrIGZ1bmN0 aW9uIGlzIG1vcmUgdGhhbiAxLgo+IAo+IFdoeSBkbyB5b3UgdGhpbmsgJ21vcmUgdGhhbiAxJyBp cyBiZXR0ZXIgdGhhbiAnbW9yZSB0aGFuIDAnIGluIHRoaXMKPiBjYXNlPyBoZG1pX2F2aV9pbmZv ZnJhbWVfcGFjayByZXR1cm5zIGxlbmd0aCBvZiBnZW5lcmF0ZWQgZnJhbWUgb3IKPiBuZWdhdGl2 ZSB2YWx1ZSBpbiBjYXNlIG9mIGVycm9yLAo+IHNvIGFueSBwb3NpdGl2ZSB2YWx1ZSBpcyBPSywg dGhlcmUgaXMgbm8gc3BlY2lhbCBtZWFuaW5nIGZvciAnMScuCgpCZWNhdXNlIGhkbWlfYXZpX2lu Zm9mcmFtZV9wYWNrIHJldHVybnMgMCBvciBiaWdnZXIgdGhhbiAwLiBBbnl3YXksIHNlZW1zIHlv dSBhcmUgc2F5aW5nIGV4YWN0bHkgc2FtZSB0aGluZy4KCj4gCj4+Cj4+PiAtCQloZG1pX3JlZ193 cml0ZWIoaGRhdGEsIEhETUlfQVZJX0hFQURFUjAsIGluZm9mcmFtZS0+YW55LnR5cGUpOwo+Pj4g LQkJaGRtaV9yZWdfd3JpdGViKGhkYXRhLCBIRE1JX0FWSV9IRUFERVIxLAo+Pj4gLQkJCQlpbmZv ZnJhbWUtPmFueS52ZXJzaW9uKTsKPj4+IC0JCWhkbWlfcmVnX3dyaXRlYihoZGF0YSwgSERNSV9B VklfSEVBREVSMiwgaW5mb2ZyYW1lLT5hbnkubGVuZ3RoKTsKPj4+IC0JCWhkcl9zdW0gPSBpbmZv ZnJhbWUtPmFueS50eXBlICsgaW5mb2ZyYW1lLT5hbnkudmVyc2lvbiArCj4+PiAtCQkJICBpbmZv ZnJhbWUtPmFueS5sZW5ndGg7Cj4+PiAtCj4+PiAtCQkvKiBPdXRwdXQgZm9ybWF0IHplcm8gaGFy ZGNvZGVkICxSR0IgWUJDUiBzZWxlY3Rpb24gKi8KPj4+IC0JCWhkbWlfcmVnX3dyaXRlYihoZGF0 YSwgSERNSV9BVklfQllURSgxKSwgMCA8PCA1IHwKPj4+IC0JCQlBVklfQUNUSVZFX0ZPUk1BVF9W QUxJRCB8Cj4+PiAtCQkJQVZJX1VOREVSU0NBTk5FRF9ESVNQTEFZX1ZBTElEKTsKPj4+IC0KPj4+ IC0JCS8qCj4+PiAtCQkgKiBTZXQgdGhlIGFzcGVjdCByYXRpbyBhcyBwZXIgdGhlIG1vZGUsIG1l bnRpb25lZCBpbgo+Pj4gLQkJICogVGFibGUgOSBBVkkgSW5mb0ZyYW1lIERhdGEgQnl0ZSAyIG9m IENFQS04NjEtRCBTdGFuZGFyZAo+Pj4gLQkJICovCj4+PiAtCQlhciA9IGhkYXRhLT5jdXJyZW50 X21vZGUucGljdHVyZV9hc3BlY3RfcmF0aW87Cj4+PiAtCQlzd2l0Y2ggKGFyKSB7Cj4+PiAtCQlj YXNlIEhETUlfUElDVFVSRV9BU1BFQ1RfNF8zOgo+Pj4gLQkJCWFyIHw9IEFWSV80XzNfQ0VOVEVS X1JBVElPOwo+Pj4gLQkJCWJyZWFrOwo+Pj4gLQkJY2FzZSBIRE1JX1BJQ1RVUkVfQVNQRUNUXzE2 Xzk6Cj4+PiAtCQkJYXIgfD0gQVZJXzE2XzlfQ0VOVEVSX1JBVElPOwo+Pj4gLQkJCWJyZWFrOwo+ Pj4gLQkJY2FzZSBIRE1JX1BJQ1RVUkVfQVNQRUNUX05PTkU6Cj4+PiAtCQlkZWZhdWx0Ogo+Pj4g LQkJCWFyIHw9IEFWSV9TQU1FX0FTX1BJQ19BU1BFQ1RfUkFUSU87Cj4+PiAtCQkJYnJlYWs7Cj4+ PiAtCQl9Cj4+PiAtCQloZG1pX3JlZ193cml0ZWIoaGRhdGEsIEhETUlfQVZJX0JZVEUoMiksIGFy KTsKPj4+ICsJCWhkbWlfcmVnX3dyaXRlX2J1ZihoZGF0YSwgSERNSV9BVklfSEVBREVSMCwgYnVm LCByZXQpOwo+Pj4gKwl9IGVsc2Ugewo+Pj4gKwkJRFJNX0lORk8oIiVzOiBpbnZhbGlkIEFWSSBp bmZvZnJhbWUgKCVkKVxuIiwgX19mdW5jX18sIHJldCk7Cj4+IElmIGRybV9oZG1pX2F2aV9pbmZv ZnJhbWVfZnJvbV9kaXNwbGF5X21vZGUgZnVuY3Rpb24gcmV0dXJucyAwIG9uIHN1Y2Nlc3MsIHRo ZW4gYWJvdmUgbWVzc2FnZSB3aWxsIGJlIHByaW50ZWQgb3V0LiBTZWVtcyBub3QgcmVhc29uYWJs ZS4KPiAKPiBJZiBkcm1faGRtaV9hdmlfaW5mb2ZyYW1lX2Zyb21fZGlzcGxheV9tb2RlIHJldHVy bnMgMCwgdGhlbgo+IGhkbWlfYXZpX2luZm9mcmFtZV9wYWNrIGlzIGNhbGxlZCBhbmQgaWYgdGhl IGxhdHRlcgo+IGZhaWxzIChwcmFjdGljYWxseSBpbXBvc3NpYmxlKSB0aGlzIG1lc3NhZ2Ugd2ls bCBiZSBwcmludGVkIHdoaWNoIGlzCj4gY29ycmVjdCBiZWhhdmlvci4KClJpZ2h0LiBUaGUgY29u ZGl0aW9uLCAicmV0ID49IDAiIG1hZGUgbWUgY29uZnVzaW5nLgoKPiAKPiBUaGUgc2FtZSBhbnN3 ZXIgaXMgZm9yIHlvdXIgbmV4dCBjb21tZW50cy4KPiAKPiBSZWdhcmRzCj4gQW5kcnplago+IAo+ Pgo+Pj4gKwl9Cj4+PiAgCj4+PiAtCQloZG1pX3JlZ193cml0ZWIoaGRhdGEsIEhETUlfQVZJX0JZ VEUoNCksIGhkYXRhLT5jZWFfdmlkZW9faWQpOwo+Pj4gKwlyZXQgPSBkcm1faGRtaV92ZW5kb3Jf aW5mb2ZyYW1lX2Zyb21fZGlzcGxheV9tb2RlKCZmcm0udmVuZG9yLmhkbWksCj4+PiArCQkJJmhk YXRhLT5jdXJyZW50X21vZGUpOwo+Pj4gKwlpZiAocmV0ID49IDApCj4+IERpdHRvLgo+Pgo+Pj4g KwkJcmV0ID0gaGRtaV92ZW5kb3JfaW5mb2ZyYW1lX3BhY2soJmZybS52ZW5kb3IuaGRtaSwgYnVm LAo+Pj4gKwkJCQlzaXplb2YoYnVmKSk7Cj4+PiArCWlmIChyZXQgPiAwKSB7Cj4+PiArCQloZG1p X3JlZ193cml0ZWIoaGRhdGEsIEhETUlfVlNJX0NPTiwgSERNSV9WU0lfQ09OX0VWRVJZX1ZTWU5D KTsKPj4+ICsJCWhkbWlfcmVnX3dyaXRlX2J1ZihoZGF0YSwgSERNSV9WU0lfSEVBREVSMCwgYnVm LCByZXQpOwo+PiBBbHNvIGFib3ZlIGNvZGVzIHNob3VsZCBiZSBjYWxsZWQgd2hlbiBkcm1faGRt aV92ZW5kb3JfaW5mb2ZyYW1lX2Zyb21fZGlzcGxheV9tb2RlIGZ1bmN0aW9uIHJldHVybmVkIDAg YW5kIHRoZSB2YWx1ZSBmcm9tIGhkbWlfdmVuZG9yX2luZm9mcmFtZV9wYWNrIGZ1bmN0aW9uIGlz IG1vcmUgdGhhbiAxLgo+Pgo+Pj4gKwl9Cj4+PiAgCj4+PiAtCQljaGtzdW0gPSBoZG1pX2Noa3N1 bShoZGF0YSwgSERNSV9BVklfQllURSgxKSwKPj4+IC0JCQkJCWluZm9mcmFtZS0+YW55Lmxlbmd0 aCwgaGRyX3N1bSk7Cj4+PiAtCQlEUk1fREVCVUdfS01TKCJBVkkgY2hlY2tzdW0gPSAweCV4XG4i LCBjaGtzdW0pOwo+Pj4gLQkJaGRtaV9yZWdfd3JpdGViKGhkYXRhLCBIRE1JX0FWSV9DSEVDS19T VU0sIGNoa3N1bSk7Cj4+PiAtCQlicmVhazsKPj4+IC0JY2FzZSBIRE1JX0lORk9GUkFNRV9UWVBF X0FVRElPOgo+Pj4gLQkJaGRtaV9yZWdfd3JpdGViKGhkYXRhLCBIRE1JX0FVSV9DT04sIDB4MDIp Owo+Pj4gLQkJaGRtaV9yZWdfd3JpdGViKGhkYXRhLCBIRE1JX0FVSV9IRUFERVIwLCBpbmZvZnJh bWUtPmFueS50eXBlKTsKPj4+IC0JCWhkbWlfcmVnX3dyaXRlYihoZGF0YSwgSERNSV9BVUlfSEVB REVSMSwKPj4+IC0JCQkJaW5mb2ZyYW1lLT5hbnkudmVyc2lvbik7Cj4+PiAtCQloZG1pX3JlZ193 cml0ZWIoaGRhdGEsIEhETUlfQVVJX0hFQURFUjIsIGluZm9mcmFtZS0+YW55Lmxlbmd0aCk7Cj4+ PiAtCQloZHJfc3VtID0gaW5mb2ZyYW1lLT5hbnkudHlwZSArIGluZm9mcmFtZS0+YW55LnZlcnNp b24gKwo+Pj4gLQkJCSAgaW5mb2ZyYW1lLT5hbnkubGVuZ3RoOwo+Pj4gLQkJY2hrc3VtID0gaGRt aV9jaGtzdW0oaGRhdGEsIEhETUlfQVVJX0JZVEUoMSksCj4+PiAtCQkJCQlpbmZvZnJhbWUtPmFu eS5sZW5ndGgsIGhkcl9zdW0pOwo+Pj4gLQkJRFJNX0RFQlVHX0tNUygiQVVJIGNoZWNrc3VtID0g MHgleFxuIiwgY2hrc3VtKTsKPj4+IC0JCWhkbWlfcmVnX3dyaXRlYihoZGF0YSwgSERNSV9BVUlf Q0hFQ0tfU1VNLCBjaGtzdW0pOwo+Pj4gLQkJYnJlYWs7Cj4+PiAtCWRlZmF1bHQ6Cj4+PiAtCQli cmVhazsKPj4+ICsJcmV0ID0gaGRtaV9hdWRpb19pbmZvZnJhbWVfaW5pdCgmZnJtLmF1ZGlvKTsK Pj4+ICsJaWYgKHJldCA+PSAwKSB7Cj4+IERpdHRvLgo+Pgo+Pj4gKwkJZnJtLmF1ZGlvLmNoYW5u ZWxzID0gMjsKPj4+ICsJCXJldCA9IGhkbWlfYXVkaW9faW5mb2ZyYW1lX3BhY2soJmZybS5hdWRp bywgYnVmLCBzaXplb2YoYnVmKSk7Cj4+PiArCX0KPj4+ICsJaWYgKHJldCA+IDApIHsKPj4+ICsJ CWhkbWlfcmVnX3dyaXRlYihoZGF0YSwgSERNSV9BVUlfQ09OLCBIRE1JX0FVSV9DT05fRVZFUllf VlNZTkMpOwo+Pj4gKwkJaGRtaV9yZWdfd3JpdGVfYnVmKGhkYXRhLCBIRE1JX0FVSV9IRUFERVIw LCBidWYsIHJldCk7Cj4+IEFsc28gYWJvdmUgY29kZXMgc2hvdWxkIGJlIGNhbGxlZCB3aGVuIGhk bWlfYXVkaW9faW5mb2ZyYW1lX2luaXQgZnVuY3Rpb24gcmV0dXJuZWQgMCBhbmQgdGhlIHZhbHVl IGZyb20gaGRtaV9hdWRpb19pbmZvZnJhbWVfcGFjayBmdW5jdGlvbiBpcyBtb3JlIHRoYW4gMS4K Pj4KPj4+ICAJfQo+Pj4gIH0KPj4+ICAKPj4+IEBAIC0xMTI3LDggKzEwNzcsNiBAQCBzdGF0aWMg dm9pZCBoZG1pX3N0YXJ0KHN0cnVjdCBoZG1pX2NvbnRleHQgKmhkYXRhLCBib29sIHN0YXJ0KQo+ Pj4gIAo+Pj4gIHN0YXRpYyB2b2lkIGhkbWlfY29uZl9pbml0KHN0cnVjdCBoZG1pX2NvbnRleHQg KmhkYXRhKQo+Pj4gIHsKPj4+IC0JdW5pb24gaGRtaV9pbmZvZnJhbWUgaW5mb2ZyYW1lOwo+Pj4g LQo+Pj4gIAkvKiBkaXNhYmxlIEhQRCBpbnRlcnJ1cHRzIGZyb20gSERNSSBJUCBibG9jaywgdXNl IEdQSU8gaW5zdGVhZCAqLwo+Pj4gIAloZG1pX3JlZ193cml0ZW1hc2soaGRhdGEsIEhETUlfSU5U Q19DT04sIDAsIEhETUlfSU5UQ19FTl9HTE9CQUwgfAo+Pj4gIAkJSERNSV9JTlRDX0VOX0hQRF9Q TFVHIHwgSERNSV9JTlRDX0VOX0hQRF9VTlBMVUcpOwo+Pj4gQEAgLTExNjQsMTUgKzExMTIsNyBA QCBzdGF0aWMgdm9pZCBoZG1pX2NvbmZfaW5pdChzdHJ1Y3QgaGRtaV9jb250ZXh0ICpoZGF0YSkK Pj4+ICAJCWhkbWlfcmVnX3dyaXRlYihoZGF0YSwgSERNSV9WMTNfQVVJX0NPTiwgMHgwMik7Cj4+ PiAgCQloZG1pX3JlZ193cml0ZWIoaGRhdGEsIEhETUlfVjEzX0FDUl9DT04sIDB4MDQpOwo+Pj4g IAl9IGVsc2Ugewo+Pj4gLQkJaW5mb2ZyYW1lLmFueS50eXBlID0gSERNSV9JTkZPRlJBTUVfVFlQ RV9BVkk7Cj4+PiAtCQlpbmZvZnJhbWUuYW55LnZlcnNpb24gPSBIRE1JX0FWSV9WRVJTSU9OOwo+ Pj4gLQkJaW5mb2ZyYW1lLmFueS5sZW5ndGggPSBIRE1JX0FWSV9MRU5HVEg7Cj4+PiAtCQloZG1p X3JlZ19pbmZvZnJhbWUoaGRhdGEsICZpbmZvZnJhbWUpOwo+Pj4gLQo+Pj4gLQkJaW5mb2ZyYW1l LmFueS50eXBlID0gSERNSV9JTkZPRlJBTUVfVFlQRV9BVURJTzsKPj4+IC0JCWluZm9mcmFtZS5h bnkudmVyc2lvbiA9IEhETUlfQVVJX1ZFUlNJT047Cj4+PiAtCQlpbmZvZnJhbWUuYW55Lmxlbmd0 aCA9IEhETUlfQVVJX0xFTkdUSDsKPj4+IC0JCWhkbWlfcmVnX2luZm9mcmFtZShoZGF0YSwgJmlu Zm9mcmFtZSk7Cj4+PiArCQloZG1pX3JlZ19pbmZvZnJhbWVzKGhkYXRhKTsKPj4+ICAKPj4+ICAJ CS8qIGVuYWJsZSBBVkkgcGFja2V0IGV2ZXJ5IHZzeW5jLCBmaXhlcyBwdXJwbGUgbGluZSBwcm9i bGVtICovCj4+PiAgCQloZG1pX3JlZ193cml0ZW1hc2soaGRhdGEsIEhETUlfQ09OXzEsIDIsIDMg PDwgNSk7Cj4+PiBAQCAtMTQ1OCw3ICsxMzk4LDYgQEAgc3RhdGljIHZvaWQgaGRtaV9tb2RlX3Nl dChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCj4+PiAgCQkiSU5URVJMQUNFRCIgOiAiUFJP R1JFU1NJVkUiKTsKPj4+ICAKPj4+ICAJZHJtX21vZGVfY29weSgmaGRhdGEtPmN1cnJlbnRfbW9k ZSwgbSk7Cj4+PiAtCWhkYXRhLT5jZWFfdmlkZW9faWQgPSBkcm1fbWF0Y2hfY2VhX21vZGUobW9k ZSk7Cj4+PiAgfQo+Pj4gIAo+Pj4gIHN0YXRpYyB2b2lkIGhkbWlfc2V0X3JlZmNsayhzdHJ1Y3Qg aGRtaV9jb250ZXh0ICpoZGF0YSwgYm9vbCBvbikKPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vZXh5bm9zL3JlZ3MtaGRtaS5oIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9yZWdzLWhk bWkuaAo+Pj4gaW5kZXggMTY5NjY3YS4uYTA1MDdkYyAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9leHlub3MvcmVncy1oZG1pLmgKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9leHlu b3MvcmVncy1oZG1pLmgKPj4+IEBAIC0zNjEsOSArMzYxLDExIEBACj4+PiAgCj4+PiAgLyogQVVJ IGJpdCBkZWZpbml0aW9uICovCj4+PiAgI2RlZmluZSBIRE1JX0FVSV9DT05fTk9fVFJBTgkJKDAg PDwgMCkKPj4+ICsjZGVmaW5lIEhETUlfQVVJX0NPTl9FVkVSWV9WU1lOQwkoMSA8PCAxKQo+Pj4g IAo+Pj4gIC8qIFZTSSBiaXQgZGVmaW5pdGlvbiAqLwo+Pj4gICNkZWZpbmUgSERNSV9WU0lfQ09O X0RPX05PVF9UUkFOU01JVAkoMCA8PCAwKQo+Pj4gKyNkZWZpbmUgSERNSV9WU0lfQ09OX0VWRVJZ X1ZTWU5DCSgxIDw8IDEpCj4+PiAgCj4+PiAgLyogSERDUCByZWxhdGVkIHJlZ2lzdGVycyAqLwo+ Pj4gICNkZWZpbmUgSERNSV9IRENQX1NIQTEobikJCUhETUlfQ09SRV9CQVNFKDB4NzAwMCArIDQg KiAobikpCj4+Pgo+Pgo+IAo+IAo+IApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9kcmktZGV2ZWwK