diff options
Diffstat (limited to 'drivers/base/firmware_loader/main.c')
| -rw-r--r-- | drivers/base/firmware_loader/main.c | 65 | 
1 files changed, 3 insertions, 62 deletions
| diff --git a/drivers/base/firmware_loader/main.c b/drivers/base/firmware_loader/main.c index bdbedc6660a8..94d1789a233e 100644 --- a/drivers/base/firmware_loader/main.c +++ b/drivers/base/firmware_loader/main.c @@ -93,65 +93,6 @@ DEFINE_MUTEX(fw_lock);  static struct firmware_cache fw_cache; -/* Builtin firmware support */ - -#ifdef CONFIG_FW_LOADER - -extern struct builtin_fw __start_builtin_fw[]; -extern struct builtin_fw __end_builtin_fw[]; - -static void fw_copy_to_prealloc_buf(struct firmware *fw, -				    void *buf, size_t size) -{ -	if (!buf || size < fw->size) -		return; -	memcpy(buf, fw->data, fw->size); -} - -static bool fw_get_builtin_firmware(struct firmware *fw, const char *name, -				    void *buf, size_t size) -{ -	struct builtin_fw *b_fw; - -	for (b_fw = __start_builtin_fw; b_fw != __end_builtin_fw; b_fw++) { -		if (strcmp(name, b_fw->name) == 0) { -			fw->size = b_fw->size; -			fw->data = b_fw->data; -			fw_copy_to_prealloc_buf(fw, buf, size); - -			return true; -		} -	} - -	return false; -} - -static bool fw_is_builtin_firmware(const struct firmware *fw) -{ -	struct builtin_fw *b_fw; - -	for (b_fw = __start_builtin_fw; b_fw != __end_builtin_fw; b_fw++) -		if (fw->data == b_fw->data) -			return true; - -	return false; -} - -#else /* Module case - no builtin firmware support */ - -static inline bool fw_get_builtin_firmware(struct firmware *fw, -					   const char *name, void *buf, -					   size_t size) -{ -	return false; -} - -static inline bool fw_is_builtin_firmware(const struct firmware *fw) -{ -	return false; -} -#endif -  static void fw_state_init(struct fw_priv *fw_priv)  {  	struct fw_state *fw_st = &fw_priv->fw_st; @@ -736,7 +677,7 @@ _request_firmware_prepare(struct firmware **firmware_p, const char *name,  		return -ENOMEM;  	} -	if (fw_get_builtin_firmware(firmware, name, dbuf, size)) { +	if (firmware_request_builtin_buf(firmware, name, dbuf, size)) {  		dev_dbg(device, "using built-in %s\n", name);  		return 0; /* assigned */  	} @@ -1051,7 +992,7 @@ EXPORT_SYMBOL(request_partial_firmware_into_buf);  void release_firmware(const struct firmware *fw)  {  	if (fw) { -		if (!fw_is_builtin_firmware(fw)) +		if (!firmware_is_builtin(fw))  			firmware_free_data(fw);  		kfree(fw);  	} @@ -1215,7 +1156,7 @@ static int uncache_firmware(const char *fw_name)  	pr_debug("%s: %s\n", __func__, fw_name); -	if (fw_get_builtin_firmware(&fw, fw_name, NULL, 0)) +	if (firmware_request_builtin(&fw, fw_name))  		return 0;  	fw_priv = lookup_fw_priv(fw_name); |