Benjamin Herrenschmidt <[EMAIL PROTECTED]> writes: > >I have recompiled my 2.2.17pre11 kernel with int timeout=5000; nothing > >has changed (PB 3400): > Sounds like a bogus hard disk, it's returning an error status from the > SET_FEATURE command while advertising some DMA support. I'll double check > my code, but at first, I think the drive is wrong. I suggest you edit > drivers/block/ide_pmac.c, and try several things: > > - First, try increasing the wait_for_ready to a larger value
line 597: int timeout = 5000 (was 2000) > - Try increasing the IDE_WAKEUP_DELAY_MS definition to a much larger > value (10000 ?) line 102: #define IDE_WAKEUP_DELAY_MS 10000 (was 1500) > - In function dma_bits_to_command(), comment out the MDMA 2 case (should > look like this: > > static __inline__ unsigned char > dma_bits_to_command(unsigned char bits) > { > /* > if(bits & 0x04) > return IDE_DMA2_ENABLE; > */ > if(bits & 0x02) > return IDE_DMA1_ENABLE; > return IDE_DMA0_ENABLE; > } OK > And finally, you can try compiling without the "automatic" enable of DMA > in the config option but this will give you a much slower hard disk. I > would prefer if you could first test the previous stuffs so it helps me > figuring out what's wrong. I'll try this if nothing else works. Let me check the new kernel first. Andre