aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/mmc/host.h
diff options
context:
space:
mode:
authorMichal Marek <mmarek@suse.cz>2010-10-27 18:15:57 -0400
committerMichal Marek <mmarek@suse.cz>2010-10-27 18:15:57 -0400
commitb74b953b998bcc2db91b694446f3a2619ec32de6 (patch)
tree6ce24caabd730f6ae9287ed0676ec32e6ff31e9d /include/linux/mmc/host.h
parentabb438526201c6a79949ad45375c051b6681c253 (diff)
parentf6f94e2ab1b33f0082ac22d71f66385a60d8157f (diff)
Merge commit 'v2.6.36' into kbuild/misc
Update to be able to fix a recent change to scripts/basic/docproc.c (commit eda603f).
Diffstat (limited to 'include/linux/mmc/host.h')
-rw-r--r--include/linux/mmc/host.h14
1 files changed, 13 insertions, 1 deletions
diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h
index eaf36364b7d4..1575b52c3bfa 100644
--- a/include/linux/mmc/host.h
+++ b/include/linux/mmc/host.h
@@ -14,6 +14,7 @@
14#include <linux/sched.h> 14#include <linux/sched.h>
15 15
16#include <linux/mmc/core.h> 16#include <linux/mmc/core.h>
17#include <linux/mmc/pm.h>
17 18
18struct mmc_ios { 19struct mmc_ios {
19 unsigned int clock; /* clock rate */ 20 unsigned int clock; /* clock rate */
@@ -107,6 +108,9 @@ struct mmc_host_ops {
107 int (*get_cd)(struct mmc_host *host); 108 int (*get_cd)(struct mmc_host *host);
108 109
109 void (*enable_sdio_irq)(struct mmc_host *host, int enable); 110 void (*enable_sdio_irq)(struct mmc_host *host, int enable);
111
112 /* optional callback for HC quirks */
113 void (*init_card)(struct mmc_host *host, struct mmc_card *card);
110}; 114};
111 115
112struct mmc_card; 116struct mmc_card;
@@ -120,6 +124,7 @@ struct mmc_host {
120 unsigned int f_min; 124 unsigned int f_min;
121 unsigned int f_max; 125 unsigned int f_max;
122 u32 ocr_avail; 126 u32 ocr_avail;
127 struct notifier_block pm_notify;
123 128
124#define MMC_VDD_165_195 0x00000080 /* VDD voltage 1.65 - 1.95 */ 129#define MMC_VDD_165_195 0x00000080 /* VDD voltage 1.65 - 1.95 */
125#define MMC_VDD_20_21 0x00000100 /* VDD voltage 2.0 ~ 2.1 */ 130#define MMC_VDD_20_21 0x00000100 /* VDD voltage 2.0 ~ 2.1 */
@@ -151,6 +156,9 @@ struct mmc_host {
151#define MMC_CAP_DISABLE (1 << 7) /* Can the host be disabled */ 156#define MMC_CAP_DISABLE (1 << 7) /* Can the host be disabled */
152#define MMC_CAP_NONREMOVABLE (1 << 8) /* Nonremovable e.g. eMMC */ 157#define MMC_CAP_NONREMOVABLE (1 << 8) /* Nonremovable e.g. eMMC */
153#define MMC_CAP_WAIT_WHILE_BUSY (1 << 9) /* Waits while card is busy */ 158#define MMC_CAP_WAIT_WHILE_BUSY (1 << 9) /* Waits while card is busy */
159#define MMC_CAP_ERASE (1 << 10) /* Allow erase/trim commands */
160
161 mmc_pm_flag_t pm_caps; /* supported pm features */
154 162
155 /* host specific block data */ 163 /* host specific block data */
156 unsigned int max_seg_size; /* see blk_queue_max_segment_size */ 164 unsigned int max_seg_size; /* see blk_queue_max_segment_size */
@@ -177,6 +185,7 @@ struct mmc_host {
177 185
178 /* Only used with MMC_CAP_DISABLE */ 186 /* Only used with MMC_CAP_DISABLE */
179 int enabled; /* host is enabled */ 187 int enabled; /* host is enabled */
188 int rescan_disable; /* disable card detection */
180 int nesting_cnt; /* "enable" nesting count */ 189 int nesting_cnt; /* "enable" nesting count */
181 int en_dis_recurs; /* detect recursion */ 190 int en_dis_recurs; /* detect recursion */
182 unsigned int disable_delay; /* disable delay in msecs */ 191 unsigned int disable_delay; /* disable delay in msecs */
@@ -197,6 +206,8 @@ struct mmc_host {
197 struct task_struct *sdio_irq_thread; 206 struct task_struct *sdio_irq_thread;
198 atomic_t sdio_irq_thread_abort; 207 atomic_t sdio_irq_thread_abort;
199 208
209 mmc_pm_flag_t pm_flags; /* requested pm features */
210
200#ifdef CONFIG_LEDS_TRIGGERS 211#ifdef CONFIG_LEDS_TRIGGERS
201 struct led_trigger *led; /* activity led */ 212 struct led_trigger *led; /* activity led */
202#endif 213#endif
@@ -222,7 +233,7 @@ static inline void *mmc_priv(struct mmc_host *host)
222#define mmc_classdev(x) (&(x)->class_dev) 233#define mmc_classdev(x) (&(x)->class_dev)
223#define mmc_hostname(x) (dev_name(&(x)->class_dev)) 234#define mmc_hostname(x) (dev_name(&(x)->class_dev))
224 235
225extern int mmc_suspend_host(struct mmc_host *, pm_message_t); 236extern int mmc_suspend_host(struct mmc_host *);
226extern int mmc_resume_host(struct mmc_host *); 237extern int mmc_resume_host(struct mmc_host *);
227 238
228extern void mmc_power_save_host(struct mmc_host *host); 239extern void mmc_power_save_host(struct mmc_host *host);
@@ -249,6 +260,7 @@ int mmc_card_can_sleep(struct mmc_host *host);
249int mmc_host_enable(struct mmc_host *host); 260int mmc_host_enable(struct mmc_host *host);
250int mmc_host_disable(struct mmc_host *host); 261int mmc_host_disable(struct mmc_host *host);
251int mmc_host_lazy_disable(struct mmc_host *host); 262int mmc_host_lazy_disable(struct mmc_host *host);
263int mmc_pm_notify(struct notifier_block *notify_block, unsigned long, void *);
252 264
253static inline void mmc_set_disable_delay(struct mmc_host *host, 265static inline void mmc_set_disable_delay(struct mmc_host *host,
254 unsigned int disable_delay) 266 unsigned int disable_delay)