omap_hsmmc: Wait for CMDI to be clear
authorTom Rini <trini@ti.com>
Mon, 30 Jan 2012 11:22:25 +0000 (11:22 +0000)
committerAndy Fleming <afleming@freescale.com>
Wed, 15 Feb 2012 23:42:22 +0000 (17:42 -0600)
commita7778f8fbee098c78b1fa1e1331313a7e217fb30
tree67e8af7f8cf6b53b27c5b5af416540c141015b3b
parent9a3aae22edf1eda6326cc51c28631ca5c23b7706
omap_hsmmc: Wait for CMDI to be clear

Before we can send a command we need both the DATI (command inhibit on
mmc_dat line) bit and CMDI (command inhibit on mmc_cmd line) are clear.
The previous behavior of only checking on DATI was insufficient on some
cards and incorrect behavior in any case.  This makes the code check
for both bits being clear and makes the error print more clear as
to what happened.  DATI_CMDDIS is removed as it was unused elsewhere
in the code and stood for 'DATI is set, cmds are disabled still'.

Fix originally spotted by Peter Bigot.

Tested-by: Peter A. Bigot <bigotp@acm.org>
Tested-by: Robert Nelson <robertcnelson@gmail.com>
Signed-off-by: Tom Rini <trini@ti.com>
Tested-by: Andreas Müller <schnitzeltony@googlemail.com>
arch/arm/include/asm/arch-am33xx/mmc_host_def.h
arch/arm/include/asm/arch-omap3/mmc_host_def.h
arch/arm/include/asm/arch-omap4/mmc_host_def.h
arch/arm/include/asm/arch-omap5/mmc_host_def.h
drivers/mmc/omap_hsmmc.c