All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nikita Shubin via B4 Relay <devnull+nikita.shubin.maquefel.me@kernel.org>
To: Hartley Sweeten <hsweeten@visionengravers.com>,
	 "David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	 Jakub Kicinski <kuba@kernel.org>,
	Paolo Abeni <pabeni@redhat.com>
Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
	 Arnd Bergmann <arnd@arndb.de>, Andrew Lunn <andrew@lunn.ch>
Subject: [PATCH v7 18/39] net: cirrus: add DT support for Cirrus EP93xx
Date: Thu, 18 Jan 2024 11:21:01 +0300	[thread overview]
Message-ID: <20240118-ep93xx-v7-18-d953846ae771@maquefel.me> (raw)
In-Reply-To: <20240118-ep93xx-v7-0-d953846ae771@maquefel.me>

From: Nikita Shubin <nikita.shubin@maquefel.me>

- add OF ID match table
- get phy_id from the device tree, as part of mdio
- copy_addr is now always used, as there is no SoC/board that aren't
- dropped platform header

Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Tested-by: Alexander Sverdlin <alexander.sverdlin@gmail.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Nikita Shubin <nikita.shubin@maquefel.me>
---
 drivers/net/ethernet/cirrus/ep93xx_eth.c | 63 ++++++++++++++++----------------
 1 file changed, 32 insertions(+), 31 deletions(-)

diff --git a/drivers/net/ethernet/cirrus/ep93xx_eth.c b/drivers/net/ethernet/cirrus/ep93xx_eth.c
index 1c2a540db13d..be0b11014af7 100644
--- a/drivers/net/ethernet/cirrus/ep93xx_eth.c
+++ b/drivers/net/ethernet/cirrus/ep93xx_eth.c
@@ -16,13 +16,12 @@
 #include <linux/ethtool.h>
 #include <linux/interrupt.h>
 #include <linux/moduleparam.h>
+#include <linux/of.h>
 #include <linux/platform_device.h>
 #include <linux/delay.h>
 #include <linux/io.h>
 #include <linux/slab.h>
 
-#include <linux/platform_data/eth-ep93xx.h>
-
 #define DRV_MODULE_NAME		"ep93xx-eth"
 
 #define RX_QUEUE_ENTRIES	64
@@ -738,25 +737,6 @@ static const struct net_device_ops ep93xx_netdev_ops = {
 	.ndo_set_mac_address	= eth_mac_addr,
 };
 
