Commit 8e76199a authored by Bartlomiej Zolnierkiewicz's avatar Bartlomiej Zolnierkiewicz Committed by Greg Kroah-Hartman

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
fab59375) 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 f31f0cc2. ]

Cc: Chuck Ebbert <cebbert@redhat.com>
Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent b2c3c20b
...@@ -598,6 +598,9 @@ u8 eighty_ninty_three (ide_drive_t *drive) ...@@ -598,6 +598,9 @@ u8 eighty_ninty_three (ide_drive_t *drive)
if(HWIF(drive)->udma_four == 0) if(HWIF(drive)->udma_four == 0)
return 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 */ /* Check for SATA but only if we are ATA5 or higher */
if (drive->id->hw_config == 0 && (drive->id->major_rev_num & 0x7FE0)) if (drive->id->hw_config == 0 && (drive->id->major_rev_num & 0x7FE0))
return 1; return 1;
...@@ -607,8 +610,14 @@ u8 eighty_ninty_three (ide_drive_t *drive) ...@@ -607,8 +610,14 @@ u8 eighty_ninty_three (ide_drive_t *drive)
if(!(drive->id->hw_config & 0x4000)) if(!(drive->id->hw_config & 0x4000))
return 0; return 0;
#endif /* CONFIG_IDEDMA_IVB */ #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)) if (!(drive->id->hw_config & 0x2000))
return 0; return 0;
#endif
return 1; return 1;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment