[media] ivtv: add control event support
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
c7a52f8dce
commit
5138870d68
2 changed files with 10 additions and 3 deletions
drivers/media/video/ivtv
|
@ -750,6 +750,7 @@ unsigned int ivtv_v4l2_enc_poll(struct file *filp, poll_table * wait)
|
|||
struct ivtv *itv = id->itv;
|
||||
struct ivtv_stream *s = &itv->streams[id->type];
|
||||
int eof = test_bit(IVTV_F_S_STREAMOFF, &s->s_flags);
|
||||
unsigned res = 0;
|
||||
|
||||
/* Start a capture if there is none */
|
||||
if (!eof && !test_bit(IVTV_F_S_STREAMING, &s->s_flags)) {
|
||||
|
@ -769,12 +770,16 @@ unsigned int ivtv_v4l2_enc_poll(struct file *filp, poll_table * wait)
|
|||
/* add stream's waitq to the poll list */
|
||||
IVTV_DEBUG_HI_FILE("Encoder poll\n");
|
||||
poll_wait(filp, &s->waitq, wait);
|
||||
if (v4l2_event_pending(&id->fh))
|
||||
res |= POLLPRI;
|
||||
else
|
||||
poll_wait(filp, &id->fh.events->wait, wait);
|
||||
|
||||
if (s->q_full.length || s->q_io.length)
|
||||
return POLLIN | POLLRDNORM;
|
||||
return res | POLLIN | POLLRDNORM;
|
||||
if (eof)
|
||||
return POLLHUP;
|
||||
return 0;
|
||||
return res | POLLHUP;
|
||||
return res;
|
||||
}
|
||||
|
||||
void ivtv_stop_capture(struct ivtv_open_id *id, int gop_end)
|
||||
|
|
|
@ -1451,6 +1451,8 @@ static int ivtv_subscribe_event(struct v4l2_fh *fh, struct v4l2_event_subscripti
|
|||
case V4L2_EVENT_VSYNC:
|
||||
case V4L2_EVENT_EOS:
|
||||
break;
|
||||
case V4L2_EVENT_CTRL:
|
||||
return v4l2_ctrl_subscribe_fh(fh, sub, 0);
|
||||
default:
|
||||
return -EINVAL;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue