All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH/RFC] libata-dev: handle ERR=1 DRQ=1
@ 2006-03-21 11:39 Albert Lee
  2006-03-21 17:35 ` Jeff Garzik
  0 siblings, 1 reply; 11+ messages in thread
From: Albert Lee @ 2006-03-21 11:39 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: IDE Linux, Doug Maxey

handle ERR=1 DRQ=1 for PIO protocol

Signed-off-by: Albert Lee <albertcc@tw.ibm.com>
---

Some PIO read commands might set DRQ=1 alone with ERR=1.
Under such situation, the data block should be transferred even if err=1.

This patch adds extra logic to HSM_ST_ERR to handle the required
data transfer.

BTW, also found the following work in progress:
"Disable Data Transfer after Error Detection"
http://t13.org/docs2006/dt1825Lr3-DDT_TR.pdf
If this feature is turned on, then DRQ will be guaranteed 0 when ERR=1
which would simplify the PIO error handling.

Patch against the irq-pio branch.
Need your review and advice, thanks.

Albert


--- irq-pio-printk/drivers/scsi/libata-core.c	2006-03-21 17:55:35.000000000 +0800
+++ irq-pio-err/drivers/scsi/libata-core.c	2006-03-21 19:09:38.000000000 +0800
@@ -3684,6 +3684,46 @@ fsm_start:
 			printk(KERN_ERR "ata%u: command error, drv_stat 0x%x\n",
 			       ap->id, status);
 
+		/* handle ERR=1 DRQ=1 */
+		if ((status & ATA_ERR) && (status & ATA_DRQ)) {
+			/* ERR=1 DRQ=1 is only possible for reads (READ PIO
+			 * and READ MULTI, etc). For writes, DRQ=1 doesn't
+			 * make sense since the data block has been
+			 * transferred to the device.
+			 */
+			if ((qc->tf.protocol == ATA_PROT_PIO) &&
+			    !(qc->tf.flags & ATA_TFLAG_WRITE)) {
+				/* Transfer the corrupted data */
+				ata_pio_sectors(qc);
+
+				/* FIXME: contents of taskfile registers
+				 * undefined after the data xfer.
+				 * Maybe we should call ->tf_read()
+				 * and backup the taskfile somewhere?
+				 * Otherwise ata_gen_fixed_sense() won't
+				 * get needed information.
+				 */
+
+				/* FIXME: The spec said if "correctable"
+				 * data error, subsequent blocks will
+				 * be transferred. Isn't the command
+				 * stopped if ERR is set?
+				 */
+
+				ata_altstatus(ap); /* flush */
+				status = ata_chk_status(ap);
+
+				printk(KERN_ERR "ata%u: ERR=1 DRQ=1 error"
+				       " block transferred, drv_stat 0x%x\n",
+				       ap->id, status);
+			} else
+				/* Low possibility for other protocols
+				 * being ERR=1 DRQ=1. Maybe device error?
+				 */
+				printk(KERN_ERR "ata%u: ERR=1 DRQ=1\n",
+				       ap->id);
+		}
+
 		/* make sure qc->err_mask is available to
 		 * know what's wrong and recover
 		 */



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH/RFC] libata-dev: handle ERR=1 DRQ=1
  2006-03-21 11:39 [PATCH/RFC] libata-dev: handle ERR=1 DRQ=1 Albert Lee
@ 2006-03-21 17:35 ` Jeff Garzik
  2006-03-21 17:43   ` Eric D. Mudama
  2006-03-23  8:26   ` [PATCH/RFC 2/2] libata-dev: fix the device err check sequence Albert Lee
  0 siblings, 2 replies; 11+ messages in thread
From: Jeff Garzik @ 2006-03-21 17:35 UTC (permalink / raw)
  To: albertl; +Cc: IDE Linux, Doug Maxey, edmudama

Albert Lee wrote:
> handle ERR=1 DRQ=1 for PIO protocol
> 
> Signed-off-by: Albert Lee <albertcc@tw.ibm.com>
> ---
> 
> Some PIO read commands might set DRQ=1 alone with ERR=1.
> Under such situation, the data block should be transferred even if err=1.
> 
> This patch adds extra logic to HSM_ST_ERR to handle the required
> data transfer.
> 
> BTW, also found the following work in progress:
> "Disable Data Transfer after Error Detection"
> http://t13.org/docs2006/dt1825Lr3-DDT_TR.pdf
> If this feature is turned on, then DRQ will be guaranteed 0 when ERR=1
> which would simplify the PIO error handling.
> 
> Patch against the irq-pio branch.
> Need your review and advice, thanks.

