From: Saravana Kannan Date: Fri, 17 Mar 2023 20:51:33 +0000 (-0700) Subject: driver core: Add CONFIG_FW_DEVLINK_SYNC_STATE_TIMEOUT X-Git-Tag: v6.6.7~2982^2~36 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8ad266d133b005e88953b08d988fac86f74a0665;p=platform%2Fkernel%2Flinux-starfive.git driver core: Add CONFIG_FW_DEVLINK_SYNC_STATE_TIMEOUT Add a build time equivalent of fw_devlink.sync_state=timeout so that board specific kernels could enable it and not have to deal with setting or cluttering the kernel commandline. Cc: Doug Anderson Signed-off-by: Saravana Kannan Reviewed-by: Douglas Anderson Link: https://lore.kernel.org/r/20230317205134.964098-1-saravanak@google.com Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/base/Kconfig b/drivers/base/Kconfig index 6f04b83..2b8fd6b 100644 --- a/drivers/base/Kconfig +++ b/drivers/base/Kconfig @@ -230,4 +230,16 @@ config GENERIC_ARCH_NUMA Enable support for generic NUMA implementation. Currently, RISC-V and ARM64 use it. +config FW_DEVLINK_SYNC_STATE_TIMEOUT + bool "sync_state() behavior defaults to timeout instead of strict" + help + This is build time equivalent of adding kernel command line parameter + "fw_devlink.sync_state=timeout". Give up waiting on consumers and + call sync_state() on any devices that haven't yet received their + sync_state() calls after deferred_probe_timeout has expired or by + late_initcall() if !CONFIG_MODULES. You should almost always want to + select N here unless you have already successfully tested with the + command line option on every system/board your kernel is expected to + work on. + endmenu diff --git a/drivers/base/core.c b/drivers/base/core.c index b59692a4..89249be 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c @@ -1671,7 +1671,12 @@ early_param("fw_devlink.strict", fw_devlink_strict_setup); #define FW_DEVLINK_SYNC_STATE_STRICT 0 #define FW_DEVLINK_SYNC_STATE_TIMEOUT 1 +#ifndef CONFIG_FW_DEVLINK_SYNC_STATE_TIMEOUT static int fw_devlink_sync_state; +#else +static int fw_devlink_sync_state = FW_DEVLINK_SYNC_STATE_TIMEOUT; +#endif + static int __init fw_devlink_sync_state_setup(char *arg) { if (!arg)