diff options
| author | Nicolas Pitre <nico@cam.org> | 2007-07-24 02:09:39 -0400 |
|---|---|---|
| committer | Pierre Ossman <drzeus@drzeus.cx> | 2007-09-23 15:13:08 -0400 |
| commit | 17b759aff916b4d02721e75ce5ed82b1903e5bd6 (patch) | |
| tree | eef4463cbc556e7ae4bd78dba0e6acd861b283c3 /include/linux/mmc | |
| parent | 112c9db91ee6bf19eca7cbb6854be3127381c229 (diff) | |
sdio: add interface for host side SDIO interrupt reporting
Signed-off-by: Nicolas Pitre <npitre@mvista.com>
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
Diffstat (limited to 'include/linux/mmc')
| -rw-r--r-- | include/linux/mmc/host.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h index 00dc1809494c..3fd197962f73 100644 --- a/include/linux/mmc/host.h +++ b/include/linux/mmc/host.h | |||
| @@ -51,6 +51,7 @@ struct mmc_host_ops { | |||
| 51 | void (*request)(struct mmc_host *host, struct mmc_request *req); | 51 | void (*request)(struct mmc_host *host, struct mmc_request *req); |
| 52 | void (*set_ios)(struct mmc_host *host, struct mmc_ios *ios); | 52 | void (*set_ios)(struct mmc_host *host, struct mmc_ios *ios); |
| 53 | int (*get_ro)(struct mmc_host *host); | 53 | int (*get_ro)(struct mmc_host *host); |
| 54 | void (*enable_sdio_irq)(struct mmc_host *host, int enable); | ||
| 54 | }; | 55 | }; |
| 55 | 56 | ||
| 56 | struct mmc_card; | 57 | struct mmc_card; |
| @@ -89,6 +90,7 @@ struct mmc_host { | |||
| 89 | #define MMC_CAP_MULTIWRITE (1 << 1) /* Can accurately report bytes sent to card on error */ | 90 | #define MMC_CAP_MULTIWRITE (1 << 1) /* Can accurately report bytes sent to card on error */ |
| 90 | #define MMC_CAP_MMC_HIGHSPEED (1 << 2) /* Can do MMC high-speed timing */ | 91 | #define MMC_CAP_MMC_HIGHSPEED (1 << 2) /* Can do MMC high-speed timing */ |
| 91 | #define MMC_CAP_SD_HIGHSPEED (1 << 3) /* Can do SD high-speed timing */ | 92 | #define MMC_CAP_SD_HIGHSPEED (1 << 3) /* Can do SD high-speed timing */ |
| 93 | #define MMC_CAP_SDIO_IRQ (1 << 4) /* Can signal pending SDIO IRQs */ | ||
| 92 | 94 | ||
| 93 | /* host specific block data */ | 95 | /* host specific block data */ |
| 94 | unsigned int max_seg_size; /* see blk_queue_max_segment_size */ | 96 | unsigned int max_seg_size; /* see blk_queue_max_segment_size */ |
| @@ -150,5 +152,11 @@ extern int mmc_resume_host(struct mmc_host *); | |||
| 150 | extern void mmc_detect_change(struct mmc_host *, unsigned long delay); | 152 | extern void mmc_detect_change(struct mmc_host *, unsigned long delay); |
| 151 | extern void mmc_request_done(struct mmc_host *, struct mmc_request *); | 153 | extern void mmc_request_done(struct mmc_host *, struct mmc_request *); |
| 152 | 154 | ||
| 155 | static inline void mmc_signal_sdio_irq(struct mmc_host *host) | ||
| 156 | { | ||
| 157 | host->ops->enable_sdio_irq(host, 0); | ||
| 158 | wake_up_process(host->sdio_irq_thread); | ||
| 159 | } | ||
| 160 | |||
| 153 | #endif | 161 | #endif |
| 154 | 162 | ||