If DRQ==1 then the error register and ATA_ERR should be considered 
irrelevant.  I agree with Eric, that's more of a "don't touch it, other 
than to SRST it" situation.

	Jeff



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH/RFC] libata-dev: handle ERR=1 DRQ=1
  2006-03-21 17:35 ` Jeff Garzik
@ 2006-03-21 17:43   ` Eric D. Mudama
  2006-03-23  8:04     ` [PATCH 1/2] libata-dev: irq-pio minor fixes Albert Lee
  2006-03-23  8:26   ` [PATCH/RFC 2/2] libata-dev: fix the device err check sequence Albert Lee
  1 sibling, 1 reply; 11+ messages in thread
From: Eric D. Mudama @ 2006-03-21 17:43 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: albertl, IDE Linux, Doug Maxey

On 3/21/06, Jeff Garzik <jgarzik@pobox.com> wrote:
> If DRQ==1 then the error register and ATA_ERR should be considered
> irrelevant.  I agree with Eric, that's more of a "don't touch it, other
> than to SRST it" situation.
>
>         Jeff

Well, some applications want to know the drive's best-guess at the
data, as there are some cases where the resulting data resembles the
original and might be useful even in its partial-block form.

Of course, many errors result in absolute garbage, so it's probably
only useful for a very limited set of applications, that in most cases
already know roughly what type of data is in the bad block.

--eric

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH 1/2] libata-dev: irq-pio minor fixes
  2006-03-21 17:43   ` Eric D. Mudama
@ 2006-03-23  8:04     ` Albert Lee
  2006-03-23  8:18       ` Jeff Garzik
  2006-03-24 17:28       ` Jeff Garzik
  0 siblings, 2 replies; 11+ messages in thread
From: Albert Lee @ 2006-03-23  8:04 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: IDE Linux, Doug Maxey

irq-pio minor fixes for printk() and comments.

Signed-off-by: Albert Lee <albertcc@tw.ibm.com>
---

Patch against previous irq-pio snapshot.
The current irq-pio branch (949ec2c8e6b7b89179b85baf6309c009e1a1b951)
looks strange. Maybe it is under refresh.

--- irq-pio-00/drivers/scsi/libata-core.c	2006-03-23 11:10:58.000000000 +0800
+++ irq-pio-deverr0/drivers/scsi/libata-core.c	2006-03-23 14:56:03.000000000 +0800
@@ -1283,7 +1283,7 @@ static int ata_dev_configure(struct ata_
 		if (dev->id[59] & 0x100) {
 			dev->multi_count = dev->id[59] & 0xff;
 			DPRINTK("ata%u: dev %u multi count %u\n",
-				ap->id, device, dev->multi_count);
+				ap->id, dev->devno, dev->multi_count);
 		}
 
 		dev->cdb_len = 16;
@@ -3562,6 +3562,9 @@ static int ata_hsm_move(struct ata_port 
 	}
 
 fsm_start:
+	DPRINTK("ata%u: protocol %d task_state %d (dev_stat 0x%X)\n",
+		ap->id, qc->tf.protocol, ap->hsm_task_state, status);
+
 	switch (ap->hsm_task_state) {
 	case HSM_ST_FIRST:
 		/* Send first data block or PACKET CDB */
@@ -3688,6 +3691,7 @@ fsm_start:
 
 		ap->hsm_task_state = HSM_ST_IDLE;
 
+		/* complete taskfile transaction */
 		if (in_wq)
 			ata_poll_qc_complete(qc);
 		else
@@ -4441,9 +4445,6 @@ inline unsigned int ata_host_intr (struc
 	if (unlikely(status & ATA_BUSY))
 		goto idle_irq;
 
-	DPRINTK("ata%u: protocol %d task_state %d (dev_stat 0x%X)\n",
-		ap->id, qc->tf.protocol, ap->hsm_task_state, status);
-
 	/* ack bmdma irq events */
 	ap->ops->irq_clear(ap);
 




^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 1/2] libata-dev: irq-pio minor fixes
  2006-03-23  8:04     ` [PATCH 1/2] libata-dev: irq-pio minor fixes Albert Lee
@ 2006-03-23  8:18       ` Jeff Garzik
  2006-03-24 17:28       ` Jeff Garzik
  1 sibling, 0 replies; 11+ messages in thread
From: Jeff Garzik @ 2006-03-23  8:18 UTC (permalink / raw)
  To: albertl; +Cc: IDE Linux, Doug Maxey

Albert Lee wrote:
> irq-pio minor fixes for printk() and comments.
> 
> Signed-off-by: Albert Lee <albertcc@tw.ibm.com>
> ---
> 
> Patch against previous irq-pio snapshot.
> The current irq-pio branch (949ec2c8e6b7b89179b85baf6309c009e1a1b951)
> looks strange. Maybe it is under refresh.

It was rebased, which means you need to do a fresh pull.  I apologize 
for not warning you and linux-ide.  Something like

	git reset --hard 949ec2c8e6b7b89179b85baf6309c009e1a1b951

may work.  Or simply

	git checkout -f irq-pio

Or, as you say, it may be mirroring from master.kernel.org to the two 
public-facing kernel.org machines.

	Jeff




^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH/RFC 2/2] libata-dev: fix the device err check sequence
  2006-03-21 17:35 ` Jeff Garzik
  2006-03-21 17:43   ` Eric D. Mudama
@ 2006-03-23  8:26   ` Albert Lee
  1 sibling, 0 replies; 11+ messages in thread
From: Albert Lee @ 2006-03-23  8:26 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: IDE Linux, Doug Maxey, edmudama

Current irq-pio checks ERR bit and stops on ERR before it does anything else.
This behavior doesn't look right.
The DRQ bit should take higher precedence than the ERR bit.

Changes:
- Let the HSM do the data transfer whenever the
  device asks for DRQ bit, even if the ERR bit is set.
- For DRQ=1 ERR=1, don't trust the data

Signed-off-by: Albert Lee <albertcc@tw.ibm.com>
---

Revised per previous comments of Jeff and Eric.

The device error check in the entrance is removed.
Given the data returned on ERR=1 DRQ=1 might be corrupted or partial,
the device err check is added after DRQ check and before the data transfer.
We set AC_ERR_DEV to err_mask and tell the upper layer that the data
does not look good.

For your review, thanks.


--- irq-pio-deverr0/drivers/scsi/libata-core.c	2006-03-23 14:56:03.000000000 +0800
+++ irq-pio-deverr/drivers/scsi/libata-core.c	2006-03-23 15:26:03.000000000 +0800
@@ -3555,12 +3555,6 @@ static int ata_hsm_move(struct ata_port 
 	 */
 	WARN_ON(in_wq != ata_hsm_ok_in_wq(ap, qc));
 
-	/* check error */
-	if (unlikely(status & (ATA_ERR | ATA_DF))) {
-		qc->err_mask |= AC_ERR_DEV;
-		ap->hsm_task_state = HSM_ST_ERR;
-	}
-
 fsm_start:
 	DPRINTK("ata%u: protocol %d task_state %d (dev_stat 0x%X)\n",
 		ap->id, qc->tf.protocol, ap->hsm_task_state, status);
@@ -3583,6 +3577,17 @@ fsm_start:
 			goto fsm_start;
 		}
 
+		/* Device should not ask for data transfer (DRQ=1)
+		 * when it finds something wrong.
+		 * Anyway, we respect DRQ here and let HSM go on
+		 * without changing hsm_task_state to HSM_ST_ERR.
+		 */
+		if (unlikely(status & (ATA_ERR | ATA_DF))) {
+			printk(KERN_WARNING "ata%d: DRQ=1 with device error, dev_stat 0x%X\n",
+			       ap->id, status);
+			qc->err_mask |= AC_ERR_DEV;
+		}
+
 		/* Send the CDB (atapi) or the first data block (ata pio out).
 		 * During the state transition, interrupt handler shouldn't
 		 * be invoked before the data transfer is complete and
@@ -3625,6 +3630,17 @@ fsm_start:
 				goto fsm_start;
 			}
 
+			/* Device should not ask for data transfer (DRQ=1)
+			 * when it finds something wrong.
+			 * Anyway, we respect DRQ here and let HSM go on
+			 * without changing hsm_task_state to HSM_ST_ERR.
+			 */
+			if (unlikely(status & (ATA_ERR | ATA_DF))) {
+				printk(KERN_WARNING "ata%d: DRQ=1 with device error, dev_stat 0x%X\n",
+				       ap->id, status);
+				qc->err_mask |= AC_ERR_DEV;
+			}
+
 			atapi_pio_bytes(qc);
 
 			if (unlikely(ap->hsm_task_state == HSM_ST_ERR))
@@ -3640,6 +3656,22 @@ fsm_start:
 				goto fsm_start;
 			}
 
