On Thu, Jul 27, 2023 at 08:34:44AM +0000, Sahin, Okan wrote: > >On Tue, Jul 18, 2023 at 08:55:02AM -0700, Nathan Chancellor wrote: > > > ><snip> > > > >> > +static struct regulator_desc max77857_regulator_desc = { > >> > + .ops = &max77857_regulator_ops, > >> > + .name = "max77857", > >> > + .linear_ranges = max77857_lin_ranges, > >> > + .n_linear_ranges = ARRAY_SIZE(max77857_lin_ranges), > >> > + .vsel_mask = 0xFF, > >> > + .vsel_reg = MAX77857_REG_CONT2, > >> > + .ramp_delay_table = max77857_ramp_table[0], > >> > + .n_ramp_values = ARRAY_SIZE(max77857_ramp_table[0]), > >> > + .ramp_reg = MAX77857_REG_CONT3, > >> > + .ramp_mask = GENMASK(1, 0), > >> > + .ramp_delay = max77857_ramp_table[0][0], > >> > >> This breaks the build with GCC 5.x through 7.x: > >> > >> drivers/regulator/max77857-regulator.c:312:16: error: initializer element is not > >constant > >> .ramp_delay = max77857_ramp_table[0][0], > >> ^~~~~~~~~~~~~~~~~~~ > >> drivers/regulator/max77857-regulator.c:312:16: note: (near initialization for > >'max77857_regulator_desc.ramp_delay') > >> > >> and clang: > >> > >> drivers/regulator/max77857-regulator.c:312:16: error: initializer element is not a > >compile-time constant > >> 312 | .ramp_delay = max77857_ramp_table[0][0], > >> | ^~~~~~~~~~~~~~~~~~~~~~~~~ > >> 1 error generated. > >> > >> This relies on a GCC 8.x+ change that accepts more things as > >> compile-time constants, which is being worked on in clang > >> > >(https://urldefense.com/v3/__https://reviews.llvm.org/D76096__;!!A3Ni8CS0y2Y!7B > >eWxuzHgLzOprQA_madbvdR7hd0ZgmS73lUlDbgoxWUFWdDSIRXLnhyqLeRhu3uTaqpS > >kzZKwc5pHA$ ). Since the kernel supports older > >> compilers, this will have to be worked around somehow. Perhaps a define > >> that can be used in both places? > > > >Was there any update on this? I do not mind sending a patch for this > >myself if I have some sort of guidance on how you would prefer for this > >to be fixed, should you be too busy to look into it. > > > >Cheers, > >Nathan > > Hi Nathan, > > I thought that I should fix this issue after merging main branch that's why I did not send patch. That is an understandable position but no, this issue should be fixed before this change makes its way to Linus, not after. > I sent patch v3 so should I send new patch as v4? No, you should checkout Mark's branch that contains your patch and send a new patch on top of it just fixing this issue, like the other two patches that have already touched this driver: https://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator.git/log/?h=for-6.6 https://git.kernel.org/broonie/regulator/c/2920e08bef609c8b59f9996fd6852a7b97119d75 https://git.kernel.org/broonie/regulator/c/541e75954cadde0355ce7bebed5675625b2943a8 There are GCC 7.x and earlier toolchains at https://kernel.org/pub/tools/crosstool/ and LLVM toolchains at https://kernel.org/pub/tools/llvm/ should need to reproduce and verify the fix. Cheers, Nathan