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 10:45:10 +0900 Message-ID: <581FDCA6.3050405@samsung.com> References: <1477485391-8911-1-git-send-email-a.hajda@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mailout2.samsung.com (mailout2.samsung.com [203.254.224.25]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1554F6E2A1 for ; Mon, 7 Nov 2016 01:45:17 +0000 (UTC) Received: from epcpsbgm1new.samsung.com (epcpsbgm1 [203.254.230.26]) by mailout2.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0OG900XYA0V3SR10@mailout2.samsung.com> for dri-devel@lists.freedesktop.org; Mon, 07 Nov 2016 10:45:15 +0900 (KST) In-reply-to: <1477485391-8911-1-git-send-email-a.hajda@samsung.com> 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 CgoyMDE264WEIDEw7JuUIDI27J28IDIxOjM27JeQIEFuZHJ6ZWogSGFqZGEg7J20KOqwgCkg7JO0 IOq4gDoKPiBVc2UgY29yZSBoZWxwZXJzIHRvIGdlbmVyYXRlIGluZm9mcmFtZXMgYW5kIGdlbmVy YXRlIHZlbmRvciBmcmFtZSBpZiBuZWNlc3NhcnkuCj4gCj4gU2lnbmVkLW9mZi1ieTogQW5kcnpl aiBIYWpkYSA8YS5oYWpkYUBzYW1zdW5nLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2V4 eW5vcy9leHlub3NfaGRtaS5jIHwgMTQxICsrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9leHlub3MvcmVncy1oZG1pLmggICB8ICAgMiArCj4gIDIg ZmlsZXMgY2hhbmdlZCwgNDIgaW5zZXJ0aW9ucygrKSwgMTAxIGRlbGV0aW9ucygtKQo+IAo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19oZG1pLmMgYi9kcml2ZXJz L2dwdS9kcm0vZXh5bm9zL2V4eW5vc19oZG1pLmMKPiBpbmRleCBlOGZiNmVmLi4xYmIyZGY3IDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2hkbWkuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2hkbWkuYwo+IEBAIC00NywxOSArNDcsNiBA QAo+ICAKPiAgI2RlZmluZSBIT1RQTFVHX0RFQk9VTkNFX01TCQkxMTAwCj4gIAo+IC0vKiBBVkkg aGVhZGVyIGFuZCBhc3BlY3QgcmF0aW8gKi8KPiAtI2RlZmluZSBIRE1JX0FWSV9WRVJTSU9OCQkw eDAyCj4gLSNkZWZpbmUgSERNSV9BVklfTEVOR1RICQkJMHgwZAo+IC0KPiAtLyogQVVJIGhlYWRl ciBpbmZvICovCj4gLSNkZWZpbmUgSERNSV9BVUlfVkVSU0lPTgkJMHgwMQo+IC0jZGVmaW5lIEhE TUlfQVVJX0xFTkdUSAkJCTB4MGEKPiAtCj4gLS8qIEFWSSBhY3RpdmUgZm9ybWF0IGFzcGVjdCBy YXRpbyAqLwo+IC0jZGVmaW5lIEFWSV9TQU1FX0FTX1BJQ19BU1BFQ1RfUkFUSU8JMHgwOAo+IC0j ZGVmaW5lIEFWSV80XzNfQ0VOVEVSX1JBVElPCQkweDA5Cj4gLSNkZWZpbmUgQVZJXzE2XzlfQ0VO VEVSX1JBVElPCQkweDBhCj4gLQo+ICBlbnVtIGhkbWlfdHlwZSB7Cj4gIAlIRE1JX1RZUEUxMywK PiAgCUhETUlfVFlQRTE0LAo+IEBAIC0xMzEsNyArMTE4LDYgQEAgc3RydWN0IGhkbWlfY29udGV4 dCB7Cj4gIAlib29sCQkJCWR2aV9tb2RlOwo+ICAJc3RydWN0IGRlbGF5ZWRfd29yawkJaG90cGx1 Z193b3JrOwo+ICAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUJCWN1cnJlbnRfbW9kZTsKPiAtCXU4 CQkJCWNlYV92aWRlb19pZDsKPiAgCWNvbnN0IHN0cnVjdCBoZG1pX2RyaXZlcl9kYXRhCSpkcnZf ZGF0YTsKPiAgCj4gIAl2b2lkIF9faW9tZW0JCQkqcmVnczsKPiBAQCAtNjgxLDYgKzY2NywxMyBA QCBzdGF0aWMgaW5saW5lIHZvaWQgaGRtaV9yZWdfd3JpdGV2KHN0cnVjdCBoZG1pX2NvbnRleHQg KmhkYXRhLCB1MzIgcmVnX2lkLAo+ICAJfQo+ICB9Cj4gIAo+ICtzdGF0aWMgaW5saW5lIHZvaWQg aGRtaV9yZWdfd3JpdGVfYnVmKHN0cnVjdCBoZG1pX2NvbnRleHQgKmhkYXRhLCB1MzIgcmVnX2lk LAo+ICsJCQkJICAgICAgdTggKmJ1ZiwgaW50IHNpemUpCj4gK3sKPiArCWZvciAocmVnX2lkID0g aGRtaV9tYXBfcmVnKGhkYXRhLCByZWdfaWQpOyBzaXplOyAtLXNpemUsIHJlZ19pZCArPSA0KQo+ ICsJCXdyaXRlbCgqYnVmKyssIGhkYXRhLT5yZWdzICsgcmVnX2lkKTsKPiArfQo+ICsKPiAgc3Rh dGljIGlubGluZSB2b2lkIGhkbWlfcmVnX3dyaXRlbWFzayhzdHJ1Y3QgaGRtaV9jb250ZXh0ICpo ZGF0YSwKPiAgCQkJCSB1MzIgcmVnX2lkLCB1MzIgdmFsdWUsIHUzMiBtYXNrKQo+ICB7Cj4gQEAg LTc2Miw5MyArNzU1LDUwIEBAIHN0YXRpYyBpbnQgaGRtaV9jbGtfc2V0X3BhcmVudHMoc3RydWN0 IGhkbWlfY29udGV4dCAqaGRhdGEsIGJvb2wgdG9fcGh5KQo+ICAJcmV0dXJuIHJldDsKPiAgfQo+ ICAKPiAtc3RhdGljIHU4IGhkbWlfY2hrc3VtKHN0cnVjdCBoZG1pX2NvbnRleHQgKmhkYXRhLAo+ IC0JCQl1MzIgc3RhcnQsIHU4IGxlbiwgdTMyIGhkcl9zdW0pCj4gLXsKPiAtCWludCBpOwo+IC0K PiAtCS8qIGhkcl9zdW0gOiBoZWFkZXIwICsgaGVhZGVyMSArIGhlYWRlcjIKPiAtCSogc3RhcnQg OiBzdGFydCBhZGRyZXNzIG9mIHBhY2tldCBieXRlMQo+IC0JKiBsZW4gOiBwYWNrZXQgYnl0ZXMg LSAxICovCj4gLQlmb3IgKGkgPSAwOyBpIDwgbGVuOyArK2kpCj4gLQkJaGRyX3N1bSArPSAweGZm ICYgaGRtaV9yZWdfcmVhZChoZGF0YSwgc3RhcnQgKyBpICogNCk7Cj4gLQo+IC0JLyogcmV0dXJu IDIncyBjb21wbGVtZW50IG9mIDggYml0IGhkcl9zdW0gKi8KPiAtCXJldHVybiAodTgpKH4oaGRy X3N1bSAmIDB4ZmYpICsgMSk7Cj4gLX0KPiAtCj4gLXN0YXRpYyB2b2lkIGhkbWlfcmVnX2luZm9m cmFtZShzdHJ1Y3QgaGRtaV9jb250ZXh0ICpoZGF0YSwKPiAtCQkJdW5pb24gaGRtaV9pbmZvZnJh bWUgKmluZm9mcmFtZSkKPiArc3RhdGljIHZvaWQgaGRtaV9yZWdfaW5mb2ZyYW1lcyhzdHJ1Y3Qg aGRtaV9jb250ZXh0ICpoZGF0YSkKPiAgewo+IC0JdTMyIGhkcl9zdW07Cj4gLQl1OCBjaGtzdW07 Cj4gLQl1OCBhcjsKPiArCXVuaW9uIGhkbWlfaW5mb2ZyYW1lIGZybTsKPiArCXU4IGJ1ZlsyNV07 Cj4gKwlpbnQgcmV0Owo+ICAKPiAgCWlmIChoZGF0YS0+ZHZpX21vZGUpIHsKPiAtCQloZG1pX3Jl Z193cml0ZWIoaGRhdGEsIEhETUlfVlNJX0NPTiwKPiAtCQkJCUhETUlfVlNJX0NPTl9ET19OT1Rf VFJBTlNNSVQpOwo+ICAJCWhkbWlfcmVnX3dyaXRlYihoZGF0YSwgSERNSV9BVklfQ09OLAo+ICAJ CQkJSERNSV9BVklfQ09OX0RPX05PVF9UUkFOU01JVCk7Cj4gKwkJaGRtaV9yZWdfd3JpdGViKGhk YXRhLCBIRE1JX1ZTSV9DT04sCj4gKwkJCQlIRE1JX1ZTSV9DT05fRE9fTk9UX1RSQU5TTUlUKTsK PiAgCQloZG1pX3JlZ193cml0ZWIoaGRhdGEsIEhETUlfQVVJX0NPTiwgSERNSV9BVUlfQ09OX05P X1RSQU4pOwo+ICAJCXJldHVybjsKPiAgCX0KPiAgCj4gLQlzd2l0Y2ggKGluZm9mcmFtZS0+YW55 LnR5cGUpIHsKPiAtCWNhc2UgSERNSV9JTkZPRlJBTUVfVFlQRV9BVkk6Cj4gKwlyZXQgPSBkcm1f aGRtaV9hdmlfaW5mb2ZyYW1lX2Zyb21fZGlzcGxheV9tb2RlKCZmcm0uYXZpLAo+ICsJCQkmaGRh dGEtPmN1cnJlbnRfbW9kZSk7Cj4gKwlpZiAocmV0ID49IDApCgpTZWVtcyBhYm92ZSBjb25kaXRp b24gaXMgbm90IGNsZWFyIGJlY3Vhc2UgZHJtX2hkbWlfYXZpX2luZm9mcmFtZV9mcm9tX2Rpc3Bs YXlfbW9kZSBmdW5jdGlvbiByZXR1cm5zIDAgb3IgbmVnYXRpdmUgdmFsdWUuCgo+ICsJCXJldCA9 IGhkbWlfYXZpX2luZm9mcmFtZV9wYWNrKCZmcm0uYXZpLCBidWYsIHNpemVvZihidWYpKTsKPiAr CWlmIChyZXQgPiAwKSB7Cj4gIAkJaGRtaV9yZWdfd3JpdGViKGhkYXRhLCBIRE1JX0FWSV9DT04s IEhETUlfQVZJX0NPTl9FVkVSWV9WU1lOQyk7CgpJIHRoaW5rIGFib3ZlIGNvZGUgc2hvdWxkIGJl IGNhbGxlZCB3aGVuIGRybV9oZG1pX2F2aV9pbmZvZnJhbWVfZnJvbV9kaXNwbGF5X21vZGUgZnVu Y3Rpb24gcmV0dXJuZWQgMCBhbmQgdGhlIHZhbHVlIGZyb20gaGRtaV9hdmlfaW5mb2ZyYW1lX3Bh Y2sgZnVuY3Rpb24gaXMgbW9yZSB0aGFuIDEuCgo+IC0JCWhkbWlfcmVnX3dyaXRlYihoZGF0YSwg SERNSV9BVklfSEVBREVSMCwgaW5mb2ZyYW1lLT5hbnkudHlwZSk7Cj4gLQkJaGRtaV9yZWdfd3Jp dGViKGhkYXRhLCBIRE1JX0FWSV9IRUFERVIxLAo+IC0JCQkJaW5mb2ZyYW1lLT5hbnkudmVyc2lv bik7Cj4gLQkJaGRtaV9yZWdfd3JpdGViKGhkYXRhLCBIRE1JX0FWSV9IRUFERVIyLCBpbmZvZnJh bWUtPmFueS5sZW5ndGgpOwo+IC0JCWhkcl9zdW0gPSBpbmZvZnJhbWUtPmFueS50eXBlICsgaW5m b2ZyYW1lLT5hbnkudmVyc2lvbiArCj4gLQkJCSAgaW5mb2ZyYW1lLT5hbnkubGVuZ3RoOwo+IC0K PiAtCQkvKiBPdXRwdXQgZm9ybWF0IHplcm8gaGFyZGNvZGVkICxSR0IgWUJDUiBzZWxlY3Rpb24g Ki8KPiAtCQloZG1pX3JlZ193cml0ZWIoaGRhdGEsIEhETUlfQVZJX0JZVEUoMSksIDAgPDwgNSB8 Cj4gLQkJCUFWSV9BQ1RJVkVfRk9STUFUX1ZBTElEIHwKPiAtCQkJQVZJX1VOREVSU0NBTk5FRF9E SVNQTEFZX1ZBTElEKTsKPiAtCj4gLQkJLyoKPiAtCQkgKiBTZXQgdGhlIGFzcGVjdCByYXRpbyBh cyBwZXIgdGhlIG1vZGUsIG1lbnRpb25lZCBpbgo+IC0JCSAqIFRhYmxlIDkgQVZJIEluZm9GcmFt ZSBEYXRhIEJ5dGUgMiBvZiBDRUEtODYxLUQgU3RhbmRhcmQKPiAtCQkgKi8KPiAtCQlhciA9IGhk YXRhLT5jdXJyZW50X21vZGUucGljdHVyZV9hc3BlY3RfcmF0aW87Cj4gLQkJc3dpdGNoIChhcikg ewo+IC0JCWNhc2UgSERNSV9QSUNUVVJFX0FTUEVDVF80XzM6Cj4gLQkJCWFyIHw9IEFWSV80XzNf Q0VOVEVSX1JBVElPOwo+IC0JCQlicmVhazsKPiAtCQljYXNlIEhETUlfUElDVFVSRV9BU1BFQ1Rf MTZfOToKPiAtCQkJYXIgfD0gQVZJXzE2XzlfQ0VOVEVSX1JBVElPOwo+IC0JCQlicmVhazsKPiAt CQljYXNlIEhETUlfUElDVFVSRV9BU1BFQ1RfTk9ORToKPiAtCQlkZWZhdWx0Ogo+IC0JCQlhciB8 PSBBVklfU0FNRV9BU19QSUNfQVNQRUNUX1JBVElPOwo+IC0JCQlicmVhazsKPiAtCQl9Cj4gLQkJ aGRtaV9yZWdfd3JpdGViKGhkYXRhLCBIRE1JX0FWSV9CWVRFKDIpLCBhcik7Cj4gKwkJaGRtaV9y ZWdfd3JpdGVfYnVmKGhkYXRhLCBIRE1JX0FWSV9IRUFERVIwLCBidWYsIHJldCk7Cj4gKwl9IGVs c2Ugewo+ICsJCURSTV9JTkZPKCIlczogaW52YWxpZCBBVkkgaW5mb2ZyYW1lICglZClcbiIsIF9f ZnVuY19fLCByZXQpOwoKSWYgZHJtX2hkbWlfYXZpX2luZm9mcmFtZV9mcm9tX2Rpc3BsYXlfbW9k ZSBmdW5jdGlvbiByZXR1cm5zIDAgb24gc3VjY2VzcywgdGhlbiBhYm92ZSBtZXNzYWdlIHdpbGwg YmUgcHJpbnRlZCBvdXQuIFNlZW1zIG5vdCByZWFzb25hYmxlLgoKPiArCX0KPiAgCj4gLQkJaGRt aV9yZWdfd3JpdGViKGhkYXRhLCBIRE1JX0FWSV9CWVRFKDQpLCBoZGF0YS0+Y2VhX3ZpZGVvX2lk KTsKPiArCXJldCA9IGRybV9oZG1pX3ZlbmRvcl9pbmZvZnJhbWVfZnJvbV9kaXNwbGF5X21vZGUo JmZybS52ZW5kb3IuaGRtaSwKPiArCQkJJmhkYXRhLT5jdXJyZW50X21vZGUpOwo+ICsJaWYgKHJl dCA+PSAwKQoKRGl0dG8uCgo+ICsJCXJldCA9IGhkbWlfdmVuZG9yX2luZm9mcmFtZV9wYWNrKCZm cm0udmVuZG9yLmhkbWksIGJ1ZiwKPiArCQkJCXNpemVvZihidWYpKTsKPiArCWlmIChyZXQgPiAw KSB7Cj4gKwkJaGRtaV9yZWdfd3JpdGViKGhkYXRhLCBIRE1JX1ZTSV9DT04sIEhETUlfVlNJX0NP Tl9FVkVSWV9WU1lOQyk7Cj4gKwkJaGRtaV9yZWdfd3JpdGVfYnVmKGhkYXRhLCBIRE1JX1ZTSV9I RUFERVIwLCBidWYsIHJldCk7CgpBbHNvIGFib3ZlIGNvZGVzIHNob3VsZCBiZSBjYWxsZWQgd2hl biBkcm1faGRtaV92ZW5kb3JfaW5mb2ZyYW1lX2Zyb21fZGlzcGxheV9tb2RlIGZ1bmN0aW9uIHJl dHVybmVkIDAgYW5kIHRoZSB2YWx1ZSBmcm9tIGhkbWlfdmVuZG9yX2luZm9mcmFtZV9wYWNrIGZ1 bmN0aW9uIGlzIG1vcmUgdGhhbiAxLgoKPiArCX0KPiAgCj4gLQkJY2hrc3VtID0gaGRtaV9jaGtz dW0oaGRhdGEsIEhETUlfQVZJX0JZVEUoMSksCj4gLQkJCQkJaW5mb2ZyYW1lLT5hbnkubGVuZ3Ro LCBoZHJfc3VtKTsKPiAtCQlEUk1fREVCVUdfS01TKCJBVkkgY2hlY2tzdW0gPSAweCV4XG4iLCBj aGtzdW0pOwo+IC0JCWhkbWlfcmVnX3dyaXRlYihoZGF0YSwgSERNSV9BVklfQ0hFQ0tfU1VNLCBj aGtzdW0pOwo+IC0JCWJyZWFrOwo+IC0JY2FzZSBIRE1JX0lORk9GUkFNRV9UWVBFX0FVRElPOgo+ IC0JCWhkbWlfcmVnX3dyaXRlYihoZGF0YSwgSERNSV9BVUlfQ09OLCAweDAyKTsKPiAtCQloZG1p X3JlZ193cml0ZWIoaGRhdGEsIEhETUlfQVVJX0hFQURFUjAsIGluZm9mcmFtZS0+YW55LnR5cGUp Owo+IC0JCWhkbWlfcmVnX3dyaXRlYihoZGF0YSwgSERNSV9BVUlfSEVBREVSMSwKPiAtCQkJCWlu Zm9mcmFtZS0+YW55LnZlcnNpb24pOwo+IC0JCWhkbWlfcmVnX3dyaXRlYihoZGF0YSwgSERNSV9B VUlfSEVBREVSMiwgaW5mb2ZyYW1lLT5hbnkubGVuZ3RoKTsKPiAtCQloZHJfc3VtID0gaW5mb2Zy YW1lLT5hbnkudHlwZSArIGluZm9mcmFtZS0+YW55LnZlcnNpb24gKwo+IC0JCQkgIGluZm9mcmFt ZS0+YW55Lmxlbmd0aDsKPiAtCQljaGtzdW0gPSBoZG1pX2Noa3N1bShoZGF0YSwgSERNSV9BVUlf QllURSgxKSwKPiAtCQkJCQlpbmZvZnJhbWUtPmFueS5sZW5ndGgsIGhkcl9zdW0pOwo+IC0JCURS TV9ERUJVR19LTVMoIkFVSSBjaGVja3N1bSA9IDB4JXhcbiIsIGNoa3N1bSk7Cj4gLQkJaGRtaV9y ZWdfd3JpdGViKGhkYXRhLCBIRE1JX0FVSV9DSEVDS19TVU0sIGNoa3N1bSk7Cj4gLQkJYnJlYWs7 Cj4gLQlkZWZhdWx0Ogo+IC0JCWJyZWFrOwo+ICsJcmV0ID0gaGRtaV9hdWRpb19pbmZvZnJhbWVf aW5pdCgmZnJtLmF1ZGlvKTsKPiArCWlmIChyZXQgPj0gMCkgewoKRGl0dG8uCgo+ICsJCWZybS5h dWRpby5jaGFubmVscyA9IDI7Cj4gKwkJcmV0ID0gaGRtaV9hdWRpb19pbmZvZnJhbWVfcGFjaygm ZnJtLmF1ZGlvLCBidWYsIHNpemVvZihidWYpKTsKPiArCX0KPiArCWlmIChyZXQgPiAwKSB7Cj4g KwkJaGRtaV9yZWdfd3JpdGViKGhkYXRhLCBIRE1JX0FVSV9DT04sIEhETUlfQVVJX0NPTl9FVkVS WV9WU1lOQyk7Cj4gKwkJaGRtaV9yZWdfd3JpdGVfYnVmKGhkYXRhLCBIRE1JX0FVSV9IRUFERVIw LCBidWYsIHJldCk7CgpBbHNvIGFib3ZlIGNvZGVzIHNob3VsZCBiZSBjYWxsZWQgd2hlbiBoZG1p X2F1ZGlvX2luZm9mcmFtZV9pbml0IGZ1bmN0aW9uIHJldHVybmVkIDAgYW5kIHRoZSB2YWx1ZSBm cm9tIGhkbWlfYXVkaW9faW5mb2ZyYW1lX3BhY2sgZnVuY3Rpb24gaXMgbW9yZSB0aGFuIDEuCgo+ ICAJfQo+ICB9Cj4gIAo+IEBAIC0xMTI3LDggKzEwNzcsNiBAQCBzdGF0aWMgdm9pZCBoZG1pX3N0 YXJ0KHN0cnVjdCBoZG1pX2NvbnRleHQgKmhkYXRhLCBib29sIHN0YXJ0KQo+ICAKPiAgc3RhdGlj IHZvaWQgaGRtaV9jb25mX2luaXQoc3RydWN0IGhkbWlfY29udGV4dCAqaGRhdGEpCj4gIHsKPiAt CXVuaW9uIGhkbWlfaW5mb2ZyYW1lIGluZm9mcmFtZTsKPiAtCj4gIAkvKiBkaXNhYmxlIEhQRCBp bnRlcnJ1cHRzIGZyb20gSERNSSBJUCBibG9jaywgdXNlIEdQSU8gaW5zdGVhZCAqLwo+ICAJaGRt aV9yZWdfd3JpdGVtYXNrKGhkYXRhLCBIRE1JX0lOVENfQ09OLCAwLCBIRE1JX0lOVENfRU5fR0xP QkFMIHwKPiAgCQlIRE1JX0lOVENfRU5fSFBEX1BMVUcgfCBIRE1JX0lOVENfRU5fSFBEX1VOUExV Ryk7Cj4gQEAgLTExNjQsMTUgKzExMTIsNyBAQCBzdGF0aWMgdm9pZCBoZG1pX2NvbmZfaW5pdChz dHJ1Y3QgaGRtaV9jb250ZXh0ICpoZGF0YSkKPiAgCQloZG1pX3JlZ193cml0ZWIoaGRhdGEsIEhE TUlfVjEzX0FVSV9DT04sIDB4MDIpOwo+ICAJCWhkbWlfcmVnX3dyaXRlYihoZGF0YSwgSERNSV9W MTNfQUNSX0NPTiwgMHgwNCk7Cj4gIAl9IGVsc2Ugewo+IC0JCWluZm9mcmFtZS5hbnkudHlwZSA9 IEhETUlfSU5GT0ZSQU1FX1RZUEVfQVZJOwo+IC0JCWluZm9mcmFtZS5hbnkudmVyc2lvbiA9IEhE TUlfQVZJX1ZFUlNJT047Cj4gLQkJaW5mb2ZyYW1lLmFueS5sZW5ndGggPSBIRE1JX0FWSV9MRU5H VEg7Cj4gLQkJaGRtaV9yZWdfaW5mb2ZyYW1lKGhkYXRhLCAmaW5mb2ZyYW1lKTsKPiAtCj4gLQkJ aW5mb2ZyYW1lLmFueS50eXBlID0gSERNSV9JTkZPRlJBTUVfVFlQRV9BVURJTzsKPiAtCQlpbmZv ZnJhbWUuYW55LnZlcnNpb24gPSBIRE1JX0FVSV9WRVJTSU9OOwo+IC0JCWluZm9mcmFtZS5hbnku bGVuZ3RoID0gSERNSV9BVUlfTEVOR1RIOwo+IC0JCWhkbWlfcmVnX2luZm9mcmFtZShoZGF0YSwg JmluZm9mcmFtZSk7Cj4gKwkJaGRtaV9yZWdfaW5mb2ZyYW1lcyhoZGF0YSk7Cj4gIAo+ICAJCS8q IGVuYWJsZSBBVkkgcGFja2V0IGV2ZXJ5IHZzeW5jLCBmaXhlcyBwdXJwbGUgbGluZSBwcm9ibGVt ICovCj4gIAkJaGRtaV9yZWdfd3JpdGVtYXNrKGhkYXRhLCBIRE1JX0NPTl8xLCAyLCAzIDw8IDUp Owo+IEBAIC0xNDU4LDcgKzEzOTgsNiBAQCBzdGF0aWMgdm9pZCBoZG1pX21vZGVfc2V0KHN0cnVj dCBkcm1fZW5jb2RlciAqZW5jb2RlciwKPiAgCQkiSU5URVJMQUNFRCIgOiAiUFJPR1JFU1NJVkUi KTsKPiAgCj4gIAlkcm1fbW9kZV9jb3B5KCZoZGF0YS0+Y3VycmVudF9tb2RlLCBtKTsKPiAtCWhk YXRhLT5jZWFfdmlkZW9faWQgPSBkcm1fbWF0Y2hfY2VhX21vZGUobW9kZSk7Cj4gIH0KPiAgCj4g IHN0YXRpYyB2b2lkIGhkbWlfc2V0X3JlZmNsayhzdHJ1Y3QgaGRtaV9jb250ZXh0ICpoZGF0YSwg Ym9vbCBvbikKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9yZWdzLWhkbWku aCBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvcmVncy1oZG1pLmgKPiBpbmRleCAxNjk2NjdhLi5h MDUwN2RjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvcmVncy1oZG1pLmgK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL3JlZ3MtaGRtaS5oCj4gQEAgLTM2MSw5ICsz NjEsMTEgQEAKPiAgCj4gIC8qIEFVSSBiaXQgZGVmaW5pdGlvbiAqLwo+ICAjZGVmaW5lIEhETUlf QVVJX0NPTl9OT19UUkFOCQkoMCA8PCAwKQo+ICsjZGVmaW5lIEhETUlfQVVJX0NPTl9FVkVSWV9W U1lOQwkoMSA8PCAxKQo+ICAKPiAgLyogVlNJIGJpdCBkZWZpbml0aW9uICovCj4gICNkZWZpbmUg SERNSV9WU0lfQ09OX0RPX05PVF9UUkFOU01JVAkoMCA8PCAwKQo+ICsjZGVmaW5lIEhETUlfVlNJ X0NPTl9FVkVSWV9WU1lOQwkoMSA8PCAxKQo+ICAKPiAgLyogSERDUCByZWxhdGVkIHJlZ2lzdGVy cyAqLwo+ICAjZGVmaW5lIEhETUlfSERDUF9TSEExKG4pCQlIRE1JX0NPUkVfQkFTRSgweDcwMDAg KyA0ICogKG4pKQo+IApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2 ZWwK