Message ID | 20190425181447.60726-1-sboyd@kernel.org |
---|---|
State | Awaiting Upstream |
Headers | show |
Series | clk: Remove CLK_IS_BASIC clk flag | expand |
On Thu, Apr 25, 2019 at 11:14:47AM -0700, Stephen Boyd wrote: > This flag was historically used to indicate that a clk is a "basic" type > of clk like a mux, divider, gate, etc. This never turned out to be very > useful though because it was hard to cleanly split "basic" clks from > other clks in a system. This one flag was a way for type introspection > and it just didn't scale. If anything, it was used by the TI clk driver > to indicate that a clk_hw wasn't contained in the SoC specific clk > structure. We can get rid of this define now that TI is finding those > clks a different way. > > Cc: Tero Kristo <t-kristo@ti.com> > Cc: Ralf Baechle <ralf@linux-mips.org> > Cc: Paul Burton <paul.burton@mips.com> > Cc: James Hogan <jhogan@kernel.org> > Cc: <linux-mips@vger.kernel.org> > Cc: Thierry Reding <thierry.reding@gmail.com> > Cc: Kevin Hilman <khilman@baylibre.com> > Cc: <linux-pwm@vger.kernel.org> > Cc: <linux-amlogic@lists.infradead.org> > Signed-off-by: Stephen Boyd <sboyd@kernel.org> > --- > arch/mips/alchemy/common/clock.c | 2 +- > drivers/clk/clk-composite.c | 2 +- > drivers/clk/clk-divider.c | 2 +- > drivers/clk/clk-fixed-factor.c | 2 +- > drivers/clk/clk-fixed-rate.c | 2 +- > drivers/clk/clk-fractional-divider.c | 2 +- > drivers/clk/clk-gate.c | 2 +- > drivers/clk/clk-gpio.c | 2 +- > drivers/clk/clk-mux.c | 2 +- > drivers/clk/clk-pwm.c | 2 +- > drivers/clk/clk.c | 1 - > drivers/clk/mmp/clk-gate.c | 2 +- > drivers/pwm/pwm-meson.c | 2 +- > include/linux/clk-provider.h | 2 +- > 14 files changed, 13 insertions(+), 14 deletions(-) Acked-by: Thierry Reding <treding@nvidia.com>
On Thu, Apr 25, 2019 at 11:14:47AM -0700, Stephen Boyd wrote: [...] > base-commit: 9e98c678c2d6ae3a17cb2de55d17f69dddaa231b > prerequisite-patch-id: 6196ca807a15f9f4a67d5e6b8668b4f13442ac15 > prerequisite-patch-id: 9532946d1be40c2b20af0591ac4636a4cf3b14dd > prerequisite-patch-id: 4e4a9591f5a4ac0d5a72e694da8fdae8c8dda352 > prerequisite-patch-id: bcd75306e64ff866989a978127f6b16f7575d0d3 Just curious: what are these? I mean, I have a pretty good guess what these are, but how do you use them? Thierry
Quoting Thierry Reding (2019-04-26 08:26:26) > On Thu, Apr 25, 2019 at 11:14:47AM -0700, Stephen Boyd wrote: > [...] > > base-commit: 9e98c678c2d6ae3a17cb2de55d17f69dddaa231b > > prerequisite-patch-id: 6196ca807a15f9f4a67d5e6b8668b4f13442ac15 > > prerequisite-patch-id: 9532946d1be40c2b20af0591ac4636a4cf3b14dd > > prerequisite-patch-id: 4e4a9591f5a4ac0d5a72e694da8fdae8c8dda352 > > prerequisite-patch-id: bcd75306e64ff866989a978127f6b16f7575d0d3 > > Just curious: what are these? I mean, I have a pretty good guess what > these are, but how do you use them? > I'm generating patches with git format-patch --base=<commit>. This chain shows that the base commit is v5.1-rc1, i.e. 9e98c678c2d6 ("Linux 5.1-rc1") and then that there are four patches applied on top of that commit that have these patch ids. If you were to pass the patches from the mailing list through 'git patch-id' you would see these patch ids. Or if I had pushed the patches out to linux-next I suppose I could have generated with a --base argument pointing to the tip of a 'clk-ti' branch. For example, the first patch-id is essentially https://lkml.kernel.org/r/1554365467-1325-2-git-send-email-t-kristo@ti.com piped to 'git patch-id'. When I do that I get 6196ca807a15f9f4a67d5e6b8668b4f13442ac15 0000000000000000000000000000000000000000 and when I do that to the patch I've applied locally I get: $ git show b88b5b7182b0 | git patch-id 6196ca807a15f9f4a67d5e6b8668b4f13442ac15 b88b5b7182b07ebdc1ab692b4fc6a10abfff208d I think there may be a typo in the docs or a bug in git though, because when I pass that same patch to 'git patch-id --stable' it produces another patch-id. 4cf9f89ca61d8002df1494b48fac618c66f6220d 0000000000000000000000000000000000000000 Caption: Something is wrong... Either way, I'm not really using this so far but I figure it's useful if robots want to pick up on this and have a patch-id database for changes they've downloaded and tested from the list to figure out where to apply patches. I'd like to use it to do something similar so I can properly apply patches from the list onto the correct base commit and merge it all up. That's a little ways off though because I've yet to start working on a tool to do full on patch management via mailing lists. Also, I haven't seen anyone else using this git feature yet. Maybe I should add some hints in submitting-patches?
diff --git a/arch/mips/alchemy/common/clock.c b/arch/mips/alchemy/common/clock.c index d129475fd40d..a95a894aceaf 100644 --- a/arch/mips/alchemy/common/clock.c +++ b/arch/mips/alchemy/common/clock.c @@ -160,7 +160,7 @@ static struct clk __init *alchemy_clk_setup_cpu(const char *parent_name, id.name = ALCHEMY_CPU_CLK; id.parent_names = &parent_name; id.num_parents = 1; - id.flags = CLK_IS_BASIC; + id.flags = 0; id.ops = &alchemy_clkops_cpu; h->init = &id; diff --git a/drivers/clk/clk-composite.c b/drivers/clk/clk-composite.c index 46604214bba0..b06038b8f658 100644 --- a/drivers/clk/clk-composite.c +++ b/drivers/clk/clk-composite.c @@ -218,7 +218,7 @@ struct clk_hw *clk_hw_register_composite(struct device *dev, const char *name, return ERR_PTR(-ENOMEM); init.name = name; - init.flags = flags | CLK_IS_BASIC; + init.flags = flags; init.parent_names = parent_names; init.num_parents = num_parents; hw = &composite->hw; diff --git a/drivers/clk/clk-divider.c b/drivers/clk/clk-divider.c index e5a17265cfaf..568e10a33ea4 100644 --- a/drivers/clk/clk-divider.c +++ b/drivers/clk/clk-divider.c @@ -475,7 +475,7 @@ static struct clk_hw *_register_divider(struct device *dev, const char *name, init.ops = &clk_divider_ro_ops; else init.ops = &clk_divider_ops; - init.flags = flags | CLK_IS_BASIC; + init.flags = flags; init.parent_names = (parent_name ? &parent_name: NULL); init.num_parents = (parent_name ? 1 : 0); diff --git a/drivers/clk/clk-fixed-factor.c b/drivers/clk/clk-fixed-factor.c index 241b3f8c61a9..8aac2d1b6fea 100644 --- a/drivers/clk/clk-fixed-factor.c +++ b/drivers/clk/clk-fixed-factor.c @@ -84,7 +84,7 @@ struct clk_hw *clk_hw_register_fixed_factor(struct device *dev, init.name = name; init.ops = &clk_fixed_factor_ops; - init.flags = flags | CLK_IS_BASIC; + init.flags = flags; init.parent_names = &parent_name; init.num_parents = 1; diff --git a/drivers/clk/clk-fixed-rate.c b/drivers/clk/clk-fixed-rate.c index 00ef4f5e53fe..a7e4aef7a376 100644 --- a/drivers/clk/clk-fixed-rate.c +++ b/drivers/clk/clk-fixed-rate.c @@ -68,7 +68,7 @@ struct clk_hw *clk_hw_register_fixed_rate_with_accuracy(struct device *dev, init.name = name; init.ops = &clk_fixed_rate_ops; - init.flags = flags | CLK_IS_BASIC; + init.flags = flags; init.parent_names = (parent_name ? &parent_name: NULL); init.num_parents = (parent_name ? 1 : 0); diff --git a/drivers/clk/clk-fractional-divider.c b/drivers/clk/clk-fractional-divider.c index fdfe2e423d15..aa45dd257fe3 100644 --- a/drivers/clk/clk-fractional-divider.c +++ b/drivers/clk/clk-fractional-divider.c @@ -151,7 +151,7 @@ struct clk_hw *clk_hw_register_fractional_divider(struct device *dev, init.name = name; init.ops = &clk_fractional_divider_ops; - init.flags = flags | CLK_IS_BASIC; + init.flags = flags; init.parent_names = parent_name ? &parent_name : NULL; init.num_parents = parent_name ? 1 : 0; diff --git a/drivers/clk/clk-gate.c b/drivers/clk/clk-gate.c index f05823cd9b21..f58a58d5d80a 100644 --- a/drivers/clk/clk-gate.c +++ b/drivers/clk/clk-gate.c @@ -142,7 +142,7 @@ struct clk_hw *clk_hw_register_gate(struct device *dev, const char *name, init.name = name; init.ops = &clk_gate_ops; - init.flags = flags | CLK_IS_BASIC; + init.flags = flags; init.parent_names = parent_name ? &parent_name : NULL; init.num_parents = parent_name ? 1 : 0; diff --git a/drivers/clk/clk-gpio.c b/drivers/clk/clk-gpio.c index c2f07f0d077c..9d930edd6516 100644 --- a/drivers/clk/clk-gpio.c +++ b/drivers/clk/clk-gpio.c @@ -137,7 +137,7 @@ static struct clk_hw *clk_register_gpio(struct device *dev, const char *name, init.name = name; init.ops = clk_gpio_ops; - init.flags = flags | CLK_IS_BASIC; + init.flags = flags; init.parent_names = parent_names; init.num_parents = num_parents; diff --git a/drivers/clk/clk-mux.c b/drivers/clk/clk-mux.c index 2ad2df2e8909..7d60d690b7f2 100644 --- a/drivers/clk/clk-mux.c +++ b/drivers/clk/clk-mux.c @@ -159,7 +159,7 @@ struct clk_hw *clk_hw_register_mux_table(struct device *dev, const char *name, init.ops = &clk_mux_ro_ops; else init.ops = &clk_mux_ops; - init.flags = flags | CLK_IS_BASIC; + init.flags = flags; init.parent_names = parent_names; init.num_parents = num_parents; diff --git a/drivers/clk/clk-pwm.c b/drivers/clk/clk-pwm.c index 8cb9d117fdbf..02b472a1f9b0 100644 --- a/drivers/clk/clk-pwm.c +++ b/drivers/clk/clk-pwm.c @@ -101,7 +101,7 @@ static int clk_pwm_probe(struct platform_device *pdev) init.name = clk_name; init.ops = &clk_pwm_ops; - init.flags = CLK_IS_BASIC; + init.flags = 0; init.num_parents = 0; clk_pwm->pwm = pwm; diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c index 96053a96fe2f..7279573eefd5 100644 --- a/drivers/clk/clk.c +++ b/drivers/clk/clk.c @@ -2850,7 +2850,6 @@ static const struct { ENTRY(CLK_SET_PARENT_GATE), ENTRY(CLK_SET_RATE_PARENT), ENTRY(CLK_IGNORE_UNUSED), - ENTRY(CLK_IS_BASIC), ENTRY(CLK_GET_RATE_NOCACHE), ENTRY(CLK_SET_RATE_NO_REPARENT), ENTRY(CLK_GET_ACCURACY_NOCACHE), diff --git a/drivers/clk/mmp/clk-gate.c b/drivers/clk/mmp/clk-gate.c index 7355595c42e2..1755916ddef2 100644 --- a/drivers/clk/mmp/clk-gate.c +++ b/drivers/clk/mmp/clk-gate.c @@ -108,7 +108,7 @@ struct clk *mmp_clk_register_gate(struct device *dev, const char *name, init.name = name; init.ops = &mmp_clk_gate_ops; - init.flags = flags | CLK_IS_BASIC; + init.flags = flags; init.parent_names = (parent_name ? &parent_name : NULL); init.num_parents = (parent_name ? 1 : 0); diff --git a/drivers/pwm/pwm-meson.c b/drivers/pwm/pwm-meson.c index c1ed641b3e26..4ae5d774443e 100644 --- a/drivers/pwm/pwm-meson.c +++ b/drivers/pwm/pwm-meson.c @@ -470,7 +470,7 @@ static int meson_pwm_init_channels(struct meson_pwm *meson, init.name = name; init.ops = &clk_mux_ops; - init.flags = CLK_IS_BASIC; + init.flags = 0; init.parent_names = meson->data->parent_names; init.num_parents = meson->data->num_parents; diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h index b7cf80a71293..9245a377295b 100644 --- a/include/linux/clk-provider.h +++ b/include/linux/clk-provider.h @@ -24,7 +24,7 @@ #define CLK_SET_RATE_PARENT BIT(2) /* propagate rate change up one level */ #define CLK_IGNORE_UNUSED BIT(3) /* do not gate even if unused */ /* unused */ -#define CLK_IS_BASIC BIT(5) /* Basic clk, can't do a to_clk_foo() */ + /* unused */ #define CLK_GET_RATE_NOCACHE BIT(6) /* do not use the cached clk rate */ #define CLK_SET_RATE_NO_REPARENT BIT(7) /* don't re-parent on rate change */ #define CLK_GET_ACCURACY_NOCACHE BIT(8) /* do not use the cached clk accuracy */
This flag was historically used to indicate that a clk is a "basic" type of clk like a mux, divider, gate, etc. This never turned out to be very useful though because it was hard to cleanly split "basic" clks from other clks in a system. This one flag was a way for type introspection and it just didn't scale. If anything, it was used by the TI clk driver to indicate that a clk_hw wasn't contained in the SoC specific clk structure. We can get rid of this define now that TI is finding those clks a different way. Cc: Tero Kristo <t-kristo@ti.com> Cc: Ralf Baechle <ralf@linux-mips.org> Cc: Paul Burton <paul.burton@mips.com> Cc: James Hogan <jhogan@kernel.org> Cc: <linux-mips@vger.kernel.org> Cc: Thierry Reding <thierry.reding@gmail.com> Cc: Kevin Hilman <khilman@baylibre.com> Cc: <linux-pwm@vger.kernel.org> Cc: <linux-amlogic@lists.infradead.org> Signed-off-by: Stephen Boyd <sboyd@kernel.org> --- arch/mips/alchemy/common/clock.c | 2 +- drivers/clk/clk-composite.c | 2 +- drivers/clk/clk-divider.c | 2 +- drivers/clk/clk-fixed-factor.c | 2 +- drivers/clk/clk-fixed-rate.c | 2 +- drivers/clk/clk-fractional-divider.c | 2 +- drivers/clk/clk-gate.c | 2 +- drivers/clk/clk-gpio.c | 2 +- drivers/clk/clk-mux.c | 2 +- drivers/clk/clk-pwm.c | 2 +- drivers/clk/clk.c | 1 - drivers/clk/mmp/clk-gate.c | 2 +- drivers/pwm/pwm-meson.c | 2 +- include/linux/clk-provider.h | 2 +- 14 files changed, 13 insertions(+), 14 deletions(-) base-commit: 9e98c678c2d6ae3a17cb2de55d17f69dddaa231b prerequisite-patch-id: 6196ca807a15f9f4a67d5e6b8668b4f13442ac15 prerequisite-patch-id: 9532946d1be40c2b20af0591ac4636a4cf3b14dd prerequisite-patch-id: 4e4a9591f5a4ac0d5a72e694da8fdae8c8dda352 prerequisite-patch-id: bcd75306e64ff866989a978127f6b16f7575d0d3