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 Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0664DC636D4 for ; Sat, 11 Feb 2023 03:19:45 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229943AbjBKDTn (ORCPT ); Fri, 10 Feb 2023 22:19:43 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35656 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229845AbjBKDTY (ORCPT ); Fri, 10 Feb 2023 22:19:24 -0500 Received: from madras.collabora.co.uk (madras.collabora.co.uk [IPv6:2a00:1098:0:82:1000:25:2eeb:e5ab]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CD97F85B09; Fri, 10 Feb 2023 19:18:56 -0800 (PST) Received: from localhost (unknown [86.120.32.152]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: cristicc) by madras.collabora.co.uk (Postfix) with ESMTPSA id 46C9F6602116; Sat, 11 Feb 2023 03:18:55 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1676085535; bh=TwwenY6La9ML4nip9B8ZX+9fLGGbM4jAo/uXYp0Qk4g=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=OKKkxrnUMuOi0Jh4iaoScbQdgxmTpT21oDKQCOanqE8R1krG6V9W13cJ50yrqcsVo +ucoeJ7OsadEO/0r4YYaXdoMCiUprTqbLHRIbmesNRuTkWJZcGF4WHwNEWFlMiDv7V cOX+NXcfXAB8TL+niHinGc5huEX+FnSVX89Jlvock4vuc54MDerKLyeQxlPSplwOFB N6fGJaqAHupHho1yyqlmwZqx+xRY2NkM3BM1zTh8UFFWe8KdmkWU2iYgbibZ3yPwmX om419IAXnIh0hH6Nq1tCvUHRsdq/OvvC60e6GbktI11Ny1+1hSiprEMCd0UVRLRt31 ukA0TQq82HJYw== From: Cristian Ciocaltea To: Lee Jones , Rob Herring , Krzysztof Kozlowski , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Emil Renner Berthing , Conor Dooley , Palmer Dabbelt , Paul Walmsley , Albert Ou , Giuseppe Cavallaro , Alexandre Torgue , Jose Abreu , Maxime Coquelin , Richard Cochran , Sagar Kadam , Yanhong Wang Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, linux-riscv@lists.infradead.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, kernel@collabora.com Subject: [PATCH 08/12] net: stmmac: Add glue layer for StarFive JH7100 SoC Date: Sat, 11 Feb 2023 05:18:17 +0200 Message-Id: <20230211031821.976408-9-cristian.ciocaltea@collabora.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230211031821.976408-1-cristian.ciocaltea@collabora.com> References: <20230211031821.976408-1-cristian.ciocaltea@collabora.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Emil Renner Berthing This adds a glue layer for the Synopsys DesignWare MAC IP core on the StarFive JH7100 SoC. Signed-off-by: Emil Renner Berthing [drop references to JH7110, update JH7100 compatible string] Signed-off-by: Cristian Ciocaltea --- MAINTAINERS | 1 + drivers/net/ethernet/stmicro/stmmac/Kconfig | 12 ++ drivers/net/ethernet/stmicro/stmmac/Makefile | 1 + .../ethernet/stmicro/stmmac/dwmac-starfive.c | 155 ++++++++++++++++++ 4 files changed, 169 insertions(+) create mode 100644 drivers/net/ethernet/stmicro/stmmac/dwmac-starfive.c diff --git a/MAINTAINERS b/MAINTAINERS index d48468b81b94..defedaff6041 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -19820,6 +19820,7 @@ STARFIVE DWMAC GLUE LAYER M: Emil Renner Berthing S: Maintained F: Documentation/devicetree/bindings/net/starfive,jh7100-dwmac.yaml +F: drivers/net/ethernet/stmicro/stmmac/dwmac-starfive.c STARFIVE JH7100 CLOCK DRIVERS M: Emil Renner Berthing diff --git a/drivers/net/ethernet/stmicro/stmmac/Kconfig b/drivers/net/ethernet/stmicro/stmmac/Kconfig index f77511fe4e87..2c81aa594291 100644 --- a/drivers/net/ethernet/stmicro/stmmac/Kconfig +++ b/drivers/net/ethernet/stmicro/stmmac/Kconfig @@ -165,6 +165,18 @@ config DWMAC_SOCFPGA for the stmmac device driver. This driver is used for arria5 and cyclone5 FPGA SoCs. +config DWMAC_STARFIVE + tristate "StarFive DWMAC support" + default m if SOC_STARFIVE + depends on SOC_STARFIVE || COMPILE_TEST + select MFD_SYSCON + help + Support for ethernet controller on StarFive SOCs. + + This selects StarFive SoC glue layer support for the stmmac device + driver. This driver is used for the JH71x0 series GMAC ethernet + controller. + config DWMAC_STI tristate "STi GMAC support" default ARCH_STI diff --git a/drivers/net/ethernet/stmicro/stmmac/Makefile b/drivers/net/ethernet/stmicro/stmmac/Makefile index 057e4bab5c08..8738fdbb4b2d 100644 --- a/drivers/net/ethernet/stmicro/stmmac/Makefile +++ b/drivers/net/ethernet/stmicro/stmmac/Makefile @@ -23,6 +23,7 @@ obj-$(CONFIG_DWMAC_OXNAS) += dwmac-oxnas.o obj-$(CONFIG_DWMAC_QCOM_ETHQOS) += dwmac-qcom-ethqos.o obj-$(CONFIG_DWMAC_ROCKCHIP) += dwmac-rk.o obj-$(CONFIG_DWMAC_SOCFPGA) += dwmac-altr-socfpga.o +obj-$(CONFIG_DWMAC_STARFIVE) += dwmac-starfive.o obj-$(CONFIG_DWMAC_STI) += dwmac-sti.o obj-$(CONFIG_DWMAC_STM32) += dwmac-stm32.o obj-$(CONFIG_DWMAC_SUNXI) += dwmac-sunxi.o diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-starfive.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-starfive.c new file mode 100644 index 000000000000..d4c81f1a5482 --- /dev/null +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-starfive.c @@ -0,0 +1,155 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * dwmac-starfive.c - DWMAC glue layer for StarFive JH7100 SoC + * + * Copyright (C) 2021 Emil Renner Berthing + */ + +#include +#include +#include +#include +#include + +#include "stmmac.h" +#include "stmmac_platform.h" + +#define JH7100_SYSMAIN_REGISTER28 0x70 +/* The value below is not a typo, just really bad naming by StarFive ¯\_(ツ)_/¯ */ +#define JH7100_SYSMAIN_REGISTER49 0xc8 + +struct dwmac_starfive { + struct device *dev; + struct clk *gtxc; +}; + +static int dwmac_starfive_jh7100_syscon_init(struct device *dev) +{ + struct device_node *np = dev->of_node; + struct regmap *sysmain; + u32 gtxclk_dlychain; + int ret; + + sysmain = syscon_regmap_lookup_by_phandle(np, "starfive,syscon"); + if (IS_ERR(sysmain)) + return dev_err_probe(dev, PTR_ERR(sysmain), + "error getting sysmain registers\n"); + + /* Choose RGMII interface to the phy. + * TODO: support other interfaces once we know the meaning of other + * values in the register + */ + ret = regmap_update_bits(sysmain, JH7100_SYSMAIN_REGISTER28, 0x7, 1); + if (ret) + return dev_err_probe(dev, ret, "error selecting gmac interface\n"); + + if (!of_property_read_u32(np, "starfive,gtxclk-dlychain", >xclk_dlychain)) { + ret = regmap_write(sysmain, JH7100_SYSMAIN_REGISTER49, gtxclk_dlychain); + if (ret) + return dev_err_probe(dev, ret, "error selecting gtxclk delay chain\n"); + } + + return 0; +} + +static void dwmac_starfive_fix_mac_speed(void *data, unsigned int speed) +{ + struct dwmac_starfive *dwmac = data; + unsigned long rate; + int ret; + + switch (speed) { + case SPEED_1000: + rate = 125000000; + break; + case SPEED_100: + rate = 25000000; + break; + case SPEED_10: + rate = 2500000; + break; + default: + dev_warn(dwmac->dev, "unsupported link speed %u\n", speed); + return; + } + + ret = clk_set_rate(dwmac->gtxc, rate); + if (ret) + dev_err(dwmac->dev, "error setting gtx clock rate: %d\n", ret); +} + +static int dwmac_starfive_probe(struct platform_device *pdev) +{ + struct stmmac_resources stmmac_res; + struct plat_stmmacenet_data *plat; + struct dwmac_starfive *dwmac; + struct clk *txclk; + int (*syscon_init)(struct device *dev); + int ret; + + dwmac = devm_kzalloc(&pdev->dev, sizeof(*dwmac), GFP_KERNEL); + if (!dwmac) + return -ENOMEM; + + ret = stmmac_get_platform_resources(pdev, &stmmac_res); + if (ret) + return ret; + + syscon_init = of_device_get_match_data(&pdev->dev); + if (syscon_init) { + ret = syscon_init(&pdev->dev); + if (ret) + return ret; + } + + dwmac->gtxc = devm_clk_get_enabled(&pdev->dev, "gtxc"); + if (IS_ERR(dwmac->gtxc)) + return dev_err_probe(&pdev->dev, PTR_ERR(dwmac->gtxc), + "error getting/enabling gtxc clock\n"); + + txclk = devm_clk_get_enabled(&pdev->dev, "tx"); + if (IS_ERR(txclk)) + return dev_err_probe(&pdev->dev, PTR_ERR(txclk), + "error getting/enabling tx clock\n"); + + plat = stmmac_probe_config_dt(pdev, stmmac_res.mac); + if (IS_ERR(plat)) + return dev_err_probe(&pdev->dev, PTR_ERR(plat), + "dt configuration failed\n"); + + dwmac->dev = &pdev->dev; + plat->bsp_priv = dwmac; + plat->fix_mac_speed = dwmac_starfive_fix_mac_speed; + + ret = stmmac_dvr_probe(&pdev->dev, plat, &stmmac_res); + if (ret) { + stmmac_remove_config_dt(pdev, plat); + return ret; + } + + return 0; +} + +static const struct of_device_id dwmac_starfive_match[] = { + { + .compatible = "starfive,jh7100-dwmac", + .data = dwmac_starfive_jh7100_syscon_init, + }, + { /* sentinel */ } +}; +MODULE_DEVICE_TABLE(of, dwmac_starfive_match); + +static struct platform_driver dwmac_starfive_driver = { + .probe = dwmac_starfive_probe, + .remove = stmmac_pltfr_remove, + .driver = { + .name = "dwmac-starfive", + .pm = &stmmac_pltfr_pm_ops, + .of_match_table = dwmac_starfive_match, + }, +}; +module_platform_driver(dwmac_starfive_driver); + +MODULE_AUTHOR("Emil Renner Berthing "); +MODULE_DESCRIPTION("StarFive DWMAC Glue Layer"); +MODULE_LICENSE("GPL"); -- 2.39.1 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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 39C50C61DA4 for ; Sat, 11 Feb 2023 03:32:22 +0000 (UTC) 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=1b7j6GJw/pfwie8btHiyadhuJmvU/H0dHpWRde6tBps=; b=JQ2RQpl7lbY2q1 CI+0DULK5v2zAgg1IvMGvWQw6VejV8pKGmfrb3Cjj75t9FUAxd1qzrlGL3yiVzSWJADc3twtUMy0R iN7wrkWfAvAYRV02NzUZqRUSGJCJ3RaMtlA4fsuz3F2wHUz6QD8qjtf8JI8v+TtoNIIRLFOlb0XAZ V9/tAPx15Dq7IWyccJ5+pWjt7GsBpntaoYqKhw1kkksBmzRcdZO008P3zp6QQA190EXYd7JCnBoQa krWbolWaMGuN6OK23a5pW6pgveK42viLgc/4Hki4fs+x8uoT2Iy9xAtv3pE0RkoquGb3/CAcpSPQX /FYS8BX7OmHn8a2R/G2g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pQgcX-008Xk9-S6; Sat, 11 Feb 2023 03:32:13 +0000 Received: from madras.collabora.co.uk ([2a00:1098:0:82:1000:25:2eeb:e5ab]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pQgPg-008RuS-Oq; Sat, 11 Feb 2023 03:18:59 +0000 Received: from localhost (unknown [86.120.32.152]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: cristicc) by madras.collabora.co.uk (Postfix) with ESMTPSA id 46C9F6602116; Sat, 11 Feb 2023 03:18:55 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1676085535; bh=TwwenY6La9ML4nip9B8ZX+9fLGGbM4jAo/uXYp0Qk4g=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=OKKkxrnUMuOi0Jh4iaoScbQdgxmTpT21oDKQCOanqE8R1krG6V9W13cJ50yrqcsVo +ucoeJ7OsadEO/0r4YYaXdoMCiUprTqbLHRIbmesNRuTkWJZcGF4WHwNEWFlMiDv7V cOX+NXcfXAB8TL+niHinGc5huEX+FnSVX89Jlvock4vuc54MDerKLyeQxlPSplwOFB N6fGJaqAHupHho1yyqlmwZqx+xRY2NkM3BM1zTh8UFFWe8KdmkWU2iYgbibZ3yPwmX om419IAXnIh0hH6Nq1tCvUHRsdq/OvvC60e6GbktI11Ny1+1hSiprEMCd0UVRLRt31 ukA0TQq82HJYw== From: Cristian Ciocaltea To: Lee Jones , Rob Herring , Krzysztof Kozlowski , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Emil Renner Berthing , Conor Dooley , Palmer Dabbelt , Paul Walmsley , Albert Ou , Giuseppe Cavallaro , Alexandre Torgue , Jose Abreu , Maxime Coquelin , Richard Cochran , Sagar Kadam , Yanhong Wang Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, linux-riscv@lists.infradead.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, kernel@collabora.com Subject: [PATCH 08/12] net: stmmac: Add glue layer for StarFive JH7100 SoC Date: Sat, 11 Feb 2023 05:18:17 +0200 Message-Id: <20230211031821.976408-9-cristian.ciocaltea@collabora.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230211031821.976408-1-cristian.ciocaltea@collabora.com> References: <20230211031821.976408-1-cristian.ciocaltea@collabora.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230210_191857_148321_FF42C993 X-CRM114-Status: GOOD ( 23.81 ) X-BeenThere: linux-riscv@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-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org RnJvbTogRW1pbCBSZW5uZXIgQmVydGhpbmcgPGtlcm5lbEBlc21pbC5kaz4KClRoaXMgYWRkcyBh IGdsdWUgbGF5ZXIgZm9yIHRoZSBTeW5vcHN5cyBEZXNpZ25XYXJlIE1BQyBJUCBjb3JlIG9uIHRo ZQpTdGFyRml2ZSBKSDcxMDAgU29DLgoKU2lnbmVkLW9mZi1ieTogRW1pbCBSZW5uZXIgQmVydGhp bmcgPGtlcm5lbEBlc21pbC5kaz4KW2Ryb3AgcmVmZXJlbmNlcyB0byBKSDcxMTAsIHVwZGF0ZSBK SDcxMDAgY29tcGF0aWJsZSBzdHJpbmddClNpZ25lZC1vZmYtYnk6IENyaXN0aWFuIENpb2NhbHRl YSA8Y3Jpc3RpYW4uY2lvY2FsdGVhQGNvbGxhYm9yYS5jb20+Ci0tLQogTUFJTlRBSU5FUlMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIGRyaXZlcnMvbmV0L2V0aGVy bmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWcgICB8ICAxMiArKwogZHJpdmVycy9uZXQvZXRoZXJu ZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUgIHwgICAxICsKIC4uLi9ldGhlcm5ldC9zdG1pY3Jv L3N0bW1hYy9kd21hYy1zdGFyZml2ZS5jICB8IDE1NSArKysrKysrKysrKysrKysrKysKIDQgZmls ZXMgY2hhbmdlZCwgMTY5IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJz L25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFyZml2ZS5jCgpkaWZmIC0tZ2l0 IGEvTUFJTlRBSU5FUlMgYi9NQUlOVEFJTkVSUwppbmRleCBkNDg0NjhiODFiOTQuLmRlZmVkYWZm NjA0MSAxMDA2NDQKLS0tIGEvTUFJTlRBSU5FUlMKKysrIGIvTUFJTlRBSU5FUlMKQEAgLTE5ODIw LDYgKzE5ODIwLDcgQEAgU1RBUkZJVkUgRFdNQUMgR0xVRSBMQVlFUgogTToJRW1pbCBSZW5uZXIg QmVydGhpbmcgPGtlcm5lbEBlc21pbC5kaz4KIFM6CU1haW50YWluZWQKIEY6CURvY3VtZW50YXRp b24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc3RhcmZpdmUsamg3MTAwLWR3bWFjLnlhbWwKK0Y6 CWRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0YXJmaXZlLmMKIAog U1RBUkZJVkUgSkg3MTAwIENMT0NLIERSSVZFUlMKIE06CUVtaWwgUmVubmVyIEJlcnRoaW5nIDxr ZXJuZWxAZXNtaWwuZGs+CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3Jv L3N0bW1hYy9LY29uZmlnIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2Nv bmZpZwppbmRleCBmNzc1MTFmZTRlODcuLjJjODFhYTU5NDI5MSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZworKysgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnCkBAIC0xNjUsNiArMTY1LDE4IEBAIGNvbmZp ZyBEV01BQ19TT0NGUEdBCiAJICBmb3IgdGhlIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRy aXZlciBpcyB1c2VkIGZvcgogCSAgYXJyaWE1IGFuZCBjeWNsb25lNSBGUEdBIFNvQ3MuCiAKK2Nv bmZpZyBEV01BQ19TVEFSRklWRQorCXRyaXN0YXRlICJTdGFyRml2ZSBEV01BQyBzdXBwb3J0Igor CWRlZmF1bHQgbSBpZiBTT0NfU1RBUkZJVkUKKwlkZXBlbmRzIG9uIFNPQ19TVEFSRklWRSB8fCBD T01QSUxFX1RFU1QKKwlzZWxlY3QgTUZEX1NZU0NPTgorCWhlbHAKKwkgIFN1cHBvcnQgZm9yIGV0 aGVybmV0IGNvbnRyb2xsZXIgb24gU3RhckZpdmUgU09Dcy4KKworCSAgVGhpcyBzZWxlY3RzIFN0 YXJGaXZlIFNvQyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWMgZGV2aWNlCisJICBk cml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIHRoZSBKSDcxeDAgc2VyaWVzIEdNQUMgZXRo ZXJuZXQKKwkgIGNvbnRyb2xsZXIuCisKIGNvbmZpZyBEV01BQ19TVEkKIAl0cmlzdGF0ZSAiU1Rp IEdNQUMgc3VwcG9ydCIKIAlkZWZhdWx0IEFSQ0hfU1RJCmRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZSBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlCmluZGV4IDA1N2U0YmFiNWMwOC4uODczOGZkYmI0YjJk IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmls ZQorKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZQpAQCAt MjMsNiArMjMsNyBAQCBvYmotJChDT05GSUdfRFdNQUNfT1hOQVMpCSs9IGR3bWFjLW94bmFzLm8K IG9iai0kKENPTkZJR19EV01BQ19RQ09NX0VUSFFPUykJKz0gZHdtYWMtcWNvbS1ldGhxb3Mubwog b2JqLSQoQ09ORklHX0RXTUFDX1JPQ0tDSElQKQkrPSBkd21hYy1yay5vCiBvYmotJChDT05GSUdf RFdNQUNfU09DRlBHQSkJKz0gZHdtYWMtYWx0ci1zb2NmcGdhLm8KK29iai0kKENPTkZJR19EV01B Q19TVEFSRklWRSkJKz0gZHdtYWMtc3RhcmZpdmUubwogb2JqLSQoQ09ORklHX0RXTUFDX1NUSSkJ CSs9IGR3bWFjLXN0aS5vCiBvYmotJChDT05GSUdfRFdNQUNfU1RNMzIpCSs9IGR3bWFjLXN0bTMy Lm8KIG9iai0kKENPTkZJR19EV01BQ19TVU5YSSkJKz0gZHdtYWMtc3VueGkubwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RhcmZpdmUuYyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0YXJmaXZlLmMKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5kNGM4MWYxYTU0ODIKLS0tIC9k ZXYvbnVsbAorKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1z dGFyZml2ZS5jCkBAIC0wLDAgKzEsMTU1IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjog R1BMLTIuMAorLyoKKyAqIGR3bWFjLXN0YXJmaXZlLmMgLSBEV01BQyBnbHVlIGxheWVyIGZvciBT dGFyRml2ZSBKSDcxMDAgU29DCisgKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEVtaWwgUmVubmVy IEJlcnRoaW5nIDxrZXJuZWxAZXNtaWwuZGs+CisgKi8KKworI2luY2x1ZGUgPGxpbnV4L21mZC9z eXNjb24uaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9vZl9k ZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxs aW51eC9yZWdtYXAuaD4KKworI2luY2x1ZGUgInN0bW1hYy5oIgorI2luY2x1ZGUgInN0bW1hY19w bGF0Zm9ybS5oIgorCisjZGVmaW5lIEpINzEwMF9TWVNNQUlOX1JFR0lTVEVSMjggMHg3MAorLyog VGhlIHZhbHVlIGJlbG93IGlzIG5vdCBhIHR5cG8sIGp1c3QgcmVhbGx5IGJhZCBuYW1pbmcgYnkg U3RhckZpdmUgwq9cXyjjg4QpXy/CryAqLworI2RlZmluZSBKSDcxMDBfU1lTTUFJTl9SRUdJU1RF UjQ5IDB4YzgKKworc3RydWN0IGR3bWFjX3N0YXJmaXZlIHsKKwlzdHJ1Y3QgZGV2aWNlICpkZXY7 CisJc3RydWN0IGNsayAqZ3R4YzsKK307CisKK3N0YXRpYyBpbnQgZHdtYWNfc3RhcmZpdmVfamg3 MTAwX3N5c2Nvbl9pbml0KHN0cnVjdCBkZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgZGV2aWNlX25v ZGUgKm5wID0gZGV2LT5vZl9ub2RlOworCXN0cnVjdCByZWdtYXAgKnN5c21haW47CisJdTMyIGd0 eGNsa19kbHljaGFpbjsKKwlpbnQgcmV0OworCisJc3lzbWFpbiA9IHN5c2Nvbl9yZWdtYXBfbG9v a3VwX2J5X3BoYW5kbGUobnAsICJzdGFyZml2ZSxzeXNjb24iKTsKKwlpZiAoSVNfRVJSKHN5c21h aW4pKQorCQlyZXR1cm4gZGV2X2Vycl9wcm9iZShkZXYsIFBUUl9FUlIoc3lzbWFpbiksCisJCQkJ ICAgICAiZXJyb3IgZ2V0dGluZyBzeXNtYWluIHJlZ2lzdGVyc1xuIik7CisKKwkvKiBDaG9vc2Ug UkdNSUkgaW50ZXJmYWNlIHRvIHRoZSBwaHkuCisJICogVE9ETzogc3VwcG9ydCBvdGhlciBpbnRl cmZhY2VzIG9uY2Ugd2Uga25vdyB0aGUgbWVhbmluZyBvZiBvdGhlcgorCSAqIHZhbHVlcyBpbiB0 aGUgcmVnaXN0ZXIKKwkgKi8KKwlyZXQgPSByZWdtYXBfdXBkYXRlX2JpdHMoc3lzbWFpbiwgSkg3 MTAwX1NZU01BSU5fUkVHSVNURVIyOCwgMHg3LCAxKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gZGV2 X2Vycl9wcm9iZShkZXYsIHJldCwgImVycm9yIHNlbGVjdGluZyBnbWFjIGludGVyZmFjZVxuIik7 CisKKwlpZiAoIW9mX3Byb3BlcnR5X3JlYWRfdTMyKG5wLCAic3RhcmZpdmUsZ3R4Y2xrLWRseWNo YWluIiwgJmd0eGNsa19kbHljaGFpbikpIHsKKwkJcmV0ID0gcmVnbWFwX3dyaXRlKHN5c21haW4s IEpINzEwMF9TWVNNQUlOX1JFR0lTVEVSNDksIGd0eGNsa19kbHljaGFpbik7CisJCWlmIChyZXQp CisJCQlyZXR1cm4gZGV2X2Vycl9wcm9iZShkZXYsIHJldCwgImVycm9yIHNlbGVjdGluZyBndHhj bGsgZGVsYXkgY2hhaW5cbiIpOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBk d21hY19zdGFyZml2ZV9maXhfbWFjX3NwZWVkKHZvaWQgKmRhdGEsIHVuc2lnbmVkIGludCBzcGVl ZCkKK3sKKwlzdHJ1Y3QgZHdtYWNfc3RhcmZpdmUgKmR3bWFjID0gZGF0YTsKKwl1bnNpZ25lZCBs b25nIHJhdGU7CisJaW50IHJldDsKKworCXN3aXRjaCAoc3BlZWQpIHsKKwljYXNlIFNQRUVEXzEw MDA6CisJCXJhdGUgPSAxMjUwMDAwMDA7CisJCWJyZWFrOworCWNhc2UgU1BFRURfMTAwOgorCQly YXRlID0gMjUwMDAwMDA7CisJCWJyZWFrOworCWNhc2UgU1BFRURfMTA6CisJCXJhdGUgPSAyNTAw MDAwOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlkZXZfd2Fybihkd21hYy0+ZGV2LCAidW5zdXBw b3J0ZWQgbGluayBzcGVlZCAldVxuIiwgc3BlZWQpOworCQlyZXR1cm47CisJfQorCisJcmV0ID0g Y2xrX3NldF9yYXRlKGR3bWFjLT5ndHhjLCByYXRlKTsKKwlpZiAocmV0KQorCQlkZXZfZXJyKGR3 bWFjLT5kZXYsICJlcnJvciBzZXR0aW5nIGd0eCBjbG9jayByYXRlOiAlZFxuIiwgcmV0KTsKK30K Kworc3RhdGljIGludCBkd21hY19zdGFyZml2ZV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNl ICpwZGV2KQoreworCXN0cnVjdCBzdG1tYWNfcmVzb3VyY2VzIHN0bW1hY19yZXM7CisJc3RydWN0 IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0OworCXN0cnVjdCBkd21hY19zdGFyZml2ZSAqZHdt YWM7CisJc3RydWN0IGNsayAqdHhjbGs7CisJaW50ICgqc3lzY29uX2luaXQpKHN0cnVjdCBkZXZp Y2UgKmRldik7CisJaW50IHJldDsKKworCWR3bWFjID0gZGV2bV9remFsbG9jKCZwZGV2LT5kZXYs IHNpemVvZigqZHdtYWMpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWR3bWFjKQorCQlyZXR1cm4gLUVO T01FTTsKKworCXJldCA9IHN0bW1hY19nZXRfcGxhdGZvcm1fcmVzb3VyY2VzKHBkZXYsICZzdG1t YWNfcmVzKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJc3lzY29uX2luaXQgPSBvZl9k ZXZpY2VfZ2V0X21hdGNoX2RhdGEoJnBkZXYtPmRldik7CisJaWYgKHN5c2Nvbl9pbml0KSB7CisJ CXJldCA9IHN5c2Nvbl9pbml0KCZwZGV2LT5kZXYpOworCQlpZiAocmV0KQorCQkJcmV0dXJuIHJl dDsKKwl9CisKKwlkd21hYy0+Z3R4YyA9IGRldm1fY2xrX2dldF9lbmFibGVkKCZwZGV2LT5kZXYs ICJndHhjIik7CisJaWYgKElTX0VSUihkd21hYy0+Z3R4YykpCisJCXJldHVybiBkZXZfZXJyX3By b2JlKCZwZGV2LT5kZXYsIFBUUl9FUlIoZHdtYWMtPmd0eGMpLAorCQkJCSAgICAgImVycm9yIGdl dHRpbmcvZW5hYmxpbmcgZ3R4YyBjbG9ja1xuIik7CisKKwl0eGNsayA9IGRldm1fY2xrX2dldF9l bmFibGVkKCZwZGV2LT5kZXYsICJ0eCIpOworCWlmIChJU19FUlIodHhjbGspKQorCQlyZXR1cm4g ZGV2X2Vycl9wcm9iZSgmcGRldi0+ZGV2LCBQVFJfRVJSKHR4Y2xrKSwKKwkJCQkgICAgICJlcnJv ciBnZXR0aW5nL2VuYWJsaW5nIHR4IGNsb2NrXG4iKTsKKworCXBsYXQgPSBzdG1tYWNfcHJvYmVf Y29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTsKKwlpZiAoSVNfRVJSKHBsYXQpKQorCQly ZXR1cm4gZGV2X2Vycl9wcm9iZSgmcGRldi0+ZGV2LCBQVFJfRVJSKHBsYXQpLAorCQkJCSAgICAg ImR0IGNvbmZpZ3VyYXRpb24gZmFpbGVkXG4iKTsKKworCWR3bWFjLT5kZXYgPSAmcGRldi0+ZGV2 OworCXBsYXQtPmJzcF9wcml2ID0gZHdtYWM7CisJcGxhdC0+Zml4X21hY19zcGVlZCA9IGR3bWFj X3N0YXJmaXZlX2ZpeF9tYWNfc3BlZWQ7CisKKwlyZXQgPSBzdG1tYWNfZHZyX3Byb2JlKCZwZGV2 LT5kZXYsIHBsYXQsICZzdG1tYWNfcmVzKTsKKwlpZiAocmV0KSB7CisJCXN0bW1hY19yZW1vdmVf Y29uZmlnX2R0KHBkZXYsIHBsYXQpOworCQlyZXR1cm4gcmV0OworCX0KKworCXJldHVybiAwOwor fQorCitzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBkd21hY19zdGFyZml2ZV9tYXRj aFtdID0geworCXsKKwkJLmNvbXBhdGlibGUgPSAic3RhcmZpdmUsamg3MTAwLWR3bWFjIiwKKwkJ LmRhdGEgPSBkd21hY19zdGFyZml2ZV9qaDcxMDBfc3lzY29uX2luaXQsCisJfSwKKwl7IC8qIHNl bnRpbmVsICovIH0KK307CitNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBkd21hY19zdGFyZml2ZV9t YXRjaCk7CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGR3bWFjX3N0YXJmaXZlX2Ry aXZlciA9IHsKKwkucHJvYmUgID0gZHdtYWNfc3RhcmZpdmVfcHJvYmUsCisJLnJlbW92ZSA9IHN0 bW1hY19wbHRmcl9yZW1vdmUsCisJLmRyaXZlciA9IHsKKwkJLm5hbWUgICAgICAgICAgID0gImR3 bWFjLXN0YXJmaXZlIiwKKwkJLnBtCQk9ICZzdG1tYWNfcGx0ZnJfcG1fb3BzLAorCQkub2ZfbWF0 Y2hfdGFibGUgPSBkd21hY19zdGFyZml2ZV9tYXRjaCwKKwl9LAorfTsKK21vZHVsZV9wbGF0Zm9y bV9kcml2ZXIoZHdtYWNfc3RhcmZpdmVfZHJpdmVyKTsKKworTU9EVUxFX0FVVEhPUigiRW1pbCBS ZW5uZXIgQmVydGhpbmcgPGtlcm5lbEBlc21pbC5kaz4iKTsKK01PRFVMRV9ERVNDUklQVElPTigi U3RhckZpdmUgRFdNQUMgR2x1ZSBMYXllciIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwotLSAK Mi4zOS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K bGludXgtcmlzY3YgbWFpbGluZyBsaXN0CmxpbnV4LXJpc2N2QGxpc3RzLmluZnJhZGVhZC5vcmcK aHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1yaXNjdgo= 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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 87CB0C636CC for ; Sat, 11 Feb 2023 03:32:42 +0000 (UTC) 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=qkC3GjMS7/CNFcmJ/R3y1BQjaYt3OH2LnsDPODW8YpE=; b=0OyF4/z2bV8SPP Cc9dJ0UJdUpJ9rFUw82QW3YK+X0CYNEt/58Q8ZKenmpUU47zdqcWRa+sHmFQC2VWQn2i8+ojWl+GU FClIu/kFtuiFwRkMKhrlZhjiIG9Wjf3dFGkdFloQp47uwzRG4xWeFdeFbg9vtgsNJKUFlKIKIZIcP qp1ejBd7v0phX4udYi5IP1DkmdoqETuDT2a84zZLYq+WgxkhHNJT0WW1o8T7xwxXg/jiU/e1uh3WR sQmsKkPQrx8wGT9nxIkVwv4mh+IprSTE1+3RmYgeqBI2mJOcMJqZ11Lz9+XZ8ivGhgleFNkoOdkTW 1SKZRJ9tzNq66PmCNLuw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pQgbl-008XNo-Sy; Sat, 11 Feb 2023 03:31:26 +0000 Received: from madras.collabora.co.uk ([2a00:1098:0:82:1000:25:2eeb:e5ab]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pQgPg-008RuS-Oq; Sat, 11 Feb 2023 03:18:59 +0000 Received: from localhost (unknown [86.120.32.152]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: cristicc) by madras.collabora.co.uk (Postfix) with ESMTPSA id 46C9F6602116; Sat, 11 Feb 2023 03:18:55 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1676085535; bh=TwwenY6La9ML4nip9B8ZX+9fLGGbM4jAo/uXYp0Qk4g=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=OKKkxrnUMuOi0Jh4iaoScbQdgxmTpT21oDKQCOanqE8R1krG6V9W13cJ50yrqcsVo +ucoeJ7OsadEO/0r4YYaXdoMCiUprTqbLHRIbmesNRuTkWJZcGF4WHwNEWFlMiDv7V cOX+NXcfXAB8TL+niHinGc5huEX+FnSVX89Jlvock4vuc54MDerKLyeQxlPSplwOFB N6fGJaqAHupHho1yyqlmwZqx+xRY2NkM3BM1zTh8UFFWe8KdmkWU2iYgbibZ3yPwmX om419IAXnIh0hH6Nq1tCvUHRsdq/OvvC60e6GbktI11Ny1+1hSiprEMCd0UVRLRt31 ukA0TQq82HJYw== From: Cristian Ciocaltea To: Lee Jones , Rob Herring , Krzysztof Kozlowski , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Emil Renner Berthing , Conor Dooley , Palmer Dabbelt , Paul Walmsley , Albert Ou , Giuseppe Cavallaro , Alexandre Torgue , Jose Abreu , Maxime Coquelin , Richard Cochran , Sagar Kadam , Yanhong Wang Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, linux-riscv@lists.infradead.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, kernel@collabora.com Subject: [PATCH 08/12] net: stmmac: Add glue layer for StarFive JH7100 SoC Date: Sat, 11 Feb 2023 05:18:17 +0200 Message-Id: <20230211031821.976408-9-cristian.ciocaltea@collabora.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230211031821.976408-1-cristian.ciocaltea@collabora.com> References: <20230211031821.976408-1-cristian.ciocaltea@collabora.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230210_191857_148321_FF42C993 X-CRM114-Status: GOOD ( 23.81 ) 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 RnJvbTogRW1pbCBSZW5uZXIgQmVydGhpbmcgPGtlcm5lbEBlc21pbC5kaz4KClRoaXMgYWRkcyBh IGdsdWUgbGF5ZXIgZm9yIHRoZSBTeW5vcHN5cyBEZXNpZ25XYXJlIE1BQyBJUCBjb3JlIG9uIHRo ZQpTdGFyRml2ZSBKSDcxMDAgU29DLgoKU2lnbmVkLW9mZi1ieTogRW1pbCBSZW5uZXIgQmVydGhp bmcgPGtlcm5lbEBlc21pbC5kaz4KW2Ryb3AgcmVmZXJlbmNlcyB0byBKSDcxMTAsIHVwZGF0ZSBK SDcxMDAgY29tcGF0aWJsZSBzdHJpbmddClNpZ25lZC1vZmYtYnk6IENyaXN0aWFuIENpb2NhbHRl YSA8Y3Jpc3RpYW4uY2lvY2FsdGVhQGNvbGxhYm9yYS5jb20+Ci0tLQogTUFJTlRBSU5FUlMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIGRyaXZlcnMvbmV0L2V0aGVy bmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWcgICB8ICAxMiArKwogZHJpdmVycy9uZXQvZXRoZXJu ZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUgIHwgICAxICsKIC4uLi9ldGhlcm5ldC9zdG1pY3Jv L3N0bW1hYy9kd21hYy1zdGFyZml2ZS5jICB8IDE1NSArKysrKysrKysrKysrKysrKysKIDQgZmls ZXMgY2hhbmdlZCwgMTY5IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJz L25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFyZml2ZS5jCgpkaWZmIC0tZ2l0 IGEvTUFJTlRBSU5FUlMgYi9NQUlOVEFJTkVSUwppbmRleCBkNDg0NjhiODFiOTQuLmRlZmVkYWZm NjA0MSAxMDA2NDQKLS0tIGEvTUFJTlRBSU5FUlMKKysrIGIvTUFJTlRBSU5FUlMKQEAgLTE5ODIw LDYgKzE5ODIwLDcgQEAgU1RBUkZJVkUgRFdNQUMgR0xVRSBMQVlFUgogTToJRW1pbCBSZW5uZXIg QmVydGhpbmcgPGtlcm5lbEBlc21pbC5kaz4KIFM6CU1haW50YWluZWQKIEY6CURvY3VtZW50YXRp b24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc3RhcmZpdmUsamg3MTAwLWR3bWFjLnlhbWwKK0Y6 CWRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0YXJmaXZlLmMKIAog U1RBUkZJVkUgSkg3MTAwIENMT0NLIERSSVZFUlMKIE06CUVtaWwgUmVubmVyIEJlcnRoaW5nIDxr ZXJuZWxAZXNtaWwuZGs+CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3Jv L3N0bW1hYy9LY29uZmlnIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2Nv bmZpZwppbmRleCBmNzc1MTFmZTRlODcuLjJjODFhYTU5NDI5MSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZworKysgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnCkBAIC0xNjUsNiArMTY1LDE4IEBAIGNvbmZp ZyBEV01BQ19TT0NGUEdBCiAJICBmb3IgdGhlIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRy aXZlciBpcyB1c2VkIGZvcgogCSAgYXJyaWE1IGFuZCBjeWNsb25lNSBGUEdBIFNvQ3MuCiAKK2Nv bmZpZyBEV01BQ19TVEFSRklWRQorCXRyaXN0YXRlICJTdGFyRml2ZSBEV01BQyBzdXBwb3J0Igor CWRlZmF1bHQgbSBpZiBTT0NfU1RBUkZJVkUKKwlkZXBlbmRzIG9uIFNPQ19TVEFSRklWRSB8fCBD T01QSUxFX1RFU1QKKwlzZWxlY3QgTUZEX1NZU0NPTgorCWhlbHAKKwkgIFN1cHBvcnQgZm9yIGV0 aGVybmV0IGNvbnRyb2xsZXIgb24gU3RhckZpdmUgU09Dcy4KKworCSAgVGhpcyBzZWxlY3RzIFN0 YXJGaXZlIFNvQyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWMgZGV2aWNlCisJICBk cml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIHRoZSBKSDcxeDAgc2VyaWVzIEdNQUMgZXRo ZXJuZXQKKwkgIGNvbnRyb2xsZXIuCisKIGNvbmZpZyBEV01BQ19TVEkKIAl0cmlzdGF0ZSAiU1Rp IEdNQUMgc3VwcG9ydCIKIAlkZWZhdWx0IEFSQ0hfU1RJCmRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZSBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlCmluZGV4IDA1N2U0YmFiNWMwOC4uODczOGZkYmI0YjJk IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmls ZQorKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZQpAQCAt MjMsNiArMjMsNyBAQCBvYmotJChDT05GSUdfRFdNQUNfT1hOQVMpCSs9IGR3bWFjLW94bmFzLm8K IG9iai0kKENPTkZJR19EV01BQ19RQ09NX0VUSFFPUykJKz0gZHdtYWMtcWNvbS1ldGhxb3Mubwog b2JqLSQoQ09ORklHX0RXTUFDX1JPQ0tDSElQKQkrPSBkd21hYy1yay5vCiBvYmotJChDT05GSUdf RFdNQUNfU09DRlBHQSkJKz0gZHdtYWMtYWx0ci1zb2NmcGdhLm8KK29iai0kKENPTkZJR19EV01B Q19TVEFSRklWRSkJKz0gZHdtYWMtc3RhcmZpdmUubwogb2JqLSQoQ09ORklHX0RXTUFDX1NUSSkJ CSs9IGR3bWFjLXN0aS5vCiBvYmotJChDT05GSUdfRFdNQUNfU1RNMzIpCSs9IGR3bWFjLXN0bTMy Lm8KIG9iai0kKENPTkZJR19EV01BQ19TVU5YSSkJKz0gZHdtYWMtc3VueGkubwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RhcmZpdmUuYyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0YXJmaXZlLmMKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5kNGM4MWYxYTU0ODIKLS0tIC9k ZXYvbnVsbAorKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1z dGFyZml2ZS5jCkBAIC0wLDAgKzEsMTU1IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjog R1BMLTIuMAorLyoKKyAqIGR3bWFjLXN0YXJmaXZlLmMgLSBEV01BQyBnbHVlIGxheWVyIGZvciBT dGFyRml2ZSBKSDcxMDAgU29DCisgKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEVtaWwgUmVubmVy IEJlcnRoaW5nIDxrZXJuZWxAZXNtaWwuZGs+CisgKi8KKworI2luY2x1ZGUgPGxpbnV4L21mZC9z eXNjb24uaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9vZl9k ZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxs aW51eC9yZWdtYXAuaD4KKworI2luY2x1ZGUgInN0bW1hYy5oIgorI2luY2x1ZGUgInN0bW1hY19w bGF0Zm9ybS5oIgorCisjZGVmaW5lIEpINzEwMF9TWVNNQUlOX1JFR0lTVEVSMjggMHg3MAorLyog VGhlIHZhbHVlIGJlbG93IGlzIG5vdCBhIHR5cG8sIGp1c3QgcmVhbGx5IGJhZCBuYW1pbmcgYnkg U3RhckZpdmUgwq9cXyjjg4QpXy/CryAqLworI2RlZmluZSBKSDcxMDBfU1lTTUFJTl9SRUdJU1RF UjQ5IDB4YzgKKworc3RydWN0IGR3bWFjX3N0YXJmaXZlIHsKKwlzdHJ1Y3QgZGV2aWNlICpkZXY7 CisJc3RydWN0IGNsayAqZ3R4YzsKK307CisKK3N0YXRpYyBpbnQgZHdtYWNfc3RhcmZpdmVfamg3 MTAwX3N5c2Nvbl9pbml0KHN0cnVjdCBkZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgZGV2aWNlX25v ZGUgKm5wID0gZGV2LT5vZl9ub2RlOworCXN0cnVjdCByZWdtYXAgKnN5c21haW47CisJdTMyIGd0 eGNsa19kbHljaGFpbjsKKwlpbnQgcmV0OworCisJc3lzbWFpbiA9IHN5c2Nvbl9yZWdtYXBfbG9v a3VwX2J5X3BoYW5kbGUobnAsICJzdGFyZml2ZSxzeXNjb24iKTsKKwlpZiAoSVNfRVJSKHN5c21h aW4pKQorCQlyZXR1cm4gZGV2X2Vycl9wcm9iZShkZXYsIFBUUl9FUlIoc3lzbWFpbiksCisJCQkJ ICAgICAiZXJyb3IgZ2V0dGluZyBzeXNtYWluIHJlZ2lzdGVyc1xuIik7CisKKwkvKiBDaG9vc2Ug UkdNSUkgaW50ZXJmYWNlIHRvIHRoZSBwaHkuCisJICogVE9ETzogc3VwcG9ydCBvdGhlciBpbnRl cmZhY2VzIG9uY2Ugd2Uga25vdyB0aGUgbWVhbmluZyBvZiBvdGhlcgorCSAqIHZhbHVlcyBpbiB0 aGUgcmVnaXN0ZXIKKwkgKi8KKwlyZXQgPSByZWdtYXBfdXBkYXRlX2JpdHMoc3lzbWFpbiwgSkg3 MTAwX1NZU01BSU5fUkVHSVNURVIyOCwgMHg3LCAxKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gZGV2 X2Vycl9wcm9iZShkZXYsIHJldCwgImVycm9yIHNlbGVjdGluZyBnbWFjIGludGVyZmFjZVxuIik7 CisKKwlpZiAoIW9mX3Byb3BlcnR5X3JlYWRfdTMyKG5wLCAic3RhcmZpdmUsZ3R4Y2xrLWRseWNo YWluIiwgJmd0eGNsa19kbHljaGFpbikpIHsKKwkJcmV0ID0gcmVnbWFwX3dyaXRlKHN5c21haW4s IEpINzEwMF9TWVNNQUlOX1JFR0lTVEVSNDksIGd0eGNsa19kbHljaGFpbik7CisJCWlmIChyZXQp CisJCQlyZXR1cm4gZGV2X2Vycl9wcm9iZShkZXYsIHJldCwgImVycm9yIHNlbGVjdGluZyBndHhj bGsgZGVsYXkgY2hhaW5cbiIpOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBk d21hY19zdGFyZml2ZV9maXhfbWFjX3NwZWVkKHZvaWQgKmRhdGEsIHVuc2lnbmVkIGludCBzcGVl ZCkKK3sKKwlzdHJ1Y3QgZHdtYWNfc3RhcmZpdmUgKmR3bWFjID0gZGF0YTsKKwl1bnNpZ25lZCBs b25nIHJhdGU7CisJaW50IHJldDsKKworCXN3aXRjaCAoc3BlZWQpIHsKKwljYXNlIFNQRUVEXzEw MDA6CisJCXJhdGUgPSAxMjUwMDAwMDA7CisJCWJyZWFrOworCWNhc2UgU1BFRURfMTAwOgorCQly YXRlID0gMjUwMDAwMDA7CisJCWJyZWFrOworCWNhc2UgU1BFRURfMTA6CisJCXJhdGUgPSAyNTAw MDAwOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlkZXZfd2Fybihkd21hYy0+ZGV2LCAidW5zdXBw b3J0ZWQgbGluayBzcGVlZCAldVxuIiwgc3BlZWQpOworCQlyZXR1cm47CisJfQorCisJcmV0ID0g Y2xrX3NldF9yYXRlKGR3bWFjLT5ndHhjLCByYXRlKTsKKwlpZiAocmV0KQorCQlkZXZfZXJyKGR3 bWFjLT5kZXYsICJlcnJvciBzZXR0aW5nIGd0eCBjbG9jayByYXRlOiAlZFxuIiwgcmV0KTsKK30K Kworc3RhdGljIGludCBkd21hY19zdGFyZml2ZV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNl ICpwZGV2KQoreworCXN0cnVjdCBzdG1tYWNfcmVzb3VyY2VzIHN0bW1hY19yZXM7CisJc3RydWN0 IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0OworCXN0cnVjdCBkd21hY19zdGFyZml2ZSAqZHdt YWM7CisJc3RydWN0IGNsayAqdHhjbGs7CisJaW50ICgqc3lzY29uX2luaXQpKHN0cnVjdCBkZXZp Y2UgKmRldik7CisJaW50IHJldDsKKworCWR3bWFjID0gZGV2bV9remFsbG9jKCZwZGV2LT5kZXYs IHNpemVvZigqZHdtYWMpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWR3bWFjKQorCQlyZXR1cm4gLUVO T01FTTsKKworCXJldCA9IHN0bW1hY19nZXRfcGxhdGZvcm1fcmVzb3VyY2VzKHBkZXYsICZzdG1t YWNfcmVzKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJc3lzY29uX2luaXQgPSBvZl9k ZXZpY2VfZ2V0X21hdGNoX2RhdGEoJnBkZXYtPmRldik7CisJaWYgKHN5c2Nvbl9pbml0KSB7CisJ CXJldCA9IHN5c2Nvbl9pbml0KCZwZGV2LT5kZXYpOworCQlpZiAocmV0KQorCQkJcmV0dXJuIHJl dDsKKwl9CisKKwlkd21hYy0+Z3R4YyA9IGRldm1fY2xrX2dldF9lbmFibGVkKCZwZGV2LT5kZXYs ICJndHhjIik7CisJaWYgKElTX0VSUihkd21hYy0+Z3R4YykpCisJCXJldHVybiBkZXZfZXJyX3By b2JlKCZwZGV2LT5kZXYsIFBUUl9FUlIoZHdtYWMtPmd0eGMpLAorCQkJCSAgICAgImVycm9yIGdl dHRpbmcvZW5hYmxpbmcgZ3R4YyBjbG9ja1xuIik7CisKKwl0eGNsayA9IGRldm1fY2xrX2dldF9l bmFibGVkKCZwZGV2LT5kZXYsICJ0eCIpOworCWlmIChJU19FUlIodHhjbGspKQorCQlyZXR1cm4g ZGV2X2Vycl9wcm9iZSgmcGRldi0+ZGV2LCBQVFJfRVJSKHR4Y2xrKSwKKwkJCQkgICAgICJlcnJv ciBnZXR0aW5nL2VuYWJsaW5nIHR4IGNsb2NrXG4iKTsKKworCXBsYXQgPSBzdG1tYWNfcHJvYmVf Y29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTsKKwlpZiAoSVNfRVJSKHBsYXQpKQorCQly ZXR1cm4gZGV2X2Vycl9wcm9iZSgmcGRldi0+ZGV2LCBQVFJfRVJSKHBsYXQpLAorCQkJCSAgICAg ImR0IGNvbmZpZ3VyYXRpb24gZmFpbGVkXG4iKTsKKworCWR3bWFjLT5kZXYgPSAmcGRldi0+ZGV2 OworCXBsYXQtPmJzcF9wcml2ID0gZHdtYWM7CisJcGxhdC0+Zml4X21hY19zcGVlZCA9IGR3bWFj X3N0YXJmaXZlX2ZpeF9tYWNfc3BlZWQ7CisKKwlyZXQgPSBzdG1tYWNfZHZyX3Byb2JlKCZwZGV2 LT5kZXYsIHBsYXQsICZzdG1tYWNfcmVzKTsKKwlpZiAocmV0KSB7CisJCXN0bW1hY19yZW1vdmVf Y29uZmlnX2R0KHBkZXYsIHBsYXQpOworCQlyZXR1cm4gcmV0OworCX0KKworCXJldHVybiAwOwor fQorCitzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBkd21hY19zdGFyZml2ZV9tYXRj aFtdID0geworCXsKKwkJLmNvbXBhdGlibGUgPSAic3RhcmZpdmUsamg3MTAwLWR3bWFjIiwKKwkJ LmRhdGEgPSBkd21hY19zdGFyZml2ZV9qaDcxMDBfc3lzY29uX2luaXQsCisJfSwKKwl7IC8qIHNl bnRpbmVsICovIH0KK307CitNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBkd21hY19zdGFyZml2ZV9t YXRjaCk7CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGR3bWFjX3N0YXJmaXZlX2Ry aXZlciA9IHsKKwkucHJvYmUgID0gZHdtYWNfc3RhcmZpdmVfcHJvYmUsCisJLnJlbW92ZSA9IHN0 bW1hY19wbHRmcl9yZW1vdmUsCisJLmRyaXZlciA9IHsKKwkJLm5hbWUgICAgICAgICAgID0gImR3 bWFjLXN0YXJmaXZlIiwKKwkJLnBtCQk9ICZzdG1tYWNfcGx0ZnJfcG1fb3BzLAorCQkub2ZfbWF0 Y2hfdGFibGUgPSBkd21hY19zdGFyZml2ZV9tYXRjaCwKKwl9LAorfTsKK21vZHVsZV9wbGF0Zm9y bV9kcml2ZXIoZHdtYWNfc3RhcmZpdmVfZHJpdmVyKTsKKworTU9EVUxFX0FVVEhPUigiRW1pbCBS ZW5uZXIgQmVydGhpbmcgPGtlcm5lbEBlc21pbC5kaz4iKTsKK01PRFVMRV9ERVNDUklQVElPTigi U3RhckZpdmUgRFdNQUMgR2x1ZSBMYXllciIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwotLSAK Mi4zOS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K bGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZy YWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGlu dXgtYXJtLWtlcm5lbAo=