-static struct net_device *ep93xx_dev_alloc(struct ep93xx_eth_data *data)
-{
-	struct net_device *dev;
-
-	dev = alloc_etherdev(sizeof(struct ep93xx_priv));
-	if (dev == NULL)
-		return NULL;
-
-	eth_hw_addr_set(dev, data->dev_addr);
-
-	dev->ethtool_ops = &ep93xx_ethtool_ops;
-	dev->netdev_ops = &ep93xx_netdev_ops;
-
-	dev->features |= NETIF_F_SG | NETIF_F_HW_CSUM;
-
-	return dev;
-}
-
-
 static void ep93xx_eth_remove(struct platform_device *pdev)
 {
 	struct net_device *dev;
@@ -786,27 +766,47 @@ static void ep93xx_eth_remove(struct platform_device *pdev)
 
 static int ep93xx_eth_probe(struct platform_device *pdev)
 {
-	struct ep93xx_eth_data *data;
 	struct net_device *dev;
 	struct ep93xx_priv *ep;
 	struct resource *mem;
+	void __iomem *base_addr;
+	struct device_node *np;
+	u32 phy_id;
 	int irq;
 	int err;
 
 	if (pdev == NULL)
 		return -ENODEV;
-	data = dev_get_platdata(&pdev->dev);
 
 	mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 	irq = platform_get_irq(pdev, 0);
 	if (!mem || irq < 0)
 		return -ENXIO;
 
-	dev = ep93xx_dev_alloc(data);
+	base_addr = ioremap(mem->start, resource_size(mem));
+	if (!base_addr)
+		return dev_err_probe(&pdev->dev, -EIO, "Failed to ioremap ethernet registers\n");
+
+	np = of_parse_phandle(pdev->dev.of_node, "phy-handle", 0);
+	if (!np)
+		return dev_err_probe(&pdev->dev, -ENODEV, "Please provide \"phy-handle\"\n");
+
+	err = of_property_read_u32(np, "reg", &phy_id);
+	of_node_put(np);
+	if (err)
+		return dev_err_probe(&pdev->dev, -ENOENT, "Failed to locate \"phy_id\"\n");
+
+	dev = alloc_etherdev(sizeof(struct ep93xx_priv));
 	if (dev == NULL) {
 		err = -ENOMEM;
 		goto err_out;
 	}
+
+	eth_hw_addr_set(dev, base_addr + 0x50);
+	dev->ethtool_ops = &ep93xx_ethtool_ops;
+	dev->netdev_ops = &ep93xx_netdev_ops;
+	dev->features |= NETIF_F_SG | NETIF_F_HW_CSUM;
+
 	ep = netdev_priv(dev);
 	ep->dev = dev;
 	SET_NETDEV_DEV(dev, &pdev->dev);
@@ -822,15 +822,10 @@ static int ep93xx_eth_probe(struct platform_device *pdev)
 		goto err_out;
 	}
 
-	ep->base_addr = ioremap(mem->start, resource_size(mem));
-	if (ep->base_addr == NULL) {
-		dev_err(&pdev->dev, "Failed to ioremap ethernet registers\n");
-		err = -EIO;
-		goto err_out;
-	}
+	ep->base_addr = base_addr;
 	ep->irq = irq;
 
-	ep->mii.phy_id = data->phy_id;
+	ep->mii.phy_id = phy_id;
 	ep->mii.phy_id_mask = 0x1f;
 	ep->mii.reg_num_mask = 0x1f;
 	ep->mii.dev = dev;
@@ -857,12 +852,18 @@ static int ep93xx_eth_probe(struct platform_device *pdev)
 	return err;
 }
 
+static const struct of_device_id ep93xx_eth_of_ids[] = {
+	{ .compatible = "cirrus,ep9301-eth" },
+	{ /* sentinel */ }
+};
+MODULE_DEVICE_TABLE(of, ep93xx_eth_of_ids);
 
 static struct platform_driver ep93xx_eth_driver = {
 	.probe		= ep93xx_eth_probe,
 	.remove_new	= ep93xx_eth_remove,
 	.driver		= {
 		.name	= "ep93xx-eth",
+		.of_match_table = ep93xx_eth_of_ids,
 	},
 };
 

-- 
2.41.0


WARNING: multiple messages have this Message-ID (diff)
From: Nikita Shubin <nikita.shubin@maquefel.me>
To: Hartley Sweeten <hsweeten@visionengravers.com>,
	 "David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	 Jakub Kicinski <kuba@kernel.org>,
	Paolo Abeni <pabeni@redhat.com>
Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
	 Arnd Bergmann <arnd@arndb.de>, Andrew Lunn <andrew@lunn.ch>
Subject: [PATCH v7 18/39] net: cirrus: add DT support for Cirrus EP93xx
Date: Thu, 18 Jan 2024 11:21:01 +0300	[thread overview]
Message-ID: <20240118-ep93xx-v7-18-d953846ae771@maquefel.me> (raw)
In-Reply-To: <20240118-ep93xx-v7-0-d953846ae771@maquefel.me>

- add OF ID match table
- get phy_id from the device tree, as part of mdio
- copy_addr is now always used, as there is no SoC/board that aren't
- dropped platform header

Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Tested-by: Alexander Sverdlin <alexander.sverdlin@gmail.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Nikita Shubin <nikita.shubin@maquefel.me>
---
 drivers/net/ethernet/cirrus/ep93xx_eth.c | 63 ++++++++++++++++----------------
 1 file changed, 32 insertions(+), 31 deletions(-)

