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=-16.9 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY, USER_AGENT_GIT autolearn=ham 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 C359AC47082 for ; Mon, 7 Jun 2021 17:32:33 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 9307E61090 for ; Mon, 7 Jun 2021 17:32:33 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9307E61090 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=wanyeetech.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=fU3XtixYytdKeNBrgdjfIHpGQ9l+c7pRyXAbx2G/n5g=; b=AcEiv5vh3iU+6J vKMX5yUYhQ8bdkxARUgmu9O2E7MSWXUuUYpytjmOGAdbo7muLKrmWgQ3WpJD5nrYxrTZ7HmH69ILG yqaTvzEnmN54dg2TJ6xiawqUEByj5HSTeeNLMXCGQ+o0epj5t+VOM/NM8OigKaGW5XcHGpnUlWsHq 4VKSPJPAGvy5jbbDhIWRrKBDGkE5jbmLcGnI7Rg3hxiBmmNlkIjO1xFI3u8JQRJq2ZVm2K2VTAE1Z e716pvo7U+1Gc+cmNTGwWCidabI8GYpE5IkIzjcWVi3CJD6CLZoyVcnLjFZsQr2kJc1fRDwLa1sTH rc05Ya0LxL6PpH1Jsifg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1lqJ59-004oWZ-9X; Mon, 07 Jun 2021 17:30:36 +0000 Received: from out28-49.mail.aliyun.com ([115.124.28.49]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1lqJ32-004ncr-L2 for linux-arm-kernel@lists.infradead.org; Mon, 07 Jun 2021 17:28:28 +0000 X-Alimail-AntiSpam: AC=CONTINUE; BC=0.07436282|-1; CH=green; DM=|CONTINUE|false|; DS=CONTINUE|ham_system_inform|0.0180648-0.000191969-0.981743; FP=0|0|0|0|0|-1|-1|-1; HT=ay29a033018047202; MF=zhouyanjie@wanyeetech.com; NM=1; PH=DS; RN=20; RT=20; SR=0; TI=SMTPD_---.KP.FCzB_1623086888; Received: from zhouyanjie-virtual-machine.localdomain(mailfrom:zhouyanjie@wanyeetech.com fp:SMTPD_---.KP.FCzB_1623086888) by smtp.aliyun-inc.com(10.147.40.44); Tue, 08 Jun 2021 01:28:18 +0800 From: =?UTF-8?q?=E5=91=A8=E7=90=B0=E6=9D=B0=20=28Zhou=20Yanjie=29?= To: davem@davemloft.net, kuba@kernel.org, robh+dt@kernel.org, peppe.cavallaro@st.com, alexandre.torgue@foss.st.com, joabreu@synopsys.com, mcoquelin.stm32@gmail.com Cc: linux-mips@vger.kernel.org, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, dongsheng.qiu@ingenic.com, aric.pzqi@ingenic.com, rick.tyliu@ingenic.com, sihui.liu@ingenic.com, jun.jiang@ingenic.com, sernia.zhou@foxmail.com, paul@crapouillou.net Subject: [PATCH 2/2] net: stmmac: Add Ingenic SoCs MAC support. Date: Tue, 8 Jun 2021 01:27:47 +0800 Message-Id: <1623086867-119039-3-git-send-email-zhouyanjie@wanyeetech.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1623086867-119039-1-git-send-email-zhouyanjie@wanyeetech.com> References: <1623086867-119039-1-git-send-email-zhouyanjie@wanyeetech.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210607_102825_168016_37F5D2F5 X-CRM114-Status: GOOD ( 23.57 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org QWRkIHN1cHBvcnQgZm9yIEluZ2VuaWMgU29DIE1BQyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRo ZSBzdG1tYWMKZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBvbiBmb3IgdGhlIE1B QyBldGhlcm5ldCBjb250cm9sbGVyCmZvdW5kIGluIHRoZSBKWjQ3NzUgU29DLCB0aGUgWDEwMDAg U29DLCB0aGUgWDE2MDAgU29DLCB0aGUgWDE4MzAgU29DLAphbmQgdGhlIFgyMDAwIFNvQy4KClNp Z25lZC1vZmYtYnk6IOWRqOeQsOadsCAoWmhvdSBZYW5qaWUpIDx6aG91eWFuamllQHdhbnllZXRl Y2guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWcg ICAgICAgIHwgIDE2ICstCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtl ZmlsZSAgICAgICB8ICAgMSArCiAuLi4vbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFj LWluZ2VuaWMuYyAgICB8IDM2NyArKysrKysrKysrKysrKysrKysrKysKIDMgZmlsZXMgY2hhbmdl ZCwgMzgyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQg ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW5nZW5pYy5jCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZyBiL2Ry aXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWcKaW5kZXggNzczN2U0ZDAu LmZiNTg1MzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFj L0tjb25maWcKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZp ZwpAQCAtNjYsNiArNjYsMTggQEAgY29uZmlnIERXTUFDX0FOQVJJT04KIAogCSAgVGhpcyBzZWxl Y3RzIHRoZSBBbmFyaW9uIFNvQyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWMgZHJp dmVyLgogCitjb25maWcgRFdNQUNfSU5HRU5JQworCXRyaXN0YXRlICJJbmdlbmljIE1BQyBzdXBw b3J0IgorCWRlZmF1bHQgTUFDSF9JTkdFTklDCisJZGVwZW5kcyBvbiBPRiAmJiBIQVNfSU9NRU0g JiYgKE1BQ0hfSU5HRU5JQyB8fCBDT01QSUxFX1RFU1QpCisJc2VsZWN0IE1GRF9TWVNDT04KKwlo ZWxwCisJICBTdXBwb3J0IGZvciBldGhlcm5ldCBjb250cm9sbGVyIG9uIEluZ2VuaWMgU29Dcy4K KworCSAgVGhpcyBzZWxlY3RzIEluZ2VuaWMgU29DcyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRo ZSBzdG1tYWMKKwkgIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgb24gZm9yIHRo ZSBJbmdlbmljIFNvQ3MKKwkgIE1BQyBldGhlcm5ldCBjb250cm9sbGVyLgorCiBjb25maWcgRFdN QUNfSVBRODA2WAogCXRyaXN0YXRlICJRQ0EgSVBRODA2eCBEV01BQyBzdXBwb3J0IgogCWRlZmF1 bHQgQVJDSF9RQ09NCkBAIC0xMjksNyArMTQxLDcgQEAgY29uZmlnIERXTUFDX1FDT01fRVRIUU9T CiAKIGNvbmZpZyBEV01BQ19ST0NLQ0hJUAogCXRyaXN0YXRlICJSb2NrY2hpcCBkd21hYyBzdXBw b3J0IgotCWRlZmF1bHQgQVJDSF9ST0NLQ0hJUAorCWRlZmF1bHQgTUFDSF9ST0NLQ0hJUAogCWRl cGVuZHMgb24gT0YgJiYgKEFSQ0hfUk9DS0NISVAgfHwgQ09NUElMRV9URVNUKQogCXNlbGVjdCBN RkRfU1lTQ09OCiAJaGVscApAQCAtMTY0LDcgKzE3Niw3IEBAIGNvbmZpZyBEV01BQ19TVEkKIAog Y29uZmlnIERXTUFDX1NUTTMyCiAJdHJpc3RhdGUgIlNUTTMyIERXTUFDIHN1cHBvcnQiCi0JZGVm YXVsdCBBUkNIX1NUTTMyCisJZGVmYXVsdCBNQUNIX1NUTTMyCiAJZGVwZW5kcyBvbiBPRiAmJiBI QVNfSU9NRU0gJiYgKEFSQ0hfU1RNMzIgfHwgQ09NUElMRV9URVNUKQogCXNlbGVjdCBNRkRfU1lT Q09OCiAJaGVscApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1t YWMvTWFrZWZpbGUgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmls ZQppbmRleCBmMmU0NzhiLi42NDcxZjkzIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5l dC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZQorKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1p Y3JvL3N0bW1hYy9NYWtlZmlsZQpAQCAtMTQsNiArMTQsNyBAQCBzdG1tYWMtJChDT05GSUdfU1RN TUFDX1NFTEZURVNUUykgKz0gc3RtbWFjX3NlbGZ0ZXN0cy5vCiAjIE9yZGVyaW5nIG1hdHRlcnMu IEdlbmVyaWMgZHJpdmVyIG11c3QgYmUgbGFzdC4KIG9iai0kKENPTkZJR19TVE1NQUNfUExBVEZP Uk0pCSs9IHN0bW1hYy1wbGF0Zm9ybS5vCiBvYmotJChDT05GSUdfRFdNQUNfQU5BUklPTikJKz0g ZHdtYWMtYW5hcmlvbi5vCitvYmotJChDT05GSUdfRFdNQUNfSU5HRU5JQykJKz0gZHdtYWMtaW5n ZW5pYy5vCiBvYmotJChDT05GSUdfRFdNQUNfSVBRODA2WCkJKz0gZHdtYWMtaXBxODA2eC5vCiBv YmotJChDT05GSUdfRFdNQUNfTFBDMThYWCkJKz0gZHdtYWMtbHBjMTh4eC5vCiBvYmotJChDT05G SUdfRFdNQUNfTUVESUFURUspCSs9IGR3bWFjLW1lZGlhdGVrLm8KZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWluZ2VuaWMuYyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWluZ2VuaWMuYwpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMC4uOGJlOGNhYQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWluZ2VuaWMuYwpAQCAtMCwwICsx LDM2NyBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKy8qCisgKiBkd21h Yy1pbmdlbmljLmMgLSBJbmdlbmljIFNvQ3MgRFdNQUMgc3BlY2lmaWMgZ2x1ZSBsYXllcgorICoK KyAqIENvcHlyaWdodCAoYykgMjAyMCDlkajnkLDmnbAgKFpob3UgWWFuamllKSA8emhvdXlhbmpp ZUB3YW55ZWV0ZWNoLmNvbT4KKyAqLworCisjaW5jbHVkZSA8bGludXgvYml0ZmllbGQuaD4KKyNp bmNsdWRlIDxsaW51eC9jbGsuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRl IDxsaW51eC9tZmQvc3lzY29uLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVk ZSA8bGludXgvb2YuaD4KKyNpbmNsdWRlIDxsaW51eC9vZl9kZXZpY2UuaD4KKyNpbmNsdWRlIDxs aW51eC9vZl9uZXQuaD4KKyNpbmNsdWRlIDxsaW51eC9waHkuaD4KKyNpbmNsdWRlIDxsaW51eC9w bGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9yZWdtYXAuaD4KKyNpbmNsdWRlIDxs aW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvc3RtbWFjLmg+CisKKyNpbmNsdWRlICJzdG1t YWNfcGxhdGZvcm0uaCIKKworI2RlZmluZSBNQUNQSFlDX1RYQ0xLX1NFTF9NQVNLCQlHRU5NQVNL KDMxLCAzMSkKKyNkZWZpbmUgTUFDUEhZQ19UWENMS19TRUxfT1VUUFVUCTB4MQorI2RlZmluZSBN QUNQSFlDX1RYQ0xLX1NFTF9JTlBVVAkJMHgwCisjZGVmaW5lIE1BQ1BIWUNfTU9ERV9TRUxfTUFT SwkJR0VOTUFTSygzMSwgMzEpCisjZGVmaW5lIE1BQ1BIWUNfTU9ERV9TRUxfUk1JSQkJMHgwCisj ZGVmaW5lIE1BQ1BIWUNfVFhfU0VMX01BU0sJCQlHRU5NQVNLKDE5LCAxOSkKKyNkZWZpbmUgTUFD UEhZQ19UWF9TRUxfT1JJR0lOCQkweDAKKyNkZWZpbmUgTUFDUEhZQ19UWF9TRUxfREVMQVkJCTB4 MQorI2RlZmluZSBNQUNQSFlDX1RYX0RFTEFZX01BU0sJCUdFTk1BU0soMTgsIDEyKQorI2RlZmlu ZSBNQUNQSFlDX1RYX0RFTEFZXzYzX1VOSVQJMHgzZQorI2RlZmluZSBNQUNQSFlDX1JYX1NFTF9N QVNLCQkJR0VOTUFTSygxMSwgMTEpCisjZGVmaW5lIE1BQ1BIWUNfUlhfU0VMX09SSUdJTgkJMHgw CisjZGVmaW5lIE1BQ1BIWUNfUlhfU0VMX0RFTEFZCQkweDEKKyNkZWZpbmUgTUFDUEhZQ19SWF9E RUxBWV9NQVNLCQlHRU5NQVNLKDEwLCA0KQorI2RlZmluZSBNQUNQSFlDX1NPRlRfUlNUX01BU0sJ CUdFTk1BU0soMywgMykKKyNkZWZpbmUgTUFDUEhZQ19QSFlfSU5GVF9NQVNLCQlHRU5NQVNLKDIs IDApCisjZGVmaW5lIE1BQ1BIWUNfUEhZX0lORlRfUk1JSQkJMHg0CisjZGVmaW5lIE1BQ1BIWUNf UEhZX0lORlRfUkdNSUkJCTB4MQorI2RlZmluZSBNQUNQSFlDX1BIWV9JTkZUX0dNSUkJCTB4MAor I2RlZmluZSBNQUNQSFlDX1BIWV9JTkZUX01JSQkJMHgwCisKK2VudW0gaW5nZW5pY19tYWNfdmVy c2lvbiB7CisJSURfSlo0Nzc1LAorCUlEX1gxMDAwLAorCUlEX1gxNjAwLAorCUlEX1gxODMwLAor CUlEX1gyMDAwLAorfTsKKworc3RydWN0IGluZ2VuaWNfbWFjIHsKKwljb25zdCBzdHJ1Y3QgaW5n ZW5pY19zb2NfaW5mbyAqc29jX2luZm87CisJc3RydWN0IGRldmljZSAqZGV2OworCXN0cnVjdCBy ZWdtYXAgKnJlZ21hcDsKK307CisKK3N0cnVjdCBpbmdlbmljX3NvY19pbmZvIHsKKwllbnVtIGlu Z2VuaWNfbWFjX3ZlcnNpb24gdmVyc2lvbjsKKwl1MzIgbWFzazsKKworCWludCAoKnNldF9tb2Rl KShzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXRfZGF0KTsKKwlpbnQgKCpzdXNwZW5k KShzdHJ1Y3QgaW5nZW5pY19tYWMgKm1hYyk7CisJdm9pZCAoKnJlc3VtZSkoc3RydWN0IGluZ2Vu aWNfbWFjICptYWMpOworfTsKKworc3RhdGljIGludCBpbmdlbmljX21hY19pbml0KHN0cnVjdCBw bGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQpCit7CisJc3RydWN0IGluZ2VuaWNfbWFjICpt YWMgPSBwbGF0X2RhdC0+YnNwX3ByaXY7CisJaW50IHJldDsKKworCWlmIChtYWMtPnNvY19pbmZv LT5zZXRfbW9kZSkgeworCQlyZXQgPSBtYWMtPnNvY19pbmZvLT5zZXRfbW9kZShwbGF0X2RhdCk7 CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0OworCX0KKworCXJldHVybiByZXQ7Cit9CisKK3N0 YXRpYyBpbnQgano0Nzc1X21hY19zZXRfbW9kZShzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEg KnBsYXRfZGF0KQoreworCXN0cnVjdCBpbmdlbmljX21hYyAqbWFjID0gcGxhdF9kYXQtPmJzcF9w cml2OworCWludCB2YWw7CisKKwlzd2l0Y2ggKHBsYXRfZGF0LT5pbnRlcmZhY2UpIHsKKwljYXNl IFBIWV9JTlRFUkZBQ0VfTU9ERV9NSUk6CisJCXZhbCA9IEZJRUxEX1BSRVAoTUFDUEhZQ19UWENM S19TRUxfTUFTSywgTUFDUEhZQ19UWENMS19TRUxfSU5QVVQpIHwKKwkJCSAgRklFTERfUFJFUChN QUNQSFlDX1BIWV9JTkZUX01BU0ssIE1BQ1BIWUNfUEhZX0lORlRfTUlJKTsKKwkJcHJfZGVidWco Ik1BQyBQSFkgQ29udHJvbCBSZWdpc3RlcjogUEhZX0lOVEVSRkFDRV9NT0RFX01JSVxuIik7CisJ CWJyZWFrOworCisJY2FzZSBQSFlfSU5URVJGQUNFX01PREVfR01JSToKKwkJdmFsID0gRklFTERf UFJFUChNQUNQSFlDX1RYQ0xLX1NFTF9NQVNLLCBNQUNQSFlDX1RYQ0xLX1NFTF9JTlBVVCkgfAor CQkJICBGSUVMRF9QUkVQKE1BQ1BIWUNfUEhZX0lORlRfTUFTSywgTUFDUEhZQ19QSFlfSU5GVF9H TUlJKTsKKwkJcHJfZGVidWcoIk1BQyBQSFkgQ29udHJvbCBSZWdpc3RlcjogUEhZX0lOVEVSRkFD RV9NT0RFX0dNSUlcbiIpOworCQlicmVhazsKKworCWNhc2UgUEhZX0lOVEVSRkFDRV9NT0RFX1JN SUk6CisJCXZhbCA9IEZJRUxEX1BSRVAoTUFDUEhZQ19UWENMS19TRUxfTUFTSywgTUFDUEhZQ19U WENMS19TRUxfSU5QVVQpIHwKKwkJCSAgRklFTERfUFJFUChNQUNQSFlDX1BIWV9JTkZUX01BU0ss IE1BQ1BIWUNfUEhZX0lORlRfUk1JSSk7CisJCXByX2RlYnVnKCJNQUMgUEhZIENvbnRyb2wgUmVn aXN0ZXI6IFBIWV9JTlRFUkZBQ0VfTU9ERV9STUlJXG4iKTsKKwkJYnJlYWs7CisKKwljYXNlIFBI WV9JTlRFUkZBQ0VfTU9ERV9SR01JSToKKwkJdmFsID0gRklFTERfUFJFUChNQUNQSFlDX1RYQ0xL X1NFTF9NQVNLLCBNQUNQSFlDX1RYQ0xLX1NFTF9JTlBVVCkgfAorCQkJICBGSUVMRF9QUkVQKE1B Q1BIWUNfUEhZX0lORlRfTUFTSywgTUFDUEhZQ19QSFlfSU5GVF9SR01JSSk7CisJCXByX2RlYnVn KCJNQUMgUEhZIENvbnRyb2wgUmVnaXN0ZXI6IFBIWV9JTlRFUkZBQ0VfTU9ERV9SR01JSVxuIik7 CisJCWJyZWFrOworCisJZGVmYXVsdDoKKwkJZGV2X2VycihtYWMtPmRldiwgInVuc3VwcG9ydGVk IGludGVyZmFjZSAlZCIsIHBsYXRfZGF0LT5pbnRlcmZhY2UpOworCQlyZXR1cm4gLUVJTlZBTDsK Kwl9CisKKwkvKiBVcGRhdGUgTUFDIFBIWSBjb250cm9sIHJlZ2lzdGVyICovCisJcmV0dXJuIHJl Z21hcF91cGRhdGVfYml0cyhtYWMtPnJlZ21hcCwgMCwgbWFjLT5zb2NfaW5mby0+bWFzaywgdmFs KTsKK30KKworc3RhdGljIGludCB4MTAwMF9tYWNfc2V0X21vZGUoc3RydWN0IHBsYXRfc3RtbWFj ZW5ldF9kYXRhICpwbGF0X2RhdCkKK3sKKwlzdHJ1Y3QgaW5nZW5pY19tYWMgKm1hYyA9IHBsYXRf ZGF0LT5ic3BfcHJpdjsKKwlpbnQgdmFsOworCisJc3dpdGNoIChwbGF0X2RhdC0+aW50ZXJmYWNl KSB7CisJY2FzZSBQSFlfSU5URVJGQUNFX01PREVfUk1JSToKKwkJcHJfZGVidWcoIk1BQyBQSFkg Q29udHJvbCBSZWdpc3RlcjogUEhZX0lOVEVSRkFDRV9NT0RFX1JNSUlcbiIpOworCQlicmVhazsK KworCWRlZmF1bHQ6CisJCWRldl9lcnIobWFjLT5kZXYsICJ1bnN1cHBvcnRlZCBpbnRlcmZhY2Ug JWQiLCBwbGF0X2RhdC0+aW50ZXJmYWNlKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJLyog VXBkYXRlIE1BQyBQSFkgY29udHJvbCByZWdpc3RlciAqLworCXJldHVybiByZWdtYXBfdXBkYXRl X2JpdHMobWFjLT5yZWdtYXAsIDAsIG1hYy0+c29jX2luZm8tPm1hc2ssIHZhbCk7Cit9CisKK3N0 YXRpYyBpbnQgeDE2MDBfbWFjX3NldF9tb2RlKHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAq cGxhdF9kYXQpCit7CisJc3RydWN0IGluZ2VuaWNfbWFjICptYWMgPSBwbGF0X2RhdC0+YnNwX3By aXY7CisJaW50IHZhbDsKKworCXN3aXRjaCAocGxhdF9kYXQtPmludGVyZmFjZSkgeworCWNhc2Ug UEhZX0lOVEVSRkFDRV9NT0RFX1JNSUk6CisJCXZhbCA9IEZJRUxEX1BSRVAoTUFDUEhZQ19QSFlf SU5GVF9NQVNLLCBNQUNQSFlDX1BIWV9JTkZUX1JNSUkpOworCQlwcl9kZWJ1ZygiTUFDIFBIWSBD b250cm9sIFJlZ2lzdGVyOiBQSFlfSU5URVJGQUNFX01PREVfUk1JSVxuIik7CisJCWJyZWFrOwor CisJZGVmYXVsdDoKKwkJZGV2X2VycihtYWMtPmRldiwgInVuc3VwcG9ydGVkIGludGVyZmFjZSAl ZCIsIHBsYXRfZGF0LT5pbnRlcmZhY2UpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwkvKiBV cGRhdGUgTUFDIFBIWSBjb250cm9sIHJlZ2lzdGVyICovCisJcmV0dXJuIHJlZ21hcF91cGRhdGVf Yml0cyhtYWMtPnJlZ21hcCwgMCwgbWFjLT5zb2NfaW5mby0+bWFzaywgdmFsKTsKK30KKworc3Rh dGljIGludCB4MTgzMF9tYWNfc2V0X21vZGUoc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpw bGF0X2RhdCkKK3sKKwlzdHJ1Y3QgaW5nZW5pY19tYWMgKm1hYyA9IHBsYXRfZGF0LT5ic3BfcHJp djsKKwlpbnQgdmFsOworCisJc3dpdGNoIChwbGF0X2RhdC0+aW50ZXJmYWNlKSB7CisJY2FzZSBQ SFlfSU5URVJGQUNFX01PREVfUk1JSToKKwkJdmFsID0gRklFTERfUFJFUChNQUNQSFlDX01PREVf U0VMX01BU0ssIE1BQ1BIWUNfTU9ERV9TRUxfUk1JSSkgfAorCQkJICBGSUVMRF9QUkVQKE1BQ1BI WUNfUEhZX0lORlRfTUFTSywgTUFDUEhZQ19QSFlfSU5GVF9STUlJKTsKKwkJcHJfZGVidWcoIk1B QyBQSFkgQ29udHJvbCBSZWdpc3RlcjogUEhZX0lOVEVSRkFDRV9NT0RFX1JNSUlcbiIpOworCQli cmVhazsKKworCWRlZmF1bHQ6CisJCWRldl9lcnIobWFjLT5kZXYsICJ1bnN1cHBvcnRlZCBpbnRl cmZhY2UgJWQiLCBwbGF0X2RhdC0+aW50ZXJmYWNlKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQor CisJLyogVXBkYXRlIE1BQyBQSFkgY29udHJvbCByZWdpc3RlciAqLworCXJldHVybiByZWdtYXBf dXBkYXRlX2JpdHMobWFjLT5yZWdtYXAsIDAsIG1hYy0+c29jX2luZm8tPm1hc2ssIHZhbCk7Cit9 CisKK3N0YXRpYyBpbnQgeDIwMDBfbWFjX3NldF9tb2RlKHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRf ZGF0YSAqcGxhdF9kYXQpCit7CisJc3RydWN0IGluZ2VuaWNfbWFjICptYWMgPSBwbGF0X2RhdC0+ YnNwX3ByaXY7CisJaW50IHZhbDsKKworCXN3aXRjaCAocGxhdF9kYXQtPmludGVyZmFjZSkgewor CWNhc2UgUEhZX0lOVEVSRkFDRV9NT0RFX1JNSUk6CisJCXZhbCA9IEZJRUxEX1BSRVAoTUFDUEhZ Q19UWF9TRUxfTUFTSywgTUFDUEhZQ19UWF9TRUxfT1JJR0lOKSB8CisJCQkgIEZJRUxEX1BSRVAo TUFDUEhZQ19SWF9TRUxfTUFTSywgTUFDUEhZQ19SWF9TRUxfT1JJR0lOKSB8CisJCQkgIEZJRUxE X1BSRVAoTUFDUEhZQ19QSFlfSU5GVF9NQVNLLCBNQUNQSFlDX1BIWV9JTkZUX1JNSUkpOworCQlw cl9kZWJ1ZygiTUFDIFBIWSBDb250cm9sIFJlZ2lzdGVyOiBQSFlfSU5URVJGQUNFX01PREVfUk1J SVxuIik7CisJCWJyZWFrOworCisJY2FzZSBQSFlfSU5URVJGQUNFX01PREVfUkdNSUk6CisJCXZh bCA9IEZJRUxEX1BSRVAoTUFDUEhZQ19UWF9TRUxfTUFTSywgTUFDUEhZQ19UWF9TRUxfREVMQVkp IHwKKwkJCSAgRklFTERfUFJFUChNQUNQSFlDX1RYX0RFTEFZX01BU0ssIE1BQ1BIWUNfVFhfREVM QVlfNjNfVU5JVCkgfAorCQkJICBGSUVMRF9QUkVQKE1BQ1BIWUNfUlhfU0VMX01BU0ssIE1BQ1BI WUNfUlhfU0VMX09SSUdJTikgfAorCQkJICBGSUVMRF9QUkVQKE1BQ1BIWUNfUEhZX0lORlRfTUFT SywgTUFDUEhZQ19QSFlfSU5GVF9SR01JSSk7CisJCXByX2RlYnVnKCJNQUMgUEhZIENvbnRyb2wg UmVnaXN0ZXI6IFBIWV9JTlRFUkZBQ0VfTU9ERV9SR01JSVxuIik7CisJCWJyZWFrOworCisJZGVm YXVsdDoKKwkJZGV2X2VycihtYWMtPmRldiwgInVuc3VwcG9ydGVkIGludGVyZmFjZSAlZCIsIHBs YXRfZGF0LT5pbnRlcmZhY2UpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwkvKiBVcGRhdGUg TUFDIFBIWSBjb250cm9sIHJlZ2lzdGVyICovCisJcmV0dXJuIHJlZ21hcF91cGRhdGVfYml0cyht YWMtPnJlZ21hcCwgMCwgbWFjLT5zb2NfaW5mby0+bWFzaywgdmFsKTsKK30KKworc3RhdGljIGlu dCBpbmdlbmljX21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0 cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQ7CisJc3RydWN0IHN0bW1hY19yZXNv dXJjZXMgc3RtbWFjX3JlczsKKwlzdHJ1Y3QgaW5nZW5pY19tYWMgKm1hYzsKKwljb25zdCBzdHJ1 Y3QgaW5nZW5pY19zb2NfaW5mbyAqZGF0YTsKKwlpbnQgcmV0OworCisJcmV0ID0gc3RtbWFjX2dl dF9wbGF0Zm9ybV9yZXNvdXJjZXMocGRldiwgJnN0bW1hY19yZXMpOworCWlmIChyZXQpCisJCXJl dHVybiByZXQ7CisKKwlwbGF0X2RhdCA9IHN0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgc3Rt bWFjX3Jlcy5tYWMpOworCWlmIChJU19FUlIocGxhdF9kYXQpKQorCQlyZXR1cm4gUFRSX0VSUihw bGF0X2RhdCk7CisKKwltYWMgPSBkZXZtX2t6YWxsb2MoJnBkZXYtPmRldiwgc2l6ZW9mKCptYWMp LCBHRlBfS0VSTkVMKTsKKwlpZiAoIW1hYykgeworCQlyZXQgPSAtRU5PTUVNOworCQlnb3RvIGVy cl9yZW1vdmVfY29uZmlnX2R0OworCX0KKworCWRhdGEgPSBvZl9kZXZpY2VfZ2V0X21hdGNoX2Rh dGEoJnBkZXYtPmRldik7CisJaWYgKCFkYXRhKSB7CisJCWRldl9lcnIoJnBkZXYtPmRldiwgIm5v IG9mIG1hdGNoIGRhdGEgcHJvdmlkZWRcbiIpOworCQlyZXQgPSAtRUlOVkFMOworCQlnb3RvIGVy cl9yZW1vdmVfY29uZmlnX2R0OworCX0KKworCS8qIEdldCBNQUMgUEhZIGNvbnRyb2wgcmVnaXN0 ZXIgKi8KKwltYWMtPnJlZ21hcCA9IHN5c2Nvbl9yZWdtYXBfbG9va3VwX2J5X3BoYW5kbGUocGRl di0+ZGV2Lm9mX25vZGUsICJtb2RlLXJlZyIpOworCWlmIChJU19FUlIobWFjLT5yZWdtYXApKSB7 CisJCXByX2VycigiJXM6IGZhaWxlZCB0byBnZXQgc3lzY29uIHJlZ21hcFxuIiwgX19mdW5jX18p OworCQlnb3RvIGVycl9yZW1vdmVfY29uZmlnX2R0OworCX0KKworCW1hYy0+c29jX2luZm8gPSBk YXRhOworCW1hYy0+ZGV2ID0gJnBkZXYtPmRldjsKKworCXBsYXRfZGF0LT5ic3BfcHJpdiA9IG1h YzsKKworCXJldCA9IGluZ2VuaWNfbWFjX2luaXQocGxhdF9kYXQpOworCWlmIChyZXQpCisJCWdv dG8gZXJyX3JlbW92ZV9jb25maWdfZHQ7CisKKwlyZXQgPSBzdG1tYWNfZHZyX3Byb2JlKCZwZGV2 LT5kZXYsIHBsYXRfZGF0LCAmc3RtbWFjX3Jlcyk7CisJaWYgKHJldCkKKwkJZ290byBlcnJfcmVt b3ZlX2NvbmZpZ19kdDsKKworCXJldHVybiAwOworCitlcnJfcmVtb3ZlX2NvbmZpZ19kdDoKKwlz dG1tYWNfcmVtb3ZlX2NvbmZpZ19kdChwZGV2LCBwbGF0X2RhdCk7CisKKwlyZXR1cm4gcmV0Owor fQorCisjaWZkZWYgQ09ORklHX1BNX1NMRUVQCitzdGF0aWMgaW50IGluZ2VuaWNfbWFjX3N1c3Bl bmQoc3RydWN0IGRldmljZSAqZGV2KQoreworCXN0cnVjdCBuZXRfZGV2aWNlICpuZGV2ID0gZGV2 X2dldF9kcnZkYXRhKGRldik7CisJc3RydWN0IHN0bW1hY19wcml2ICpwcml2ID0gbmV0ZGV2X3By aXYobmRldik7CisJc3RydWN0IGluZ2VuaWNfbWFjICptYWMgPSBwcml2LT5wbGF0LT5ic3BfcHJp djsKKworCWludCByZXQ7CisKKwlyZXQgPSBzdG1tYWNfc3VzcGVuZChkZXYpOworCisJaWYgKG1h Yy0+c29jX2luZm8tPnN1c3BlbmQpCisJCXJldCA9IG1hYy0+c29jX2luZm8tPnN1c3BlbmQobWFj KTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgaW5nZW5pY19tYWNfcmVzdW1lKHN0 cnVjdCBkZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiA9IGRldl9nZXRf ZHJ2ZGF0YShkZXYpOworCXN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KG5k ZXYpOworCXN0cnVjdCBpbmdlbmljX21hYyAqbWFjID0gcHJpdi0+cGxhdC0+YnNwX3ByaXY7CisJ aW50IHJldDsKKworCWlmIChtYWMtPnNvY19pbmZvLT5yZXN1bWUpCisJCW1hYy0+c29jX2luZm8t PnJlc3VtZShtYWMpOworCisJcmV0ID0gaW5nZW5pY19tYWNfaW5pdChwcml2LT5wbGF0KTsKKwlp ZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJcmV0ID0gc3RtbWFjX3Jlc3VtZShkZXYpOworCisJ cmV0dXJuIHJldDsKK30KKyNlbmRpZiAvKiBDT05GSUdfUE1fU0xFRVAgKi8KKworc3RhdGljIFNJ TVBMRV9ERVZfUE1fT1BTKGluZ2VuaWNfbWFjX3BtX29wcywKKwlpbmdlbmljX21hY19zdXNwZW5k LCBpbmdlbmljX21hY19yZXN1bWUpOworCitzdGF0aWMgc3RydWN0IGluZ2VuaWNfc29jX2luZm8g ano0Nzc1X3NvY19pbmZvID0geworCS52ZXJzaW9uID0gSURfSlo0Nzc1LAorCS5tYXNrID0gTUFD UEhZQ19UWENMS19TRUxfTUFTSyB8IE1BQ1BIWUNfU09GVF9SU1RfTUFTSyB8IE1BQ1BIWUNfUEhZ X0lORlRfTUFTSywKKworCS5zZXRfbW9kZSA9IGp6NDc3NV9tYWNfc2V0X21vZGUsCit9OworCitz dGF0aWMgc3RydWN0IGluZ2VuaWNfc29jX2luZm8geDEwMDBfc29jX2luZm8gPSB7CisJLnZlcnNp b24gPSBJRF9YMTAwMCwKKwkubWFzayA9IE1BQ1BIWUNfU09GVF9SU1RfTUFTSywKKworCS5zZXRf bW9kZSA9IHgxMDAwX21hY19zZXRfbW9kZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgaW5nZW5pY19z b2NfaW5mbyB4MTYwMF9zb2NfaW5mbyA9IHsKKwkudmVyc2lvbiA9IElEX1gxNjAwLAorCS5tYXNr ID0gTUFDUEhZQ19TT0ZUX1JTVF9NQVNLIHwgTUFDUEhZQ19QSFlfSU5GVF9NQVNLLAorCisJLnNl dF9tb2RlID0geDE2MDBfbWFjX3NldF9tb2RlLAorfTsKKworc3RhdGljIHN0cnVjdCBpbmdlbmlj X3NvY19pbmZvIHgxODMwX3NvY19pbmZvID0geworCS52ZXJzaW9uID0gSURfWDE4MzAsCisJLm1h c2sgPSBNQUNQSFlDX01PREVfU0VMX01BU0sgfCBNQUNQSFlDX1NPRlRfUlNUX01BU0sgfCBNQUNQ SFlDX1BIWV9JTkZUX01BU0ssCisKKwkuc2V0X21vZGUgPSB4MTgzMF9tYWNfc2V0X21vZGUsCit9 OworCitzdGF0aWMgc3RydWN0IGluZ2VuaWNfc29jX2luZm8geDIwMDBfc29jX2luZm8gPSB7CisJ LnZlcnNpb24gPSBJRF9YMjAwMCwKKwkubWFzayA9IE1BQ1BIWUNfVFhfU0VMX01BU0sgfCBNQUNQ SFlDX1RYX0RFTEFZX01BU0sgfCBNQUNQSFlDX1JYX1NFTF9NQVNLIHwKKwkJCU1BQ1BIWUNfUlhf REVMQVlfTUFTSyB8IE1BQ1BIWUNfU09GVF9SU1RfTUFTSyB8IE1BQ1BIWUNfUEhZX0lORlRfTUFT SywKKworCS5zZXRfbW9kZSA9IHgyMDAwX21hY19zZXRfbW9kZSwKK307CisKK3N0YXRpYyBjb25z dCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGluZ2VuaWNfbWFjX29mX21hdGNoZXNbXSA9IHsKKwl7IC5j b21wYXRpYmxlID0gImluZ2VuaWMsano0Nzc1LW1hYyIsIC5kYXRhID0gJmp6NDc3NV9zb2NfaW5m byB9LAorCXsgLmNvbXBhdGlibGUgPSAiaW5nZW5pYyx4MTAwMC1tYWMiLCAuZGF0YSA9ICZ4MTAw MF9zb2NfaW5mbyB9LAorCXsgLmNvbXBhdGlibGUgPSAiaW5nZW5pYyx4MTYwMC1tYWMiLCAuZGF0 YSA9ICZ4MTYwMF9zb2NfaW5mbyB9LAorCXsgLmNvbXBhdGlibGUgPSAiaW5nZW5pYyx4MTgzMC1t YWMiLCAuZGF0YSA9ICZ4MTgzMF9zb2NfaW5mbyB9LAorCXsgLmNvbXBhdGlibGUgPSAiaW5nZW5p Yyx4MjAwMC1tYWMiLCAuZGF0YSA9ICZ4MjAwMF9zb2NfaW5mbyB9LAorCXsgfQorfTsKK01PRFVM RV9ERVZJQ0VfVEFCTEUob2YsIGluZ2VuaWNfbWFjX29mX21hdGNoZXMpOworCitzdGF0aWMgc3Ry dWN0IHBsYXRmb3JtX2RyaXZlciBpbmdlbmljX21hY19kcml2ZXIgPSB7CisJLnByb2JlCQk9IGlu Z2VuaWNfbWFjX3Byb2JlLAorCS5yZW1vdmUJCT0gc3RtbWFjX3BsdGZyX3JlbW92ZSwKKwkuZHJp dmVyCQk9IHsKKwkJLm5hbWUJPSAiaW5nZW5pYy1tYWMiLAorCQkucG0JCT0gJmluZ2VuaWNfbWFj X3BtX29wcywKKwkJLm9mX21hdGNoX3RhYmxlID0gaW5nZW5pY19tYWNfb2ZfbWF0Y2hlcywKKwl9 LAorfTsKK21vZHVsZV9wbGF0Zm9ybV9kcml2ZXIoaW5nZW5pY19tYWNfZHJpdmVyKTsKKworTU9E VUxFX0FVVEhPUigi5ZGo55Cw5p2wIChaaG91IFlhbmppZSkgPHpob3V5YW5qaWVAd2FueWVldGVj aC5jb20+Iik7CitNT0RVTEVfREVTQ1JJUFRJT04oIkluZ2VuaWMgU29DcyBEV01BQyBzcGVjaWZp YyBnbHVlIGxheWVyIik7CitNT0RVTEVfTElDRU5TRSgiR1BMIHYyIik7Ci0tIAoyLjcuNAoKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1r ZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpo dHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJu ZWwK