Lines Matching refs:devnode

38 int cec_get_device(struct cec_devnode *devnode)  in cec_get_device()  argument
47 mutex_lock(&devnode->lock); in cec_get_device()
52 if (!devnode->registered) { in cec_get_device()
53 mutex_unlock(&devnode->lock); in cec_get_device()
57 get_device(&devnode->dev); in cec_get_device()
58 mutex_unlock(&devnode->lock); in cec_get_device()
62 void cec_put_device(struct cec_devnode *devnode) in cec_put_device() argument
64 put_device(&devnode->dev); in cec_put_device()
70 struct cec_devnode *devnode = to_cec_devnode(cd); in cec_devnode_release() local
74 clear_bit(devnode->minor, cec_devnode_nums); in cec_devnode_release()
77 cec_delete_adapter(to_cec_adapter(devnode)); in cec_devnode_release()
97 static int __must_check cec_devnode_register(struct cec_devnode *devnode, in cec_devnode_register() argument
115 devnode->minor = minor; in cec_devnode_register()
116 devnode->dev.bus = &cec_bus_type; in cec_devnode_register()
117 devnode->dev.devt = MKDEV(MAJOR(cec_dev_t), minor); in cec_devnode_register()
118 devnode->dev.release = cec_devnode_release; in cec_devnode_register()
119 dev_set_name(&devnode->dev, "cec%d", devnode->minor); in cec_devnode_register()
120 device_initialize(&devnode->dev); in cec_devnode_register()
123 cdev_init(&devnode->cdev, &cec_devnode_fops); in cec_devnode_register()
124 devnode->cdev.owner = owner; in cec_devnode_register()
126 ret = cdev_device_add(&devnode->cdev, &devnode->dev); in cec_devnode_register()
132 devnode->registered = true; in cec_devnode_register()
137 clear_bit(devnode->minor, cec_devnode_nums); in cec_devnode_register()
153 struct cec_devnode *devnode = &adap->devnode; in cec_devnode_unregister() local
156 mutex_lock(&devnode->lock); in cec_devnode_unregister()
159 if (!devnode->registered || devnode->unregistered) { in cec_devnode_unregister()
160 mutex_unlock(&devnode->lock); in cec_devnode_unregister()
164 list_for_each_entry(fh, &devnode->fhs, list) in cec_devnode_unregister()
167 devnode->registered = false; in cec_devnode_unregister()
168 devnode->unregistered = true; in cec_devnode_unregister()
169 mutex_unlock(&devnode->lock); in cec_devnode_unregister()
176 cdev_device_del(&devnode->cdev, &devnode->dev); in cec_devnode_unregister()
177 put_device(&devnode->dev); in cec_devnode_unregister()
285 INIT_LIST_HEAD(&adap->devnode.fhs); in cec_allocate_adapter()
286 mutex_init(&adap->devnode.lock); in cec_allocate_adapter()
343 adap->devnode.dev.parent = parent; in cec_register_adapter()
360 res = cec_devnode_register(&adap->devnode, adap->owner); in cec_register_adapter()
370 dev_set_drvdata(&adap->devnode.dev, adap); in cec_register_adapter()
375 adap->cec_dir = debugfs_create_dir(dev_name(&adap->devnode.dev), top_cec_dir); in cec_register_adapter()
380 adap->status_file = debugfs_create_devm_seqfile(&adap->devnode.dev, in cec_register_adapter()