• Ludovic Barre's avatar
    mmc: mmci: Prevent polling for busy detection in IRQ context · 8520ce1e
    Ludovic Barre authored
    The IRQ handler, mmci_irq(), loops until all status bits have been cleared.
    However, the status bit signaling busy in variant->busy_detect_flag, may be
    set even if busy detection isn't monitored for the current request.
    
    This may be the case for the CMD11 when switching the I/O voltage, which
    leads to that mmci_irq() busy loops in IRQ context. Fix this problem, by
    clearing the status bit for busy, before continuing to validate the
    condition for the loop. This is safe, because the busy status detection has
    already been taken care of by mmci_cmd_irq().
    Signed-off-by: default avatarLudovic Barre <ludovic.barre@st.com>
    Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
    8520ce1e
mmci.c 55.5 KB