[MMC] Allow detection/removal to be delayed

Change mmc_detect_change() to take a delay argument such that
the detection of card insertions and removals can be delayed
according to the requirements of the host driver or platform.

Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Этот коммит содержится в:
Richard Purdie
2005-09-08 17:53:01 +01:00
коммит произвёл Russell King
родитель caf39e87cc
Коммит 8dc003359c
5 изменённых файлов: 13 добавлений и 9 удалений

Просмотреть файл

@@ -1079,13 +1079,17 @@ static void mmc_setup(struct mmc_host *host)
/**
* mmc_detect_change - process change of state on a MMC socket
* @host: host which changed state.
* @delay: optional delay to wait before detection (jiffies)
*
* All we know is that card(s) have been inserted or removed
* from the socket(s). We don't know which socket or cards.
*/
void mmc_detect_change(struct mmc_host *host)
void mmc_detect_change(struct mmc_host *host, unsigned long delay)
{
schedule_work(&host->detect);
if (delay)
schedule_delayed_work(&host->detect, delay);
else
schedule_work(&host->detect);
}
EXPORT_SYMBOL(mmc_detect_change);
@@ -1189,7 +1193,7 @@ int mmc_add_host(struct mmc_host *host)
ret = mmc_add_host_sysfs(host);
if (ret == 0) {
mmc_power_off(host);
mmc_detect_change(host);
mmc_detect_change(host, 0);
}
return ret;
@@ -1259,7 +1263,7 @@ EXPORT_SYMBOL(mmc_suspend_host);
*/
int mmc_resume_host(struct mmc_host *host)
{
mmc_detect_change(host);
mmc_detect_change(host, 0);
return 0;
}