@@ -35,7 +35,6 @@ ice-y := ice_main.o \
ice_ethtool.o \
ice_repr.o \
ice_tc_lib.o \
- ice_dpll.o \
ice_fwlog.o \
ice_debugfs.o
ice-$(CONFIG_PCI_IOV) += \
@@ -46,7 +45,7 @@ ice-$(CONFIG_PCI_IOV) += \
ice_vf_mbx.o \
ice_vf_vsi_vlan_ops.o \
ice_vf_lib.o
-ice-$(CONFIG_PTP_1588_CLOCK) += ice_ptp.o ice_ptp_hw.o
+ice-$(CONFIG_PTP_1588_CLOCK) += ice_ptp.o ice_ptp_hw.o ice_dpll.o
ice-$(CONFIG_DCB) += ice_dcb.o ice_dcb_nl.o ice_dcb_lib.o
ice-$(CONFIG_RFS_ACCEL) += ice_arfs.o
ice-$(CONFIG_XDP_SOCKETS) += ice_xsk.o
@@ -97,8 +97,12 @@ struct ice_dplls {
s32 output_phase_adj_max;
};
+#if IS_ENABLED(CONFIG_PTP_1588_CLOCK)
void ice_dpll_init(struct ice_pf *pf);
-
void ice_dpll_deinit(struct ice_pf *pf);
+#else
+static inline void ice_dpll_init(struct ice_pf *pf) { }
+static inline void ice_dpll_deinit(struct ice_pf *pf) { }
+#endif
#endif
The ice_dpll.c file was recently merged with support for the DPLL interface. This feature as currently written in the ice driver depends on the PTP infrastructure and causes compilation failures if CONFIG_PTP_1588_CLOCK is disabled: ld: vmlinux.o: in function `ice_dpll_init_info_direct_pins': ice_dpll.c:(.text+0x894167): undefined reference to `ice_cgu_get_pin_freq_supp' ld: ice_dpll.c:(.text+0x894197): undefined reference to `ice_cgu_get_pin_name' ld: ice_dpll.c:(.text+0x8941a8): undefined reference to `ice_cgu_get_pin_type' ld: vmlinux.o: in function `ice_dpll_update_state': ice_dpll.c:(.text+0x894494): undefined reference to `ice_get_cgu_state' ld: vmlinux.o: in function `ice_dpll_init': (.text+0x8953d5): undefined reference to `ice_get_cgu_rclk_pin_info' This occurs because the ice_dpll.c file is compiled unconditionally, but it depends on functions in ice_ptp_hw.c which is only compiled with CONFIG_PTP_1588_CLOCK. It might be possible to break this dependency and expose those functions without CONFIG_PTP_1588_CLOCK, but that is not clear to me. For now, simply fix the Makefile to compile ice_dpll.c only when we have PTP support enabled. Also update the ice_dpll.h header to provide no-op fallbacks for enabling and disabling the DPLL feature in this case. Signed-off-by: Jacob Keller <jacob.e.keller@intel.com> --- drivers/net/ethernet/intel/ice/Makefile | 3 +-- drivers/net/ethernet/intel/ice/ice_dpll.h | 6 +++++- 2 files changed, 6 insertions(+), 3 deletions(-)