All of lore.kernel.org
 help / color / mirror / Atom feed
From: kishore kadiyala <kishorek.kadiyala@gmail.com>
To: Madhusudhan <madhu.cr@ti.com>
Cc: Nishanth Menon <nm@ti.com>,
	felipe.balbi@nokia.com, me@felipebalbi.com,
	Vimal Singh <vimal.newwork@gmail.com>,
	tony@atomide.com, "S, Venkatraman" <svenkatr@ti.com>,
	linux-omap@vger.kernel.org, linux-kernel@vger.kernel.org,
	"Lavinen Jarkko (Nokia-D/Helsinki)" <jarkko.lavinen@nokia.com>
Subject: [PATCH v4] OMAP: Fix for bus width which improves SD card's  peformance.
Date: Mon, 19 Apr 2010 21:21:53 +0530	[thread overview]
Message-ID: <h2h7f9d1ffb1004190851gf08897awf198d3c8e5f9dbce@mail.gmail.com> (raw)
In-Reply-To: <s2l7f9d1ffb1004190836l9ba703c5lab13638d968a5c55@mail.gmail.com>

The previous patch was Line wrapped , resending
correct patch.
NM, Sorry I miss spelled your name correcting this time.

Regards,
Kishore

From: Kishore Kadiyala <kishore.kadiyala@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@ti.com>
Signed-off-by: Venkatraman S <svenkatr@ti.com>
Signed-off-by: Nishanth Menon <nm@ti.com>
Acked-by: Madhusudhan Chikkature <madhu.cr@ti.com>
Tested-by: Jarkko Nikula <jhnikula@gmail.com>
---
In V4 : Updated with Nishant's comments and appened his Signed-off
In V3 : Updated  with Madhu's comments  and appended Tested by Nikula
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 |   19 ++++++++++++++++---
 1 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
index 8c97c22..9c1a60e 100644
--- a/drivers/mmc/host/omap_hsmmc.c
+++ b/drivers/mmc/host/omap_hsmmc.c
@@ -2091,10 +2091,23 @@ 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 | MMC_CAP_4_BIT_DATA);
-	else if (mmc_slot(host).wires >= 4)
+	switch (mmc_slot(host).wires) {
+	case 8:
+		mmc->caps |= MMC_CAP_8_BIT_DATA;
+		/* Fall through */
+	case 4:
 		mmc->caps |= MMC_CAP_4_BIT_DATA;
+		break;
+	case 1:
+		/* Nothing to crib here */
+	case 0:
+		/* Assuming nothing was given by board, Core use's 1-Bit */
+		 break;
+	default:
+		/* Completely unexpected.. Core goes with 1-Bit Width */
+		dev_crit(mmc_dev(host->mmc), "Invalid width %d\n used!"
+			"using 1 instead\n", mmc_slot(host).wires);
+	}

 	if (mmc_slot(host).nonremovable)
 		mmc->caps |= MMC_CAP_NONREMOVABLE;
-- 
1.6.3.3

WARNING: multiple messages have this Message-ID (diff)
From: kishore kadiyala <kishorek.kadiyala@gmail.com>
To: Madhusudhan <madhu.cr@ti.com>
Cc: Nishanth Menon <nm@ti.com>,
	felipe.balbi@nokia.com, me@felipebalbi.com,
	Vimal Singh <vimal.newwork@gmail.com>,
	tony@atomide.com, "S, Venkatraman" <svenkatr@ti.com>,
	linux-omap@vger.kernel.org, linux-kernel@vger.kernel.org,
	"Lavinen Jarkko (Nokia-D/Helsinki)" <jarkko.lavinen@nokia.com>
Subject: [PATCH v4] OMAP: Fix for bus width which improves SD card's peformance.
Date: Mon, 19 Apr 2010 21:21:53 +0530	[thread overview]
Message-ID: <h2h7f9d1ffb1004190851gf08897awf198d3c8e5f9dbce@mail.gmail.com> (raw)
In-Reply-To: <s2l7f9d1ffb1004190836l9ba703c5lab13638d968a5c55@mail.gmail.com>

The previous patch was Line wrapped , resending
correct patch.
NM, Sorry I miss spelled your name correcting this time.

Regards,
Kishore

From: Kishore Kadiyala <kishore.kadiyala@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@ti.com>
Signed-off-by: Venkatraman S <svenkatr@ti.com>
Signed-off-by: Nishanth Menon <nm@ti.com>
Acked-by: Madhusudhan Chikkature <madhu.cr@ti.com>
Tested-by: Jarkko Nikula <jhnikula@gmail.com>
---
In V4 : Updated with Nishant's comments and appened his Signed-off
In V3 : Updated  with Madhu's comments  and appended Tested by Nikula
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 |   19 ++++++++++++++++---
 1 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
index 8c97c22..9c1a60e 100644
--- a/drivers/mmc/host/omap_hsmmc.c
+++ b/drivers/mmc/host/omap_hsmmc.c
@@ -2091,10 +2091,23 @@ 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 | MMC_CAP_4_BIT_DATA);
-	else if (mmc_slot(host).wires >= 4)
+	switch (mmc_slot(host).wires) {
+	case 8:
+		mmc->caps |= MMC_CAP_8_BIT_DATA;
+		/* Fall through */
+	case 4:
 		mmc->caps |= MMC_CAP_4_BIT_DATA;
+		break;
+	case 1:
+		/* Nothing to crib here */
+	case 0:
+		/* Assuming nothing was given by board, Core use's 1-Bit */
+		 break;
+	default:
+		/* Completely unexpected.. Core goes with 1-Bit Width */
+		dev_crit(mmc_dev(host->mmc), "Invalid width %d\n used!"
+			"using 1 instead\n", mmc_slot(host).wires);
+	}

 	if (mmc_slot(host).nonremovable)
 		mmc->caps |= MMC_CAP_NONREMOVABLE;
-- 
1.6.3.3

  reply	other threads:[~2010-04-19 15:52 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-02-11 14:20 [PATCH] OMAP: Fix for bus width which improves SD card's peformance kishore kadiyala
2010-02-11 14:20 ` kishore kadiyala
2010-02-11 17:34 ` Madhusudhan
2010-02-11 17:34   ` Madhusudhan
2010-03-31  6:07   ` [PATCH-V2] " kishore kadiyala
2010-03-31  6:07     ` kishore kadiyala
2010-03-31  6:27     ` Vimal Singh
2010-03-31  6:27       ` Vimal Singh
2010-03-31  7:03       ` kishore kadiyala
2010-03-31  7:03         ` kishore kadiyala
2010-03-31 13:11         ` Jarkko Nikula
2010-03-31 13:11           ` Jarkko Nikula
2010-03-31 16:37         ` Madhusudhan
2010-03-31 16:37           ` Madhusudhan
2010-04-01  6:31           ` kishore kadiyala
2010-04-01  6:31             ` kishore kadiyala
2010-04-01 15:41             ` Madhusudhan
2010-04-01 15:41               ` Madhusudhan
2010-04-05 12:56               ` [PATCH v3] " kishore kadiyala
2010-04-05 12:56                 ` kishore kadiyala
2010-04-05 16:48                 ` Felipe Balbi
2010-04-05 17:19                   ` Madhusudhan
2010-04-05 17:19                     ` Madhusudhan
2010-04-05 17:43                     ` Madhusudhan
2010-04-05 17:43                       ` Madhusudhan
2010-04-06  5:00                     ` Felipe Balbi
2010-04-06 16:16                       ` Madhusudhan
2010-04-06 16:16                         ` Madhusudhan
2010-04-06 16:32                         ` Felipe Balbi
2010-04-06 16:55                           ` Nishanth Menon
2010-04-06 16:57                             ` Felipe Balbi
2010-04-06 23:23                               ` Madhusudhan
2010-04-06 23:23                                 ` Madhusudhan
2010-04-06 23:39                                 ` Nishanth Menon
2010-04-07  0:16                                   ` Madhusudhan
2010-04-07  0:16                                     ` Madhusudhan
2010-04-07  0:57                                     ` Nishanth Menon
2010-04-08 16:57                                       ` Madhusudhan
2010-04-08 16:57                                         ` Madhusudhan
2010-04-19 15:36                                         ` [PATCH v4] " kishore kadiyala
2010-04-19 15:36                                           ` kishore kadiyala
2010-04-19 15:51                                           ` kishore kadiyala [this message]
2010-04-19 15:51                                             ` kishore kadiyala
2010-04-22  0:26                                             ` Madhusudhan
2010-04-22  0:26                                               ` Madhusudhan
2010-06-14 16:10                                               ` [PATCH v5] " kishore kadiyala
2010-06-15  8:04                                                 ` kishore kadiyala
2010-06-15  8:07                                                   ` kishore kadiyala
2010-06-30 14:59                                                     ` kishore kadiyala
2010-07-07 14:15                                                     ` kishore kadiyala

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=h2h7f9d1ffb1004190851gf08897awf198d3c8e5f9dbce@mail.gmail.com \
    --to=kishorek.kadiyala@gmail.com \
    --cc=felipe.balbi@nokia.com \
    --cc=jarkko.lavinen@nokia.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=madhu.cr@ti.com \
    --cc=me@felipebalbi.com \
    --cc=nm@ti.com \
    --cc=svenkatr@ti.com \
    --cc=tony@atomide.com \
    --cc=vimal.newwork@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.