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

From: kishore kadiyala
Date: Thu Apr 01 2010 - 02:32:05 EST


On Wed, Mar 31, 2010 at 10:07 PM, Madhusudhan <madhu.cr@xxxxxx> wrote:
>
>
>> -----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;
>
Madhu,

In the above snippet, it checks whether wires are 8 or 4 and if not
neither set's capability to "1".
Does it make sense to check whether the wires are 8,4,1 and if not
any[8,4,1] throw error and come out.

Regards,
Kishore
> 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/