mail archive of the barebox mailing list
 help / color / mirror / Atom feed
* [PATCH 1/4] net: designware: rework Kconfig text and menu structure
@ 2022-08-09  6:24 Ahmad Fatoum
  2022-08-09  6:24 ` [PATCH 2/4] net: designware: eqos: stm32: remove duplicate error message Ahmad Fatoum
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Ahmad Fatoum @ 2022-08-09  6:24 UTC (permalink / raw)
  To: barebox; +Cc: Ahmad Fatoum

Instead of depending on the common code being enabled, just select it if
needed and reword the Kconfig text to fix some typos and to make
configuration easier.

Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
---
 drivers/net/Kconfig | 64 ++++++++++++++++++++++++---------------------
 1 file changed, 34 insertions(+), 30 deletions(-)

diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index 803444cc44a4..341d02a1da5e 100644
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
@@ -55,71 +55,75 @@ config DRIVER_NET_DAVINCI_EMAC
 	select PHYLIB
 
 config DRIVER_NET_DESIGNWARE
-	bool "Designware Universal MAC1000 ethernet platform support"
+	bool "Designware DWMAC1000 Ethernet driver support" if COMPILE_TEST
 	depends on HAS_DMA
 	select PHYLIB
 	help
-	  This option enables support for the Synopsys
-	  Designware Core Univesal MAC 10M/100M/1G ethernet IP.
-
-if DRIVER_NET_DESIGNWARE
+	  This option is selected by platform glue drivers that contain
+	  a DWMAC1000-compatible Ethernet IP.
 
 config DRIVER_NET_DESIGNWARE_GENERIC
-	bool "Designware Universal MAC ethernet generic driver"
+	bool "Generic Synopsis Designware Ethernet driver"
+	select DRIVER_NET_DESIGNWARE
+	depends on HAS_DMA
 	help
-	  This option enables support for the Synopsys
-	  Designware Core Univesal MAC 10M/100M/1G ethernet IP on SoCFPGA.
+	  This option enables support for the generic Synopsys
+	  Designware Core Universal MAC 10M/100M/1G binding. Supported
+	  are 3.70a and 3.72. Most integrations additionally require
+	  access to platform-specific registers, e.g. for clocking.
+	  If you are on such a platform, use the platform specific
+	  driver instead.
 
 config DRIVER_NET_DESIGNWARE_SOCFPGA
-	bool "Designware Universal MAC ethernet driver for SoCFPGA platforms"
-	depends on ARCH_SOCFPGA || COMPILE_TEST
+	bool "SOCFPGA Designware Ethernet driver"
+	depends on HAS_DMA && (ARCH_SOCFPGA || COMPILE_TEST)
+	select DRIVER_NET_DESIGNWARE
 	select MFD_SYSCON
 	select RESET_CONTROLLER
 	help
 	  This option enables support for the Synopsys
-	  Designware Core Univesal MAC 10M/100M/1G ethernet IP on SoCFPGA.
+	  Designware Core Universal MAC 10M/100M/1G Ethernet IP on SoCFPGA.
 
 config DRIVER_NET_DESIGNWARE_STARFIVE
-	bool "Designware Universal MAC ethernet driver for StarFive platforms"
-	depends on SOC_STARFIVE || COMPILE_TEST
+	bool "StarFive Designware Ethernet driver"
+	depends on HAS_DMA && (SOC_STARFIVE || COMPILE_TEST)
+	select DRIVER_NET_DESIGNWARE
 	select MFD_SYSCON
 	help
 	  This option enables support for the Synopsys
-	  Designware Core Univesal MAC 10M/100M/1G ethernet IP on StarFive.
-
-endif
+	  Designware Core Universal MAC 10M/100M/1G Ethernet IP on StarFive.
 
 config DRIVER_NET_DESIGNWARE_EQOS
-	bool "Designware Designware Ethernet QoS support"
-	depends on HAS_DMA
-	depends on COMMON_CLK
-	depends on OFTREE
+	bool "Designware EQOS (GMAC4) Ethernet driver support" if COMPILE_TEST
+	depends on HAS_DMA && OFTREE
 	select PHYLIB
 	help
 	  This option enables support for the Synopsys
 	  Designware Ethernet Quality-of-Service (GMAC4).
 
-if DRIVER_NET_DESIGNWARE_EQOS
-
 config DRIVER_NET_DESIGNWARE_STM32
-	bool "Designware EQOS STM32 driver"
+	bool "STM32 Designware Ethernet driver"
+	depends on HAS_DMA && COMMON_CLK && OFTREE && (ARCH_STM32MP || COMPILE_TEST)
+	select DRIVER_NET_DESIGNWARE_EQOS
 	select MFD_SYSCON
 	help
-	  This option enables support for the ethernet MAC on the STM32MP platforms.
+	  This option enables support for the Ethernet MAC on the STM32MP platforms.
 
 config DRIVER_NET_DESIGNWARE_TEGRA186
-	bool "Designware Universal MAC ethernet driver for Tegra 186 platforms"
+	bool "Tegra 186/194 Designware Ethernet driver"
+	depends on HAS_DMA && COMMON_CLK && OFTREE && (ARCH_TEGRA || COMPILE_TEST)
+	select DRIVER_NET_DESIGNWARE_EQOS
 	select RESET_CONTROLLER
 	help
-	  This option enables support for the ethernet MAC on the Tegra186 & 194.
+	  This option enables support for the Ethernet MAC on the Tegra186 & 194.
 
 config DRIVER_NET_DESIGNWARE_ROCKCHIP
-	bool "Designware Universal MAC ethernet driver for Rockchip platforms"
+	bool "Rockchip Designware Ethernet driver"
+	select DRIVER_NET_DESIGNWARE_EQOS
+	depends on HAS_DMA && COMMON_CLK && OFTREE && (ARCH_ROCKCHIP || COMPILE_TEST)
 	select MFD_SYSCON
 	help
-	  This option enables support for the ethernet MAC on different Rockchip SoCs
-
-endif
+	  This option enables support for the Ethernet MAC on different Rockchip SoCs
 
 config DRIVER_NET_DM9K
 	bool "Davicom dm9k[E|A|B] ethernet driver"
-- 
2.30.2




^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 2/4] net: designware: eqos: stm32: remove duplicate error message
  2022-08-09  6:24 [PATCH 1/4] net: designware: rework Kconfig text and menu structure Ahmad Fatoum
@ 2022-08-09  6:24 ` Ahmad Fatoum
  2022-08-09  6:24 ` [PATCH 3/4] net: designware: eqos: replace double accounting of interface up status Ahmad Fatoum
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Ahmad Fatoum @ 2022-08-09  6:24 UTC (permalink / raw)
  To: barebox; +Cc: Ahmad Fatoum

clk_bulk_enable will already print an error message, so printing one
more is unnecessary.

Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
---
 drivers/net/designware_stm32.c | 9 +--------
 1 file changed, 1 insertion(+), 8 deletions(-)

diff --git a/drivers/net/designware_stm32.c b/drivers/net/designware_stm32.c
index 0a5ced98f522..43f2d0987c8f 100644
--- a/drivers/net/designware_stm32.c
+++ b/drivers/net/designware_stm32.c
@@ -163,14 +163,7 @@ static int eqos_init_stm32(struct device_d *dev, struct eqos *eqos)
 		dev_dbg(dev, "No phy clock provided. Continuing without.\n");
 	}
 
-	ret = clk_bulk_enable(priv->num_clks, priv->clks);
-	if (ret < 0) {
-		eqos_err(eqos, "clk_bulk_enable() failed: %s\n",
-			 strerror(-ret));
-		return ret;
-	}
-
-	return 0;
+	return clk_bulk_enable(priv->num_clks, priv->clks);
 }
 
 static struct eqos_ops stm32_ops = {
-- 
2.30.2




^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 3/4] net: designware: eqos: replace double accounting of interface up status
  2022-08-09  6:24 [PATCH 1/4] net: designware: rework Kconfig text and menu structure Ahmad Fatoum
  2022-08-09  6:24 ` [PATCH 2/4] net: designware: eqos: stm32: remove duplicate error message Ahmad Fatoum
