diff mbox series

[net-next,v2,1/9] of: net: move of_net under net/

Message ID 20211006154426.3222199-2-kuba@kernel.org
State Superseded, archived
Headers show
Series net: add a helpers for loading netdev->dev_addr from FW | expand

Checks

Context Check Description
robh/checkpatch success

Commit Message

Jakub Kicinski Oct. 6, 2021, 3:44 p.m. UTC
Rob suggests to move of_net.c from under drivers/of/ somewhere
to the networking code.

Suggested-by: Rob Herring <robh@kernel.org>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
---
v2: new patch
---
 drivers/of/Makefile               | 1 -
 net/core/Makefile                 | 1 +
 {drivers/of => net/core}/of_net.c | 0
 3 files changed, 1 insertion(+), 1 deletion(-)
 rename {drivers/of => net/core}/of_net.c (100%)

Comments

Rob Herring Oct. 6, 2021, 4:18 p.m. UTC | #1
On Wed, Oct 6, 2021 at 10:45 AM Jakub Kicinski <kuba@kernel.org> wrote:
>
> Rob suggests to move of_net.c from under drivers/of/ somewhere
> to the networking code.
>
> Suggested-by: Rob Herring <robh@kernel.org>
> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
> ---
> v2: new patch
> ---
>  drivers/of/Makefile               | 1 -
>  net/core/Makefile                 | 1 +
>  {drivers/of => net/core}/of_net.c | 0
>  3 files changed, 1 insertion(+), 1 deletion(-)
>  rename {drivers/of => net/core}/of_net.c (100%)
>
> diff --git a/drivers/of/Makefile b/drivers/of/Makefile
> index c13b982084a3..e0360a44306e 100644
> --- a/drivers/of/Makefile
> +++ b/drivers/of/Makefile
> @@ -7,7 +7,6 @@ obj-$(CONFIG_OF_EARLY_FLATTREE) += fdt_address.o
>  obj-$(CONFIG_OF_PROMTREE) += pdt.o
>  obj-$(CONFIG_OF_ADDRESS)  += address.o
>  obj-$(CONFIG_OF_IRQ)    += irq.o
> -obj-$(CONFIG_OF_NET)   += of_net.o
>  obj-$(CONFIG_OF_UNITTEST) += unittest.o
>  obj-$(CONFIG_OF_RESERVED_MEM) += of_reserved_mem.o
>  obj-$(CONFIG_OF_RESOLVE)  += resolver.o
> diff --git a/net/core/Makefile b/net/core/Makefile
> index 35ced6201814..37b1befc39aa 100644
> --- a/net/core/Makefile
> +++ b/net/core/Makefile
> @@ -36,3 +36,4 @@ obj-$(CONFIG_FAILOVER) += failover.o
>  obj-$(CONFIG_NET_SOCK_MSG) += skmsg.o
>  obj-$(CONFIG_BPF_SYSCALL) += sock_map.o
>  obj-$(CONFIG_BPF_SYSCALL) += bpf_sk_storage.o
> +obj-$(CONFIG_OF_NET)   += of_net.o

The OF_NET kconfig should move or disappear too. I imagine you can do just:

obj-$(CONFIG_OF) += of_net.o

> diff --git a/drivers/of/of_net.c b/net/core/of_net.c
> similarity index 100%
> rename from drivers/of/of_net.c
> rename to net/core/of_net.c
> --
> 2.31.1
>
Andrew Lunn Oct. 6, 2021, 4:34 p.m. UTC | #2
On Wed, Oct 06, 2021 at 11:18:19AM -0500, Rob Herring wrote:
> On Wed, Oct 6, 2021 at 10:45 AM Jakub Kicinski <kuba@kernel.org> wrote:
> >
> > Rob suggests to move of_net.c from under drivers/of/ somewhere
> > to the networking code.
> >
> > Suggested-by: Rob Herring <robh@kernel.org>
> > Signed-off-by: Jakub Kicinski <kuba@kernel.org>
> > ---
> > v2: new patch
> > ---
> >  drivers/of/Makefile               | 1 -
> >  net/core/Makefile                 | 1 +
> >  {drivers/of => net/core}/of_net.c | 0
> >  3 files changed, 1 insertion(+), 1 deletion(-)
> >  rename {drivers/of => net/core}/of_net.c (100%)
> >
> > diff --git a/drivers/of/Makefile b/drivers/of/Makefile
> > index c13b982084a3..e0360a44306e 100644
> > --- a/drivers/of/Makefile
> > +++ b/drivers/of/Makefile
> > @@ -7,7 +7,6 @@ obj-$(CONFIG_OF_EARLY_FLATTREE) += fdt_address.o
> >  obj-$(CONFIG_OF_PROMTREE) += pdt.o
> >  obj-$(CONFIG_OF_ADDRESS)  += address.o
> >  obj-$(CONFIG_OF_IRQ)    += irq.o
> > -obj-$(CONFIG_OF_NET)   += of_net.o
> >  obj-$(CONFIG_OF_UNITTEST) += unittest.o
> >  obj-$(CONFIG_OF_RESERVED_MEM) += of_reserved_mem.o
> >  obj-$(CONFIG_OF_RESOLVE)  += resolver.o
> > diff --git a/net/core/Makefile b/net/core/Makefile
> > index 35ced6201814..37b1befc39aa 100644
> > --- a/net/core/Makefile
> > +++ b/net/core/Makefile
> > @@ -36,3 +36,4 @@ obj-$(CONFIG_FAILOVER) += failover.o
> >  obj-$(CONFIG_NET_SOCK_MSG) += skmsg.o
> >  obj-$(CONFIG_BPF_SYSCALL) += sock_map.o
> >  obj-$(CONFIG_BPF_SYSCALL) += bpf_sk_storage.o
> > +obj-$(CONFIG_OF_NET)   += of_net.o
> 
> The OF_NET kconfig should move or disappear too. I imagine you can do just:

It is used in a few places:

net/ethernet/litex/Kconfig:	depends on OF_NET
net/ethernet/amd/Kconfig:	depends on ((OF_NET && OF_ADDRESS) || ACPI || PCI) && HAS_IOMEM
net/ethernet/mscc/Kconfig:	depends on OF_NET
net/ethernet/ezchip/Kconfig:	depends on OF_IRQ && OF_NET
net/ethernet/arc/Kconfig:	depends on OF_IRQ && OF_NET
net/ethernet/arc/Kconfig:	depends on OF_IRQ && OF_NET && REGULATOR

so it cannot just disappear. These will need reviewing and changing as
well.

	Andrew
Rob Herring Oct. 6, 2021, 4:58 p.m. UTC | #3
On Wed, Oct 6, 2021 at 11:34 AM Andrew Lunn <andrew@lunn.ch> wrote:
>
> On Wed, Oct 06, 2021 at 11:18:19AM -0500, Rob Herring wrote:
> > On Wed, Oct 6, 2021 at 10:45 AM Jakub Kicinski <kuba@kernel.org> wrote:
> > >
> > > Rob suggests to move of_net.c from under drivers/of/ somewhere
> > > to the networking code.
> > >
> > > Suggested-by: Rob Herring <robh@kernel.org>
> > > Signed-off-by: Jakub Kicinski <kuba@kernel.org>
> > > ---
> > > v2: new patch
> > > ---
> > >  drivers/of/Makefile               | 1 -
> > >  net/core/Makefile                 | 1 +
> > >  {drivers/of => net/core}/of_net.c | 0
> > >  3 files changed, 1 insertion(+), 1 deletion(-)
> > >  rename {drivers/of => net/core}/of_net.c (100%)
> > >
> > > diff --git a/drivers/of/Makefile b/drivers/of/Makefile
> > > index c13b982084a3..e0360a44306e 100644
> > > --- a/drivers/of/Makefile
> > > +++ b/drivers/of/Makefile
> > > @@ -7,7 +7,6 @@ obj-$(CONFIG_OF_EARLY_FLATTREE) += fdt_address.o
> > >  obj-$(CONFIG_OF_PROMTREE) += pdt.o
> > >  obj-$(CONFIG_OF_ADDRESS)  += address.o
> > >  obj-$(CONFIG_OF_IRQ)    += irq.o
> > > -obj-$(CONFIG_OF_NET)   += of_net.o
> > >  obj-$(CONFIG_OF_UNITTEST) += unittest.o
> > >  obj-$(CONFIG_OF_RESERVED_MEM) += of_reserved_mem.o
> > >  obj-$(CONFIG_OF_RESOLVE)  += resolver.o
> > > diff --git a/net/core/Makefile b/net/core/Makefile
> > > index 35ced6201814..37b1befc39aa 100644
> > > --- a/net/core/Makefile
> > > +++ b/net/core/Makefile
> > > @@ -36,3 +36,4 @@ obj-$(CONFIG_FAILOVER) += failover.o
> > >  obj-$(CONFIG_NET_SOCK_MSG) += skmsg.o
> > >  obj-$(CONFIG_BPF_SYSCALL) += sock_map.o
> > >  obj-$(CONFIG_BPF_SYSCALL) += bpf_sk_storage.o
> > > +obj-$(CONFIG_OF_NET)   += of_net.o
> >
> > The OF_NET kconfig should move or disappear too. I imagine you can do just:
>
> It is used in a few places:

Okay, then just move it for now.

I suspect though that most of these can either be dropped or replaced
with just 'OF' dependency.

> net/ethernet/litex/Kconfig:     depends on OF_NET
> net/ethernet/amd/Kconfig:       depends on ((OF_NET && OF_ADDRESS) || ACPI || PCI) && HAS_IOMEM

If the driver depends on OF or ACPI, then the dependency should just
be removed because one of those is almost always enabled.

> net/ethernet/mscc/Kconfig:      depends on OF_NET
> net/ethernet/ezchip/Kconfig:    depends on OF_IRQ && OF_NET
> net/ethernet/arc/Kconfig:       depends on OF_IRQ && OF_NET
> net/ethernet/arc/Kconfig:       depends on OF_IRQ && OF_NET && REGULATOR

I don't see any OF_IRQ dependency (which would be odd). The OF_NET
dependency is just of_get_phy_mode() from a quick glance and we have a
stub for it.

Rob
Jakub Kicinski Oct. 6, 2021, 5:12 p.m. UTC | #4
On Wed, 6 Oct 2021 11:58:07 -0500 Rob Herring wrote:
> On Wed, Oct 6, 2021 at 11:34 AM Andrew Lunn <andrew@lunn.ch> wrote:
> >
> > On Wed, Oct 06, 2021 at 11:18:19AM -0500, Rob Herring wrote:  
> > > The OF_NET kconfig should move or disappear too. I imagine you can do just:  
> >
> > It is used in a few places:  
> 
> Okay, then just move it for now.
> 
> I suspect though that most of these can either be dropped or replaced
> with just 'OF' dependency.

I have something that builds with allmodconfig :) see below.

> > net/ethernet/litex/Kconfig:     depends on OF_NET
> > net/ethernet/amd/Kconfig:       depends on ((OF_NET && OF_ADDRESS) || ACPI || PCI) && HAS_IOMEM  
> 
> If the driver depends on OF or ACPI, then the dependency should just
> be removed because one of those is almost always enabled.

I assumed any OF_* implies OF so just dropping OF_NET.

> > net/ethernet/mscc/Kconfig:      depends on OF_NET
> > net/ethernet/ezchip/Kconfig:    depends on OF_IRQ && OF_NET
> > net/ethernet/arc/Kconfig:       depends on OF_IRQ && OF_NET
> > net/ethernet/arc/Kconfig:       depends on OF_IRQ && OF_NET && REGULATOR  
> 
> I don't see any OF_IRQ dependency (which would be odd). The OF_NET
> dependency is just of_get_phy_mode() from a quick glance and we have a
> stub for it.

Hm. Indeed on the OF_IRQ.

net/ethernet/arc/ has irq_of_parse_and_map()
but I don't see the need in ezchip, but that seems like a separate matter...

--->8-----

diff --git a/drivers/net/ethernet/amd/Kconfig b/drivers/net/ethernet/amd/Kconfig
index 4786f0504691..899c8a2a34b6 100644
--- a/drivers/net/ethernet/amd/Kconfig
+++ b/drivers/net/ethernet/amd/Kconfig
@@ -168,7 +168,7 @@ config SUNLANCE
 
 config AMD_XGBE
 	tristate "AMD 10GbE Ethernet driver"
-	depends on ((OF_NET && OF_ADDRESS) || ACPI || PCI) && HAS_IOMEM
+	depends on (OF_ADDRESS || ACPI || PCI) && HAS_IOMEM
 	depends on X86 || ARM64 || COMPILE_TEST
 	depends on PTP_1588_CLOCK_OPTIONAL
 	select BITREVERSE
diff --git a/drivers/net/ethernet/arc/Kconfig b/drivers/net/ethernet/arc/Kconfig
index 37a41773dd43..840a9ce7ba1c 100644
--- a/drivers/net/ethernet/arc/Kconfig
+++ b/drivers/net/ethernet/arc/Kconfig
@@ -25,7 +25,7 @@ config ARC_EMAC_CORE
 config ARC_EMAC
 	tristate "ARC EMAC support"
 	select ARC_EMAC_CORE
-	depends on OF_IRQ && OF_NET
+	depends on OF_IRQ
 	depends on ARC || COMPILE_TEST
 	help
 	  On some legacy ARC (Synopsys) FPGA boards such as ARCAngel4/ML50x
@@ -35,7 +35,7 @@ config ARC_EMAC
 config EMAC_ROCKCHIP
 	tristate "Rockchip EMAC support"
 	select ARC_EMAC_CORE
-	depends on OF_IRQ && OF_NET && REGULATOR
+	depends on OF_IRQ && REGULATOR
 	depends on ARCH_ROCKCHIP || COMPILE_TEST
 	help
 	  Support for Rockchip RK3036/RK3066/RK3188 EMAC ethernet controllers.
diff --git a/drivers/net/ethernet/ezchip/Kconfig b/drivers/net/ethernet/ezchip/Kconfig
index 38aa824efb25..9241b9b1c7a3 100644
--- a/drivers/net/ethernet/ezchip/Kconfig
+++ b/drivers/net/ethernet/ezchip/Kconfig
@@ -18,7 +18,7 @@ if NET_VENDOR_EZCHIP
 
 config EZCHIP_NPS_MANAGEMENT_ENET
 	tristate "EZchip NPS management enet support"
-	depends on OF_IRQ && OF_NET
+	depends on OF_IRQ
 	depends on HAS_IOMEM
 	help
 	  Simple LAN device for debug or management purposes.
diff --git a/drivers/net/ethernet/litex/Kconfig b/drivers/net/ethernet/litex/Kconfig
index 63bf01d28f0c..f99adbf26ab4 100644
--- a/drivers/net/ethernet/litex/Kconfig
+++ b/drivers/net/ethernet/litex/Kconfig
@@ -17,7 +17,7 @@ if NET_VENDOR_LITEX
 
 config LITEX_LITEETH
 	tristate "LiteX Ethernet support"
-	depends on OF_NET
+	depends on OF
 	help
 	  If you wish to compile a kernel for hardware with a LiteX LiteEth
 	  device then you should answer Y to this.
diff --git a/drivers/net/ethernet/mscc/Kconfig b/drivers/net/ethernet/mscc/Kconfig
index b6a73d151dec..8dd8c7f425d2 100644
--- a/drivers/net/ethernet/mscc/Kconfig
+++ b/drivers/net/ethernet/mscc/Kconfig
@@ -28,7 +28,7 @@ config MSCC_OCELOT_SWITCH
 	depends on BRIDGE || BRIDGE=n
 	depends on NET_SWITCHDEV
 	depends on HAS_IOMEM
-	depends on OF_NET
+	depends on OF
 	select MSCC_OCELOT_SWITCH_LIB
 	select GENERIC_PHY
 	help
diff --git a/drivers/of/Kconfig b/drivers/of/Kconfig
index 3dfeae8912df..80b5fd44ab1c 100644
--- a/drivers/of/Kconfig
+++ b/drivers/of/Kconfig
@@ -70,10 +70,6 @@ config OF_IRQ
 	def_bool y
 	depends on !SPARC && IRQ_DOMAIN
 
-config OF_NET
-	depends on NETDEVICES
-	def_bool y
-
 config OF_RESERVED_MEM
 	def_bool OF_EARLY_FLATTREE
 
diff --git a/include/linux/of_net.h b/include/linux/of_net.h
index 314b9accd98c..0797e2edb8c2 100644
--- a/include/linux/of_net.h
+++ b/include/linux/of_net.h
@@ -8,7 +8,7 @@
 
 #include <linux/phy.h>
 
-#ifdef CONFIG_OF_NET
+#ifdef CONFIG_OF
 #include <linux/of.h>
 
 struct net_device;
diff --git a/net/core/Makefile b/net/core/Makefile
index 37b1befc39aa..4268846f2f47 100644
--- a/net/core/Makefile
+++ b/net/core/Makefile
@@ -36,4 +36,4 @@ obj-$(CONFIG_FAILOVER) += failover.o
 obj-$(CONFIG_NET_SOCK_MSG) += skmsg.o
 obj-$(CONFIG_BPF_SYSCALL) += sock_map.o
 obj-$(CONFIG_BPF_SYSCALL) += bpf_sk_storage.o
-obj-$(CONFIG_OF_NET)	+= of_net.o
+obj-$(CONFIG_OF)	+= of_net.o
diff --git a/net/core/net-sysfs.c b/net/core/net-sysfs.c
index f6197774048b..ae001c2ca2af 100644
--- a/net/core/net-sysfs.c
+++ b/net/core/net-sysfs.c
@@ -1869,7 +1869,7 @@ static struct class net_class __ro_after_init = {
 	.get_ownership = net_get_ownership,
 };
 
