[PATCH 1/2] v4l2: Add decoding for VIDIOC_G/S_TUNER's arg

Eugene Syromyatnikov evgsyr at gmail.com
Mon May 1 13:38:26 UTC 2017


On Mon, May 1, 2017 at 1:25 PM, Edgar Kaziahmedov <edos at linux.com> wrote:
> On Mon, 1 May 2017 16:09:19 +0300
> Edgar Kaziahmedov <edos at linux.com> wrote:
>
>> On Sun, 23 Apr 2017 04:53:47 +0300
>> Edgar Kaziahmedov <edos at linux.com> wrote:
>>
>> > * v4l2.c: Include "xlat/v4l2_tuner_types.h",
>> > "xlat/v4l2_tuner_capabilities.h", "xlat/v4l2_tuner_rxsubchanses.h",
>> > and "xlat/v4l2_tuner_audmodes.h". (print_v4l2_tuner): New function.
>> > Add decoding for VIDIOC_G/S_TUNER's arg. (v4l2_ioctl): Add new cases
>> > for decoding VIDIOC_G/S_TUNER's arg.
>> > * xlat/v4l2_tuner_types.in: Add V4L2_TUNER_RADIO and
>> > V4L2_TUNER_ANALOG_TV introduced by linux kernel commit
>> > 2.5.46~39^2~23^2~4.
>> > Add V4L2_TUNER_DIGITAL_TV introduced by linux kernel
>> > commit v2.6.11-rc4~55^2~20.
>> > Add V4L2_TUNER_ADC and V4L2_TUNER_RF introduced by linux kernel
>> > commit v3.15-rc1~85^2~215.
>> > Add V4L2_TUNER_SDR introduced by linux kernel commit
>> > v4.4-rc1~118^2~17 (as the replacement of V4L2_TUNER_ADC).
>> > * xlat/v4l2_tuner_capabilities.in: Add V4L2_TUNER_CAP_LOW,
>> > V4L2_TUNER_CAP_NORM, V4L2_TUNER_CAP_STEREO, V4L2_TUNER_CAP_LANG2,
>> > V4L2_TUNER_CAP_SAP, and V4L2_TUNER_CAP_LANG1 introduced by linux
>> > kernel commit 2.5.46~39^2~23^2~4.
>> > Add V4L2_TUNER_CAP_HWSEEK_BOUNDED and V4L2_TUNER_CAP_HWSEEK_WRAP
>> > introduced by linux kernel commit v3.6-rc1~28^2~306.
>> > Add V4L2_TUNER_CAP_RDS introduced by linux commit
>> > v2.6.32-rc1~679^2~189. Add V4L2_TUNER_CAP_RDS_BLOCK_IO and
>> > V4L2_TUNER_CAP_RDS_CONTROLS introduced by linux kernel commit
>> > v2.6.37-rc1~64^2~110. Add V4L2_TUNER_CAP_FREQ_BANDS introduced by
>> > linux kernel commit v3.6-rc1~28^2~46.
>> > Add V4L2_TUNER_CAP_HWSEEK_PROG_LIM introduced by linux kernel commit
>> > v3.6-rc1~28^2~40.
>> > Add V4L2_TUNER_CAP_1HZ introduced by linux kernel commit
>> > v3.15-rc1~85^2~214.
>> > * xlat/v4l2_tuner_audmodes.in: Add V4L2_TUNER_MODE_MONO,
>> > V4L2_TUNER_MODE_STEREO, V4L2_TUNER_MODE_LANG2, V4L2_TUNER_MODE_SAP,
>> > and V4L2_TUNER_MODE_LANG1 introduced by linux kernel commit
>> > 2.5.46~39^2~23^2~4.
>> > Add V4L2_TUNER_MODE_LANG1_LANG2 introduced by linux kernel commit
>> > v2.6.17-rc1~739^2~9.
>> > * xlat/v4l2_tuner_rxsubchanses.in: Add V4L2_TUNER_SUB_MONO,
>> > V4L2_TUNER_SUB_STEREO, V4L2_TUNER_SUB_LANG2, V4L2_TUNER_SUB_SAP, and
>> > V4L2_TUNER_SUB_LANG1 introduced by linux kernel commit
>> > 2.5.46~39^2~23^2~4.
>> > Add V4L2_TUNER_SUB_RDS introduced by linux kernel commit
>> > v2.6.32-rc1~679^2~189.
>> >
>> > Signed-off-by: Edgar Kaziahmedov <edos at linux.com>
>> > ---
>> >  v4l2.c                          | 53
>> > +++++++++++++++++++++++++++++++++++++++++
>> > xlat/v4l2_tuner_audmodes.in     |  6 +++++
>> > xlat/v4l2_tuner_capabilities.in | 14 +++++++++++
>> > xlat/v4l2_tuner_rxsubchanses.in |  6 +++++
>> > xlat/v4l2_tuner_types.in        |  6 +++++ 5 files changed, 85
>> > insertions(+) create mode 100644 xlat/v4l2_tuner_audmodes.in
>> >  create mode 100644 xlat/v4l2_tuner_capabilities.in
>> >  create mode 100644 xlat/v4l2_tuner_rxsubchanses.in
>> >  create mode 100644 xlat/v4l2_tuner_types.in
>> >
>> > diff --git a/v4l2.c b/v4l2.c
>> > index ee833c12..8c9a1927 100644
>> > --- a/v4l2.c
>> > +++ b/v4l2.c
>> > @@ -629,6 +629,55 @@ print_v4l2_control(struct tcb *const tcp, const
>> > kernel_ulong_t arg, return 1;
>> >  }
>> >
>> > +
>> > +#include "xlat/v4l2_tuner_types.h"
>> > +#include "xlat/v4l2_tuner_capabilities.h"
>> > +#include "xlat/v4l2_tuner_rxsubchanses.h"
>> > +#include "xlat/v4l2_tuner_audmodes.h"
>> > +
>> > +static int
>> > +print_v4l2_tuner(struct tcb *const tcp, const kernel_ulong_t arg,
>> > +            const bool is_get)
>> > +{
>> > +   struct v4l2_tuner c;
>> > +   if (entering(tcp)) {
>> > +           tprints(", ");
>> > +           if (umove_or_printaddr(tcp, arg, &c))
>> > +                   return RVAL_DECODED | 1;
>> > +           tprintf("{index=%u", c.index);
>> > +           if (is_get)
>> > +                   return 0;
>> > +           tprints(", ");
>> > +   } else {
>> > +           if (syserror(tcp) || umove(tcp, arg, &c) < 0) {
>> > +                   tprints("}");
>> > +                   return 1;
>> > +           }
>> > +           tprints(is_get ? ", " : " => ");
>> > +   }
>> > +
>> > +   tprints("name=");
>> > +   print_quoted_string((const char *) c.name, sizeof(c.name),
>> > +                       QUOTE_0_TERMINATED);
>> > +   tprints(", type=");
>> > +   printxval(v4l2_tuner_types, c.type, "V4L2_TUNER_TYPE_???");
>> > +   tprints(", capability=");
>> > +   printxval(v4l2_tuner_capabilities, c.capability,
>> > +             "V4L2_TUNER_CAP_???");
>> > +   tprintf(", rangelow=%u, rangehigh=%u, rxsubchans=",
>> > +           c.rangelow, c.rangehigh);
>> > +   printxval(v4l2_tuner_rxsubchanses, c.rxsubchans,
>> > +             "V4L2_TUNER_SUB_???");
>> > +   tprints(", audmode=");
>> > +   printxval(v4l2_tuner_audmodes, c.audmode,
>> > +             "V4L2_TUNER_MODE_???");
>> > +   tprintf(", signal=%d, afc=%d", c.signal, c.afc);
>> > +
>> > +   if (exiting(tcp))
>> > +           tprints("}");
>> > +   return 1;
>> > +}
>> > +
>> >  #include "xlat/v4l2_control_types.h"
>> >  #include "xlat/v4l2_control_flags.h"
>> >
>> > @@ -971,6 +1020,10 @@ MPERS_PRINTER_DECL(int, v4l2_ioctl, struct tcb
>> > *const tcp, case VIDIOC_S_CTRL: /* RW */
>> >             return print_v4l2_control(tcp, arg, code ==
>> > VIDIOC_G_CTRL);
>> > +   case VIDIOC_G_TUNER: /* RW */
>> > +   case VIDIOC_S_TUNER: /* RW */
>> > +           return print_v4l2_tuner(tcp, arg, code ==
>> > VIDIOC_G_TUNER); +
>> >     case VIDIOC_QUERYCTRL: /* RW */
>> >             return print_v4l2_queryctrl(tcp, arg);
>> >
>> > diff --git a/xlat/v4l2_tuner_audmodes.in
>> > b/xlat/v4l2_tuner_audmodes.in new file mode 100644
>> > index 00000000..82decabf
>> > --- /dev/null
>> > +++ b/xlat/v4l2_tuner_audmodes.in
>> > @@ -0,0 +1,6 @@
>> > +V4L2_TUNER_MODE_MONO
>> > +V4L2_TUNER_MODE_STEREO
>> > +V4L2_TUNER_MODE_LANG2
>> > +V4L2_TUNER_MODE_SAP
>> > +V4L2_TUNER_MODE_LANG1
>> > +V4L2_TUNER_MODE_LANG1_LANG2
>> > diff --git a/xlat/v4l2_tuner_capabilities.in
>> > b/xlat/v4l2_tuner_capabilities.in new file mode 100644
>> > index 00000000..4aec41eb
>> > --- /dev/null
>> > +++ b/xlat/v4l2_tuner_capabilities.in
>> > @@ -0,0 +1,14 @@
>> > +V4L2_TUNER_CAP_LOW
>> > +V4L2_TUNER_CAP_NORM
>> > +V4L2_TUNER_CAP_HWSEEK_BOUNDED
>> > +V4L2_TUNER_CAP_HWSEEK_WRAP
>> > +V4L2_TUNER_CAP_STEREO
>> > +V4L2_TUNER_CAP_LANG2
>> > +V4L2_TUNER_CAP_SAP
>> > +V4L2_TUNER_CAP_LANG1
>> > +V4L2_TUNER_CAP_RDS
>> > +V4L2_TUNER_CAP_RDS_BLOCK_IO
>> > +V4L2_TUNER_CAP_RDS_CONTROLS
>> > +V4L2_TUNER_CAP_FREQ_BANDS
>> > +V4L2_TUNER_CAP_HWSEEK_PROG_LIM
>> > +V4L2_TUNER_CAP_1HZ
>> > diff --git a/xlat/v4l2_tuner_rxsubchanses.in
>> > b/xlat/v4l2_tuner_rxsubchanses.in new file mode 100644
>> > index 00000000..c6d59e95
>> > --- /dev/null
>> > +++ b/xlat/v4l2_tuner_rxsubchanses.in
>> > @@ -0,0 +1,6 @@
>> > +V4L2_TUNER_SUB_MONO
>> > +V4L2_TUNER_SUB_STEREO
>> > +V4L2_TUNER_SUB_LANG2
>> > +V4L2_TUNER_SUB_SAP
>> > +V4L2_TUNER_SUB_LANG1
>> > +V4L2_TUNER_SUB_RDS
>> > diff --git a/xlat/v4l2_tuner_types.in b/xlat/v4l2_tuner_types.in
>> > new file mode 100644
>> > index 00000000..59a9f3a3
>> > --- /dev/null
>> > +++ b/xlat/v4l2_tuner_types.in
>> > @@ -0,0 +1,6 @@
>> > +V4L2_TUNER_RADIO
>> > +V4L2_TUNER_ANALOG_TV
>> > +V4L2_TUNER_DIGITAL_TV
>> > +V4L2_TUNER_ADC
>> > +V4L2_TUNER_SDR
>> > +V4L2_TUNER_RF
>>
>> I'm sorry for disturbing, but are you going to look the last one
>> patch?
>
> I'm sorry for disturbing, but are you going to look the last one patch?
Are you referring to commit 99bade991795dea26a0234ddd9b2c54aa2f2b737,
which was applied 9 days ago?

> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> Strace-devel mailing list
> Strace-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/strace-devel
>



-- 
Eugene Syromyatnikov
mailto:evgsyr at gmail.com
xmpp:esyr at jabber.{ru|org}




More information about the Strace-devel mailing list