diff --git a/drivers/net/ethernet/cirrus/ep93xx_eth.c b/drivers/net/ethernet/cirrus/ep93xx_eth.c
index 1c2a540db13d..be0b11014af7 100644
--- a/drivers/net/ethernet/cirrus/ep93xx_eth.c
+++ b/drivers/net/ethernet/cirrus/ep93xx_eth.c
@@ -16,13 +16,12 @@
 #include <linux/ethtool.h>
 #include <linux/interrupt.h>
 #include <linux/moduleparam.h>
+#include <linux/of.h>
 #include <linux/platform_device.h>
 #include <linux/delay.h>
 #include <linux/io.h>
 #include <linux/slab.h>
 
-#include <linux/platform_data/eth-ep93xx.h>
-
 #define DRV_MODULE_NAME		"ep93xx-eth"
 
 #define RX_QUEUE_ENTRIES	64
@@ -738,25 +737,6 @@ static const struct net_device_ops ep93xx_netdev_ops = {
 	.ndo_set_mac_address	= eth_mac_addr,
 };
 
-static struct net_device *ep93xx_dev_alloc(struct ep93xx_eth_data *data)
-{
-	struct net_device *dev;
-
-	dev = alloc_etherdev(sizeof(struct ep93xx_priv));
-	if (dev == NULL)
-		return NULL;
-
-	eth_hw_addr_set(dev, data->dev_addr);
-
-	dev->ethtool_ops = &ep93xx_ethtool_ops;
-	dev->netdev_ops = &ep93xx_netdev_ops;
-
-	dev->features |= NETIF_F_SG | NETIF_F_HW_CSUM;
-
-	return dev;
-}
-
-
 static void ep93xx_eth_remove(struct platform_device *pdev)
 {
 	struct net_device *dev;
@@ -786,27 +766,47 @@ static void ep93xx_eth_remove(struct platform_device *pdev)
 
 static int ep93xx_eth_probe(struct platform_device *pdev)
 {
-	struct ep93xx_eth_data *data;
 	struct net_device *dev;
 	struct ep93xx_priv *ep;
 	struct resource *mem;
+	void __iomem *base_addr;
+	struct device_node *np;
+	u32 phy_id;
 	int irq;
 	int err;
 
 	if (pdev == NULL)
 		return -ENODEV;
-	data = dev_get_platdata(&pdev->dev);
 
 	mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 	irq = platform_get_irq(pdev, 0);
 	if (!mem || irq < 0)
 		return -ENXIO;
 
-	dev = ep93xx_dev_alloc(data);
+	base_addr = ioremap(mem->start, resource_size(mem));
+	if (!base_addr)
+		return dev_err_probe(&pdev->dev, -EIO, "Failed to ioremap ethernet registers\n");
+
+	np = of_parse_phandle(pdev->dev.of_node, "phy-handle", 0);
+	if (!np)
+		return dev_err_probe(&pdev->dev, -ENODEV, "Please provide \"phy-handle\"\n");
+
+	err = of_property_read_u32(np, "reg", &phy_id);
+	of_node_put(np);
+	if (err)
+		return dev_err_probe(&pdev->dev, -ENOENT, "Failed to locate \"phy_id\"\n");
+
+	dev = alloc_etherdev(sizeof(struct ep93xx_priv));
 	if (dev == NULL) {
 		err = -ENOMEM;
 		goto err_out;
 	}
+
+	eth_hw_addr_set(dev, base_addr + 0x50);
+	dev->ethtool_ops = &ep93xx_ethtool_ops;
+	dev->netdev_ops = &ep93xx_netdev_ops;
+	dev->features |= NETIF_F_SG | NETIF_F_HW_CSUM;
+
 	ep = netdev_priv(dev);
 	ep->dev = dev;
 	SET_NETDEV_DEV(dev, &pdev->dev);
@@ -822,15 +822,10 @@ static int ep93xx_eth_probe(struct platform_device *pdev)
 		goto err_out;
 	}
 
-	ep->base_addr = ioremap(mem->start, resource_size(mem));
-	if (ep->base_addr == NULL) {
-		dev_err(&pdev->dev, "Failed to ioremap ethernet registers\n");
-		err = -EIO;
-		goto err_out;
-	}
+	ep->base_addr = base_addr;
 	ep->irq = irq;
 
-	ep->mii.phy_id = data->phy_id;
+	ep->mii.phy_id = phy_id;
 	ep->mii.phy_id_mask = 0x1f;
 	ep->mii.reg_num_mask = 0x1f;
 	ep->mii.dev = dev;
@@ -857,12 +852,18 @@ static int ep93xx_eth_probe(struct platform_device *pdev)
 	return err;
 }
 
