mmc: tmio_mmc: allow multi-element scatter-gather lists
authorGuennadi Liakhovetski <g.liakhovetski@gmx.de>
Thu, 11 Nov 2010 11:15:06 +0000 (12:15 +0100)
committerChris Ball <cjb@laptop.org>
Sun, 9 Jan 2011 04:52:27 +0000 (23:52 -0500)
The driver is capable of handling multi-element sg lists in both PIO and
DMA modes. In DMA mode this also allows to use the DMA sg capability more
efficiently and almost doubles the throughput.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Chris Ball <cjb@laptop.org>
drivers/mmc/host/tmio_mmc.c

index e7765a89593e31e3377c5a09b7a5440190ff46ed..4e75799291caa2898822b6d5656ba99c48b5ba59 100644 (file)
@@ -864,10 +864,15 @@ static int __devinit tmio_mmc_probe(struct platform_device *dev)
                goto host_free;
 
        mmc->ops = &tmio_mmc_ops;
-       mmc->caps = MMC_CAP_4_BIT_DATA;
-       mmc->caps |= pdata->capabilities;
+       mmc->caps = MMC_CAP_4_BIT_DATA | pdata->capabilities;
        mmc->f_max = pdata->hclk;
        mmc->f_min = mmc->f_max / 512;
+       mmc->max_segs = 32;
+       mmc->max_blk_size = 512;
+       mmc->max_blk_count = (PAGE_CACHE_SIZE / mmc->max_blk_size) *
+               mmc->max_segs;
+       mmc->max_req_size = mmc->max_blk_size * mmc->max_blk_count;
+       mmc->max_seg_size = mmc->max_req_size;
        if (pdata->ocr_mask)
                mmc->ocr_avail = pdata->ocr_mask;
        else