diff options
author | Albert Lee <albertcc@tw.ibm.com> | 2005-09-27 05:39:50 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@pobox.com> | 2005-09-28 12:07:13 -0400 |
commit | e50362eccd8809a224cda5f71714a088ba37b2ab (patch) | |
tree | 762b753691ef8c4645efaa677b32c57fd33ecbc0 /drivers/scsi/sata_vsc.c | |
parent | 312f7da2824c82800ee78d6190f12854456957af (diff) |
[PATCH] libata: interrupt driven pio for LLD
libata.h:
libata-core:
Add ATA_FLAG_PIO_POLLING flag for LLDs that expect interrupt for
command completion only.
sata_nv.c:
sata_vsc.c:
irq handler is wrapper around ata_host_intr(), can handle PIO interrupts.
sata_promise.c:
sata_sx4.c:
sata_qstor.c:
sata_mv.c:
Private irq handler.
Polling mode ATA_FLAG_PIO_POLLING used for compatibility.
Signed-off-by: Albert Lee <albertcc@tw.ibm.com>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
Diffstat (limited to 'drivers/scsi/sata_vsc.c')
-rw-r--r-- | drivers/scsi/sata_vsc.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/scsi/sata_vsc.c b/drivers/scsi/sata_vsc.c index cf94e0158a8d..92378d768c86 100644 --- a/drivers/scsi/sata_vsc.c +++ b/drivers/scsi/sata_vsc.c | |||
@@ -193,12 +193,12 @@ static irqreturn_t vsc_sata_interrupt (int irq, void *dev_instance, | |||
193 | struct ata_port *ap; | 193 | struct ata_port *ap; |
194 | 194 | ||
195 | ap = host_set->ports[i]; | 195 | ap = host_set->ports[i]; |
196 | if (ap && !(ap->flags & | 196 | if (ap && |
197 | (ATA_FLAG_PORT_DISABLED|ATA_FLAG_NOINTR))) { | 197 | !(ap->flags & ATA_FLAG_PORT_DISABLED)) { |
198 | struct ata_queued_cmd *qc; | 198 | struct ata_queued_cmd *qc; |
199 | 199 | ||
200 | qc = ata_qc_from_tag(ap, ap->active_tag); | 200 | qc = ata_qc_from_tag(ap, ap->active_tag); |
201 | if (qc && (!(qc->tf.ctl & ATA_NIEN))) | 201 | if (qc && (!(qc->tf.flags & ATA_TFLAG_POLLING))) |
202 | handled += ata_host_intr(ap, qc); | 202 | handled += ata_host_intr(ap, qc); |
203 | } | 203 | } |
204 | } | 204 | } |