diff options
Diffstat (limited to 'target/linux/s3c24xx/patches-2.6.26/1216-fix-scard-stop-on-resume.patch.patch')
-rwxr-xr-x | target/linux/s3c24xx/patches-2.6.26/1216-fix-scard-stop-on-resume.patch.patch | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/target/linux/s3c24xx/patches-2.6.26/1216-fix-scard-stop-on-resume.patch.patch b/target/linux/s3c24xx/patches-2.6.26/1216-fix-scard-stop-on-resume.patch.patch new file mode 100755 index 0000000..fd225c3 --- /dev/null +++ b/target/linux/s3c24xx/patches-2.6.26/1216-fix-scard-stop-on-resume.patch.patch @@ -0,0 +1,51 @@ +From 81b94de6dbb00676ddca78219eacf41b1928b33f Mon Sep 17 00:00:00 2001 +From: Andy Green <andy@openmoko.com> +Date: Fri, 25 Jul 2008 23:06:20 +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 67bb815..93f4074 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.3 + |