mmc: core: Fix the HPI execution sequence
authorVenkatraman S <svenkatr@ti.com>
Fri, 22 Jun 2012 06:12:36 +0000 (11:42 +0530)
committerChris Ball <cjb@laptop.org>
Wed, 11 Jul 2012 03:04:04 +0000 (23:04 -0400)
commit6af9e96e052a6d1a760c60cb340c5a6584cb92db
tree60ff946a87bcedf6a3e3eccafa994f468f955b75
parentfd0ea65d3e675e479e022b6cfc9ebe1864c76afc
mmc: core: Fix the HPI execution sequence

mmc_execute_hpi should send the HPI command only once, and only
if the card is in PRG state.

According to eMMC spec, the command's completion time is
not dependent on OUT_OF_INTERRUPT_TIME. Only the transition
out of PRG STATE is guarded by OUT_OF_INTERRUPT_TIME - which
is defined to begin at the end of sending the command itself.

Specify the default timeout for the actual sending of HPI
command, and then use OUT_OF_INTERRUPT_TIME to wait for
the transition out of PRG state.

Reported-by: Alex Lemberg <Alex.Lemberg@sandisk.com>
Signed-off-by: Venkatraman S <svenkatr@ti.com>
Reviewed-by: Namjae Jeon <linkinjeon@gmail.com>
Reviewed-by: Subhash Jadavani <subhashj@codeaurora.org>
Acked-by: Jaehoon Chung <jh80.chung@samsung.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
drivers/mmc/core/core.c
drivers/mmc/core/mmc_ops.c