aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/lantiq/patches-4.1/0050-MIPS-lantiq-add-clk_round_rate.patch
diff options
context:
space:
mode:
authorJames <>2015-11-04 11:49:21 +0000
committerJames <>2015-11-04 11:49:21 +0000
commit716ca530e1c4515d8683c9d5be3d56b301758b66 (patch)
tree700eb5bcc1a462a5f21dcec15ce7c97ecfefa772 /target/linux/lantiq/patches-4.1/0050-MIPS-lantiq-add-clk_round_rate.patch
downloadtrunk-47381-716ca530e1c4515d8683c9d5be3d56b301758b66.tar.gz
trunk-47381-716ca530e1c4515d8683c9d5be3d56b301758b66.tar.bz2
trunk-47381-716ca530e1c4515d8683c9d5be3d56b301758b66.zip
trunk-47381HEADmaster
Diffstat (limited to 'target/linux/lantiq/patches-4.1/0050-MIPS-lantiq-add-clk_round_rate.patch')
-rw-r--r--target/linux/lantiq/patches-4.1/0050-MIPS-lantiq-add-clk_round_rate.patch43
1 files changed, 43 insertions, 0 deletions
diff --git a/target/linux/lantiq/patches-4.1/0050-MIPS-lantiq-add-clk_round_rate.patch b/target/linux/lantiq/patches-4.1/0050-MIPS-lantiq-add-clk_round_rate.patch
new file mode 100644
index 0000000..b2cd356
--- /dev/null
+++ b/target/linux/lantiq/patches-4.1/0050-MIPS-lantiq-add-clk_round_rate.patch
@@ -0,0 +1,43 @@
+From b3c10c6c19a9a0ad2b967b6afc8d8302ff4e10f9 Mon Sep 17 00:00:00 2001
+From: Hauke Mehrtens <hauke@hauke-m.de>
+Date: Sun, 25 Oct 2015 21:47:23 +0100
+Subject: [PATCH] MIPS: lantiq: add clk_round_rate()
+
+This adds a basic implementation of clk_round_rate()
+The clk_round_rate() function is called by multiple drivers and
+subsystems now and the lantiq clk driver is supposed to export this,
+but doesn't do so, this causes linking problems like this one:
+ERROR: "clk_round_rate" [drivers/media/v4l2-core/videodev.ko] undefined!
+
+Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
+Cc: <stable@vger.kernel.org> # 4.1+
+---
+ arch/mips/lantiq/clk.c | 17 +++++++++++++++++
+ 1 file changed, 17 insertions(+)
+
+--- a/arch/mips/lantiq/clk.c
++++ b/arch/mips/lantiq/clk.c
+@@ -99,6 +99,23 @@ int clk_set_rate(struct clk *clk, unsign
+ }
+ EXPORT_SYMBOL(clk_set_rate);
+
++long clk_round_rate(struct clk *clk, unsigned long rate)
++{
++ if (unlikely(!clk_good(clk)))
++ return 0;
++ if (clk->rates && *clk->rates) {
++ unsigned long *r = clk->rates;
++
++ while (*r && (*r != rate))
++ r++;
++ if (!*r) {
++ return clk->rate;
++ }
++ }
++ return rate;
++}
++EXPORT_SYMBOL(clk_round_rate);
++
+ int clk_enable(struct clk *clk)
+ {
+ if (unlikely(!clk_good(clk)))