diff for duplicates of <149574323517.52617.4260102317848146827@resonance>
diff --git a/a/1.txt b/N1/1.txt
index 477773d..f92e8dc 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -2,12 +2,10 @@ Quoting Jerome Brunet (2017-05-21 14:59:50)
> Rework the way the callbacks round_rate and determine_rate are called. The
> goal is to do this at a single point and make it easier to add conditions
> before calling them.
-> =
-
+>
> This rework is done to ease the integration of "protected" clock
> functionality.
-> =
-
+>
> Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Looks good to me. I wonder if we should rename __clk_determine_rate to
@@ -18,11 +16,9 @@ Regards,
Mike
> ---
-> drivers/clk/clk.c | 78 +++++++++++++++++++++++++++++++------------------=
-------
+> drivers/clk/clk.c | 78 +++++++++++++++++++++++++++++++------------------------
> 1 file changed, 44 insertions(+), 34 deletions(-)
-> =
-
+>
> diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c
> index 6031fada37f9..100f72472e10 100644
> --- a/drivers/clk/clk.c
@@ -30,8 +26,7 @@ Mike
> @@ -833,16 +833,34 @@ static int clk_disable_unused(void)
> }
> late_initcall_sync(clk_disable_unused);
-> =
-
+>
> -static int clk_core_round_rate_nolock(struct clk_core *core,
> - struct clk_rate_request *req)
> +static int clk_core_determine_round(struct clk_core *core,
@@ -39,21 +34,19 @@ Mike
> {
> - struct clk_core *parent;
> long rate;
-> =
-
+>
> - lockdep_assert_held(&prepare_lock);
> + if (core->ops->determine_rate) {
> + return core->ops->determine_rate(core->hw, req);
> + } else if (core->ops->round_rate) {
-> + rate =3D core->ops->round_rate(core->hw, req->rate,
+> + rate = core->ops->round_rate(core->hw, req->rate,
> + &req->best_parent_rate);
> + if (rate < 0)
> + return rate;
-> =
-
+>
> - if (!core)
> - return 0;
-> + req->rate =3D rate;
+> + req->rate = rate;
> + } else {
> + return -EINVAL;
> + }
@@ -68,22 +61,19 @@ Mike
> +
> + if (WARN_ON(!core || !req))
> + return;
-> =
-
-> parent =3D core->parent;
+>
+> parent = core->parent;
> if (parent) {
-> @@ -852,22 +870,24 @@ static int clk_core_round_rate_nolock(struct clk_co=
-re *core,
-> req->best_parent_hw =3D NULL;
-> req->best_parent_rate =3D 0;
+> @@ -852,22 +870,24 @@ static int clk_core_round_rate_nolock(struct clk_core *core,
+> req->best_parent_hw = NULL;
+> req->best_parent_rate = 0;
> }
> +}
-> =
-
+>
> - if (core->ops->determine_rate) {
> - return core->ops->determine_rate(core->hw, req);
> - } else if (core->ops->round_rate) {
-> - rate =3D core->ops->round_rate(core->hw, req->rate,
+> - rate = core->ops->round_rate(core->hw, req->rate,
> - &req->best_parent_rate);
> - if (rate < 0)
> - return rate;
@@ -91,13 +81,12 @@ re *core,
> + struct clk_rate_request *req)
> +{
> + lockdep_assert_held(&prepare_lock);
-> =
-
-> - req->rate =3D rate;
+>
+> - req->rate = rate;
> - } else if (core->flags & CLK_SET_RATE_PARENT) {
> - return clk_core_round_rate_nolock(parent, req);
> - } else {
-> - req->rate =3D core->rate;
+> - req->rate = core->rate;
> - }
> + if (!core)
> + return 0;
@@ -108,63 +97,53 @@ re *core,
> + return clk_core_determine_round(core, req);
> + else if (core->flags & CLK_SET_RATE_PARENT)
> + return clk_core_round_rate_nolock(core->parent, req);
-> =
-
-> + req->rate =3D core->rate;
+>
+> + req->rate = core->rate;
> return 0;
> }
-> =
-
-> @@ -1356,36 +1376,26 @@ static struct clk_core *clk_calc_new_rates(struct=
- clk_core *core,
+>
+> @@ -1356,36 +1376,26 @@ static struct clk_core *clk_calc_new_rates(struct clk_core *core,
> clk_core_get_boundaries(core, &min_rate, &max_rate);
-> =
-
+>
> /* find the closest rate and parent clk/rate */
> - if (core->ops->determine_rate) {
> + if (core->ops->determine_rate || core->ops->round_rate) {
> struct clk_rate_request req;
-> =
-
-> req.rate =3D rate;
-> req.min_rate =3D min_rate;
-> req.max_rate =3D max_rate;
+>
+> req.rate = rate;
+> req.min_rate = min_rate;
+> req.max_rate = max_rate;
> - if (parent) {
-> - req.best_parent_hw =3D parent->hw;
-> - req.best_parent_rate =3D parent->rate;
+> - req.best_parent_hw = parent->hw;
+> - req.best_parent_rate = parent->rate;
> - } else {
-> - req.best_parent_hw =3D NULL;
-> - req.best_parent_rate =3D 0;
+> - req.best_parent_hw = NULL;
+> - req.best_parent_rate = 0;
> - }
-> =
-
-> - ret =3D core->ops->determine_rate(core->hw, &req);
+>
+> - ret = core->ops->determine_rate(core->hw, &req);
> + clk_core_init_rate_req(core, &req);
> +
-> + ret =3D clk_core_determine_round(core, &req);
+> + ret = clk_core_determine_round(core, &req);
> if (ret < 0)
> return NULL;
-> =
-
-> best_parent_rate =3D req.best_parent_rate;
-> new_rate =3D req.rate;
-> parent =3D req.best_parent_hw ? req.best_parent_hw->core =
-: NULL;
+>
+> best_parent_rate = req.best_parent_rate;
+> new_rate = req.rate;
+> parent = req.best_parent_hw ? req.best_parent_hw->core : NULL;
> - } else if (core->ops->round_rate) {
-> - ret =3D core->ops->round_rate(core->hw, rate,
+> - ret = core->ops->round_rate(core->hw, rate,
> - &best_parent_rate);
> - if (ret < 0)
> - return NULL;
-> =
-
-> - new_rate =3D ret;
+>
+> - new_rate = ret;
> if (new_rate < min_rate || new_rate > max_rate)
> return NULL;
> +
> } else if (!parent || !(core->flags & CLK_SET_RATE_PARENT)) {
> /* pass-through clock without adjustable parent */
-> core->new_rate =3D core->rate;
-> -- =
-
+> core->new_rate = core->rate;
+> --
> 2.9.4
->=20
\ No newline at end of file
+>
\ No newline at end of file
diff --git a/a/content_digest b/N1/content_digest
index d084094..5ff9623 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -5,25 +5,16 @@
"ref\00020170521215958.19743-4-jbrunet\@baylibre.com\0"
]
[
- "From\0Michael Turquette <mturquette\@baylibre.com>\0"
+ "From\0mturquette\@baylibre.com (Michael Turquette)\0"
]
[
- "Subject\0Re: [PATCH v2 03/11] clk: rework calls to round and determine rate callbacks\0"
+ "Subject\0[PATCH v2 03/11] clk: rework calls to round and determine rate callbacks\0"
]
[
"Date\0Thu, 25 May 2017 13:13:55 -0700\0"
]
[
- "To\0Jerome Brunet <jbrunet\@baylibre.com>",
- " Stephen Boyd <sboyd\@codeaurora.org>",
- " Kevin Hilman <khilman\@baylibre.com>\0"
-]
-[
- "Cc\0Jerome Brunet <jbrunet\@baylibre.com>",
- " linux-clk\@vger.kernel.org",
- " linux-amlogic\@lists.infradead.org",
- " Linus Walleij <linus.walleij\@linaro.org>",
- " Boris Brezillon <boris.brezillon\@free-electrons.com>\0"
+ "To\0linus-amlogic\@lists.infradead.org\0"
]
[
"\0000:1\0"
@@ -36,12 +27,10 @@
"> Rework the way the callbacks round_rate and determine_rate are called. The\n",
"> goal is to do this at a single point and make it easier to add conditions\n",
"> before calling them.\n",
- "> =\n",
- "\n",
+ "> \n",
"> This rework is done to ease the integration of \"protected\" clock\n",
"> functionality.\n",
- "> =\n",
- "\n",
+ "> \n",
"> Signed-off-by: Jerome Brunet <jbrunet\@baylibre.com>\n",
"\n",
"Looks good to me. I wonder if we should rename __clk_determine_rate to\n",
@@ -52,11 +41,9 @@
"Mike\n",
"\n",
"> ---\n",
- "> drivers/clk/clk.c | 78 +++++++++++++++++++++++++++++++------------------=\n",
- "------\n",
+ "> drivers/clk/clk.c | 78 +++++++++++++++++++++++++++++++------------------------\n",
"> 1 file changed, 44 insertions(+), 34 deletions(-)\n",
- "> =\n",
- "\n",
+ "> \n",
"> diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c\n",
"> index 6031fada37f9..100f72472e10 100644\n",
"> --- a/drivers/clk/clk.c\n",
@@ -64,8 +51,7 @@
"> \@\@ -833,16 +833,34 \@\@ static int clk_disable_unused(void)\n",
"> }\n",
"> late_initcall_sync(clk_disable_unused);\n",
- "> =\n",
- "\n",
+ "> \n",
"> -static int clk_core_round_rate_nolock(struct clk_core *core,\n",
"> - struct clk_rate_request *req)\n",
"> +static int clk_core_determine_round(struct clk_core *core,\n",
@@ -73,21 +59,19 @@
"> {\n",
"> - struct clk_core *parent;\n",
"> long rate;\n",
- "> =\n",
- "\n",
+ "> \n",
"> - lockdep_assert_held(&prepare_lock);\n",
"> + if (core->ops->determine_rate) {\n",
"> + return core->ops->determine_rate(core->hw, req);\n",
"> + } else if (core->ops->round_rate) {\n",
- "> + rate =3D core->ops->round_rate(core->hw, req->rate,\n",
+ "> + rate = core->ops->round_rate(core->hw, req->rate,\n",
"> + &req->best_parent_rate);\n",
"> + if (rate < 0)\n",
"> + return rate;\n",
- "> =\n",
- "\n",
+ "> \n",
"> - if (!core)\n",
"> - return 0;\n",
- "> + req->rate =3D rate;\n",
+ "> + req->rate = rate;\n",
"> + } else {\n",
"> + return -EINVAL;\n",
"> + }\n",
@@ -102,22 +86,19 @@
"> +\n",
"> + if (WARN_ON(!core || !req))\n",
"> + return;\n",
- "> =\n",
- "\n",
- "> parent =3D core->parent;\n",
+ "> \n",
+ "> parent = core->parent;\n",
"> if (parent) {\n",
- "> \@\@ -852,22 +870,24 \@\@ static int clk_core_round_rate_nolock(struct clk_co=\n",
- "re *core,\n",
- "> req->best_parent_hw =3D NULL;\n",
- "> req->best_parent_rate =3D 0;\n",
+ "> \@\@ -852,22 +870,24 \@\@ static int clk_core_round_rate_nolock(struct clk_core *core,\n",
+ "> req->best_parent_hw = NULL;\n",
+ "> req->best_parent_rate = 0;\n",
"> }\n",
"> +}\n",
- "> =\n",
- "\n",
+ "> \n",
"> - if (core->ops->determine_rate) {\n",
"> - return core->ops->determine_rate(core->hw, req);\n",
"> - } else if (core->ops->round_rate) {\n",
- "> - rate =3D core->ops->round_rate(core->hw, req->rate,\n",
+ "> - rate = core->ops->round_rate(core->hw, req->rate,\n",
"> - &req->best_parent_rate);\n",
"> - if (rate < 0)\n",
"> - return rate;\n",
@@ -125,13 +106,12 @@
"> + struct clk_rate_request *req)\n",
"> +{\n",
"> + lockdep_assert_held(&prepare_lock);\n",
- "> =\n",
- "\n",
- "> - req->rate =3D rate;\n",
+ "> \n",
+ "> - req->rate = rate;\n",
"> - } else if (core->flags & CLK_SET_RATE_PARENT) {\n",
"> - return clk_core_round_rate_nolock(parent, req);\n",
"> - } else {\n",
- "> - req->rate =3D core->rate;\n",
+ "> - req->rate = core->rate;\n",
"> - }\n",
"> + if (!core)\n",
"> + return 0;\n",
@@ -142,66 +122,56 @@
"> + return clk_core_determine_round(core, req);\n",
"> + else if (core->flags & CLK_SET_RATE_PARENT)\n",
"> + return clk_core_round_rate_nolock(core->parent, req);\n",
- "> =\n",
- "\n",
- "> + req->rate =3D core->rate;\n",
+ "> \n",
+ "> + req->rate = core->rate;\n",
"> return 0;\n",
"> }\n",
- "> =\n",
- "\n",
- "> \@\@ -1356,36 +1376,26 \@\@ static struct clk_core *clk_calc_new_rates(struct=\n",
- " clk_core *core,\n",
+ "> \n",
+ "> \@\@ -1356,36 +1376,26 \@\@ static struct clk_core *clk_calc_new_rates(struct clk_core *core,\n",
"> clk_core_get_boundaries(core, &min_rate, &max_rate);\n",
- "> =\n",
- "\n",
+ "> \n",
"> /* find the closest rate and parent clk/rate */\n",
"> - if (core->ops->determine_rate) {\n",
"> + if (core->ops->determine_rate || core->ops->round_rate) {\n",
"> struct clk_rate_request req;\n",
- "> =\n",
- "\n",
- "> req.rate =3D rate;\n",
- "> req.min_rate =3D min_rate;\n",
- "> req.max_rate =3D max_rate;\n",
+ "> \n",
+ "> req.rate = rate;\n",
+ "> req.min_rate = min_rate;\n",
+ "> req.max_rate = max_rate;\n",
"> - if (parent) {\n",
- "> - req.best_parent_hw =3D parent->hw;\n",
- "> - req.best_parent_rate =3D parent->rate;\n",
+ "> - req.best_parent_hw = parent->hw;\n",
+ "> - req.best_parent_rate = parent->rate;\n",
"> - } else {\n",
- "> - req.best_parent_hw =3D NULL;\n",
- "> - req.best_parent_rate =3D 0;\n",
+ "> - req.best_parent_hw = NULL;\n",
+ "> - req.best_parent_rate = 0;\n",
"> - }\n",
- "> =\n",
- "\n",
- "> - ret =3D core->ops->determine_rate(core->hw, &req);\n",
+ "> \n",
+ "> - ret = core->ops->determine_rate(core->hw, &req);\n",
"> + clk_core_init_rate_req(core, &req);\n",
"> +\n",
- "> + ret =3D clk_core_determine_round(core, &req);\n",
+ "> + ret = clk_core_determine_round(core, &req);\n",
"> if (ret < 0)\n",
"> return NULL;\n",
- "> =\n",
- "\n",
- "> best_parent_rate =3D req.best_parent_rate;\n",
- "> new_rate =3D req.rate;\n",
- "> parent =3D req.best_parent_hw ? req.best_parent_hw->core =\n",
- ": NULL;\n",
+ "> \n",
+ "> best_parent_rate = req.best_parent_rate;\n",
+ "> new_rate = req.rate;\n",
+ "> parent = req.best_parent_hw ? req.best_parent_hw->core : NULL;\n",
"> - } else if (core->ops->round_rate) {\n",
- "> - ret =3D core->ops->round_rate(core->hw, rate,\n",
+ "> - ret = core->ops->round_rate(core->hw, rate,\n",
"> - &best_parent_rate);\n",
"> - if (ret < 0)\n",
"> - return NULL;\n",
- "> =\n",
- "\n",
- "> - new_rate =3D ret;\n",
+ "> \n",
+ "> - new_rate = ret;\n",
"> if (new_rate < min_rate || new_rate > max_rate)\n",
"> return NULL;\n",
"> +\n",
"> } else if (!parent || !(core->flags & CLK_SET_RATE_PARENT)) {\n",
"> /* pass-through clock without adjustable parent */\n",
- "> core->new_rate =3D core->rate;\n",
- "> -- =\n",
- "\n",
+ "> core->new_rate = core->rate;\n",
+ "> -- \n",
"> 2.9.4\n",
- ">=20"
+ ">"
]
-5f421c13c720ec895a27cc6f3c4f7fd0b8a6e13c4477952a17a8895024d45bd0
+4aeaeeff2ba2e7bd3564643c0fccde4c60a9165087d7eced41e66505075f4120
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.