diff options
| author | Nicolas Pitre <nico@cam.org> | 2007-06-30 10:29:41 -0400 |
|---|---|---|
| committer | Pierre Ossman <drzeus@drzeus.cx> | 2007-09-23 15:01:33 -0400 |
| commit | d1496c39e500857b8949cdb91af24e0eb8aae4d0 (patch) | |
| tree | 020ef1ee2fefc2000e07d47ff4d7bf3d0a0ebf5e /include/linux/mmc | |
| parent | 2342f3323c9a76367a1d7f9a35525ee3cb3911df (diff) | |
sdio: core support for SDIO function interrupt
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 | 4 | ||||
| -rw-r--r-- | include/linux/mmc/sdio_func.h | 7 |
2 files changed, 11 insertions, 0 deletions
diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h index 8e2642ebf02f..00dc1809494c 100644 --- a/include/linux/mmc/host.h +++ b/include/linux/mmc/host.h | |||
| @@ -123,6 +123,10 @@ struct mmc_host { | |||
| 123 | unsigned int bus_refs; /* reference counter */ | 123 | unsigned int bus_refs; /* reference counter */ |
| 124 | unsigned int bus_dead:1; /* bus has been released */ | 124 | unsigned int bus_dead:1; /* bus has been released */ |
| 125 | 125 | ||
| 126 | unsigned int sdio_irqs; | ||
| 127 | struct task_struct *sdio_irq_thread; | ||
| 128 | atomic_t sdio_irq_thread_abort; | ||
| 129 | |||
| 126 | unsigned long private[0] ____cacheline_aligned; | 130 | unsigned long private[0] ____cacheline_aligned; |
| 127 | }; | 131 | }; |
| 128 | 132 | ||
diff --git a/include/linux/mmc/sdio_func.h b/include/linux/mmc/sdio_func.h index 8106d399c414..a8d268c9c276 100644 --- a/include/linux/mmc/sdio_func.h +++ b/include/linux/mmc/sdio_func.h | |||
| @@ -16,6 +16,9 @@ | |||
| 16 | #include <linux/mod_devicetable.h> | 16 | #include <linux/mod_devicetable.h> |
| 17 | 17 | ||
| 18 | struct mmc_card; | 18 | struct mmc_card; |
| 19 | struct sdio_func; | ||
| 20 | |||
| 21 | typedef void (sdio_irq_handler_t)(struct sdio_func *); | ||
| 19 | 22 | ||
| 20 | /* | 23 | /* |
| 21 | * SDIO function CIS tuple (unknown to the core) | 24 | * SDIO function CIS tuple (unknown to the core) |
| @@ -33,6 +36,7 @@ struct sdio_func_tuple { | |||
| 33 | struct sdio_func { | 36 | struct sdio_func { |
| 34 | struct mmc_card *card; /* the card this device belongs to */ | 37 | struct mmc_card *card; /* the card this device belongs to */ |
| 35 | struct device dev; /* the device */ | 38 | struct device dev; /* the device */ |
| 39 | sdio_irq_handler_t *irq_handler; /* IRQ callback */ | ||
| 36 | unsigned int num; /* function number */ | 40 | unsigned int num; /* function number */ |
| 37 | 41 | ||
| 38 | unsigned char class; /* standard interface class */ | 42 | unsigned char class; /* standard interface class */ |
| @@ -105,6 +109,9 @@ extern void sdio_release_host(struct sdio_func *func); | |||
| 105 | extern int sdio_enable_func(struct sdio_func *func); | 109 | extern int sdio_enable_func(struct sdio_func *func); |
| 106 | extern int sdio_disable_func(struct sdio_func *func); | 110 | extern int sdio_disable_func(struct sdio_func *func); |
| 107 | 111 | ||
| 112 | extern int sdio_claim_irq(struct sdio_func *func, sdio_irq_handler_t *handler); | ||
| 113 | extern int sdio_release_irq(struct sdio_func *func); | ||
| 114 | |||
| 108 | extern unsigned char sdio_readb(struct sdio_func *func, | 115 | extern unsigned char sdio_readb(struct sdio_func *func, |
| 109 | unsigned int addr, int *err_ret); | 116 | unsigned int addr, int *err_ret); |
| 110 | 117 | ||
