diff options
Diffstat (limited to 'recipes-kernel/linux/linux-yocto-3.10/patches/patches-sa1100/fbdev-sa1100fb-make-use-of-device-clock.patch')
-rw-r--r-- | recipes-kernel/linux/linux-yocto-3.10/patches/patches-sa1100/fbdev-sa1100fb-make-use-of-device-clock.patch | 115 |
1 files changed, 0 insertions, 115 deletions
diff --git a/recipes-kernel/linux/linux-yocto-3.10/patches/patches-sa1100/fbdev-sa1100fb-make-use-of-device-clock.patch b/recipes-kernel/linux/linux-yocto-3.10/patches/patches-sa1100/fbdev-sa1100fb-make-use-of-device-clock.patch deleted file mode 100644 index 7460692..0000000 --- a/recipes-kernel/linux/linux-yocto-3.10/patches/patches-sa1100/fbdev-sa1100fb-make-use-of-device-clock.patch +++ /dev/null @@ -1,115 +0,0 @@ -From 14edf9123f62bbfbfbffe38e2837b51b3a6065b5 Mon Sep 17 00:00:00 2001 -From: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> -Date: Mon, 11 Nov 2013 22:58:02 +0400 -Subject: [PATCH 2/2] fbdev: sa1100fb: make use of device clock - -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/video/sa1100fb.c | 24 +++++++++++++++++------- - drivers/video/sa1100fb.h | 1 + - 2 files changed, 18 insertions(+), 7 deletions(-) - -diff --git a/drivers/video/sa1100fb.c b/drivers/video/sa1100fb.c -index de76da0..13d2c99 100644 ---- a/drivers/video/sa1100fb.c -+++ b/drivers/video/sa1100fb.c -@@ -178,6 +178,7 @@ - #include <linux/dma-mapping.h> - #include <linux/mutex.h> - #include <linux/io.h> -+#include <linux/clk.h> - - #include <video/sa1100fb.h> - -@@ -413,9 +414,9 @@ sa1100fb_check_var(struct fb_var_screeninfo *var, struct fb_info *info) - var->transp.offset); - - #ifdef CONFIG_CPU_FREQ -- dev_dbg(fbi->dev, "dma period = %d ps, clock = %d kHz\n", -+ dev_dbg(fbi->dev, "dma period = %d ps, clock = %ld kHz\n", - sa1100fb_display_dma_period(var), -- cpufreq_get(smp_processor_id())); -+ clk_get_rate(fbi->clk)/1000); - #endif - - return 0; -@@ -586,9 +587,10 @@ static struct fb_ops sa1100fb_ops = { - * Calculate the PCD value from the clock rate (in picoseconds). - * We take account of the PPCR clock setting. - */ --static inline unsigned int get_pcd(unsigned int pixclock, unsigned int cpuclock) -+static inline unsigned int get_pcd(struct sa1100fb_info *fbi, -+ unsigned int pixclock) - { -- unsigned int pcd = cpuclock / 100; -+ unsigned int pcd = clk_get_rate(fbi->clk)/ 100 / 1000; - - pcd *= pixclock; - pcd /= 10000000; -@@ -667,7 +669,7 @@ static int sa1100fb_activate_var(struct fb_var_screeninfo *var, struct sa1100fb_ - LCCR2_BegFrmDel(var->upper_margin) + - LCCR2_EndFrmDel(var->lower_margin); - -- pcd = get_pcd(var->pixclock, cpufreq_get(0)); -+ pcd = get_pcd(fbi, var->pixclock); - new_regs.lccr3 = LCCR3_PixClkDiv(pcd) | fbi->inf->lccr3 | - (var->sync & FB_SYNC_HOR_HIGH_ACT ? LCCR3_HorSnchH : LCCR3_HorSnchL) | - (var->sync & FB_SYNC_VERT_HIGH_ACT ? LCCR3_VrtSnchH : LCCR3_VrtSnchL); -@@ -1003,7 +1005,6 @@ sa1100fb_freq_transition(struct notifier_block *nb, unsigned long val, - void *data) - { - struct sa1100fb_info *fbi = TO_INF(nb, freq_transition); -- struct cpufreq_freqs *f = data; - u_int pcd; - - switch (val) { -@@ -1012,7 +1013,7 @@ sa1100fb_freq_transition(struct notifier_block *nb, unsigned long val, - break; - - case CPUFREQ_POSTCHANGE: -- pcd = get_pcd(fbi->fb.var.pixclock, f->new); -+ pcd = get_pcd(fbi, fbi->fb.var.pixclock); - fbi->reg_lccr3 = (fbi->reg_lccr3 & ~0xff) | LCCR3_PixClkDiv(pcd); - set_ctrlr_state(fbi, C_ENABLE_CLKCHANGE); - break; -@@ -1219,6 +1220,13 @@ static int sa1100fb_probe(struct platform_device *pdev) - if (!fbi) - goto failed; - -+ fbi->clk = clk_get(&pdev->dev, NULL); -+ if (IS_ERR(fbi->clk)) { -+ ret = PTR_ERR(fbi->clk); -+ fbi->clk = NULL; -+ goto failed; -+ } -+ - fbi->base = ioremap(res->start, resource_size(res)); - if (!fbi->base) - goto failed; -@@ -1271,6 +1279,8 @@ static int sa1100fb_probe(struct platform_device *pdev) - failed: - if (fbi) - iounmap(fbi->base); -+ if (fbi->clk) -+ clk_put(fbi->clk); - platform_set_drvdata(pdev, NULL); - kfree(fbi); - release_mem_region(res->start, resource_size(res)); -diff --git a/drivers/video/sa1100fb.h b/drivers/video/sa1100fb.h -index fc5d429..0139d13 100644 ---- a/drivers/video/sa1100fb.h -+++ b/drivers/video/sa1100fb.h -@@ -68,6 +68,7 @@ struct sa1100fb_info { - #endif - - const struct sa1100fb_mach_info *inf; -+ struct clk *clk; - }; - - #define TO_INF(ptr,member) container_of(ptr,struct sa1100fb_info,member) --- -1.8.4.2 - |