@ 2022-08-09  6:24 ` Ahmad Fatoum
  2022-08-09  6:24 ` [PATCH 4/4] net: designware: eqos: remove undefined eqos_reset prototype Ahmad Fatoum
  2022-08-09  9:32 ` [PATCH 1/4] net: designware: rework Kconfig text and menu structure Sascha Hauer
  3 siblings, 0 replies; 5+ messages in thread
From: Ahmad Fatoum @ 2022-08-09  6:24 UTC (permalink / raw)
  To: barebox; +Cc: Ahmad Fatoum

Network core already keeps track of whether ethernet interface is up, so
no need to replicate holding this state.

Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
---
 drivers/net/designware_eqos.c     | 11 -----------
 drivers/net/designware_eqos.h     |  1 -
 drivers/net/designware_tegra186.c |  2 +-
 3 files changed, 1 insertion(+), 13 deletions(-)

diff --git a/drivers/net/designware_eqos.c b/drivers/net/designware_eqos.c
index 6b372e427492..79b997969755 100644
--- a/drivers/net/designware_eqos.c
+++ b/drivers/net/designware_eqos.c
@@ -623,10 +623,6 @@ static int eqos_start(struct eth_device *edev)
 	last_rx_desc = (ulong)&eqos->rx_descs[(EQOS_DESCRIPTORS_RX - 1)];
 	writel(last_rx_desc, &eqos->dma_regs->ch0_rxdesc_tail_pointer);
 
-	barrier();
-
-	eqos->started = true;
-
 	return 0;
 }
 
@@ -635,13 +631,6 @@ static void eqos_stop(struct eth_device *edev)
 	struct eqos *eqos = edev->priv;
 	int i;
 
-	if (!eqos->started)
-		return;
-
-	eqos->started = false;
-
-	barrier();
-
 	/* Disable TX DMA */
 	clrbits_le32(&eqos->dma_regs->ch0_tx_control,
 		     EQOS_DMA_CH0_TX_CONTROL_ST);
diff --git a/drivers/net/designware_eqos.h b/drivers/net/designware_eqos.h
index be7bead09e0e..69c6ac193f57 100644
--- a/drivers/net/designware_eqos.h
+++ b/drivers/net/designware_eqos.h
@@ -60,7 +60,6 @@ struct eqos {
 
 	const struct eqos_ops *ops;
 	void *priv;
-	bool started;
 };
 
 struct device_d;
diff --git a/drivers/net/designware_tegra186.c b/drivers/net/designware_tegra186.c
index 0241b9ad16ff..0cbbdb46a442 100644
--- a/drivers/net/designware_tegra186.c
+++ b/drivers/net/designware_tegra186.c
@@ -195,7 +195,7 @@ static int eqos_set_ethaddr_tegra186(struct eth_device *edev, const unsigned cha
 	 * ported to some system where the expectation above is true.
 	 */
 
-	if (!eqos->started) {
+	if (!edev->active) {
 		memcpy(eqos->macaddr, mac, 6);
 		return 0;
 	}
-- 
2.30.2




^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 4/4] net: designware: eqos: remove undefined eqos_reset prototype
  2022-08-09  6:24 [PATCH 1/4] net: designware: rework Kconfig text and menu structure Ahmad Fatoum
  2022-08-09  6:24 ` [PATCH 2/4] net: designware: eqos: stm32: remove duplicate error message Ahmad Fatoum
  2022-08-09  6:24 ` [PATCH 3/4] net: designware: eqos: replace double accounting of interface up status Ahmad Fatoum
@ 2022-08-09  6:24 ` Ahmad Fatoum
  2022-08-09  9:32 ` [PATCH 1/4] net: designware: rework Kconfig text and menu structure Sascha Hauer
  3 siblings, 0 replies; 5+ messages in thread
From: Ahmad Fatoum @ 2022-08-09  6:24 UTC (permalink / raw)
  To: barebox; +Cc: Ahmad Fatoum

This function is undefined, so drop its prototype.

Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
---
 drivers/net/designware_eqos.h | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/net/designware_eqos.h b/drivers/net/designware_eqos.h
index 69c6ac193f57..1b6b0400e1f9 100644
--- a/drivers/net/designware_eqos.h
+++ b/drivers/net/designware_eqos.h
@@ -65,7 +65,6 @@ struct eqos {
 struct device_d;
 int eqos_probe(struct device_d *dev, const struct eqos_ops *ops, void *priv);
 void eqos_remove(struct device_d *dev);
-int eqos_reset(struct eqos *priv);
 
 int eqos_get_ethaddr(struct eth_device *edev, unsigned char *mac);
 int eqos_set_ethaddr(struct eth_device *edev, const unsigned char *mac);
-- 
2.30.2




^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/4] net: designware: rework Kconfig text and menu structure
  2022-08-09  6:24 [PATCH 1/4] net: designware: rework Kconfig text and menu structure Ahmad Fatoum
                   ` (2 preceding siblings ...)
  2022-08-09  6:24 ` [PATCH 4/4] net: designware: eqos: remove undefined eqos_reset prototype Ahmad Fatoum
@ 2022-08-09  9:32 ` Sascha Hauer
  3 siblings, 0 replies; 5+ messages in thread
