Messages in this thread | | | From | Bartlomiej Zolnierkiewicz <> | Subject | Re: [RFC] IDE 80-core cable detect - chipset-specific code to over-ride eighty_ninty_three() | Date | Tue, 10 Feb 2004 01:10:26 +0100 |
| |
On Sunday 08 of February 2004 08:31, Willy Tarreau wrote: > On Sun, Feb 08, 2004 at 11:45:18AM +1100, Athol Mullen wrote: > > Before I modified eighty_ninty_three(), it returning 0 caused the > > _indicated_ mode to drop to UDMA33. Check in /proc/ide/piix to see what > > mode the driver tells you. IIRC (could be wrong), dmesg and hdparm both > > believe it to be in UDMA33 while the init code and /proc/ide/piix both > > showed it as UDMA5.
So host recognizes 80-wires cable correctly, but drive doesn't. eighty_ninty_three() is for checking _drive_ side.
> I captured dmesg and /proc/ide/piix, but forgot to post them. They're at > work now. But I did the change, by commenting out the call to > eighty_ninety_three() in piix.c, and my disks came back to 54 MB/s each, > and 64 MB/s cumulated. dmesg showed UDMA33 before and now displays UDMA100 > again. But I obviously cannot let it like that because if I install this > kernel in a 40-pin machine, I will get some surprizes !
This is eighty_ninty_three() in 2.6.x (except #if 0 (...) #endif code):
u8 eighty_ninty_three (ide_drive_t *drive) { return ((u8) ((HWIF(drive)->udma_four) && #ifndef CONFIG_IDEDMA_IVB (drive->id->hw_config & 0x4000) && #endif /* CONFIG_IDEDMA_IVB */ (drive->id->hw_config & 0x6000)) ? 1 : 0); #endif }
Maybe you have accidentally enabled CONFIG_IDEDMA_IVB? If not please send me copy of /proc/ide/hdX/identify for your drives.
--bart
- 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/
| |