-#ifdef CONFIG_OF_NET
+#ifdef CONFIG_OF
 static int of_dev_node_match(struct device *dev, const void *data)
 {
 	for (; dev; dev = dev->parent) {
Rob Herring Oct. 6, 2021, 7:02 p.m. UTC | #5
On Wed, Oct 6, 2021 at 12:12 PM Jakub Kicinski <kuba@kernel.org> wrote:
>
> On Wed, 6 Oct 2021 11:58:07 -0500 Rob Herring wrote:
> > On Wed, Oct 6, 2021 at 11:34 AM Andrew Lunn <andrew@lunn.ch> wrote:
> > >
> > > On Wed, Oct 06, 2021 at 11:18:19AM -0500, Rob Herring wrote:
> > > > The OF_NET kconfig should move or disappear too. I imagine you can do just:
> > >
> > > It is used in a few places:
> >
> > Okay, then just move it for now.
> >
> > I suspect though that most of these can either be dropped or replaced
> > with just 'OF' dependency.
>
> I have something that builds with allmodconfig :) see below.

Sparc is the arch to try. That's generally we we get tripped up with OF options.

> > > net/ethernet/litex/Kconfig:     depends on OF_NET
> > > net/ethernet/amd/Kconfig:       depends on ((OF_NET && OF_ADDRESS) || ACPI || PCI) && HAS_IOMEM
> >
> > If the driver depends on OF or ACPI, then the dependency should just
> > be removed because one of those is almost always enabled.
>
> I assumed any OF_* implies OF so just dropping OF_NET.
>
> > > net/ethernet/mscc/Kconfig:      depends on OF_NET
> > > net/ethernet/ezchip/Kconfig:    depends on OF_IRQ && OF_NET
> > > net/ethernet/arc/Kconfig:       depends on OF_IRQ && OF_NET
> > > net/ethernet/arc/Kconfig:       depends on OF_IRQ && OF_NET && REGULATOR
> >
> > I don't see any OF_IRQ dependency (which would be odd). The OF_NET
> > dependency is just of_get_phy_mode() from a quick glance and we have a
> > stub for it.
>
> Hm. Indeed on the OF_IRQ.
>
> net/ethernet/arc/ has irq_of_parse_and_map()

Ah right, but there is a stub for that. The preference is to use
platform_get_irq() instead of irq_of_parse_and_map(), then the OF_IRQ
dependency would really be gone.

> but I don't see the need in ezchip, but that seems like a separate matter...
Jakub Kicinski Oct. 6, 2021, 7:49 p.m. UTC | #6
On Wed, 6 Oct 2021 14:02:42 -0500 Rob Herring wrote:
> > > Okay, then just move it for now.
> > >
> > > I suspect though that most of these can either be dropped or replaced
> > > with just 'OF' dependency.  
> >
> > I have something that builds with allmodconfig :) see below.  
> 
> Sparc is the arch to try. That's generally we we get tripped up with OF options.

Thanks for the hint, sparc (non-64) allmodconfig builds fine (well, it
spits out this:

  <stdin>:1515:2: warning: #warning syscall clone3 not implemented [-Wcpp] 
  arch/sparc/boot/Makefile:26: FORCE prerequisite is missing

but that seems unrelated).

Is there any other sparc config worth building?
diff mbox series

Patch

diff --git a/drivers/of/Makefile b/drivers/of/Makefile
index c13b982084a3..e0360a44306e 100644
--- a/drivers/of/Makefile
+++ b/drivers/of/Makefile
@@ -7,7 +7,6 @@  obj-$(CONFIG_OF_EARLY_FLATTREE) += fdt_address.o
 obj-$(CONFIG_OF_PROMTREE) += pdt.o
 obj-$(CONFIG_OF_ADDRESS)  += address.o
 obj-$(CONFIG_OF_IRQ)    += irq.o
-obj-$(CONFIG_OF_NET)	+= of_net.o
 obj-$(CONFIG_OF_UNITTEST) += unittest.o
 obj-$(CONFIG_OF_RESERVED_MEM) += of_reserved_mem.o
 obj-$(CONFIG_OF_RESOLVE)  += resolver.o
diff --git a/net/core/Makefile b/net/core/Makefile
index 35ced6201814..37b1befc39aa 100644
--- a/net/core/Makefile
+++ b/net/core/Makefile
@@ -36,3 +36,4 @@  obj-$(CONFIG_FAILOVER) += failover.o
 obj-$(CONFIG_NET_SOCK_MSG) += skmsg.o
 obj-$(CONFIG_BPF_SYSCALL) += sock_map.o
 obj-$(CONFIG_BPF_SYSCALL) += bpf_sk_storage.o
+obj-$(CONFIG_OF_NET)	+= of_net.o
diff --git a/drivers/of/of_net.c b/net/core/of_net.c
similarity index 100%
rename from drivers/of/of_net.c
rename to net/core/of_net.c