All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <20140929080637.GB12506@ulmo>

diff --git a/a/1.1.hdr b/a/1.1.hdr
deleted file mode 100644
index 5a32186..0000000
--- a/a/1.1.hdr
+++ /dev/null
@@ -1,3 +0,0 @@
-Content-Type: text/plain; charset=us-ascii
-Content-Disposition: inline
-Content-Transfer-Encoding: quoted-printable
diff --git a/a/1.2.hdr b/a/1.2.hdr
deleted file mode 100644
index 5c68b95..0000000
--- a/a/1.2.hdr
+++ /dev/null
@@ -1,3 +0,0 @@
-Content-Type: text/x-diff; charset=us-ascii
-Content-Disposition: inline; filename="0001-clk-Allow-drivers-to-reference-unused-clocks.patch"
-Content-Transfer-Encoding: quoted-printable
diff --git a/a/1.2.txt b/a/1.2.txt
deleted file mode 100644
index bc10e06..0000000
--- a/a/1.2.txt
+++ /dev/null
@@ -1,166 +0,0 @@
-From 5e2521feab41b71fc80b1b41d4eb6ec967919eed Mon Sep 17 00:00:00 2001
-From: Thierry Reding <treding@nvidia.com>
-Date: Mon, 29 Sep 2014 08:10:49 +0200
-Subject: [PATCH] clk: Allow drivers to reference unused clocks
-
-Some drivers are designed to take over a virtual device set up at boot
-time by firmware. This can be useful for early boot output on a display
-device when no debug serial console is available or for transitioning
-from firmware to the Linux kernel in a seemless way.
-
-This type of driver relies on firmware to have set up hardware in a way
-that it can scan out a framebuffer using the display hardware. Some of
-the resources used by the display hardware (clocks, power supplies, ...)
-will typically be turned off (at late_initcall time) by the respective
-Linux kernel subsystems unless explicitly claimed by some hardware-
-specific driver. However, if this driver is built as a module (loaded
-from a filesystem) or defer probing, they will not claim the resources
-until long after late_initcall time. This doesn't allow for a seemless
-transition.
-
-It can also happen that the hardware-specific driver is never loaded. It
-may be that no such driver exists, or it fails to load. Users may even
-decide not to load it on purpose, perhaps because it is buggy. Instead
-of turning the display off in such cases, a better option is to keep
-running with the existing framebuffer, which may also be helpful in
-diagnosing why the real driver wasn't loaded.
-
-This patch provides a way for drivers that make use of clocks set up by
-firmware to prevent clocks from being automatically disabled. Similarly
-a way is provided to signal that they no longer need the clocks (when
-the hardware-specific driver has taken over for example).
-
-Signed-off-by: Thierry Reding <treding@nvidia.com>
----
- drivers/clk/clk.c   | 58 +++++++++++++++++++++++++++++++++++------------------
- include/linux/clk.h | 26 ++++++++++++++++++++++++
- 2 files changed, 65 insertions(+), 19 deletions(-)
-
-diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c
-index 52d58279a612..2007f10e244c 100644
---- a/drivers/clk/clk.c
-+++ b/drivers/clk/clk.c
-@@ -486,38 +486,58 @@ out:
- 	return;
- }
- 
--static bool clk_ignore_unused;
--static int __init clk_ignore_unused_setup(char *__unused)
-+static unsigned long clk_ignore_unused_count = 1;
-+
-+void clk_ignore_unused(void)
- {
--	clk_ignore_unused = true;
--	return 1;
-+	clk_prepare_lock();
-+
-+	if (clk_ignore_unused_count == 0)
-+		pr_warn("clk: unused clocks already disabled\n");
-+	else
-+		clk_ignore_unused_count++;
-+
-+	clk_prepare_unlock();
- }
--__setup("clk_ignore_unused", clk_ignore_unused_setup);
- 
--static int clk_disable_unused(void)
-+void clk_unignore_unused(void)
- {
- 	struct clk *clk;
- 
--	if (clk_ignore_unused) {
--		pr_warn("clk: Not disabling unused clocks\n");
--		return 0;
--	}
--
- 	clk_prepare_lock();
- 
--	hlist_for_each_entry(clk, &clk_root_list, child_node)
--		clk_disable_unused_subtree(clk);
-+	if (--clk_ignore_unused_count == 0) {
-+		hlist_for_each_entry(clk, &clk_root_list, child_node)
-+			clk_disable_unused_subtree(clk);
- 
--	hlist_for_each_entry(clk, &clk_orphan_list, child_node)
--		clk_disable_unused_subtree(clk);
-+		hlist_for_each_entry(clk, &clk_orphan_list, child_node)
-+			clk_disable_unused_subtree(clk);
- 
--	hlist_for_each_entry(clk, &clk_root_list, child_node)
--		clk_unprepare_unused_subtree(clk);
-+		hlist_for_each_entry(clk, &clk_root_list, child_node)
-+			clk_unprepare_unused_subtree(clk);
- 
--	hlist_for_each_entry(clk, &clk_orphan_list, child_node)
--		clk_unprepare_unused_subtree(clk);
-+		hlist_for_each_entry(clk, &clk_orphan_list, child_node)
-+			clk_unprepare_unused_subtree(clk);
-+	}
- 
- 	clk_prepare_unlock();
-+}
-+
-+static int __init clk_ignore_unused_setup(char *__unused)
-+{
-+	clk_ignore_unused();
-+	return 1;
-+}
-+__setup("clk_ignore_unused", clk_ignore_unused_setup);
-+
-+static int clk_disable_unused(void)
-+{
-+	clk_unignore_unused();
-+
-+	if (clk_ignore_unused_count > 0) {
-+		pr_warn("clk: Not disabling unused clocks\n");
-+		return 0;
-+	}
- 
- 	return 0;
- }
-diff --git a/include/linux/clk.h b/include/linux/clk.h
-index afb44bfaf8d1..b587f2b2f2f5 100644
---- a/include/linux/clk.h
-+++ b/include/linux/clk.h
-@@ -106,6 +106,24 @@ int clk_notifier_unregister(struct clk *clk, struct notifier_block *nb);
-  */
- long clk_get_accuracy(struct clk *clk);
- 
-+/**
-+ * clk_ignore_unused - request that unused clocks be kept running
-+ *
-+ * This function can be used by drivers to request that unused clocks are kept
-+ * running. It is useful for drivers that take over hardware previously set up
-+ * by firmware and which may not explicitly claim all clocks.
-+ */
-+void clk_ignore_unused(void);
-+
-+/**
-+ * clk_unignore_unused - release unused clocks
-+ *
-+ * Use this function to undo the effects of clk_ignore_unused(). It is meant
-+ * to be called by drivers for firmware devices after they've handed off the
-+ * device to a proper hardware-specific driver.
-+ */
-+void clk_unignore_unused(void);
-+
- #else
- 
- static inline long clk_get_accuracy(struct clk *clk)
-@@ -113,6 +131,14 @@ static inline long clk_get_accuracy(struct clk *clk)
- 	return -ENOTSUPP;
- }
- 
-+static inline void clk_ignore_unused(void)
-+{
-+}
-+
-+static inline void clk_unignore_unused(void)
-+{
-+}
-+
- #endif
- 
- /**
--- 
-2.1.0
diff --git a/a/1.1.txt b/N1/1.txt
similarity index 91%
rename from a/1.1.txt
rename to N1/1.txt
index a581cde..1ce8375 100644
--- a/a/1.1.txt
+++ b/N1/1.txt
@@ -131,3 +131,17 @@ single driver if necessary. Similar functionality could be added for
 other resource subsystems as needed.
 
 Thierry
+-------------- next part --------------
+A non-text attachment was scrubbed...
+Name: 0001-clk-Allow-drivers-to-reference-unused-clocks.patch
+Type: text/x-diff
+Size: 5230 bytes
+Desc: not available
+URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20140929/c3794a2c/attachment-0001.bin>
+-------------- next part --------------
+A non-text attachment was scrubbed...
+Name: not available
+Type: application/pgp-signature
+Size: 819 bytes
+Desc: not available
+URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20140929/c3794a2c/attachment-0001.sig>
diff --git a/a/2.bin b/a/2.bin
deleted file mode 100644
index 5f9b448..0000000
--- a/a/2.bin
+++ /dev/null
@@ -1,17 +0,0 @@
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v2
-
-iQIcBAEBAgAGBQJUKRMNAAoJEN0jrNd/PrOhrDEP/ix7wAtapGBHEjWW5C3ATpf9
-XSbm9y9VPZLqhZfU0nhiqPfT7yoQ0N1aWSho54QNgqCqg2tZPmR+t6P3WaK5Afap
-PzJdS6pDyZWNaO+wF8k8tVh+vmkQUUuWteBZjuxiVPfYJwvmh+ibz3Vzloo/hR9R
-+0HBQa7lok96PdWKAOgGzgnvzM07tjhD/MmvPPrukEKP+fCYhU716YkAepVFaH/S
-+nHBI4Z6g+SfcFUDCj9o5pSS8Mf68MPxPPUH8BcKf2Gy9hDoHjLmeOTjhE+u5y+f
-tPldsc8DW4hmuRF9L1aQBFSADB4ucHijcH7q5KarE73YleSqfxeCXGdxOnlbJ67V
-0bM0noPesaD2ZggldgJPHfTBgdYD3/wAzZI0Dt+yvE/VRoUJ5sDSlT6axkXArRwH
-2FBk53JLb+UnBudyxVYegH6rJnNQij00EQhxse1w/Ia9P/OQw7/XQUbfAknWoioR
-yEvBcc2RuNqdKDTquia+6OUhi09pRebbw/9LISe0LMV9TSAw/ruT7Rqo3YYpREBe
-M19FXLo3EyBbs6vxyxqIAImeQNGqpBw4VS5Xjlj79eA1Ik+u0ciHjvJwWAQpuFY9
-5jHdKHOapHMERRw8XYfUxwU6dmeOAb9z6U9/h2mMQE1s/NHFUTudOGvBiwr2ot9l
-WXc5igEjr5wz5byU4t9N
-=IhIv
------END PGP SIGNATURE-----
diff --git a/a/2.hdr b/a/2.hdr
deleted file mode 100644
index a09cc95..0000000
--- a/a/2.hdr
+++ /dev/null
@@ -1 +0,0 @@
-Content-Type: application/pgp-signature
diff --git a/a/content_digest b/N1/content_digest
index 47cc1e4..ef4be25 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -8,11 +8,11 @@
  "ref\020140829143812.GC31264@ulmo\0"
  "ref\020140902092508.GR15297@lukather\0"
  "ref\020140927235601.19023.31593@quantum\0"
- "From\0Thierry Reding <thierry.reding@gmail.com>\0"
- "Subject\0Re: [linux-sunxi] Re: [PATCH 4/4] simplefb: add clock handling code\0"
- "Date\0Mon, 29 Sep 2014 08:06:39 +0000\0"
+ "From\0thierry.reding@gmail.com (Thierry Reding)\0"
+ "Subject\0[linux-sunxi] Re: [PATCH 4/4] simplefb: add clock handling code\0"
+ "Date\0Mon, 29 Sep 2014 10:06:39 +0200\0"
  "To\0linux-arm-kernel@lists.infradead.org\0"
- "\02:1.1\0"
+ "\00:1\0"
  "b\0"
  "On Sat, Sep 27, 2014 at 04:56:01PM -0700, Mike Turquette wrote:\n"
  "> Quoting Maxime Ripard (2014-09-02 02:25:08)\n"
@@ -146,194 +146,20 @@
  "single driver if necessary. Similar functionality could be added for\n"
  "other resource subsystems as needed.\n"
  "\n"
- Thierry
- "\02:1.2\0"
- "fn\00001-clk-Allow-drivers-to-reference-unused-clocks.patch\0"
- "b\0"
- "From 5e2521feab41b71fc80b1b41d4eb6ec967919eed Mon Sep 17 00:00:00 2001\n"
- "From: Thierry Reding <treding@nvidia.com>\n"
- "Date: Mon, 29 Sep 2014 08:10:49 +0200\n"
- "Subject: [PATCH] clk: Allow drivers to reference unused clocks\n"
- "\n"
- "Some drivers are designed to take over a virtual device set up at boot\n"
- "time by firmware. This can be useful for early boot output on a display\n"
- "device when no debug serial console is available or for transitioning\n"
- "from firmware to the Linux kernel in a seemless way.\n"
- "\n"
- "This type of driver relies on firmware to have set up hardware in a way\n"
- "that it can scan out a framebuffer using the display hardware. Some of\n"
- "the resources used by the display hardware (clocks, power supplies, ...)\n"
- "will typically be turned off (at late_initcall time) by the respective\n"
- "Linux kernel subsystems unless explicitly claimed by some hardware-\n"
- "specific driver. However, if this driver is built as a module (loaded\n"
- "from a filesystem) or defer probing, they will not claim the resources\n"
- "until long after late_initcall time. This doesn't allow for a seemless\n"
- "transition.\n"
- "\n"
- "It can also happen that the hardware-specific driver is never loaded. It\n"
- "may be that no such driver exists, or it fails to load. Users may even\n"
- "decide not to load it on purpose, perhaps because it is buggy. Instead\n"
- "of turning the display off in such cases, a better option is to keep\n"
- "running with the existing framebuffer, which may also be helpful in\n"
- "diagnosing why the real driver wasn't loaded.\n"
- "\n"
- "This patch provides a way for drivers that make use of clocks set up by\n"
- "firmware to prevent clocks from being automatically disabled. Similarly\n"
- "a way is provided to signal that they no longer need the clocks (when\n"
- "the hardware-specific driver has taken over for example).\n"
- "\n"
- "Signed-off-by: Thierry Reding <treding@nvidia.com>\n"
- "---\n"
- " drivers/clk/clk.c   | 58 +++++++++++++++++++++++++++++++++++------------------\n"
- " include/linux/clk.h | 26 ++++++++++++++++++++++++\n"
- " 2 files changed, 65 insertions(+), 19 deletions(-)\n"
- "\n"
- "diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c\n"
- "index 52d58279a612..2007f10e244c 100644\n"
- "--- a/drivers/clk/clk.c\n"
- "+++ b/drivers/clk/clk.c\n"
- "@@ -486,38 +486,58 @@ out:\n"
- " \treturn;\n"
- " }\n"
- " \n"
- "-static bool clk_ignore_unused;\n"
- "-static int __init clk_ignore_unused_setup(char *__unused)\n"
- "+static unsigned long clk_ignore_unused_count = 1;\n"
- "+\n"
- "+void clk_ignore_unused(void)\n"
- " {\n"
- "-\tclk_ignore_unused = true;\n"
- "-\treturn 1;\n"
- "+\tclk_prepare_lock();\n"
- "+\n"
- "+\tif (clk_ignore_unused_count == 0)\n"
- "+\t\tpr_warn(\"clk: unused clocks already disabled\\n\");\n"
- "+\telse\n"
- "+\t\tclk_ignore_unused_count++;\n"
- "+\n"
- "+\tclk_prepare_unlock();\n"
- " }\n"
- "-__setup(\"clk_ignore_unused\", clk_ignore_unused_setup);\n"
- " \n"
- "-static int clk_disable_unused(void)\n"
- "+void clk_unignore_unused(void)\n"
- " {\n"
- " \tstruct clk *clk;\n"
- " \n"
- "-\tif (clk_ignore_unused) {\n"
- "-\t\tpr_warn(\"clk: Not disabling unused clocks\\n\");\n"
- "-\t\treturn 0;\n"
- "-\t}\n"
- "-\n"
- " \tclk_prepare_lock();\n"
- " \n"
- "-\thlist_for_each_entry(clk, &clk_root_list, child_node)\n"
- "-\t\tclk_disable_unused_subtree(clk);\n"
- "+\tif (--clk_ignore_unused_count == 0) {\n"
- "+\t\thlist_for_each_entry(clk, &clk_root_list, child_node)\n"
- "+\t\t\tclk_disable_unused_subtree(clk);\n"
- " \n"
- "-\thlist_for_each_entry(clk, &clk_orphan_list, child_node)\n"
- "-\t\tclk_disable_unused_subtree(clk);\n"
- "+\t\thlist_for_each_entry(clk, &clk_orphan_list, child_node)\n"
- "+\t\t\tclk_disable_unused_subtree(clk);\n"
- " \n"
- "-\thlist_for_each_entry(clk, &clk_root_list, child_node)\n"
- "-\t\tclk_unprepare_unused_subtree(clk);\n"
- "+\t\thlist_for_each_entry(clk, &clk_root_list, child_node)\n"
- "+\t\t\tclk_unprepare_unused_subtree(clk);\n"
- " \n"
- "-\thlist_for_each_entry(clk, &clk_orphan_list, child_node)\n"
- "-\t\tclk_unprepare_unused_subtree(clk);\n"
- "+\t\thlist_for_each_entry(clk, &clk_orphan_list, child_node)\n"
- "+\t\t\tclk_unprepare_unused_subtree(clk);\n"
- "+\t}\n"
- " \n"
- " \tclk_prepare_unlock();\n"
- "+}\n"
- "+\n"
- "+static int __init clk_ignore_unused_setup(char *__unused)\n"
- "+{\n"
- "+\tclk_ignore_unused();\n"
- "+\treturn 1;\n"
- "+}\n"
- "+__setup(\"clk_ignore_unused\", clk_ignore_unused_setup);\n"
- "+\n"
- "+static int clk_disable_unused(void)\n"
- "+{\n"
- "+\tclk_unignore_unused();\n"
- "+\n"
- "+\tif (clk_ignore_unused_count > 0) {\n"
- "+\t\tpr_warn(\"clk: Not disabling unused clocks\\n\");\n"
- "+\t\treturn 0;\n"
- "+\t}\n"
- " \n"
- " \treturn 0;\n"
- " }\n"
- "diff --git a/include/linux/clk.h b/include/linux/clk.h\n"
- "index afb44bfaf8d1..b587f2b2f2f5 100644\n"
- "--- a/include/linux/clk.h\n"
- "+++ b/include/linux/clk.h\n"
- "@@ -106,6 +106,24 @@ int clk_notifier_unregister(struct clk *clk, struct notifier_block *nb);\n"
- "  */\n"
- " long clk_get_accuracy(struct clk *clk);\n"
- " \n"
- "+/**\n"
- "+ * clk_ignore_unused - request that unused clocks be kept running\n"
- "+ *\n"
- "+ * This function can be used by drivers to request that unused clocks are kept\n"
- "+ * running. It is useful for drivers that take over hardware previously set up\n"
- "+ * by firmware and which may not explicitly claim all clocks.\n"
- "+ */\n"
- "+void clk_ignore_unused(void);\n"
- "+\n"
- "+/**\n"
- "+ * clk_unignore_unused - release unused clocks\n"
- "+ *\n"
- "+ * Use this function to undo the effects of clk_ignore_unused(). It is meant\n"
- "+ * to be called by drivers for firmware devices after they've handed off the\n"
- "+ * device to a proper hardware-specific driver.\n"
- "+ */\n"
- "+void clk_unignore_unused(void);\n"
- "+\n"
- " #else\n"
- " \n"
- " static inline long clk_get_accuracy(struct clk *clk)\n"
- "@@ -113,6 +131,14 @@ static inline long clk_get_accuracy(struct clk *clk)\n"
- " \treturn -ENOTSUPP;\n"
- " }\n"
- " \n"
- "+static inline void clk_ignore_unused(void)\n"
- "+{\n"
- "+}\n"
- "+\n"
- "+static inline void clk_unignore_unused(void)\n"
- "+{\n"
- "+}\n"
- "+\n"
- " #endif\n"
- " \n"
- " /**\n"
- "-- \n"
- 2.1.0
- "\01:2\0"
- "b\0"
- "-----BEGIN PGP SIGNATURE-----\n"
- "Version: GnuPG v2\n"
- "\n"
- "iQIcBAEBAgAGBQJUKRMNAAoJEN0jrNd/PrOhrDEP/ix7wAtapGBHEjWW5C3ATpf9\n"
- "XSbm9y9VPZLqhZfU0nhiqPfT7yoQ0N1aWSho54QNgqCqg2tZPmR+t6P3WaK5Afap\n"
- "PzJdS6pDyZWNaO+wF8k8tVh+vmkQUUuWteBZjuxiVPfYJwvmh+ibz3Vzloo/hR9R\n"
- "+0HBQa7lok96PdWKAOgGzgnvzM07tjhD/MmvPPrukEKP+fCYhU716YkAepVFaH/S\n"
- "+nHBI4Z6g+SfcFUDCj9o5pSS8Mf68MPxPPUH8BcKf2Gy9hDoHjLmeOTjhE+u5y+f\n"
- "tPldsc8DW4hmuRF9L1aQBFSADB4ucHijcH7q5KarE73YleSqfxeCXGdxOnlbJ67V\n"
- "0bM0noPesaD2ZggldgJPHfTBgdYD3/wAzZI0Dt+yvE/VRoUJ5sDSlT6axkXArRwH\n"
- "2FBk53JLb+UnBudyxVYegH6rJnNQij00EQhxse1w/Ia9P/OQw7/XQUbfAknWoioR\n"
- "yEvBcc2RuNqdKDTquia+6OUhi09pRebbw/9LISe0LMV9TSAw/ruT7Rqo3YYpREBe\n"
- "M19FXLo3EyBbs6vxyxqIAImeQNGqpBw4VS5Xjlj79eA1Ik+u0ciHjvJwWAQpuFY9\n"
- "5jHdKHOapHMERRw8XYfUxwU6dmeOAb9z6U9/h2mMQE1s/NHFUTudOGvBiwr2ot9l\n"
- "WXc5igEjr5wz5byU4t9N\n"
- "=IhIv\n"
- "-----END PGP SIGNATURE-----\n"
+ "Thierry\n"
+ "-------------- next part --------------\n"
+ "A non-text attachment was scrubbed...\n"
+ "Name: 0001-clk-Allow-drivers-to-reference-unused-clocks.patch\n"
+ "Type: text/x-diff\n"
+ "Size: 5230 bytes\n"
+ "Desc: not available\n"
+ "URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20140929/c3794a2c/attachment-0001.bin>\n"
+ "-------------- next part --------------\n"
+ "A non-text attachment was scrubbed...\n"
+ "Name: not available\n"
+ "Type: application/pgp-signature\n"
+ "Size: 819 bytes\n"
+ "Desc: not available\n"
+ URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20140929/c3794a2c/attachment-0001.sig>
 
-19b21ae73fe7451c65e91f8b96e437e47c6d7c4b899a9663345186cdfc5b2d18
+76588d6ca230653b60380d26cda4613bb7a80c2fa5ee34b0579ab1b955f194d4

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.