[PATCH 2/2] modules/firmware: add a new option to denote a firmware group to choose one.
Randy Dunlap
rdunlap at infradead.org
Thu Jun 22 21:12:32 UTC 2023
On 4/25/23 21:29, Dave Airlie wrote:
> From: Dave Airlie <airlied at redhat.com>
>
> 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 at kernel.org>
> Cc: linux-modules at vger.kernel.org
> Cc: dri-devel at lists.freedesktop.org
> Signed-off-by: Dave Airlie <airlied at redhat.com>
> ---
> 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 at infradead.org> # for the kernel-doc
Is this going anywhere? It was posted about 2 months ago.
thanks.
--
~Randy
More information about the dri-devel
mailing list