ide: use IDE_TFLAG_LBA48 for REQ_TYPE_ATA_TASKFILE requests
PATCH 10/15 ide: use IDE_TFLAG_LBA48 for REQ_TYPE_ATA_TASKFILE requests
* Use IDE_TFLAG_LBA48 for REQ_TYPE_ATA_TASKFILE requests in ide_end_drive_cmd() to decide whether we need to read HOB taskfile registers.
* Update execute_drive_cmd() accordingly.
This is a preparation for the next patch which removes unnecessary writes to HOB taskfile registers for some ATA commands.
Signed-off-by Bartlomiej Zolnierkiewicz <[email protected]>
--- drivers/ide/ide-io.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-)
drivers/ide/ide-io.c +5 -3
@@ -374,7 +374,7 @@ void ide_end_drive_cmd (ide_drive_t *dri tf->device = hwif->INB (IDE_SELECT_REG ); tf->status = stat; -if (drive->addressing ==1 ) { +if (args->tf_flags &IDE_TFLAG_LBA48 ) { hwif->OUTB (drive->ctl|0x80 ,IDE_CONTROL_REG ); tf->hob_feature = hwif->INB (IDE_FEATURE_REG ); tf->hob_nsect = hwif->INB (IDE_NSECTOR_REG );
@@ -872,13 +872,15 @@ static ide_startstop_t execute_drive_cmd } task->tf_flags |=IDE_TFLAG_OUT_DEVICE ; +if (drive->addressing ==1 ) + task->tf_flags |=IDE_TFLAG_LBA48 ;if (task->tf_flags &IDE_TFLAG_FLAGGED )return flagged_taskfile (drive, task); task->tf_flags |=IDE_TFLAG_OUT_TF ; -if (drive->addressing ==1 ) - task->tf_flags |= (IDE_TFLAG_LBA48 |IDE_TFLAG_OUT_HOB ); +if (task->tf_flags &IDE_TFLAG_LBA48 ) + task->tf_flags |=IDE_TFLAG_OUT_HOB ;return do_rw_taskfile (drive, task); }