Messages in this thread | | | Subject | Re: Si3112 S-ATA bug preventing use of udma5. | From | Benjamin Herrenschmidt <> | Date | Sat, 24 Apr 2004 11:44:06 +1000 |
| |
> Incase the link is down/broken, to fix the bug change line 269 of > drivers/ide/pci/siimage.c from: > > u32 speedt = 0; > > to: > u16 speedt = 0;
> The crux of the problem is that the first arguent to OUTW (out WORD) > was a doubleword. The arguments were getting all screwed up on the stack. > The lower order 16-bit were being used in the second argument of OUTW, > and the upper order word was being used as the whole first argument, > which was always 0000. So basically the on-disk controller was being > programmed with erroneous settings. This fixes it and SATA on the SiI3112 > is now good on Linux. Apply this fix to linux/drivers/ide/pci/siimage.c > and recompile your Kernel for SATA love.
Hrm... that's strange. I'd tend to think it's a bogus definition of outw on this architecture (x86 ?) instead. an u32 should be casted down to u16 without problem.
Ben.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |