Message ID | 20230222223558.2328428-1-jacob.e.keller@intel.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [intel-net] ice: remove unnecessary CONFIG_ICE_GNSS | expand |
On Wed, 22 Feb 2023 14:35:58 -0800 Jacob Keller wrote: > I'm sending to both Intel-wired-lan and netdev lists since this was > discussed publicly on the netdev list. I'm not sure how we want to queue it > up, so I currently have it tagged as intel-net to go through Tony's IWL > tree. I'm happy however it gets pulled. I believe this is the best solution > as the total number of #ifdefs is the same as with CONFIG_ICE_GNSS, as is > the Makefile line. As far as I can tell the Kbuild just does the right thing > here so there is no need for an additional flag. > > I'm happy to respin with a "depends" check if we think the flag has other > value. Sorry for late response. Do you mean depends as in keeping the separate Kconfig? IS_REACHABLE() is a bit of a hack, makes figuring out what gets built a lot harder for users. How about we keep the IS_ENABLED() but add a dependency to ICE as a whole? I mean instead of s/IS_ENABLED/IS_REACHABLE/ do this: index 3facb55b7161..198995b3eab5 100644 --- a/drivers/net/ethernet/intel/Kconfig +++ b/drivers/net/ethernet/intel/Kconfig @@ -296,6 +296,7 @@ config ICE default n depends on PCI_MSI depends on PTP_1588_CLOCK_OPTIONAL + depends on GNSS || GNSS=n select AUXILIARY_BUS select DIMLIB select NET_DEVLINK Or do you really care about building ICE with no GNSS.. ?
On 2/22/2023 9:17 PM, Jakub Kicinski wrote: > On Wed, 22 Feb 2023 14:35:58 -0800 Jacob Keller wrote: >> I'm sending to both Intel-wired-lan and netdev lists since this was >> discussed publicly on the netdev list. I'm not sure how we want to queue it >> up, so I currently have it tagged as intel-net to go through Tony's IWL >> tree. I'm happy however it gets pulled. I believe this is the best solution >> as the total number of #ifdefs is the same as with CONFIG_ICE_GNSS, as is >> the Makefile line. As far as I can tell the Kbuild just does the right thing >> here so there is no need for an additional flag. >> >> I'm happy to respin with a "depends" check if we think the flag has other >> value. > > Sorry for late response. Do you mean depends as in keeping the separate > Kconfig? IS_REACHABLE() is a bit of a hack, makes figuring out what > gets built a lot harder for users. How about we keep the IS_ENABLED() > but add a dependency to ICE as a whole? > IS_ENABLED's problem is that it can break if CONFIG_GNSS = m while CONFIG_ICE = y (not that many people would build it as a builtin...) unless there is a dependency involved, but the original code allowed building ICE without GNSS. We did the CONFIG_ICE_GNSS but it lacked any dependency on ice = Y, so it was getting set regardless of whether ice was building. The solution with depends I was referring to is Linus' suggestion with adding depends on ICE to CONFIG_ICE_GNSS, or otherwise putting it in an "if ICE" block in Kconfig. > I mean instead of s/IS_ENABLED/IS_REACHABLE/ do this: > > index 3facb55b7161..198995b3eab5 100644 > --- a/drivers/net/ethernet/intel/Kconfig > +++ b/drivers/net/ethernet/intel/Kconfig > @@ -296,6 +296,7 @@ config ICE > default n > depends on PCI_MSI > depends on PTP_1588_CLOCK_OPTIONAL > + depends on GNSS || GNSS=n > select AUXILIARY_BUS > select DIMLIB > select NET_DEVLINK > > Or do you really care about building ICE with no GNSS.. ? This would probably also work, but you'd still need #if IS_ENABLED in ice_gnss.h to split the stub functions when GNSS is disabled. The original author, Arkadiusz, can comment on whether we care about building without GNSS support. My guess its a "we don't need it for core functionality, so we don't want to block building ice if someone doesn't want GNSS for whatever reason."
On Thu, 23 Feb 2023 14:55:07 -0800 Jacob Keller wrote: > > I mean instead of s/IS_ENABLED/IS_REACHABLE/ do this: > > > > index 3facb55b7161..198995b3eab5 100644 > > --- a/drivers/net/ethernet/intel/Kconfig > > +++ b/drivers/net/ethernet/intel/Kconfig > > @@ -296,6 +296,7 @@ config ICE > > default n > > depends on PCI_MSI > > depends on PTP_1588_CLOCK_OPTIONAL > > + depends on GNSS || GNSS=n > > select AUXILIARY_BUS > > select DIMLIB > > select NET_DEVLINK > > > > Or do you really care about building ICE with no GNSS.. ? > > This would probably also work, but you'd still need #if IS_ENABLED in > ice_gnss.h to split the stub functions when GNSS is disabled. > > The original author, Arkadiusz, can comment on whether we care about > building without GNSS support. > > My guess its a "we don't need it for core functionality, so we don't > want to block building ice if someone doesn't want GNSS for whatever > reason." Just to be crystal clear we're talking about the GNSS=m ICE=y case. I'm suggesting that it should be disallowed at the Kconfig level. ICE=m/y GNSS=n will still work as expected.
On 2/23/2023 4:13 PM, Jakub Kicinski wrote: > On Thu, 23 Feb 2023 14:55:07 -0800 Jacob Keller wrote: >>> I mean instead of s/IS_ENABLED/IS_REACHABLE/ do this: >>> >>> index 3facb55b7161..198995b3eab5 100644 >>> --- a/drivers/net/ethernet/intel/Kconfig >>> +++ b/drivers/net/ethernet/intel/Kconfig >>> @@ -296,6 +296,7 @@ config ICE >>> default n >>> depends on PCI_MSI >>> depends on PTP_1588_CLOCK_OPTIONAL >>> + depends on GNSS || GNSS=n >>> select AUXILIARY_BUS >>> select DIMLIB >>> select NET_DEVLINK >>> >>> Or do you really care about building ICE with no GNSS.. ? >> >> This would probably also work, but you'd still need #if IS_ENABLED in >> ice_gnss.h to split the stub functions when GNSS is disabled. >> >> The original author, Arkadiusz, can comment on whether we care about >> building without GNSS support. >> >> My guess its a "we don't need it for core functionality, so we don't >> want to block building ice if someone doesn't want GNSS for whatever >> reason." > > Just to be crystal clear we're talking about the GNSS=m ICE=y case. > I'm suggesting that it should be disallowed at the Kconfig level. > ICE=m/y GNSS=n will still work as expected. Fair enough. I guess I would expect "ICE=y, GNSS=m" to just have ice not support GNSS. But disallowing it is fine as well. I can see how that might be confusing to others. I can make that change with the dependency. Thanks, Jake
diff --git a/drivers/net/ethernet/intel/Kconfig b/drivers/net/ethernet/intel/Kconfig index a3c84bf05e44..3facb55b7161 100644 --- a/drivers/net/ethernet/intel/Kconfig +++ b/drivers/net/ethernet/intel/Kconfig @@ -337,9 +337,6 @@ config ICE_HWTS the PTP clock driver precise cross-timestamp ioctl (PTP_SYS_OFFSET_PRECISE). -config ICE_GNSS - def_bool GNSS = y || GNSS = ICE - config FM10K tristate "Intel(R) FM10000 Ethernet Switch Host Interface Support" default n diff --git a/drivers/net/ethernet/intel/ice/Makefile b/drivers/net/ethernet/intel/ice/Makefile index f269952d207d..5d89392f969b 100644 --- a/drivers/net/ethernet/intel/ice/Makefile +++ b/drivers/net/ethernet/intel/ice/Makefile @@ -47,4 +47,4 @@ 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 ice-$(CONFIG_ICE_SWITCHDEV) += ice_eswitch.o -ice-$(CONFIG_ICE_GNSS) += ice_gnss.o +ice-$(CONFIG_GNSS) += ice_gnss.o diff --git a/drivers/net/ethernet/intel/ice/ice_gnss.h b/drivers/net/ethernet/intel/ice/ice_gnss.h index 31db0701d13f..d453987492f0 100644 --- a/drivers/net/ethernet/intel/ice/ice_gnss.h +++ b/drivers/net/ethernet/intel/ice/ice_gnss.h @@ -45,7 +45,7 @@ struct gnss_serial { struct list_head queue; }; -#if IS_ENABLED(CONFIG_ICE_GNSS) +#if IS_REACHABLE(CONFIG_GNSS) void ice_gnss_init(struct ice_pf *pf); void ice_gnss_exit(struct ice_pf *pf); bool ice_gnss_is_gps_present(struct ice_hw *hw); @@ -56,5 +56,5 @@ static inline bool ice_gnss_is_gps_present(struct ice_hw *hw) { return false; } -#endif /* IS_ENABLED(CONFIG_ICE_GNSS) */ +#endif /* IS_REACHABLE(CONFIG_GNSS) */ #endif /* _ICE_GNSS_H_ */