libata: support concurrent positioning ranges log
authorDamien Le Moal <damien.lemoal@wdc.com>
Wed, 27 Oct 2021 02:22:21 +0000 (11:22 +0900)
committerJens Axboe <axboe@kernel.dk>
Wed, 27 Oct 2021 03:01:48 +0000 (21:01 -0600)
commitfe22e1c2f705676a705d821301fc52eecc2fe055
treefd5bb0559cd46fc9de5f5ff2986344fe702e777a
parente815d36548f01797ce381be8f0b74f4ba9befd15
libata: support concurrent positioning ranges log

Add support to discover if an ATA device supports the Concurrent
Positioning Ranges data log (address 0x47), indicating that the device
is capable of seeking to multiple different locations in parallel using
multiple actuators serving different LBA ranges.

Also add support to translate the concurrent positioning ranges log
into its equivalent Concurrent Positioning Ranges VPD page B9h in
libata-scsi.c.

The format of the Concurrent Positioning Ranges Log is defined in ACS-5
r9.

Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Reviewed-by: Keith Busch <kbusch@kernel.org>
Link: https://lore.kernel.org/r/20211027022223.183838-4-damien.lemoal@wdc.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/ata/libata-core.c
drivers/ata/libata-scsi.c
include/linux/ata.h
include/linux/libata.h