Lines Matching refs:fw
100 static void fw_copy_to_prealloc_buf(struct firmware *fw, in fw_copy_to_prealloc_buf() argument
103 if (!buf || size < fw->size) in fw_copy_to_prealloc_buf()
105 memcpy(buf, fw->data, fw->size); in fw_copy_to_prealloc_buf()
108 static bool fw_get_builtin_firmware(struct firmware *fw, const char *name, in fw_get_builtin_firmware() argument
115 fw->size = b_fw->size; in fw_get_builtin_firmware()
116 fw->data = b_fw->data; in fw_get_builtin_firmware()
117 fw_copy_to_prealloc_buf(fw, buf, size); in fw_get_builtin_firmware()
126 static bool fw_is_builtin_firmware(const struct firmware *fw) in fw_is_builtin_firmware() argument
131 if (fw->data == b_fw->data) in fw_is_builtin_firmware()
139 static inline bool fw_get_builtin_firmware(struct firmware *fw, in fw_get_builtin_firmware() argument
146 static inline bool fw_is_builtin_firmware(const struct firmware *fw) in fw_is_builtin_firmware() argument
350 static void firmware_free_data(const struct firmware *fw) in firmware_free_data() argument
353 if (!fw->priv) { in firmware_free_data()
354 vfree(fw->data); in firmware_free_data()
357 free_fw_priv(fw->priv); in firmware_free_data()
361 static void fw_set_page_data(struct fw_priv *fw_priv, struct firmware *fw) in fw_set_page_data() argument
363 fw->priv = fw_priv; in fw_set_page_data()
365 fw->pages = fw_priv->pages; in fw_set_page_data()
367 fw->size = fw_priv->size; in fw_set_page_data()
368 fw->data = fw_priv->data; in fw_set_page_data()
451 int assign_fw(struct firmware *fw, struct device *device, in assign_fw() argument
454 struct fw_priv *fw_priv = fw->priv; in assign_fw()
491 fw_set_page_data(fw_priv, fw); in assign_fw()
552 static void fw_abort_batch_reqs(struct firmware *fw) in fw_abort_batch_reqs() argument
557 if (!fw || !fw->priv) in fw_abort_batch_reqs()
560 fw_priv = fw->priv; in fw_abort_batch_reqs()
571 struct firmware *fw = NULL; in _request_firmware() local
582 ret = _request_firmware_prepare(&fw, name, device, buf, size, in _request_firmware()
587 ret = fw_get_filesystem_firmware(device, fw->priv); in _request_firmware()
593 ret = firmware_fallback_sysfs(fw, name, device, opt_flags, ret); in _request_firmware()
595 ret = assign_fw(fw, device, opt_flags); in _request_firmware()
599 fw_abort_batch_reqs(fw); in _request_firmware()
600 release_firmware(fw); in _request_firmware()
601 fw = NULL; in _request_firmware()
604 *firmware_p = fw; in _request_firmware()
755 void release_firmware(const struct firmware *fw) in release_firmware() argument
757 if (fw) { in release_firmware()
758 if (!fw_is_builtin_firmware(fw)) in release_firmware()
759 firmware_free_data(fw); in release_firmware()
760 kfree(fw); in release_firmware()
772 void (*cont)(const struct firmware *fw, void *context);
779 const struct firmware *fw; in request_firmware_work_func() local
783 _request_firmware(&fw, fw_work->name, fw_work->device, NULL, 0, in request_firmware_work_func()
785 fw_work->cont(fw, fw_work->context); in request_firmware_work_func()
820 void (*cont)(const struct firmware *fw, void *context)) in request_firmware_nowait() argument
879 const struct firmware *fw; in cache_firmware() local
883 ret = request_firmware(&fw, fw_name, NULL); in cache_firmware()
885 kfree(fw); in cache_firmware()
918 struct firmware fw; in uncache_firmware() local
922 if (fw_get_builtin_firmware(&fw, fw_name, NULL, 0)) in uncache_firmware()