From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-11.4 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,MIME_BASE64_TEXT,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, UNPARSEABLE_RELAY,URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0D61DC433E2 for ; Fri, 4 Sep 2020 14:25:13 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id C1542206B7 for ; Fri, 4 Sep 2020 14:25:12 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="cEwdrTN5" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730767AbgIDOZK (ORCPT ); Fri, 4 Sep 2020 10:25:10 -0400 Received: from mailgw02.mediatek.com ([210.61.82.184]:4237 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1730796AbgIDOW2 (ORCPT ); Fri, 4 Sep 2020 10:22:28 -0400 X-UUID: 1d5a450f30cb41958d0fb8027a1b4d1f-20200904 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From; bh=MJP8PGom9akaEeuvr9oNH5y9hrbi5PMTHy6BygYgAYU=; b=cEwdrTN50zmgUNiN2GT1r7SL48b744852KybmVajYAhNayLFnL0DHVBg2b5eikMqmPNgc0mk5Il++1LKz/BkSIGbm1JldjyndjUcwwNZePSQQEzdg1DW3LQ17pagE68OpzBhArtiOhzsmPF+V3nRLveRCDu7JarfLcNJ1EYvMfE=; X-UUID: 1d5a450f30cb41958d0fb8027a1b4d1f-20200904 Received: from mtkcas10.mediatek.inc [(172.21.101.39)] by mailgw02.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.14 Build 0819 with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 1517206404; Fri, 04 Sep 2020 22:22:24 +0800 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by mtkmbs07n2.mediatek.inc (172.21.101.141) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Fri, 4 Sep 2020 22:22:20 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by MTKCAS06.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Fri, 4 Sep 2020 22:22:21 +0800 From: Landen Chao To: Andrew Lunn , Vivien Didelot , Florian Fainelli , "David S . Miller" , Jakub Kicinski , Rob Herring , Matthias Brugger , Sean Wang , Philipp Zabel , Russell King CC: , , , , , , , , Landen Chao Subject: [PATCH net-next v3 2/6] net: dsa: mt7530: Extend device data ready for adding a new hardware Date: Fri, 4 Sep 2020 22:21:57 +0800 Message-ID: <3cf9909d7b06346b8aa339c346e19585cccf74c8.1599228079.git.landen.chao@mediatek.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain X-MTK: N Content-Transfer-Encoding: base64 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org QWRkIGEgc3RydWN0dXJlIGhvbGRpbmcgcmVxdWlyZWQgb3BlcmF0aW9ucyBmb3IgZWFjaCBkZXZp Y2Ugc3VjaCBhcyBkZXZpY2UNCmluaXRpYWxpemF0aW9uLCBQSFkgcG9ydCByZWFkIG9yIHdyaXRl LCBhIGNoZWNrZXIgd2hldGhlciBQSFkgaW50ZXJmYWNlIGlzDQpzdXBwb3J0ZWQgb24gYSBjZXJ0 YWluIHBvcnQsIE1BQyBwb3J0IHNldHVwIGZvciBlaXRoZXIgYnVzIHBhZCBvciBhDQpzcGVjaWZp YyBQSFkgaW50ZXJmYWNlLg0KDQpUaGUgcGF0Y2ggaXMgZG9uZSBmb3IgcmVhZHkgYWRkaW5nIGEg bmV3IGhhcmR3YXJlIE1UNzUzMSwgYW5kIGtlZXAgdGhlDQpzYW1lIHNldHVwIGxvZ2ljIG9mIGV4 aXN0aW5nIGhhcmR3YXJlLg0KDQpTaWduZWQtb2ZmLWJ5OiBMYW5kZW4gQ2hhbyA8bGFuZGVuLmNo YW9AbWVkaWF0ZWsuY29tPg0KU2lnbmVkLW9mZi1ieTogU2VhbiBXYW5nIDxzZWFuLndhbmdAbWVk aWF0ZWsuY29tPg0KLS0tDQogZHJpdmVycy9uZXQvZHNhL210NzUzMC5jIHwgMjcyICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLQ0KIGRyaXZlcnMvbmV0L2RzYS9tdDc1MzAu aCB8ICAzNyArKysrKy0NCiAyIGZpbGVzIGNoYW5nZWQsIDI0MCBpbnNlcnRpb25zKCspLCA2OSBk ZWxldGlvbnMoLSkNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYyBiL2Ry aXZlcnMvbmV0L2RzYS9tdDc1MzAuYw0KaW5kZXggMjM4NDE3ZGIyNmY5Li4xNWM5MzRmMTBkZGQg MTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMNCisrKyBiL2RyaXZlcnMvbmV0 L2RzYS9tdDc1MzAuYw0KQEAgLTM3Miw4ICszNzIsOSBAQCBtdDc1MzBfZmRiX3dyaXRlKHN0cnVj dCBtdDc1MzBfcHJpdiAqcHJpdiwgdTE2IHZpZCwNCiAJCW10NzUzMF93cml0ZShwcml2LCBNVDc1 MzBfQVRBMSArIChpICogNCksIHJlZ1tpXSk7DQogfQ0KIA0KKy8qIFNldHVwIFRYIGNpcmN1aXQg aW5jbHVkaW5nIHJlbGV2YW50IFBBRCBhbmQgZHJpdmluZyAqLw0KIHN0YXRpYyBpbnQNCi1tdDc1 MzBfcGFkX2Nsa19zZXR1cChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBtb2RlKQ0KK210NzUz MF9wYWRfY2xrX3NldHVwKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgcGh5X2ludGVyZmFjZV90IGlu dGVyZmFjZSkNCiB7DQogCXN0cnVjdCBtdDc1MzBfcHJpdiAqcHJpdiA9IGRzLT5wcml2Ow0KIAl1 MzIgbmNwbzEsIHNzY19kZWx0YSwgdHJnaW50LCBpLCB4dGFsOw0KQEAgLTM4Nyw3ICszODgsNyBA QCBtdDc1MzBfcGFkX2Nsa19zZXR1cChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBtb2RlKQ0K IAkJcmV0dXJuIC1FSU5WQUw7DQogCX0NCiANCi0Jc3dpdGNoIChtb2RlKSB7DQorCXN3aXRjaCAo aW50ZXJmYWNlKSB7DQogCWNhc2UgUEhZX0lOVEVSRkFDRV9NT0RFX1JHTUlJOg0KIAkJdHJnaW50 ID0gMDsNCiAJCS8qIFBMTCBmcmVxdWVuY3k6IDEyNU1IeiAqLw0KQEAgLTQwOSw3ICs0MTAsOCBA QCBtdDc1MzBfcGFkX2Nsa19zZXR1cChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBtb2RlKQ0K IAkJfQ0KIAkJYnJlYWs7DQogCWRlZmF1bHQ6DQotCQlkZXZfZXJyKHByaXYtPmRldiwgInhNSUkg bW9kZSAlZCBub3Qgc3VwcG9ydGVkXG4iLCBtb2RlKTsNCisJCWRldl9lcnIocHJpdi0+ZGV2LCAi eE1JSSBpbnRlcmZhY2UgJWQgbm90IHN1cHBvcnRlZFxuIiwNCisJCQlpbnRlcmZhY2UpOw0KIAkJ cmV0dXJuIC1FSU5WQUw7DQogCX0NCiANCkBAIC0xMzQ5LDEyICsxMzUxLDExIEBAIG10NzUzMF9z ZXR1cChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpDQogCXJldHVybiAwOw0KIH0NCiANCi1zdGF0aWMg dm9pZCBtdDc1MzBfcGh5bGlua19tYWNfY29uZmlnKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50 IHBvcnQsDQotCQkJCSAgICAgIHVuc2lnbmVkIGludCBtb2RlLA0KLQkJCQkgICAgICBjb25zdCBz dHJ1Y3QgcGh5bGlua19saW5rX3N0YXRlICpzdGF0ZSkNCitzdGF0aWMgYm9vbA0KK210NzUzMF9w aHlfbW9kZV9zdXBwb3J0ZWQoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCwNCisJCQkg IGNvbnN0IHN0cnVjdCBwaHlsaW5rX2xpbmtfc3RhdGUgKnN0YXRlKQ0KIHsNCiAJc3RydWN0IG10 NzUzMF9wcml2ICpwcml2ID0gZHMtPnByaXY7DQotCXUzMiBtY3JfY3VyLCBtY3JfbmV3Ow0KIA0K IAlzd2l0Y2ggKHBvcnQpIHsNCiAJY2FzZSAwOiAvKiBJbnRlcm5hbCBwaHkgKi8NCkBAIC0xMzYz LDMzICsxMzY0LDExNCBAQCBzdGF0aWMgdm9pZCBtdDc1MzBfcGh5bGlua19tYWNfY29uZmlnKHN0 cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsDQogCWNhc2UgMzoNCiAJY2FzZSA0Og0KIAkJ aWYgKHN0YXRlLT5pbnRlcmZhY2UgIT0gUEhZX0lOVEVSRkFDRV9NT0RFX0dNSUkpDQotCQkJcmV0 dXJuOw0KKwkJCWdvdG8gdW5zdXBwb3J0ZWQ7DQogCQlicmVhazsNCiAJY2FzZSA1OiAvKiAybmQg Y3B1IHBvcnQgd2l0aCBwaHkgb2YgcG9ydCAwIG9yIDQgLyBleHRlcm5hbCBwaHkgKi8NCi0JCWlm IChwcml2LT5wNV9pbnRlcmZhY2UgPT0gc3RhdGUtPmludGVyZmFjZSkNCi0JCQlicmVhazsNCiAJ CWlmICghcGh5X2ludGVyZmFjZV9tb2RlX2lzX3JnbWlpKHN0YXRlLT5pbnRlcmZhY2UpICYmDQog CQkgICAgc3RhdGUtPmludGVyZmFjZSAhPSBQSFlfSU5URVJGQUNFX01PREVfTUlJICYmDQogCQkg ICAgc3RhdGUtPmludGVyZmFjZSAhPSBQSFlfSU5URVJGQUNFX01PREVfR01JSSkNCi0JCQlyZXR1 cm47DQorCQkJZ290byB1bnN1cHBvcnRlZDsNCisJCWJyZWFrOw0KKwljYXNlIDY6IC8qIDFzdCBj cHUgcG9ydCAqLw0KKwkJaWYgKHN0YXRlLT5pbnRlcmZhY2UgIT0gUEhZX0lOVEVSRkFDRV9NT0RF X1JHTUlJICYmDQorCQkgICAgc3RhdGUtPmludGVyZmFjZSAhPSBQSFlfSU5URVJGQUNFX01PREVf VFJHTUlJKQ0KKwkJCWdvdG8gdW5zdXBwb3J0ZWQ7DQorCQlicmVhazsNCisJZGVmYXVsdDoNCisJ CWRldl9lcnIocHJpdi0+ZGV2LCAiJXM6IHVuc3VwcG9ydGVkIHBvcnQ6ICVpXG4iLCBfX2Z1bmNf XywNCisJCQlwb3J0KTsNCisJCWdvdG8gdW5zdXBwb3J0ZWQ7DQorCX0NCisNCisJcmV0dXJuIHRy dWU7DQorDQordW5zdXBwb3J0ZWQ6DQorCXJldHVybiBmYWxzZTsNCit9DQorDQorc3RhdGljIGJv b2wNCittdDc1M3hfcGh5X21vZGVfc3VwcG9ydGVkKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50 IHBvcnQsDQorCQkJICBjb25zdCBzdHJ1Y3QgcGh5bGlua19saW5rX3N0YXRlICpzdGF0ZSkNCit7 DQorCXN0cnVjdCBtdDc1MzBfcHJpdiAqcHJpdiA9IGRzLT5wcml2Ow0KKw0KKwlyZXR1cm4gcHJp di0+aW5mby0+cGh5X21vZGVfc3VwcG9ydGVkKGRzLCBwb3J0LCBzdGF0ZSk7DQorfQ0KKw0KK3N0 YXRpYyBpbnQNCittdDc1M3hfcGFkX3NldHVwKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgY29uc3Qg c3RydWN0IHBoeWxpbmtfbGlua19zdGF0ZSAqc3RhdGUpDQorew0KKwlzdHJ1Y3QgbXQ3NTMwX3By aXYgKnByaXYgPSBkcy0+cHJpdjsNCisNCisJcmV0dXJuIHByaXYtPmluZm8tPnBhZF9zZXR1cChk cywgc3RhdGUtPmludGVyZmFjZSk7DQorfQ0KKw0KK3N0YXRpYyBpbnQNCittdDc1MzBfbWFjX2Nv bmZpZyhzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LCB1bnNpZ25lZCBpbnQgbW9kZSwN CisJCSAgcGh5X2ludGVyZmFjZV90IGludGVyZmFjZSkNCit7DQorCXN0cnVjdCBtdDc1MzBfcHJp diAqcHJpdiA9IGRzLT5wcml2Ow0KKw0KKwkvKiBPbmx5IG5lZWQgdG8gc2V0dXAgcG9ydDUuICov DQorCWlmIChwb3J0ICE9IDUpDQorCQlyZXR1cm4gMDsNCisNCisJbXQ3NTMwX3NldHVwX3BvcnQ1 KHByaXYtPmRzLCBpbnRlcmZhY2UpOw0KKw0KKwlyZXR1cm4gMDsNCit9DQorDQorc3RhdGljIGlu dA0KK210NzUzeF9tYWNfY29uZmlnKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsIHVu c2lnbmVkIGludCBtb2RlLA0KKwkJICBjb25zdCBzdHJ1Y3QgcGh5bGlua19saW5rX3N0YXRlICpz dGF0ZSkNCit7DQorCXN0cnVjdCBtdDc1MzBfcHJpdiAqcHJpdiA9IGRzLT5wcml2Ow0KKw0KKwly ZXR1cm4gcHJpdi0+aW5mby0+bWFjX3BvcnRfY29uZmlnKGRzLCBwb3J0LCBtb2RlLCBzdGF0ZS0+ aW50ZXJmYWNlKTsNCit9DQorDQorc3RhdGljIHZvaWQNCittdDc1M3hfcGh5bGlua19tYWNfY29u ZmlnKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsIHVuc2lnbmVkIGludCBtb2RlLA0K KwkJCSAgY29uc3Qgc3RydWN0IHBoeWxpbmtfbGlua19zdGF0ZSAqc3RhdGUpDQorew0KKwlzdHJ1 Y3QgbXQ3NTMwX3ByaXYgKnByaXYgPSBkcy0+cHJpdjsNCisJdTMyIG1jcl9jdXIsIG1jcl9uZXc7 DQorDQorCWlmICghbXQ3NTN4X3BoeV9tb2RlX3N1cHBvcnRlZChkcywgcG9ydCwgc3RhdGUpKQ0K KwkJZ290byB1bnN1cHBvcnRlZDsNCisNCisJc3dpdGNoIChwb3J0KSB7DQorCWNhc2UgMDogLyog SW50ZXJuYWwgcGh5ICovDQorCWNhc2UgMToNCisJY2FzZSAyOg0KKwljYXNlIDM6DQorCWNhc2Ug NDoNCisJCWlmIChzdGF0ZS0+aW50ZXJmYWNlICE9IFBIWV9JTlRFUkZBQ0VfTU9ERV9HTUlJKQ0K KwkJCWdvdG8gdW5zdXBwb3J0ZWQ7DQorCQlicmVhazsNCisJY2FzZSA1OiAvKiAybmQgY3B1IHBv cnQgd2l0aCBwaHkgb2YgcG9ydCAwIG9yIDQgLyBleHRlcm5hbCBwaHkgKi8NCisJCWlmIChwcml2 LT5wNV9pbnRlcmZhY2UgPT0gc3RhdGUtPmludGVyZmFjZSkNCisJCQlicmVhazsNCisNCisJCWlm IChtdDc1M3hfbWFjX2NvbmZpZyhkcywgcG9ydCwgbW9kZSwgc3RhdGUpIDwgMCkNCisJCQlnb3Rv IHVuc3VwcG9ydGVkOw0KIA0KLQkJbXQ3NTMwX3NldHVwX3BvcnQ1KGRzLCBzdGF0ZS0+aW50ZXJm YWNlKTsNCiAJCWJyZWFrOw0KIAljYXNlIDY6IC8qIDFzdCBjcHUgcG9ydCAqLw0KIAkJaWYgKHBy aXYtPnA2X2ludGVyZmFjZSA9PSBzdGF0ZS0+aW50ZXJmYWNlKQ0KIAkJCWJyZWFrOw0KIA0KLQkJ aWYgKHN0YXRlLT5pbnRlcmZhY2UgIT0gUEhZX0lOVEVSRkFDRV9NT0RFX1JHTUlJICYmDQotCQkg ICAgc3RhdGUtPmludGVyZmFjZSAhPSBQSFlfSU5URVJGQUNFX01PREVfVFJHTUlJKQ0KLQkJCXJl dHVybjsNCisJCW10NzUzeF9wYWRfc2V0dXAoZHMsIHN0YXRlKTsNCiANCi0JCS8qIFNldHVwIFRY IGNpcmN1aXQgaW5jbHVpbmcgcmVsZXZhbnQgUEFEIGFuZCBkcml2aW5nICovDQotCQltdDc1MzBf cGFkX2Nsa19zZXR1cChkcywgc3RhdGUtPmludGVyZmFjZSk7DQorCQlpZiAobXQ3NTN4X21hY19j b25maWcoZHMsIHBvcnQsIG1vZGUsIHN0YXRlKSA8IDApDQorCQkJZ290byB1bnN1cHBvcnRlZDsN CiANCiAJCXByaXYtPnA2X2ludGVyZmFjZSA9IHN0YXRlLT5pbnRlcmZhY2U7DQogCQlicmVhazsN CiAJZGVmYXVsdDoNCi0JCWRldl9lcnIoZHMtPmRldiwgIiVzOiB1bnN1cHBvcnRlZCBwb3J0OiAl aVxuIiwgX19mdW5jX18sIHBvcnQpOw0KK3Vuc3VwcG9ydGVkOg0KKwkJZGV2X2Vycihkcy0+ZGV2 LCAiJXM6IHVuc3VwcG9ydGVkICVzIHBvcnQ6ICVpXG4iLA0KKwkJCV9fZnVuY19fLCBwaHlfbW9k ZXMoc3RhdGUtPmludGVyZmFjZSksIHBvcnQpOw0KIAkJcmV0dXJuOw0KIAl9DQogDQpAQCAtMTQ1 Myw2MSArMTUzNSw0NCBAQCBzdGF0aWMgdm9pZCBtdDc1MzBfcGh5bGlua19tYWNfbGlua191cChz dHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LA0KIAltdDc1MzBfc2V0KHByaXYsIE1UNzUz MF9QTUNSX1AocG9ydCksIG1jcik7DQogfQ0KIA0KLXN0YXRpYyB2b2lkIG10NzUzMF9waHlsaW5r X3ZhbGlkYXRlKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsDQotCQkJCSAgICB1bnNp Z25lZCBsb25nICpzdXBwb3J0ZWQsDQotCQkJCSAgICBzdHJ1Y3QgcGh5bGlua19saW5rX3N0YXRl ICpzdGF0ZSkNCitzdGF0aWMgdm9pZA0KK210NzUzMF9tYWNfcG9ydF92YWxpZGF0ZShzdHJ1Y3Qg ZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LA0KKwkJCSB1bnNpZ25lZCBsb25nICpzdXBwb3J0ZWQp DQogew0KKwlpZiAocG9ydCA9PSA1KQ0KKwkJcGh5bGlua19zZXQoc3VwcG9ydGVkLCAxMDAwYmFz ZVhfRnVsbCk7DQorfQ0KKw0KK3N0YXRpYyB2b2lkDQorbXQ3NTN4X3BoeWxpbmtfdmFsaWRhdGUo c3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCwNCisJCQl1bnNpZ25lZCBsb25nICpzdXBw b3J0ZWQsDQorCQkJc3RydWN0IHBoeWxpbmtfbGlua19zdGF0ZSAqc3RhdGUpDQorew0KKwlzdHJ1 Y3QgbXQ3NTMwX3ByaXYgKnByaXYgPSBkcy0+cHJpdjsNCiAJX19FVEhUT09MX0RFQ0xBUkVfTElO S19NT0RFX01BU0sobWFzaykgPSB7IDAsIH07DQogDQotCXN3aXRjaCAocG9ydCkgew0KLQljYXNl IDA6IC8qIEludGVybmFsIHBoeSAqLw0KLQljYXNlIDE6DQotCWNhc2UgMjoNCi0JY2FzZSAzOg0K LQljYXNlIDQ6DQotCQlpZiAoc3RhdGUtPmludGVyZmFjZSAhPSBQSFlfSU5URVJGQUNFX01PREVf TkEgJiYNCi0JCSAgICBzdGF0ZS0+aW50ZXJmYWNlICE9IFBIWV9JTlRFUkZBQ0VfTU9ERV9HTUlJ KQ0KLQkJCWdvdG8gdW5zdXBwb3J0ZWQ7DQotCQlicmVhazsNCi0JY2FzZSA1OiAvKiAybmQgY3B1 IHBvcnQgd2l0aCBwaHkgb2YgcG9ydCAwIG9yIDQgLyBleHRlcm5hbCBwaHkgKi8NCi0JCWlmIChz dGF0ZS0+aW50ZXJmYWNlICE9IFBIWV9JTlRFUkZBQ0VfTU9ERV9OQSAmJg0KLQkJICAgICFwaHlf aW50ZXJmYWNlX21vZGVfaXNfcmdtaWkoc3RhdGUtPmludGVyZmFjZSkgJiYNCi0JCSAgICBzdGF0 ZS0+aW50ZXJmYWNlICE9IFBIWV9JTlRFUkZBQ0VfTU9ERV9NSUkgJiYNCi0JCSAgICBzdGF0ZS0+ aW50ZXJmYWNlICE9IFBIWV9JTlRFUkZBQ0VfTU9ERV9HTUlJKQ0KLQkJCWdvdG8gdW5zdXBwb3J0 ZWQ7DQotCQlicmVhazsNCi0JY2FzZSA2OiAvKiAxc3QgY3B1IHBvcnQgKi8NCi0JCWlmIChzdGF0 ZS0+aW50ZXJmYWNlICE9IFBIWV9JTlRFUkZBQ0VfTU9ERV9OQSAmJg0KLQkJICAgIHN0YXRlLT5p bnRlcmZhY2UgIT0gUEhZX0lOVEVSRkFDRV9NT0RFX1JHTUlJICYmDQotCQkgICAgc3RhdGUtPmlu dGVyZmFjZSAhPSBQSFlfSU5URVJGQUNFX01PREVfVFJHTUlJKQ0KLQkJCWdvdG8gdW5zdXBwb3J0 ZWQ7DQotCQlicmVhazsNCi0JZGVmYXVsdDoNCi0JCWRldl9lcnIoZHMtPmRldiwgIiVzOiB1bnN1 cHBvcnRlZCBwb3J0OiAlaVxuIiwgX19mdW5jX18sIHBvcnQpOw0KLXVuc3VwcG9ydGVkOg0KKwlp ZiAoc3RhdGUtPmludGVyZmFjZSAhPSBQSFlfSU5URVJGQUNFX01PREVfTkEgJiYNCisJICAgICFt dDc1M3hfcGh5X21vZGVfc3VwcG9ydGVkKGRzLCBwb3J0LCBzdGF0ZSkpIHsNCiAJCWxpbmttb2Rl X3plcm8oc3VwcG9ydGVkKTsNCiAJCXJldHVybjsNCiAJfQ0KIA0KIAlwaHlsaW5rX3NldF9wb3J0 X21vZGVzKG1hc2spOw0KLQlwaHlsaW5rX3NldChtYXNrLCBBdXRvbmVnKTsNCiANCi0JaWYgKHN0 YXRlLT5pbnRlcmZhY2UgPT0gUEhZX0lOVEVSRkFDRV9NT0RFX1RSR01JSSkgew0KLQkJcGh5bGlu a19zZXQobWFzaywgMTAwMGJhc2VUX0Z1bGwpOw0KLQl9IGVsc2Ugew0KKwlpZiAoc3RhdGUtPmlu dGVyZmFjZSAhPSBQSFlfSU5URVJGQUNFX01PREVfVFJHTUlJKSB7DQogCQlwaHlsaW5rX3NldCht YXNrLCAxMGJhc2VUX0hhbGYpOw0KIAkJcGh5bGlua19zZXQobWFzaywgMTBiYXNlVF9GdWxsKTsN CiAJCXBoeWxpbmtfc2V0KG1hc2ssIDEwMGJhc2VUX0hhbGYpOw0KIAkJcGh5bGlua19zZXQobWFz aywgMTAwYmFzZVRfRnVsbCk7DQotDQotCQlpZiAoc3RhdGUtPmludGVyZmFjZSAhPSBQSFlfSU5U RVJGQUNFX01PREVfTUlJKSB7DQotCQkJLyogVGhpcyBzd2l0Y2ggb25seSBzdXBwb3J0cyAxRyBm dWxsLWR1cGxleC4gKi8NCi0JCQlwaHlsaW5rX3NldChtYXNrLCAxMDAwYmFzZVRfRnVsbCk7DQot CQkJaWYgKHBvcnQgPT0gNSkNCi0JCQkJcGh5bGlua19zZXQobWFzaywgMTAwMGJhc2VYX0Z1bGwp Ow0KLQkJfQ0KKwkJcGh5bGlua19zZXQobWFzaywgQXV0b25lZyk7DQogCX0NCiANCisJLyogVGhp cyBzd2l0Y2ggb25seSBzdXBwb3J0cyAxRyBmdWxsLWR1cGxleC4gKi8NCisJaWYgKHN0YXRlLT5p bnRlcmZhY2UgIT0gUEhZX0lOVEVSRkFDRV9NT0RFX01JSSkNCisJCXBoeWxpbmtfc2V0KG1hc2ss IDEwMDBiYXNlVF9GdWxsKTsNCisNCisJcHJpdi0+aW5mby0+bWFjX3BvcnRfdmFsaWRhdGUoZHMs IHBvcnQsIG1hc2spOw0KKw0KIAlwaHlsaW5rX3NldChtYXNrLCBQYXVzZSk7DQogCXBoeWxpbmtf c2V0KG1hc2ssIEFzeW1fUGF1c2UpOw0KIA0KQEAgLTE1NTUsMTIgKzE2MjAsNDUgQEAgbXQ3NTMw X3BoeWxpbmtfbWFjX2xpbmtfc3RhdGUoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCwN CiAJcmV0dXJuIDE7DQogfQ0KIA0KK3N0YXRpYyBpbnQNCittdDc1M3hfcGh5bGlua19tYWNfbGlu a19zdGF0ZShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LA0KKwkJCSAgICAgIHN0cnVj dCBwaHlsaW5rX2xpbmtfc3RhdGUgKnN0YXRlKQ0KK3sNCisJc3RydWN0IG10NzUzMF9wcml2ICpw cml2ID0gZHMtPnByaXY7DQorDQorCXJldHVybiBwcml2LT5pbmZvLT5tYWNfcG9ydF9nZXRfc3Rh dGUoZHMsIHBvcnQsIHN0YXRlKTsNCit9DQorDQorc3RhdGljIGludA0KK210NzUzeF9zZXR1cChz dHJ1Y3QgZHNhX3N3aXRjaCAqZHMpDQorew0KKwlzdHJ1Y3QgbXQ3NTMwX3ByaXYgKnByaXYgPSBk cy0+cHJpdjsNCisNCisJcmV0dXJuIHByaXYtPmluZm8tPnN3X3NldHVwKGRzKTsNCit9DQorDQor c3RhdGljIGludA0KK210NzUzeF9waHlfcmVhZChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBw b3J0LCBpbnQgcmVnbnVtKQ0KK3sNCisJc3RydWN0IG10NzUzMF9wcml2ICpwcml2ID0gZHMtPnBy aXY7DQorDQorCXJldHVybiBwcml2LT5pbmZvLT5waHlfcmVhZChkcywgcG9ydCwgcmVnbnVtKTsN Cit9DQorDQorc3RhdGljIGludA0KK210NzUzeF9waHlfd3JpdGUoc3RydWN0IGRzYV9zd2l0Y2gg KmRzLCBpbnQgcG9ydCwgaW50IHJlZ251bSwgdTE2IHZhbCkNCit7DQorCXN0cnVjdCBtdDc1MzBf cHJpdiAqcHJpdiA9IGRzLT5wcml2Ow0KKw0KKwlyZXR1cm4gcHJpdi0+aW5mby0+cGh5X3dyaXRl KGRzLCBwb3J0LCByZWdudW0sIHZhbCk7DQorfQ0KKw0KIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHNh X3N3aXRjaF9vcHMgbXQ3NTMwX3N3aXRjaF9vcHMgPSB7DQogCS5nZXRfdGFnX3Byb3RvY29sCT0g bXRrX2dldF90YWdfcHJvdG9jb2wsDQotCS5zZXR1cAkJCT0gbXQ3NTMwX3NldHVwLA0KKwkuc2V0 dXAJCQk9IG10NzUzeF9zZXR1cCwNCiAJLmdldF9zdHJpbmdzCQk9IG10NzUzMF9nZXRfc3RyaW5n cywNCi0JLnBoeV9yZWFkCQk9IG10NzUzMF9waHlfcmVhZCwNCi0JLnBoeV93cml0ZQkJPSBtdDc1 MzBfcGh5X3dyaXRlLA0KKwkucGh5X3JlYWQJCT0gbXQ3NTN4X3BoeV9yZWFkLA0KKwkucGh5X3dy aXRlCQk9IG10NzUzeF9waHlfd3JpdGUsDQogCS5nZXRfZXRodG9vbF9zdGF0cwk9IG10NzUzMF9n ZXRfZXRodG9vbF9zdGF0cywNCiAJLmdldF9zc2V0X2NvdW50CQk9IG10NzUzMF9nZXRfc3NldF9j b3VudCwNCiAJLnBvcnRfZW5hYmxlCQk9IG10NzUzMF9wb3J0X2VuYWJsZSwNCkBAIC0xNTc3LDE2 ICsxNjc1LDQxIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHNhX3N3aXRjaF9vcHMgbXQ3NTMwX3N3 aXRjaF9vcHMgPSB7DQogCS5wb3J0X3ZsYW5fZGVsCQk9IG10NzUzMF9wb3J0X3ZsYW5fZGVsLA0K IAkucG9ydF9taXJyb3JfYWRkCT0gbXQ3NTMwX3BvcnRfbWlycm9yX2FkZCwNCiAJLnBvcnRfbWly cm9yX2RlbAk9IG10NzUzMF9wb3J0X21pcnJvcl9kZWwsDQotCS5waHlsaW5rX3ZhbGlkYXRlCT0g bXQ3NTMwX3BoeWxpbmtfdmFsaWRhdGUsDQotCS5waHlsaW5rX21hY19saW5rX3N0YXRlID0gbXQ3 NTMwX3BoeWxpbmtfbWFjX2xpbmtfc3RhdGUsDQotCS5waHlsaW5rX21hY19jb25maWcJPSBtdDc1 MzBfcGh5bGlua19tYWNfY29uZmlnLA0KKwkucGh5bGlua192YWxpZGF0ZQk9IG10NzUzeF9waHls aW5rX3ZhbGlkYXRlLA0KKwkucGh5bGlua19tYWNfbGlua19zdGF0ZQk9IG10NzUzeF9waHlsaW5r X21hY19saW5rX3N0YXRlLA0KKwkucGh5bGlua19tYWNfY29uZmlnCT0gbXQ3NTN4X3BoeWxpbmtf bWFjX2NvbmZpZywNCiAJLnBoeWxpbmtfbWFjX2xpbmtfZG93bgk9IG10NzUzMF9waHlsaW5rX21h Y19saW5rX2Rvd24sDQogCS5waHlsaW5rX21hY19saW5rX3VwCT0gbXQ3NTMwX3BoeWxpbmtfbWFj X2xpbmtfdXAsDQogfTsNCiANCitzdGF0aWMgY29uc3Qgc3RydWN0IG10NzUzeF9pbmZvIG10NzUz eF90YWJsZVtdID0gew0KKwlbSURfTVQ3NjIxXSA9IHsNCisJCS5pZCA9IElEX01UNzYyMSwNCisJ CS5zd19zZXR1cCA9IG10NzUzMF9zZXR1cCwNCisJCS5waHlfcmVhZCA9IG10NzUzMF9waHlfcmVh ZCwNCisJCS5waHlfd3JpdGUgPSBtdDc1MzBfcGh5X3dyaXRlLA0KKwkJLnBhZF9zZXR1cCA9IG10 NzUzMF9wYWRfY2xrX3NldHVwLA0KKwkJLnBoeV9tb2RlX3N1cHBvcnRlZCA9IG10NzUzMF9waHlf bW9kZV9zdXBwb3J0ZWQsDQorCQkubWFjX3BvcnRfdmFsaWRhdGUgPSBtdDc1MzBfbWFjX3BvcnRf dmFsaWRhdGUsDQorCQkubWFjX3BvcnRfZ2V0X3N0YXRlID0gbXQ3NTMwX3BoeWxpbmtfbWFjX2xp bmtfc3RhdGUsDQorCQkubWFjX3BvcnRfY29uZmlnID0gbXQ3NTMwX21hY19jb25maWcsDQorCX0s DQorCVtJRF9NVDc1MzBdID0gew0KKwkJLmlkID0gSURfTVQ3NTMwLA0KKwkJLnN3X3NldHVwID0g bXQ3NTMwX3NldHVwLA0KKwkJLnBoeV9yZWFkID0gbXQ3NTMwX3BoeV9yZWFkLA0KKwkJLnBoeV93 cml0ZSA9IG10NzUzMF9waHlfd3JpdGUsDQorCQkucGFkX3NldHVwID0gbXQ3NTMwX3BhZF9jbGtf c2V0dXAsDQorCQkucGh5X21vZGVfc3VwcG9ydGVkID0gbXQ3NTMwX3BoeV9tb2RlX3N1cHBvcnRl ZCwNCisJCS5tYWNfcG9ydF92YWxpZGF0ZSA9IG10NzUzMF9tYWNfcG9ydF92YWxpZGF0ZSwNCisJ CS5tYWNfcG9ydF9nZXRfc3RhdGUgPSBtdDc1MzBfcGh5bGlua19tYWNfbGlua19zdGF0ZSwNCisJ CS5tYWNfcG9ydF9jb25maWcgPSBtdDc1MzBfbWFjX2NvbmZpZywNCisJfSwNCit9Ow0KKw0KIHN0 YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG10NzUzMF9vZl9tYXRjaFtdID0gew0KLQl7 IC5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10NzYyMSIsIC5kYXRhID0gKHZvaWQgKilJRF9NVDc2 MjEsIH0sDQotCXsgLmNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQ3NTMwIiwgLmRhdGEgPSAodm9p ZCAqKUlEX01UNzUzMCwgfSwNCisJeyAuY29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDc2MjEiLCAu ZGF0YSA9ICZtdDc1M3hfdGFibGVbSURfTVQ3NjIxXSwgfSwNCisJeyAuY29tcGF0aWJsZSA9ICJt ZWRpYXRlayxtdDc1MzAiLCAuZGF0YSA9ICZtdDc1M3hfdGFibGVbSURfTVQ3NTMwXSwgfSwNCiAJ eyAvKiBzZW50aW5lbCAqLyB9LA0KIH07DQogTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgbXQ3NTMw X29mX21hdGNoKTsNCkBAIC0xNjI3LDggKzE3NTAsMjEgQEAgbXQ3NTMwX3Byb2JlKHN0cnVjdCBt ZGlvX2RldmljZSAqbWRpb2RldikNCiAJLyogR2V0IHRoZSBoYXJkd2FyZSBpZGVudGlmaWVyIGZy b20gdGhlIGRldmljZXRyZWUgbm9kZS4NCiAJICogV2Ugd2lsbCBuZWVkIGl0IGZvciBzb21lIG9m IHRoZSBjbG9jayBhbmQgcmVndWxhdG9yIHNldHVwLg0KIAkgKi8NCi0JcHJpdi0+aWQgPSAodW5z aWduZWQgaW50KSh1bnNpZ25lZCBsb25nKQ0KLQkJb2ZfZGV2aWNlX2dldF9tYXRjaF9kYXRhKCZt ZGlvZGV2LT5kZXYpOw0KKwlwcml2LT5pbmZvID0gb2ZfZGV2aWNlX2dldF9tYXRjaF9kYXRhKCZt ZGlvZGV2LT5kZXYpOw0KKwlpZiAoIXByaXYtPmluZm8pDQorCQlyZXR1cm4gLUVJTlZBTDsNCisN CisJLyogU2FuaXR5IGNoZWNrIGlmIHRoZXNlIHJlcXVpcmVkIGRldmljZSBvcGVyYXRpb25zIGFy ZSBmaWxsZWQNCisJICogcHJvcGVybHkuDQorCSAqLw0KKwlpZiAoIXByaXYtPmluZm8tPnN3X3Nl dHVwIHx8ICFwcml2LT5pbmZvLT5wYWRfc2V0dXAgfHwNCisJICAgICFwcml2LT5pbmZvLT5waHlf cmVhZCB8fCAhcHJpdi0+aW5mby0+cGh5X3dyaXRlIHx8DQorCSAgICAhcHJpdi0+aW5mby0+cGh5 X21vZGVfc3VwcG9ydGVkIHx8DQorCSAgICAhcHJpdi0+aW5mby0+bWFjX3BvcnRfdmFsaWRhdGUg fHwNCisJICAgICFwcml2LT5pbmZvLT5tYWNfcG9ydF9nZXRfc3RhdGUgfHwgIXByaXYtPmluZm8t Pm1hY19wb3J0X2NvbmZpZykNCisJCXJldHVybiAtRUlOVkFMOw0KKw0KKwlwcml2LT5pZCA9IHBy aXYtPmluZm8tPmlkOw0KIA0KIAlpZiAocHJpdi0+aWQgPT0gSURfTVQ3NTMwKSB7DQogCQlwcml2 LT5jb3JlX3B3ciA9IGRldm1fcmVndWxhdG9yX2dldCgmbWRpb2Rldi0+ZGV2LCAiY29yZSIpOw0K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9tdDc1MzAuaCBiL2RyaXZlcnMvbmV0L2RzYS9t dDc1MzAuaA0KaW5kZXggMTRkZTYwZDBiOWNhLi40NGFjNTU0MzMwODkgMTAwNjQ0DQotLS0gYS9k cml2ZXJzL25ldC9kc2EvbXQ3NTMwLmgNCisrKyBiL2RyaXZlcnMvbmV0L2RzYS9tdDc1MzAuaA0K QEAgLTExLDcgKzExLDcgQEANCiAjZGVmaW5lIE1UNzUzMF9OVU1fRkRCX1JFQ09SRFMJCTIwNDgN CiAjZGVmaW5lIE1UNzUzMF9BTExfTUVNQkVSUwkJMHhmZg0KIA0KLWVudW0gew0KK2VudW0gbXQ3 NTN4X2lkIHsNCiAJSURfTVQ3NTMwID0gMCwNCiAJSURfTVQ3NjIxID0gMSwNCiB9Ow0KQEAgLTQ0 Myw2ICs0NDMsNDAgQEAgc3RhdGljIGNvbnN0IGNoYXIgKnA1X2ludGZfbW9kZXModW5zaWduZWQg aW50IHA1X2ludGVyZmFjZSkNCiAJfQ0KIH0NCiANCisvKiBzdHJ1Y3QgbXQ3NTN4X2luZm8gLQlU aGlzIGlzIHRoZSBtYWluIGRhdGEgc3RydWN0dXJlIGZvciBob2xkaW5nIHRoZSBzcGVjaWZpYw0K KyAqCQkJcGFydCBmb3IgZWFjaCBzdXBwb3J0ZWQgZGV2aWNlDQorICogQHN3X3NldHVwOgkJSG9s ZGluZyB0aGUgaGFuZGxlciB0byBhIGRldmljZSBpbml0aWFsaXphdGlvbg0KKyAqIEBwaHlfcmVh ZDoJCUhvbGRpbmcgdGhlIHdheSByZWFkaW5nIFBIWSBwb3J0DQorICogQHBoeV93cml0ZToJCUhv bGRpbmcgdGhlIHdheSB3cml0aW5nIFBIWSBwb3J0DQorICogQHBhZF9zZXR1cDoJCUhvbGRpbmcg dGhlIHdheSBzZXR0aW5nIHVwIHRoZSBidXMgcGFkIGZvciBhIGNlcnRhaW4NCisgKgkJCU1BQyBw b3J0DQorICogQHBoeV9tb2RlX3N1cHBvcnRlZDoJQ2hlY2sgaWYgdGhlIFBIWSB0eXBlIGlzIGJl aW5nIHN1cHBvcnRlZCBvbiBhIGNlcnRhaW4NCisgKgkJCXBvcnQNCisgKiBAbWFjX3BvcnRfdmFs aWRhdGU6CUhvbGRpbmcgdGhlIHdheSB0byBzZXQgYWRkaXRpb24gdmFsaWRhdGUgdHlwZSBmb3Ig YQ0KKyAqCQkJY2VydGFuIE1BQyBwb3J0DQorICogQG1hY19wb3J0X2dldF9zdGF0ZTogSG9sZGlu ZyB0aGUgd2F5IGdldHRpbmcgdGhlIE1BQy9QQ1Mgc3RhdGUgZm9yIGEgY2VydGFpbg0KKyAqCQkJ TUFDIHBvcnQNCisgKiBAbWFjX3BvcnRfY29uZmlnOglIb2xkaW5nIHRoZSB3YXkgc2V0dGluZyB1 cCB0aGUgUEhZIGF0dHJpYnV0ZSB0byBhDQorICoJCQljZXJ0YWluIE1BQyBwb3J0DQorICovDQor c3RydWN0IG10NzUzeF9pbmZvIHsNCisJZW51bSBtdDc1M3hfaWQgaWQ7DQorDQorCWludCAoKnN3 X3NldHVwKShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpOw0KKwlpbnQgKCpwaHlfcmVhZCkoc3RydWN0 IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCwgaW50IHJlZ251bSk7DQorCWludCAoKnBoeV93cml0 ZSkoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCwgaW50IHJlZ251bSwgdTE2IHZhbCk7 DQorCWludCAoKnBhZF9zZXR1cCkoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBwaHlfaW50ZXJmYWNl X3QgaW50ZXJmYWNlKTsNCisJYm9vbCAoKnBoeV9tb2RlX3N1cHBvcnRlZCkoc3RydWN0IGRzYV9z d2l0Y2ggKmRzLCBpbnQgcG9ydCwNCisJCQkJICAgY29uc3Qgc3RydWN0IHBoeWxpbmtfbGlua19z dGF0ZSAqc3RhdGUpOw0KKwl2b2lkICgqbWFjX3BvcnRfdmFsaWRhdGUpKHN0cnVjdCBkc2Ffc3dp dGNoICpkcywgaW50IHBvcnQsDQorCQkJCSAgdW5zaWduZWQgbG9uZyAqc3VwcG9ydGVkKTsNCisJ aW50ICgqbWFjX3BvcnRfZ2V0X3N0YXRlKShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0 LA0KKwkJCQkgIHN0cnVjdCBwaHlsaW5rX2xpbmtfc3RhdGUgKnN0YXRlKTsNCisJaW50ICgqbWFj X3BvcnRfY29uZmlnKShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LA0KKwkJCSAgICAg ICB1bnNpZ25lZCBpbnQgbW9kZSwNCisJCQkgICAgICAgcGh5X2ludGVyZmFjZV90IGludGVyZmFj ZSk7DQorfTsNCisNCiAvKiBzdHJ1Y3QgbXQ3NTMwX3ByaXYgLQlUaGlzIGlzIHRoZSBtYWluIGRh dGEgc3RydWN0dXJlIGZvciBob2xkaW5nIHRoZSBzdGF0ZQ0KICAqCQkJb2YgdGhlIGRyaXZlcg0K ICAqIEBkZXY6CQlUaGUgZGV2aWNlIHBvaW50ZXINCkBAIC00NjgsNiArNTAyLDcgQEAgc3RydWN0 IG10NzUzMF9wcml2IHsNCiAJc3RydWN0IHJlZ3VsYXRvcgkqY29yZV9wd3I7DQogCXN0cnVjdCBy ZWd1bGF0b3IJKmlvX3B3cjsNCiAJc3RydWN0IGdwaW9fZGVzYwkqcmVzZXQ7DQorCWNvbnN0IHN0 cnVjdCBtdDc1M3hfaW5mbyAqaW5mbzsNCiAJdW5zaWduZWQgaW50CQlpZDsNCiAJYm9vbAkJCW1j bTsNCiAJcGh5X2ludGVyZmFjZV90CQlwNl9pbnRlcmZhY2U7DQotLSANCjIuMTcuMQ0K