diff for duplicates of <20151020124000.20687.60752@quantum> diff --git a/a/1.txt b/N1/1.txt index 2a0d2fa..794cf8d 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -2,8 +2,7 @@ Hi Geert, Quoting Geert Uytterhoeven (2015-09-30 08:38:46) > Hi Mike, -> = - +> > On Fri, Aug 7, 2015 at 9:09 PM, Michael Turquette > <mturquette@baylibre.com> wrote: > > From the clk_put kerneldoc in include/linux/clk.h: @@ -33,29 +32,23 @@ Quoting Geert Uytterhoeven (2015-09-30 08:38:46) > > +++ b/drivers/clk/clk.c > > @@ -2764,6 +2764,14 @@ void __clk_put(struct clk *clk) > > clk->max_rate < clk->core->req_rate) -> > clk_core_set_rate_nolock(clk->core, clk->core->req_rate= -); +> > clk_core_set_rate_nolock(clk->core, clk->core->req_rate); > > > > + /* -> > + * before calling clk_put, all calls to clk_prepare and clk_ena= -ble from +> > + * before calling clk_put, all calls to clk_prepare and clk_enable from > > + * a given user must be balanced with calls to clk_disable and > > + * clk_unprepare by that same user > > + */ > > + WARN_ON(clk->prepare_count); > > + WARN_ON(clk->enable_count); -> = - +> > These two WARN_ON()s are triggered a lot when using a legacy clock domain, -> and CONFIG_PM=3Dn. Indeed, without Runtime PM, the idea is that the modul= -e clocks +> and CONFIG_PM=n. Indeed, without Runtime PM, the idea is that the module clocks > get enabled unconditionally, which violates the assumptions above. -> = - -> Cfr. the CONFIG_PM=3Dn version of pm_clk_notify() in +> +> Cfr. the CONFIG_PM=n version of pm_clk_notify() in > drivers/base/power/clock_ops.c, which calls enable_clock(): -> = - +> > /** > * enable_clock - Enable a device clock. > * @dev: Device whose clock is to be enabled. @@ -64,9 +57,8 @@ e clocks > static void enable_clock(struct device *dev, const char *con_id) > { > struct clk *clk; -> = - -> clk =3D clk_get(dev, con_id); +> +> clk = clk_get(dev, con_id); > if (!IS_ERR(clk)) { > clk_prepare_enable(clk); > clk_put(clk); @@ -84,22 +76,18 @@ This is a violation of the clkdev api as defined in include/linux/clk.h: So the WARN is doing its job and letting us know about incorrect use of the API. -> dev_info(dev, "Runtime PM disabled, clock forced on.\= -n"); +> dev_info(dev, "Runtime PM disabled, clock forced on.\n"); > } > } -> = - +> > I think this affects shmobile, keystone, davinci, omap1, and legacy sh. Why not keep the reference to the struct clk after get'ing it the first time? -> = - -> Sorry for not noticing before, we usually build with CONFIG_PM=3Dy. -> One more reason for making CONFIG_PM=3Dy mandatory on SoCs with clock dom= -ains? +> +> Sorry for not noticing before, we usually build with CONFIG_PM=y. +> One more reason for making CONFIG_PM=y mandatory on SoCs with clock domains? I don't know about that, but it seems like a reason to fix the clkdev usage in the clock domain code. @@ -109,21 +97,14 @@ What do you think? Regards, Mike -> = - +> > Gr{oetje,eeting}s, -> = - +> > Geert -> = - +> > -- -> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m6= -8k.org -> = - -> In personal conversations with technical people, I call myself a hacker. = -But -> when I'm talking to journalists I just say "programmer" or something like= - that. +> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org +> +> In personal conversations with technical people, I call myself a hacker. But +> when I'm talking to journalists I just say "programmer" or something like that. > -- Linus Torvalds diff --git a/a/content_digest b/N1/content_digest index b638329..1458820 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -4,30 +4,28 @@ "From\0Michael Turquette <mturquette@baylibre.com>\0" "Subject\0Re: [PATCH RFC RFT 2/3] clk: clk_put WARNs if user has not disabled clk\0" "Date\0Tue, 20 Oct 2015 05:40:00 -0700\0" - "To\0Geert Uytterhoeven <geert@linux-m68k.org>" - "\0" - "Cc\0linux-kernel@vger.kernel.org <linux-kernel@vger.kernel.org>" - linux-clk <linux-clk@vger.kernel.org> - Stephen Boyd <sboyd@codeaurora.org> - Lee Jones <lee.jones@linaro.org> - Maxime Ripard <maxime.ripard@free-electrons.com> - Sascha Hauer <s.hauer@pengutronix.de> + "To\0Geert Uytterhoeven <geert@linux-m68k.org>\0" + "Cc\0Kevin Hilman <khilman@kernel.org>" + Tony Lindgren <tony@atomide.com> Sekhar Nori <nsekhar@ti.com> - Kevin Hilman <khilman@kernel.org> + Sascha Hauer <s.hauer@pengutronix.de> + Linux-sh list <linux-sh@vger.kernel.org> + Stephen Boyd <sboyd@codeaurora.org> + linux-kernel@vger.kernel.org <linux-kernel@vger.kernel.org> Santosh Shilimkar <ssantosh@kernel.org> - Tony Lindgren <tony@atomide.com> + Linux PM list <linux-pm@vger.kernel.org> + Maxime Ripard <maxime.ripard@free-electrons.com> linux-omap@vger.kernel.org <linux-omap@vger.kernel.org> - linux-arm-kernel@lists.infradead.org <linux-arm-kernel@lists.infradead.org> - Linux-sh list <linux-sh@vger.kernel.org> - " Linux PM list <linux-pm@vger.kernel.org>\0" + Lee Jones <lee.jones@linaro.org> + linux-clk <linux-clk@vger.kernel.org> + " linux-arm-kernel@lists.infradead.org <linux-arm-kernel@lists.infradead.org>\0" "\00:1\0" "b\0" "Hi Geert,\n" "\n" "Quoting Geert Uytterhoeven (2015-09-30 08:38:46)\n" "> Hi Mike,\n" - "> =\n" - "\n" + "> \n" "> On Fri, Aug 7, 2015 at 9:09 PM, Michael Turquette\n" "> <mturquette@baylibre.com> wrote:\n" "> > From the clk_put kerneldoc in include/linux/clk.h:\n" @@ -57,29 +55,23 @@ "> > +++ b/drivers/clk/clk.c\n" "> > @@ -2764,6 +2764,14 @@ void __clk_put(struct clk *clk)\n" "> > clk->max_rate < clk->core->req_rate)\n" - "> > clk_core_set_rate_nolock(clk->core, clk->core->req_rate=\n" - ");\n" + "> > clk_core_set_rate_nolock(clk->core, clk->core->req_rate);\n" "> >\n" "> > + /*\n" - "> > + * before calling clk_put, all calls to clk_prepare and clk_ena=\n" - "ble from\n" + "> > + * before calling clk_put, all calls to clk_prepare and clk_enable from\n" "> > + * a given user must be balanced with calls to clk_disable and\n" "> > + * clk_unprepare by that same user\n" "> > + */\n" "> > + WARN_ON(clk->prepare_count);\n" "> > + WARN_ON(clk->enable_count);\n" - "> =\n" - "\n" + "> \n" "> These two WARN_ON()s are triggered a lot when using a legacy clock domain,\n" - "> and CONFIG_PM=3Dn. Indeed, without Runtime PM, the idea is that the modul=\n" - "e clocks\n" + "> and CONFIG_PM=n. Indeed, without Runtime PM, the idea is that the module clocks\n" "> get enabled unconditionally, which violates the assumptions above.\n" - "> =\n" - "\n" - "> Cfr. the CONFIG_PM=3Dn version of pm_clk_notify() in\n" + "> \n" + "> Cfr. the CONFIG_PM=n version of pm_clk_notify() in\n" "> drivers/base/power/clock_ops.c, which calls enable_clock():\n" - "> =\n" - "\n" + "> \n" "> /**\n" "> * enable_clock - Enable a device clock.\n" "> * @dev: Device whose clock is to be enabled.\n" @@ -88,9 +80,8 @@ "> static void enable_clock(struct device *dev, const char *con_id)\n" "> {\n" "> struct clk *clk;\n" - "> =\n" - "\n" - "> clk =3D clk_get(dev, con_id);\n" + "> \n" + "> clk = clk_get(dev, con_id);\n" "> if (!IS_ERR(clk)) {\n" "> clk_prepare_enable(clk);\n" "> clk_put(clk);\n" @@ -108,22 +99,18 @@ "So the WARN is doing its job and letting us know about incorrect use of\n" "the API.\n" "\n" - "> dev_info(dev, \"Runtime PM disabled, clock forced on.\\=\n" - "n\");\n" + "> dev_info(dev, \"Runtime PM disabled, clock forced on.\\n\");\n" "> }\n" "> }\n" - "> =\n" - "\n" + "> \n" "> I think this affects shmobile, keystone, davinci, omap1, and legacy sh.\n" "\n" "Why not keep the reference to the struct clk after get'ing it the first\n" "time?\n" "\n" - "> =\n" - "\n" - "> Sorry for not noticing before, we usually build with CONFIG_PM=3Dy.\n" - "> One more reason for making CONFIG_PM=3Dy mandatory on SoCs with clock dom=\n" - "ains?\n" + "> \n" + "> Sorry for not noticing before, we usually build with CONFIG_PM=y.\n" + "> One more reason for making CONFIG_PM=y mandatory on SoCs with clock domains?\n" "\n" "I don't know about that, but it seems like a reason to fix the clkdev\n" "usage in the clock domain code.\n" @@ -133,23 +120,16 @@ "Regards,\n" "Mike\n" "\n" - "> =\n" - "\n" + "> \n" "> Gr{oetje,eeting}s,\n" - "> =\n" - "\n" + "> \n" "> Geert\n" - "> =\n" - "\n" + "> \n" "> --\n" - "> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m6=\n" - "8k.org\n" - "> =\n" - "\n" - "> In personal conversations with technical people, I call myself a hacker. =\n" - "But\n" - "> when I'm talking to journalists I just say \"programmer\" or something like=\n" - " that.\n" + "> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org\n" + "> \n" + "> In personal conversations with technical people, I call myself a hacker. But\n" + "> when I'm talking to journalists I just say \"programmer\" or something like that.\n" > -- Linus Torvalds -b260ced248fc4d7d687fde12c9949ab80a26de3367367f8dc924b9533de37ffd +b309975fbb59b981fc005ff67861f671e3a1f5e727fe3be58a5713265611d077
diff --git a/a/1.txt b/N2/1.txt index 2a0d2fa..e54f936 100644 --- a/a/1.txt +++ b/N2/1.txt @@ -2,8 +2,7 @@ Hi Geert, Quoting Geert Uytterhoeven (2015-09-30 08:38:46) > Hi Mike, -> = - +> > On Fri, Aug 7, 2015 at 9:09 PM, Michael Turquette > <mturquette@baylibre.com> wrote: > > From the clk_put kerneldoc in include/linux/clk.h: @@ -33,29 +32,23 @@ Quoting Geert Uytterhoeven (2015-09-30 08:38:46) > > +++ b/drivers/clk/clk.c > > @@ -2764,6 +2764,14 @@ void __clk_put(struct clk *clk) > > clk->max_rate < clk->core->req_rate) -> > clk_core_set_rate_nolock(clk->core, clk->core->req_rate= -); +> > clk_core_set_rate_nolock(clk->core, clk->core->req_rate); > > > > + /* -> > + * before calling clk_put, all calls to clk_prepare and clk_ena= -ble from +> > + * before calling clk_put, all calls to clk_prepare and clk_enable from > > + * a given user must be balanced with calls to clk_disable and > > + * clk_unprepare by that same user > > + */ > > + WARN_ON(clk->prepare_count); > > + WARN_ON(clk->enable_count); -> = - +> > These two WARN_ON()s are triggered a lot when using a legacy clock domain, -> and CONFIG_PM=3Dn. Indeed, without Runtime PM, the idea is that the modul= -e clocks +> and CONFIG_PM=n. Indeed, without Runtime PM, the idea is that the module clocks > get enabled unconditionally, which violates the assumptions above. -> = - -> Cfr. the CONFIG_PM=3Dn version of pm_clk_notify() in +> +> Cfr. the CONFIG_PM=n version of pm_clk_notify() in > drivers/base/power/clock_ops.c, which calls enable_clock(): -> = - +> > /** > * enable_clock - Enable a device clock. > * @dev: Device whose clock is to be enabled. @@ -64,9 +57,8 @@ e clocks > static void enable_clock(struct device *dev, const char *con_id) > { > struct clk *clk; -> = - -> clk =3D clk_get(dev, con_id); +> +> clk = clk_get(dev, con_id); > if (!IS_ERR(clk)) { > clk_prepare_enable(clk); > clk_put(clk); @@ -84,22 +76,18 @@ This is a violation of the clkdev api as defined in include/linux/clk.h: So the WARN is doing its job and letting us know about incorrect use of the API. -> dev_info(dev, "Runtime PM disabled, clock forced on.\= -n"); +> dev_info(dev, "Runtime PM disabled, clock forced on.\n"); > } > } -> = - +> > I think this affects shmobile, keystone, davinci, omap1, and legacy sh. Why not keep the reference to the struct clk after get'ing it the first time? -> = - -> Sorry for not noticing before, we usually build with CONFIG_PM=3Dy. -> One more reason for making CONFIG_PM=3Dy mandatory on SoCs with clock dom= -ains? +> +> Sorry for not noticing before, we usually build with CONFIG_PM=y. +> One more reason for making CONFIG_PM=y mandatory on SoCs with clock domains? I don't know about that, but it seems like a reason to fix the clkdev usage in the clock domain code. @@ -109,21 +97,14 @@ What do you think? Regards, Mike -> = - +> > Gr{oetje,eeting}s, -> = - +> > Geert -> = - +> > -- -> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m6= -8k.org -> = - -> In personal conversations with technical people, I call myself a hacker. = -But -> when I'm talking to journalists I just say "programmer" or something like= - that. +> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert at linux-m68k.org +> +> In personal conversations with technical people, I call myself a hacker. But +> when I'm talking to journalists I just say "programmer" or something like that. > -- Linus Torvalds diff --git a/a/content_digest b/N2/content_digest index b638329..6cbdf87 100644 --- a/a/content_digest +++ b/N2/content_digest @@ -1,33 +1,17 @@ "ref\01438974570-20812-1-git-send-email-mturquette@baylibre.com\0" "ref\01438974570-20812-3-git-send-email-mturquette@baylibre.com\0" "ref\0CAMuHMdX8Fq3AfxuZMLe4-CYFzrDiQcwnREQhX5fSGXzYNSkKsA@mail.gmail.com\0" - "From\0Michael Turquette <mturquette@baylibre.com>\0" - "Subject\0Re: [PATCH RFC RFT 2/3] clk: clk_put WARNs if user has not disabled clk\0" + "From\0mturquette@baylibre.com (Michael Turquette)\0" + "Subject\0[PATCH RFC RFT 2/3] clk: clk_put WARNs if user has not disabled clk\0" "Date\0Tue, 20 Oct 2015 05:40:00 -0700\0" - "To\0Geert Uytterhoeven <geert@linux-m68k.org>" - "\0" - "Cc\0linux-kernel@vger.kernel.org <linux-kernel@vger.kernel.org>" - linux-clk <linux-clk@vger.kernel.org> - Stephen Boyd <sboyd@codeaurora.org> - Lee Jones <lee.jones@linaro.org> - Maxime Ripard <maxime.ripard@free-electrons.com> - Sascha Hauer <s.hauer@pengutronix.de> - Sekhar Nori <nsekhar@ti.com> - Kevin Hilman <khilman@kernel.org> - Santosh Shilimkar <ssantosh@kernel.org> - Tony Lindgren <tony@atomide.com> - linux-omap@vger.kernel.org <linux-omap@vger.kernel.org> - linux-arm-kernel@lists.infradead.org <linux-arm-kernel@lists.infradead.org> - Linux-sh list <linux-sh@vger.kernel.org> - " Linux PM list <linux-pm@vger.kernel.org>\0" + "To\0linux-arm-kernel@lists.infradead.org\0" "\00:1\0" "b\0" "Hi Geert,\n" "\n" "Quoting Geert Uytterhoeven (2015-09-30 08:38:46)\n" "> Hi Mike,\n" - "> =\n" - "\n" + "> \n" "> On Fri, Aug 7, 2015 at 9:09 PM, Michael Turquette\n" "> <mturquette@baylibre.com> wrote:\n" "> > From the clk_put kerneldoc in include/linux/clk.h:\n" @@ -57,29 +41,23 @@ "> > +++ b/drivers/clk/clk.c\n" "> > @@ -2764,6 +2764,14 @@ void __clk_put(struct clk *clk)\n" "> > clk->max_rate < clk->core->req_rate)\n" - "> > clk_core_set_rate_nolock(clk->core, clk->core->req_rate=\n" - ");\n" + "> > clk_core_set_rate_nolock(clk->core, clk->core->req_rate);\n" "> >\n" "> > + /*\n" - "> > + * before calling clk_put, all calls to clk_prepare and clk_ena=\n" - "ble from\n" + "> > + * before calling clk_put, all calls to clk_prepare and clk_enable from\n" "> > + * a given user must be balanced with calls to clk_disable and\n" "> > + * clk_unprepare by that same user\n" "> > + */\n" "> > + WARN_ON(clk->prepare_count);\n" "> > + WARN_ON(clk->enable_count);\n" - "> =\n" - "\n" + "> \n" "> These two WARN_ON()s are triggered a lot when using a legacy clock domain,\n" - "> and CONFIG_PM=3Dn. Indeed, without Runtime PM, the idea is that the modul=\n" - "e clocks\n" + "> and CONFIG_PM=n. Indeed, without Runtime PM, the idea is that the module clocks\n" "> get enabled unconditionally, which violates the assumptions above.\n" - "> =\n" - "\n" - "> Cfr. the CONFIG_PM=3Dn version of pm_clk_notify() in\n" + "> \n" + "> Cfr. the CONFIG_PM=n version of pm_clk_notify() in\n" "> drivers/base/power/clock_ops.c, which calls enable_clock():\n" - "> =\n" - "\n" + "> \n" "> /**\n" "> * enable_clock - Enable a device clock.\n" "> * @dev: Device whose clock is to be enabled.\n" @@ -88,9 +66,8 @@ "> static void enable_clock(struct device *dev, const char *con_id)\n" "> {\n" "> struct clk *clk;\n" - "> =\n" - "\n" - "> clk =3D clk_get(dev, con_id);\n" + "> \n" + "> clk = clk_get(dev, con_id);\n" "> if (!IS_ERR(clk)) {\n" "> clk_prepare_enable(clk);\n" "> clk_put(clk);\n" @@ -108,22 +85,18 @@ "So the WARN is doing its job and letting us know about incorrect use of\n" "the API.\n" "\n" - "> dev_info(dev, \"Runtime PM disabled, clock forced on.\\=\n" - "n\");\n" + "> dev_info(dev, \"Runtime PM disabled, clock forced on.\\n\");\n" "> }\n" "> }\n" - "> =\n" - "\n" + "> \n" "> I think this affects shmobile, keystone, davinci, omap1, and legacy sh.\n" "\n" "Why not keep the reference to the struct clk after get'ing it the first\n" "time?\n" "\n" - "> =\n" - "\n" - "> Sorry for not noticing before, we usually build with CONFIG_PM=3Dy.\n" - "> One more reason for making CONFIG_PM=3Dy mandatory on SoCs with clock dom=\n" - "ains?\n" + "> \n" + "> Sorry for not noticing before, we usually build with CONFIG_PM=y.\n" + "> One more reason for making CONFIG_PM=y mandatory on SoCs with clock domains?\n" "\n" "I don't know about that, but it seems like a reason to fix the clkdev\n" "usage in the clock domain code.\n" @@ -133,23 +106,16 @@ "Regards,\n" "Mike\n" "\n" - "> =\n" - "\n" + "> \n" "> Gr{oetje,eeting}s,\n" - "> =\n" - "\n" + "> \n" "> Geert\n" - "> =\n" - "\n" + "> \n" "> --\n" - "> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m6=\n" - "8k.org\n" - "> =\n" - "\n" - "> In personal conversations with technical people, I call myself a hacker. =\n" - "But\n" - "> when I'm talking to journalists I just say \"programmer\" or something like=\n" - " that.\n" + "> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert at linux-m68k.org\n" + "> \n" + "> In personal conversations with technical people, I call myself a hacker. But\n" + "> when I'm talking to journalists I just say \"programmer\" or something like that.\n" > -- Linus Torvalds -b260ced248fc4d7d687fde12c9949ab80a26de3367367f8dc924b9533de37ffd +7ace80595a06b87a10bf69bc7f74721f7078647ac2f66f26a9c517af09b9b5b8
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.