[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <b2068b86-dcbb-4fee-b091-4910e975a9b9@app.fastmail.com>
Date: Wed, 04 Jun 2025 09:24:22 +0200
From: "Arnd Bergmann" <arnd@...nel.org>
To: "Wei Fang" <wei.fang@....com>, "Vladimir Oltean" <vladimir.oltean@....com>
Cc: "Claudiu Manoil" <claudiu.manoil@....com>,
"Clark Wang" <xiaoning.wang@....com>,
"andrew+netdev@...n.ch" <andrew+netdev@...n.ch>,
"David S . Miller" <davem@...emloft.net>,
"Eric Dumazet" <edumazet@...gle.com>, "Jakub Kicinski" <kuba@...nel.org>,
"Paolo Abeni" <pabeni@...hat.com>, Netdev <netdev@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"imx@...ts.linux.dev" <imx@...ts.linux.dev>
Subject: Re: [PATCH net] net: enetc: fix the netc-lib driver build dependency
On Wed, Jun 4, 2025, at 04:44, Wei Fang wrote:
>> Ok, so to summarize, you want nxp-netc-lib.ko to be separate from
>> fsl-enetc-core.ko, because when you upstream the switch driver (also a
>> consumer of ntmp.o), you want it to depend just on nxp-netc-lib.ko but
>> not on the full fsl-enetc-core.ko.
>> If the only reverse dependency of NXP_NETC_LIB, NXP_ENETC4, becomes m,
>> then NXP_NETC_LIB also becomes m, but in reality, FSL_ENETC_CORE, via
>> cbdr.o, still depends on symbols from NXP_NETC_LIB.
>>
>> So you influence NXP_NETC_LIB to not become m when its only selecter is m,
>> instead stay y.
>>
>> Won't this need to change, and become even more complicated when
>> NXP_NETC_LIB gains another selecter, the switch driver?
>
> The dependency needs to be updated as follows when switch driver is
> added, to avoid the compilation errors.
>
> default y if FSL_ENETC_CORE=y && (NXP_ENETC4=m || NET_DSA_NETC_SWITCH=m)
>
>>
>> > help
>> > This module provides common functionalities for both ENETC and NETC
>> > Switch, such as NETC Table Management Protocol (NTMP) 2.0, common tc
>> > --
>> > 2.34.1
>> >
>>
>> What about this interpretation? cbdr.o uses symbols from NXP_NETC_LIB,
>> so the Kconfig option controlling cbdr.o, aka FSL_ENETC_CORE, should
>> select NXP_NETC_LIB. This solves the problem in a way which is more
>> logical to me, and doesn't need to change when the switch is later added.
>>
>
> Yes, this is also a solution. I thought that LS1028A does not need the netc-lib
> driver at all. Doing so will result in netc-lib being compiled on the LS1028A
> platform, which may be unacceptable, so I did not do this. Since you think
> this is better, I will apply this solution next. Thanks.
I think this version should work, and make logical sense:
--- a/drivers/net/ethernet/freescale/enetc/Kconfig
+++ b/drivers/net/ethernet/freescale/enetc/Kconfig
@@ -1,6 +1,7 @@
# SPDX-License-Identifier: GPL-2.0
config FSL_ENETC_CORE
tristate
+ select NXP_NETC_LIB if NXP_ENETC_NTMP
help
This module supports common functionality between the PF and VF
drivers for the NXP ENETC controller.
@@ -22,6 +23,9 @@ config NXP_NETC_LIB
Switch, such as NETC Table Management Protocol (NTMP) 2.0, common tc
flower and debugfs interfaces and so on.
+config NXP_ENETC_NTMP
+ bool
+
config FSL_ENETC
tristate "ENETC PF driver"
depends on PCI_MSI
@@ -45,7 +49,7 @@ config NXP_ENETC4
select FSL_ENETC_CORE
select FSL_ENETC_MDIO
select NXP_ENETC_PF_COMMON
- select NXP_NETC_LIB
+ select NXP_ENETC_NTMP
select PHYLINK
select DIMLIB
help
FSL_ENETC selects the feature it actually wants, and FSL_ENETC_CORE
enables the module based on the set of features that are enabled.
The switch module can then equally enable bool symbol. Not sure
what the best name would be for that symbol, that depends on what
you expect to get added to NXP_NETC_LIB.
Arnd
Powered by blists - more mailing lists