aboutsummaryrefslogtreecommitdiffstats
path: root/recipes-kernel/linux/linux-yocto-3.10/patches/patches-sa1100/pcmcia-sa1100-device-clock.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-kernel/linux/linux-yocto-3.10/patches/patches-sa1100/pcmcia-sa1100-device-clock.patch')
-rw-r--r--recipes-kernel/linux/linux-yocto-3.10/patches/patches-sa1100/pcmcia-sa1100-device-clock.patch100
1 files changed, 0 insertions, 100 deletions
diff --git a/recipes-kernel/linux/linux-yocto-3.10/patches/patches-sa1100/pcmcia-sa1100-device-clock.patch b/recipes-kernel/linux/linux-yocto-3.10/patches/patches-sa1100/pcmcia-sa1100-device-clock.patch
deleted file mode 100644
index 1d12fc8..0000000
--- a/recipes-kernel/linux/linux-yocto-3.10/patches/patches-sa1100/pcmcia-sa1100-device-clock.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-From patchwork Tue Nov 12 03:32:10 2013
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: [3/5] pcmcia: sa1100: make use of device clock
-From: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
-X-Patchwork-Id: 3170611
-Message-Id: <1384227132-10501-3-git-send-email-dbaryshkov@gmail.com>
-To: linux-arm-kernel@lists.infradead.org
-Cc: linux-fbdev@vger.kernel.org, linux-pcmcia@lists.infradead.org,
- Russell King <linux@arm.linux.org.uk>
-Date: Tue, 12 Nov 2013 07:32:10 +0400
-
-Use per-device clock (instead of calling cpufreq_get(0), which can
-return 0 if no cpu frequency driver is selected) to program timings.
-
-Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
-
----
-drivers/pcmcia/sa1100_generic.c | 1 +
- drivers/pcmcia/sa11xx_base.c | 14 ++++++++++++--
- 2 files changed, 13 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/pcmcia/sa1100_generic.c b/drivers/pcmcia/sa1100_generic.c
-index ff8a027..d2ab060 100644
---- a/drivers/pcmcia/sa1100_generic.c
-+++ b/drivers/pcmcia/sa1100_generic.c
-@@ -93,6 +93,7 @@ static int sa11x0_drv_pcmcia_remove(struct platform_device *dev)
- for (i = 0; i < sinfo->nskt; i++)
- soc_pcmcia_remove_one(&sinfo->skt[i]);
-
-+ clk_put(sinfo->clk);
- kfree(sinfo);
- return 0;
- }
-diff --git a/drivers/pcmcia/sa11xx_base.c b/drivers/pcmcia/sa11xx_base.c
-index 6eecd7c..aef0e69 100644
---- a/drivers/pcmcia/sa11xx_base.c
-+++ b/drivers/pcmcia/sa11xx_base.c
-@@ -38,6 +38,7 @@
- #include <linux/spinlock.h>
- #include <linux/io.h>
- #include <linux/slab.h>
-+#include <linux/clk.h>
-
- #include <mach/hardware.h>
- #include <asm/irq.h>
-@@ -138,14 +139,15 @@ sa1100_pcmcia_frequency_change(struct soc_pcmcia_socket *skt,
- static int
- sa1100_pcmcia_set_timing(struct soc_pcmcia_socket *skt)
- {
-- return sa1100_pcmcia_set_mecr(skt, cpufreq_get(0));
-+ unsigned long clk = clk_get_rate(skt->clk);
-+ return sa1100_pcmcia_set_mecr(skt, clk / 1000);
- }
-
- static int
- sa1100_pcmcia_show_timing(struct soc_pcmcia_socket *skt, char *buf)
- {
- struct soc_pcmcia_timing timing;
-- unsigned int clock = cpufreq_get(0);
-+ unsigned int clock = clk_get_rate(skt->clk);
- unsigned long mecr = MECR;
- char *p = buf;
-
-@@ -221,6 +223,11 @@ int sa11xx_drv_pcmcia_probe(struct device *dev, struct pcmcia_low_level *ops,
- struct skt_dev_info *sinfo;
- struct soc_pcmcia_socket *skt;
- int i, ret = 0;
-+ struct clk *clk;
-+
-+ clk = clk_get(dev, NULL);
-+ if (IS_ERR(clk))
-+ return -ENODEV;
-
- sa11xx_drv_pcmcia_ops(ops);
-
-@@ -229,12 +236,14 @@ int sa11xx_drv_pcmcia_probe(struct device *dev, struct pcmcia_low_level *ops,
- return -ENOMEM;
-
- sinfo->nskt = nr;
-+ sinfo->clk = clk;
-
- /* Initialize processor specific parameters */
- for (i = 0; i < nr; i++) {
- skt = &sinfo->skt[i];
-
- skt->nr = first + i;
-+ skt->clk = clk;
- soc_pcmcia_init_one(skt, ops, dev);
-
- ret = sa11xx_drv_pcmcia_add_one(skt);
-@@ -245,6 +254,7 @@ int sa11xx_drv_pcmcia_probe(struct device *dev, struct pcmcia_low_level *ops,
- if (ret) {
- while (--i >= 0)
- soc_pcmcia_remove_one(&sinfo->skt[i]);
-+ clk_put(clk);
- kfree(sinfo);
- } else {
- dev_set_drvdata(dev, sinfo);