Lines Matching refs:fb

29 	struct fieldbus_dev *fb = dev_get_drvdata(dev);
31 return sysfs_emit(buf, "%d\n", !!fb->online);
38 struct fieldbus_dev *fb = dev_get_drvdata(dev);
40 if (!fb->enable_get)
42 return sysfs_emit(buf, "%d\n", !!fb->enable_get(fb));
48 struct fieldbus_dev *fb = dev_get_drvdata(dev);
52 if (!fb->simple_enable_set)
57 ret = fb->simple_enable_set(fb, value);
67 struct fieldbus_dev *fb = dev_get_drvdata(dev);
70 return sysfs_emit(buf, "%s\n", fb->card_name);
77 struct fieldbus_dev *fb = dev_get_drvdata(dev);
79 return sysfs_emit(buf, "%zu\n", fb->read_area_sz);
86 struct fieldbus_dev *fb = dev_get_drvdata(dev);
88 return sysfs_emit(buf, "%zu\n", fb->write_area_sz);
95 struct fieldbus_dev *fb = dev_get_drvdata(dev);
97 return fb->fieldbus_id_get(fb, buf, PAGE_SIZE);
104 struct fieldbus_dev *fb = dev_get_drvdata(dev);
107 switch (fb->fieldbus_type) {
135 struct fieldbus_dev *fb = dev_get_drvdata(dev);
140 if (fb->enable_get)
142 if (fb->simple_enable_set)
230 void fieldbus_dev_area_updated(struct fieldbus_dev *fb)
232 fb->dc_event++;
233 wake_up_all(&fb->dc_wq);
237 void fieldbus_dev_online_changed(struct fieldbus_dev *fb, bool online)
239 fb->online = online;
240 kobject_uevent(&fb->dev->kobj, KOBJ_CHANGE);
244 static void __fieldbus_dev_unregister(struct fieldbus_dev *fb)
246 if (!fb)
248 device_destroy(&fieldbus_class, fb->cdev.dev);
249 cdev_del(&fb->cdev);
250 ida_free(&fieldbus_ida, fb->id);
253 void fieldbus_dev_unregister(struct fieldbus_dev *fb)
256 __fieldbus_dev_unregister(fb);
261 static int __fieldbus_dev_register(struct fieldbus_dev *fb)
266 if (!fb)
268 if (!fb->read_area || !fb->write_area || !fb->fieldbus_id_get)
270 fb->id = ida_alloc_max(&fieldbus_ida, MAX_FIELDBUSES - 1, GFP_KERNEL);
271 if (fb->id < 0)
272 return fb->id;
273 devno = MKDEV(MAJOR(fieldbus_devt), fb->id);
274 init_waitqueue_head(&fb->dc_wq);
275 cdev_init(&fb->cdev, &fieldbus_fops);
276 err = cdev_add(&fb->cdev, devno, 1);
279 fb->id, MAJOR(fieldbus_devt), fb->id);
282 fb->dev = device_create(&fieldbus_class, fb->parent, devno, fb,
283 "fieldbus_dev%d", fb->id);
284 if (IS_ERR(fb->dev)) {
285 err = PTR_ERR(fb->dev);
291 cdev_del(&fb->cdev);
293 ida_free(&fieldbus_ida, fb->id);
297 int fieldbus_dev_register(struct fieldbus_dev *fb)
302 err = __fieldbus_dev_register(fb);