mmc: mmci: refactor ST Micro busy detection
authorLinus Walleij <linus.walleij@linaro.org>
Tue, 25 Oct 2016 09:06:06 +0000 (11:06 +0200)
committerUlf Hansson <ulf.hansson@linaro.org>
Tue, 29 Nov 2016 08:00:47 +0000 (09:00 +0100)
commit49adc0cacbe8553333883059ae183d0274d4ea17
tree3ca3e8083ecd5106febbe5cf8bcc6066509e4d92
parent5db3eee7b914b8629b88bbad5a9ea196ce8de0cd
mmc: mmci: refactor ST Micro busy detection

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: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/mmci.c
drivers/mmc/host/mmci.h