Lines Matching refs:fh
33 void v4l2_fh_init(struct v4l2_fh *fh, struct video_device *vdev) in v4l2_fh_init() argument
35 fh->vdev = vdev; in v4l2_fh_init()
37 fh->ctrl_handler = vdev->ctrl_handler; in v4l2_fh_init()
38 INIT_LIST_HEAD(&fh->list); in v4l2_fh_init()
39 set_bit(V4L2_FL_USES_V4L2_FH, &fh->vdev->flags); in v4l2_fh_init()
47 fh->prio = V4L2_PRIORITY_UNSET; in v4l2_fh_init()
48 init_waitqueue_head(&fh->wait); in v4l2_fh_init()
49 INIT_LIST_HEAD(&fh->available); in v4l2_fh_init()
50 INIT_LIST_HEAD(&fh->subscribed); in v4l2_fh_init()
51 fh->sequence = -1; in v4l2_fh_init()
55 void v4l2_fh_add(struct v4l2_fh *fh) in v4l2_fh_add() argument
59 v4l2_prio_open(fh->vdev->prio, &fh->prio); in v4l2_fh_add()
60 spin_lock_irqsave(&fh->vdev->fh_lock, flags); in v4l2_fh_add()
61 list_add(&fh->list, &fh->vdev->fh_list); in v4l2_fh_add()
62 spin_unlock_irqrestore(&fh->vdev->fh_lock, flags); in v4l2_fh_add()
69 struct v4l2_fh *fh = kzalloc(sizeof(*fh), GFP_KERNEL); in v4l2_fh_open() local
71 filp->private_data = fh; in v4l2_fh_open()
72 if (fh == NULL) in v4l2_fh_open()
74 v4l2_fh_init(fh, vdev); in v4l2_fh_open()
75 v4l2_fh_add(fh); in v4l2_fh_open()
80 void v4l2_fh_del(struct v4l2_fh *fh) in v4l2_fh_del() argument
84 spin_lock_irqsave(&fh->vdev->fh_lock, flags); in v4l2_fh_del()
85 list_del_init(&fh->list); in v4l2_fh_del()
86 spin_unlock_irqrestore(&fh->vdev->fh_lock, flags); in v4l2_fh_del()
87 v4l2_prio_close(fh->vdev->prio, fh->prio); in v4l2_fh_del()
91 void v4l2_fh_exit(struct v4l2_fh *fh) in v4l2_fh_exit() argument
93 if (fh->vdev == NULL) in v4l2_fh_exit()
95 v4l2_event_unsubscribe_all(fh); in v4l2_fh_exit()
96 fh->vdev = NULL; in v4l2_fh_exit()
102 struct v4l2_fh *fh = filp->private_data; in v4l2_fh_release() local
104 if (fh) { in v4l2_fh_release()
105 v4l2_fh_del(fh); in v4l2_fh_release()
106 v4l2_fh_exit(fh); in v4l2_fh_release()
107 kfree(fh); in v4l2_fh_release()
113 int v4l2_fh_is_singular(struct v4l2_fh *fh) in v4l2_fh_is_singular() argument
118 if (fh == NULL || fh->vdev == NULL) in v4l2_fh_is_singular()
120 spin_lock_irqsave(&fh->vdev->fh_lock, flags); in v4l2_fh_is_singular()
121 is_singular = list_is_singular(&fh->list); in v4l2_fh_is_singular()
122 spin_unlock_irqrestore(&fh->vdev->fh_lock, flags); in v4l2_fh_is_singular()