From: Sascha Hauer @ 2022-08-09  9:32 UTC (permalink / raw)
  To: Ahmad Fatoum; +Cc: barebox

On Tue, Aug 09, 2022 at 08:24:19AM +0200, Ahmad Fatoum wrote:
> Instead of depending on the common code being enabled, just select it if
> needed and reword the Kconfig text to fix some typos and to make
> configuration easier.
> 
> Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
> ---
>  drivers/net/Kconfig | 64 ++++++++++++++++++++++++---------------------
>  1 file changed, 34 insertions(+), 30 deletions(-)

Applied, thanks

Sascha

> 
> diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
> index 803444cc44a4..341d02a1da5e 100644
> --- a/drivers/net/Kconfig
> +++ b/drivers/net/Kconfig
> @@ -55,71 +55,75 @@ config DRIVER_NET_DAVINCI_EMAC
>  	select PHYLIB
>  
>  config DRIVER_NET_DESIGNWARE
> -	bool "Designware Universal MAC1000 ethernet platform support"
> +	bool "Designware DWMAC1000 Ethernet driver support" if COMPILE_TEST
>  	depends on HAS_DMA
>  	select PHYLIB
>  	help
> -	  This option enables support for the Synopsys
> -	  Designware Core Univesal MAC 10M/100M/1G ethernet IP.
> -
> -if DRIVER_NET_DESIGNWARE
> +	  This option is selected by platform glue drivers that contain
> +	  a DWMAC1000-compatible Ethernet IP.
>  
>  config DRIVER_NET_DESIGNWARE_GENERIC
> -	bool "Designware Universal MAC ethernet generic driver"
> +	bool "Generic Synopsis Designware Ethernet driver"
> +	select DRIVER_NET_DESIGNWARE
> +	depends on HAS_DMA
>  	help
> -	  This option enables support for the Synopsys
> -	  Designware Core Univesal MAC 10M/100M/1G ethernet IP on SoCFPGA.
> +	  This option enables support for the generic Synopsys
> +	  Designware Core Universal MAC 10M/100M/1G binding. Supported
> +	  are 3.70a and 3.72. Most integrations additionally require
> +	  access to platform-specific registers, e.g. for clocking.
> +	  If you are on such a platform, use the platform specific
> +	  driver instead.
>  
>  config DRIVER_NET_DESIGNWARE_SOCFPGA
> -	bool "Designware Universal MAC ethernet driver for SoCFPGA platforms"
> -	depends on ARCH_SOCFPGA || COMPILE_TEST
> +	bool "SOCFPGA Designware Ethernet driver"
> +	depends on HAS_DMA && (ARCH_SOCFPGA || COMPILE_TEST)
> +	select DRIVER_NET_DESIGNWARE
>  	select MFD_SYSCON
>  	select RESET_CONTROLLER
>  	help
>  	  This option enables support for the Synopsys
> -	  Designware Core Univesal MAC 10M/100M/1G ethernet IP on SoCFPGA.
> +	  Designware Core Universal MAC 10M/100M/1G Ethernet IP on SoCFPGA.
>  
>  config DRIVER_NET_DESIGNWARE_STARFIVE
> -	bool "Designware Universal MAC ethernet driver for StarFive platforms"
> -	depends on SOC_STARFIVE || COMPILE_TEST
> +	bool "StarFive Designware Ethernet driver"
> +	depends on HAS_DMA && (SOC_STARFIVE || COMPILE_TEST)
> +	select DRIVER_NET_DESIGNWARE
>  	select MFD_SYSCON
>  	help
>  	  This option enables support for the Synopsys
> -	  Designware Core Univesal MAC 10M/100M/1G ethernet IP on StarFive.
> -
> -endif
> +	  Designware Core Universal MAC 10M/100M/1G Ethernet IP on StarFive.
>  
>  config DRIVER_NET_DESIGNWARE_EQOS
> -	bool "Designware Designware Ethernet QoS support"
> -	depends on HAS_DMA
> -	depends on COMMON_CLK
> -	depends on OFTREE
> +	bool "Designware EQOS (GMAC4) Ethernet driver support" if COMPILE_TEST
> +	depends on HAS_DMA && OFTREE
>  	select PHYLIB
>  	help
>  	  This option enables support for the Synopsys
>  	  Designware Ethernet Quality-of-Service (GMAC4).
>  
> -if DRIVER_NET_DESIGNWARE_EQOS
> -
>  config DRIVER_NET_DESIGNWARE_STM32
> -	bool "Designware EQOS STM32 driver"
> +	bool "STM32 Designware Ethernet driver"
> +	depends on HAS_DMA && COMMON_CLK && OFTREE && (ARCH_STM32MP || COMPILE_TEST)
> +	select DRIVER_NET_DESIGNWARE_EQOS
>  	select MFD_SYSCON
>  	help
> -	  This option enables support for the ethernet MAC on the STM32MP platforms.
> +	  This option enables support for the Ethernet MAC on the STM32MP platforms.
>  
>  config DRIVER_NET_DESIGNWARE_TEGRA186
> -	bool "Designware Universal MAC ethernet driver for Tegra 186 platforms"
> +	bool "Tegra 186/194 Designware Ethernet driver"
> +	depends on HAS_DMA && COMMON_CLK && OFTREE && (ARCH_TEGRA || COMPILE_TEST)
> +	select DRIVER_NET_DESIGNWARE_EQOS
>  	select RESET_CONTROLLER
>  	help
> -	  This option enables support for the ethernet MAC on the Tegra186 & 194.
> +	  This option enables support for the Ethernet MAC on the Tegra186 & 194.
>  
>  config DRIVER_NET_DESIGNWARE_ROCKCHIP
> -	bool "Designware Universal MAC ethernet driver for Rockchip platforms"
> +	bool "Rockchip Designware Ethernet driver"
> +	select DRIVER_NET_DESIGNWARE_EQOS
> +	depends on HAS_DMA && COMMON_CLK && OFTREE && (ARCH_ROCKCHIP || COMPILE_TEST)
>  	select MFD_SYSCON
>  	help
> -	  This option enables support for the ethernet MAC on different Rockchip SoCs
> -
> -endif
> +	  This option enables support for the Ethernet MAC on different Rockchip SoCs
>  
>  config DRIVER_NET_DM9K
>  	bool "Davicom dm9k[E|A|B] ethernet driver"
> -- 
> 2.30.2
> 
> 
> 

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-08-09  9:33 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-08-09  6:24 [PATCH 1/4] net: designware: rework Kconfig text and menu structure Ahmad Fatoum
2022-08-09  6:24 ` [PATCH 2/4] net: designware: eqos: stm32: remove duplicate error message Ahmad Fatoum
2022-08-09  6:24 ` [PATCH 3/4] net: designware: eqos: replace double accounting of interface up status Ahmad Fatoum
2022-08-09  6:24 ` [PATCH 4/4] net: designware: eqos: remove undefined eqos_reset prototype Ahmad Fatoum
2022-08-09  9:32 ` [PATCH 1/4] net: designware: rework Kconfig text and menu structure Sascha Hauer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox