On Sunday, June 12, 2011 16:36:11 Mauro Carvalho Chehab wrote:
> Em 12-06-2011 07:59, Hans Verkuil escreveu:
> > From: Hans Verkuil <[email protected]>
> >
> > The subdevs are supposed to receive a valid tuner type for the g_frequency
> > and g/s_tuner subdev ops. Some drivers do this, others don't. So prefill
> > this in v4l2-ioctl.c based on whether the device node from which this is
> > called is a radio node or not.
> >
> > The spec does not require applications to fill in the type, and if they
> > leave it at 0 then the 'supported_mode' call in tuner-core.c will return
> > false and the ioctl does nothing.
>
> Interesting solution. Yes, this is the proper fix, but only after being sure
> that no drivers allow switch to radio using the video device, and vice-versa.
Why would that be a problem? What this patch does is that it fixes those
drivers that do *not* set vf/vt->type (i.e. leave it at 0). For those that
already
set it nothing changes.
> Unfortunately, this is not the case, currently.
>
> Most drivers allow this, following the previous V4L2 specs. Changing such
> behavior will probably require to write something at
> Documentation/feature-removal-schedule.txt, as we're changing the behavior.
I think in the longer term we need to change the spec so that:
1) Opening a radio node no longer switches to radio mode. Instead, you need to
call VIDIOC_S_FREQUENCY for that.
2) When VIDIOC_S_FREQUENCY the type field should match the video/radio node it
is called on. So for /dev/radio type should be RADIO, for others it should be
ANALOG_TV. Otherwise -EINVAL is called.
So this might be a good feature removal for 3.2 or 3.3.
Regards,
Hans
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html