Re: [PATCH 1/5] v4l2: Add rangelow and rangehigh fields to the v4l2_hw_freq_seek struct

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed 11 July 2012 20:37:14 Hans de Goede wrote:
> Hi Hans,
> 
> On 07/11/2012 08:01 PM, Hans Verkuil wrote:
> > Hi Hans,
> >
> > Thanks for the patch.
> >
> > I've CC-ed Halli as well.
> >
> > On Wed July 11 2012 17:47:34 Hans de Goede wrote:
> >> To allow apps to limit a hw-freq-seek to a specific band, for further
> >> info see the documentation this patch adds for these new fields.
> >>
> >> Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx>
> >> ---
> >>   .../DocBook/media/v4l/vidioc-s-hw-freq-seek.xml    |   44 ++++++++++++++++----
> >>   include/linux/videodev2.h                          |    5 ++-
> >>   2 files changed, 40 insertions(+), 9 deletions(-)
> >>
> >> diff --git a/Documentation/DocBook/media/v4l/vidioc-s-hw-freq-seek.xml b/Documentation/DocBook/media/v4l/vidioc-s-hw-freq-seek.xml
> >> index f4db44d..50dc9f8 100644
> >> --- a/Documentation/DocBook/media/v4l/vidioc-s-hw-freq-seek.xml
> >> +++ b/Documentation/DocBook/media/v4l/vidioc-s-hw-freq-seek.xml
> >> @@ -52,11 +52,21 @@
> >>       <para>Start a hardware frequency seek from the current frequency.
> >>   To do this applications initialize the <structfield>tuner</structfield>,
> >>   <structfield>type</structfield>, <structfield>seek_upward</structfield>,
> >> -<structfield>spacing</structfield> and
> >> -<structfield>wrap_around</structfield> fields, and zero out the
> >> -<structfield>reserved</structfield> array of a &v4l2-hw-freq-seek; and
> >> -call the <constant>VIDIOC_S_HW_FREQ_SEEK</constant> ioctl with a pointer
> >> -to this structure.</para>
> >> +<structfield>wrap_around</structfield>, <structfield>spacing</structfield>,
> >> +<structfield>rangelow</structfield> and <structfield>rangehigh</structfield>
> >> +fields, and zero out the <structfield>reserved</structfield> array of a
> >> +&v4l2-hw-freq-seek; and call the <constant>VIDIOC_S_HW_FREQ_SEEK</constant>
> >> +ioctl with a pointer to this structure.</para>
> >> +
> >> +    <para>The <structfield>rangelow</structfield> and
> >> +<structfield>rangehigh</structfield> fields can be set to a non-zero value to
> >> +tell the driver to search a specific band. If the &v4l2-tuner;
> >> +<structfield>capability</structfield> field has the
> >> +<constant>V4L2_TUNER_CAP_HWSEEK_PROG_LIM</constant> flag set, these values
> >> +must fall within one of the bands returned by &VIDIOC-ENUM-FREQ-BANDS;. If
> >> +the <constant>V4L2_TUNER_CAP_HWSEEK_PROG_LIM</constant> flag is not set,
> >> +then these values must exactly match those of one of the bands returned by
> >> +&VIDIOC-ENUM-FREQ-BANDS;.</para>
> >
> > OK, I have some questions here:
> >
> > 1) If you have a multiband tuner, what should happen if both low and high are
> > zero? Currently it is undefined, other than that the seek should start from
> > the current frequency until it reaches some limit.
> 
> That would be driver specific, we could add the same "If rangelow/high is zero
> a reasonable default value is used." language as used for the spacing. For
> example for the si470x if both are zero I simply switch to the "Japan wide"
> band which covers all frequencies handled by the other bands, but if there
> is no such covers all ranges band, then the logical thing todo would just keep
> the band as is (so as determined by the last s_freq).
> 
> > Halli, what does your hardware do? In particular, is the hwseek limited by the
> > US/Europe or Japan band range or can it do the full range? If I'm not mistaken
> > it is the former, right?
> >
> > If it is the former, then you need to explicitly set low + high to ensure that
> > the hwseek uses the correct range because the driver can't guess which of the
> > overlapping bands to use.
> >
> > 2) What happens if the current frequency is outside the low/high range? The
> > hwseek spec says that the seek starts from the current frequency, so that might
> > mean that hwseek returns -ERANGE in this case.
> 
> What the si470x code currently does is just clamp the frequency to the new
> range before seeking, but -ERANGE works for me too.

Clamping is a better idea IMHO as long as it is documented.

Regards,

	Hans
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux