xref: /linux-6.15/include/linux/firmware.h (revision d289bf7b)
1 #ifndef _LINUX_FIRMWARE_H
2 #define _LINUX_FIRMWARE_H
3 #include <linux/module.h>
4 #include <linux/types.h>
5 #define FIRMWARE_NAME_MAX 30
6 #define FW_ACTION_NOHOTPLUG 0
7 #define FW_ACTION_HOTPLUG 1
8 
9 struct firmware {
10 	size_t size;
11 	u8 *data;
12 };
13 
14 struct device;
15 
16 #if defined(CONFIG_FW_LOADER) || defined(CONFIG_FW_LOADER_MODULE)
17 int request_firmware(const struct firmware **fw, const char *name,
18 		     struct device *device);
19 int request_firmware_nowait(
20 	struct module *module, int uevent,
21 	const char *name, struct device *device, void *context,
22 	void (*cont)(const struct firmware *fw, void *context));
23 
24 void release_firmware(const struct firmware *fw);
25 #else
26 static inline int request_firmware(const struct firmware **fw,
27 				   const char *name,
28 				   struct device *device)
29 {
30 	return -EINVAL;
31 }
32 static inline int request_firmware_nowait(
33 	struct module *module, int uevent,
34 	const char *name, struct device *device, void *context,
35 	void (*cont)(const struct firmware *fw, void *context))
36 {
37 	return -EINVAL;
38 }
39 
40 static inline void release_firmware(const struct firmware *fw)
41 {
42 }
43 #endif
44 
45 #endif
46