Re: [PATCH v3 2/3] media: au0828 - convert to use videobuf2

Devin Heitmueller
2015-01-22T15:00:19Z

>> - fh->type = type;
>> - fh->dev = dev;
>> - v4l2_fh_init(&fh->fh, vdev);
>> - filp->private_data = fh;
>> + dprintk(1,
>> + "%s called std_set %d dev_state %d stream users %d users %d\n",
>> + __func__, dev->std_set_in_tuner_core, dev->dev_state,
>> + dev->streaming_users, dev->users);
>>
>> - if (mutex_lock_interruptible(&dev->lock)) {
>> - kfree(fh);
>> + if (mutex_lock_interruptible(&dev->lock))
>> return -ERESTARTSYS;
>> +
>> + ret = v4l2_fh_open(filp);
>> + if (ret) {
>> + au0828_isocdbg("%s: v4l2_fh_open() returned error %d\n",
>> + __func__, ret);
>> + mutex_unlock(&dev->lock);
>> + return ret;
>> }
>> +
>> if (dev->users == 0) {
>
> you can use v4l2_fh_is_singular_file() and get rid of users member ?

That won't work because the underlying resources are shared between
/dev/videoX and /dev/vbiX device nodes. Hence if you were to move to
v4l2_fh_is_singular_file(), the video device would get opened, the
stream would get reset, the VBI device would get opened, and that
would cause the analog stream to get enabled/reset *again*.

Devin

--
Devin J. Heitmueller - Kernel Labs