Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d172e7f5 authored by David Woodhouse's avatar David Woodhouse Committed by David Woodhouse
Browse files

firmware: Add CONFIG_FIRMWARE_IN_KERNEL option.



This will control whether we build firmware into the kernel image for
_every_ driver which we convert to request_firmware(), to avoid a
proliferation of 'CONFIG_XXX_FIRMWARE' options for each one.

Default to 'y' for now, which is the wrong thing to do but people seem
to be insisting on it and refusing to even review patches until it's
done. And it does preserve the existing behaviour for built-in drivers.

Signed-off-by: default avatarDavid Woodhouse <dwmw2@infradead.org>
parent 4d2acfbf
Loading
Loading
Loading
Loading
+25 −0
Original line number Diff line number Diff line
@@ -34,6 +34,31 @@ config FW_LOADER
	  require userspace firmware loading support, but a module built outside
	  the kernel tree does.

config FIRMWARE_IN_KERNEL
	bool "Include in-kernel firmware blobs in kernel binary"
	depends on FW_LOADER
	default y
	help
	  The kernel source tree includes a number of firmware 'blobs'
	  which are used by various drivers. The recommended way to
	  use these is to run "make firmware_install" and to copy the
	  resulting binary files created in usr/lib/firmware directory
	  of the kernel tree to the /lib/firmware on your system so
	  that they can be loaded by userspace helpers on request.

	  Enabling this option will build each required firmware blob
	  into the kernel directly, where request_firmware() will find
	  them without having to call out to userspace. This may be
	  useful if your root file system requires a device which uses
	  such firmware, and do not wish to use an initrd.

	  This single option controls the inclusion of firmware for
	  every driver which usees request_firmare() and ships its
	  firmware in the kernel source tree, to avoid a proliferation
	  of 'Include firmware for xxx device' options.

	  Say 'N' and let firmware be loaded from userspace.

config EXTRA_FIRMWARE
	string "External firmware blobs to build into the kernel binary"
	depends on FW_LOADER
+5 −0
Original line number Diff line number Diff line
@@ -9,6 +9,11 @@ fwabs := $(addprefix $(srctree)/,$(filter-out /%,$(fwdir)))$(filter /%,$(fwdir))

fw-external-y := $(subst ",,$(CONFIG_EXTRA_FIRMWARE))

# If CONFIG_FIRMWARE_IN_KERNEL is not set, then don't include any firmware
ifneq ($(CONFIG_FIRMWARE_IN_KERNEL),y)
fw-shipped-y :=
endif

firmware-y    := $(fw-external-y) $(fw-shipped-y)
firmware-dirs := $(sort $(patsubst %,$(objtree)/$(obj)/%/,$(dir $(firmware-y) $(fw-shipped-))))