summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorMartin Dalecki <dalecki@evision-ventures.com>2002-06-03 19:34:23 -0700
committerLinus Torvalds <torvalds@penguin.transmeta.com>2002-06-03 19:34:23 -0700
commita73f75e26e6ca756dd9d4e7b51b101c48240834f (patch)
tree7c994e9200a8cbeaa77a09437c92d9fc69b961e4 /include/linux
parent0f65c90db951ee0031ea17baa0b03d3703e47c6d (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/linux')
-rw-r--r--include/linux/ide.h23
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;