Hello.
Benjamin Herrenschmidt wrote:
In the meantime, that patch applied on top of your latest series fixes
the PIO setting in the driver to send the correct mode value in
pmac_ide_set_pio_mode(). I still object to your patch serie at this
point because hdparm -p N should not, imho, cause DMA to be disabled.
I really believe that the kernel should keep track separately of PIO and
DMA speeds.
We do too. :-)
Index: linux-work/drivers/ide/ppc/pmac.c
===================================================================
--- linux-work.orig/drivers/ide/ppc/pmac.c 2007-07-23 10:21:07.000000000 +1000
+++ linux-work/drivers/ide/ppc/pmac.c 2007-07-23 11:58:50.000000000 +1000
@@ -535,7 +535,7 @@ pmac_outbsync(ide_drive_t *drive, u8 val
[...]
@@ -1150,6 +1152,8 @@ pmac_ide_setup_device(pmac_ide_hwif_t *p
hwif->cbl = pmif->cable_80 ? ATA_CBL_PATA80 : ATA_CBL_PATA40;
hwif->drives[0].unmask = 1;
hwif->drives[1].unmask = 1;
+ hwif->drives[0].autotune = IDE_TUNE_AUTO;
+ hwif->drives[1].autotune = IDE_TUNE_AUTO;
Hm, indeed, most of the other drivers are just using 1.
hwif->pio_mask = ATA_PIO4;
hwif->set_pio_mode = pmac_ide_set_pio_mode;
if (pmif->kind == controller_un_ata6
@@ -1766,10 +1770,16 @@ pmac_ide_dma_test_irq (ide_drive_t *driv
static void pmac_ide_dma_host_off(ide_drive_t *drive)
{
+#ifdef IDE_PMAC_DEBUG
+ printk(KERN_ERR "%s: dma_host_off()\n", drive->name);
+#endif
}
static void pmac_ide_dma_host_on(ide_drive_t *drive)
{
+#ifdef IDE_PMAC_DEBUG
+ printk(KERN_ERR "%s: dma_host_on()\n", drive->name);
+#endif
}
Gah! Why the debug messages might be using KERN_ERR?
MBR, Sergei
-
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