diff options
| author | Sergei Shtylyov <sshtylyov@ru.mvista.com> | 2009-04-08 14:13:02 +0200 | 
|---|---|---|
| committer | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2009-04-08 14:13:02 +0200 | 
| commit | 745483f10c6cefb303007c6873e2bfce54efa8ed (patch) | |
| tree | 9dc9dca95f017edf279bf3e2d5ec3d07481e75da /include/linux/ide.h | |
| parent | 60f85019c6c8c1aebf3485a313e0da094bc95d07 (diff) | |
| download | olio-linux-3.10-745483f10c6cefb303007c6873e2bfce54efa8ed.tar.xz olio-linux-3.10-745483f10c6cefb303007c6873e2bfce54efa8ed.zip  | |
ide: simplify 'struct ide_taskfile'
Make 'struct ide_taskfile' cover only 8 register values and thus put two such
fields ('tf' and 'hob') into 'struct ide_cmd', dropping unnecessary 'tf_array'
field from it.
This required changing the prototype of ide_get_lba_addr() and ide_tf_dump().
Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
[bart: fix setting of ATA_LBA bit for LBA48 commands in __ide_do_rw_disk()]
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to 'include/linux/ide.h')
| -rw-r--r-- | include/linux/ide.h | 49 | 
1 files changed, 15 insertions, 34 deletions
diff --git a/include/linux/ide.h b/include/linux/ide.h index 58951f5540b..e2ea38df26b 100644 --- a/include/linux/ide.h +++ b/include/linux/ide.h @@ -282,44 +282,25 @@ enum {  };  struct ide_taskfile { -	u8	hob_data;	/*  0: high data byte (for TASKFILE IOCTL) */ -				/*  1-5: additional data to support LBA48 */ -	union { -		u8 hob_error;	/*   read: error */ -		u8 hob_feature;	/*  write: feature */ -	}; - -	u8	hob_nsect; -	u8	hob_lbal; -	u8	hob_lbam; -	u8	hob_lbah; - -	u8	data;		/*  6: low data byte (for TASKFILE IOCTL) */ - -	union {			/*  7: */ -		u8 error;	/*   read:  error */ -		u8 feature;	/*  write: feature */ +	u8	data;		/* 0: data byte (for TASKFILE ioctl) */ +	union {			/* 1: */ +		u8 error;	/*  read: error */ +		u8 feature;	/* write: feature */  	}; - -	u8	nsect;		/*  8: number of sectors */ -	u8	lbal;		/*  9: LBA low */ -	u8	lbam;		/* 10: LBA mid */ -	u8	lbah;		/* 11: LBA high */ - -	u8	device;		/* 12: device select */ - -	union {			/* 13: */ -		u8 status;	/*  read: status  */ +	u8	nsect;		/* 2: number of sectors */ +	u8	lbal;		/* 3: LBA low */ +	u8	lbam;		/* 4: LBA mid */ +	u8	lbah;		/* 5: LBA high */ +	u8	device;		/* 6: device select */ +	union {			/* 7: */ +		u8 status;	/*  read: status */  		u8 command;	/* write: command */  	};  };  struct ide_cmd { -	union { -		struct ide_taskfile	tf; -		u8			tf_array[14]; -	}; - +	struct ide_taskfile	tf; +	struct ide_taskfile	hob;  	struct {  		struct {  			u8		tf; @@ -1143,7 +1124,7 @@ extern int ide_devset_execute(ide_drive_t *drive,  void ide_complete_cmd(ide_drive_t *, struct ide_cmd *, u8, u8);  int ide_complete_rq(ide_drive_t *, int, unsigned int); -void ide_tf_dump(const char *, struct ide_taskfile *); +void ide_tf_dump(const char *, struct ide_cmd *);  void ide_exec_command(ide_hwif_t *, u8);  u8 ide_read_status(ide_hwif_t *); @@ -1510,7 +1491,7 @@ static inline void ide_set_hwifdata (ide_hwif_t * hwif, void *data)  extern void ide_toggle_bounce(ide_drive_t *drive, int on); -u64 ide_get_lba_addr(struct ide_taskfile *, int); +u64 ide_get_lba_addr(struct ide_cmd *, int);  u8 ide_dump_status(ide_drive_t *, const char *, u8);  struct ide_timing {  |