Lines Matching defs:devnode

54 int cec_get_device(struct cec_devnode *devnode)
58 * the devnode->lock held to prevent an open/unregister race:
60 * the devnode->registered check and get_device() calls, leading to
63 mutex_lock(&devnode->lock);
68 if (!devnode->registered) {
69 mutex_unlock(&devnode->lock);
73 get_device(&devnode->dev);
74 mutex_unlock(&devnode->lock);
78 void cec_put_device(struct cec_devnode *devnode)
80 put_device(&devnode->dev);
86 struct cec_devnode *devnode = to_cec_devnode(cd);
90 clear_bit(devnode->minor, cec_devnode_nums);
93 cec_delete_adapter(to_cec_adapter(devnode));
113 static int __must_check cec_devnode_register(struct cec_devnode *devnode,
131 devnode->minor = minor;
132 devnode->dev.bus = &cec_bus_type;
133 devnode->dev.devt = MKDEV(MAJOR(cec_dev_t), minor);
134 devnode->dev.release = cec_devnode_release;
135 dev_set_name(&devnode->dev, "cec%d", devnode->minor);
136 device_initialize(&devnode->dev);
139 cdev_init(&devnode->cdev, &cec_devnode_fops);
140 devnode->cdev.owner = owner;
141 kobject_set_name(&devnode->cdev.kobj, "cec%d", devnode->minor);
143 devnode->registered = true;
144 ret = cdev_device_add(&devnode->cdev, &devnode->dev);
146 devnode->registered = false;
155 clear_bit(devnode->minor, cec_devnode_nums);
171 struct cec_devnode *devnode = &adap->devnode;
174 mutex_lock(&devnode->lock);
176 /* Check if devnode was never registered or already unregistered */
177 if (!devnode->registered || devnode->unregistered) {
178 mutex_unlock(&devnode->lock);
181 devnode->registered = false;
182 devnode->unregistered = true;
184 mutex_lock(&devnode->lock_fhs);
185 list_for_each_entry(fh, &devnode->fhs, list)
187 mutex_unlock(&devnode->lock_fhs);
189 mutex_unlock(&devnode->lock);
194 // Disable the adapter (since adap->devnode.unregistered is true)
198 cdev_device_del(&devnode->cdev, &devnode->dev);
199 put_device(&devnode->dev);
289 /* adap->devnode initialization */
290 INIT_LIST_HEAD(&adap->devnode.fhs);
291 mutex_init(&adap->devnode.lock_fhs);
292 mutex_init(&adap->devnode.lock);
347 adap->devnode.dev.parent = parent;
366 res = cec_devnode_register(&adap->devnode, adap->owner);
376 dev_set_drvdata(&adap->devnode.dev, adap);
381 adap->cec_dir = debugfs_create_dir(dev_name(&adap->devnode.dev),
384 debugfs_create_devm_seqfile(&adap->devnode.dev, "status", adap->cec_dir,