Lines Matching refs:dvbdev

69 	struct dvb_device *dvbdev;  in dvb_device_open()  local
73 dvbdev = dvb_minors[iminor(inode)]; in dvb_device_open()
75 if (dvbdev && dvbdev->fops) { in dvb_device_open()
79 new_fops = fops_get(dvbdev->fops); in dvb_device_open()
82 file->private_data = dvbdev; in dvb_device_open()
108 struct dvb_device *dvbdev = file->private_data; in dvb_generic_open() local
110 if (!dvbdev) in dvb_generic_open()
113 if (!dvbdev->users) in dvb_generic_open()
117 if (!dvbdev->readers) in dvb_generic_open()
119 dvbdev->readers--; in dvb_generic_open()
121 if (!dvbdev->writers) in dvb_generic_open()
123 dvbdev->writers--; in dvb_generic_open()
126 dvbdev->users--; in dvb_generic_open()
134 struct dvb_device *dvbdev = file->private_data; in dvb_generic_release() local
136 if (!dvbdev) in dvb_generic_release()
140 dvbdev->readers++; in dvb_generic_release()
142 dvbdev->writers++; in dvb_generic_release()
145 dvbdev->users++; in dvb_generic_release()
154 struct dvb_device *dvbdev = file->private_data; in dvb_generic_ioctl() local
156 if (!dvbdev) in dvb_generic_ioctl()
159 if (!dvbdev->kernel_ioctl) in dvb_generic_ioctl()
162 return dvb_usercopy(file, cmd, arg, dvbdev->kernel_ioctl); in dvb_generic_ioctl()
183 static void dvb_register_media_device(struct dvb_device *dvbdev, in dvb_register_media_device() argument
189 if (!dvbdev->adapter->mdev) in dvb_register_media_device()
192 dvbdev->entity = kzalloc(sizeof(*dvbdev->entity), GFP_KERNEL); in dvb_register_media_device()
193 if (!dvbdev->entity) in dvb_register_media_device()
196 dvbdev->entity->info.dev.major = DVB_MAJOR; in dvb_register_media_device()
197 dvbdev->entity->info.dev.minor = minor; in dvb_register_media_device()
198 dvbdev->entity->name = dvbdev->name; in dvb_register_media_device()
214 dvbdev->pads = kcalloc(npads, sizeof(*dvbdev->pads), in dvb_register_media_device()
216 if (!dvbdev->pads) { in dvb_register_media_device()
217 kfree(dvbdev->entity); in dvb_register_media_device()
224 dvbdev->entity->type = MEDIA_ENT_T_DEVNODE_DVB_FE; in dvb_register_media_device()
225 dvbdev->pads[0].flags = MEDIA_PAD_FL_SINK; in dvb_register_media_device()
226 dvbdev->pads[1].flags = MEDIA_PAD_FL_SOURCE; in dvb_register_media_device()
229 dvbdev->entity->type = MEDIA_ENT_T_DEVNODE_DVB_DEMUX; in dvb_register_media_device()
230 dvbdev->pads[0].flags = MEDIA_PAD_FL_SINK; in dvb_register_media_device()
231 dvbdev->pads[1].flags = MEDIA_PAD_FL_SOURCE; in dvb_register_media_device()
234 dvbdev->entity->type = MEDIA_ENT_T_DEVNODE_DVB_DVR; in dvb_register_media_device()
235 dvbdev->pads[0].flags = MEDIA_PAD_FL_SINK; in dvb_register_media_device()
238 dvbdev->entity->type = MEDIA_ENT_T_DEVNODE_DVB_CA; in dvb_register_media_device()
239 dvbdev->pads[0].flags = MEDIA_PAD_FL_SINK; in dvb_register_media_device()
240 dvbdev->pads[1].flags = MEDIA_PAD_FL_SOURCE; in dvb_register_media_device()
243 dvbdev->entity->type = MEDIA_ENT_T_DEVNODE_DVB_NET; in dvb_register_media_device()
246 kfree(dvbdev->entity); in dvb_register_media_device()
247 dvbdev->entity = NULL; in dvb_register_media_device()
252 ret = media_entity_init(dvbdev->entity, npads, dvbdev->pads, 0); in dvb_register_media_device()
254 ret = media_device_register_entity(dvbdev->adapter->mdev, in dvb_register_media_device()
255 dvbdev->entity); in dvb_register_media_device()
259 __func__, dvbdev->entity->name); in dvb_register_media_device()
260 kfree(dvbdev->pads); in dvb_register_media_device()
261 kfree(dvbdev->entity); in dvb_register_media_device()
262 dvbdev->entity = NULL; in dvb_register_media_device()
267 __func__, dvbdev->entity->name); in dvb_register_media_device()
274 struct dvb_device *dvbdev; in dvb_register_device() local
289 *pdvbdev = dvbdev = kmalloc(sizeof(struct dvb_device), GFP_KERNEL); in dvb_register_device()
291 if (!dvbdev){ in dvb_register_device()
299 kfree (dvbdev); in dvb_register_device()
304 memcpy(dvbdev, template, sizeof(struct dvb_device)); in dvb_register_device()
305 dvbdev->type = type; in dvb_register_device()
306 dvbdev->id = id; in dvb_register_device()
307 dvbdev->adapter = adap; in dvb_register_device()
308 dvbdev->priv = priv; in dvb_register_device()
309 dvbdev->fops = dvbdevfops; in dvb_register_device()
310 init_waitqueue_head (&dvbdev->wait_queue); in dvb_register_device()
315 list_add_tail (&dvbdev->list_head, &adap->device_list); in dvb_register_device()
325 kfree(dvbdev); in dvb_register_device()
334 dvbdev->minor = minor; in dvb_register_device()
335 dvb_minors[minor] = dvbdev; in dvb_register_device()
342 dvbdev, "dvb%d.%s%d", adap->num, dnames[type], id); in dvb_register_device()
351 dvb_register_media_device(dvbdev, type, minor); in dvb_register_device()
358 void dvb_unregister_device(struct dvb_device *dvbdev) in dvb_unregister_device() argument
360 if (!dvbdev) in dvb_unregister_device()
364 dvb_minors[dvbdev->minor] = NULL; in dvb_unregister_device()
367 device_destroy(dvb_class, MKDEV(DVB_MAJOR, dvbdev->minor)); in dvb_unregister_device()
370 if (dvbdev->entity) { in dvb_unregister_device()
371 media_device_unregister_entity(dvbdev->entity); in dvb_unregister_device()
372 kfree(dvbdev->entity); in dvb_unregister_device()
373 kfree(dvbdev->pads); in dvb_unregister_device()
377 list_del (&dvbdev->list_head); in dvb_unregister_device()
378 kfree (dvbdev->fops); in dvb_unregister_device()
379 kfree (dvbdev); in dvb_unregister_device()
579 struct dvb_device *dvbdev = dev_get_drvdata(dev); in dvb_uevent() local
581 add_uevent_var(env, "DVB_ADAPTER_NUM=%d", dvbdev->adapter->num); in dvb_uevent()
582 add_uevent_var(env, "DVB_DEVICE_TYPE=%s", dnames[dvbdev->type]); in dvb_uevent()
583 add_uevent_var(env, "DVB_DEVICE_NUM=%d", dvbdev->id); in dvb_uevent()
589 struct dvb_device *dvbdev = dev_get_drvdata(dev); in dvb_devnode() local
592 dvbdev->adapter->num, dnames[dvbdev->type], dvbdev->id); in dvb_devnode()