+			/* Some devices may ask for data transfer (DRQ=1)
+			 * alone with ERR=1 for PIO reads.
+			 * We respect DRQ here and let HSM go on without
+			 * changing hsm_task_state to HSM_ST_ERR.
+			 */
+			if (unlikely(status & (ATA_ERR | ATA_DF))) {
+				/* For writes, ERR=1 DRQ=1 doesn't make
+				 * sense since the data block has been
+				 * transferred to the device.
+				 */
+				WARN_ON(qc->tf.flags & ATA_TFLAG_WRITE);
+
+				/* data might be corrputed */
+				qc->err_mask |= AC_ERR_DEV;
+			}
+
 			ata_pio_sectors(qc);
 
 			if (ap->hsm_task_state == HSM_ST_LAST &&



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 1/2] libata-dev: irq-pio minor fixes
  2006-03-23  8:04     ` [PATCH 1/2] libata-dev: irq-pio minor fixes Albert Lee
  2006-03-23  8:18       ` Jeff Garzik
@ 2006-03-24 17:28       ` Jeff Garzik
  2006-03-25 10:07         ` [PATCH 1/3] libata-dev: irq-pio minor fixes (respin) Albert Lee
                           ` (2 more replies)
  1 sibling, 3 replies; 11+ messages in thread
From: Jeff Garzik @ 2006-03-24 17:28 UTC (permalink / raw)
  To: albertl; +Cc: IDE Linux, Doug Maxey

Albert Lee wrote:
> irq-pio minor fixes for printk() and comments.
> 
> Signed-off-by: Albert Lee <albertcc@tw.ibm.com>

ACK patches 1-2, but patch #1 didn't apply.

I'll delete these, and wait for you to resend.

	Jeff




^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH 1/3] libata-dev: irq-pio minor fixes (respin)
  2006-03-24 17:28       ` Jeff Garzik
@ 2006-03-25 10:07         ` Albert Lee
  2006-03-29 22:22           ` Jeff Garzik
  2006-03-25 10:11         ` [PATCH 2/3] libata-dev: fix the device err check sequence (respin) Albert Lee
  2006-03-25 10:18         ` [PATCH 3/3] libata-dev: wait idle after reading the last data block Albert Lee
  2 siblings, 1 reply; 11+ messages in thread
From: Albert Lee @ 2006-03-25 10:07 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: IDE Linux, Doug Maxey

irq-pio minor fixes for printk() and comments.

Signed-off-by: Albert Lee <albertcc@tw.ibm.com>
---

Patch against the irq-pio branch.

--- b7/drivers/scsi/libata-core.c	2006-03-25 16:51:06.000000000 +0800
+++ c1/drivers/scsi/libata-core.c	2006-03-25 16:58:19.000000000 +0800
@@ -1295,7 +1295,7 @@ static int ata_dev_configure(struct ata_
 		if (dev->id[59] & 0x100) {
 			dev->multi_count = dev->id[59] & 0xff;
 			DPRINTK("ata%u: dev %u multi count %u\n",
-				ap->id, device, dev->multi_count);
+				ap->id, dev->devno, dev->multi_count);
 		}
 
 		dev->cdb_len = 16;
@@ -3594,6 +3594,9 @@ static int ata_hsm_move(struct ata_port 
 	}
 
 fsm_start:
