linux-sh.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] drivers/mfd/sh_mobile_sdhi.c: uses optimized block transfer
@ 2010-07-15 12:50 Markus Pietrek
  2010-07-20  6:32 ` [PATCH] drivers/mfd/sh_mobile_sdhi.c: uses optimized block Yusuke Goda
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Markus Pietrek @ 2010-07-15 12:50 UTC (permalink / raw)
  To: linux-sh


On the SH7723, these settings improve PIO reads from 4MB/s to 13MB/s and writes from 1MB/s to 4.1MB/s

Signed-off-by: Markus Pietrek <markus.pietrek@emtrion.de>
---
 drivers/mfd/sh_mobile_sdhi.c |    9 +++++++++
 drivers/mmc/host/tmio_mmc.c  |   14 ++++++++++++++
 include/linux/mfd/tmio.h     |    9 +++++++++
 3 files changed, 32 insertions(+), 0 deletions(-)

diff --git a/drivers/mfd/sh_mobile_sdhi.c b/drivers/mfd/sh_mobile_sdhi.c
index cd16459..0bd80a3 100644
--- a/drivers/mfd/sh_mobile_sdhi.c
+++ b/drivers/mfd/sh_mobile_sdhi.c
@@ -107,6 +107,15 @@ static int __init sh_mobile_sdhi_probe(struct platform_device *pdev)
        mmc_data->hclk = clk_get_rate(priv->clk);
        mmc_data->set_pwr = sh_mobile_sdhi_set_pwr;
        mmc_data->capabilities = MMC_CAP_MMC_HIGHSPEED;
+
+       /* values are taken from the firmware based sh_sdhi.c driver */
+       mmc_data->max_hw_segs   = 32;
+       mmc_data->max_phys_segs = 32;
+       mmc_data->max_blk_count = 65535; /* actually it's 65536, but the value 65536 is handled differently and we want to keep the code simple */
+       mmc_data->max_req_size  = 131072;
+       mmc_data->max_seg_size  = mmc_data->max_req_size;
+       mmc_data->max_blk_size  = mmc_data->max_blk_size;
+
        if (p) {
                mmc_data->flags = p->tmio_flags;
                mmc_data->ocr_mask = p->tmio_ocr_mask;
diff --git a/drivers/mmc/host/tmio_mmc.c b/drivers/mmc/host/tmio_mmc.c
index ee7d0a5..cdb3a6a 100644
--- a/drivers/mmc/host/tmio_mmc.c
+++ b/drivers/mmc/host/tmio_mmc.c
@@ -847,6 +847,20 @@ static int __devinit tmio_mmc_probe(struct platform_device *dev)
        mmc->caps |= pdata->capabilities;
        mmc->f_max = pdata->hclk;
        mmc->f_min = mmc->f_max / 512;
+
+       if (pdata->max_hw_segs)
+               mmc->max_hw_segs = pdata->max_hw_segs;
+       if (pdata->max_phys_segs)
+               mmc->max_phys_segs = pdata->max_phys_segs;
+       if (pdata->max_seg_size)
+               mmc->max_seg_size = pdata->max_seg_size;
+       if (pdata->max_req_size)
+               mmc->max_req_size = pdata->max_req_size;
+       if (pdata->max_blk_size)
+               mmc->max_blk_size = pdata->max_blk_size;
+       if (pdata->max_blk_count)
+               mmc->max_blk_count = pdata->max_blk_count;
+
        if (pdata->ocr_mask)
                mmc->ocr_avail = pdata->ocr_mask;
        else
diff --git a/include/linux/mfd/tmio.h b/include/linux/mfd/tmio.h
index f07425b..4eb7358 100644
--- a/include/linux/mfd/tmio.h
+++ b/include/linux/mfd/tmio.h
@@ -71,6 +71,15 @@ struct tmio_mmc_data {
        unsigned long                   capabilities;
        unsigned long                   flags;
        u32                             ocr_mask;       /* available voltages */
+
+       /* overrides for "struct mmc_host" variables */
+       unsigned int            max_seg_size;
+       unsigned short          max_hw_segs;
+       unsigned short          max_phys_segs;
+       unsigned int            max_req_size;
+       unsigned int            max_blk_size;
+       unsigned int            max_blk_count;
+
        struct tmio_mmc_dma             *dma;
        void (*set_pwr)(struct platform_device *host, int state);
        void (*set_clk_div)(struct platform_device *host, int state);
--
1.7.0.4


_____________________________________

Amtsgericht Mannheim
HRB 110 300
Geschäftsführer: Dieter Baur, Ramona Maurer
_____________________________________

Important Note:
- This e-mail may contain trade secrets or privileged, undisclosed or otherwise confidential information.
- If you have received this e-mail in error, you are hereby notified that any review, copying or distribution of it is strictly prohibited.
- Please inform us immediately and destroy the original transmittal.

Thank you for your cooperation.

^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2010-07-20  8:46 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-07-15 12:50 [PATCH] drivers/mfd/sh_mobile_sdhi.c: uses optimized block transfer Markus Pietrek
2010-07-20  6:32 ` [PATCH] drivers/mfd/sh_mobile_sdhi.c: uses optimized block Yusuke Goda
2010-07-20  7:16 ` AW: " Pietrek, Markus
2010-07-20  8:46 ` Yusuke Goda

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).