mmc: dw_mmc: Calculate timeout from transfer length
authorMarek Vasut <marex@denx.de>
Sat, 23 Mar 2019 02:32:24 +0000 (03:32 +0100)
committerMarek Vasut <marex@denx.de>
Mon, 29 Apr 2019 08:08:56 +0000 (10:08 +0200)
commit4e16f0a67d80b4ce11995b870b5d9c8d11266d0d
tree06887e6d5010746adb8382529d5076d6beb74ee6
parent72c347ced8c09f8a61452c884e992c444f555fe2
mmc: dw_mmc: Calculate timeout from transfer length

The current 4-minute data transfer timeout is misleading and broken.
Instead of such a long wait, calculate the timeout duration based on
the length of the data transfer. The current formula is the transfer
length in bits, divided by a multiplication of bus frequency in Hz,
bus width, DDR mode and converted the mSec. The value is bounded from
the bottom to 1000 mSec.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Jaehoon Chung <jh80.chung@samsung.com>
Cc: Simon Glass <sjg@chromium.org>
drivers/mmc/dw_mmc.c