Message ID | 20201115170950.304460-1-krzk@kernel.org |
---|---|
Headers | show |
Series | clk/sunxi/media: Fix builds with COMMON_CLK and HAVE_LEGACY_CLK | expand |
Quoting Krzysztof Kozlowski (2020-11-15 09:09:48) > COMMON_CLK even though is a user-selectable symbol, is still selected by > multiple other config options. COMMON_CLK should not be used when > legacy clocks are provided by architecture, so it correctly depends on > !HAVE_LEGACY_CLK. > > However it is possible to create a config which selects both COMMON_CLK > (by SND_SUN8I_CODEC) and HAVE_LEGACY_CLK (by SOC_RT305X) which leads to Why is SND_SUN8I_CODEC selecting COMMON_CLK? Or really, why is SOC_RT305X selecting HAVE_LEGACY_CLK?
On Tue, Nov 17, 2020 at 11:41:57PM -0800, Stephen Boyd wrote: > Quoting Krzysztof Kozlowski (2020-11-15 09:09:48) > > COMMON_CLK even though is a user-selectable symbol, is still selected by > > multiple other config options. COMMON_CLK should not be used when > > legacy clocks are provided by architecture, so it correctly depends on > > !HAVE_LEGACY_CLK. > > > > However it is possible to create a config which selects both COMMON_CLK > > (by SND_SUN8I_CODEC) and HAVE_LEGACY_CLK (by SOC_RT305X) which leads to > > Why is SND_SUN8I_CODEC selecting COMMON_CLK? Or really, why is > SOC_RT305X selecting HAVE_LEGACY_CLK? The SND_SUN8I_CODEC I fixed in following patch (I sent separately v2 of it). The SOC_RT305X select HAVE_LEGACY_CLK? because it is an old, Ralink platform, not converted to Common clock frm. Few clock operations are defined in: arch/mips/ralink/clk.c Best regards, Krzysztof
Quoting Krzysztof Kozlowski (2020-11-17 23:48:12) > On Tue, Nov 17, 2020 at 11:41:57PM -0800, Stephen Boyd wrote: > > Quoting Krzysztof Kozlowski (2020-11-15 09:09:48) > > > COMMON_CLK even though is a user-selectable symbol, is still selected by > > > multiple other config options. COMMON_CLK should not be used when > > > legacy clocks are provided by architecture, so it correctly depends on > > > !HAVE_LEGACY_CLK. > > > > > > However it is possible to create a config which selects both COMMON_CLK > > > (by SND_SUN8I_CODEC) and HAVE_LEGACY_CLK (by SOC_RT305X) which leads to > > > > Why is SND_SUN8I_CODEC selecting COMMON_CLK? Or really, why is > > SOC_RT305X selecting HAVE_LEGACY_CLK? > > The SND_SUN8I_CODEC I fixed in following patch (I sent separately v2 of > it). > > The SOC_RT305X select HAVE_LEGACY_CLK? because it is an old, Ralink > platform, not converted to Common clock frm. Few clock operations are > defined in: arch/mips/ralink/clk.c > Ok so this patch isn't necessary then? It seems OK to select HAVE_LEGACY_CLK but not to select COMMON_CLK unless it's architecture code that can't be enabled when the other architecture code is selecting HAVE_LEGACY_CLK.
Quoting Krzysztof Kozlowski (2020-11-15 09:09:50) > COMMON_CLK is a user-selectable option with its own dependencies. The > most important dependency is !HAVE_LEGACY_CLK. User-selectable drivers > should not select COMMON_CLK because they will create a dependency cycle > and build failures. > > Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org> This is fallout from making the COMMON_CLK symbol selectable in commit bbd7ffdbef68 ("clk: Allow the common clk framework to be selectable"). Before then we needed drivers to select the COMMON_CLK config so that the framework was enabled. Now that isn't necessary and any user-selectable options should be moved to depends syntax. Reviewed-by: Stephen Boyd <sboyd@kernel.org>
On Tue, Nov 24, 2020 at 04:11:31PM -0800, Stephen Boyd wrote: > Quoting Krzysztof Kozlowski (2020-11-17 23:48:12) > > On Tue, Nov 17, 2020 at 11:41:57PM -0800, Stephen Boyd wrote: > > > Quoting Krzysztof Kozlowski (2020-11-15 09:09:48) > > > > COMMON_CLK even though is a user-selectable symbol, is still selected by > > > > multiple other config options. COMMON_CLK should not be used when > > > > legacy clocks are provided by architecture, so it correctly depends on > > > > !HAVE_LEGACY_CLK. > > > > > > > > However it is possible to create a config which selects both COMMON_CLK > > > > (by SND_SUN8I_CODEC) and HAVE_LEGACY_CLK (by SOC_RT305X) which leads to > > > > > > Why is SND_SUN8I_CODEC selecting COMMON_CLK? Or really, why is > > > SOC_RT305X selecting HAVE_LEGACY_CLK? > > > > The SND_SUN8I_CODEC I fixed in following patch (I sent separately v2 of > > it). > > > > The SOC_RT305X select HAVE_LEGACY_CLK? because it is an old, Ralink > > platform, not converted to Common clock frm. Few clock operations are > > defined in: arch/mips/ralink/clk.c > > > > Ok so this patch isn't necessary then? For this particular build failure - it is not necessary anymore. However there might more of such errors - just not discovered yet. Also, the clock bulk API has such ifdefs so it kind of symmetrical and consistent approach. > It seems OK to select > HAVE_LEGACY_CLK but not to select COMMON_CLK unless it's architecture > code that can't be enabled when the other architecture code is selecting > HAVE_LEGACY_CLK. Best regards, Krzysztof
Quoting Krzysztof Kozlowski (2020-11-25 06:15:05) > On Tue, Nov 24, 2020 at 04:11:31PM -0800, Stephen Boyd wrote: > > > > Ok so this patch isn't necessary then? > > For this particular build failure - it is not necessary anymore. > > However there might more of such errors - just not discovered yet. Also, > the clock bulk API has such ifdefs so it kind of symmetrical and > consistent approach. > Ok. Patches always welcome.