On Tue, Feb 11, 2025 at 7:40 AM Zijun Hu <zijun_hu@xxxxxxxxxx> wrote: > > On 2025/2/11 20:24, Andy Shevchenko wrote: > >>>> -#define NR_FWNODE_REFERENCE_ARGS 8 > >>>> +#define NR_FWNODE_REFERENCE_ARGS 16 > >>> Thinking of the case, perhaps you also want > >>> > >>> static_assert(NR_FWNODE_REFERENCE_ARGS == MAX_PHANDLE_ARGS); > >>> > >>> to be put somewhere, but I don't think we can do it in this header file. > >> thank you Andy for code review. > >> > >> yes. it seems there are good location to place the static_assert(). > >> > >> is it okay to associate two macros by > >> #define MAX_PHANDLE_ARGS NR_FWNODE_REFERENCE_ARGS > > I was thinking about this and I don't see how it can be done without > > introducing more chaos (dependency hell) into the headers. So, I won't > > take this path or even consider it deeper. > > > > i have confirmed that: > > of.h includes fwnode.h indirectly > fwnode.h does not include of.h directly or indirectly Only for struct fwnode_handle. I don't think we want to add to that. For the most part, fwnode is a layer above DT and the DT code should know nothing about fwnode. > in theory, dependency between both headers should also be like this. > > So, it is simple to use below define in of.h > #define MAX_PHANDLE_ARGS NR_FWNODE_REFERENCE_ARGS > > >> OR > >> replace all MAX_PHANDLE_ARGS instances with NR_FWNODE_REFERENCE_ARGS > >> ? > > This sounds plausible to me, but you need a blessing from OF people as > > the naming may be a bit confusing (for them) as "phandle" is well established > > term in OF realm. > > phandle is a type of DT firmware node reference. so this solution > seems suitable as well. > > struct software_node_ref_args also uses NR_FWNODE_REFERENCE_ARGS directly. > > let us wait for more comments. I prefer what you have here with the static_assert() added. Rob