• Ulf Hansson's avatar
    mmc: mmci: Send a CMD12 to clear the DPSM at errors · e9968c6f
    Ulf Hansson authored
    The current approach with sending a CMD12 (STOP_TRANSMISSION) to complete a
    data transfer request, either because of using the open-ended transmission
    type or because of receiving an error during a pre-defined data transfer,
    isn't sufficient for the STM32 sdmmc variant. More precisely, this variant
    needs to clear the DPSM ("Data Path State Machine") by sending a CMD12, for
    all failing ADTC commands.
    
    Support this, by adding a struct mmc_command inside the struct mmci_host
    and initialize it to a CMD12 during ->probe(). Let's also add checks for
    the new conditions, to enable mmci_data_irq() and mmci_cmd_irq() to
    postpone the calls to mmci_request_end(), but instead send the CMD12.
    
    Cc: Ludovic Barre <ludovic.barre@st.com>
    Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
    Tested-by: default avatarLudovic Barre <ludovic.barre@st.com>
    e9968c6f
mmci.h 15 KB