Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 890b7916 authored by David S. Miller's avatar David S. Miller
Browse files

Merge branch 'stmmac-next'



Giuseppe Cavallaro says:

====================
stmmac: review driver Koptions

Recently many Koption options have been added to have new glue logic on several
platforms.

The main goal behind this work is to guarantee that the driver built
fine on all the branches where it is present independently of which
glue logic is selected.

IMHO, it is better to remove all the not necessary Koption(s) that can hide
build problems when something changes in the driver and especially when
the DT compatibility allows us to manage all the platform data.

I compiled the driver w/o any issue on net-next Git for:

  x86, arm and sh4.

In case of there are build problems on some repos now it will be
easy to catch them and cherry-pick patches from mainstream.

For sure, do not hesitate to contact me in case of issue.

Also this set removes STMMAC_DEBUG_FS and BUS_MODE_DA. The latter is useless
and the former can be replaced by DEBUG_FS (always to make safe the build).

V2: patch-set re-based on top of the latest updates for net-next
====================

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 30349bdb 98fbebcb
Loading
Loading
Loading
Loading
+4 −64
Original line number Diff line number Diff line
@@ -18,56 +18,14 @@ config STMMAC_PLATFORM
	depends on STMMAC_ETH
	default y
	---help---
	  This selects the platform specific bus support for
	  the stmmac device driver. This is the driver used
	  on many embedded STM platforms based on ARM and SuperH
	  processors.
	  This selects the platform specific bus support for the stmmac driver.
	  This is the driver used on several SoCs:
	  STi, Allwinner, Amlogic Meson, Altera SOCFPGA.

	  If you have a controller with this interface, say Y or M here.

	  If unsure, say N.

config DWMAC_MESON
	bool "Amlogic Meson dwmac support"
	depends on STMMAC_PLATFORM && ARCH_MESON
	help
	  Support for Ethernet controller on Amlogic Meson SoCs.

	  This selects the Amlogic Meson SoC glue layer support for
	  the stmmac device driver. This driver is used for Meson6 and
	  Meson8 SoCs.

config DWMAC_SOCFPGA
	bool "SOCFPGA dwmac support"
	depends on STMMAC_PLATFORM && MFD_SYSCON && (ARCH_SOCFPGA || COMPILE_TEST)
	help
	  Support for ethernet controller on Altera SOCFPGA

	  This selects the Altera SOCFPGA SoC glue layer support
	  for the stmmac device driver. This driver is used for
	  arria5 and cyclone5 FPGA SoCs.

config DWMAC_SUNXI
	bool "Allwinner GMAC support"
	depends on STMMAC_PLATFORM && ARCH_SUNXI
	default y
	---help---
	  Support for Allwinner A20/A31 GMAC ethernet controllers.

	  This selects Allwinner SoC glue layer support for the
	  stmmac device driver. This driver is used for A20/A31
	  GMAC 	  ethernet controller.

config DWMAC_STI
	bool "STi GMAC support"
	depends on STMMAC_PLATFORM && ARCH_STI
	default y
	---help---
	  Support for ethernet controller on STi SOCs.

	  This selects STi SoC glue layer support for the stmmac
	  device driver. This driver is used on for the STi series
	  SOCs GMAC ethernet controller.

config STMMAC_PCI
	bool "STMMAC PCI bus support"
	depends on STMMAC_ETH && PCI
@@ -79,22 +37,4 @@ config STMMAC_PCI
	  D1215994A VIRTEX FPGA board.

	  If unsure, say N.

config STMMAC_DEBUG_FS
	bool "Enable monitoring via sysFS "
	default n
	depends on STMMAC_ETH && DEBUG_FS
	---help---
	  The stmmac entry in /sys reports DMA TX/RX rings
	  or (if supported) the HW cap register.

config STMMAC_DA
	bool "STMMAC DMA arbitration scheme"
	default n
	---help---
	  Selecting this option, rx has priority over Tx (only for Giga
	  Ethernet device).
	  By default, the DMA arbitration scheme is based on Round-robin
	  (rx:tx priority is 1:1).

endif
+3 −5
Original line number Diff line number Diff line
obj-$(CONFIG_STMMAC_ETH) += stmmac.o
stmmac-$(CONFIG_STMMAC_PLATFORM) += stmmac_platform.o
stmmac-$(CONFIG_STMMAC_PCI) += stmmac_pci.o
stmmac-$(CONFIG_DWMAC_MESON) += dwmac-meson.o
stmmac-$(CONFIG_DWMAC_SUNXI) += dwmac-sunxi.o
stmmac-$(CONFIG_DWMAC_STI) += dwmac-sti.o
stmmac-$(CONFIG_DWMAC_SOCFPGA) += dwmac-socfpga.o
stmmac-$(CONFIG_STMMAC_PLATFORM) +=	stmmac_platform.o dwmac-meson.o \
					dwmac-sunxi.o dwmac-sti.o \
					dwmac-socfpga.o
