diff options
author | Tejun Heo <htejun@gmail.com> | 2006-03-11 21:25:27 -0500 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2006-03-11 21:48:53 -0500 |
commit | 4b10e559277de490bf5c257a1e3264a2bf51404b (patch) | |
tree | a9f165b6e57d83b9f702838741b0958c334ba215 /drivers/scsi | |
parent | 418dc1f5a805822fcf1118804ddc689a4156db4a (diff) |
[PATCH] ahci: enable prefetching for PACKET commands
Turn on AHCI_CMD_PREFETCH for PACKET commands. This hints the
controller that it can prefetch the CDB and the PRD entries. This
patch is originally from Jeff Garzik.
Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/scsi')
-rw-r--r-- | drivers/scsi/ahci.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/scsi/ahci.c b/drivers/scsi/ahci.c index 00dfdefe2967..e97ab3e6de4d 100644 --- a/drivers/scsi/ahci.c +++ b/drivers/scsi/ahci.c | |||
@@ -66,6 +66,7 @@ enum { | |||
66 | AHCI_IRQ_ON_SG = (1 << 31), | 66 | AHCI_IRQ_ON_SG = (1 << 31), |
67 | AHCI_CMD_ATAPI = (1 << 5), | 67 | AHCI_CMD_ATAPI = (1 << 5), |
68 | AHCI_CMD_WRITE = (1 << 6), | 68 | AHCI_CMD_WRITE = (1 << 6), |
69 | AHCI_CMD_PREFETCH = (1 << 7), | ||
69 | AHCI_CMD_RESET = (1 << 8), | 70 | AHCI_CMD_RESET = (1 << 8), |
70 | AHCI_CMD_CLR_BUSY = (1 << 10), | 71 | AHCI_CMD_CLR_BUSY = (1 << 10), |
71 | 72 | ||
@@ -631,7 +632,7 @@ static void ahci_qc_prep(struct ata_queued_cmd *qc) | |||
631 | if (qc->tf.flags & ATA_TFLAG_WRITE) | 632 | if (qc->tf.flags & ATA_TFLAG_WRITE) |
632 | opts |= AHCI_CMD_WRITE; | 633 | opts |= AHCI_CMD_WRITE; |
633 | if (is_atapi) | 634 | if (is_atapi) |
634 | opts |= AHCI_CMD_ATAPI; | 635 | opts |= AHCI_CMD_ATAPI | AHCI_CMD_PREFETCH; |
635 | 636 | ||
636 | ahci_fill_cmd_slot(pp, opts); | 637 | ahci_fill_cmd_slot(pp, opts); |
637 | } | 638 | } |