diff options
author | David Woodhouse <dwmw2@infradead.org> | 2008-06-25 08:56:07 -0400 |
---|---|---|
committer | David Woodhouse <David.Woodhouse@intel.com> | 2008-07-10 09:47:20 -0400 |
commit | d172e7f5c67f2d41f453c7aa83d3bdb405ef8ba5 (patch) | |
tree | 43d926fd28d710d75a9364430af24ca243b0b122 | |
parent | 4d2acfbfdf68257e846aaa355edd10fc35ba0feb (diff) |
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: David Woodhouse <dwmw2@infradead.org>
-rw-r--r-- | drivers/base/Kconfig | 25 | ||||
-rw-r--r-- | firmware/Makefile | 5 |
2 files changed, 30 insertions, 0 deletions
diff --git a/drivers/base/Kconfig b/drivers/base/Kconfig index 13cfcb435f7d..d47482fa1d21 100644 --- a/drivers/base/Kconfig +++ b/drivers/base/Kconfig | |||
@@ -34,6 +34,31 @@ config FW_LOADER | |||
34 | require userspace firmware loading support, but a module built outside | 34 | require userspace firmware loading support, but a module built outside |
35 | the kernel tree does. | 35 | the kernel tree does. |
36 | 36 | ||
37 | config FIRMWARE_IN_KERNEL | ||
38 | bool "Include in-kernel firmware blobs in kernel binary" | ||
39 | depends on FW_LOADER | ||
40 | default y | ||
41 | help | ||
42 | The kernel source tree includes a number of firmware 'blobs' | ||
43 | which are used by various drivers. The recommended way to | ||
44 | use these is to run "make firmware_install" and to copy the | ||
45 | resulting binary files created in usr/lib/firmware directory | ||
46 | of the kernel tree to the /lib/firmware on your system so | ||
47 | that they can be loaded by userspace helpers on request. | ||
48 | |||
49 | Enabling this option will build each required firmware blob | ||
50 | into the kernel directly, where request_firmware() will find | ||
51 | them without having to call out to userspace. This may be | ||
52 | useful if your root file system requires a device which uses | ||
53 | such firmware, and do not wish to use an initrd. | ||
54 | |||
55 | This single option controls the inclusion of firmware for | ||
56 | every driver which usees request_firmare() and ships its | ||
57 | firmware in the kernel source tree, to avoid a proliferation | ||
58 | of 'Include firmware for xxx device' options. | ||
59 | |||
60 | Say 'N' and let firmware be loaded from userspace. | ||
61 | |||
37 | config EXTRA_FIRMWARE | 62 | config EXTRA_FIRMWARE |
38 | string "External firmware blobs to build into the kernel binary" | 63 | string "External firmware blobs to build into the kernel binary" |
39 | depends on FW_LOADER | 64 | depends on FW_LOADER |
diff --git a/firmware/Makefile b/firmware/Makefile index e69461f9362b..cc25f5600d5d 100644 --- a/firmware/Makefile +++ b/firmware/Makefile | |||
@@ -9,6 +9,11 @@ fwabs := $(addprefix $(srctree)/,$(filter-out /%,$(fwdir)))$(filter /%,$(fwdir)) | |||
9 | 9 | ||
10 | fw-external-y := $(subst ",,$(CONFIG_EXTRA_FIRMWARE)) | 10 | fw-external-y := $(subst ",,$(CONFIG_EXTRA_FIRMWARE)) |
11 | 11 | ||
12 | # If CONFIG_FIRMWARE_IN_KERNEL is not set, then don't include any firmware | ||
13 | ifneq ($(CONFIG_FIRMWARE_IN_KERNEL),y) | ||
14 | fw-shipped-y := | ||
15 | endif | ||
16 | |||
12 | firmware-y := $(fw-external-y) $(fw-shipped-y) | 17 | firmware-y := $(fw-external-y) $(fw-shipped-y) |
13 | firmware-dirs := $(sort $(patsubst %,$(objtree)/$(obj)/%/,$(dir $(firmware-y) $(fw-shipped-)))) | 18 | firmware-dirs := $(sort $(patsubst %,$(objtree)/$(obj)/%/,$(dir $(firmware-y) $(fw-shipped-)))) |
14 | 19 | ||