Lines Matching refs:fw_sysfs
76 struct fw_sysfs { struct
83 static struct fw_sysfs *to_fw_sysfs(struct device *dev) in to_fw_sysfs() argument
85 return container_of(dev, struct fw_sysfs, dev); in to_fw_sysfs()
101 static void fw_load_abort(struct fw_sysfs *fw_sysfs) in fw_load_abort() argument
103 struct fw_priv *fw_priv = fw_sysfs->fw_priv; in fw_load_abort()
165 struct fw_sysfs *fw_sysfs = to_fw_sysfs(dev); in fw_dev_release() local
167 kfree(fw_sysfs); in fw_dev_release()
170 static int do_firmware_uevent(struct fw_sysfs *fw_sysfs, struct kobj_uevent_env *env) in do_firmware_uevent() argument
172 if (add_uevent_var(env, "FIRMWARE=%s", fw_sysfs->fw_priv->fw_name)) in do_firmware_uevent()
176 if (add_uevent_var(env, "ASYNC=%d", fw_sysfs->nowait)) in do_firmware_uevent()
184 struct fw_sysfs *fw_sysfs = to_fw_sysfs(dev); in firmware_uevent() local
188 if (fw_sysfs->fw_priv) in firmware_uevent()
189 err = do_firmware_uevent(fw_sysfs, env); in firmware_uevent()
214 struct fw_sysfs *fw_sysfs = to_fw_sysfs(dev); in firmware_loading_show() local
218 if (fw_sysfs->fw_priv) in firmware_loading_show()
219 loading = fw_sysfs_loading(fw_sysfs->fw_priv); in firmware_loading_show()
242 struct fw_sysfs *fw_sysfs = to_fw_sysfs(dev); in firmware_loading_store() local
248 fw_priv = fw_sysfs->fw_priv; in firmware_loading_store()
297 fw_load_abort(fw_sysfs); in firmware_loading_store()
344 struct fw_sysfs *fw_sysfs = to_fw_sysfs(dev); in firmware_data_read() local
349 fw_priv = fw_sysfs->fw_priv; in firmware_data_read()
373 static int fw_realloc_pages(struct fw_sysfs *fw_sysfs, int min_size) in fw_realloc_pages() argument
377 err = fw_grow_paged_buf(fw_sysfs->fw_priv, in fw_realloc_pages()
380 fw_load_abort(fw_sysfs); in fw_realloc_pages()
401 struct fw_sysfs *fw_sysfs = to_fw_sysfs(dev); in firmware_data_write() local
409 fw_priv = fw_sysfs->fw_priv; in firmware_data_write()
423 retval = fw_realloc_pages(fw_sysfs, offset + count); in firmware_data_write()
464 static struct fw_sysfs *
468 struct fw_sysfs *fw_sysfs; in fw_create_instance() local
471 fw_sysfs = kzalloc(sizeof(*fw_sysfs), GFP_KERNEL); in fw_create_instance()
472 if (!fw_sysfs) { in fw_create_instance()
473 fw_sysfs = ERR_PTR(-ENOMEM); in fw_create_instance()
477 fw_sysfs->nowait = !!(opt_flags & FW_OPT_NOWAIT); in fw_create_instance()
478 fw_sysfs->fw = firmware; in fw_create_instance()
479 f_dev = &fw_sysfs->dev; in fw_create_instance()
487 return fw_sysfs; in fw_create_instance()
497 static int fw_load_sysfs_fallback(struct fw_sysfs *fw_sysfs, long timeout) in fw_load_sysfs_fallback() argument
500 struct device *f_dev = &fw_sysfs->dev; in fw_load_sysfs_fallback()
501 struct fw_priv *fw_priv = fw_sysfs->fw_priv; in fw_load_sysfs_fallback()
523 kobject_uevent(&fw_sysfs->dev.kobj, KOBJ_ADD); in fw_load_sysfs_fallback()
531 fw_load_abort(fw_sysfs); in fw_load_sysfs_fallback()
553 struct fw_sysfs *fw_sysfs; in fw_load_from_user_helper() local
574 fw_sysfs = fw_create_instance(firmware, name, device, opt_flags); in fw_load_from_user_helper()
575 if (IS_ERR(fw_sysfs)) { in fw_load_from_user_helper()
576 ret = PTR_ERR(fw_sysfs); in fw_load_from_user_helper()
580 fw_sysfs->fw_priv = firmware->priv; in fw_load_from_user_helper()
581 ret = fw_load_sysfs_fallback(fw_sysfs, timeout); in fw_load_from_user_helper()