summaryrefslogtreecommitdiffstats
path: root/include/linux/ide.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/ide.h')
-rw-r--r--include/linux/ide.h13
1 files changed, 11 insertions, 2 deletions
diff --git a/include/linux/ide.h b/include/linux/ide.h
index c74b0321922a..079f8bc0b0f4 100644
--- a/include/linux/ide.h
+++ b/include/linux/ide.h
@@ -10,7 +10,7 @@
10#include <linux/init.h> 10#include <linux/init.h>
11#include <linux/ioport.h> 11#include <linux/ioport.h>
12#include <linux/ata.h> 12#include <linux/ata.h>
13#include <linux/blkdev.h> 13#include <linux/blk-mq.h>
14#include <linux/proc_fs.h> 14#include <linux/proc_fs.h>
15#include <linux/interrupt.h> 15#include <linux/interrupt.h>
16#include <linux/bitops.h> 16#include <linux/bitops.h>
@@ -529,6 +529,10 @@ struct ide_drive_s {
529 529
530 struct request_queue *queue; /* request queue */ 530 struct request_queue *queue; /* request queue */
531 531
532 int (*prep_rq)(struct ide_drive_s *, struct request *);
533
534 struct blk_mq_tag_set tag_set;
535
532 struct request *rq; /* current request */ 536 struct request *rq; /* current request */
533 void *driver_data; /* extra driver data */ 537 void *driver_data; /* extra driver data */
534 u16 *id; /* identification info */ 538 u16 *id; /* identification info */
@@ -612,6 +616,10 @@ struct ide_drive_s {
612 bool sense_rq_armed; 616 bool sense_rq_armed;
613 struct request *sense_rq; 617 struct request *sense_rq;
614 struct request_sense sense_data; 618 struct request_sense sense_data;
619
620 /* async sense insertion */
621 struct work_struct rq_work;
622 struct list_head rq_list;
615}; 623};
616 624
617typedef struct ide_drive_s ide_drive_t; 625typedef struct ide_drive_s ide_drive_t;
@@ -1089,6 +1097,7 @@ extern int ide_pci_clk;
1089 1097
1090int ide_end_rq(ide_drive_t *, struct request *, blk_status_t, unsigned int); 1098int ide_end_rq(ide_drive_t *, struct request *, blk_status_t, unsigned int);
1091void ide_kill_rq(ide_drive_t *, struct request *); 1099void ide_kill_rq(ide_drive_t *, struct request *);
1100void ide_insert_request_head(ide_drive_t *, struct request *);
1092 1101
1093void __ide_set_handler(ide_drive_t *, ide_handler_t *, unsigned int); 1102void __ide_set_handler(ide_drive_t *, ide_handler_t *, unsigned int);
1094void ide_set_handler(ide_drive_t *, ide_handler_t *, unsigned int); 1103void ide_set_handler(ide_drive_t *, ide_handler_t *, unsigned int);
@@ -1208,7 +1217,7 @@ extern void ide_stall_queue(ide_drive_t *drive, unsigned long timeout);
1208 1217
1209extern void ide_timer_expiry(struct timer_list *t); 1218extern void ide_timer_expiry(struct timer_list *t);
1210extern irqreturn_t ide_intr(int irq, void *dev_id); 1219extern irqreturn_t ide_intr(int irq, void *dev_id);
1211extern void do_ide_request(struct request_queue *); 1220extern blk_status_t ide_queue_rq(struct blk_mq_hw_ctx *, const struct blk_mq_queue_data *);
1212extern void ide_requeue_and_plug(ide_drive_t *drive, struct request *rq); 1221extern void ide_requeue_and_plug(ide_drive_t *drive, struct request *rq);
1213 1222
1214void ide_init_disk(struct gendisk *, ide_drive_t *); 1223void ide_init_disk(struct gendisk *, ide_drive_t *);