Root/
1 | #ifndef _LINUX_FIRMWARE_H |
2 | #define _LINUX_FIRMWARE_H |
3 | |
4 | #include <linux/types.h> |
5 | #include <linux/compiler.h> |
6 | #include <linux/gfp.h> |
7 | |
8 | #define FW_ACTION_NOHOTPLUG 0 |
9 | #define FW_ACTION_HOTPLUG 1 |
10 | |
11 | struct firmware { |
12 | size_t size; |
13 | const u8 *data; |
14 | struct page **pages; |
15 | |
16 | /* firmware loader private fields */ |
17 | void *priv; |
18 | }; |
19 | |
20 | struct module; |
21 | struct device; |
22 | |
23 | struct builtin_fw { |
24 | char *name; |
25 | void *data; |
26 | unsigned long size; |
27 | }; |
28 | |
29 | /* We have to play tricks here much like stringify() to get the |
30 | __COUNTER__ macro to be expanded as we want it */ |
31 | #define __fw_concat1(x, y) x##y |
32 | #define __fw_concat(x, y) __fw_concat1(x, y) |
33 | |
34 | #define DECLARE_BUILTIN_FIRMWARE(name, blob) \ |
35 | DECLARE_BUILTIN_FIRMWARE_SIZE(name, &(blob), sizeof(blob)) |
36 | |
37 | #define DECLARE_BUILTIN_FIRMWARE_SIZE(name, blob, size) \ |
38 | static const struct builtin_fw __fw_concat(__builtin_fw,__COUNTER__) \ |
39 | __used __section(.builtin_fw) = { name, blob, size } |
40 | |
41 | #if defined(CONFIG_FW_LOADER) || (defined(CONFIG_FW_LOADER_MODULE) && defined(MODULE)) |
42 | int request_firmware(const struct firmware **fw, const char *name, |
43 | struct device *device); |
44 | int request_firmware_nowait( |
45 | struct module *module, bool uevent, |
46 | const char *name, struct device *device, gfp_t gfp, void *context, |
47 | void (*cont)(const struct firmware *fw, void *context)); |
48 | |
49 | void release_firmware(const struct firmware *fw); |
50 | #else |
51 | static inline int request_firmware(const struct firmware **fw, |
52 | const char *name, |
53 | struct device *device) |
54 | { |
55 | return -EINVAL; |
56 | } |
57 | static inline int request_firmware_nowait( |
58 | struct module *module, bool uevent, |
59 | const char *name, struct device *device, gfp_t gfp, void *context, |
60 | void (*cont)(const struct firmware *fw, void *context)) |
61 | { |
62 | return -EINVAL; |
63 | } |
64 | |
65 | static inline void release_firmware(const struct firmware *fw) |
66 | { |
67 | } |
68 | |
69 | #endif |
70 | |
71 | #endif |
72 |
Branches:
ben-wpan
ben-wpan-stefan
javiroman/ks7010
jz-2.6.34
jz-2.6.34-rc5
jz-2.6.34-rc6
jz-2.6.34-rc7
jz-2.6.35
jz-2.6.36
jz-2.6.37
jz-2.6.38
jz-2.6.39
jz-3.0
jz-3.1
jz-3.11
jz-3.12
jz-3.13
jz-3.15
jz-3.16
jz-3.18-dt
jz-3.2
jz-3.3
jz-3.4
jz-3.5
jz-3.6
jz-3.6-rc2-pwm
jz-3.9
jz-3.9-clk
jz-3.9-rc8
jz47xx
jz47xx-2.6.38
master
Tags:
od-2011-09-04
od-2011-09-18
v2.6.34-rc5
v2.6.34-rc6
v2.6.34-rc7
v3.9