greybus: sdio: increase maximum segment size
authorRui Miguel Silva <rui.silva@linaro.org>
Tue, 9 Aug 2016 22:35:35 +0000 (23:35 +0100)
committerGreg Kroah-Hartman <gregkh@google.com>
Wed, 10 Aug 2016 10:00:32 +0000 (12:00 +0200)
Adjust maximum segment size of the sg list to meet the maximum request
size, this will allow to have less segments which increase the
performance of data movement during transfer operations.

Test Done: using mmc_test with best-case read/write performance and see
that only one segment is used and that the results are better (288KiB vs
300KiB in read operation).

Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
drivers/staging/greybus/sdio.c

index 3d3599a..a78d9e4 100644 (file)
@@ -802,11 +802,11 @@ static int gb_sdio_probe(struct gbphy_device *gbphy_dev,
 
        mmc->ops = &gb_sdio_ops;
 
-       /* for now we just make a map 1:1 between max blocks and segments */
        mmc->max_segs = host->mmc->max_blk_count;
-       mmc->max_seg_size = host->mmc->max_blk_size;
 
+       /* for now we make a map 1:1 between max request and segment size */
        mmc->max_req_size = mmc->max_blk_size * mmc->max_blk_count;
+       mmc->max_seg_size = mmc->max_req_size;
 
        mutex_init(&host->lock);
        spin_lock_init(&host->xfer);