On 27-05-20, 18:56, Dilip Kota wrote: > FIELD_PREP expects constant arguments. Istead of doing FIELD_PREP > operation on the arguments of combo_phy_w32_off_mask(), pass the > final FIELD_PREP value as an argument. > > Error reported as: > In file included from include/linux/build_bug.h:5, > from include/linux/bitfield.h:10, > from drivers/phy/intel/phy-intel-combo.c:8: > drivers/phy/intel/phy-intel-combo.c: In function 'combo_phy_w32_off_mask': > include/linux/bitfield.h:52:28: warning: comparison is always false due to > limited range of data type [-Wtype-limits] > > include/linux/compiler.h:350:38: error: call to '__compiletime_assert_37' > declared with attribute error: FIELD_PREP: mask is not constant > 94 | __BF_FIELD_CHECK(_mask, 0ULL, _val, "FIELD_PREP: "); | > ^~~~~~~~~~~~~~~~ > drivers/phy/intel/phy-intel-combo.c:137:13: note: in expansion of macro > 'FIELD_PREP' > 137 | reg_val |= FIELD_PREP(mask, val); > | ^~~~~~~~~~ > > ../include/linux/compiler.h:392:38: error: call to__compiletime_assert_137 > declared with attribute error: > BUILD_BUG_ON failed: (((mask) + (1ULL << (__builtin_ffsll(mask) - 1))) & > (((mask) + (1ULL << (__builtin_ffsll(mask) - 1))) - 1)) != 0 > _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) > > ../include/linux/bitfield.h:94:3: note: in expansion of macro __BF_FIELD_CHECK > __BF_FIELD_CHECK(_mask, 0ULL, _val, "FIELD_PREP: "); \ > ^~~~~~~~~~~~~~~~ > ../drivers/phy/intel/phy-intel-combo.c:137:13: note: in expansion of macro > FIELD_PREP > reg_val |= FIELD_PREP(mask, val);
Applied, thanks -- ~Vinod