> * Control bits in the timing register wasn't cleared properly while > programming PIO mode. Yep and if the BIOS programmed the slave into DMA that might not be ideal. > * MWDMA mode programming cleared the wrong part of control bits. I > think this can fix your problem. Your change does nothing here. 0x0F + 1 * 0xE1 = 0xF0 It's just a construct to avoid the use of the ugly C "?" operator. The rest of the code uses ? so the change makes sense for style, but it doesn't appear to be a bug. > * MWDMA mode programming cleared udma_mask even when the controller > doesn't support UDMA. This doesn't matter for your case. Or on the actual hardware. - 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