diff options
Diffstat (limited to 'drivers/base/firmware_loader/firmware.h')
-rw-r--r-- | drivers/base/firmware_loader/firmware.h | 37 |
1 files changed, 29 insertions, 8 deletions
diff --git a/drivers/base/firmware_loader/firmware.h b/drivers/base/firmware_loader/firmware.h index 64acbb1a392c..4c1395f8e7ed 100644 --- a/drivers/base/firmware_loader/firmware.h +++ b/drivers/base/firmware_loader/firmware.h | |||
@@ -2,6 +2,7 @@ | |||
2 | #ifndef __FIRMWARE_LOADER_H | 2 | #ifndef __FIRMWARE_LOADER_H |
3 | #define __FIRMWARE_LOADER_H | 3 | #define __FIRMWARE_LOADER_H |
4 | 4 | ||
5 | #include <linux/bitops.h> | ||
5 | #include <linux/firmware.h> | 6 | #include <linux/firmware.h> |
6 | #include <linux/types.h> | 7 | #include <linux/types.h> |
7 | #include <linux/kref.h> | 8 | #include <linux/kref.h> |
@@ -10,13 +11,33 @@ | |||
10 | 11 | ||
11 | #include <generated/utsrelease.h> | 12 | #include <generated/utsrelease.h> |
12 | 13 | ||
13 | /* firmware behavior options */ | 14 | /** |
14 | #define FW_OPT_UEVENT (1U << 0) | 15 | * enum fw_opt - options to control firmware loading behaviour |
15 | #define FW_OPT_NOWAIT (1U << 1) | 16 | * |
16 | #define FW_OPT_USERHELPER (1U << 2) | 17 | * @FW_OPT_UEVENT: Enables the fallback mechanism to send a kobject uevent |
17 | #define FW_OPT_NO_WARN (1U << 3) | 18 | * when the firmware is not found. Userspace is in charge to load the |
18 | #define FW_OPT_NOCACHE (1U << 4) | 19 | * firmware using the sysfs loading facility. |
19 | #define FW_OPT_NOFALLBACK (1U << 5) | 20 | * @FW_OPT_NOWAIT: Used to describe the firmware request is asynchronous. |
21 | * @FW_OPT_USERHELPER: Enable the fallback mechanism, in case the direct | ||
22 | * filesystem lookup fails at finding the firmware. For details refer to | ||
23 | * firmware_fallback_sysfs(). | ||
24 | * @FW_OPT_NO_WARN: Quiet, avoid printing warning messages. | ||
25 | * @FW_OPT_NOCACHE: Disables firmware caching. Firmware caching is used to | ||
26 | * cache the firmware upon suspend, so that upon resume races against the | ||
27 | * firmware file lookup on storage is avoided. Used for calls where the | ||
28 | * file may be too big, or where the driver takes charge of its own | ||
29 | * firmware caching mechanism. | ||
30 | * @FW_OPT_NOFALLBACK: Disable the fallback mechanism. Takes precedence over | ||
31 | * &FW_OPT_UEVENT and &FW_OPT_USERHELPER. | ||
32 | */ | ||
33 | enum fw_opt { | ||
34 | FW_OPT_UEVENT = BIT(0), | ||
35 | FW_OPT_NOWAIT = BIT(1), | ||
36 | FW_OPT_USERHELPER = BIT(2), | ||
37 | FW_OPT_NO_WARN = BIT(3), | ||
38 | FW_OPT_NOCACHE = BIT(4), | ||
39 | FW_OPT_NOFALLBACK = BIT(5), | ||
40 | }; | ||
20 | 41 | ||
21 | enum fw_status { | 42 | enum fw_status { |
22 | FW_STATUS_UNKNOWN, | 43 | FW_STATUS_UNKNOWN, |
@@ -110,6 +131,6 @@ static inline void fw_state_done(struct fw_priv *fw_priv) | |||
110 | } | 131 | } |
111 | 132 | ||
112 | int assign_fw(struct firmware *fw, struct device *device, | 133 | int assign_fw(struct firmware *fw, struct device *device, |
113 | unsigned int opt_flags); | 134 | enum fw_opt opt_flags); |
114 | 135 | ||
115 | #endif /* __FIRMWARE_LOADER_H */ | 136 | #endif /* __FIRMWARE_LOADER_H */ |