aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mmc/card/queue.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/mmc/card/queue.h')
-rw-r--r--drivers/mmc/card/queue.h33
1 files changed, 25 insertions, 8 deletions
diff --git a/drivers/mmc/card/queue.h b/drivers/mmc/card/queue.h
index 6223ef8dc9c..d2a1eb4b9f9 100644
--- a/drivers/mmc/card/queue.h
+++ b/drivers/mmc/card/queue.h
@@ -4,19 +4,35 @@
4struct request; 4struct request;
5struct task_struct; 5struct task_struct;
6 6
7struct mmc_blk_request {
8 struct mmc_request mrq;
9 struct mmc_command sbc;
10 struct mmc_command cmd;
11 struct mmc_command stop;
12 struct mmc_data data;
13};
14
15struct mmc_queue_req {
16 struct request *req;
17 struct mmc_blk_request brq;
18 struct scatterlist *sg;
19 char *bounce_buf;
20 struct scatterlist *bounce_sg;
21 unsigned int bounce_sg_len;
22 struct mmc_async_req mmc_active;
23};
24
7struct mmc_queue { 25struct mmc_queue {
8 struct mmc_card *card; 26 struct mmc_card *card;
9 struct task_struct *thread; 27 struct task_struct *thread;
10 struct semaphore thread_sem; 28 struct semaphore thread_sem;
11 unsigned int flags; 29 unsigned int flags;
12 struct request *req;
13 int (*issue_fn)(struct mmc_queue *, struct request *); 30 int (*issue_fn)(struct mmc_queue *, struct request *);
14 void *data; 31 void *data;
15 struct request_queue *queue; 32 struct request_queue *queue;
16 struct scatterlist *sg; 33 struct mmc_queue_req mqrq[2];
17 char *bounce_buf; 34 struct mmc_queue_req *mqrq_cur;
18 struct scatterlist *bounce_sg; 35 struct mmc_queue_req *mqrq_prev;
19 unsigned int bounce_sg_len;
20}; 36};
21 37
22extern int mmc_init_queue(struct mmc_queue *, struct mmc_card *, spinlock_t *, 38extern int mmc_init_queue(struct mmc_queue *, struct mmc_card *, spinlock_t *,
@@ -25,8 +41,9 @@ extern void mmc_cleanup_queue(struct mmc_queue *);
25extern void mmc_queue_suspend(struct mmc_queue *); 41extern void mmc_queue_suspend(struct mmc_queue *);
26extern void mmc_queue_resume(struct mmc_queue *); 42extern void mmc_queue_resume(struct mmc_queue *);
27 43
28extern unsigned int mmc_queue_map_sg(struct mmc_queue *); 44extern unsigned int mmc_queue_map_sg(struct mmc_queue *,
29extern void mmc_queue_bounce_pre(struct mmc_queue *); 45 struct mmc_queue_req *);
30extern void mmc_queue_bounce_post(struct mmc_queue *); 46extern void mmc_queue_bounce_pre(struct mmc_queue_req *);
47extern void mmc_queue_bounce_post(struct mmc_queue_req *);
31 48
32#endif 49#endif