mmc: Fix mmc_delay() function
Several fixes for mmc_delay(): * Repair if-clause that was supposed to detect sub-hz delays. * Change yield() to cond_resched() as yield() no longer has the semantics we desire. * mmc_delay() is used to guarantee protocol delays, so we cannot return early (i.e. use _interruptable). Based on patch by Amol Lad. Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
This commit is contained in:
parent
e45a1bd20f
commit
73778120c4
@ -454,11 +454,11 @@ static void mmc_deselect_cards(struct mmc_host *host)
|
|||||||
|
|
||||||
static inline void mmc_delay(unsigned int ms)
|
static inline void mmc_delay(unsigned int ms)
|
||||||
{
|
{
|
||||||
if (ms < HZ / 1000) {
|
if (ms < 1000 / HZ) {
|
||||||
yield();
|
cond_resched();
|
||||||
mdelay(ms);
|
mdelay(ms);
|
||||||
} else {
|
} else {
|
||||||
msleep_interruptible (ms);
|
msleep(ms);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user