aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mmc/mmc.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/mmc/mmc.c')
-rw-r--r--drivers/mmc/mmc.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c
index 766bc54406e5..21fd39e4a20f 100644
--- a/drivers/mmc/mmc.c
+++ b/drivers/mmc/mmc.c
@@ -1165,18 +1165,16 @@ static void mmc_setup(struct mmc_host *host)
1165 */ 1165 */
1166void mmc_detect_change(struct mmc_host *host, unsigned long delay) 1166void mmc_detect_change(struct mmc_host *host, unsigned long delay)
1167{ 1167{
1168 if (delay) 1168 mmc_schedule_delayed_work(&host->detect, delay);
1169 mmc_schedule_delayed_work(&host->detect, delay);
1170 else
1171 mmc_schedule_work(&host->detect);
1172} 1169}
1173 1170
1174EXPORT_SYMBOL(mmc_detect_change); 1171EXPORT_SYMBOL(mmc_detect_change);
1175 1172
1176 1173
1177static void mmc_rescan(void *data) 1174static void mmc_rescan(struct work_struct *work)
1178{ 1175{
1179 struct mmc_host *host = data; 1176 struct mmc_host *host =
1177 container_of(work, struct mmc_host, detect.work);
1180 struct list_head *l, *n; 1178 struct list_head *l, *n;
1181 unsigned char power_mode; 1179 unsigned char power_mode;
1182 1180
@@ -1259,7 +1257,7 @@ struct mmc_host *mmc_alloc_host(int extra, struct device *dev)
1259 spin_lock_init(&host->lock); 1257 spin_lock_init(&host->lock);
1260 init_waitqueue_head(&host->wq); 1258 init_waitqueue_head(&host->wq);
1261 INIT_LIST_HEAD(&host->cards); 1259 INIT_LIST_HEAD(&host->cards);
1262 INIT_WORK(&host->detect, mmc_rescan, host); 1260 INIT_DELAYED_WORK(&host->detect, mmc_rescan);
1263 1261
1264 /* 1262 /*
1265 * By default, hosts do not support SGIO or large requests. 1263 * By default, hosts do not support SGIO or large requests.
@@ -1357,7 +1355,7 @@ EXPORT_SYMBOL(mmc_suspend_host);
1357 */ 1355 */
1358int mmc_resume_host(struct mmc_host *host) 1356int mmc_resume_host(struct mmc_host *host)
1359{ 1357{
1360 mmc_rescan(host); 1358 mmc_rescan(&host->detect.work);
1361 1359
1362 return 0; 1360 return 0;
1363} 1361}