On Sat, May 23, 2020 at 08:05:48AM +0200, Greg Kroah-Hartman wrote: > On Fri, May 22, 2020 at 11:00:25PM +0000, Luis Chamberlain wrote: > > On Fri, May 22, 2020 at 03:49:05PM -0700, Scott Branden wrote: > > > Hi Luis, > > > > > > On 2020-05-22 3:45 p.m., Luis Chamberlain wrote: > > > > On Fri, May 22, 2020 at 02:46:58PM -0700, Scott Branden wrote: > > > > > /** > > > > > - * enum fw_opt - options to control firmware loading behaviour > > > > > + * fw_opt - options to control firmware loading behaviour > > > > > * > > > > > * @FW_OPT_UEVENT: Enables the fallback mechanism to send a kobject uevent > > > > > * when the firmware is not found. Userspace is in charge to load the > > > > > @@ -33,15 +33,13 @@ > > > > > * the platform's main firmware. If both this fallback and the sysfs > > > > > * fallback are enabled, then this fallback will be tried first. > > > > > */ > > > > > -enum fw_opt { > > > > > - FW_OPT_UEVENT = BIT(0), > > > > > - FW_OPT_NOWAIT = BIT(1), > > > > > - FW_OPT_USERHELPER = BIT(2), > > > > > - FW_OPT_NO_WARN = BIT(3), > > > > > - FW_OPT_NOCACHE = BIT(4), > > > > > - FW_OPT_NOFALLBACK_SYSFS = BIT(5), > > > > > - FW_OPT_FALLBACK_PLATFORM = BIT(6), > > > > > -}; > > > > > +#define FW_OPT_UEVENT BIT(0) > > > > > +#define FW_OPT_NOWAIT BIT(1) > > > > > +#define FW_OPT_USERHELPER BIT(2) > > > > > +#define FW_OPT_NO_WARN BIT(3) > > > > > +#define FW_OPT_NOCACHE BIT(4) > > > > > +#define FW_OPT_NOFALLBACK_SYSFS BIT(5) > > > > > +#define FW_OPT_FALLBACK_PLATFORM BIT(6) > > > > Everything looked good up to here. The enum defines each flag. > > > > We just want to use an enum for *one* flag represetnation, not > > > > a bundle. > > > > > > I do not know exactly what you are looking for then. The FW_OPT_* > > > values are OR'd together in the code. You still want the fw_opt enum > > > above left in place entirely and then the values used in OR'd > > > together? > > > > Yes, exactly. If they are combined then we just use a u32 to represent > > these are then flags combined. An enum represents just *one* flag, not > > a set which are OR'd together. Let me know if this is still not clear. > > If this is the case, why have an enum at all? What difference is it > from a #define like was done here? If used on a switch to test for cases the compiler will error if you miss one, and it is easier to use kdoc for them. Luis