aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/mmc
diff options
context:
space:
mode:
authorNicolas Pitre <nico@cam.org>2007-07-24 02:09:39 -0400
committerPierre Ossman <drzeus@drzeus.cx>2007-09-23 15:13:08 -0400
commit17b759aff916b4d02721e75ce5ed82b1903e5bd6 (patch)
treeeef4463cbc556e7ae4bd78dba0e6acd861b283c3 /include/linux/mmc
parent112c9db91ee6bf19eca7cbb6854be3127381c229 (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.h8
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
56struct mmc_card; 57struct 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 *);
150extern void mmc_detect_change(struct mmc_host *, unsigned long delay); 152extern void mmc_detect_change(struct mmc_host *, unsigned long delay);
151extern void mmc_request_done(struct mmc_host *, struct mmc_request *); 153extern void mmc_request_done(struct mmc_host *, struct mmc_request *);
152 154
155static 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