From mboxrd@z Thu Jan 1 00:00:00 1970 From: "james qian wang (Arm Technology China)" Subject: [PATCH 1/3] drm/komeda: Add component komeda_merger Date: Mon, 20 May 2019 10:44:41 +0000 Message-ID: <20190520104411.6092-2-james.qian.wang@arm.com> References: <20190520104411.6092-1-james.qian.wang@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-eopbgr150044.outbound.protection.outlook.com [40.107.15.44]) by gabe.freedesktop.org (Postfix) with ESMTPS id 904488913E for ; Mon, 20 May 2019 10:44:44 +0000 (UTC) In-Reply-To: <20190520104411.6092-1-james.qian.wang@arm.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Liviu Dudau , "airlied@linux.ie" , Brian Starkey , "maarten.lankhorst@linux.intel.com" , "sean@poorly.run" Cc: nd , Ayan Halder , "Oscar Zhang (Arm Technology China)" , "Tiannan Zhu (Arm Technology China)" , "Jonathan Chai (Arm Technology China)" , "linux-kernel@vger.kernel.org" , "dri-devel@lists.freedesktop.org" , "Julien Yin (Arm Technology China)" , "Channing Chen (Arm Technology China)" , "james qian wang (Arm Technology China)" , "Yiqi Kang (Arm Technology China)" , "thomas Sun (Arm Technology China)" , "Lowry Li (Arm Technology China)" , Ben Davis List-Id: dri-devel@lists.freedesktop.org SW50cm9kdWNlIGEgbmV3IGNvbXBvbmVudCBrb21lZGFfbWVyZ2VyLCBiZWNhdXNlIEQ3MSBIVyBz dXBwb3J0cyB0byBzcGxpdA0KYSB3aG9sZSBpbWFnZSB0byB0d28gaGFsZiBwYXJ0cyBhbmQgZG9l cyB0aGUgc2NhbGluZyBpbmRlcGVuZGVudGx5LiBNZXJnZXINCm1lcmdlcyB0d28gc2VwYXJhdGUg cmVzdWx0cyB0byBvbmUsIGFuZCBvdXRwdXQgaXQgdG8gY29tcG9zaXRvciBvciB3Yl9sYXllcg0K Rm9yIHRoaXMgcGF0Y2g6DQotIEFkZCB0aGUgZGVmaW5pdGlvbiBvZiBrb21lZGFfbWVyZ2VyL21l cmdlcl9zdGF0ZQ0KLSBSZXBvcnQgYW5kIGluaXRpYWxpemUga29tZWRhX21lcmdlciBhY2NvcmRp bmcgdG8gdGhlIEQ3MSBIVy4NCg0KU2lnbmVkLW9mZi1ieTogSmFtZXMgUWlhbiBXYW5nIChBcm0g VGVjaG5vbG9neSBDaGluYSkgPGphbWVzLnFpYW4ud2FuZ0Bhcm0uY29tPg0KLS0tDQogLi4uL2Fy bS9kaXNwbGF5L2tvbWVkYS9kNzEvZDcxX2NvbXBvbmVudC5jICAgIHwgNzQgKysrKysrKysrKysr KysrKysrKw0KIC4uLi9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9waXBlbGluZS5jICB8 ICAzICsNCiAuLi4vZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfcGlwZWxpbmUuaCAgfCAx OCArKysrLQ0KIC4uLi9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX3ByaXZhdGVfb2JqLmMgICB8 IDQ5ICsrKysrKysrKysrKw0KIDQgZmlsZXMgY2hhbmdlZCwgMTQzIGluc2VydGlvbnMoKyksIDEg ZGVsZXRpb24oLSkNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9r b21lZGEvZDcxL2Q3MV9jb21wb25lbnQuYyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9r b21lZGEvZDcxL2Q3MV9jb21wb25lbnQuYw0KaW5kZXggY2E0YjJmN2E4MTA2Li4zMjY2YmQ1NGM5 MzYgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2Q3MS9k NzFfY29tcG9uZW50LmMNCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEv ZDcxL2Q3MV9jb21wb25lbnQuYw0KQEAgLTcyNiw2ICs3MjYsNzcgQEAgc3RhdGljIGludCBkNzFf c2NhbGVyX2luaXQoc3RydWN0IGQ3MV9kZXYgKmQ3MSwNCiAJcmV0dXJuIDA7DQogfQ0KIA0KK3N0 YXRpYyB2b2lkIGQ3MV9tZXJnZXJfdXBkYXRlKHN0cnVjdCBrb21lZGFfY29tcG9uZW50ICpjLA0K KwkJCSAgICAgIHN0cnVjdCBrb21lZGFfY29tcG9uZW50X3N0YXRlICpzdGF0ZSkNCit7DQorCXN0 cnVjdCBrb21lZGFfbWVyZ2VyX3N0YXRlICpzdCA9IHRvX21lcmdlcl9zdChzdGF0ZSk7DQorCXUz MiBfX2lvbWVtICpyZWcgPSBjLT5yZWc7DQorCXUzMiBpbmRleDsNCisNCisJZm9yX2VhY2hfY2hh bmdlZF9pbnB1dChzdGF0ZSwgaW5kZXgpDQorCQltYWxpZHBfd3JpdGUzMihyZWcsIE1HX0lOUFVU X0lEMCArIGluZGV4ICogNCwNCisJCQkgICAgICAgdG9fZDcxX2lucHV0X2lkKCZzdGF0ZS0+aW5w dXRzW2luZGV4XSkpOw0KKw0KKwltYWxpZHBfd3JpdGUzMihyZWcsIE1HX1NJWkUsIEhWX1NJWkUo c3QtPmhzaXplX21lcmdlZCwNCisJCQkJCSAgICAgc3QtPnZzaXplX21lcmdlZCkpOw0KKwltYWxp ZHBfd3JpdGUzMihyZWcsIEJMS19DT05UUk9MLCBCTEtfQ1RSTF9FTik7DQorfQ0KKw0KK3N0YXRp YyB2b2lkIGQ3MV9tZXJnZXJfZHVtcChzdHJ1Y3Qga29tZWRhX2NvbXBvbmVudCAqYywgc3RydWN0 IHNlcV9maWxlICpzZikNCit7DQorCXUzMiB2Ow0KKw0KKwlkdW1wX2Jsb2NrX2hlYWRlcihzZiwg Yy0+cmVnKTsNCisNCisJZ2V0X3ZhbHVlc19mcm9tX3JlZyhjLT5yZWcsIE1HX0lOUFVUX0lEMCwg MSwgJnYpOw0KKwlzZXFfcHJpbnRmKHNmLCAiTUdfSU5QVVRfSUQwOlx0XHQweCVYXG4iLCB2KTsN CisNCisJZ2V0X3ZhbHVlc19mcm9tX3JlZyhjLT5yZWcsIE1HX0lOUFVUX0lEMSwgMSwgJnYpOw0K KwlzZXFfcHJpbnRmKHNmLCAiTUdfSU5QVVRfSUQxOlx0XHQweCVYXG4iLCB2KTsNCisNCisJZ2V0 X3ZhbHVlc19mcm9tX3JlZyhjLT5yZWcsIEJMS19DT05UUk9MLCAxLCAmdik7DQorCXNlcV9wcmlu dGYoc2YsICJNR19DT05UUk9MOlx0XHQweCVYXG4iLCB2KTsNCisNCisJZ2V0X3ZhbHVlc19mcm9t X3JlZyhjLT5yZWcsIE1HX1NJWkUsIDEsICZ2KTsNCisJc2VxX3ByaW50ZihzZiwgIk1HX1NJWkU6 XHRcdDB4JVhcbiIsIHYpOw0KK30NCisNCitzdGF0aWMgY29uc3Qgc3RydWN0IGtvbWVkYV9jb21w b25lbnRfZnVuY3MgZDcxX21lcmdlcl9mdW5jcyA9IHsNCisJLnVwZGF0ZQkJPSBkNzFfbWVyZ2Vy X3VwZGF0ZSwNCisJLmRpc2FibGUJPSBkNzFfY29tcG9uZW50X2Rpc2FibGUsDQorCS5kdW1wX3Jl Z2lzdGVyCT0gZDcxX21lcmdlcl9kdW1wLA0KK307DQorDQorc3RhdGljIGludCBkNzFfbWVyZ2Vy X2luaXQoc3RydWN0IGQ3MV9kZXYgKmQ3MSwNCisJCQkgICBzdHJ1Y3QgYmxvY2tfaGVhZGVyICpi bGssIHUzMiBfX2lvbWVtICpyZWcpDQorew0KKwlzdHJ1Y3Qga29tZWRhX2NvbXBvbmVudCAqYzsN CisJc3RydWN0IGtvbWVkYV9tZXJnZXIgKm1lcmdlcjsNCisJdTMyIHBpcGVfaWQsIGNvbXBfaWQ7 DQorDQorCWdldF9yZXNvdXJjZXNfaWQoYmxrLT5ibG9ja19pbmZvLCAmcGlwZV9pZCwgJmNvbXBf aWQpOw0KKw0KKwljID0ga29tZWRhX2NvbXBvbmVudF9hZGQoJmQ3MS0+cGlwZXNbcGlwZV9pZF0t PmJhc2UsIHNpemVvZigqbWVyZ2VyKSwNCisJCQkJIGNvbXBfaWQsDQorCQkJCSBCTE9DS19JTkZP X0lOUFVUX0lEKGJsay0+YmxvY2tfaW5mbyksDQorCQkJCSAmZDcxX21lcmdlcl9mdW5jcywNCisJ CQkJIE1HX05VTV9JTlBVVFNfSURTLCBnZXRfdmFsaWRfaW5wdXRzKGJsayksDQorCQkJCSBNR19O VU1fT1VUUFVUU19JRFMsIHJlZywNCisJCQkJICJDVSVkX01FUkdFUiIsIHBpcGVfaWQpOw0KKw0K KwlpZiAoIWMpIHsNCisJCURSTV9FUlJPUigiRmFpbGVkIHRvIGluaXRpYWxpemUgbWVyZ2VyLlxu Iik7DQorCQlyZXR1cm4gLTE7DQorCX0NCisNCisJbWVyZ2VyID0gdG9fbWVyZ2VyKGMpOw0KKw0K KwlzZXRfcmFuZ2UoJm1lcmdlci0+aHNpemVfbWVyZ2VkLCA0LCA0MDMyKTsNCisJc2V0X3Jhbmdl KCZtZXJnZXItPnZzaXplX21lcmdlZCwgNCwgNDA5Nik7DQorDQorCXJldHVybiAwOw0KK30NCisN CiBzdGF0aWMgdm9pZCBkNzFfaW1wcm9jX3VwZGF0ZShzdHJ1Y3Qga29tZWRhX2NvbXBvbmVudCAq YywNCiAJCQkgICAgICBzdHJ1Y3Qga29tZWRhX2NvbXBvbmVudF9zdGF0ZSAqc3RhdGUpDQogew0K QEAgLTk1MSw3ICsxMDIyLDEwIEBAIGludCBkNzFfcHJvYmVfYmxvY2soc3RydWN0IGQ3MV9kZXYg KmQ3MSwNCiAJCWJyZWFrOw0KIA0KIAljYXNlIEQ3MV9CTEtfVFlQRV9DVV9TUExJVFRFUjoNCisJ CWJyZWFrOw0KKw0KIAljYXNlIEQ3MV9CTEtfVFlQRV9DVV9NRVJHRVI6DQorCQllcnIgPSBkNzFf bWVyZ2VyX2luaXQoZDcxLCBibGssIHJlZyk7DQogCQlicmVhazsNCiANCiAJY2FzZSBENzFfQkxL X1RZUEVfRE9VOg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21l ZGEva29tZWRhX3BpcGVsaW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRh L2tvbWVkYV9waXBlbGluZS5jDQppbmRleCA5NjI0ODU4NmI0ZTguLmY0MzRjYjUyNmRiZSAxMDA2 NDQNCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX3BpcGVs aW5lLmMNCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX3Bp cGVsaW5lLmMNCkBAIC05Miw2ICs5Miw5IEBAIGtvbWVkYV9waXBlbGluZV9nZXRfY29tcG9uZW50 X3BvcyhzdHJ1Y3Qga29tZWRhX3BpcGVsaW5lICpwaXBlLCBpbnQgaWQpDQogCWNhc2UgS09NRURB X0NPTVBPTkVOVF9TQ0FMRVIxOg0KIAkJcG9zID0gdG9fY3BvcyhwaXBlLT5zY2FsZXJzW2lkIC0g S09NRURBX0NPTVBPTkVOVF9TQ0FMRVIwXSk7DQogCQlicmVhazsNCisJY2FzZSBLT01FREFfQ09N UE9ORU5UX01FUkdFUjoNCisJCXBvcyA9IHRvX2Nwb3MocGlwZS0+bWVyZ2VyKTsNCisJCWJyZWFr Ow0KIAljYXNlIEtPTUVEQV9DT01QT05FTlRfSVBTMDoNCiAJY2FzZSBLT01FREFfQ09NUE9ORU5U X0lQUzE6DQogCQl0ZW1wID0gbWRldi0+cGlwZWxpbmVzW2lkIC0gS09NRURBX0NPTVBPTkVOVF9J UFMwXTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tv bWVkYV9waXBlbGluZS5oIGIvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21l ZGFfcGlwZWxpbmUuaA0KaW5kZXggMmM3ZTNmOTdhNmYzLi5jOTI3MzM3MzY3OTkgMTAwNjQ0DQot LS0gYS9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9waXBlbGluZS5o DQorKysgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9waXBlbGlu ZS5oDQpAQCAtMjc2LDYgKzI3NiwxOCBAQCBzdHJ1Y3Qga29tZWRhX2NvbXBpel9zdGF0ZSB7DQog CXN0cnVjdCBrb21lZGFfY29tcGl6X2lucHV0X2NmZyBjaW5zW0tPTUVEQV9DT01QT05FTlRfTl9J TlBVVFNdOw0KIH07DQogDQorc3RydWN0IGtvbWVkYV9tZXJnZXIgew0KKwlzdHJ1Y3Qga29tZWRh X2NvbXBvbmVudCBiYXNlOw0KKwlzdHJ1Y3QgbWFsaWRwX3JhbmdlIGhzaXplX21lcmdlZDsNCisJ c3RydWN0IG1hbGlkcF9yYW5nZSB2c2l6ZV9tZXJnZWQ7DQorfTsNCisNCitzdHJ1Y3Qga29tZWRh X21lcmdlcl9zdGF0ZSB7DQorCXN0cnVjdCBrb21lZGFfY29tcG9uZW50X3N0YXRlIGJhc2U7DQor CXUxNiBoc2l6ZV9tZXJnZWQ7DQorCXUxNiB2c2l6ZV9tZXJnZWQ7DQorfTsNCisNCiBzdHJ1Y3Qg a29tZWRhX2ltcHJvYyB7DQogCXN0cnVjdCBrb21lZGFfY29tcG9uZW50IGJhc2U7DQogCXUzMiBz dXBwb3J0ZWRfY29sb3JfZm9ybWF0czsgIC8qIERSTV9SR0IvWVVWNDQ0L1lVVjQyMCovDQpAQCAt MzUzLDYgKzM2NSw4IEBAIHN0cnVjdCBrb21lZGFfcGlwZWxpbmUgew0KIAlzdHJ1Y3Qga29tZWRh X3NjYWxlciAqc2NhbGVyc1tLT01FREFfUElQRUxJTkVfTUFYX1NDQUxFUlNdOw0KIAkvKiogQGNv bXBpejogY29tcG9zaXRvciAqLw0KIAlzdHJ1Y3Qga29tZWRhX2NvbXBpeiAqY29tcGl6Ow0KKwkv KiogQG1lcmdlcjogbWVyZ2VyICovDQorCXN0cnVjdCBrb21lZGFfbWVyZ2VyICptZXJnZXI7DQog CS8qKiBAd2JfbGF5ZXI6IHdyaXRlYmFjayBsYXllciAqLw0KIAlzdHJ1Y3Qga29tZWRhX2xheWVy ICAqd2JfbGF5ZXI7DQogCS8qKiBAaW1wcm9jOiBwb3N0IGltYWdlIHByb2Nlc3NvciAqLw0KQEAg LTM5NSwxNyArNDA5LDE5IEBAIHN0cnVjdCBrb21lZGFfcGlwZWxpbmVfc3RhdGUgew0KICNkZWZp bmUgdG9fbGF5ZXIoYykJY29udGFpbmVyX29mKGMsIHN0cnVjdCBrb21lZGFfbGF5ZXIsIGJhc2Up DQogI2RlZmluZSB0b19jb21waXooYykJY29udGFpbmVyX29mKGMsIHN0cnVjdCBrb21lZGFfY29t cGl6LCBiYXNlKQ0KICNkZWZpbmUgdG9fc2NhbGVyKGMpCWNvbnRhaW5lcl9vZihjLCBzdHJ1Y3Qg a29tZWRhX3NjYWxlciwgYmFzZSkNCisjZGVmaW5lIHRvX21lcmdlcihjKQljb250YWluZXJfb2Yo Yywgc3RydWN0IGtvbWVkYV9tZXJnZXIsIGJhc2UpDQogI2RlZmluZSB0b19pbXByb2MoYykJY29u dGFpbmVyX29mKGMsIHN0cnVjdCBrb21lZGFfaW1wcm9jLCBiYXNlKQ0KICNkZWZpbmUgdG9fY3Ry bHIoYykJY29udGFpbmVyX29mKGMsIHN0cnVjdCBrb21lZGFfdGltaW5nX2N0cmxyLCBiYXNlKQ0K IA0KICNkZWZpbmUgdG9fbGF5ZXJfc3QoYykJY29udGFpbmVyX29mKGMsIHN0cnVjdCBrb21lZGFf bGF5ZXJfc3RhdGUsIGJhc2UpDQogI2RlZmluZSB0b19jb21waXpfc3QoYykJY29udGFpbmVyX29m KGMsIHN0cnVjdCBrb21lZGFfY29tcGl6X3N0YXRlLCBiYXNlKQ0KICNkZWZpbmUgdG9fc2NhbGVy X3N0KGMpIGNvbnRhaW5lcl9vZihjLCBzdHJ1Y3Qga29tZWRhX3NjYWxlcl9zdGF0ZSwgYmFzZSkN CisjZGVmaW5lIHRvX21lcmdlcl9zdChjKSBjb250YWluZXJfb2YoYywgc3RydWN0IGtvbWVkYV9t ZXJnZXJfc3RhdGUsIGJhc2UpDQogI2RlZmluZSB0b19pbXByb2Nfc3QoYykJY29udGFpbmVyX29m KGMsIHN0cnVjdCBrb21lZGFfaW1wcm9jX3N0YXRlLCBiYXNlKQ0KICNkZWZpbmUgdG9fY3RybHJf c3QoYykJY29udGFpbmVyX29mKGMsIHN0cnVjdCBrb21lZGFfdGltaW5nX2N0cmxyX3N0YXRlLCBi YXNlKQ0KIA0KICNkZWZpbmUgcHJpdl90b19jb21wX3N0KG8pIGNvbnRhaW5lcl9vZihvLCBzdHJ1 Y3Qga29tZWRhX2NvbXBvbmVudF9zdGF0ZSwgb2JqKQ0KLSNkZWZpbmUgcHJpdl90b19waXBlX3N0 KG8pICBjb250YWluZXJfb2Yobywgc3RydWN0IGtvbWVkYV9waXBlbGluZV9zdGF0ZSwgb2JqKQ0K KyNkZWZpbmUgcHJpdl90b19waXBlX3N0KG8pIGNvbnRhaW5lcl9vZihvLCBzdHJ1Y3Qga29tZWRh X3BpcGVsaW5lX3N0YXRlLCBvYmopDQogDQogLyogcGlwZWxpbmUgQVBJcyAqLw0KIHN0cnVjdCBr b21lZGFfcGlwZWxpbmUgKg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxh eS9rb21lZGEva29tZWRhX3ByaXZhdGVfb2JqLmMgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3Bs YXkva29tZWRhL2tvbWVkYV9wcml2YXRlX29iai5jDQppbmRleCBiYWM5MGFiOGZkYzkuLjBmNGUx ZjYwMWNlMCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEv a29tZWRhX3ByaXZhdGVfb2JqLmMNCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9r b21lZGEva29tZWRhX3ByaXZhdGVfb2JqLmMNCkBAIC0xNDYsNiArMTQ2LDQ5IEBAIHN0YXRpYyBp bnQga29tZWRhX2NvbXBpel9vYmpfYWRkKHN0cnVjdCBrb21lZGFfa21zX2RldiAqa21zLA0KIAly ZXR1cm4gMDsNCiB9DQogDQorc3RhdGljIHN0cnVjdCBkcm1fcHJpdmF0ZV9zdGF0ZSAqDQora29t ZWRhX21lcmdlcl9hdG9taWNfZHVwbGljYXRlX3N0YXRlKHN0cnVjdCBkcm1fcHJpdmF0ZV9vYmog Km9iaikNCit7DQorCXN0cnVjdCBrb21lZGFfbWVyZ2VyX3N0YXRlICpzdDsNCisNCisJc3QgPSBr bWVtZHVwKG9iai0+c3RhdGUsIHNpemVvZigqc3QpLCBHRlBfS0VSTkVMKTsNCisJaWYgKCFzdCkN CisJCXJldHVybiBOVUxMOw0KKw0KKwlrb21lZGFfY29tcG9uZW50X3N0YXRlX3Jlc2V0KCZzdC0+ YmFzZSk7DQorCV9fZHJtX2F0b21pY19oZWxwZXJfcHJpdmF0ZV9vYmpfZHVwbGljYXRlX3N0YXRl KG9iaiwgJnN0LT5iYXNlLm9iaik7DQorDQorCXJldHVybiAmc3QtPmJhc2Uub2JqOw0KK30NCisN CitzdGF0aWMgdm9pZCBrb21lZGFfbWVyZ2VyX2F0b21pY19kZXN0cm95X3N0YXRlKHN0cnVjdCBk cm1fcHJpdmF0ZV9vYmogKm9iaiwNCisJCQkJCSAgICAgICBzdHJ1Y3QgZHJtX3ByaXZhdGVfc3Rh dGUgKnN0YXRlKQ0KK3sNCisJa2ZyZWUodG9fbWVyZ2VyX3N0KHByaXZfdG9fY29tcF9zdChzdGF0 ZSkpKTsNCit9DQorDQorc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fcHJpdmF0ZV9zdGF0ZV9mdW5j cyBrb21lZGFfbWVyZ2VyX29ial9mdW5jcyA9IHsNCisJLmF0b21pY19kdXBsaWNhdGVfc3RhdGUJ PSBrb21lZGFfbWVyZ2VyX2F0b21pY19kdXBsaWNhdGVfc3RhdGUsDQorCS5hdG9taWNfZGVzdHJv eV9zdGF0ZQk9IGtvbWVkYV9tZXJnZXJfYXRvbWljX2Rlc3Ryb3lfc3RhdGUsDQorfTsNCisNCitz dGF0aWMgaW50IGtvbWVkYV9tZXJnZXJfb2JqX2FkZChzdHJ1Y3Qga29tZWRhX2ttc19kZXYgKmtt cywNCisJCQkJIHN0cnVjdCBrb21lZGFfbWVyZ2VyICptZXJnZXIpDQorew0KKwlzdHJ1Y3Qga29t ZWRhX21lcmdlcl9zdGF0ZSAqc3Q7DQorDQorCXN0ID0ga3phbGxvYyhzaXplb2YoKnN0KSwgR0ZQ X0tFUk5FTCk7DQorCWlmICghc3QpDQorCQlyZXR1cm4gLUVOT01FTTsNCisNCisJc3QtPmJhc2Uu Y29tcG9uZW50ID0gJm1lcmdlci0+YmFzZTsNCisJZHJtX2F0b21pY19wcml2YXRlX29ial9pbml0 KCZrbXMtPmJhc2UsDQorCQkJCSAgICAmbWVyZ2VyLT5iYXNlLm9iaiwgJnN0LT5iYXNlLm9iaiwN CisJCQkJICAgICZrb21lZGFfbWVyZ2VyX29ial9mdW5jcyk7DQorDQorCXJldHVybiAwOw0KK30N CisNCiBzdGF0aWMgc3RydWN0IGRybV9wcml2YXRlX3N0YXRlICoNCiBrb21lZGFfaW1wcm9jX2F0 b21pY19kdXBsaWNhdGVfc3RhdGUoc3RydWN0IGRybV9wcml2YXRlX29iaiAqb2JqKQ0KIHsNCkBA IC0zMTEsNiArMzU0LDEyIEBAIGludCBrb21lZGFfa21zX2FkZF9wcml2YXRlX29ianMoc3RydWN0 IGtvbWVkYV9rbXNfZGV2ICprbXMsDQogCQlpZiAoZXJyKQ0KIAkJCXJldHVybiBlcnI7DQogDQor CQlpZiAocGlwZS0+bWVyZ2VyKSB7DQorCQkJZXJyID0ga29tZWRhX21lcmdlcl9vYmpfYWRkKGtt cywgcGlwZS0+bWVyZ2VyKTsNCisJCQlpZiAoZXJyKQ0KKwkJCQlyZXR1cm4gZXJyOw0KKwkJfQ0K Kw0KIAkJZXJyID0ga29tZWRhX2ltcHJvY19vYmpfYWRkKGttcywgcGlwZS0+aW1wcm9jKTsNCiAJ CWlmIChlcnIpDQogCQkJcmV0dXJuIGVycjsNCi0tIA0KMi4xNy4xDQoNCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QK ZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==