diff options
Diffstat (limited to 'drivers/mmc/card/queue.h')
-rw-r--r-- | drivers/mmc/card/queue.h | 33 |
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 @@ | |||
4 | struct request; | 4 | struct request; |
5 | struct task_struct; | 5 | struct task_struct; |
6 | 6 | ||
7 | struct 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 | |||
15 | struct 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 | |||
7 | struct mmc_queue { | 25 | struct 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 | ||
22 | extern int mmc_init_queue(struct mmc_queue *, struct mmc_card *, spinlock_t *, | 38 | extern int mmc_init_queue(struct mmc_queue *, struct mmc_card *, spinlock_t *, |
@@ -25,8 +41,9 @@ extern void mmc_cleanup_queue(struct mmc_queue *); | |||
25 | extern void mmc_queue_suspend(struct mmc_queue *); | 41 | extern void mmc_queue_suspend(struct mmc_queue *); |
26 | extern void mmc_queue_resume(struct mmc_queue *); | 42 | extern void mmc_queue_resume(struct mmc_queue *); |
27 | 43 | ||
28 | extern unsigned int mmc_queue_map_sg(struct mmc_queue *); | 44 | extern unsigned int mmc_queue_map_sg(struct mmc_queue *, |
29 | extern void mmc_queue_bounce_pre(struct mmc_queue *); | 45 | struct mmc_queue_req *); |
30 | extern void mmc_queue_bounce_post(struct mmc_queue *); | 46 | extern void mmc_queue_bounce_pre(struct mmc_queue_req *); |
47 | extern void mmc_queue_bounce_post(struct mmc_queue_req *); | ||
31 | 48 | ||
32 | #endif | 49 | #endif |