Lines Matching refs:mgr

46 int fpga_mgr_buf_load(struct fpga_manager *mgr, u32 flags, const char *buf,  in fpga_mgr_buf_load()  argument
49 struct device *dev = &mgr->dev; in fpga_mgr_buf_load()
57 mgr->state = FPGA_MGR_STATE_WRITE_INIT; in fpga_mgr_buf_load()
58 ret = mgr->mops->write_init(mgr, flags, buf, count); in fpga_mgr_buf_load()
61 mgr->state = FPGA_MGR_STATE_WRITE_INIT_ERR; in fpga_mgr_buf_load()
68 mgr->state = FPGA_MGR_STATE_WRITE; in fpga_mgr_buf_load()
69 ret = mgr->mops->write(mgr, buf, count); in fpga_mgr_buf_load()
72 mgr->state = FPGA_MGR_STATE_WRITE_ERR; in fpga_mgr_buf_load()
80 mgr->state = FPGA_MGR_STATE_WRITE_COMPLETE; in fpga_mgr_buf_load()
81 ret = mgr->mops->write_complete(mgr, flags); in fpga_mgr_buf_load()
84 mgr->state = FPGA_MGR_STATE_WRITE_COMPLETE_ERR; in fpga_mgr_buf_load()
87 mgr->state = FPGA_MGR_STATE_OPERATING; in fpga_mgr_buf_load()
106 int fpga_mgr_firmware_load(struct fpga_manager *mgr, u32 flags, in fpga_mgr_firmware_load() argument
109 struct device *dev = &mgr->dev; in fpga_mgr_firmware_load()
113 dev_info(dev, "writing %s to %s\n", image_name, mgr->name); in fpga_mgr_firmware_load()
115 mgr->state = FPGA_MGR_STATE_FIRMWARE_REQ; in fpga_mgr_firmware_load()
119 mgr->state = FPGA_MGR_STATE_FIRMWARE_REQ_ERR; in fpga_mgr_firmware_load()
124 ret = fpga_mgr_buf_load(mgr, flags, fw->data, fw->size); in fpga_mgr_firmware_load()
161 struct fpga_manager *mgr = to_fpga_manager(dev); in name_show() local
163 return sprintf(buf, "%s\n", mgr->name); in name_show()
169 struct fpga_manager *mgr = to_fpga_manager(dev); in state_show() local
171 return sprintf(buf, "%s\n", state_str[mgr->state]); in state_show()
199 struct fpga_manager *mgr; in of_fpga_mgr_get() local
208 mgr = to_fpga_manager(dev); in of_fpga_mgr_get()
209 if (!mgr) in of_fpga_mgr_get()
213 if (!mutex_trylock(&mgr->ref_mutex)) { in of_fpga_mgr_get()
221 return mgr; in of_fpga_mgr_get()
224 mutex_unlock(&mgr->ref_mutex); in of_fpga_mgr_get()
235 void fpga_mgr_put(struct fpga_manager *mgr) in fpga_mgr_put() argument
237 module_put(mgr->dev.parent->driver->owner); in fpga_mgr_put()
238 mutex_unlock(&mgr->ref_mutex); in fpga_mgr_put()
239 put_device(&mgr->dev); in fpga_mgr_put()
256 struct fpga_manager *mgr; in fpga_mgr_register() local
270 mgr = kzalloc(sizeof(*mgr), GFP_KERNEL); in fpga_mgr_register()
271 if (!mgr) in fpga_mgr_register()
280 mutex_init(&mgr->ref_mutex); in fpga_mgr_register()
282 mgr->name = name; in fpga_mgr_register()
283 mgr->mops = mops; in fpga_mgr_register()
284 mgr->priv = priv; in fpga_mgr_register()
291 mgr->state = mgr->mops->state(mgr); in fpga_mgr_register()
293 device_initialize(&mgr->dev); in fpga_mgr_register()
294 mgr->dev.class = fpga_mgr_class; in fpga_mgr_register()
295 mgr->dev.parent = dev; in fpga_mgr_register()
296 mgr->dev.of_node = dev->of_node; in fpga_mgr_register()
297 mgr->dev.id = id; in fpga_mgr_register()
298 dev_set_drvdata(dev, mgr); in fpga_mgr_register()
300 ret = dev_set_name(&mgr->dev, "fpga%d", id); in fpga_mgr_register()
304 ret = device_add(&mgr->dev); in fpga_mgr_register()
308 dev_info(&mgr->dev, "%s registered\n", mgr->name); in fpga_mgr_register()
315 kfree(mgr); in fpga_mgr_register()
327 struct fpga_manager *mgr = dev_get_drvdata(dev); in fpga_mgr_unregister() local
329 dev_info(&mgr->dev, "%s %s\n", __func__, mgr->name); in fpga_mgr_unregister()
335 if (mgr->mops->fpga_remove) in fpga_mgr_unregister()
336 mgr->mops->fpga_remove(mgr); in fpga_mgr_unregister()
338 device_unregister(&mgr->dev); in fpga_mgr_unregister()
344 struct fpga_manager *mgr = to_fpga_manager(dev); in fpga_mgr_dev_release() local
346 ida_simple_remove(&fpga_mgr_ida, mgr->dev.id); in fpga_mgr_dev_release()
347 kfree(mgr); in fpga_mgr_dev_release()