mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-30 14:19:16 +00:00
libata: Add command definitions for NCQ Encapsulation for READ LOG DMA EXT
ACS-4 defines an NCQ encapsulation for READ LOG DMA EXT. Signed-off-by: Hannes Reinecke <hare@suse.com> Signed-off-by: Tejun Heo <tj@kernel.org>
This commit is contained in:
parent
5a2335512a
commit
5c65d8bb35
2 changed files with 12 additions and 0 deletions
|
@ -306,6 +306,9 @@ enum {
|
||||||
/* marked obsolete in the ATA/ATAPI-7 spec */
|
/* marked obsolete in the ATA/ATAPI-7 spec */
|
||||||
ATA_CMD_RESTORE = 0x10,
|
ATA_CMD_RESTORE = 0x10,
|
||||||
|
|
||||||
|
/* Subcmds for ATA_CMD_FPDMA_RECV */
|
||||||
|
ATA_SUBCMD_FPDMA_RECV_RD_LOG_DMA_EXT = 0x01,
|
||||||
|
|
||||||
/* Subcmds for ATA_CMD_FPDMA_SEND */
|
/* Subcmds for ATA_CMD_FPDMA_SEND */
|
||||||
ATA_SUBCMD_FPDMA_SEND_DSM = 0x00,
|
ATA_SUBCMD_FPDMA_SEND_DSM = 0x00,
|
||||||
ATA_SUBCMD_FPDMA_SEND_WR_LOG_DMA_EXT = 0x02,
|
ATA_SUBCMD_FPDMA_SEND_WR_LOG_DMA_EXT = 0x02,
|
||||||
|
@ -329,7 +332,9 @@ enum {
|
||||||
ATA_LOG_NCQ_SEND_RECV_DSM_OFFSET = 0x04,
|
ATA_LOG_NCQ_SEND_RECV_DSM_OFFSET = 0x04,
|
||||||
ATA_LOG_NCQ_SEND_RECV_DSM_TRIM = (1 << 0),
|
ATA_LOG_NCQ_SEND_RECV_DSM_TRIM = (1 << 0),
|
||||||
ATA_LOG_NCQ_SEND_RECV_RD_LOG_OFFSET = 0x08,
|
ATA_LOG_NCQ_SEND_RECV_RD_LOG_OFFSET = 0x08,
|
||||||
|
ATA_LOG_NCQ_SEND_RECV_RD_LOG_SUPPORTED = (1 << 0),
|
||||||
ATA_LOG_NCQ_SEND_RECV_WR_LOG_OFFSET = 0x0C,
|
ATA_LOG_NCQ_SEND_RECV_WR_LOG_OFFSET = 0x0C,
|
||||||
|
ATA_LOG_NCQ_SEND_RECV_WR_LOG_SUPPORTED = (1 << 0),
|
||||||
ATA_LOG_NCQ_SEND_RECV_SIZE = 0x10,
|
ATA_LOG_NCQ_SEND_RECV_SIZE = 0x10,
|
||||||
|
|
||||||
/* READ/WRITE LONG (obsolete) */
|
/* READ/WRITE LONG (obsolete) */
|
||||||
|
|
|
@ -1642,6 +1642,13 @@ static inline bool ata_fpdma_dsm_supported(struct ata_device *dev)
|
||||||
ATA_LOG_NCQ_SEND_RECV_DSM_TRIM);
|
ATA_LOG_NCQ_SEND_RECV_DSM_TRIM);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline bool ata_fpdma_read_log_supported(struct ata_device *dev)
|
||||||
|
{
|
||||||
|
return (dev->flags & ATA_DFLAG_NCQ_SEND_RECV) &&
|
||||||
|
(dev->ncq_send_recv_cmds[ATA_LOG_NCQ_SEND_RECV_RD_LOG_OFFSET] &
|
||||||
|
ATA_LOG_NCQ_SEND_RECV_RD_LOG_SUPPORTED);
|
||||||
|
}
|
||||||
|
|
||||||
static inline void ata_qc_set_polling(struct ata_queued_cmd *qc)
|
static inline void ata_qc_set_polling(struct ata_queued_cmd *qc)
|
||||||
{
|
{
|
||||||
qc->tf.ctl |= ATA_NIEN;
|
qc->tf.ctl |= ATA_NIEN;
|
||||||
|
|
Loading…
Reference in a new issue