From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Zimmermann Subject: [PATCH 08/11] drm/fbdevdrm: Add mode conversion DRM <-> fbdev Date: Tue, 26 Mar 2019 10:17:41 +0100 Message-ID: <20190326091744.11542-9-tzimmermann@suse.de> References: <20190326091744.11542-1-tzimmermann@suse.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mx1.suse.de (mx2.suse.de [195.135.220.15]) by gabe.freedesktop.org (Postfix) with ESMTPS id 979166E7B8 for ; Tue, 26 Mar 2019 09:17:57 +0000 (UTC) In-Reply-To: <20190326091744.11542-1-tzimmermann@suse.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: airlied@linux.ie, daniel@ffwll.ch, b.zolnierkie@samsung.com Cc: linux-fbdev@vger.kernel.org, Thomas Zimmermann , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org U2lnbmVkLW9mZi1ieTogVGhvbWFzIFppbW1lcm1hbm4gPHR6aW1tZXJtYW5uQHN1c2UuZGU+Ci0t LQogZHJpdmVycy9ncHUvZHJtL2ZiZGV2ZHJtL01ha2VmaWxlICAgICAgICAgfCAgIDEgKwogZHJp dmVycy9ncHUvZHJtL2ZiZGV2ZHJtL2ZiZGV2ZHJtX21vZGVzLmMgfCAxNTMgKysrKysrKysrKysr KysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2ZiZGV2ZHJtL2ZiZGV2ZHJtX21vZGVzLmggfCAg NDYgKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAyMDAgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1v ZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9mYmRldmRybS9mYmRldmRybV9tb2Rlcy5jCiBjcmVh dGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2ZiZGV2ZHJtL2ZiZGV2ZHJtX21vZGVzLmgK CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZmJkZXZkcm0vTWFrZWZpbGUgYi9kcml2ZXJz L2dwdS9kcm0vZmJkZXZkcm0vTWFrZWZpbGUKaW5kZXggYWVmNjBkMGY0ODg4Li4yY2E5MDZhMzI1 OGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9mYmRldmRybS9NYWtlZmlsZQorKysgYi9k cml2ZXJzL2dwdS9kcm0vZmJkZXZkcm0vTWFrZWZpbGUKQEAgLTMsNiArMyw3IEBAIGZiZGV2ZHJt LXkgOj0gZmJkZXZkcm1fYm8ubyBcCiAJICAgICAgZmJkZXZkcm1fZGV2aWNlLm8gXAogCSAgICAg IGZiZGV2ZHJtX2Rydi5vIFwKIAkgICAgICBmYmRldmRybV9mb3JtYXQubyBcCisJICAgICAgZmJk ZXZkcm1fbW9kZXMubyBcCiAJICAgICAgZmJkZXZkcm1fbW9kZXNldC5vIFwKIAkgICAgICBmYmRl dmRybV90dG0ubwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZmJkZXZkcm0vZmJkZXZk cm1fbW9kZXMuYyBiL2RyaXZlcnMvZ3B1L2RybS9mYmRldmRybS9mYmRldmRybV9tb2Rlcy5jCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYmQzYWQ2OTFlN2NlCi0tLSAv ZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2ZiZGV2ZHJtL2ZiZGV2ZHJtX21vZGVzLmMK QEAgLTAsMCArMSwxNTMgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9y LWxhdGVyCisgKgorICogT25lIHB1cnBvc2Ugb2YgdGhpcyBkcml2ZXIgaXMgdG8gYWxsb3cgZm9y IGVhc3kgY29udmVyc2lvbiBvZiBmcmFtZWJ1ZmZlcgorICogZHJpdmVycyB0byBEUk0uIEFzIGEg c3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBHUEwsIHlvdSBhcmUgYWxsb3dlZCB0bworICog cmVsaWNlbnNlIHRoaXMgZmlsZSB1bmRlciB0aGUgdGVybXMgb2YgYSBsaWNlbnNlIG9mIHlvdXIg Y2hvaWNlIGlmIHlvdSdyZQorICogcG9ydGluZyBhIGZyYW1lYnVmZmVyIGRyaXZlci4gSW4gb3Jk ZXIgdG8gZG8gc28sIHVwZGF0ZSB0aGUgU1BEWCBsaWNlbnNlCisgKiBpZGVudGlmaWVyIHRvIHRo ZSBuZXcgbGljZW5zZSBhbmQgcmVtb3ZlIHRoaXMgZXhjZXB0aW9uLgorICoKKyAqIElmIHlvdSBh ZGQgY29kZSB0byB0aGlzIGZpbGUsIHBsZWFzZSBlbnN1cmUgdGhhdCBpdCdzIGNvbXBhdGlibGUg d2l0aCB0aGUKKyAqIHN0YXRlZCBleGNlcHRpb24uCisgKi8KKworI2luY2x1ZGUgImZiZGV2ZHJt X21vZGVzLmgiCisjaW5jbHVkZSA8ZHJtL2RybV9tb2Rlcy5oPgorI2luY2x1ZGUgPGxpbnV4L2Zi Lmg+CisKK3ZvaWQgZHJtX21vZGVfdXBkYXRlX2Zyb21fZmJfdmlkZW9tb2RlKHN0cnVjdCBkcm1f ZGlzcGxheV9tb2RlICptb2RlLAorCQkJCSAgICAgICBjb25zdCBzdHJ1Y3QgZmJfdmlkZW9tb2Rl ICpmYl9tb2RlKQoreworCW1vZGUtPnR5cGUgPSBEUk1fTU9ERV9UWVBFX0RSSVZFUjsKKworCW1v ZGUtPmNsb2NrID0gUElDT1MyS0haKGZiX21vZGUtPnBpeGNsb2NrKTsKKworCW1vZGUtPmhkaXNw bGF5ID0gZmJfbW9kZS0+eHJlczsKKwltb2RlLT5oc3luY19zdGFydCA9IG1vZGUtPmhkaXNwbGF5 ICsgZmJfbW9kZS0+cmlnaHRfbWFyZ2luOworCW1vZGUtPmhzeW5jX2VuZCA9IG1vZGUtPmhzeW5j X3N0YXJ0ICsgZmJfbW9kZS0+aHN5bmNfbGVuOworCW1vZGUtPmh0b3RhbCA9IG1vZGUtPmhzeW5j X2VuZCArIGZiX21vZGUtPmxlZnRfbWFyZ2luOworCW1vZGUtPmhza2V3ID0gMDsKKworCW1vZGUt PnZkaXNwbGF5ID0gZmJfbW9kZS0+eXJlczsKKwltb2RlLT52c3luY19zdGFydCA9IG1vZGUtPnZk aXNwbGF5ICsgZmJfbW9kZS0+bG93ZXJfbWFyZ2luOworCW1vZGUtPnZzeW5jX2VuZCA9IG1vZGUt PnZzeW5jX3N0YXJ0ICsgZmJfbW9kZS0+dnN5bmNfbGVuOworCW1vZGUtPnZ0b3RhbCA9IG1vZGUt PnZzeW5jX2VuZCArIGZiX21vZGUtPnVwcGVyX21hcmdpbjsKKwltb2RlLT52c2NhbiA9IDA7CisK Kwltb2RlLT5mbGFncyA9IDA7CisKKwlpZiAoZmJfbW9kZS0+c3luYyAmIEZCX1NZTkNfSE9SX0hJ R0hfQUNUKQorCQltb2RlLT5mbGFncyB8PSBEUk1fTU9ERV9GTEFHX1BIU1lOQzsKKwllbHNlCisJ CW1vZGUtPmZsYWdzIHw9IERSTV9NT0RFX0ZMQUdfTkhTWU5DOworCisJaWYgKGZiX21vZGUtPnN5 bmMgJiBGQl9TWU5DX1ZFUlRfSElHSF9BQ1QpCisJCW1vZGUtPmZsYWdzIHw9IERSTV9NT0RFX0ZM QUdfUFZTWU5DOworCWVsc2UKKwkJbW9kZS0+ZmxhZ3MgfD0gRFJNX01PREVfRkxBR19OVlNZTkM7 CisKKwlpZiAoZmJfbW9kZS0+c3luYyAmIEZCX1NZTkNfQ09NUF9ISUdIX0FDVCkKKwkJbW9kZS0+ ZmxhZ3MgfD0gRFJNX01PREVfRkxBR19DU1lOQyB8IERSTV9NT0RFX0ZMQUdfUENTWU5DOworCisJ aWYgKGZiX21vZGUtPnZtb2RlICYgRkJfVk1PREVfSU5URVJMQUNFRCkKKwkJbW9kZS0+ZmxhZ3Mg fD0gRFJNX01PREVfRkxBR19JTlRFUkxBQ0U7CisKKwlpZiAoZmJfbW9kZS0+dm1vZGUgJiBGQl9W TU9ERV9ET1VCTEUpCisJCW1vZGUtPmZsYWdzIHw9IERSTV9NT0RFX0ZMQUdfREJMU0NBTjsKKwor CW1vZGUtPndpZHRoX21tID0gMDsKKwltb2RlLT5oZWlnaHRfbW0gPSAwOworCisJbW9kZS0+dnJl ZnJlc2ggPSBmYl9tb2RlLT5yZWZyZXNoOworCW1vZGUtPmhzeW5jID0gbW9kZS0+Y2xvY2sgLyBt b2RlLT52dG90YWw7CisKKwkvKiBmaW5hbCBzdGVwOyBkZXBlbmRzIG9uIHByZXZpb3VzIHNldHVw ICovCisJaWYgKGZiX21vZGUtPm5hbWUpIHsKKwkJc3RybmNweShtb2RlLT5uYW1lLCBmYl9tb2Rl LT5uYW1lLCBzaXplb2YobW9kZS0+bmFtZSkgLSAxKTsKKwkJbW9kZS0+bmFtZVtzaXplb2YobW9k ZS0+bmFtZSkgLSAxXSA9ICdcMCc7CisJfSBlbHNlIHsKKwkJZHJtX21vZGVfc2V0X25hbWUobW9k ZSk7CisJfQorfQorCit2b2lkIGRybV9tb2RlX3VwZGF0ZV9mcm9tX2ZiX3Zhcl9zY3JlZW5pbmZv KAorCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlLCBjb25zdCBzdHJ1Y3QgZmJfdmFyX3Nj cmVlbmluZm8gKmZiX3ZhcikKK3sKKwlzdHJ1Y3QgZmJfdmlkZW9tb2RlIGZiX21vZGU7CisKKwlm Yl92YXJfdG9fdmlkZW9tb2RlKCZmYl9tb2RlLCBmYl92YXIpOworCWRybV9tb2RlX3VwZGF0ZV9m cm9tX2ZiX3ZpZGVvbW9kZShtb2RlLCAmZmJfbW9kZSk7Cit9CisKK3N0cnVjdCBkcm1fZGlzcGxh eV9tb2RlKiBkcm1fbW9kZV9jcmVhdGVfZnJvbV9mYl92aWRlb21vZGUoCisJc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgY29uc3Qgc3RydWN0IGZiX3ZpZGVvbW9kZSAqZmJfbW9kZSkKK3sKKwkvKiBj bGVhcmVkIHRvICcwJyAqLworCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlID0gZHJtX21v ZGVfY3JlYXRlKGRldik7CisJaWYgKCFtb2RlKQorCQlyZXR1cm4gTlVMTDsKKworCWRybV9tb2Rl X3VwZGF0ZV9mcm9tX2ZiX3ZpZGVvbW9kZShtb2RlLCBmYl9tb2RlKTsKKworCXJldHVybiBtb2Rl OworfQorCit2b2lkCitmYmRldmRybV91cGRhdGVfZmJfdmlkZW9tb2RlX2Zyb21fbW9kZShzdHJ1 Y3QgZmJfdmlkZW9tb2RlICpmYl9tb2RlLAorCQkJCSAgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Rp c3BsYXlfbW9kZSAqbW9kZSkKK3sKKwlmYl9tb2RlLT5uYW1lID0gTlVMTDsKKwlmYl9tb2RlLT5y ZWZyZXNoID0gbW9kZS0+dnJlZnJlc2g7CisJZmJfbW9kZS0+eHJlcyA9IG1vZGUtPmhkaXNwbGF5 OworCWZiX21vZGUtPnlyZXMgPSBtb2RlLT52ZGlzcGxheTsKKwlmYl9tb2RlLT5waXhjbG9jayA9 IEtIWjJQSUNPUyhtb2RlLT5jbG9jayk7CisJZmJfbW9kZS0+bGVmdF9tYXJnaW4gPSBtb2RlLT5o dG90YWwgLSBtb2RlLT5oc3luY19lbmQ7CisJZmJfbW9kZS0+cmlnaHRfbWFyZ2luID0gbW9kZS0+ aHN5bmNfc3RhcnQgLSBtb2RlLT5oZGlzcGxheTsKKwlmYl9tb2RlLT51cHBlcl9tYXJnaW4gPSBt b2RlLT52dG90YWwgLSBtb2RlLT52c3luY19lbmQ7CisJZmJfbW9kZS0+bG93ZXJfbWFyZ2luID0g bW9kZS0+dnN5bmNfc3RhcnQgLSBtb2RlLT52ZGlzcGxheTsKKwlmYl9tb2RlLT5oc3luY19sZW4g PSBtb2RlLT5oc3luY19lbmQgLSBtb2RlLT5oc3luY19zdGFydDsKKwlmYl9tb2RlLT52c3luY19s ZW4gPSBtb2RlLT52c3luY19lbmQgLSBtb2RlLT52c3luY19zdGFydDsKKworCWZiX21vZGUtPnN5 bmMgPSAwOworCWlmIChtb2RlLT5mbGFncyAmIERSTV9NT0RFX0ZMQUdfUEhTWU5DKQorCQlmYl9t b2RlLT5zeW5jIHw9IEZCX1NZTkNfSE9SX0hJR0hfQUNUOworCWlmIChtb2RlLT5mbGFncyAmIERS TV9NT0RFX0ZMQUdfUFZTWU5DKQorCQlmYl9tb2RlLT5zeW5jIHw9IEZCX1NZTkNfVkVSVF9ISUdI X0FDVDsKKwlpZiAobW9kZS0+ZmxhZ3MgJiAoRFJNX01PREVfRkxBR19DU1lOQyB8IERSTV9NT0RF X0ZMQUdfUENTWU5DKSkKKwkJZmJfbW9kZS0+c3luYyB8PSBGQl9TWU5DX0NPTVBfSElHSF9BQ1Q7 CisKKwlmYl9tb2RlLT52bW9kZSA9IDA7CisJaWYgKG1vZGUtPmZsYWdzICYgRFJNX01PREVfRkxB R19JTlRFUkxBQ0UpCisJCWZiX21vZGUtPnZtb2RlIHw9IEZCX1ZNT0RFX0lOVEVSTEFDRUQ7CisJ aWYgKG1vZGUtPmZsYWdzICYgRFJNX01PREVfRkxBR19EQkxTQ0FOKQorCQlmYl9tb2RlLT52bW9k ZSB8PSBGQl9WTU9ERV9ET1VCTEU7CisKKwlmYl9tb2RlLT5mbGFnID0gMDsKK30KKwordm9pZAor ZmJkZXZkcm1faW5pdF9mYl92aWRlb21vZGVfZnJvbV9tb2RlKHN0cnVjdCBmYl92aWRlb21vZGUg KmZiX21vZGUsCisJCQkJICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSkK K3sKKwltZW1zZXQoZmJfbW9kZSwgMCwgc2l6ZW9mKCpmYl9tb2RlKSk7CisJZmJkZXZkcm1fdXBk YXRlX2ZiX3ZpZGVvbW9kZV9mcm9tX21vZGUoZmJfbW9kZSwgbW9kZSk7Cit9CisKK3ZvaWQKK2Zi ZGV2ZHJtX3VwZGF0ZV9mYl92YXJfc2NyZWVuaW5mb19mcm9tX21vZGUoc3RydWN0IGZiX3Zhcl9z Y3JlZW5pbmZvICpmYl92YXIsCisJCQkJCSAgICBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9k ZSAqbW9kZSkKK3sKKwlzdHJ1Y3QgZmJfdmlkZW9tb2RlIGZiX21vZGU7CisJZmJkZXZkcm1faW5p dF9mYl92aWRlb21vZGVfZnJvbV9tb2RlKCZmYl9tb2RlLCBtb2RlKTsKKwlmYl92aWRlb21vZGVf dG9fdmFyKGZiX3ZhciwgJmZiX21vZGUpOworCisJZmJfdmFyLT5oZWlnaHQgPSBtb2RlLT5oZWln aHRfbW07CisJZmJfdmFyLT53aWR0aCA9IG1vZGUtPndpZHRoX21tOworfQorCit2b2lkCitmYmRl dmRybV9pbml0X2ZiX3Zhcl9zY3JlZW5pbmZvX2Zyb21fbW9kZShzdHJ1Y3QgZmJfdmFyX3NjcmVl bmluZm8gKmZiX3ZhciwKKwkJCQkJICBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9k ZSkKK3sKKwltZW1zZXQoZmJfdmFyLCAwLCBzaXplb2YoKmZiX3ZhcikpOworCWZiZGV2ZHJtX3Vw ZGF0ZV9mYl92YXJfc2NyZWVuaW5mb19mcm9tX21vZGUoZmJfdmFyLCBtb2RlKTsKK30KZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9mYmRldmRybS9mYmRldmRybV9tb2Rlcy5oIGIvZHJpdmVy cy9ncHUvZHJtL2ZiZGV2ZHJtL2ZiZGV2ZHJtX21vZGVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwLi5mODhhODZhODM4NTgKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2 ZXJzL2dwdS9kcm0vZmJkZXZkcm0vZmJkZXZkcm1fbW9kZXMuaApAQCAtMCwwICsxLDQ2IEBACisv KiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vci1sYXRlcgorICoKKyAqIE9uZSBw dXJwb3NlIG9mIHRoaXMgZHJpdmVyIGlzIHRvIGFsbG93IGZvciBlYXN5IGNvbnZlcnNpb24gb2Yg ZnJhbWVidWZmZXIKKyAqIGRyaXZlcnMgdG8gRFJNLiBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRv IHRoZSBHTlUgR1BMLCB5b3UgYXJlIGFsbG93ZWQgdG8KKyAqIHJlbGljZW5zZSB0aGlzIGZpbGUg dW5kZXIgdGhlIHRlcm1zIG9mIGEgbGljZW5zZSBvZiB5b3VyIGNob2ljZSBpZiB5b3UncmUKKyAq IHBvcnRpbmcgYSBmcmFtZWJ1ZmZlciBkcml2ZXIuIEluIG9yZGVyIHRvIGRvIHNvLCB1cGRhdGUg dGhlIFNQRFggbGljZW5zZQorICogaWRlbnRpZmllciB0byB0aGUgbmV3IGxpY2Vuc2UgYW5kIHJl bW92ZSB0aGlzIGV4Y2VwdGlvbi4KKyAqCisgKiBJZiB5b3UgYWRkIGNvZGUgdG8gdGhpcyBmaWxl LCBwbGVhc2UgZW5zdXJlIHRoYXQgaXQncyBjb21wYXRpYmxlIHdpdGggdGhlCisgKiBzdGF0ZWQg ZXhjZXB0aW9uLgorICovCisKKyNpZm5kZWYgRkJERVZEUk1fTU9ERVNfSAorI2RlZmluZSBGQkRF VkRSTV9NT0RFU19ICisKK3N0cnVjdCBkcm1fZGV2aWNlOworc3RydWN0IGRybV9kaXNwbGF5X21v ZGU7CitzdHJ1Y3QgZmJfdmlkZW9tb2RlOworc3RydWN0IGZiX3Zhcl9zY3JlZW5pbmZvOworCit2 b2lkIGRybV9tb2RlX3VwZGF0ZV9mcm9tX2ZiX3ZpZGVvbW9kZShzdHJ1Y3QgZHJtX2Rpc3BsYXlf bW9kZSAqbW9kZSwKKwkJCQkgICAgICAgY29uc3Qgc3RydWN0IGZiX3ZpZGVvbW9kZSAqZmJfbW9k ZSk7CisKK3ZvaWQgZHJtX21vZGVfdXBkYXRlX2Zyb21fZmJfdmFyX3NjcmVlbmluZm8oCisJc3Ry dWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsIGNvbnN0IHN0cnVjdCBmYl92YXJfc2NyZWVuaW5m byAqZmJfdmFyKTsKKworc3RydWN0IGRybV9kaXNwbGF5X21vZGUqIGRybV9tb2RlX2NyZWF0ZV9m cm9tX2ZiX3ZpZGVvbW9kZSgKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBjb25zdCBzdHJ1Y3Qg ZmJfdmlkZW9tb2RlICpmYl9tb2RlKTsKKwordm9pZAorZmJkZXZkcm1fdXBkYXRlX2ZiX3ZpZGVv bW9kZV9mcm9tX21vZGUoc3RydWN0IGZiX3ZpZGVvbW9kZSAqZmJfbW9kZSwKKwkJCQkgICAgICAg Y29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUpOworCit2b2lkCitmYmRldmRybV9p bml0X2ZiX3ZpZGVvbW9kZV9mcm9tX21vZGUoc3RydWN0IGZiX3ZpZGVvbW9kZSAqZmJfbW9kZSwK KwkJCQkgICAgIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlKTsKKwordm9pZAor ZmJkZXZkcm1fdXBkYXRlX2ZiX3Zhcl9zY3JlZW5pbmZvX2Zyb21fbW9kZShzdHJ1Y3QgZmJfdmFy X3NjcmVlbmluZm8gKnZhciwKKwkJCQkJICAgIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2Rl ICptb2RlKTsKKwordm9pZAorZmJkZXZkcm1faW5pdF9mYl92YXJfc2NyZWVuaW5mb19mcm9tX21v ZGUoc3RydWN0IGZiX3Zhcl9zY3JlZW5pbmZvICp2YXIsCisJCQkJCSAgY29uc3Qgc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgKm1vZGUpOworCisjZW5kaWYKLS0gCjIuMjEuMAoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlz dApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs