Message ID | 20240111165745.3653361-1-cassel@kernel.org |
---|---|
State | New |
Headers | show |
Series | ata: libata-sata: improve sysfs description for ATA_LPM_UNKNOWN | expand |
On 1/12/24 01:57, Niklas Cassel wrote: > Currently, both ATA_LPM_UNKNOWN (0) and ATA_LPM_MAX_POWER (1) displays > as "max_performance" in sysfs. > > This is quite misleading as they are not the same. > > For ATA_LPM_UNKNOWN, ata_eh_set_lpm() will not be called at all, > leaving the configuration in unknown state. > For ATA_LPM_MAX_POWER, ata_eh_set_lpm() is called, and setting the > policy to ATA_LPM_MAX_POWER. > > This also matches the description of the SATA_MOBILE_LPM_POLICY Kconfig: > 0 => Keep firmware settings > 1 => Maximum performance > > Thus, update the sysfs description for ATA_LPM_UNKNOWN to match reality. > > While at it, update libata.h to mention that the ascii descriptions > are in libata-sata.c and not in libata-scsi.c. > > Signed-off-by: Niklas Cassel <cassel@kernel.org> Looks good. Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
On Thu, Jan 11, 2024 at 05:57:44PM +0100, Niklas Cassel wrote: > Currently, both ATA_LPM_UNKNOWN (0) and ATA_LPM_MAX_POWER (1) displays > as "max_performance" in sysfs. > > This is quite misleading as they are not the same. > > For ATA_LPM_UNKNOWN, ata_eh_set_lpm() will not be called at all, > leaving the configuration in unknown state. > For ATA_LPM_MAX_POWER, ata_eh_set_lpm() is called, and setting the > policy to ATA_LPM_MAX_POWER. > > This also matches the description of the SATA_MOBILE_LPM_POLICY Kconfig: > 0 => Keep firmware settings > 1 => Maximum performance > > Thus, update the sysfs description for ATA_LPM_UNKNOWN to match reality. > > While at it, update libata.h to mention that the ascii descriptions > are in libata-sata.c and not in libata-scsi.c. > > Signed-off-by: Niklas Cassel <cassel@kernel.org> > --- Applied: https://git.kernel.org/pub/scm/linux/kernel/git/libata/linux.git/log/?h=for-6.8-fixes
diff --git a/drivers/ata/libata-sata.c b/drivers/ata/libata-sata.c index b6656c287175..0fb1934875f2 100644 --- a/drivers/ata/libata-sata.c +++ b/drivers/ata/libata-sata.c @@ -784,7 +784,7 @@ bool sata_lpm_ignore_phy_events(struct ata_link *link) EXPORT_SYMBOL_GPL(sata_lpm_ignore_phy_events); static const char *ata_lpm_policy_names[] = { - [ATA_LPM_UNKNOWN] = "max_performance", + [ATA_LPM_UNKNOWN] = "keep_firmware_settings", [ATA_LPM_MAX_POWER] = "max_performance", [ATA_LPM_MED_POWER] = "medium_power", [ATA_LPM_MED_POWER_WITH_DIPM] = "med_power_with_dipm", diff --git a/include/linux/libata.h b/include/linux/libata.h index 1dbb14daccfa..26d68115afb8 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h @@ -471,7 +471,7 @@ enum ata_completion_errors { /* * Link power management policy: If you alter this, you also need to - * alter libata-scsi.c (for the ascii descriptions) + * alter libata-sata.c (for the ascii descriptions) */ enum ata_lpm_policy { ATA_LPM_UNKNOWN,
Currently, both ATA_LPM_UNKNOWN (0) and ATA_LPM_MAX_POWER (1) displays as "max_performance" in sysfs. This is quite misleading as they are not the same. For ATA_LPM_UNKNOWN, ata_eh_set_lpm() will not be called at all, leaving the configuration in unknown state. For ATA_LPM_MAX_POWER, ata_eh_set_lpm() is called, and setting the policy to ATA_LPM_MAX_POWER. This also matches the description of the SATA_MOBILE_LPM_POLICY Kconfig: 0 => Keep firmware settings 1 => Maximum performance Thus, update the sysfs description for ATA_LPM_UNKNOWN to match reality. While at it, update libata.h to mention that the ascii descriptions are in libata-sata.c and not in libata-scsi.c. Signed-off-by: Niklas Cassel <cassel@kernel.org> --- drivers/ata/libata-sata.c | 2 +- include/linux/libata.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)