• Linus Walleij's avatar
    mmc: mmci: refactor ST Micro busy detection · 49adc0ca
    Linus Walleij authored
    The ST Micro-specific busy detection was made after the assumption
    that only this variant supports busy detection. So when doing busy
    detection, the host immediately tries to use some ST-specific
    register bits.
    
    Since the qualcomm variant also supports some busy detection
    schemes, encapsulate the variant flags better in the variant struct
    and prepare to add more variants by just providing some bitmasks
    to the logic.
    
    Put the entire busy detection logic within an if()-clause in the
    mmci_cmd_irq() function so the code is only executed when busy
    detection is enabled, and so that it is kept in (almost) one
    place, and add comments describing what is going on so the
    code can be understood.
    
    Tested on the Ux500 by introducing some prints in the busy
    detection path and noticing how the IRQ is enabled, used and
    disabled successfully.
    
    Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
    Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
    49adc0ca
mmci.c 49 KB