From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mblankhorst.nl (mblankhorst.nl [IPv6:2a02:2308::216:3eff:fe92:dfa3]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4F9686E5EB for ; Tue, 12 Feb 2019 17:11:37 +0000 (UTC) Date: Tue, 12 Feb 2019 18:11:33 +0100 Message-Id: <20190212171134.15452-1-maarten.lankhorst@linux.intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t 1/2] lib/color_encoding: Prepare support for HDR modes, v2. List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Maarten Lankhorst via igt-dev Reply-To: Maarten Lankhorst Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org List-ID: V2UncmUgc3RhcnRpbmcgdG8gYWRkIHN1cHBvcnQgZm9yIDEwLCAxMiBhbmQgMTYtYml0cyBmb3Jt YXRzIHRoYXQgYWxsIGhhdmUKZGlmZmVyZW50IHZhbHVlcyBmb3IgdGhlIFkgb2Zmc2V0IGFuZCBy YW5nZS4gU29tZSAxMCBiaXRzIGZvcm1hdHMKZ28gZnJvbSBbMC4uLjEwMjNdLCBvdGhlcnMgZ28g dG8gWzAuLi4xMDIzXSBzaGlmdGVkIGxlZnQgYnkgNi4gVG8KYWNjb21vZGF0ZSBhbGwgZm9ybWF0 cyBhZGQgYSBzdHJ1Y3QgZGVmaW5pdGlvbiBmb3IgYWxsIHZhcmlvdXMgZm9ybWF0cywKdGhpcyBj YW4gYmUgZXh0ZW5kZWQgZnVydGhlciB3aGVuIHdlIGFkZCBuZXcgZm9ybWF0cy4KCkNoYW5nZXMg c2luY2UgdjE6Ci0gUmViYXNlIG9uIHRvcCBvZiBhZGRlZCB5dXYgY2hhbmdlcy4KLSBBZGQgY29t bWl0IGRlc2NyaXB0aW9uIChzd2F0aXNoKQotIEFkZCBtaXNzaW5nIG5ld2xpbmUuIChzd2F0aXNo KQoKU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxp bnV4LmludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IEp1aGEtUGVra2EgSGVpa2tpbGEgPGp1aGFwZWtr YS5oZWlra2lsYUBnbWFpbC5jb20+ICN2MQotLS0KIGxpYi9pZ3RfY29sb3JfZW5jb2RpbmcuYyB8 IDkxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0KIGxpYi9pZ3RfY29s b3JfZW5jb2RpbmcuaCB8ICA5ICsrKy0KIGxpYi9pZ3RfZmIuYyAgICAgICAgICAgICB8IDEwICsr Ky0tCiAzIGZpbGVzIGNoYW5nZWQsIDg3IGluc2VydGlvbnMoKyksIDIzIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2xpYi9pZ3RfY29sb3JfZW5jb2RpbmcuYyBiL2xpYi9pZ3RfY29sb3JfZW5j b2RpbmcuYwppbmRleCAwM2UxNmUwYzk2NTguLjg0ZGM1OTM4YTcxNyAxMDA2NDQKLS0tIGEvbGli L2lndF9jb2xvcl9lbmNvZGluZy5jCisrKyBiL2xpYi9pZ3RfY29sb3JfZW5jb2RpbmcuYwpAQCAt MjQsNiArMjQsOCBAQAogI2luY2x1ZGUgImlndF9jb2xvcl9lbmNvZGluZy5oIgogI2luY2x1ZGUg ImlndF9tYXRyaXguaCIKICNpbmNsdWRlICJpZ3RfY29yZS5oIgorI2luY2x1ZGUgImlndF9mYi5o IgorI2luY2x1ZGUgImRybXRlc3QuaCIKIAogc3RydWN0IGNvbG9yX2VuY29kaW5nIHsKIAlmbG9h dCBrciwga2I7CkBAIC04NSw2MCArODcsMTEzIEBAIHN0YXRpYyBzdHJ1Y3QgaWd0X21hdDQgeWNi Y3JfdG9fcmdiX21hdHJpeChjb25zdCBzdHJ1Y3QgY29sb3JfZW5jb2RpbmcgKmUpCiAJcmV0dXJu IHJldDsKIH0KIAotc3RhdGljIHN0cnVjdCBpZ3RfbWF0NCB5Y2Jjcl9pbnB1dF9jb252ZXJ0X21h dHJpeChlbnVtIGlndF9jb2xvcl9yYW5nZSBjb2xvcl9yYW5nZSkKK3N0YXRpYyBzdHJ1Y3QgaWd0 X21hdDQgeWNiY3JfaW5wdXRfY29udmVydF9tYXRyaXgoZW51bSBpZ3RfY29sb3JfcmFuZ2UgY29s b3JfcmFuZ2UsIGZsb2F0IHNjYWxlLAorCQkJCQkJICBmbG9hdCBvZnNfeSwgZmxvYXQgbWF4X3ks CisJCQkJCQkgIGZsb2F0IG9mc19jYmNyLCBmbG9hdCBtaWRfY2JjciwgZmxvYXQgbWF4X2NiY3Is CisJCQkJCQkgIGZsb2F0IG1heF92YWwpCiB7CiAJc3RydWN0IGlndF9tYXQ0IHQsIHM7CiAKIAlp ZiAoY29sb3JfcmFuZ2UgPT0gSUdUX0NPTE9SX1lDQkNSX0ZVTExfUkFOR0UpIHsKLQkJdCA9IGln dF9tYXRyaXhfdHJhbnNsYXRlKDAuMGYsIC0xMjguMGYsIC0xMjguMGYpOwotCQlzID0gaWd0X21h dHJpeF9zY2FsZSgxLjBmLCAyLjBmLCAyLjBmKTsKKwkJdCA9IGlndF9tYXRyaXhfdHJhbnNsYXRl KDAuZiwgLW1pZF9jYmNyLCAtbWlkX2NiY3IpOworCQlzID0gaWd0X21hdHJpeF9zY2FsZShzY2Fs ZSwgMi4wZiAqIHNjYWxlLCAyLjBmICogc2NhbGUpOwogCX0gZWxzZSB7Ci0JCXQgPSBpZ3RfbWF0 cml4X3RyYW5zbGF0ZSgtMTYuMGYsIC0xMjguMGYsIC0xMjguMGYpOwotCQlzID0gaWd0X21hdHJp eF9zY2FsZSgyNTUuMGYgLyAoMjM1LjBmIC0gMTYuMGYpLAotCQkJCSAgICAgMjU1LjBmIC8gKDI0 MC4wZiAtIDEyOC4wZiksCi0JCQkJICAgICAyNTUuMGYgLyAoMjQwLjBmIC0gMTI4LjBmKSk7CisJ CXQgPSBpZ3RfbWF0cml4X3RyYW5zbGF0ZSgtb2ZzX3ksIC1taWRfY2JjciwgLW1pZF9jYmNyKTsK KwkJcyA9IGlndF9tYXRyaXhfc2NhbGUoc2NhbGUgKiBtYXhfdmFsIC8gKG1heF95IC0gb2ZzX3kp LAorCQkJCSAgICAgc2NhbGUgKiBtYXhfdmFsIC8gKG1heF9jYmNyIC0gbWlkX2NiY3IpLAorCQkJ CSAgICAgc2NhbGUgKiBtYXhfdmFsIC8gKG1heF9jYmNyIC0gbWlkX2NiY3IpKTsKIAl9CiAKIAly ZXR1cm4gaWd0X21hdHJpeF9tdWx0aXBseSgmcywgJnQpOwogfQogCi1zdGF0aWMgc3RydWN0IGln dF9tYXQ0IHljYmNyX291dHB1dF9jb252ZXJ0X21hdHJpeChlbnVtIGlndF9jb2xvcl9yYW5nZSBj b2xvcl9yYW5nZSkKK3N0YXRpYyBzdHJ1Y3QgaWd0X21hdDQgeWNiY3Jfb3V0cHV0X2NvbnZlcnRf bWF0cml4KGVudW0gaWd0X2NvbG9yX3JhbmdlIGNvbG9yX3JhbmdlLCBmbG9hdCBzY2FsZSwKKwkJ CQkJCSAgIGZsb2F0IG9mc195LCBmbG9hdCBtYXhfeSwKKwkJCQkJCSAgIGZsb2F0IG9mc19jYmNy LCBmbG9hdCBtaWRfY2JjciwgZmxvYXQgbWF4X2NiY3IsCisJCQkJCQkgICBmbG9hdCBtYXhfdmFs KQogewogCXN0cnVjdCBpZ3RfbWF0NCBzLCB0OwogCiAJaWYgKGNvbG9yX3JhbmdlID09IElHVF9D T0xPUl9ZQ0JDUl9GVUxMX1JBTkdFKSB7Ci0JCXMgPSBpZ3RfbWF0cml4X3NjYWxlKDEuMGYsIDAu NWYsIDAuNWYpOwotCQl0ID0gaWd0X21hdHJpeF90cmFuc2xhdGUoMC4wZiwgMTI4LjBmLCAxMjgu MGYpOworCQlzID0gaWd0X21hdHJpeF9zY2FsZShzY2FsZSwgMC41ZiAqIHNjYWxlLCAwLjVmICog c2NhbGUpOworCQl0ID0gaWd0X21hdHJpeF90cmFuc2xhdGUoMC5mLCBtaWRfY2JjciwgbWlkX2Ni Y3IpOwogCX0gZWxzZSB7Ci0JCXMgPSBpZ3RfbWF0cml4X3NjYWxlKCgyMzUuMGYgLSAxNi4wZikg LyAyNTUuMGYsCi0JCQkJICAgICAoMjQwLjBmIC0gMTI4LjBmKSAvIDI1NS4wZiwKLQkJCQkgICAg ICgyNDAuMGYgLSAxMjguMGYpIC8gMjU1LjBmKTsKLQkJdCA9IGlndF9tYXRyaXhfdHJhbnNsYXRl KDE2LjBmLCAxMjguMGYsIDEyOC4wZik7CisJCXMgPSBpZ3RfbWF0cml4X3NjYWxlKHNjYWxlICog KG1heF95IC0gb2ZzX3kpIC8gbWF4X3ZhbCwKKwkJCQkgICAgIHNjYWxlICogKG1heF9jYmNyIC0g bWlkX2NiY3IpIC8gbWF4X3ZhbCwKKwkJCQkgICAgIHNjYWxlICogKG1heF9jYmNyIC0gbWlkX2Ni Y3IpIC8gbWF4X3ZhbCk7CisJCXQgPSBpZ3RfbWF0cml4X3RyYW5zbGF0ZShvZnNfeSwgbWlkX2Ni Y3IsIG1pZF9jYmNyKTsKIAl9CiAKIAlyZXR1cm4gaWd0X21hdHJpeF9tdWx0aXBseSgmdCwgJnMp OwogfQogCi1zdHJ1Y3QgaWd0X21hdDQgaWd0X3ljYmNyX3RvX3JnYl9tYXRyaXgoZW51bSBpZ3Rf Y29sb3JfZW5jb2RpbmcgY29sb3JfZW5jb2RpbmcsCitzdGF0aWMgY29uc3Qgc3RydWN0IGNvbG9y X2VuY29kaW5nX2Zvcm1hdCB7CisJdWludDMyX3QgZm91cmNjOworCisJZmxvYXQgbWF4X3ZhbDsK KworCWZsb2F0IG9mc195LCBtYXhfeSwgb2ZzX2NiY3IsIG1pZF9jYmNyLCBtYXhfY2JjcjsKK30g Zm9ybWF0c1tdID0geworCXsgRFJNX0ZPUk1BVF9YUkdCODg4OCwgMjU1LmYsIH0sCisJeyBEUk1f Rk9STUFUX05WMTIsIDI1NS5mLCAxNi5mLCAyMzUuZiwgMTYuZiwgMTI4LmYsIDI0MC5mIH0sCisJ eyBEUk1fRk9STUFUX05WMTYsIDI1NS5mLCAxNi5mLCAyMzUuZiwgMTYuZiwgMTI4LmYsIDI0MC5m IH0sCisJeyBEUk1fRk9STUFUX05WMjEsIDI1NS5mLCAxNi5mLCAyMzUuZiwgMTYuZiwgMTI4LmYs IDI0MC5mIH0sCisJeyBEUk1fRk9STUFUX05WNjEsIDI1NS5mLCAxNi5mLCAyMzUuZiwgMTYuZiwg MTI4LmYsIDI0MC5mIH0sCisJeyBEUk1fRk9STUFUX1lVVjQyMCwgMjU1LmYsIDE2LmYsIDIzNS5m LCAxNi5mLCAxMjguZiwgMjQwLmYgfSwKKwl7IERSTV9GT1JNQVRfWVVWNDIyLCAyNTUuZiwgMTYu ZiwgMjM1LmYsIDE2LmYsIDEyOC5mLCAyNDAuZiB9LAorCXsgRFJNX0ZPUk1BVF9ZVlU0MjAsIDI1 NS5mLCAxNi5mLCAyMzUuZiwgMTYuZiwgMTI4LmYsIDI0MC5mIH0sCisJeyBEUk1fRk9STUFUX1lW VTQyMiwgMjU1LmYsIDE2LmYsIDIzNS5mLCAxNi5mLCAxMjguZiwgMjQwLmYgfSwKKwl7IERSTV9G T1JNQVRfWVVZViwgMjU1LmYsIDE2LmYsIDIzNS5mLCAxNi5mLCAxMjguZiwgMjQwLmYgfSwKKwl7 IERSTV9GT1JNQVRfWVZZVSwgMjU1LmYsIDE2LmYsIDIzNS5mLCAxNi5mLCAxMjguZiwgMjQwLmYg fSwKKwl7IERSTV9GT1JNQVRfVVlWWSwgMjU1LmYsIDE2LmYsIDIzNS5mLCAxNi5mLCAxMjguZiwg MjQwLmYgfSwKKwl7IERSTV9GT1JNQVRfVllVWSwgMjU1LmYsIDE2LmYsIDIzNS5mLCAxNi5mLCAx MjguZiwgMjQwLmYgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY29sb3JfZW5jb2Rpbmdf Zm9ybWF0ICpsb29rdXBfZm91cmNjKHVpbnQzMl90IGZvdXJjYykKK3sKKwlpbnQgaTsKKworCWZv ciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGZvcm1hdHMpOyBpKyspCisJCWlmIChmb3VyY2MgPT0g Zm9ybWF0c1tpXS5mb3VyY2MpCisJCQlyZXR1cm4gJmZvcm1hdHNbaV07CisKKwlpZ3RfYXNzZXJ0 X2YoMCwgIkNvdWxkIG5vdCBsb29rIHVwIGZvdXJjYyAlLjRzXG4iLCAoY2hhciAqKSZmb3VyY2Mp OworfQorCitzdHJ1Y3QgaWd0X21hdDQgaWd0X3ljYmNyX3RvX3JnYl9tYXRyaXgodWludDMyX3Qg ZnJvbV9mb3VyY2MsCisJCQkJCXVpbnQzMl90IHRvX2ZvdXJjYywKKwkJCQkJZW51bSBpZ3RfY29s b3JfZW5jb2RpbmcgY29sb3JfZW5jb2RpbmcsCiAJCQkJCWVudW0gaWd0X2NvbG9yX3JhbmdlIGNv bG9yX3JhbmdlKQogewogCWNvbnN0IHN0cnVjdCBjb2xvcl9lbmNvZGluZyAqZSA9ICZjb2xvcl9l bmNvZGluZ3NbY29sb3JfZW5jb2RpbmddOwogCXN0cnVjdCBpZ3RfbWF0NCByLCBjOworCWNvbnN0 IHN0cnVjdCBjb2xvcl9lbmNvZGluZ19mb3JtYXQgKmZ5Y2JjciA9IGxvb2t1cF9mb3VyY2MoZnJv bV9mb3VyY2MpOworCWNvbnN0IHN0cnVjdCBjb2xvcl9lbmNvZGluZ19mb3JtYXQgKmZyZ2IgPSBs b29rdXBfZm91cmNjKHRvX2ZvdXJjYyk7CisJZmxvYXQgc2NhbGUgPSBmcmdiLT5tYXhfdmFsIC8g ZnljYmNyLT5tYXhfdmFsOwogCi0JciA9IHljYmNyX2lucHV0X2NvbnZlcnRfbWF0cml4KGNvbG9y X3JhbmdlKTsKKwlpZ3RfYXNzZXJ0KGZ5Y2Jjci0+b2ZzX3kgJiYgIWZyZ2ItPm9mc195KTsKKwor CXIgPSB5Y2Jjcl9pbnB1dF9jb252ZXJ0X21hdHJpeChjb2xvcl9yYW5nZSwgc2NhbGUsIGZ5Y2Jj ci0+b2ZzX3ksIGZ5Y2Jjci0+bWF4X3ksIGZ5Y2Jjci0+b2ZzX2NiY3IsIGZ5Y2Jjci0+bWlkX2Ni Y3IsIGZ5Y2Jjci0+bWF4X2NiY3IsIGZ5Y2Jjci0+bWF4X3ZhbCk7CiAJYyA9IHljYmNyX3RvX3Jn Yl9tYXRyaXgoZSk7CiAKIAlyZXR1cm4gaWd0X21hdHJpeF9tdWx0aXBseSgmYywgJnIpOwogfQog Ci1zdHJ1Y3QgaWd0X21hdDQgaWd0X3JnYl90b195Y2Jjcl9tYXRyaXgoZW51bSBpZ3RfY29sb3Jf ZW5jb2RpbmcgY29sb3JfZW5jb2RpbmcsCitzdHJ1Y3QgaWd0X21hdDQgaWd0X3JnYl90b195Y2Jj cl9tYXRyaXgodWludDMyX3QgZnJvbV9mb3VyY2MsCisJCQkJCXVpbnQzMl90IHRvX2ZvdXJjYywK KwkJCQkJZW51bSBpZ3RfY29sb3JfZW5jb2RpbmcgY29sb3JfZW5jb2RpbmcsCiAJCQkJCWVudW0g aWd0X2NvbG9yX3JhbmdlIGNvbG9yX3JhbmdlKQogewogCWNvbnN0IHN0cnVjdCBjb2xvcl9lbmNv ZGluZyAqZSA9ICZjb2xvcl9lbmNvZGluZ3NbY29sb3JfZW5jb2RpbmddOworCWNvbnN0IHN0cnVj dCBjb2xvcl9lbmNvZGluZ19mb3JtYXQgKmZyZ2IgPSBsb29rdXBfZm91cmNjKGZyb21fZm91cmNj KTsKKwljb25zdCBzdHJ1Y3QgY29sb3JfZW5jb2RpbmdfZm9ybWF0ICpmeWNiY3IgPSBsb29rdXBf Zm91cmNjKHRvX2ZvdXJjYyk7CiAJc3RydWN0IGlndF9tYXQ0IGMsIHI7CisJZmxvYXQgc2NhbGUg PSBmeWNiY3ItPm1heF92YWwgLyBmcmdiLT5tYXhfdmFsOworCisJaWd0X2Fzc2VydChmeWNiY3It Pm9mc195ICYmICFmcmdiLT5vZnNfeSk7CiAKIAljID0gcmdiX3RvX3ljYmNyX21hdHJpeChlKTsK LQlyID0geWNiY3Jfb3V0cHV0X2NvbnZlcnRfbWF0cml4KGNvbG9yX3JhbmdlKTsKKwlyID0geWNi Y3Jfb3V0cHV0X2NvbnZlcnRfbWF0cml4KGNvbG9yX3JhbmdlLCBzY2FsZSwgZnljYmNyLT5vZnNf eSwgZnljYmNyLT5tYXhfeSwgZnljYmNyLT5vZnNfY2JjciwgZnljYmNyLT5taWRfY2JjciwgZnlj YmNyLT5tYXhfY2JjciwgZnljYmNyLT5tYXhfdmFsKTsKIAogCXJldHVybiBpZ3RfbWF0cml4X211 bHRpcGx5KCZyLCAmYyk7CiB9CmRpZmYgLS1naXQgYS9saWIvaWd0X2NvbG9yX2VuY29kaW5nLmgg Yi9saWIvaWd0X2NvbG9yX2VuY29kaW5nLmgKaW5kZXggMzg4NGU0OTM5ZjRjLi5kYjQ1YjE2ZDM2 ODcgMTAwNjQ0Ci0tLSBhL2xpYi9pZ3RfY29sb3JfZW5jb2RpbmcuaAorKysgYi9saWIvaWd0X2Nv bG9yX2VuY29kaW5nLmgKQEAgLTI1LDYgKzI1LDcgQEAKICNkZWZpbmUgX19JR1RfQ09MT1JfRU5D T0RJTkdfSF9fCiAKICNpbmNsdWRlIDxzdGRib29sLmg+CisjaW5jbHVkZSA8c3RkaW50Lmg+CiAK ICNpbmNsdWRlICJpZ3RfbWF0cml4LmgiCiAKQEAgLTQ0LDkgKzQ1LDEzIEBAIGVudW0gaWd0X2Nv bG9yX3JhbmdlIHsKIGNvbnN0IGNoYXIgKmlndF9jb2xvcl9lbmNvZGluZ190b19zdHIoZW51bSBp Z3RfY29sb3JfZW5jb2RpbmcgZW5jb2RpbmcpOwogY29uc3QgY2hhciAqaWd0X2NvbG9yX3Jhbmdl X3RvX3N0cihlbnVtIGlndF9jb2xvcl9yYW5nZSByYW5nZSk7CiAKLXN0cnVjdCBpZ3RfbWF0NCBp Z3RfeWNiY3JfdG9fcmdiX21hdHJpeChlbnVtIGlndF9jb2xvcl9lbmNvZGluZyBjb2xvcl9lbmNv ZGluZywKK3N0cnVjdCBpZ3RfbWF0NCBpZ3RfeWNiY3JfdG9fcmdiX21hdHJpeCh1aW50MzJfdCB5 Y2Jjcl9mb3VyY2MsCisJCQkJCXVpbnQzMl90IHJnYl9mb3VyY2MsCisJCQkJCWVudW0gaWd0X2Nv bG9yX2VuY29kaW5nIGNvbG9yX2VuY29kaW5nLAogCQkJCQllbnVtIGlndF9jb2xvcl9yYW5nZSBj b2xvcl9yYW5nZSk7Ci1zdHJ1Y3QgaWd0X21hdDQgaWd0X3JnYl90b195Y2Jjcl9tYXRyaXgoZW51 bSBpZ3RfY29sb3JfZW5jb2RpbmcgY29sb3JfZW5jb2RpbmcsCitzdHJ1Y3QgaWd0X21hdDQgaWd0 X3JnYl90b195Y2Jjcl9tYXRyaXgodWludDMyX3QgcmdiX2ZvdXJjYywKKwkJCQkJdWludDMyX3Qg eWNiY3JfZm91cmNjLAorCQkJCQllbnVtIGlndF9jb2xvcl9lbmNvZGluZyBjb2xvcl9lbmNvZGlu ZywKIAkJCQkJZW51bSBpZ3RfY29sb3JfcmFuZ2UgY29sb3JfcmFuZ2UpOwogCiAjZW5kaWYgLyog X19JR1RfQ09MT1JfRU5DT0RJTkdfSF9fICovCmRpZmYgLS1naXQgYS9saWIvaWd0X2ZiLmMgYi9s aWIvaWd0X2ZiLmMKaW5kZXggY2FkOGJmZWFjZWJjLi4zYTQ4MjdjMzViMDQgMTAwNjQ0Ci0tLSBh L2xpYi9pZ3RfZmIuYworKysgYi9saWIvaWd0X2ZiLmMKQEAgLTE1NjQsNyArMTU2NCw3IEBAIHN0 YXRpYyB2b2lkICppZ3RfZmJfY3JlYXRlX2NhaXJvX3NoYWRvd19idWZmZXIoaW50IGZkLAogCQlE Uk1fRk9STUFUX1hSR0I4ODg4LCBMT0NBTF9EUk1fRk9STUFUX01PRF9OT05FLAogCQlJR1RfQ09M T1JfWUNCQ1JfQlQ3MDksIElHVF9DT0xPUl9ZQ0JDUl9MSU1JVEVEX1JBTkdFKTsKIAotCXNoYWRv dy0+c3RyaWRlc1swXSA9IEFMSUdOKHdpZHRoICogNCwgMTYpOworCXNoYWRvdy0+c3RyaWRlc1sw XSA9IEFMSUdOKHdpZHRoICogc2hhZG93LT5wbGFuZV9icHBbMF0sIDE2KTsKIAlzaGFkb3ctPnNp emUgPSBBTElHTihzaGFkb3ctPnN0cmlkZXNbMF0gKiBoZWlnaHQsCiAJCQkgICAgIHN5c2NvbmYo X1NDX1BBR0VTSVpFKSk7CiAJcHRyID0gbW1hcChOVUxMLCBzaGFkb3ctPnNpemUsIFBST1RfUkVB RCB8IFBST1RfV1JJVEUsCkBAIC0xNzc3LDcgKzE3NzcsOSBAQCBzdGF0aWMgdm9pZCBjb252ZXJ0 X3l1dl90b19yZ2IyNChzdHJ1Y3QgZmJfY29udmVydCAqY3Z0KQogCXVpbnQ4X3QgKnksICp1LCAq djsKIAl1aW50OF90ICpyZ2IyNCA9IGN2dC0+ZHN0LnB0cjsKIAl1bnNpZ25lZCBpbnQgcmdiMjRf c3RyaWRlID0gY3Z0LT5kc3QuZmItPnN0cmlkZXNbMF07Ci0Jc3RydWN0IGlndF9tYXQ0IG0gPSBp Z3RfeWNiY3JfdG9fcmdiX21hdHJpeChjdnQtPnNyYy5mYi0+Y29sb3JfZW5jb2RpbmcsCisJc3Ry dWN0IGlndF9tYXQ0IG0gPSBpZ3RfeWNiY3JfdG9fcmdiX21hdHJpeChjdnQtPnNyYy5mYi0+ZHJt X2Zvcm1hdCwKKwkJCQkJCSAgICBjdnQtPmRzdC5mYi0+ZHJtX2Zvcm1hdCwKKwkJCQkJCSAgICBj dnQtPnNyYy5mYi0+Y29sb3JfZW5jb2RpbmcsCiAJCQkJCQkgICAgY3Z0LT5zcmMuZmItPmNvbG9y X3JhbmdlKTsKIAl1aW50OF90ICpidWY7CiAJc3RydWN0IHl1dl9wYXJhbWV0ZXJzIHBhcmFtcyA9 IHsgfTsKQEAgLTE4MzgsNyArMTg0MCw5IEBAIHN0YXRpYyB2b2lkIGNvbnZlcnRfcmdiMjRfdG9f eXV2KHN0cnVjdCBmYl9jb252ZXJ0ICpjdnQpCiAJY29uc3QgdWludDhfdCAqcmdiMjQgPSBjdnQt PnNyYy5wdHI7CiAJdWludDhfdCBicHAgPSA0OwogCXVuc2lnbmVkIHJnYjI0X3N0cmlkZSA9IGN2 dC0+c3JjLmZiLT5zdHJpZGVzWzBdOwotCXN0cnVjdCBpZ3RfbWF0NCBtID0gaWd0X3JnYl90b195 Y2Jjcl9tYXRyaXgoY3Z0LT5kc3QuZmItPmNvbG9yX2VuY29kaW5nLAorCXN0cnVjdCBpZ3RfbWF0 NCBtID0gaWd0X3JnYl90b195Y2Jjcl9tYXRyaXgoY3Z0LT5zcmMuZmItPmRybV9mb3JtYXQsCisJ CQkJCQkgICAgY3Z0LT5kc3QuZmItPmRybV9mb3JtYXQsCisJCQkJCQkgICAgY3Z0LT5kc3QuZmIt PmNvbG9yX2VuY29kaW5nLAogCQkJCQkJICAgIGN2dC0+ZHN0LmZiLT5jb2xvcl9yYW5nZSk7CiAJ c3RydWN0IHl1dl9wYXJhbWV0ZXJzIHBhcmFtcyA9IHsgfTsKIAotLSAKMi4yMC4xCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcg bGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXY=