614683faf8
SVN-Revision: 13613
51 lines
1.8 KiB
Diff
51 lines
1.8 KiB
Diff
From 6ec7d69f08cfb772fdf5d7c55ed9da2273677a4d Mon Sep 17 00:00:00 2001
|
|
From: Andy Green <andy@openmoko.com>
|
|
Date: Sun, 20 Jul 2008 18:43:15 +0100
|
|
Subject: [PATCH] fix-scard-stop-on-resume.patch
|
|
Reported-by: Ville-Pekka Vainio <vpivaini@cs.helsinki.fi>
|
|
|
|
The reporter noticed SD Card clock is running again after resume. After
|
|
looking at the code I saw I missed two tricks, this will force it off
|
|
after resume and will do better generally depending on what the last SD Card
|
|
packet was.
|
|
|
|
Since bulk read packet is normally last action (which set the clock off even
|
|
without this) the old patch worked for normal cases. But after resume, the last
|
|
packet on the wire was not a bulk transfer and we didn't take care about the
|
|
clock then.
|
|
|
|
Signed-off-by: Andy Green <andy@openmoko.com>
|
|
---
|
|
drivers/mfd/glamo/glamo-mci.c | 6 +++---
|
|
1 files changed, 3 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/drivers/mfd/glamo/glamo-mci.c b/drivers/mfd/glamo/glamo-mci.c
|
|
index 6729244..2318e6f 100644
|
|
--- a/drivers/mfd/glamo/glamo-mci.c
|
|
+++ b/drivers/mfd/glamo/glamo-mci.c
|
|
@@ -619,12 +619,9 @@ done:
|
|
host->complete_what = COMPLETION_NONE;
|
|
host->mrq = NULL;
|
|
mmc_request_done(host->mmc, cmd->mrq);
|
|
- return;
|
|
-
|
|
bail:
|
|
/* stop the clock to card */
|
|
__glamo_mci_fix_card_div(host, -1);
|
|
- return;
|
|
}
|
|
|
|
static void glamo_mci_request(struct mmc_host *mmc, struct mmc_request *mrq)
|
|
@@ -690,6 +687,9 @@ static void glamo_mci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
|
|
host->real_rate = __glamo_mci_set_card_clock(host, ios->clock, &div);
|
|
host->clk_div = div;
|
|
|
|
+ /* stop the clock to card, because we are idle until transfer */
|
|
+ __glamo_mci_fix_card_div(host, -1);
|
|
+
|
|
if ((ios->power_mode == MMC_POWER_ON) ||
|
|
(ios->power_mode == MMC_POWER_UP)) {
|
|
dev_info(&host->pdev->dev,
|
|
--
|
|
1.5.6.5
|
|
|