RE: [PATCH-V2] OMAP: Fix for bus width which improves SD card's peformance.

From: Madhusudhan
Date: Wed Mar 31 2010 - 12:37:40 EST




> -----Original Message-----
> From: kishore kadiyala [mailto:kishorek.kadiyala@xxxxxxxxx]
> Sent: Wednesday, March 31, 2010 2:03 AM
> To: Vimal Singh
> Cc: Madhusudhan; tony@xxxxxxxxxxx; svenkatr@xxxxxx; linux-
> omap@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx;
> jarkko.lavinen@xxxxxxxxx
> Subject: Re: [PATCH-V2] OMAP: Fix for bus width which improves SD card's
> peformance.
>
> Sorry for that and here's the Updated one.
>
> From: Kishore Kadiyala <kishore.kadiyala@xxxxxx>
>
> This patch improves low speeds for SD cards.
> OMAP-MMC controller's can support maximum bus width of '8'.
> when bus width is mentioned as "8" in controller data,the SD
> stack will check whether bus width is "4" and if not it will
> set bus width to "1" and there by degrading performance.
> This patch fixes the issue and improves the performance of
> SD cards.
>
> Signed-off-by: Kishore Kadiyala <kishore.kadiyala@xxxxxx>
> Signed-off-by: Venkatraman S <svenkatr@xxxxxx>
> Acked-by: Madhusudhan Chikkature <madhu.cr@xxxxxx>
>
> ---
> In V2 : Appended Signed-off by Venkat and Ack by Madhu
>
> Here are my experiment numbers, on a Class 6 SDHC card:
> Read peformance is increased by 220%
> Write Performance is increased by 52%
>
> drivers/mmc/host/omap_hsmmc.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
> index 83f0aff..8c97c22 100644
> --- a/drivers/mmc/host/omap_hsmmc.c
> +++ b/drivers/mmc/host/omap_hsmmc.c
> @@ -2092,7 +2092,7 @@ static int __init omap_hsmmc_probe(struct
> MMC_CAP_WAIT_WHILE_BUSY;
>
> if (mmc_slot(host).wires >= 8)
> - mmc->caps |= MMC_CAP_8_BIT_DATA;
> + mmc->caps |= (MMC_CAP_8_BIT_DATA | MMC_CAP_4_BIT_DATA);
> else if (mmc_slot(host).wires >= 4)
> mmc->caps |= MMC_CAP_4_BIT_DATA;
>
Kishore,

Since this patch is not yet pushed it makes sense to fix the readability
issue.

Since 8-bit is the max how about:

       if (mmc_slot(host).wires == 8)
               mmc->caps |= MMC_CAP_8_BIT_DATA | MMC_CAP_4_BIT_DATA;
       if (mmc_slot(host).wires == 4)
               mmc->caps |= MMC_CAP_4_BIT_DATA;

This would be little easy to read the code.

Can you please repost the patch??

Regards,
Madhu

> --
> 1.6.3.3

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/