mmc: sdhci: Fix ADMA for PAGE_SIZE >= 64KiB
authorAdrian Hunter <adrian.hunter@intel.com>
Mon, 15 Nov 2021 08:23:45 +0000 (10:23 +0200)
committerUlf Hansson <ulf.hansson@linaro.org>
Wed, 17 Nov 2021 09:34:06 +0000 (10:34 +0100)
commit3d7c194b7c9ad414264935ad4f943a6ce285ebb1
tree176d254f1a856af9b1af121d1b6e2d0011fff5a2
parentadab993c25191b839b415781bdc7173a77315240
mmc: sdhci: Fix ADMA for PAGE_SIZE >= 64KiB

The block layer forces a minimum segment size of PAGE_SIZE, so a segment
can be too big for the ADMA table, if PAGE_SIZE >= 64KiB. Fix by writing
multiple descriptors, noting that the ADMA table is sized for 4KiB chunks
anyway, so it will be big enough.

Reported-and-tested-by: Bough Chen <haibo.chen@nxp.com>
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20211115082345.802238-1-adrian.hunter@intel.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/sdhci.c
drivers/mmc/host/sdhci.h