diff options
author | Marc Carino <marc.ceeeee@gmail.com> | 2013-08-25 02:22:50 -0400 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2013-08-25 09:39:12 -0400 |
commit | ed36911c747c18525691c0aa0fbe6b918c8eac19 (patch) | |
tree | fd8c376b691932deed756040bca9fbeda9054bef /drivers/ata | |
parent | 40fb59e75ad197a1c4ca2fbccef85432d8d103f8 (diff) |
libata: Add support for SEND/RECEIVE FPDMA QUEUED
Add support for the following ATA opcodes, which are present
in SATA 3.1 and T13 ATA ACS-3:
SEND FPDMA QUEUED
RECEIVE FPDMA QUEUED
Signed-off-by: Marc Carino <marc.ceeeee@gmail.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'drivers/ata')
-rw-r--r-- | drivers/ata/libata-core.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c index 2b4e92568850..a044be99841a 100644 --- a/drivers/ata/libata-core.c +++ b/drivers/ata/libata-core.c | |||
@@ -2141,6 +2141,22 @@ static int ata_dev_config_ncq(struct ata_device *dev, | |||
2141 | else | 2141 | else |
2142 | snprintf(desc, desc_sz, "NCQ (depth %d/%d)%s", hdepth, | 2142 | snprintf(desc, desc_sz, "NCQ (depth %d/%d)%s", hdepth, |
2143 | ddepth, aa_desc); | 2143 | ddepth, aa_desc); |
2144 | |||
2145 | if ((ap->flags & ATA_FLAG_FPDMA_AUX) && | ||
2146 | ata_id_has_ncq_send_and_recv(dev->id)) { | ||
2147 | err_mask = ata_read_log_page(dev, ATA_LOG_NCQ_SEND_RECV, | ||
2148 | 0, ap->sector_buf, 1); | ||
2149 | if (err_mask) { | ||
2150 | ata_dev_dbg(dev, | ||
2151 | "failed to get NCQ Send/Recv Log Emask 0x%x\n", | ||
2152 | err_mask); | ||
2153 | } else { | ||
2154 | dev->flags |= ATA_DFLAG_NCQ_SEND_RECV; | ||
2155 | memcpy(dev->ncq_send_recv_cmds, ap->sector_buf, | ||
2156 | ATA_LOG_NCQ_SEND_RECV_SIZE); | ||
2157 | } | ||
2158 | } | ||
2159 | |||
2144 | return 0; | 2160 | return 0; |
2145 | } | 2161 | } |
2146 | 2162 | ||