]> rtime.felk.cvut.cz Git - sojka/nv-tegra/linux-3.10.git/commitdiff
mmc: sdhci: check remaining len when creating ADMA descriptor
authorFrank Shi <fshi@nvidia.com>
Tue, 10 Jun 2014 09:14:14 +0000 (17:14 +0800)
committerEric Chuang <echuang@nvidia.com>
Wed, 22 Oct 2014 06:06:05 +0000 (23:06 -0700)
If len < 4, the extra transfer for alignment can do all job.
No need to creating another descriptor for aligned transfer.

Bug 200007889
Bug 1559166

Reviewed-on: http://git-master/r/421562
(cherry picked from commit 934db2fba344e1977c434ee91a89e3c25908d367)
Change-Id: I0a3a001600e6f752961955adebb43f688dede412
Signed-off-by: Frank Shi <fshi@nvidia.com>
Reviewed-on: http://git-master/r/557234
Reviewed-by: Naveen Kumar Arepalli <naveenk@nvidia.com>
Tested-by: Naveen Kumar Arepalli <naveenk@nvidia.com>
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
Reviewed-by: Pavan Kunapuli <pkunapuli@nvidia.com>
Reviewed-by: R Raj Kumar <rrajk@nvidia.com>
Reviewed-by: Venu Byravarasu <vbyravarasu@nvidia.com>
drivers/mmc/host/sdhci.c

index 3553799fef20e0b181882e9e2413d7f5c30aa815..8ef4245a53e5ed68ce9d9dff933ffbcb1e3d3c56 100644 (file)
@@ -621,8 +621,10 @@ static int sdhci_adma_table_pre(struct sdhci_host *host,
                BUG_ON(len > 65536);
 
                /* tran, valid */
-               sdhci_set_adma_desc(host, desc, addr, len, 0x21);
-               desc += next_desc;
+               if (len > 0) {
+                       sdhci_set_adma_desc(host, desc, addr, len, 0x21);
+                       desc += next_desc;
+               }
 
                /*
                 * If this triggers then we have a calculation bug