mmc: core: add workaround for controllers with broken multiblock reads
authorPaul Walmsley <paul@pwsan.com>
Thu, 6 Oct 2011 20:50:33 +0000 (14:50 -0600)
committerChris Ball <cjb@laptop.org>
Thu, 27 Oct 2011 13:10:57 +0000 (09:10 -0400)
commit2bf22b39823c1d173dda31111a4eb2ce36daaf39
tree54575fedfd2b032c3113b55dea5e2fd5d0c7eb38
parentb6ad726e3fe69e1ff3c3b2ad272ba3e4c376cd6a
mmc: core: add workaround for controllers with broken multiblock reads

Due to hardware bugs, some MMC host controllers don't support
multiple-block reads[1].  To resolve, add a new MMC capability flag,
MMC_CAP2_NO_MULTI_READ, which can be set by affected host controller
drivers.  When this capability is set, all reads will be issued one
sector at a time.

1. See for example Advisory 2.1.1.128 "MMC: Multiple Block Read
Operation Issue" in _OMAP3530/3525/3515/3503 Silicon Errata_
Revision F (October 2010) (SPRZ278F), available from
http://focus.ti.com/lit/er/sprz278f/sprz278f.pdf

Signed-off-by: Paul Walmsley <paul@pwsan.com>
Cc: Dave Hylands <dhylands@gmail.com>
Tested-by: Steve Sakoman <sakoman@gmail.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
drivers/mmc/card/block.c
include/linux/mmc/host.h