1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef __FIRMWARE_FALLBACK_H
3 #define __FIRMWARE_FALLBACK_H
4
5 #include <linux/firmware.h>
6 #include <linux/device.h>
7
8 #include "firmware.h"
9 #include "sysfs.h"
10
11 #ifdef CONFIG_FW_LOADER_USER_HELPER
12 int firmware_fallback_sysfs(struct firmware *fw, const char *name,
13 struct device *device,
14 u32 opt_flags,
15 int ret);
16 void kill_pending_fw_fallback_reqs(bool only_kill_custom);
17
18 void fw_fallback_set_cache_timeout(void);
19 void fw_fallback_set_default_timeout(void);
20
21 #else /* CONFIG_FW_LOADER_USER_HELPER */
firmware_fallback_sysfs(struct firmware * fw,const char * name,struct device * device,u32 opt_flags,int ret)22 static inline int firmware_fallback_sysfs(struct firmware *fw, const char *name,
23 struct device *device,
24 u32 opt_flags,
25 int ret)
26 {
27 /* Keep carrying over the same error */
28 return ret;
29 }
30
kill_pending_fw_fallback_reqs(bool only_kill_custom)31 static inline void kill_pending_fw_fallback_reqs(bool only_kill_custom) { }
fw_fallback_set_cache_timeout(void)32 static inline void fw_fallback_set_cache_timeout(void) { }
fw_fallback_set_default_timeout(void)33 static inline void fw_fallback_set_default_timeout(void) { }
34 #endif /* CONFIG_FW_LOADER_USER_HELPER */
35
36 #ifdef CONFIG_EFI_EMBEDDED_FIRMWARE
37 int firmware_fallback_platform(struct fw_priv *fw_priv);
38 #else
firmware_fallback_platform(struct fw_priv * fw_priv)39 static inline int firmware_fallback_platform(struct fw_priv *fw_priv)
40 {
41 return -ENOENT;
42 }
43 #endif
44
45 #endif /* __FIRMWARE_FALLBACK_H */
46