diff options
author | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2007-03-28 15:11:13 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2007-04-06 03:43:16 -0700 |
commit | 8e76199aa2df59083a6e1dccbc76871f45b6eaad (patch) | |
tree | dd58a592adfdef733e9199dbdb915d86cacae8c8 | |
parent | b2c3c20bcd086eb6bf9fdf5e920f916d76556e72 (diff) |
ide: revert "ide: fix drive side 80c cable check, take 2" for now
"ide: fix drive side 80c cable check, take 2" patch from Tejun Heo (commit
fab59375b9543f84d1714f7dd00f5d11e531bd3e) fixed 80c bit test (bit13 of word93)
but we also need to fix master/slave IDENTIFY order (slave device should be
probed first in order to make it release PDIAG- signal) and we should also
check for pre-ATA3 slave devices (which may not release PDIAG- signal).
Unfortunately the fact that IDE driver doesn't reset devices itself helps
only a bit as it seems that some BIOS-es reset ATA devices after programming
the chipset, some BIOS-es can be set to not probe/configure selected devices,
there may be no BIOS in case of add-on cards etc.
Since we are quite late in the release cycle and the required changes will
affect a lot of systems just revert the fix for now.
[ Please also see libata commit f31f0cc2f0b7527072d94d02da332d9bb8d7d94c. ]
Cc: Chuck Ebbert <cebbert@redhat.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r-- | drivers/ide/ide-iops.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/ide/ide-iops.c b/drivers/ide/ide-iops.c index 65580559cee4..59b10a0f0d73 100644 --- a/drivers/ide/ide-iops.c +++ b/drivers/ide/ide-iops.c @@ -598,6 +598,9 @@ u8 eighty_ninty_three (ide_drive_t *drive) if(HWIF(drive)->udma_four == 0) return 0; + printk(KERN_INFO "%s: hw_config=%04x\n", + drive->name, drive->id->hw_config); + /* 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; @@ -607,8 +610,14 @@ u8 eighty_ninty_three (ide_drive_t *drive) if(!(drive->id->hw_config & 0x4000)) return 0; #endif /* CONFIG_IDEDMA_IVB */ +/* + * FIXME: enable this after fixing master/slave IDENTIFY order, + * also ignore the result if the slave device is pre-ATA3 one + */ +#if 0 if (!(drive->id->hw_config & 0x2000)) return 0; +#endif return 1; } |