mirror of https://github.com/OpenIPC/firmware.git
47 lines
1.6 KiB
Diff
47 lines
1.6 KiB
Diff
--- linux-4.9.37/drivers/mmc/card/queue.h 2017-07-12 16:42:41.000000000 +0300
|
|
+++ linux-4.9.y/drivers/mmc/card/queue.h 2021-06-07 13:01:33.000000000 +0300
|
|
@@ -48,6 +48,7 @@
|
|
struct mmc_async_req mmc_active;
|
|
enum mmc_packed_type cmd_type;
|
|
struct mmc_packed *packed;
|
|
+ struct mmc_cmdq_req cmdq_req;
|
|
};
|
|
|
|
struct mmc_queue {
|
|
@@ -62,12 +63,25 @@
|
|
struct mmc_queue_req mqrq[2];
|
|
struct mmc_queue_req *mqrq_cur;
|
|
struct mmc_queue_req *mqrq_prev;
|
|
+ struct mmc_queue_req *mqrq_cmdq;
|
|
+ struct work_struct cmdq_err_work;
|
|
+
|
|
+ struct completion cmdq_pending_req_done;
|
|
+ struct completion cmdq_shutdown_complete;
|
|
+ struct request *cmdq_req_peeked;
|
|
+
|
|
+ int (*cmdq_issue_fn)(struct mmc_queue *,
|
|
+ struct request *);
|
|
+ void (*cmdq_complete_fn)(struct request *);
|
|
+ void (*cmdq_error_fn)(struct mmc_queue *);
|
|
+ enum blk_eh_timer_return (*cmdq_req_timed_out)(struct request *);
|
|
+ void (*cmdq_shutdown)(struct mmc_queue *);
|
|
};
|
|
|
|
extern int mmc_init_queue(struct mmc_queue *, struct mmc_card *, spinlock_t *,
|
|
- const char *);
|
|
+ const char *, int);
|
|
extern void mmc_cleanup_queue(struct mmc_queue *);
|
|
-extern void mmc_queue_suspend(struct mmc_queue *);
|
|
+extern int mmc_queue_suspend(struct mmc_queue *, int);
|
|
extern void mmc_queue_resume(struct mmc_queue *);
|
|
|
|
extern unsigned int mmc_queue_map_sg(struct mmc_queue *,
|
|
@@ -79,5 +93,6 @@
|
|
extern void mmc_packed_clean(struct mmc_queue *);
|
|
|
|
extern int mmc_access_rpmb(struct mmc_queue *);
|
|
-
|
|
+extern int mmc_cmdq_init(struct mmc_queue *mq, struct mmc_card *card);
|
|
+extern void mmc_cmdq_clean(struct mmc_queue *mq, struct mmc_card *card);
|
|
#endif
|