From: Bartlomiej Zolnierkiewicz The problem is that hwif->ide_dma_on() is in the wrong place in piix_config_drive_xfer_rate() (btw. this problem is present not only in piix driver because of sick code duplication) and will be called for devices which don't support IORDY flow control for PIO (thus only PIO0/1/2 available). 25-akpm/drivers/ide/pci/piix.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletion(-) diff -puN drivers/ide/pci/piix.c~ide-piix-fallback-fix drivers/ide/pci/piix.c --- 25/drivers/ide/pci/piix.c~ide-piix-fallback-fix Mon Oct 13 14:15:56 2003 +++ 25-akpm/drivers/ide/pci/piix.c Mon Oct 13 14:15:56 2003 @@ -588,13 +588,15 @@ try_dma_modes: } else { goto fast_ata_pio; } + return hwif->ide_dma_on(drive); } else if ((id->capability & 8) || (id->field_valid & 2)) { fast_ata_pio: no_dma_set: hwif->tuneproc(drive, 255); return hwif->ide_dma_off_quietly(drive); } - return hwif->ide_dma_on(drive); + /* IORDY not supported */ + return 0; } /** _