On some kernels tuned for performance, you want to always favour spin-up time versus power draw. This adds the ability to always favour spin-up time by default (disabling Staggered Spin-up favours performance, rather than power draw). Regardless of whether this is enabled or disabled the libahci.ignore_sss option will override any kernel config. Signed-off-by: Eric Curtin <ecurtin@xxxxxxxxxx> --- drivers/ata/Kconfig | 15 +++++++++++++++ drivers/ata/libahci.c | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig index 1c9f4fb2595d..36b11fbcf644 100644 --- a/drivers/ata/Kconfig +++ b/drivers/ata/Kconfig @@ -67,6 +67,21 @@ config ATA_FORCE If unsure, say Y. +config ATA_SSS + bool "Enable ATA Staggered Spin-up by default" + default y + help + This option denotes whether Staggered Spin-up capability on + storage controllers is used. Staggered Spin-up reduces + peak power draw, but decreases performance. If this config is + set to N, Staggered Spin-up capability will be ignored by + default. + + This can be overridden by using the kernel argument + libahci.ignore_sss. + + If unsure, say Y. + config ATA_ACPI bool "ATA ACPI Support" depends on ACPI diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c index cf8c7fd59ada..b7b573d47fda 100644 --- a/drivers/ata/libahci.c +++ b/drivers/ata/libahci.c @@ -33,7 +33,7 @@ #include "libata.h" static int ahci_skip_host_reset; -int ahci_ignore_sss; +int ahci_ignore_sss = !IS_ENABLED(CONFIG_ATA_SSS); EXPORT_SYMBOL_GPL(ahci_ignore_sss); module_param_named(skip_host_reset, ahci_skip_host_reset, int, 0444); -- 2.37.3