[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <5ce736bd.1c69fb81.f2410.2b19@mx.google.com>
Date: Thu, 23 May 2019 17:11:40 -0700
From: Stephen Boyd <swboyd@...omium.org>
To: Fabiano Rosas <farosas@...ux.ibm.com>,
Leonard Crestez <leonard.crestez@....com>
Cc: "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
Jan Kiszka <jan.kiszka@...mens.com>,
Kieran Bingham <kbingham@...nel.org>,
Andrew Morton <akpm@...ux-foundation.org>,
Jackie Liu <liuyun01@...inos.cn>
Subject: Re: [PATCH] scripts/gdb: Fix invocation when CONFIG_COMMON_CLK is not set
Quoting Leonard Crestez (2019-05-23 16:09:18)
> On 5/24/2019 1:46 AM, Stephen Boyd wrote:
> > Quoting Fabiano Rosas (2019-05-23 12:53:11)
> >> diff --git a/scripts/gdb/linux/constants.py.in b/scripts/gdb/linux/constants.py.in
> >> index 1d73083da6cb..2efbec6b6b8d 100644
> >> --- a/scripts/gdb/linux/constants.py.in
> >> +++ b/scripts/gdb/linux/constants.py.in
> >> @@ -40,7 +40,8 @@
> >> import gdb
> >>
> >> /* linux/clk-provider.h */
> >> -LX_GDBPARSED(CLK_GET_RATE_NOCACHE)
> >> +if IS_BUILTIN(CONFIG_COMMON_CLK):
> >> + LX_GDBPARSED(CLK_GET_RATE_NOCACHE)
> >>
> >
> > Why is this LX_GDBPARSED() instead of LX_VALUE()? From what I can tell
> > it doesn't need to be runtime evaluated, just assigned to something that
> > is macro expanded by CPP.
>
> Because CLK_GET_RATE_NOCACHE expands to BIT() which expands to a
> constant with an UL suffix which python doesn't understand.
>
> Alternatively we could redefine the BIT macros inside constants.py.in
> but using gdb features seemed better. We could even try to strip integer
> literal suffixes with sed.
>
> Mentioned before: https://lkml.org/lkml/2019/5/3/341
>
Ah ok. A comment in the code would have helped me, but o well.
I'd still like to apply this change to clk tree so that we can avoid
needing to do the IS_BUILTIN check entirely.
----8<----
From: Stephen Boyd <sboyd@...nel.org>
Date: Thu, 23 May 2019 17:05:59 -0700
Subject: [PATCH] clk: Remove ifdef for COMMON_CLK in clk-provider.h
This ifdef has been there since the beginning of this file, but it
doesn't really seem to serve any purpose besides obfuscating the struct
definitions and #defines here from compilation units that include it.
Let's always expose these function prototypes and struct definitions so
that code can inspect clk providers without needing to have
CONFIG_COMMON_CLK enabled.
Signed-off-by: Stephen Boyd <sboyd@...nel.org>
---
include/linux/clk-provider.h | 3 ---
1 file changed, 3 deletions(-)
diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h
index bb6118f79784..3bced2ec9f26 100644
--- a/include/linux/clk-provider.h
+++ b/include/linux/clk-provider.h
@@ -9,8 +9,6 @@
#include <linux/of.h>
#include <linux/of_clk.h>
-#ifdef CONFIG_COMMON_CLK
-
/*
* flags used across common struct clk. these flags should only affect the
* top-level framework. custom flags for dealing with hardware specifics
@@ -1019,5 +1017,4 @@ static inline int of_clk_detect_critical(struct device_node *np, int index,
void clk_gate_restore_context(struct clk_hw *hw);
-#endif /* CONFIG_COMMON_CLK */
#endif /* CLK_PROVIDER_H */
--
Sent by a computer through tubes
Powered by blists - more mailing lists