Skip to content

Commit

Permalink
mmc: sdhci: Fix incorrect ADMA2 descriptor table size
Browse files Browse the repository at this point in the history
The ADMA2 descriptor table size was being calculated incorrectly
Fix it.

Note that it has been wrong for a long time and likely has not
caused any problems because of a combination of 1) not needing
alignment descriptors for block operations 2) more memory being
allocated than was requested 3) the use of
SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC which does not use an extra
descriptor for the end marker.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
  • Loading branch information
ahunter6 authored and storulf committed Nov 10, 2014
1 parent 76d5556 commit c09df94
Showing 1 changed file with 7 additions and 1 deletion.
8 changes: 7 additions & 1 deletion drivers/mmc/host/sdhci.c
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,13 @@

#define MAX_TUNING_LOOP 40

#define ADMA_SIZE ((128 * 2 + 1) * 4)
/*
* The ADMA2 descriptor table size is calculated as the maximum number of
* segments (128), times 2 to allow for an alignment descriptor for each
* segment, plus 1 for a nop end descriptor, all multipled by the 32-bit
* descriptor size (8).
*/
#define ADMA_SIZE ((128 * 2 + 1) * 8)

static unsigned int debug_quirks = 0;
static unsigned int debug_quirks2;
Expand Down

0 comments on commit c09df94

Please sign in to comment.