+static const struct of_device_id ep93xx_eth_of_ids[] = {
+	{ .compatible = "cirrus,ep9301-eth" },
+	{ /* sentinel */ }
+};
+MODULE_DEVICE_TABLE(of, ep93xx_eth_of_ids);
 
 static struct platform_driver ep93xx_eth_driver = {
 	.probe		= ep93xx_eth_probe,
 	.remove_new	= ep93xx_eth_remove,
 	.driver		= {
 		.name	= "ep93xx-eth",
+		.of_match_table = ep93xx_eth_of_ids,
 	},
 };
 

-- 
2.41.0


  parent reply	other threads:[~2024-01-18  8:22 UTC|newest]

Thread overview: 119+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-18  8:20 [PATCH v7 00/39] ep93xx device tree conversion Nikita Shubin via B4 Relay
2024-01-18  8:20 ` Nikita Shubin
2024-01-18  8:20 ` Nikita Shubin via B4 Relay
2024-01-18  8:20 ` [PATCH v7 01/39] ARM: ep93xx: Add terminator to gpiod_lookup_table Nikita Shubin via B4 Relay
2024-01-18  8:20   ` Nikita Shubin
2024-01-18  8:20   ` Nikita Shubin via B4 Relay
2024-01-18 23:52   ` Linus Walleij
2024-01-18 23:52     ` Linus Walleij
2024-02-05  9:42     ` Alexander Sverdlin
2024-02-05  9:42       ` Alexander Sverdlin
2024-02-05 10:02       ` Arnd Bergmann
2024-02-05 10:02         ` Arnd Bergmann
2024-02-05 10:13         ` Alexander Sverdlin
2024-02-05 10:13           ` Alexander Sverdlin
2024-02-04 16:32   ` andy.shevchenko
2024-02-04 16:32     ` andy.shevchenko
2024-02-05  8:52   ` Uwe Kleine-König
2024-02-05  8:52     ` Uwe Kleine-König
2024-01-18  8:20 ` [PATCH v7 02/39] gpio: ep93xx: split device in multiple Nikita Shubin via B4 Relay
2024-01-18  8:20   ` Nikita Shubin
2024-01-18  8:20   ` Nikita Shubin via B4 Relay
2024-01-18  8:20 ` [PATCH v7 03/39] ARM: ep93xx: add regmap aux_dev Nikita Shubin via B4 Relay
2024-01-18  8:20   ` Nikita Shubin
2024-03-06  8:06   ` Linus Walleij
2024-01-18  8:20 ` [PATCH v7 04/39] clk: ep93xx: add DT support for Cirrus EP93xx Nikita Shubin via B4 Relay
2024-01-18  8:20   ` Nikita Shubin
2024-01-18  8:20 ` [PATCH v7 05/39] pinctrl: add a Cirrus ep93xx SoC pin controller Nikita Shubin via B4 Relay
2024-01-18  8:20   ` Nikita Shubin
2024-02-04 16:56   ` andy.shevchenko
2024-01-18  8:20 ` [PATCH v7 06/39] power: reset: Add a driver for the ep93xx reset Nikita Shubin via B4 Relay
2024-01-18  8:20   ` Nikita Shubin
2024-01-18  8:20 ` [PATCH v7 07/39] dt-bindings: soc: Add Cirrus EP93xx Nikita Shubin via B4 Relay
2024-01-18  8:20   ` Nikita Shubin
2024-01-18  8:20 ` [PATCH v7 08/39] soc: Add SoC driver for Cirrus ep93xx Nikita Shubin via B4 Relay
2024-01-18  8:20   ` Nikita Shubin
2024-02-04 16:52   ` andy.shevchenko
2024-02-13  9:33     ` Nikita Shubin
2024-02-13 10:45       ` Andy Shevchenko
2024-01-18  8:20 ` [PATCH v7 09/39] dt-bindings: dma: Add Cirrus EP93xx Nikita Shubin via B4 Relay
2024-01-18  8:20   ` Nikita Shubin
2024-01-18  8:20 ` [PATCH v7 10/39] dma: cirrus: Convert to DT for " Nikita Shubin via B4 Relay
2024-01-18  8:20   ` Nikita Shubin
2024-01-18  8:20 ` [PATCH v7 11/39] dt-bindings: watchdog: Add Cirrus EP93x Nikita Shubin via B4 Relay
2024-01-18  8:20   ` Nikita Shubin
2024-01-18  8:20 ` [PATCH v7 12/39] watchdog: ep93xx: add DT support for Cirrus EP93xx Nikita Shubin via B4 Relay
2024-01-18  8:20   ` Nikita Shubin
2024-01-18  8:20 ` [PATCH v7 13/39] dt-bindings: pwm: Add " Nikita Shubin via B4 Relay
2024-01-18  8:20   ` Nikita Shubin
2024-01-18  8:20 ` [PATCH v7 14/39] pwm: ep93xx: add DT support for " Nikita Shubin via B4 Relay
2024-01-18  8:20   ` Nikita Shubin
2024-01-18  8:20 ` [PATCH v7 15/39] dt-bindings: spi: Add " Nikita Shubin via B4 Relay
2024-01-18  8:20   ` Nikita Shubin
2024-01-18  8:20 ` [PATCH v7 16/39] spi: ep93xx: add DT support for " Nikita Shubin via B4 Relay
2024-01-18  8:20   ` Nikita Shubin
2024-01-18  8:21 ` [PATCH v7 17/39] dt-bindings: net: Add " Nikita Shubin via B4 Relay
2024-01-18  8:21   ` Nikita Shubin
2024-01-18  8:21 ` Nikita Shubin via B4 Relay [this message]
2024-01-18  8:21   ` [PATCH v7 18/39] net: cirrus: add DT support for " Nikita Shubin
2024-01-18  8:21 ` [PATCH v7 19/39] dt-bindings: mtd: Add ts7200 nand-controller Nikita Shubin via B4 Relay
2024-01-18  8:21   ` Nikita Shubin
2024-01-18  8:21   ` Nikita Shubin via B4 Relay
2024-01-18  8:21 ` [PATCH v7 20/39] mtd: rawnand: add support for ts72xx Nikita Shubin via B4 Relay
2024-01-18  8:21   ` Nikita Shubin
2024-01-18  8:21   ` Nikita Shubin via B4 Relay
2024-02-04 16:49   ` andy.shevchenko
2024-02-04 16:49     ` andy.shevchenko
2024-01-18  8:21 ` [PATCH v7 21/39] dt-bindings: ata: Add Cirrus EP93xx Nikita Shubin via B4 Relay
2024-01-18  8:21   ` Nikita Shubin
2024-01-18  8:21 ` [PATCH v7 22/39] ata: pata_ep93xx: add device tree support Nikita Shubin via B4 Relay
2024-01-18  8:21   ` Nikita Shubin
2024-02-04 17:00   ` andy.shevchenko
2024-01-18  8:21 ` [PATCH v7 23/39] dt-bindings: input: Add Cirrus EP93xx keypad Nikita Shubin via B4 Relay
2024-01-18  8:21   ` Nikita Shubin
2024-01-18  8:21 ` [PATCH v7 24/39] input: keypad: ep93xx: add DT support for Cirrus EP93xx Nikita Shubin via B4 Relay
2024-01-18  8:21   ` Nikita Shubin
2024-01-18  8:21   ` Nikita Shubin via B4 Relay
2024-01-18  8:21 ` [PATCH v7 25/39] wdt: ts72xx: add DT support for ts72xx Nikita Shubin via B4 Relay
2024-01-18  8:21   ` Nikita Shubin
2024-01-18  8:21 ` [PATCH v7 26/39] gpio: ep93xx: add DT support for gpio-ep93xx Nikita Shubin via B4 Relay
2024-01-18  8:21   ` Nikita Shubin
2024-01-18  8:21 ` [PATCH v7 27/39] ASoC: dt-bindings: ep93xx: Document DMA support Nikita Shubin via B4 Relay
2024-01-18  8:21   ` Nikita Shubin
2024-01-18  8:21   ` Nikita Shubin via B4 Relay
2024-01-18  8:21 ` [PATCH v7 28/39] ASoC: dt-bindings: ep93xx: Document Audio Port support Nikita Shubin via B4 Relay
2024-01-18  8:21   ` Nikita Shubin via B4 Relay
2024-01-18  8:21   ` Nikita Shubin
2024-01-18  8:21 ` [PATCH v7 29/39] ASoC: ep93xx: Drop legacy DMA support Nikita Shubin via B4 Relay
2024-01-18  8:21   ` Nikita Shubin
2024-01-18  8:21 ` [PATCH v7 30/39] ARM: dts: add Cirrus EP93XX SoC .dtsi Nikita Shubin via B4 Relay
2024-01-18  8:21   ` Nikita Shubin
2024-01-18  8:21 ` [PATCH v7 31/39] ARM: dts: ep93xx: add ts7250 board Nikita Shubin via B4 Relay
2024-01-18  8:21   ` Nikita Shubin
2024-01-18  8:21 ` [PATCH v7 32/39] ARM: dts: ep93xx: Add EDB9302 DT Nikita Shubin via B4 Relay
2024-01-18  8:21   ` Nikita Shubin
2024-01-18  8:21 ` [PATCH v7 33/39] ARM: ep93xx: DT for the Cirrus ep93xx SoC platforms Nikita Shubin via B4 Relay
2024-01-18  8:21   ` Nikita Shubin via B4 Relay
2024-01-18  8:21   ` Nikita Shubin
2024-01-18  8:21 ` [PATCH v7 34/39] pwm: ep93xx: drop legacy pinctrl Nikita Shubin via B4 Relay
2024-01-18  8:21   ` Nikita Shubin
2024-01-18  8:21   ` Nikita Shubin via B4 Relay
2024-01-18  8:21 ` [PATCH v7 35/39] ata: pata_ep93xx: remove legacy pinctrl use Nikita Shubin via B4 Relay
2024-01-18  8:21   ` Nikita Shubin
2024-01-18  8:21   ` Nikita Shubin via B4 Relay
2024-01-18  8:21 ` [PATCH v7 36/39] ARM: ep93xx: delete all boardfiles Nikita Shubin via B4 Relay
2024-01-18  8:21   ` Nikita Shubin
2024-01-18  8:21 ` [PATCH v7 37/39] ARM: ep93xx: soc: drop defines Nikita Shubin via B4 Relay
2024-01-18  8:21   ` Nikita Shubin
2024-01-18  8:21 ` [PATCH v7 38/39] ASoC: cirrus: edb93xx: Delete driver Nikita Shubin via B4 Relay
2024-01-18  8:21   ` Nikita Shubin
2024-01-18  8:21 ` [PATCH v7 39/39] dma: cirrus: remove platform code Nikita Shubin via B4 Relay
2024-01-18  8:21   ` Nikita Shubin
2024-01-18  9:30 ` [PATCH v7 00/39] ep93xx device tree conversion Uwe Kleine-König
2024-01-18  9:30   ` Uwe Kleine-König
2024-01-18  9:36   ` Nikita Shubin
2024-01-18  9:36     ` Nikita Shubin
2024-02-04 17:03 ` andy.shevchenko
2024-02-04 17:03   ` andy.shevchenko
2024-02-13  9:48   ` Nikita Shubin
2024-02-13  9:48     ` Nikita Shubin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240118-ep93xx-v7-18-d953846ae771@maquefel.me \
    --to=devnull+nikita.shubin.maquefel.me@kernel.org \
    --cc=andrew@lunn.ch \
    --cc=arnd@arndb.de \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=hsweeten@visionengravers.com \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=nikita.shubin@maquefel.me \
    --cc=pabeni@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.