Patch 4/10:
Call irq_off() from bmdma_freeze() and remove duplicated code.
Signed-off-by: Albert Lee <[EMAIL PROTECTED]>
---
diff -Nrup 03_add_irq_off_lldd/drivers/ata/libata-sff.c
04_convert_freeze/drivers/ata/libata-sff.c
--- 03_add_irq_off_lldd/drivers/ata/libata-sff.c 2007-07-04
11:57:33.000000000 +0800
+++ 04_convert_freeze/drivers/ata/libata-sff.c 2007-07-04 13:12:38.000000000
+0800
@@ -413,20 +413,7 @@ void ata_bmdma_stop(struct ata_queued_cm
*/
void ata_bmdma_freeze(struct ata_port *ap)
{
- struct ata_ioports *ioaddr = &ap->ioaddr;
-
- ap->ctl |= ATA_NIEN;
- ap->last_ctl = ap->ctl;
-
- iowrite8(ap->ctl, ioaddr->ctl_addr);
-
- /* Under certain circumstances, some controllers raise IRQ on
- * ATA_NIEN manipulation. Also, many controllers fail to mask
- * previously pending IRQ on ATA_NIEN assertion. Clear it.
- */
- ata_chk_status(ap);
-
- ap->ops->irq_clear(ap);
+ ap->ops->irq_off(ap);
}
/**
diff -Nrup 03_add_irq_off_lldd/drivers/ata/pata_scc.c
04_convert_freeze/drivers/ata/pata_scc.c
--- 03_add_irq_off_lldd/drivers/ata/pata_scc.c 2007-07-04 12:09:29.000000000
+0800
+++ 04_convert_freeze/drivers/ata/pata_scc.c 2007-07-04 13:12:38.000000000
+0800
@@ -875,20 +875,7 @@ static u8 scc_irq_ack (struct ata_port *
static void scc_bmdma_freeze (struct ata_port *ap)
{
- struct ata_ioports *ioaddr = &ap->ioaddr;
-
- ap->ctl |= ATA_NIEN;
- ap->last_ctl = ap->ctl;
-
- out_be32(ioaddr->ctl_addr, ap->ctl);
-
- /* Under certain circumstances, some controllers raise IRQ on
- * ATA_NIEN manipulation. Also, many controllers fail to mask
- * previously pending IRQ on ATA_NIEN assertion. Clear it.
- */
- ata_chk_status(ap);
-
- ap->ops->irq_clear(ap);
+ scc_irq_off(ap);
}
/**
-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html