From: Mauro Carvalho Chehab <mchehab@redhat.com>
To: Ezequiel Garcia <elezegarcia@gmail.com>
Cc: linux-media@vger.kernel.org, Hans Verkuil <hverkuil@xs4all.nl>
Subject: Re: [PATCH] [for 3.7] stk1160: Add support for S-Video input
Date: Tue, 9 Oct 2012 21:04:46 -0300 [thread overview]
Message-ID: <20121009210446.2abf0059@redhat.com> (raw)
In-Reply-To: <CALF0-+W-eGegmb2WPozG1qVhm7sa_E-vqZqt4x4veNCnY-BY1Q@mail.gmail.com>
Em Tue, 9 Oct 2012 20:52:06 -0300
Ezequiel Garcia <elezegarcia@gmail.com> escreveu:
> On Tue, Oct 9, 2012 at 7:25 PM, Mauro Carvalho Chehab
> <mchehab@redhat.com> wrote:
> > Em Tue, 9 Oct 2012 19:01:03 -0300
> > Ezequiel Garcia <elezegarcia@gmail.com> escreveu:
> >
> >> In order to fully replace easycap driver with stk1160,
> >> it's also necessary to add S-Video support.
> >>
> >> A similar patch backported for v3.2 kernel has been
> >> tested by three different users.
> >>
> >> Signed-off-by: Ezequiel Garcia <elezegarcia@gmail.com>
> >> ---
> >> Hi Mauro,
> >>
> >> I'm sending this for inclusion in v3.7 second media pull request.
> >> I realize it's very late, so I understand if you don't
> >> want to pick it.
> >>
> >> drivers/media/usb/stk1160/stk1160-core.c | 15 +++++++++++----
> >> drivers/media/usb/stk1160/stk1160-v4l.c | 7 ++++++-
> >> drivers/media/usb/stk1160/stk1160.h | 3 ++-
> >> 3 files changed, 19 insertions(+), 6 deletions(-)
> >>
> >> diff --git a/drivers/media/usb/stk1160/stk1160-core.c b/drivers/media/usb/stk1160/stk1160-core.c
> >> index b627408..34a26e0 100644
> >> --- a/drivers/media/usb/stk1160/stk1160-core.c
> >> +++ b/drivers/media/usb/stk1160/stk1160-core.c
> >> @@ -100,12 +100,21 @@ int stk1160_write_reg(struct stk1160 *dev, u16 reg, u16 value)
> >>
> >> void stk1160_select_input(struct stk1160 *dev)
> >> {
> >> + int route;
> >> static const u8 gctrl[] = {
> >> - 0x98, 0x90, 0x88, 0x80
> >> + 0x98, 0x90, 0x88, 0x80, 0x98
> >> };
> >>
> >> - if (dev->ctl_input < ARRAY_SIZE(gctrl))
> >> + if (dev->ctl_input == STK1160_SVIDEO_INPUT)
> >> + route = SAA7115_SVIDEO3;
> >> + else
> >> + route = SAA7115_COMPOSITE0;
> >> +
> >> + if (dev->ctl_input < ARRAY_SIZE(gctrl)) {
> >> + v4l2_device_call_all(&dev->v4l2_dev, 0, video, s_routing,
> >> + route, 0, 0);
> >> stk1160_write_reg(dev, STK1160_GCTRL, gctrl[dev->ctl_input]);
> >> + }
> >> }
> >>
> >> /* TODO: We should break this into pieces */
> >> @@ -351,8 +360,6 @@ static int stk1160_probe(struct usb_interface *interface,
> >>
> >> /* i2c reset saa711x */
> >> v4l2_device_call_all(&dev->v4l2_dev, 0, core, reset, 0);
> >> - v4l2_device_call_all(&dev->v4l2_dev, 0, video, s_routing,
> >> - 0, 0, 0);
> >> v4l2_device_call_all(&dev->v4l2_dev, 0, video, s_stream, 0);
> >>
> >> /* reset stk1160 to default values */
> >> diff --git a/drivers/media/usb/stk1160/stk1160-v4l.c b/drivers/media/usb/stk1160/stk1160-v4l.c
> >> index fe6e857..6694f9e 100644
> >> --- a/drivers/media/usb/stk1160/stk1160-v4l.c
> >> +++ b/drivers/media/usb/stk1160/stk1160-v4l.c
> >> @@ -419,7 +419,12 @@ static int vidioc_enum_input(struct file *file, void *priv,
> >> if (i->index > STK1160_MAX_INPUT)
> >> return -EINVAL;
> >>
>
> Look here... I'm returning EINVAL after STK1160_MAX_INPUT.
> (see below)
Sorry, my bad. I was, in fact, tricked by the first hunk, where you was
routing to either saa7115 video3 or composite0. Now, I noticed that this
device has an extra video switch, controlled via STK1160_GCTRL register.
Tricky.
>
> >> - sprintf(i->name, "Composite%d", i->index);
> >> + /* S-Video special handling */
> >> + if (i->index == STK1160_SVIDEO_INPUT)
> >> + sprintf(i->name, "S-Video");
> >> + else
> >> + sprintf(i->name, "Composite%d", i->index);
> >> +
> >
> > Had you ever test this patch with the v4l2-compliance tool?
> >
> > It seems broken to me: this driver has just two inputs. So, it should return
> > -EINVAL for all inputs after that, or otherwise userspace applications that
> > query the inputs will loop forever!
> >
>
> Actually the driver has five inputs, since there are two kinds of devices:
> one with four composites, and another with one composite and one s-video.
> So, I simply support all of them, since there's no way to distinguish.
Ok then.
>
> I just tested this patch with v4l2-compliance and with qv4l2 and there
> are no regressions.
>
> Unless I'm missing something, I think the patch is OK.
> Let me know if you want me to change something.
With the light of your comments, the patch looks fine on my eyes.
>
> Ezequiel.
--
Regards,
Mauro
next prev parent reply other threads:[~2012-10-10 0:04 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-09 22:01 [PATCH] [for 3.7] stk1160: Add support for S-Video input Ezequiel Garcia
2012-10-09 22:25 ` Mauro Carvalho Chehab
2012-10-09 23:52 ` Ezequiel Garcia
2012-10-10 0:04 ` Mauro Carvalho Chehab [this message]
2012-10-10 0:11 ` Mauro Carvalho Chehab
2012-10-10 0:13 ` Mauro Carvalho Chehab
2012-10-10 0:32 ` Ezequiel Garcia
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20121009210446.2abf0059@redhat.com \
--to=mchehab@redhat.com \
--cc=elezegarcia@gmail.com \
--cc=hverkuil@xs4all.nl \
--cc=linux-media@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox