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>
This commit is contained in:

committed by
Ulf Hansson

parent
5db3eee7b9
commit
49adc0cacb
@@ -174,7 +174,7 @@
|
||||
/* Extended status bits for the ST Micro variants */
|
||||
#define MCI_ST_SDIOITMASK (1 << 22)
|
||||
#define MCI_ST_CEATAENDMASK (1 << 23)
|
||||
#define MCI_ST_BUSYEND (1 << 24)
|
||||
#define MCI_ST_BUSYENDMASK (1 << 24)
|
||||
|
||||
#define MMCIMASK1 0x040
|
||||
#define MMCIFIFOCNT 0x048
|
||||
|
Reference in New Issue
Block a user