On 4/25/23 21:29, Dave Airlie wrote: > From: Dave Airlie <airlied@xxxxxxxxxx> > > This adds a tag that will go into the module info, only one firmware from > the group given needs to be available for this driver to work. This allows > dracut to avoid adding in firmware that aren't needed. > > This just brackets a module list in the modinfo, the modules in the list > will get entries in reversed order so the last module in the list is the > preferred one. > > The corresponding dracut code it at: > https://github.com/dracutdevs/dracut/pull/2309 > > Cc: Luis Chamberlain <mcgrof@xxxxxxxxxx> > Cc: linux-modules@xxxxxxxxxxxxxxx > Cc: dri-devel@xxxxxxxxxxxxxxxxxxxxx > Signed-off-by: Dave Airlie <airlied@xxxxxxxxxx> > --- > include/linux/module.h | 22 ++++++++++++++++++++++ > 1 file changed, 22 insertions(+) > > diff --git a/include/linux/module.h b/include/linux/module.h > index f9d072a7e198..d3e7085cedd0 100644 > --- a/include/linux/module.h > +++ b/include/linux/module.h > @@ -306,6 +306,28 @@ extern typeof(name) __mod_##type##__##name##_device_table \ > */ > #define MODULE_FIRMWARE(_firmware) MODULE_INFO(firmware, _firmware) > > +/** > + * MODULE_FIRMWARE_GROUP_ONLY_ONE - Create a need only one firmware group need-only-one > + * @_grpname: group name > + * > + * This creates a group of which the driver only needs one firmware installed. > + * This is to allow dracut to limit the number of firmwares in the initramfs. > + * This just creates a new entry in the modinfo section, there should be one section; > + * of these entries bracketing the group of MODULE_INFO lines. > + * Due to how modinfo is constructed the ordering of the modinfo means the > + * last module info in the group will end up being the first one dracut will > + * search for, so place the newest firmware last. > + * > + * ``MODULE_FIRMWARE_GROUP_ONLY_ONE("mygroup")`` > + * > + * ``MODULE_FIRMWARE("firmwarev1")`` > + * > + * ``MODULE_FIRMWARE("firmwarev2")`` > + * > + * ``MODULE_FIRMWARE_GROUP_ONLY_ONE("mygroup")`` > + */ > +#define MODULE_FIRMWARE_GROUP_ONLY_ONE(_grpname) MODULE_INFO(firmware_group_only_one, _grpname) > + > /** > * MODULE_IMPORT_NS - Set the symbol namespace for the module. > * @ns: symbol namespace to import the module into. Tested-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx> # for the kernel-doc Is this going anywhere? It was posted about 2 months ago. thanks. -- ~Randy