From: Madhusudhan on


> -----Original Message-----
> From: kishore kadiyala [mailto:kishorek.kadiyala(a)gmail.com]
> Sent: Wednesday, March 31, 2010 2:03 AM
> To: Vimal Singh
> Cc: Madhusudhan; tony(a)atomide.com; svenkatr(a)ti.com; linux-
> omap(a)vger.kernel.org; linux-kernel(a)vger.kernel.org;
> jarkko.lavinen(a)nokia.com
> 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(a)ti.com>
>
> 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(a)ti.com>
> Signed-off-by: Venkatraman S <svenkatr(a)ti.com>
> Acked-by: Madhusudhan Chikkature <madhu.cr(a)ti.com>
>
> ---
> 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(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Madhusudhan on


> -----Original Message-----
> From: kishore kadiyala [mailto:kishorek.kadiyala(a)gmail.com]
> Sent: Thursday, April 01, 2010 1:32 AM
> To: Madhusudhan
> Cc: Vimal Singh; tony(a)atomide.com; svenkatr(a)ti.com; linux-
> omap(a)vger.kernel.org; linux-kernel(a)vger.kernel.org;
> jarkko.lavinen(a)nokia.com
> Subject: Re: [PATCH-V2] OMAP: Fix for bus width which improves SD card's
> peformance.
>
> On Wed, Mar 31, 2010 at 10:07 PM, Madhusudhan <madhu.cr(a)ti.com> wrote:
> >
> >
> >> -----Original Message-----
> >> From: kishore kadiyala [mailto:kishorek.kadiyala(a)gmail.com]
> >> Sent: Wednesday, March 31, 2010 2:03 AM
> >> To: Vimal Singh
> >> Cc: Madhusudhan; tony(a)atomide.com; svenkatr(a)ti.com; linux-
> >> omap(a)vger.kernel.org; linux-kernel(a)vger.kernel.org;
> >> jarkko.lavinen(a)nokia.com
> >> 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(a)ti.com>
> >>
> >> 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(a)ti.com>
> >> Signed-off-by: Venkatraman S <svenkatr(a)ti.com>
> >> Acked-by: Madhusudhan Chikkature <madhu.cr(a)ti.com>
> >>
> >> ---
> >> 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.
>
It is good enough to just check for 8-bit and 4-bit. The 1-bit does not need
any explicit check since it is default.

Regards,
Madhu

> 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(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Madhusudhan on


> -----Original Message-----
> From: Felipe Balbi [mailto:me(a)felipebalbi.com]
> Sent: Monday, April 05, 2010 11:49 AM
> To: kishore kadiyala
> Cc: Madhusudhan; Vimal Singh; tony(a)atomide.com; svenkatr(a)ti.com; linux-
> omap(a)vger.kernel.org; linux-kernel(a)vger.kernel.org;
> jarkko.lavinen(a)nokia.com
> Subject: Re: [PATCH v3] OMAP: Fix for bus width which improves SD card's
> peformance.
>
> Hi,
>
> On Mon, Apr 05, 2010 at 06:26:16PM +0530, kishore kadiyala wrote:
> > @@ -2091,9 +2091,9 @@ static int __init omap_hsmmc_probe(struct
> > mmc->caps |= MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED |
> > MMC_CAP_WAIT_WHILE_BUSY;
> >
> > - if (mmc_slot(host).wires >= 8)
> > - mmc->caps |= MMC_CAP_8_BIT_DATA;
> > - else if (mmc_slot(host).wires >= 4)
> > + if (mmc_slot(host).wires == 8)
> > + 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;
>
> I believe it would be enough to just remove the 'else', so the code
> would look like:
>
> if (mmc_slot(host).wires >= 8)
> mmc->caps |= MMC_CAP_8_BIT_DATA;
> if (mmc_slot(host).wires >= 4)

Since the first if command already checks for the 8-bit the second check
like >= 4 is definitely not readable in my opinion.

Functionally do you see anything wrong with this patch??

> mmc->caps |= MMC_CAP_4_BIT_DATA;
>
> --
> balbi

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


> -----Original Message-----
> From: linux-omap-owner(a)vger.kernel.org [mailto:linux-omap-
> owner(a)vger.kernel.org] On Behalf Of Madhusudhan
> Sent: Monday, April 05, 2010 12:19 PM
> To: me(a)felipebalbi.com; 'kishore kadiyala'
> Cc: 'Vimal Singh'; tony(a)atomide.com; svenkatr(a)ti.com; linux-
> omap(a)vger.kernel.org; linux-kernel(a)vger.kernel.org;
> jarkko.lavinen(a)nokia.com
> Subject: RE: [PATCH v3] OMAP: Fix for bus width which improves SD card's
> peformance.
>
>
>
> > -----Original Message-----
> > From: Felipe Balbi [mailto:me(a)felipebalbi.com]
> > Sent: Monday, April 05, 2010 11:49 AM
> > To: kishore kadiyala
> > Cc: Madhusudhan; Vimal Singh; tony(a)atomide.com; svenkatr(a)ti.com; linux-
> > omap(a)vger.kernel.org; linux-kernel(a)vger.kernel.org;
> > jarkko.lavinen(a)nokia.com
> > Subject: Re: [PATCH v3] OMAP: Fix for bus width which improves SD card's
> > peformance.
> >
> > Hi,
> >
> > On Mon, Apr 05, 2010 at 06:26:16PM +0530, kishore kadiyala wrote:
> > > @@ -2091,9 +2091,9 @@ static int __init omap_hsmmc_probe(struct
> > > mmc->caps |= MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED |
> > > MMC_CAP_WAIT_WHILE_BUSY;
> > >
> > > - if (mmc_slot(host).wires >= 8)
> > > - mmc->caps |= MMC_CAP_8_BIT_DATA;
> > > - else if (mmc_slot(host).wires >= 4)
> > > + if (mmc_slot(host).wires == 8)
> > > + 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;
> >
> > I believe it would be enough to just remove the 'else', so the code
> > would look like:
> >
> > if (mmc_slot(host).wires >= 8)
> > mmc->caps |= MMC_CAP_8_BIT_DATA;
> > if (mmc_slot(host).wires >= 4)
>
> Since the first if command already checks for the 8-bit the second check
> like >= 4 is definitely not readable in my opinion.
>
> Functionally do you see anything wrong with this patch??
>

Just to clarify my earlier comment on the patch was to resubmit like below:

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;

IMHO, this should be good enough.

Regards,
Madhu


> > mmc->caps |= MMC_CAP_4_BIT_DATA;
> >
> > --
> > balbi
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo(a)vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html

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


> -----Original Message-----
> From: Felipe Balbi [mailto:me(a)felipebalbi.com]
> Sent: Tuesday, April 06, 2010 12:01 AM
> To: Madhusudhan
> Cc: me(a)felipebalbi.com; 'kishore kadiyala'; 'Vimal Singh';
> tony(a)atomide.com; svenkatr(a)ti.com; linux-omap(a)vger.kernel.org; linux-
> kernel(a)vger.kernel.org; jarkko.lavinen(a)nokia.com
> Subject: Re: [PATCH v3] OMAP: Fix for bus width which improves SD card's
> peformance.
>
> Hi,
>
> On Mon, Apr 05, 2010 at 12:19:29PM -0500, Madhusudhan wrote:
> > Since the first if command already checks for the 8-bit the second check
> > like >= 4 is definitely not readable in my opinion.
>
> how come ???
>
> > Functionally do you see anything wrong with this patch??
>
> functionally no, but (hypothetical situation) and if on
> omap4/5/6/whatever, omap controller supports a bigger bus width then
> you'll have to add a line like:
>
> + if (mmc_slot(host).wires == 16)
> + mmc->caps |= (MMC_CAP_16_BIT_DATA | MMC_CAP_8_BIT_DATA |
> + MMC_CAP_4_BIT_DATA);
> - if (mmc_slot(host).wires == 8)
> + else if (mmc_slot(host).wires == 8)
>
> do you see the problem ?? In my opinion it doesn't scale well.
>

The point we should note here is that MMC spec supports a max bus width of
8-bit. So anything beyond 8-bit is not in the picture as of today.

But, my bad on miss interpreting the snippet Felipe sent earlier.

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

I missed the fact that you removed the setting of 4-bit from the first
check.

I am okay with the above snippet as it is a trivial change that we are
trying to patch here which fixes an important issue.

Regards,
Madhu
> --
> balbi

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