stmmac-objs:= stmmac_main.o stmmac_ethtool.o stmmac_mdio.o ring_mode.o	\
	      chain_mode.o dwmac_lib.o dwmac1000_core.o  dwmac1000_dma.o \
	      dwmac100_core.o dwmac100_dma.o enh_desc.o  norm_desc.o \
+0 −4
Original line number Diff line number Diff line
@@ -70,10 +70,6 @@ static int dwmac1000_dma_init(void __iomem *ioaddr, int pbl, int fb, int mb,
	if (mb)
		value |= DMA_BUS_MODE_MB;

#ifdef CONFIG_STMMAC_DA
	value |= DMA_BUS_MODE_DA;	/* Rx has priority over tx */
#endif

	if (atds)
		value |= DMA_BUS_MODE_ATDS;

+1 −8
Original line number Diff line number Diff line
@@ -137,20 +137,13 @@ void stmmac_disable_eee_mode(struct stmmac_priv *priv);
bool stmmac_eee_init(struct stmmac_priv *priv);

#ifdef CONFIG_STMMAC_PLATFORM
#ifdef CONFIG_DWMAC_MESON
extern const struct stmmac_of_data meson6_dwmac_data;
#endif
#ifdef CONFIG_DWMAC_SUNXI
extern const struct stmmac_of_data sun7i_gmac_data;
#endif
#ifdef CONFIG_DWMAC_STI
extern const struct stmmac_of_data stih4xx_dwmac_data;
extern const struct stmmac_of_data stid127_dwmac_data;
#endif
#ifdef CONFIG_DWMAC_SOCFPGA
extern const struct stmmac_of_data socfpga_gmac_data;
#endif
extern struct platform_driver stmmac_pltfr_driver;

static inline int stmmac_register_platform(void)
{
	int err;
+7 −7
Original line number Diff line number Diff line
@@ -44,10 +44,10 @@
#include <linux/slab.h>
#include <linux/prefetch.h>
#include <linux/pinctrl/consumer.h>
#ifdef CONFIG_STMMAC_DEBUG_FS
#ifdef CONFIG_DEBUG_FS
#include <linux/debugfs.h>
#include <linux/seq_file.h>
#endif /* CONFIG_STMMAC_DEBUG_FS */
#endif /* CONFIG_DEBUG_FS */
#include <linux/net_tstamp.h>
#include "stmmac_ptp.h"
#include "stmmac.h"
@@ -116,7 +116,7 @@ MODULE_PARM_DESC(chain_mode, "To use chain instead of ring mode");

static irqreturn_t stmmac_interrupt(int irq, void *dev_id);

#ifdef CONFIG_STMMAC_DEBUG_FS
#ifdef CONFIG_DEBUG_FS
static int stmmac_init_fs(struct net_device *dev);
static void stmmac_exit_fs(void);
#endif
@@ -1688,7 +1688,7 @@ static int stmmac_hw_setup(struct net_device *dev)
	if (ret && ret != -EOPNOTSUPP)
		pr_warn("%s: failed PTP initialisation\n", __func__);

#ifdef CONFIG_STMMAC_DEBUG_FS
#ifdef CONFIG_DEBUG_FS
	ret = stmmac_init_fs(dev);
	if (ret < 0)
		pr_warn("%s: failed debugFS registration\n", __func__);
@@ -1866,7 +1866,7 @@ static int stmmac_release(struct net_device *dev)

	netif_carrier_off(dev);

#ifdef CONFIG_STMMAC_DEBUG_FS
#ifdef CONFIG_DEBUG_FS
	stmmac_exit_fs();
#endif

@@ -2453,7 +2453,7 @@ static int stmmac_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
	return ret;
}

#ifdef CONFIG_STMMAC_DEBUG_FS
#ifdef CONFIG_DEBUG_FS
static struct dentry *stmmac_fs_dir;
static struct dentry *stmmac_rings_status;
static struct dentry *stmmac_dma_cap;
@@ -2638,7 +2638,7 @@ static void stmmac_exit_fs(void)
	debugfs_remove(stmmac_dma_cap);
	debugfs_remove(stmmac_fs_dir);
}
#endif /* CONFIG_STMMAC_DEBUG_FS */
#endif /* CONFIG_DEBUG_FS */

static const struct net_device_ops stmmac_netdev_ops = {
	.ndo_open = stmmac_open,
Loading