diff options
| author | Martin Dalecki <dalecki@evision-ventures.com> | 2002-06-03 19:34:23 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@penguin.transmeta.com> | 2002-06-03 19:34:23 -0700 |
| commit | a73f75e26e6ca756dd9d4e7b51b101c48240834f (patch) | |
| tree | 7c994e9200a8cbeaa77a09437c92d9fc69b961e4 /include | |
| parent | 0f65c90db951ee0031ea17baa0b03d3703e47c6d (diff) | |
[PATCH] 2.5.20 IDE 84
- Simplify ide_cmd_type_parse by removing the handling of commands which we
never use.
- Realize that pre_task_out_intr and pre_task_mulout_intr are semanticaly
identical. Use only pre_task_out_intr(). This allowed us to
eliminate the prehandler altogether.
- Updated fix for misconfigured host chips by Vojtech Pavlik.
- Be more permissive about ioctl handling to allow device type drivers to do
they own checks.
- ali14xx cleanups by Andrej Panin.
- Unfold usage ide_cmd_type_parser in tcq.c code. This makes this operation
local to ide-disk.c. Move it as well as the interrupt handlers used only for
the handling of disk requests there too.
- Guard against calling handler before the drive is ready for it in
ata_taskfile()! Well this bug was there before, but right now we inform
about it.
- Unfold ide_cmd_type_praser in ide-disk.c. Merge the remaining bits of it with
get_command. Well it's no more.
- Move recal_intr to ide.c - the only place where it's used.
This doesn't change the "mechanics" of the code but it makes it a lot more
"obvious" what's going on.
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/ide.h | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/include/linux/ide.h b/include/linux/ide.h index b1c154c22228..b5c4cdb9cedc 100644 --- a/include/linux/ide.h +++ b/include/linux/ide.h @@ -664,7 +664,6 @@ struct ata_taskfile { struct hd_drive_task_hdr hobfile; u8 cmd; /* actual ATA command */ int command_type; - ide_startstop_t (*prehandler)(struct ata_device *, struct request *); ide_startstop_t (*handler)(struct ata_device *, struct request *); }; @@ -678,17 +677,31 @@ extern ide_startstop_t ata_taskfile(struct ata_device *, * Special Flagged Register Validation Caller */ -extern ide_startstop_t recal_intr(struct ata_device *, struct request *); -extern ide_startstop_t task_no_data_intr(struct ata_device *, struct request *); +/* + * for now, taskfile requests are special :/ + */ +static inline char *ide_map_rq(struct request *rq, unsigned long *flags) +{ + if (rq->bio) + return bio_kmap_irq(rq->bio, flags) + ide_rq_offset(rq); + else + return rq->buffer + ((rq)->nr_sectors - (rq)->current_nr_sectors) * SECTOR_SIZE; +} -extern void ide_cmd_type_parser(struct ata_taskfile *args); +static inline void ide_unmap_rq(struct request *rq, char *to, + unsigned long *flags) +{ + if (rq->bio) + bio_kunmap_irq(to, flags); +} + +extern ide_startstop_t task_no_data_intr(struct ata_device *, struct request *); extern int ide_raw_taskfile(struct ata_device *, struct ata_taskfile *); extern void ide_fix_driveid(struct hd_driveid *id); extern int ide_config_drive_speed(struct ata_device *, byte); extern byte eighty_ninty_three(struct ata_device *); - extern void ide_stall_queue(struct ata_device *, unsigned long); extern int system_bus_speed; |
