aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/mmc/host.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/mmc/host.h')
-rw-r--r--include/linux/mmc/host.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h
index 9a43763a68ad..e7743eca1021 100644
--- a/include/linux/mmc/host.h
+++ b/include/linux/mmc/host.h
@@ -255,6 +255,10 @@ struct mmc_supply {
255 struct regulator *vqmmc; /* Optional Vccq supply */ 255 struct regulator *vqmmc; /* Optional Vccq supply */
256}; 256};
257 257
258struct mmc_ctx {
259 struct task_struct *task;
260};
261
258struct mmc_host { 262struct mmc_host {
259 struct device *parent; 263 struct device *parent;
260 struct device class_dev; 264 struct device class_dev;
@@ -350,6 +354,8 @@ struct mmc_host {
350#define MMC_CAP2_CQE (1 << 23) /* Has eMMC command queue engine */ 354#define MMC_CAP2_CQE (1 << 23) /* Has eMMC command queue engine */
351#define MMC_CAP2_CQE_DCMD (1 << 24) /* CQE can issue a direct command */ 355#define MMC_CAP2_CQE_DCMD (1 << 24) /* CQE can issue a direct command */
352 356
357 int fixed_drv_type; /* fixed driver type for non-removable media */
358
353 mmc_pm_flag_t pm_caps; /* supported pm features */ 359 mmc_pm_flag_t pm_caps; /* supported pm features */
354 360
355 /* host specific block data */ 361 /* host specific block data */
@@ -388,8 +394,9 @@ struct mmc_host {
388 struct mmc_card *card; /* device attached to this host */ 394 struct mmc_card *card; /* device attached to this host */
389 395
390 wait_queue_head_t wq; 396 wait_queue_head_t wq;
391 struct task_struct *claimer; /* task that has host claimed */ 397 struct mmc_ctx *claimer; /* context that has host claimed */
392 int claim_cnt; /* "claim" nesting count */ 398 int claim_cnt; /* "claim" nesting count */
399 struct mmc_ctx default_ctx; /* default context */
393 400
394 struct delayed_work detect; 401 struct delayed_work detect;
395 int detect_change; /* card detect flag */ 402 int detect_change; /* card detect flag */
@@ -469,6 +476,8 @@ void mmc_detect_change(struct mmc_host *, unsigned long delay);
469void mmc_request_done(struct mmc_host *, struct mmc_request *); 476void mmc_request_done(struct mmc_host *, struct mmc_request *);
470void mmc_command_done(struct mmc_host *host, struct mmc_request *mrq); 477void mmc_command_done(struct mmc_host *host, struct mmc_request *mrq);
471 478
479void mmc_cqe_request_done(struct mmc_host *host, struct mmc_request *mrq);
480
472static inline void mmc_signal_sdio_irq(struct mmc_host *host) 481static inline void mmc_signal_sdio_irq(struct mmc_host *host)
473{ 482{
474 host->ops->enable_sdio_irq(host, 0); 483 host->ops->enable_sdio_irq(host, 0);