ide: set IDE_TFLAG_IN_* flags before queuing/executing command
* Add IDE_TFLAG_{HOB,TF,DEVICE} defines. * Set IDE_TFLAG_IN_* flags in {do_rw,ide_no_data,ide_raw}_taskfile() users. * Remove no longer needed ->tf_flags setup from ide_end_drive_cmd(). There should be no functionality changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
This commit is contained in:
@@ -201,7 +201,7 @@ static ide_startstop_t __ide_do_rw_disk(ide_drive_t *drive, struct request *rq,
|
||||
|
||||
memset(&task, 0, sizeof(task));
|
||||
task.tf_flags = IDE_TFLAG_NO_SELECT_MASK; /* FIXME? */
|
||||
task.tf_flags |= (IDE_TFLAG_OUT_TF | IDE_TFLAG_OUT_DEVICE);
|
||||
task.tf_flags |= (IDE_TFLAG_TF | IDE_TFLAG_DEVICE);
|
||||
|
||||
if (drive->select.b.lba) {
|
||||
if (lba48) {
|
||||
@@ -220,7 +220,7 @@ static ide_startstop_t __ide_do_rw_disk(ide_drive_t *drive, struct request *rq,
|
||||
tf->lbam = (u8)(block >> 8);
|
||||
tf->lbah = (u8)(block >> 16);
|
||||
|
||||
task.tf_flags |= (IDE_TFLAG_LBA48 | IDE_TFLAG_OUT_HOB);
|
||||
task.tf_flags |= (IDE_TFLAG_LBA48 | IDE_TFLAG_HOB);
|
||||
} else {
|
||||
tf->nsect = nsectors & 0xff;
|
||||
tf->lbal = block;
|
||||
@@ -314,9 +314,9 @@ static u64 idedisk_read_native_max_address(ide_drive_t *drive, int lba48)
|
||||
else
|
||||
tf->command = WIN_READ_NATIVE_MAX;
|
||||
tf->device = ATA_LBA;
|
||||
args.tf_flags = IDE_TFLAG_OUT_TF | IDE_TFLAG_OUT_DEVICE;
|
||||
args.tf_flags = IDE_TFLAG_TF | IDE_TFLAG_DEVICE;
|
||||
if (lba48)
|
||||
args.tf_flags |= (IDE_TFLAG_LBA48 | IDE_TFLAG_OUT_HOB);
|
||||
args.tf_flags |= (IDE_TFLAG_LBA48 | IDE_TFLAG_HOB);
|
||||
/* submit command request */
|
||||
ide_no_data_taskfile(drive, &args);
|
||||
|
||||
@@ -353,9 +353,9 @@ static u64 idedisk_set_max_address(ide_drive_t *drive, u64 addr_req, int lba48)
|
||||
tf->command = WIN_SET_MAX;
|
||||
}
|
||||
tf->device |= ATA_LBA;
|
||||
args.tf_flags = IDE_TFLAG_OUT_TF | IDE_TFLAG_OUT_DEVICE;
|
||||
args.tf_flags = IDE_TFLAG_TF | IDE_TFLAG_DEVICE;
|
||||
if (lba48)
|
||||
args.tf_flags |= (IDE_TFLAG_LBA48 | IDE_TFLAG_OUT_HOB);
|
||||
args.tf_flags |= (IDE_TFLAG_LBA48 | IDE_TFLAG_HOB);
|
||||
/* submit command request */
|
||||
ide_no_data_taskfile(drive, &args);
|
||||
/* if OK, compute maximum address value */
|
||||
@@ -495,7 +495,7 @@ static int smart_enable(ide_drive_t *drive)
|
||||
tf->lbam = SMART_LCYL_PASS;
|
||||
tf->lbah = SMART_HCYL_PASS;
|
||||
tf->command = WIN_SMART;
|
||||
args.tf_flags = IDE_TFLAG_OUT_TF | IDE_TFLAG_OUT_DEVICE;
|
||||
args.tf_flags = IDE_TFLAG_TF | IDE_TFLAG_DEVICE;
|
||||
return ide_no_data_taskfile(drive, &args);
|
||||
}
|
||||
|
||||
@@ -510,7 +510,7 @@ static int get_smart_data(ide_drive_t *drive, u8 *buf, u8 sub_cmd)
|
||||
tf->lbam = SMART_LCYL_PASS;
|
||||
tf->lbah = SMART_HCYL_PASS;
|
||||
tf->command = WIN_SMART;
|
||||
args.tf_flags = IDE_TFLAG_OUT_TF | IDE_TFLAG_OUT_DEVICE;
|
||||
args.tf_flags = IDE_TFLAG_TF | IDE_TFLAG_DEVICE;
|
||||
args.data_phase = TASKFILE_IN;
|
||||
(void) smart_enable(drive);
|
||||
return ide_raw_taskfile(drive, &args, buf, 1);
|
||||
@@ -689,7 +689,7 @@ static int write_cache(ide_drive_t *drive, int arg)
|
||||
args.tf.feature = arg ?
|
||||
SETFEATURES_EN_WCACHE : SETFEATURES_DIS_WCACHE;
|
||||
args.tf.command = WIN_SETFEATURES;
|
||||
args.tf_flags = IDE_TFLAG_OUT_TF | IDE_TFLAG_OUT_DEVICE;
|
||||
args.tf_flags = IDE_TFLAG_TF | IDE_TFLAG_DEVICE;
|
||||
err = ide_no_data_taskfile(drive, &args);
|
||||
if (err == 0)
|
||||
drive->wcache = arg;
|
||||
@@ -709,7 +709,7 @@ static int do_idedisk_flushcache (ide_drive_t *drive)
|
||||
args.tf.command = WIN_FLUSH_CACHE_EXT;
|
||||
else
|
||||
args.tf.command = WIN_FLUSH_CACHE;
|
||||
args.tf_flags = IDE_TFLAG_OUT_TF | IDE_TFLAG_OUT_DEVICE;
|
||||
args.tf_flags = IDE_TFLAG_TF | IDE_TFLAG_DEVICE;
|
||||
return ide_no_data_taskfile(drive, &args);
|
||||
}
|
||||
|
||||
@@ -724,7 +724,7 @@ static int set_acoustic (ide_drive_t *drive, int arg)
|
||||
args.tf.feature = arg ? SETFEATURES_EN_AAM : SETFEATURES_DIS_AAM;
|
||||
args.tf.nsect = arg;
|
||||
args.tf.command = WIN_SETFEATURES;
|
||||
args.tf_flags = IDE_TFLAG_OUT_TF | IDE_TFLAG_OUT_DEVICE;
|
||||
args.tf_flags = IDE_TFLAG_TF | IDE_TFLAG_DEVICE;
|
||||
ide_no_data_taskfile(drive, &args);
|
||||
drive->acoustic = arg;
|
||||
return 0;
|
||||
@@ -975,7 +975,7 @@ static int idedisk_set_doorlock(ide_drive_t *drive, int on)
|
||||
|
||||
memset(&task, 0, sizeof(task));
|
||||
task.tf.command = on ? WIN_DOORLOCK : WIN_DOORUNLOCK;
|
||||
task.tf_flags = IDE_TFLAG_OUT_TF | IDE_TFLAG_OUT_DEVICE;
|
||||
task.tf_flags = IDE_TFLAG_TF | IDE_TFLAG_DEVICE;
|
||||
|
||||
return ide_no_data_taskfile(drive, &task);
|
||||
}
|
||||
|
Reference in New Issue
Block a user