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

Reply via email to