diff options
author | Jan Luebbe <jlu@pengutronix.de> | 2012-12-18 16:05:40 +0100 |
---|---|---|
committer | Jan Luebbe <jlu@pengutronix.de> | 2012-12-18 16:05:40 +0100 |
commit | eb679b42f1260c6ca4b10e94a0a5aed33ac190d8 (patch) | |
tree | c7cb1475abfdd3e4d2c9b7e0debb76c49656ed0e /patches/linux-3.7/0018-mmc-omap_hsmmc-limit-max_segs-with-the-EDMA-DMAC.patch | |
parent | ce6e38fa64f60a7554546f39b7f462574719e484 (diff) | |
download | platform-pengutronix-beagleboneti-eb679b42f1260c6ca4b10e94a0a5aed33ac190d8.tar.gz platform-pengutronix-beagleboneti-eb679b42f1260c6ca4b10e94a0a5aed33ac190d8.tar.xz |
kernel: update patch stack for 3.7
Thanks to Koen Kooi for maintaining the patch stack.
Signed-off-by: Jan Luebbe <jlu@pengutronix.de>
Diffstat (limited to 'patches/linux-3.7/0018-mmc-omap_hsmmc-limit-max_segs-with-the-EDMA-DMAC.patch')
-rw-r--r-- | patches/linux-3.7/0018-mmc-omap_hsmmc-limit-max_segs-with-the-EDMA-DMAC.patch | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/patches/linux-3.7/0018-mmc-omap_hsmmc-limit-max_segs-with-the-EDMA-DMAC.patch b/patches/linux-3.7/0018-mmc-omap_hsmmc-limit-max_segs-with-the-EDMA-DMAC.patch new file mode 100644 index 0000000..cf10fa8 --- /dev/null +++ b/patches/linux-3.7/0018-mmc-omap_hsmmc-limit-max_segs-with-the-EDMA-DMAC.patch @@ -0,0 +1,38 @@ +From: Matt Porter <mporter@ti.com> +Date: Thu, 20 Sep 2012 08:55:41 -0400 +Subject: [PATCH] mmc: omap_hsmmc: limit max_segs with the EDMA DMAC + +The EDMA DMAC has a hardware limitation that prevents supporting +scatter gather lists with any number of segments. Since the EDMA +DMA Engine driver sets the maximum segments to 16, we do the +same. + +TODO: this will be replaced once the DMA Engine API supports an +API to query the DMAC's segment size limit. + +Signed-off-by: Matt Porter <mporter@ti.com> +--- + drivers/mmc/host/omap_hsmmc.c | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c +index f74141e..4fe62b0 100644 +--- a/drivers/mmc/host/omap_hsmmc.c ++++ b/drivers/mmc/host/omap_hsmmc.c +@@ -1833,6 +1833,16 @@ static int __devinit omap_hsmmc_probe(struct platform_device *pdev) + * as we want. */ + mmc->max_segs = 1024; + ++ /* Eventually we should get our max_segs limitation for EDMA by ++ * querying the dmaengine API */ ++ if (pdev->dev.of_node) { ++ struct device_node *parent = pdev->dev.of_node->parent; ++ struct device_node *node; ++ node = of_find_node_by_name(parent, "edma"); ++ if (node) ++ mmc->max_segs = 16; ++ } ++ + mmc->max_blk_size = 512; /* Block Length at max can be 1024 */ + mmc->max_blk_count = 0xFFFF; /* No. of Blocks is 16 bits */ + mmc->max_req_size = mmc->max_blk_size * mmc->max_blk_count; |