ide: Fix drive's DWORD-IO handling
PATCH 1/1 ide: Fix drive's DWORD-IO handling
According the documentation, id[ATA_ID_DWORD_IO] is non-zero if the drive supports dword IO, while the code disables support by setting IDE_DFLAG_NO_IO_32BIT. In addition, this word has been reused by the ATA8 specification. This patch fixes both cases.
--- drivers/ide/ide-probe.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
drivers/ide/ide-probe.c +1 -1
@@ -856,7 +856,7 @@ static void ide_port_tune_devices(ide_hwif_t *hwif)ide_drive_t *drive = &hwif->drives[unit];if ((hwif->host_flags &IDE_HFLAG_NO_IO_32BIT ) || - drive->id[ATA_ID_DWORD_IO ]) + !ata_id_has_dword_io (drive->id)) drive->dev_flags |=IDE_DFLAG_NO_IO_32BIT ;else drive->dev_flags &= ~IDE_DFLAG_NO_IO_32BIT ;
Signature · 1 line
1.5.6.3
Quoted 13 lines · Mario Schwalbe
According the documentation, id[ATA_ID_DWORD_IO] is non-zero if the drive supports dword IO, while the code disables support by setting
IDE_DFLAG_NO_IO_32BIT. In addition, this word has been reused by the ATA8 specification. This patch fixes both cases.--- drivers/ide/ide-probe.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)drivers/ide/ide-probe.c +0
-0
drivers/ide/ide-probe.c static void ide_port_tune_devices(ide_hwif_t *hwif) · line 862
Quoted 8 lines
drivers/ide/ide-probe.c +1
-1@@ -856,7 +856,7 @@ static void ide_port_tune_devices(ide_hwif_t *hwif)ide_drive_t *drive = &hwif->drives[unit];if ((hwif->host_flags &IDE_HFLAG_NO_IO_32BIT ) || - drive->id[ATA_ID_DWORD_IO ]) + !ata_id_has_dword_io (drive->id)) drive->dev_flags |=IDE_DFLAG_NO_IO_32BIT ;else drive->dev_flags &= ~IDE_DFLAG_NO_IO_32BIT ;
This change is OK and I would happily apply the patch but...
ata_id_has_dword_io() itself has bugs that need fixing (which would have a nice side-effect of fixing some libata drivers that happen to use it directly). ATA_ID_DWORD_IO word is defined only in ATA-1 spec and devices confirming to the later versions of spec support dword IO just fine despite using zero value for the said word.
Thus could you please fix ata_id_has_dword_io() first (preferrably in a separate patch) and than re-submit this patch (btw please remember to include "Signed-off-by" line in your patches).
Thanks,
Bart