ahci: Allow setting a default LPM policy for mobile chipsets
authorHans de Goede <hdegoede@redhat.com>
Mon, 11 Dec 2017 16:52:16 +0000 (17:52 +0100)
committerTejun Heo <tj@kernel.org>
Mon, 11 Dec 2017 16:53:33 +0000 (08:53 -0800)
commitebb82e3c79d2a956366d0848304a53648bd6350b
tree3894ee6113c2d3beeebb1b71b61284c988935f18
parent998008b779e424bd7513c434d0ab9c1268459009
ahci: Allow setting a default LPM policy for mobile chipsets

On many laptops setting a different LPM policy then unknown /
max_performance can lead to power-savings of 1.0 - 1.5 Watts (when idle).

Modern ultrabooks idle around 6W (at 50% screen brightness), 1.0 - 1.5W
is a significant chunk of this.

There are some performance / latency costs to enabling LPM by default,
so it is desirable to make it possible to set a different LPM policy
for mobile / laptop variants of chipsets / "South Bridges" vs their
desktop / server counterparts. Also enabling LPM by default is not
entirely without risk of regressions. At least min_power is known to
cause issues with some disks, including some reports of data corruption.

This commits adds a new ahci.mobile_lpm_policy kernel cmdline option,
which defaults to a new SATA_MOBILE_LPM_POLICY Kconfig option so that
Linux distributions can choose to set a LPM policy for mobile chipsets
by default.

The reason to have both a kernel cmdline option and a Kconfig default
value for it, is to allow easy overriding of the default to allow
trouble-shooting without needing to rebuild the kernel.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
drivers/ata/Kconfig
drivers/ata/ahci.c
drivers/ata/ahci.h