Lines Matching refs:devnode
34 #include <media/media-devnode.h>
51 struct media_devnode *devnode = to_media_devnode(cd);
55 clear_bit(devnode->minor, media_devnode_nums);
59 if (devnode->release)
60 devnode->release(devnode);
62 kfree(devnode);
73 struct media_devnode *devnode = media_devnode_data(filp);
75 if (!devnode->fops->read)
77 if (!media_devnode_is_registered(devnode))
79 return devnode->fops->read(filp, buf, sz, off);
85 struct media_devnode *devnode = media_devnode_data(filp);
87 if (!devnode->fops->write)
89 if (!media_devnode_is_registered(devnode))
91 return devnode->fops->write(filp, buf, sz, off);
97 struct media_devnode *devnode = media_devnode_data(filp);
99 if (!media_devnode_is_registered(devnode))
101 if (!devnode->fops->poll)
103 return devnode->fops->poll(filp, poll);
111 struct media_devnode *devnode = media_devnode_data(filp);
116 if (!media_devnode_is_registered(devnode))
124 struct media_devnode *devnode = media_devnode_data(filp);
126 return __media_ioctl(filp, cmd, arg, devnode->fops->ioctl);
134 struct media_devnode *devnode = media_devnode_data(filp);
136 return __media_ioctl(filp, cmd, arg, devnode->fops->compat_ioctl);
144 struct media_devnode *devnode;
154 devnode = container_of(inode->i_cdev, struct media_devnode, cdev);
157 if (!media_devnode_is_registered(devnode)) {
162 get_device(&devnode->dev);
165 filp->private_data = devnode;
167 if (devnode->fops->open) {
168 ret = devnode->fops->open(filp);
170 put_device(&devnode->dev);
182 struct media_devnode *devnode = media_devnode_data(filp);
184 if (devnode->fops->release)
185 devnode->fops->release(filp);
191 put_device(&devnode->dev);
212 struct media_devnode *devnode,
224 kfree(devnode);
231 devnode->minor = minor;
232 devnode->media_dev = mdev;
235 devnode->dev.bus = &media_bus_type;
236 devnode->dev.devt = MKDEV(MAJOR(media_dev_t), devnode->minor);
237 devnode->dev.release = media_devnode_release;
238 if (devnode->parent)
239 devnode->dev.parent = devnode->parent;
240 dev_set_name(&devnode->dev, "media%d", devnode->minor);
241 device_initialize(&devnode->dev);
244 cdev_init(&devnode->cdev, &media_devnode_fops);
245 devnode->cdev.owner = owner;
246 kobject_set_name(&devnode->cdev.kobj, "media%d", devnode->minor);
249 ret = cdev_device_add(&devnode->cdev, &devnode->dev);
256 set_bit(MEDIA_FLAG_REGISTERED, &devnode->flags);
262 clear_bit(devnode->minor, media_devnode_nums);
263 devnode->media_dev = NULL;
266 put_device(&devnode->dev);
270 void media_devnode_unregister_prepare(struct media_devnode *devnode)
272 /* Check if devnode was ever registered at all */
273 if (!media_devnode_is_registered(devnode))
277 clear_bit(MEDIA_FLAG_REGISTERED, &devnode->flags);
281 void media_devnode_unregister(struct media_devnode *devnode)
285 cdev_device_del(&devnode->cdev, &devnode->dev);
286 devnode->media_dev = NULL;
289 put_device(&devnode->dev);