From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Subject: [RFC v4 24/25] drm/client: Hack: Add bootsplash Date: Thu, 12 Apr 2018 18:12:36 +0200 Message-ID: <20180412161237.9314-13-noralf@tronnes.org> References: <20180412161237.9314-1-noralf@tronnes.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180412161237.9314-1-noralf@tronnes.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: dri-devel@lists.freedesktop.org Cc: daniel.vetter@ffwll.ch, intel-gfx@lists.freedesktop.org, =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= , laurent.pinchart@ideasonboard.com, mstaudt@suse.de, dh.herrmann@gmail.com List-Id: dri-devel@lists.freedesktop.org QSBoYWNrIHRvIHRlc3QgdGhlIGNsaWVudCBBUEkuCgpTaWduZWQtb2ZmLWJ5OiBOb3JhbGYgVHLD uG5uZXMgPG5vcmFsZkB0cm9ubmVzLm9yZz4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vS2NvbmZpZyAg ICAgICAgICAgICAgICAgfCAgIDIgKwogZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlICAgICAgICAg ICAgICAgIHwgICAxICsKIGRyaXZlcnMvZ3B1L2RybS9jbGllbnQvS2NvbmZpZyAgICAgICAgICB8 ICAgOSArKwogZHJpdmVycy9ncHUvZHJtL2NsaWVudC9kcm1fYm9vdHNwbGFzaC5jIHwgMjQ4ICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vY2xpZW50L2lu dGVybmFsLmggICAgICAgfCAgMTkgKysrCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudC5jICAg ICAgICAgICAgfCAgIDQgKwogNiBmaWxlcyBjaGFuZ2VkLCAyODMgaW5zZXJ0aW9ucygrKQogY3Jl YXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9jbGllbnQvS2NvbmZpZwogY3JlYXRlIG1v ZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9jbGllbnQvZHJtX2Jvb3RzcGxhc2guYwogY3JlYXRl IG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9jbGllbnQvaW50ZXJuYWwuaAoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9LY29uZmlnIGIvZHJpdmVycy9ncHUvZHJtL0tjb25maWcKaW5k ZXggNzU3ODI1YWM2MGRmLi4xMzI4MjAyY2UxN2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9LY29uZmlnCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9LY29uZmlnCkBAIC0xNTQsNiArMTU0LDgg QEAgY29uZmlnIERSTV9TQ0hFRAogCXRyaXN0YXRlCiAJZGVwZW5kcyBvbiBEUk0KIAorc291cmNl ICJkcml2ZXJzL2dwdS9kcm0vY2xpZW50L0tjb25maWciCisKIHNvdXJjZSAiZHJpdmVycy9ncHUv ZHJtL2kyYy9LY29uZmlnIgogCiBzb3VyY2UgImRyaXZlcnMvZ3B1L2RybS9hcm0vS2NvbmZpZyIK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9N YWtlZmlsZQppbmRleCBkMjVhZmExMzZkOGYuLjM4ODUyNzA5M2Y4MCAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL01ha2VmaWxlCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZQpAQCAt MzAsNiArMzAsNyBAQCBkcm0tJChDT05GSUdfT0YpICs9IGRybV9vZi5vCiBkcm0tJChDT05GSUdf QUdQKSArPSBkcm1fYWdwc3VwcG9ydC5vCiBkcm0tJChDT05GSUdfREVCVUdfRlMpICs9IGRybV9k ZWJ1Z2ZzLm8gZHJtX2RlYnVnZnNfY3JjLm8KIGRybS0kKENPTkZJR19EUk1fTE9BRF9FRElEX0ZJ Uk1XQVJFKSArPSBkcm1fZWRpZF9sb2FkLm8KK2RybS0kKENPTkZJR19EUk1fQ0xJRU5UX0JPT1RT UExBU0gpICs9IGNsaWVudC9kcm1fYm9vdHNwbGFzaC5vCiAKIGRybV9rbXNfaGVscGVyLXkgOj0g ZHJtX2NydGNfaGVscGVyLm8gZHJtX2RwX2hlbHBlci5vIGRybV9wcm9iZV9oZWxwZXIubyBcCiAJ CWRybV9wbGFuZV9oZWxwZXIubyBkcm1fZHBfbXN0X3RvcG9sb2d5Lm8gZHJtX2F0b21pY19oZWxw ZXIubyBcCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vY2xpZW50L0tjb25maWcgYi9kcml2 ZXJzL2dwdS9kcm0vY2xpZW50L0tjb25maWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwLi42YjAxZjJlNTFmYjMKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9k cm0vY2xpZW50L0tjb25maWcKQEAgLTAsMCArMSw5IEBACittZW51ICJEUk0gQ2xpZW50cyIKKwlk ZXBlbmRzIG9uIERSTQorCitjb25maWcgRFJNX0NMSUVOVF9CT09UU1BMQVNICisJYm9vbCAiRFJN IEJvb3RzcGxhc2giCisJaGVscAorCSAgRFJNIEJvb3RzcGxhc2gKKworZW5kbWVudQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2NsaWVudC9kcm1fYm9vdHNwbGFzaC5jIGIvZHJpdmVycy9n cHUvZHJtL2NsaWVudC9kcm1fYm9vdHNwbGFzaC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwMC4uYmVjMzEwNWY5YjAyCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9n cHUvZHJtL2NsaWVudC9kcm1fYm9vdHNwbGFzaC5jCkBAIC0wLDAgKzEsMjQ4IEBACisvLyBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorCisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4K KyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXlib2FyZC5oPgor I2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNs dWRlIDxsaW51eC93b3JrcXVldWUuaD4KKworI2luY2x1ZGUgPGRybS9kcm1fY2xpZW50Lmg+Cisj aW5jbHVkZSA8ZHJtL2RybV9kcnYuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZiX2hlbHBlci5oPgor I2luY2x1ZGUgPGRybS9kcm1fZm91cmNjLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9tb2Rlcy5oPgor I2luY2x1ZGUgPGRybS9kcm1fcHJpbnQuaD4KKworLy8gZHJtX2xhc3RjbG9zZSgpCisjaW5jbHVk ZSA8ZHJtL2RybVAuaD4KKyNpbmNsdWRlICJkcm1faW50ZXJuYWwuaCIKKworc3RhdGljIGJvb2wg ZHJtX2Jvb3RzcGxhc2hfZW5hYmxlZCA9IHRydWU7Cittb2R1bGVfcGFyYW1fbmFtZWQoYm9vdHNw bGFzaF9lbmFibGVkLCBkcm1fYm9vdHNwbGFzaF9lbmFibGVkLCBib29sLCAwNjAwKTsKK01PRFVM RV9QQVJNX0RFU0MoYm9vdHNwbGFzaF9lbmFibGVkLCAiRW5hYmxlIGJvb3RzcGxhc2ggY2xpZW50 IFtkZWZhdWx0PXRydWVdIik7CisKK3N0cnVjdCBkcm1fYm9vdHNwbGFzaCB7CisJc3RydWN0IGRy bV9jbGllbnRfZGV2ICpjbGllbnQ7CisJc3RydWN0IGRybV9jbGllbnRfZGlzcGxheSAqZGlzcGxh eTsKKwlzdHJ1Y3QgZHJtX2NsaWVudF9idWZmZXIgKmJ1ZmZlclsyXTsKKwlzdHJ1Y3Qgd29ya19z dHJ1Y3Qgd29ya2VyOworCWJvb2wgc3RvcDsKK307CisKK3N0YXRpYyBib29sIGRybV9ib290c3Bs YXNoX2tleV9wcmVzc2VkOworCitzdGF0aWMgaW50IGRybV9ib290c3BsYXNoX2tleWJvYXJkX25v dGlmaWVyX2NhbGwoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpibGssCisJCQkJICB1bnNpZ25lZCBs b25nIGNvZGUsIHZvaWQgKl9wYXJhbSkKK3sKKwkvKiBBbnkga2V5IGlzIGdvb2QgKi8KKwlkcm1f Ym9vdHNwbGFzaF9rZXlfcHJlc3NlZCA9IHRydWU7CisKKwlyZXR1cm4gTk9USUZZX09LOworfQor CitzdGF0aWMgc3RydWN0IG5vdGlmaWVyX2Jsb2NrIGRybV9ib290c3BsYXNoX2tleWJvYXJkX25v dGlmaWVyX2Jsb2NrID0geworCS5ub3RpZmllcl9jYWxsID0gZHJtX2Jvb3RzcGxhc2hfa2V5Ym9h cmRfbm90aWZpZXJfY2FsbCwKK307CisKK3N0YXRpYyB1MzIgZHJtX2Jvb3RzcGxhc2hfY29sb3Jf dGFibGVbM10gPSB7CisJMHgwMGZmMDAwMCwgMHgwMDAwZmYwMCwgMHgwMDAwMDBmZiwKK307CisK Ky8qIERyYXcgYSBib3ggd2l0aCBjaGFuZ2luZyBjb2xvcnMgKi8KK3N0YXRpYyB2b2lkCitkcm1f Ym9vdHNwbGFzaF9kcmF3KHN0cnVjdCBkcm1fY2xpZW50X2J1ZmZlciAqYnVmZmVyLCB1bnNpZ25l ZCBpbnQgc2VxdWVuY2UpCit7CisJdW5zaWduZWQgaW50IHgsIHk7CisJdTMyICpwaXg7CisKKwlw aXggPSBidWZmZXItPnZhZGRyOworCXBpeCArPSAoKGJ1ZmZlci0+aGVpZ2h0IC8gMikgLSA1MCkg KiBidWZmZXItPndpZHRoOworCXBpeCArPSAoYnVmZmVyLT53aWR0aCAvIDIpIC0gNTA7CisKKwlm b3IgKHkgPSAwOyB5IDwgMTAwOyB5KyspIHsKKwkJZm9yICh4ID0gMDsgeCA8IDEwMDsgeCsrKQor CQkJKnBpeCsrID0gZHJtX2Jvb3RzcGxhc2hfY29sb3JfdGFibGVbc2VxdWVuY2VdOworCQlwaXgg Kz0gYnVmZmVyLT53aWR0aCAtIDEwMDsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIGRybV9ib290c3Bs YXNoX3dvcmtlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCit7CisJc3RydWN0IGRybV9ib290 c3BsYXNoICpzcGxhc2ggPSBjb250YWluZXJfb2Yod29yaywgc3RydWN0IGRybV9ib290c3BsYXNo LCB3b3JrZXIpOworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBzcGxhc2gtPmNsaWVudC0+ZGV2 OworCXVuc2lnbmVkIGludCBpID0gMCwgc2VxdWVuY2UgPSAwOworCXN0cnVjdCBkcm1fZnJhbWVi dWZmZXIgKmZiOworCWludCByZXQgPSAwOworCisJd2hpbGUgKCFzcGxhc2gtPnN0b3AgJiYgIWRy bV9ib290c3BsYXNoX2tleV9wcmVzc2VkKSB7CisJCS8qIERpZCBzb21lb25lIHRha2Ugb3Zlciwg bGlrZSBhbm90aGVyIGluLWtlcm5lbCBjbGllbnQsIGV4Y2VwdCBmYmRldj8gKi8KKwkJZmIgPSBk cm1fY2xpZW50X2Rpc3BsYXlfY3VycmVudF9mYihzcGxhc2gtPmRpc3BsYXkpOworCQlpZiAoc3Bs YXNoLT5idWZmZXJbaV0tPmZiICE9IGZiICYmCisJCSAgICAhKGRldi0+ZmJfaGVscGVyICYmIGRl di0+ZmJfaGVscGVyLT5mYiA9PSBmYikpCisJCQlicmVhazsKKworCQlpID0gIWk7CisJCWRybV9i b290c3BsYXNoX2RyYXcoc3BsYXNoLT5idWZmZXJbaV0sIHNlcXVlbmNlKyspOworCQlpZiAoc2Vx dWVuY2UgPT0gMykKKwkJCXNlcXVlbmNlID0gMDsKKworCQlyZXQgPSBkcm1fY2xpZW50X2Rpc3Bs YXlfY29tbWl0KHNwbGFzaC0+ZGlzcGxheSwgc3BsYXNoLT5idWZmZXJbaV0tPmZiLCBOVUxMKTsK KwkJLyogSXMgdXNlcnNwYWNlIGluIGNoYXJnZSBvciBpcyB0aGUgZGV2aWNlIHVucGx1Z2dlZD8g Ki8KKwkJaWYgKHJldCA9PSAtRUJVU1kgfHwgcmV0ID09IC1FTk9ERVYpCisJCQlicmVhazsKKwor CQltc2xlZXAoNTAwKTsKKwl9CisKKwkvKiBSZXN0b3JlIGZiZGV2IChvciBvdGhlcikgb24ga2V5 IHByZXNzLiAqLworCS8qIFRPRE86IENoZWNrIGlmIGl0J3MgT0sgdG8gY2FsbCBkcm1fbGFzdGNs b3NlIGhlcmUuICovCisJaWYgKGRybV9ib290c3BsYXNoX2tleV9wcmVzc2VkKQorCQlkcm1fbGFz dGNsb3NlKGRldik7CisKKwlmb3IgKGkgPSAwOyBpIDwgMjsgaSsrKQorCQlkcm1fY2xpZW50X2Zy YW1lYnVmZmVyX2RlbGV0ZShzcGxhc2gtPmJ1ZmZlcltpXSk7CisJZHJtX2NsaWVudF9kaXNwbGF5 X2ZyZWUoc3BsYXNoLT5kaXNwbGF5KTsKKwlkcm1fY2xpZW50X3JlbW92ZV9kZWZlcihzcGxhc2gt PmNsaWVudCk7CisJRFJNX0RFVl9ERUJVR19LTVMoZGV2LT5kZXYsICJCb290c3BsYXNoIGhhcyBz dG9wcGVkIChrZXk9JXUgc3RvcD0ldSByZXQ9JWQpLlxuIiwKKwkJCSAgZHJtX2Jvb3RzcGxhc2hf a2V5X3ByZXNzZWQsIHNwbGFzaC0+c3RvcCwgcmV0KTsKK30KKworc3RhdGljIGludCBkcm1fYm9v dHNwbGFzaF9zZXR1cChzdHJ1Y3QgZHJtX2Jvb3RzcGxhc2ggKnNwbGFzaCkKK3sKKwlzdHJ1Y3Qg ZHJtX2NsaWVudF9kZXYgKmNsaWVudCA9IHNwbGFzaC0+Y2xpZW50OworCXN0cnVjdCBkcm1fY2xp ZW50X2J1ZmZlciAqYnVmZmVyWzJdOworCXN0cnVjdCBkcm1fY2xpZW50X2Rpc3BsYXkgKmRpc3Bs YXk7CisJaW50IHJldCwgaTsKKworCWRpc3BsYXkgPSBkcm1fY2xpZW50X2ZpbmRfZGlzcGxheShj bGllbnQtPmRldiwgMCwgMCk7CisJaWYgKElTX0VSUihkaXNwbGF5KSkKKwkJcmV0dXJuIFBUUl9F UlIoZGlzcGxheSk7CisJaWYgKCFkaXNwbGF5KQorCQlyZXR1cm4gLUVOT0VOVDsKKworCWlmIChX QVJOX09OKCFkaXNwbGF5LT5tb2RlKSkKKwkJcmV0dXJuIC1FTk9FTlQ7CisKKwlmb3IgKGkgPSAw OyBpIDwgMjsgaSsrKSB7CisJCWJ1ZmZlcltpXSA9IGRybV9jbGllbnRfZnJhbWVidWZmZXJfY3Jl YXRlKGNsaWVudCwgZGlzcGxheS0+bW9kZSwKKwkJCQkJCQkgIERSTV9GT1JNQVRfWFJHQjg4ODgp OworCQlpZiAoSVNfRVJSKGJ1ZmZlcltpXSkpIHsKKwkJCXJldCA9IFBUUl9FUlIoYnVmZmVyW2ld KTsKKwkJCWdvdG8gZXJyX2ZyZWVfYnVmZmVyOworCQl9CisJfQorCisJcmV0ID0gZHJtX2NsaWVu dF9kaXNwbGF5X2NvbW1pdChkaXNwbGF5LCBidWZmZXJbMF0tPmZiLCBkaXNwbGF5LT5tb2RlKTsK KwlpZiAocmV0KQorCQlnb3RvIGVycl9mcmVlX2J1ZmZlcjsKKworCXNwbGFzaC0+ZGlzcGxheSA9 IGRpc3BsYXk7CisJc3BsYXNoLT5idWZmZXJbMF0gPSBidWZmZXJbMF07CisJc3BsYXNoLT5idWZm ZXJbMV0gPSBidWZmZXJbMV07CisKKwlzY2hlZHVsZV93b3JrKCZzcGxhc2gtPndvcmtlcik7CisK KwlyZXR1cm4gMDsKKworZXJyX2ZyZWVfYnVmZmVyOgorCWZvciAoaS0tOyBpID49IDA7IGktLSkK KwkJZHJtX2NsaWVudF9mcmFtZWJ1ZmZlcl9kZWxldGUoYnVmZmVyW2ldKTsKKwlkcm1fY2xpZW50 X2Rpc3BsYXlfZnJlZShkaXNwbGF5KTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQg ZHJtX2Jvb3RzcGxhc2hfY2xpZW50X2hvdHBsdWcoc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGll bnQpCit7CisJc3RydWN0IGRybV9ib290c3BsYXNoICpzcGxhc2ggPSBjbGllbnQtPnByaXZhdGU7 CisJaW50IHJldCA9IDA7CisKKwlpZiAoc3BsYXNoLT5kaXNwbGF5KQorCQlyZXR1cm4gMDsKKwor CXJldCA9IGRybV9ib290c3BsYXNoX3NldHVwKHNwbGFzaCk7CisJaWYgKHJldCkgeworCQlEUk1f REVWX0RFQlVHX0tNUyhjbGllbnQtPmRldi0+ZGV2LCAicmV0PSVkXG4iLCByZXQpOworCQlyZXR1 cm4gcmV0OworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGRybV9ib290c3BsYXNo X2NsaWVudF9yZW1vdmUoc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQpCit7CisJc3RydWN0 IGRybV9ib290c3BsYXNoICpzcGxhc2ggPSBjbGllbnQtPnByaXZhdGU7CisKKwkvKiBEb24ndCBo b29rIHVwIHRvIGFueSBuZXcgZGV2aWNlcyBzaG93aW5nIHVwICovCisJZHJtX2Jvb3RzcGxhc2hf ZW5hYmxlZCA9IGZhbHNlOworCisJc3BsYXNoLT5zdG9wID0gdHJ1ZTsKKwlmbHVzaF93b3JrKCZz cGxhc2gtPndvcmtlcik7CisJa2ZyZWUoc3BsYXNoKTsKKworCXJldHVybiAwOworfQorCitzdGF0 aWMgY29uc3Qgc3RydWN0IGRybV9jbGllbnRfZnVuY3MgZHJtX2Jvb3RzcGxhc2hfY2xpZW50X2Z1 bmNzID0geworCS5uYW1lCQk9ICJib290c3BsYXNoIiwKKwkucmVtb3ZlCQk9IGRybV9ib290c3Bs YXNoX2NsaWVudF9yZW1vdmUsCisJLmhvdHBsdWcJPSBkcm1fYm9vdHNwbGFzaF9jbGllbnRfaG90 cGx1ZywKK307CisKK3N0YXRpYyBpbnQgZHJtX2Jvb3RzcGxhc2hfZGV2X25vdGlmeShzdHJ1Y3Qg bm90aWZpZXJfYmxvY2sgKm5iLAorCQkJCSAgICAgdW5zaWduZWQgbG9uZyBhY3Rpb24sIHZvaWQg KmRhdGEpCit7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGRhdGE7CisJc3RydWN0IGRybV9j bGllbnRfZGV2ICpjbGllbnQ7CisJc3RydWN0IGRybV9ib290c3BsYXNoICpzcGxhc2g7CisKKwlp ZiAoIWRybV9ib290c3BsYXNoX2VuYWJsZWQpCisJCXJldHVybiAwOworCisJc3BsYXNoID0ga3ph bGxvYyhzaXplb2YoKnNwbGFzaCksIEdGUF9LRVJORUwpOworCWlmICghc3BsYXNoKQorCQlyZXR1 cm4gMDsKKworCWNsaWVudCA9IGRybV9jbGllbnRfbmV3KGRldiwgJmRybV9ib290c3BsYXNoX2Ns aWVudF9mdW5jcyk7CisJaWYgKElTX0VSUihjbGllbnQpKSB7CisJCURSTV9ERVZfRVJST1IoZGV2 LT5kZXYsICJGYWlsZWQgdG8gY3JlYXRlIGNsaWVudCwgcmV0PSVsZFxuIiwgUFRSX0VSUihjbGll bnQpKTsKKwkJa2ZyZWUoc3BsYXNoKTsKKwkJcmV0dXJuIDA7CisJfQorCisJSU5JVF9XT1JLKCZz cGxhc2gtPndvcmtlciwgZHJtX2Jvb3RzcGxhc2hfd29ya2VyKTsKKworCXNwbGFzaC0+Y2xpZW50 ID0gY2xpZW50OworCWNsaWVudC0+cHJpdmF0ZSA9IHNwbGFzaDsKKworCS8qCisJICogdmM0IGlz bid0IGRvbmUgd2l0aCBpdCdzIHNldHVwIHdoZW4gZHJtX2Rldl9yZWdpc3RlcigpIGlzIGNhbGxl ZC4KKwkgKiBJdCBzaG91bGQgaGF2ZSBzaG91bGRuJ3QgaXQ/CisJICogU28gdG8ga2VlcCBpdCBm cm9tIGNyYXNoaW5nIGRlZmVyIHNldHVwIHRvIGhvdHBsdWcuLi4KKwkgKi8KKwlpZiAoY2xpZW50 LT5kZXYtPm1vZGVfY29uZmlnLm1heF93aWR0aCkKKwkJZHJtX2Jvb3RzcGxhc2hfY2xpZW50X2hv dHBsdWcoY2xpZW50KTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IG5vdGlmaWVy X2Jsb2NrIGRybV9ib290c3BsYXNoX2Rldl9ub3RpZmllciA9IHsKKwkubm90aWZpZXJfY2FsbAk9 IGRybV9ib290c3BsYXNoX2Rldl9ub3RpZnksCit9OworCit2b2lkIGRybV9ib290c3BsYXNoX3Jl Z2lzdGVyKHZvaWQpCit7CisJcmVnaXN0ZXJfa2V5Ym9hcmRfbm90aWZpZXIoJmRybV9ib290c3Bs YXNoX2tleWJvYXJkX25vdGlmaWVyX2Jsb2NrKTsKKworCWlmICghZHJtX2Jvb3RzcGxhc2hfZW5h YmxlZCkKKwkJcmV0dXJuOworCisJZHJtX2Rldl9yZWdpc3Rlcl9ub3RpZmllcigmZHJtX2Jvb3Rz cGxhc2hfZGV2X25vdGlmaWVyKTsKK30KKwordm9pZCBkcm1fYm9vdHNwbGFzaF91bnJlZ2lzdGVy KHZvaWQpCit7CisJZHJtX2Rldl91bnJlZ2lzdGVyX25vdGlmaWVyKCZkcm1fYm9vdHNwbGFzaF9k ZXZfbm90aWZpZXIpOworCXVucmVnaXN0ZXJfa2V5Ym9hcmRfbm90aWZpZXIoJmRybV9ib290c3Bs YXNoX2tleWJvYXJkX25vdGlmaWVyX2Jsb2NrKTsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9jbGllbnQvaW50ZXJuYWwuaCBiL2RyaXZlcnMvZ3B1L2RybS9jbGllbnQvaW50ZXJuYWwu aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjIyZTIxMjBjNDkzYgot LS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9jbGllbnQvaW50ZXJuYWwuaApAQCAt MCwwICsxLDE5IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLworCisj aWZuZGVmIF9EUk1fQ0xJRU5UX0lOVEVSTkFMX0hfCisjZGVmaW5lIF9EUk1fQ0xJRU5UX0lOVEVS TkFMX0hfCisKKyNpZmRlZiBDT05GSUdfRFJNX0NMSUVOVF9CT09UU1BMQVNICit2b2lkIGRybV9i b290c3BsYXNoX3JlZ2lzdGVyKHZvaWQpOwordm9pZCBkcm1fYm9vdHNwbGFzaF91bnJlZ2lzdGVy KHZvaWQpOworI2Vsc2UKK3N0YXRpYyBpbmxpbmUgdm9pZCBkcm1fYm9vdHNwbGFzaF9yZWdpc3Rl cih2b2lkKQoreworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgZHJtX2Jvb3RzcGxhc2hfdW5yZWdp c3Rlcih2b2lkKQoreworfQorI2VuZGlmCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2RybV9jbGllbnQuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50LmMKaW5kZXgg NzYwZjE3OTVmODEyLi5jZDhjMDg0Yzg4MDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9k cm1fY2xpZW50LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnQuYwpAQCAtMjQsNiAr MjQsNyBAQAogCiAjaW5jbHVkZSAiZHJtX2NydGNfaW50ZXJuYWwuaCIKICNpbmNsdWRlICJkcm1f aW50ZXJuYWwuaCIKKyNpbmNsdWRlICJjbGllbnQvaW50ZXJuYWwuaCIKIAogc3RydWN0IGRybV9j bGllbnRfZGlzcGxheV9vZmZzZXQgewogCWludCB4LCB5OwpAQCAtMjM0LDEwICsyMzUsMTMgQEAg RVhQT1JUX1NZTUJPTChkcm1fY2xpZW50X3JlbW92ZV9kZWZlcik7CiAKIHZvaWQgZHJtX2NsaWVu dF9pbml0KHZvaWQpCiB7CisJZHJtX2Jvb3RzcGxhc2hfcmVnaXN0ZXIoKTsKIH0KIAogdm9pZCBk cm1fY2xpZW50X2V4aXQodm9pZCkKIHsKKwlkcm1fYm9vdHNwbGFzaF91bnJlZ2lzdGVyKCk7CisK IAlmbHVzaF93b3JrKCZkcm1fY2xpZW50X3JlbW92ZV9kZWZlcl93b3JrKTsKIH0KIAotLSAKMi4x NS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK