diff options
| author | Sergei Shtylyov <sshtylyov@ru.mvista.com> | 2009-04-08 14:13:01 +0200 | 
|---|---|---|
| committer | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2009-04-08 14:13:01 +0200 | 
| commit | 60f85019c6c8c1aebf3485a313e0da094bc95d07 (patch) | |
| tree | 5cbb0e1a733b59887308a50ce083613c4e7c0ede /drivers/ide/ide-taskfile.c | |
| parent | 674f0ea111bc9bff1b4e4841d7da38933c5e3b59 (diff) | |
| download | olio-linux-3.10-60f85019c6c8c1aebf3485a313e0da094bc95d07.tar.xz olio-linux-3.10-60f85019c6c8c1aebf3485a313e0da094bc95d07.zip  | |
ide: replace IDE_TFLAG_* flags by IDE_VALID_*
Replace IDE_TFLAG_{IN|OUT}_* flags meaning to the taskfile register validity on
input/output by the IDE_VALID_* flags and introduce 4 symmetric 8-bit register
validity indicator subfields, 'valid.{input/output}.{tf|hob}', into the 'struct
ide_cmd' instead of using the 'tf_flags' field for that purpose (this field can
then be turned from 32-bit into 8-bit one).
Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to 'drivers/ide/ide-taskfile.c')
| -rw-r--r-- | drivers/ide/ide-taskfile.c | 36 | 
1 files changed, 20 insertions, 16 deletions
diff --git a/drivers/ide/ide-taskfile.c b/drivers/ide/ide-taskfile.c index 243421ce40d..dc84f8bde52 100644 --- a/drivers/ide/ide-taskfile.c +++ b/drivers/ide/ide-taskfile.c @@ -47,7 +47,8 @@ int taskfile_lib_get_identify (ide_drive_t *drive, u8 *buf)  		cmd.tf.command = ATA_CMD_ID_ATA;  	else  		cmd.tf.command = ATA_CMD_ID_ATAPI; -	cmd.tf_flags = IDE_TFLAG_TF | IDE_TFLAG_DEVICE; +	cmd.valid.out.tf = IDE_VALID_OUT_TF | IDE_VALID_DEVICE; +	cmd.valid.in.tf  = IDE_VALID_IN_TF  | IDE_VALID_DEVICE;  	cmd.protocol = ATA_PROT_PIO;  	return ide_raw_taskfile(drive, &cmd, buf, 1); @@ -494,11 +495,14 @@ int ide_taskfile_ioctl(ide_drive_t *drive, unsigned long arg)  	memcpy(&cmd.tf_array[6], req_task->io_ports,  	       HDIO_DRIVE_TASK_HDR_SIZE); -	cmd.tf_flags   = IDE_TFLAG_IO_16BIT | IDE_TFLAG_DEVICE | -			 IDE_TFLAG_IN_TF; +	cmd.valid.out.tf = IDE_VALID_DEVICE; +	cmd.valid.in.tf  = IDE_VALID_DEVICE | IDE_VALID_IN_TF; +	cmd.tf_flags = IDE_TFLAG_IO_16BIT; -	if (drive->dev_flags & IDE_DFLAG_LBA48) -		cmd.tf_flags |= (IDE_TFLAG_LBA48 | IDE_TFLAG_IN_HOB); +	if (drive->dev_flags & IDE_DFLAG_LBA48) { +		cmd.tf_flags |= IDE_TFLAG_LBA48; +		cmd.valid.in.hob = IDE_VALID_IN_HOB; +	}  	if (req_task->out_flags.all) {  		cmd.ftf_flags |= IDE_FTFLAG_FLAGGED; @@ -507,28 +511,28 @@ int ide_taskfile_ioctl(ide_drive_t *drive, unsigned long arg)  			cmd.ftf_flags |= IDE_FTFLAG_OUT_DATA;  		if (req_task->out_flags.b.nsector_hob) -			cmd.tf_flags |= IDE_TFLAG_OUT_HOB_NSECT; +			cmd.valid.out.hob |= IDE_VALID_NSECT;  		if (req_task->out_flags.b.sector_hob) -			cmd.tf_flags |= IDE_TFLAG_OUT_HOB_LBAL; +			cmd.valid.out.hob |= IDE_VALID_LBAL;  		if (req_task->out_flags.b.lcyl_hob) -			cmd.tf_flags |= IDE_TFLAG_OUT_HOB_LBAM; +			cmd.valid.out.hob |= IDE_VALID_LBAM;  		if (req_task->out_flags.b.hcyl_hob) -			cmd.tf_flags |= IDE_TFLAG_OUT_HOB_LBAH; +			cmd.valid.out.hob |= IDE_VALID_LBAH;  		if (req_task->out_flags.b.error_feature) -			cmd.tf_flags |= IDE_TFLAG_OUT_FEATURE; +			cmd.valid.out.tf  |= IDE_VALID_FEATURE;  		if (req_task->out_flags.b.nsector) -			cmd.tf_flags |= IDE_TFLAG_OUT_NSECT; +			cmd.valid.out.tf  |= IDE_VALID_NSECT;  		if (req_task->out_flags.b.sector) -			cmd.tf_flags |= IDE_TFLAG_OUT_LBAL; +			cmd.valid.out.tf  |= IDE_VALID_LBAL;  		if (req_task->out_flags.b.lcyl) -			cmd.tf_flags |= IDE_TFLAG_OUT_LBAM; +			cmd.valid.out.tf  |= IDE_VALID_LBAM;  		if (req_task->out_flags.b.hcyl) -			cmd.tf_flags |= IDE_TFLAG_OUT_LBAH; +			cmd.valid.out.tf  |= IDE_VALID_LBAH;  	} else { -		cmd.tf_flags |= IDE_TFLAG_OUT_TF; +		cmd.valid.out.tf |= IDE_VALID_OUT_TF;  		if (cmd.tf_flags & IDE_TFLAG_LBA48) -			cmd.tf_flags |= IDE_TFLAG_OUT_HOB; +			cmd.valid.out.hob |= IDE_VALID_OUT_HOB;  	}  	if (req_task->in_flags.b.data)  |