net: dsa: mv88e6xxx: depend on PTP conditionally
authorJohnny S. Lee <foss@jsl.io>
Thu, 22 Dec 2022 14:34:05 +0000 (22:34 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 12 Jan 2023 10:59:10 +0000 (11:59 +0100)
[ Upstream commit 30e725537546248bddc12eaac2fe0a258917f190 ]

PTP hardware timestamping related objects are not linked when PTP
support for MV88E6xxx (NET_DSA_MV88E6XXX_PTP) is disabled, therefore
NET_DSA_MV88E6XXX should not depend on PTP_1588_CLOCK_OPTIONAL
regardless of NET_DSA_MV88E6XXX_PTP.

Instead, condition more strictly on how NET_DSA_MV88E6XXX_PTP's
dependencies are met, making sure that it cannot be enabled when
NET_DSA_MV88E6XXX=y and PTP_1588_CLOCK=m.

In other words, this commit allows NET_DSA_MV88E6XXX to be built-in
while PTP_1588_CLOCK is a module, as long as NET_DSA_MV88E6XXX_PTP is
prevented from being enabled.

Fixes: e5f31552674e ("ethernet: fix PTP_1588_CLOCK dependencies")
Signed-off-by: Johnny S. Lee <foss@jsl.io>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/dsa/mv88e6xxx/Kconfig

index 7a2445a..e3181d5 100644 (file)
@@ -2,7 +2,6 @@
 config NET_DSA_MV88E6XXX
        tristate "Marvell 88E6xxx Ethernet switch fabric support"
        depends on NET_DSA
-       depends on PTP_1588_CLOCK_OPTIONAL
        select IRQ_DOMAIN
        select NET_DSA_TAG_EDSA
        select NET_DSA_TAG_DSA
@@ -13,7 +12,8 @@ config NET_DSA_MV88E6XXX
 config NET_DSA_MV88E6XXX_PTP
        bool "PTP support for Marvell 88E6xxx"
        default n
-       depends on NET_DSA_MV88E6XXX && PTP_1588_CLOCK
+       depends on (NET_DSA_MV88E6XXX = y && PTP_1588_CLOCK = y) || \
+                  (NET_DSA_MV88E6XXX = m && PTP_1588_CLOCK)
        help
          Say Y to enable PTP hardware timestamping on Marvell 88E6xxx switch
          chips that support it.