提交 116cffec 编写于 作者: S Sam Protsenko 提交者: Peng Fan

mmc: Fix timeout values passed to mmc_wait_dat0()

mmc_wait_dat0() expects timeout argument to be in usec units. But some
overlying functions operate on timeout in msec units. Convert timeout
from msec to usec when passing it to mmc_wait_dat0().

This fixes 'avb' commands on BeagleBoard X15, because next chain was
failing:

    get_partition() -> mmc_switch_part() -> __mmc_switch() ->
    mmc_wait_dat0()

when passing incorrect timeout from __mmc_switch() to mmc_wait_dat0().

Fixes: bb98b8c5 ("mmc: During a switch, poll on dat0 if available and check the final status")
Signed-off-by: NSam Protsenko <semen.protsenko@linaro.org>
Reviewed-by: NEugeniu Rosca <rosca.eugeniu@gmail.com>
Tested-by: NEugeniu Rosca <rosca.eugeniu@gmail.com>
Reviewed-by: NPeng Fan <peng.fan@nxp.com>
Tested-by: NIgor Opaniuk <igor.opaniuk@gmail.com>
Reviewed-by: NIgor Opaniuk <igor.opaniuk@gmail.com>
上级 701a51e1
......@@ -235,7 +235,7 @@ int mmc_poll_for_busy(struct mmc *mmc, int timeout)
unsigned int status;
int err;
err = mmc_wait_dat0(mmc, 1, timeout);
err = mmc_wait_dat0(mmc, 1, timeout * 1000);
if (err != -ENOSYS)
return err;
......@@ -778,7 +778,7 @@ static int __mmc_switch(struct mmc *mmc, u8 set, u8 index, u8 value,
start = get_timer(0);
/* poll dat0 for rdy/buys status */
ret = mmc_wait_dat0(mmc, 1, timeout);
ret = mmc_wait_dat0(mmc, 1, timeout * 1000);
if (ret && ret != -ENOSYS)
return ret;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册