ata: libata-core: Introduce ata_dev_config_lpm()
authorDamien Le Moal <dlemoal@kernel.org>
Tue, 1 Jul 2025 12:53:12 +0000 (21:53 +0900)
committerNiklas Cassel <cassel@kernel.org>
Wed, 2 Jul 2025 10:01:33 +0000 (12:01 +0200)
commitd360121832d8a36871249271df5b9ff05f835f62
tree5f0c69b364fc3c5a776065716af6795ce506388d
parent0013ddc4cf2047caca31c541b18728d9e2eccba9
ata: libata-core: Introduce ata_dev_config_lpm()

If the port of a device does not support Device Initiated Power
Management (DIPM), that is, the port is flagged with ATA_FLAG_NO_DIPM,
the DIPM feature of a device should not be used. Though DIPM is disabled
by default on a device, the "Software Settings Preservation feature"
may keep DIPM enabled or DIPM may have been enabled by the system
firmware.

Introduce the function ata_dev_config_lpm() to always disable DIPM on a
device that supports this feature if the port of the device is flagged
with ATA_FLAG_NO_DIPM. ata_dev_config_lpm() is called from
ata_dev_configure(), ensuring that a device DIPM feature is disabled
when it cannot be used.

Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
Reviewed-by: Niklas Cassel <cassel@kernel.org>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Link: https://lore.kernel.org/r/20250701125321.69496-2-dlemoal@kernel.org
Signed-off-by: Niklas Cassel <cassel@kernel.org>
drivers/ata/libata-core.c