From: Alex Elder <elder@riscstar.com>
To: Yixun Lan <dlan@gentoo.org>
Cc: Haylen Chu <heylenay@4d2.org>,
llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
Inochi Amaoto <inochiama@outlook.com>
Subject: Re: [spacemit:for-next 4/6] drivers/clk/spacemit/ccu-k1.c:241:1: error: initializer element is not a compile-time constant
Date: Tue, 15 Apr 2025 11:03:12 -0500 [thread overview]
Message-ID: <9b52f950-9baf-4293-b211-82891b6f349e@riscstar.com> (raw)
In-Reply-To: <20250415143137-GYB30887@gentoo>
On 4/15/25 9:31 AM, Yixun Lan wrote:
> Hi Alex,
>
> On 09:16 Tue 15 Apr , Alex Elder wrote:
>> On 4/15/25 8:44 AM, kernel test robot wrote:
>>> tree: https://github.com/spacemit-com/linux for-next
>>> head: 9ead3efbc88a21e9a1f38948cc0902518022a2e5
>>> commit: e2d238ba301f25a5c8a7d490a36f9cd014d7aecc [4/6] clk: spacemit: Add clock support for SpacemiT K1 SoC
>>> config: s390-allmodconfig (https://download.01.org/0day-ci/archive/20250415/202504152107.7ekGPIrF-lkp@intel.com/config)
>>> compiler: clang version 18.1.8 (https://github.com/llvm/llvm-project 3b5b5c1ec4a3095ab096dd780e84d7ab81f3d7ff)
>>> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250415/202504152107.7ekGPIrF-lkp@intel.com/reproduce)
>>>
>>> If you fix the issue in a separate patch/commit (i.e. not just a new version of
>>> the same patch/commit), kindly add following tags
>>> | Reported-by: kernel test robot <lkp@intel.com>
>>> | Closes: https://lore.kernel.org/oe-kbuild-all/202504152107.7ekGPIrF-lkp@intel.com/
>>>
>>> All errors (new ones prefixed by >>):
>>
>> If I'm interpreting this right, this seems to be a problem on
>> a S390 build (under COMPILE_TEST), because there is no constant
>> version of the __ffs() for that architecture. This might be the
>> case on other architectures as well.
>>
>> On RISC-V, this is fine.
>>
>> Any recommendations on how to address this?
>>
> it occur to me the __ffs() isn't really necessary, since all input
> is constant value (GENMASK here), we then should know the shift..
I asked Haylen to make this change. Yes, we know the
shift, but I much prefer specifying only a constant mask
(which implies both the shift and the width) rather than
a constant mask and shift (or width and shift).
If there's no way to avoid this S390 compile error, then
adding the separate (and redundant) shift value back
into all these definitions is a solution.
-Alex
>
>>
>>
>>>
>>>>> drivers/clk/spacemit/ccu-k1.c:241:1: error: initializer element is not a compile-time constant
>>> 241 | CCU_DDN_DEFINE(slow_uart1_14p74, pll1_d16_153p6, MPMU_SUCCR, GENMASK(28, 16), GENMASK(12, 0), 0);
>>> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>> drivers/clk/spacemit/ccu_ddn.h:33:15: note: expanded from macro 'CCU_DDN_DEFINE'
>>> 33 | .num_shift = __ffs(_num_mask), \
>>> | ^~~~~~~~~~~~~~~~
>>> drivers/clk/spacemit/ccu-k1.c:242:1: error: initializer element is not a compile-time constant
>>> 242 | CCU_DDN_DEFINE(slow_uart2_48, pll1_d4_614p4, MPMU_SUCCR_1, GENMASK(28, 16), GENMASK(12, 0), 0);
>>> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>> drivers/clk/spacemit/ccu_ddn.h:33:15: note: expanded from macro 'CCU_DDN_DEFINE'
>>> 33 | .num_shift = __ffs(_num_mask), \
>>> | ^~~~~~~~~~~~~~~~
>>> 2 errors generated.
>>>
>>>
>>> vim +241 drivers/clk/spacemit/ccu-k1.c
>>>
>>> 239
>>> 240 CCU_GATE_DEFINE(slow_uart, CCU_PARENT_NAME(osc), MPMU_ACGR, BIT(1), CLK_IGNORE_UNUSED);
>>> > 241 CCU_DDN_DEFINE(slow_uart1_14p74, pll1_d16_153p6, MPMU_SUCCR, GENMASK(28, 16), GENMASK(12, 0), 0);
>>> 242 CCU_DDN_DEFINE(slow_uart2_48, pll1_d4_614p4, MPMU_SUCCR_1, GENMASK(28, 16), GENMASK(12, 0), 0);
>>> 243
>>>
>>
>
next prev parent reply other threads:[~2025-04-15 16:03 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-15 13:44 [spacemit:for-next 4/6] drivers/clk/spacemit/ccu-k1.c:241:1: error: initializer element is not a compile-time constant kernel test robot
2025-04-15 14:16 ` Alex Elder
2025-04-15 14:31 ` Yixun Lan
2025-04-15 14:56 ` Haylen Chu
2025-04-15 15:16 ` Yixun Lan
2025-04-15 16:03 ` Alex Elder [this message]
2025-04-16 12:11 ` Haylen Chu
2025-04-16 12:20 ` Alex Elder
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=9b52f950-9baf-4293-b211-82891b6f349e@riscstar.com \
--to=elder@riscstar.com \
--cc=dlan@gentoo.org \
--cc=heylenay@4d2.org \
--cc=inochiama@outlook.com \
--cc=llvm@lists.linux.dev \
--cc=oe-kbuild-all@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox