From: Alan Cox This is based on the proposed patches flying around but also checks that the device in question is new enough to have word 93 rather thanb blindly assuming word 93 == 0 means SATA (see ATA-5, ATA-7) Signed-off-by: Alan Cox Signed-off-by: Andrew Morton --- drivers/ide/ide-iops.c | 4 ++++ 1 file changed, 4 insertions(+) diff -puN drivers/ide/ide-iops.c~old-ide-fix-sata-detection-for-cabling drivers/ide/ide-iops.c --- a/drivers/ide/ide-iops.c~old-ide-fix-sata-detection-for-cabling +++ a/drivers/ide/ide-iops.c @@ -597,6 +597,10 @@ u8 eighty_ninty_three (ide_drive_t *driv { if(HWIF(drive)->udma_four == 0) return 0; + + /* Check for SATA but only if we are ATA5 or higher */ + if (drive->id->hw_config == 0 && (drive->id->major_rev_num & 0x7FE0)) + return 1; if (!(drive->id->hw_config & 0x6000)) return 0; #ifndef CONFIG_IDEDMA_IVB _