Lines Matching refs:devnode

42 int cec_get_device(struct cec_devnode *devnode)  in cec_get_device()  argument
51 mutex_lock(&devnode->lock); in cec_get_device()
56 if (!devnode->registered) { in cec_get_device()
57 mutex_unlock(&devnode->lock); in cec_get_device()
61 get_device(&devnode->dev); in cec_get_device()
62 mutex_unlock(&devnode->lock); in cec_get_device()
66 void cec_put_device(struct cec_devnode *devnode) in cec_put_device() argument
68 put_device(&devnode->dev); in cec_put_device()
74 struct cec_devnode *devnode = to_cec_devnode(cd); in cec_devnode_release() local
78 clear_bit(devnode->minor, cec_devnode_nums); in cec_devnode_release()
81 cec_delete_adapter(to_cec_adapter(devnode)); in cec_devnode_release()
101 static int __must_check cec_devnode_register(struct cec_devnode *devnode, in cec_devnode_register() argument
119 devnode->minor = minor; in cec_devnode_register()
120 devnode->dev.bus = &cec_bus_type; in cec_devnode_register()
121 devnode->dev.devt = MKDEV(MAJOR(cec_dev_t), minor); in cec_devnode_register()
122 devnode->dev.release = cec_devnode_release; in cec_devnode_register()
123 dev_set_name(&devnode->dev, "cec%d", devnode->minor); in cec_devnode_register()
124 device_initialize(&devnode->dev); in cec_devnode_register()
127 cdev_init(&devnode->cdev, &cec_devnode_fops); in cec_devnode_register()
128 devnode->cdev.owner = owner; in cec_devnode_register()
129 kobject_set_name(&devnode->cdev.kobj, "cec%d", devnode->minor); in cec_devnode_register()
131 devnode->registered = true; in cec_devnode_register()
132 ret = cdev_device_add(&devnode->cdev, &devnode->dev); in cec_devnode_register()
134 devnode->registered = false; in cec_devnode_register()
143 clear_bit(devnode->minor, cec_devnode_nums); in cec_devnode_register()
159 struct cec_devnode *devnode = &adap->devnode; in cec_devnode_unregister() local
162 mutex_lock(&devnode->lock); in cec_devnode_unregister()
165 if (!devnode->registered || devnode->unregistered) { in cec_devnode_unregister()
166 mutex_unlock(&devnode->lock); in cec_devnode_unregister()
170 list_for_each_entry(fh, &devnode->fhs, list) in cec_devnode_unregister()
173 devnode->registered = false; in cec_devnode_unregister()
174 devnode->unregistered = true; in cec_devnode_unregister()
175 mutex_unlock(&devnode->lock); in cec_devnode_unregister()
182 cdev_device_del(&devnode->cdev, &devnode->dev); in cec_devnode_unregister()
183 put_device(&devnode->dev); in cec_devnode_unregister()
298 INIT_LIST_HEAD(&adap->devnode.fhs); in cec_allocate_adapter()
299 mutex_init(&adap->devnode.lock); in cec_allocate_adapter()
354 adap->devnode.dev.parent = parent; in cec_register_adapter()
371 res = cec_devnode_register(&adap->devnode, adap->owner); in cec_register_adapter()
381 dev_set_drvdata(&adap->devnode.dev, adap); in cec_register_adapter()
386 adap->cec_dir = debugfs_create_dir(dev_name(&adap->devnode.dev), top_cec_dir); in cec_register_adapter()
391 adap->status_file = debugfs_create_devm_seqfile(&adap->devnode.dev, in cec_register_adapter()