Commit c4a72cbd authored by Russell King's avatar Russell King Committed by Russell King

[MMC] Add mmc_detect_change() delay support for wbsd driver

Convert wbsd to use the new delay functionality in mmc_detect_change()
rather than implementing its own timer.
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 87fc767b
...@@ -1111,20 +1111,6 @@ static void wbsd_reset_ignore(unsigned long data) ...@@ -1111,20 +1111,6 @@ static void wbsd_reset_ignore(unsigned long data)
spin_unlock_bh(&host->lock); spin_unlock_bh(&host->lock);
} }
/*
* Helper function for card detection
*/
static void wbsd_detect_card(unsigned long data)
{
struct wbsd_host *host = (struct wbsd_host*)data;
BUG_ON(host == NULL);
DBG("Executing card detection\n");
mmc_detect_change(host->mmc, 0);
}
/* /*
* Tasklets * Tasklets
*/ */
...@@ -1169,14 +1155,16 @@ static void wbsd_tasklet_card(unsigned long param) ...@@ -1169,14 +1155,16 @@ static void wbsd_tasklet_card(unsigned long param)
DBG("Card inserted\n"); DBG("Card inserted\n");
host->flags |= WBSD_FCARD_PRESENT; host->flags |= WBSD_FCARD_PRESENT;
spin_unlock(&host->lock);
/* /*
* Delay card detection to allow electrical connections * Delay card detection to allow electrical connections
* to stabilise. * to stabilise.
*/ */
mod_timer(&host->detect_timer, jiffies + HZ/2); mmc_detect_change(host->mmc, msecs_to_jiffies(500));
} }
else
spin_unlock(&host->lock); spin_unlock(&host->lock);
} }
else if (host->flags & WBSD_FCARD_PRESENT) else if (host->flags & WBSD_FCARD_PRESENT)
{ {
...@@ -1409,10 +1397,6 @@ static int __devinit wbsd_alloc_mmc(struct device* dev) ...@@ -1409,10 +1397,6 @@ static int __devinit wbsd_alloc_mmc(struct device* dev)
/* /*
* Set up timers * Set up timers
*/ */
init_timer(&host->detect_timer);
host->detect_timer.data = (unsigned long)host;
host->detect_timer.function = wbsd_detect_card;
init_timer(&host->ignore_timer); init_timer(&host->ignore_timer);
host->ignore_timer.data = (unsigned long)host; host->ignore_timer.data = (unsigned long)host;
host->ignore_timer.function = wbsd_reset_ignore; host->ignore_timer.function = wbsd_reset_ignore;
...@@ -1454,7 +1438,6 @@ static void __devexit wbsd_free_mmc(struct device* dev) ...@@ -1454,7 +1438,6 @@ static void __devexit wbsd_free_mmc(struct device* dev)
BUG_ON(host == NULL); BUG_ON(host == NULL);
del_timer_sync(&host->ignore_timer); del_timer_sync(&host->ignore_timer);
del_timer_sync(&host->detect_timer);
mmc_free_host(mmc); mmc_free_host(mmc);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment