• Ulf Hansson's avatar
    mmc: jz4740: Inform the mmc core about the maximum busy timeout · d422f8b9
    Ulf Hansson authored
    Some commands uses R1B responses, which means the card may assert the DAT0
    line to signal busy for a period of time, after it has received the
    command. The mmc core normally specifies the busy period for the command in
    the cmd->busy_timeout. Ideally the driver should respect it, but that
    requires quite some update of the code, so let's defer that to someone with
    the HW at hand.
    
    Instead, let's inform the mmc core about the maximum supported busy timeout
    in ->max_busy_timeout during ->probe(). This value corresponds to the fixed
    5s timeout used by jz4740. In this way, we let the mmc core validate the
    needed timeout, which may lead to that it converts from a R1B into a R1
    response and then use CMD13 to poll for busy completion.
    
    In other words, this change enables support for commands with longer busy
    periods than 5s, like erase (CMD38) for example.
    
    Cc: Paul Cercueil <paul@crapouillou.net>
    Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
    Link: https://lore.kernel.org/r/20200414161413.3036-5-ulf.hansson@linaro.org
    d422f8b9
jz4740_mmc.c 28.6 KB