Eamonn Hamilton wrote:
Hi Mark.
It bisected down to the following:
e3472cbe5c10a91c737405cd706142787736392c is first bad commit
commit e3472cbe5c10a91c737405cd706142787736392c
Author: Albert Lee <albertcc@xxxxxxxxxx>
Date: Thu Dec 7 11:37:58 2006 +0800
libata: let ATA_FLAG_PIO_POLLING use polling pio for ATA_PROT_NODATA
Even if ATA_FLAG_PIO_POLLING is set, libata uses irq pio for the
ATA_PROT_NODATA protocol.
This patch let ATA_FLAG_PIO_POLLING use polling pio for the
ATA_PROT_NODATA protocol.
Signed-off-by: Albert Lee <albertcc@xxxxxxxxxx>
Signed-off-by: Jeff Garzik <jeff@xxxxxxxxxx>
---
..
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index 8816e30..d2e6863 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -4960,6 +4960,7 @@ unsigned int ata_qc_issue_prot(struct
ata_queued_cmd *qc)
if (ap->flags & ATA_FLAG_PIO_POLLING) {
switch (qc->tf.protocol) {
case ATA_PROT_PIO:
+ case ATA_PROT_NODATA:
case ATA_PROT_ATAPI:
case ATA_PROT_ATAPI_NODATA:
qc->tf.flags |= ATA_TFLAG_POLLING;
..
Now, why it dies after that, I don't know, it's one flag being added.
..
Eamonn,
Have you tried testing with the latest sata_mv fix?
This fixes interrupt problems with all 8-port sata_mv chips,
including the one you have access to.
Please give this patch a try and report back. Thanks.
The patch is against 2.6.28, but will probably apply
to several earlier kernel versions as well.
--- linux-2.6.28/drivers/ata/sata_mv.c 2009-01-13 15:57:11.000000000 -0500
+++ linux/drivers/ata/sata_mv.c 2009-01-14 16:56:38.000000000 -0500
@@ -883,7 +883,7 @@
struct mv_host_priv *hpriv = ap->host->private_data;
int hardport = mv_hardport_from_port(ap->port_no);
void __iomem *hc_mmio = mv_hc_base_from_port(
- mv_host_base(ap->host), hardport);
+ mv_host_base(ap->host), ap->port_no);
u32 hc_irq_cause, ipending;
/* clear EDMA event indicators, if any */
--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html