92db978f0d
My recent commitb6d49cab44
("net: Make PTP-specific drivers depend on PTP_1588_CLOCK") exposes a missing dependency in defconfigs that select TI_CPTS without selecting PTP_1588_CLOCK, leading to linker errors of the form: drivers/net/ethernet/ti/cpsw.o: in function `cpsw_ndo_stop': cpsw.c:(.text+0x680): undefined reference to `cpts_unregister' ... That's because TI_CPTS_MOD (which is the symbol gating the _compilation_ of cpts.c) now depends on PTP_1588_CLOCK, and so is not enabled in these configurations, but TI_CPTS (which is the symbol gating _calls_ to the cpts functions) _is_ enabled. So we end up compiling calls to functions that don't exist, resulting in the linker errors. This patch fixes build errors and restores previous behavior by: - ensure PTP_1588_CLOCK=y in TI specific configs and CPTS will be built - remove TI_CPTS_MOD and, instead, add dependencies from CPTS in TI_CPSW/TI_KEYSTONE_NETCP/TI_CPSW_SWITCHDEV as below: config TI_CPSW_SWITCHDEV ... depends on TI_CPTS || !TI_CPTS which will ensure proper dependencies PTP_1588_CLOCK -> TI_CPTS -> TI_CPSW/TI_KEYSTONE_NETCP/TI_CPSW_SWITCHDEV and build type selection. Note. For NFS boot + CPTS all of above configs have to be built-in. Cc: Arnd Bergmann <arnd@arndb.de> Cc: Dan Murphy <dmurphy@ti.com> Cc: Tony Lindgren <tony@atomide.com> Fixes:b6d49cab44
("net: Make PTP-specific drivers depend on PTP_1588_CLOCK") Reported-by: kbuild test robot <lkp@intel.com> Signed-off-by: Clay McClure <clay@daemons.net> [grygorii.strashko@ti.com: rewording, add deps cpsw/netcp from cpts, drop IS_REACHABLE] Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com> Reviewed-by: Arnd Bergmann <arnd@arndb.de> Tested-by: Tony Lindgren <tony@atomide.com> Signed-off-by: David S. Miller <davem@davemloft.net>
29 lines
1.2 KiB
Makefile
29 lines
1.2 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
#
|
|
# Makefile for the TI network device drivers.
|
|
#
|
|
|
|
obj-$(CONFIG_TI_CPSW) += cpsw-common.o
|
|
obj-$(CONFIG_TI_DAVINCI_EMAC) += cpsw-common.o
|
|
obj-$(CONFIG_TI_CPSW_SWITCHDEV) += cpsw-common.o
|
|
|
|
obj-$(CONFIG_TLAN) += tlan.o
|
|
obj-$(CONFIG_CPMAC) += cpmac.o
|
|
obj-$(CONFIG_TI_DAVINCI_EMAC) += ti_davinci_emac.o
|
|
ti_davinci_emac-y := davinci_emac.o davinci_cpdma.o
|
|
obj-$(CONFIG_TI_DAVINCI_MDIO) += davinci_mdio.o
|
|
obj-$(CONFIG_TI_CPSW_PHY_SEL) += cpsw-phy-sel.o
|
|
obj-$(CONFIG_TI_CPTS) += cpts.o
|
|
obj-$(CONFIG_TI_CPSW) += ti_cpsw.o
|
|
ti_cpsw-y := cpsw.o davinci_cpdma.o cpsw_ale.o cpsw_priv.o cpsw_sl.o cpsw_ethtool.o
|
|
obj-$(CONFIG_TI_CPSW_SWITCHDEV) += ti_cpsw_new.o
|
|
ti_cpsw_new-y := cpsw_switchdev.o cpsw_new.o davinci_cpdma.o cpsw_ale.o cpsw_sl.o cpsw_priv.o cpsw_ethtool.o
|
|
|
|
obj-$(CONFIG_TI_KEYSTONE_NETCP) += keystone_netcp.o
|
|
keystone_netcp-y := netcp_core.o cpsw_ale.o
|
|
obj-$(CONFIG_TI_KEYSTONE_NETCP_ETHSS) += keystone_netcp_ethss.o
|
|
keystone_netcp_ethss-y := netcp_ethss.o netcp_sgmii.o netcp_xgbepcsr.o cpsw_ale.o
|
|
|
|
obj-$(CONFIG_TI_K3_AM65_CPSW_NUSS) += ti-am65-cpsw-nuss.o
|
|
ti-am65-cpsw-nuss-y := am65-cpsw-nuss.o cpsw_sl.o am65-cpsw-ethtool.o cpsw_ale.o k3-cppi-desc-pool.o
|