+	DPRINTK("ata%u: protocol %d task_state %d (dev_stat 0x%X)\n",
+		ap->id, qc->tf.protocol, ap->hsm_task_state, status);
+
 	switch (ap->hsm_task_state) {
 	case HSM_ST_FIRST:
 		/* Send first data block or PACKET CDB */
@@ -3720,6 +3723,7 @@ fsm_start:
 
 		ap->hsm_task_state = HSM_ST_IDLE;
 
+		/* complete taskfile transaction */
 		if (in_wq)
 			ata_poll_qc_complete(qc);
 		else
@@ -4241,9 +4245,6 @@ inline unsigned int ata_host_intr (struc
 	if (unlikely(status & ATA_BUSY))
 		goto idle_irq;
 
-	DPRINTK("ata%u: protocol %d task_state %d (dev_stat 0x%X)\n",
-		ap->id, qc->tf.protocol, ap->hsm_task_state, status);
-
 	/* ack bmdma irq events */
 	ap->ops->irq_clear(ap);
 



^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH 2/3] libata-dev: fix the device err check sequence (respin)
  2006-03-24 17:28       ` Jeff Garzik
  2006-03-25 10:07         ` [PATCH 1/3] libata-dev: irq-pio minor fixes (respin) Albert Lee
@ 2006-03-25 10:11         ` Albert Lee
  2006-03-25 10:18         ` [PATCH 3/3] libata-dev: wait idle after reading the last data block Albert Lee
  2 siblings, 0 replies; 11+ messages in thread
From: Albert Lee @ 2006-03-25 10:11 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: IDE Linux, Doug Maxey

Current irq-pio checks ERR bit and stops on ERR before it does anything else.
This behavior doesn't look right.
The DRQ bit should take higher precedence than the ERR bit.

Changes:
- Let the HSM do the data transfer whenever the
  device asks for DRQ bit, even if the ERR bit is set.
- For DRQ=1 ERR=1, don't trust the data

Signed-off-by: Albert Lee <albertcc@tw.ibm.com>
---

Revised per previous comments of Jeff and Eric.

The device error check in the entrance is removed.
Given the data returned on ERR=1 DRQ=1 might be corrupted or partial,
the device err check is added after DRQ check and before the data transfer.
AC_ERR_DEV is set to err_mask and tell the upper layer that the data
does not look good.

--- c1/drivers/scsi/libata-core.c	2006-03-25 16:58:19.000000000 +0800
+++ c2/drivers/scsi/libata-core.c	2006-03-25 16:59:26.000000000 +0800
@@ -3587,12 +3587,6 @@ static int ata_hsm_move(struct ata_port 
 	 */
 	WARN_ON(in_wq != ata_hsm_ok_in_wq(ap, qc));
 
-	/* check error */
-	if (unlikely(status & (ATA_ERR | ATA_DF))) {
-		qc->err_mask |= AC_ERR_DEV;
-		ap->hsm_task_state = HSM_ST_ERR;
-	}
-
 fsm_start:
 	DPRINTK("ata%u: protocol %d task_state %d (dev_stat 0x%X)\n",
 		ap->id, qc->tf.protocol, ap->hsm_task_state, status);
@@ -3615,6 +3609,17 @@ fsm_start:
 			goto fsm_start;
 		}
 
+		/* Device should not ask for data transfer (DRQ=1)
+		 * when it finds something wrong.
+		 * Anyway, we respect DRQ here and let HSM go on
+		 * without changing hsm_task_state to HSM_ST_ERR.
+		 */
+		if (unlikely(status & (ATA_ERR | ATA_DF))) {
+			printk(KERN_WARNING "ata%d: DRQ=1 with device error, dev_stat 0x%X\n",
+			       ap->id, status);
+			qc->err_mask |= AC_ERR_DEV;
+		}
+
 		/* Send the CDB (atapi) or the first data block (ata pio out).
 		 * During the state transition, interrupt handler shouldn't
 		 * be invoked before the data transfer is complete and
@@ -3657,6 +3662,17 @@ fsm_start:
 				goto fsm_start;
 			}
 
+			/* Device should not ask for data transfer (DRQ=1)
+			 * when it finds something wrong.
+			 * Anyway, we respect DRQ here and let HSM go on
+			 * without changing hsm_task_state to HSM_ST_ERR.
+			 */
+			if (unlikely(status & (ATA_ERR | ATA_DF))) {
+				printk(KERN_WARNING "ata%d: DRQ=1 with device error, dev_stat 0x%X\n",
+				       ap->id, status);
+				qc->err_mask |= AC_ERR_DEV;
+			}
+
 			atapi_pio_bytes(qc);
 
 			if (unlikely(ap->hsm_task_state == HSM_ST_ERR))
@@ -3672,6 +3688,22 @@ fsm_start:
 				goto fsm_start;
 			}
 
+			/* Some devices may ask for data transfer (DRQ=1)
+			 * alone with ERR=1 for PIO reads.
+			 * We respect DRQ here and let HSM go on without
+			 * changing hsm_task_state to HSM_ST_ERR.
+			 */
+			if (unlikely(status & (ATA_ERR | ATA_DF))) {
+				/* For writes, ERR=1 DRQ=1 doesn't make
+				 * sense since the data block has been
+				 * transferred to the device.
+				 */
+				WARN_ON(qc->tf.flags & ATA_TFLAG_WRITE);
+
+				/* data might be corrputed */
+				qc->err_mask |= AC_ERR_DEV;
+			}
+
 			ata_pio_sectors(qc);
 
 			if (ap->hsm_task_state == HSM_ST_LAST &&



^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH 3/3] libata-dev: wait idle after reading the last data block
  2006-03-24 17:28       ` Jeff Garzik
  2006-03-25 10:07         ` [PATCH 1/3] libata-dev: irq-pio minor fixes (respin) Albert Lee
  2006-03-25 10:11         ` [PATCH 2/3] libata-dev: fix the device err check sequence (respin) Albert Lee
@ 2006-03-25 10:18         ` Albert Lee
  2 siblings, 0 replies; 11+ messages in thread
From: Albert Lee @ 2006-03-25 10:18 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: IDE Linux, Doug Maxey

Some CD-ROM drives are slow to clear DRQ, after the last data block
is read by PIO. Use ata_wait_idle() after reading the last data block.

Signed-off-by: Albert Lee <albertcc@tw.ibm.com>
---

--- c2/drivers/scsi/libata-core.c	2006-03-25 16:59:26.000000000 +0800
+++ c3/drivers/scsi/libata-core.c	2006-03-25 17:01:29.000000000 +0800
@@ -3710,7 +3710,7 @@ fsm_start:
 			    (!(qc->tf.flags & ATA_TFLAG_WRITE))) {
 				/* all data read */
 				ata_altstatus(ap);
-				status = ata_chk_status(ap);
+				status = ata_wait_idle(ap);
 				goto fsm_start;
 			}
 		}



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 1/3] libata-dev: irq-pio minor fixes (respin)
  2006-03-25 10:07         ` [PATCH 1/3] libata-dev: irq-pio minor fixes (respin) Albert Lee
@ 2006-03-29 22:22           ` Jeff Garzik
  0 siblings, 0 replies; 11+ messages in thread
From: Jeff Garzik @ 2006-03-29 22:22 UTC (permalink / raw)
  To: albertl; +Cc: IDE Linux, Doug Maxey

Albert Lee wrote:
> irq-pio minor fixes for printk() and comments.
> 
> Signed-off-by: Albert Lee <albertcc@tw.ibm.com>

applied 1-3, and patches 1-10 of previous series, to irq-pio branch



^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2006-03-29 22:23 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-03-21 11:39 [PATCH/RFC] libata-dev: handle ERR=1 DRQ=1 Albert Lee
2006-03-21 17:35 ` Jeff Garzik
2006-03-21 17:43   ` Eric D. Mudama
2006-03-23  8:04     ` [PATCH 1/2] libata-dev: irq-pio minor fixes Albert Lee
2006-03-23  8:18       ` Jeff Garzik
2006-03-24 17:28       ` Jeff Garzik
2006-03-25 10:07         ` [PATCH 1/3] libata-dev: irq-pio minor fixes (respin) Albert Lee
2006-03-29 22:22           ` Jeff Garzik
2006-03-25 10:11         ` [PATCH 2/3] libata-dev: fix the device err check sequence (respin) Albert Lee
2006-03-25 10:18         ` [PATCH 3/3] libata-dev: wait idle after reading the last data block Albert Lee
2006-03-23  8:26   ` [PATCH/RFC 2/2] libata-dev: fix the device err check sequence Albert Lee

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.