summaryrefslogtreecommitdiff
path: root/target/linux/s3c24xx/patches-2.6.26/1230-add-glamo-mci-slower-clocking-dynamic-switching.patc.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/s3c24xx/patches-2.6.26/1230-add-glamo-mci-slower-clocking-dynamic-switching.patc.patch')
-rwxr-xr-xtarget/linux/s3c24xx/patches-2.6.26/1230-add-glamo-mci-slower-clocking-dynamic-switching.patc.patch120
1 files changed, 0 insertions, 120 deletions
diff --git a/target/linux/s3c24xx/patches-2.6.26/1230-add-glamo-mci-slower-clocking-dynamic-switching.patc.patch b/target/linux/s3c24xx/patches-2.6.26/1230-add-glamo-mci-slower-clocking-dynamic-switching.patc.patch
deleted file mode 100755
index 74442df..0000000
--- a/target/linux/s3c24xx/patches-2.6.26/1230-add-glamo-mci-slower-clocking-dynamic-switching.patc.patch
+++ /dev/null
@@ -1,120 +0,0 @@
-From 911b448d4b528c403f973f9e5aa34be94bffaf1e Mon Sep 17 00:00:00 2001
-From: Andy Green <andy@openmoko.com>
-Date: Wed, 30 Jul 2008 14:37:01 +0100
-Subject: [PATCH] add-glamo-mci-slower-clocking-dynamic-switching.patch
-
-This patch gives glamo-mci a concept of a platform-defined
-dynamic clock slowing callback. It means that platform code
-can associate some completely external state to decide if
-we run the SD clock at normal rate or a rate divided by a
-module parameter "sd_slow_ratio", which you can set on
-kernel commandline like this:
-
-glamo_mci.sd_slow_ratio=8
-
-you can also change it at runtime by
-
-echo 8 > /sys/module/glamo_mci/parameters/sd_slow_ratio
-
-If no platform callback is defined, then no slow mode
-is used. If it is defined, then the default division
-action is / 8, eg, 16MHz normal -> 2MHz slow mode.
-
-Signed-off-by: Andy Green <andy@openmoko.com>
----
- drivers/mfd/glamo/glamo-core.c | 2 ++
- drivers/mfd/glamo/glamo-core.h | 2 ++
- drivers/mfd/glamo/glamo-mci.c | 30 ++++++++++++++++++++++++++++--
- include/linux/glamofb.h | 2 ++
- 4 files changed, 34 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/mfd/glamo/glamo-core.c b/drivers/mfd/glamo/glamo-core.c
-index cb9b056..0e7a650 100644
---- a/drivers/mfd/glamo/glamo-core.c
-+++ b/drivers/mfd/glamo/glamo-core.c
-@@ -1116,6 +1116,8 @@ static int __init glamo_probe(struct platform_device *pdev)
- /* bring MCI specific stuff over from our MFD platform data */
- glamo_mci_def_pdata.glamo_set_mci_power =
- glamo->pdata->glamo_set_mci_power;
-+ glamo_mci_def_pdata.glamo_mci_use_slow =
-+ glamo->pdata->glamo_mci_use_slow;
- glamo_mci_def_pdata.glamo_irq_is_wired =
- glamo->pdata->glamo_irq_is_wired;
- glamo_mci_def_pdata.mci_suspending =
-diff --git a/drivers/mfd/glamo/glamo-core.h b/drivers/mfd/glamo/glamo-core.h
-index c89f810..dd6f67c 100644
---- a/drivers/mfd/glamo/glamo-core.h
-+++ b/drivers/mfd/glamo/glamo-core.h
-@@ -72,6 +72,8 @@ struct glamo_mci_pdata {
- unsigned long ocr_avail;
- void (*glamo_set_mci_power)(unsigned char power_mode,
- unsigned short vdd);
-+ /* glamo-mci asking if it should use the slow clock to card */
-+ int (*glamo_mci_use_slow)(void);
- int (*glamo_irq_is_wired)(void);
- void (*mci_suspending)(struct platform_device *dev);
- int (*mci_all_dependencies_resumed)(struct platform_device *dev);
-diff --git a/drivers/mfd/glamo/glamo-mci.c b/drivers/mfd/glamo/glamo-mci.c
-index 7a2b060..d34632a 100644
---- a/drivers/mfd/glamo/glamo-mci.c
-+++ b/drivers/mfd/glamo/glamo-mci.c
-@@ -57,6 +57,23 @@ static int sd_max_clk = 50000000 / 3;
- module_param(sd_max_clk, int, 0644);
-
- /*
-+ * Slow SD clock rate
-+ *
-+ * you can override this on kernel commandline using
-+ *
-+ * glamo_mci.sd_slow_ratio=8
-+ *
-+ * for example
-+ *
-+ * platform callback is used to decide effective clock rate, if not
-+ * defined then max is used, if defined and returns nonzero, rate is
-+ * divided by this factor
-+ */
-+
-+static int sd_slow_ratio = 8;
-+module_param(sd_slow_ratio, int, 0644);
-+
-+/*
- * SD Signal drive strength
- *
- * you can override this on kernel commandline using
-@@ -554,8 +571,17 @@ static void glamo_mci_send_request(struct mmc_host *mmc)
- cmd->opcode, cmd->arg, cmd->data, cmd->mrq->stop,
- cmd->flags);
-
-- /* resume requested clock rate */
-- __glamo_mci_fix_card_div(host, host->clk_div);
-+ /* resume requested clock rate
-+ * scale it down by sd_slow_ratio if platform requests it
-+ */
-+ if (host->pdata->glamo_mci_use_slow)
-+ if ((host->pdata->glamo_mci_use_slow)())
-+ __glamo_mci_fix_card_div(host, host->clk_div *
-+ sd_slow_ratio);
-+ else
-+ __glamo_mci_fix_card_div(host, host->clk_div);
-+ else
-+ __glamo_mci_fix_card_div(host, host->clk_div);
-
- if (glamo_mci_send_command(host, cmd))
- goto bail;
-diff --git a/include/linux/glamofb.h b/include/linux/glamofb.h
-index bb1a398..ca63355 100644
---- a/include/linux/glamofb.h
-+++ b/include/linux/glamofb.h
-@@ -31,6 +31,8 @@ struct glamofb_platform_data {
- /* glamo mmc platform specific info */
- void (*glamo_set_mci_power)(unsigned char power_mode,
- unsigned short vdd);
-+ /* glamo-mci asking if it should use the slow clock to card */
-+ int (*glamo_mci_use_slow)(void);
- int (*glamo_irq_is_wired)(void);
- void (*mci_suspending)(struct platform_device *dev);
- int (*mci_all_dependencies_resumed)(struct platform_device *dev);
---
-1.5.6.3
-