From: Mauro Carvalho Chehab <mchehab@s-opensource.com> To: Pavel Machek <pavel@ucw.cz> Cc: pali.rohar@gmail.com, sre@kernel.org, kernel list <linux-kernel@vger.kernel.org>, linux-arm-kernel <linux-arm-kernel@lists.infradead.org>, linux-omap@vger.kernel.org, tony@atomide.com, khilman@kernel.org, aaro.koskinen@iki.fi, ivo.g.dimitrov.75@gmail.com, patrikbachan@gmail.com, serge@hallyn.com, abcloriens@gmail.com, Sakari Ailus <sakari.ailus@iki.fi>, Sakari Ailus <sakari.ailus@linux.intel.com>, linux-media@vger.kernel.org Subject: Re: [patch] propagating controls in libv4l2 was Re: support autofocus / autogain in libv4l2 Date: Wed, 26 Apr 2017 08:13:38 -0300 [thread overview] Message-ID: <20170426081330.6ca10e42@vento.lan> (raw) In-Reply-To: <20170426105300.GA857@amd> Hi Pavel, Em Wed, 26 Apr 2017 12:53:00 +0200 Pavel Machek <pavel@ucw.cz> escreveu: > Hi! > > > > > IMO, the best place for autofocus is at libv4l2. Putting it on a > > > > separate "video server" application looks really weird for me. > > > > > > Well... let me see. libraries are quite limited -- it is hard to open > > > files, or use threads/have custom main loop. It may be useful to > > > switch resolutions -- do autofocus/autogain at lower resolution, then > > > switch to high one for taking picture. It would be good to have that > > > in "system" code, but I'm not at all sure libv4l2 design will allow > > > that. > > > > I don't see why it would be hard to open files or have threads inside > > a library. There are several libraries that do that already, specially > > the ones designed to be used on multimidia apps. > > Well, This is what the libv4l2 says: > > This file implements libv4l2, which offers v4l2_ prefixed versions > of > open/close/etc. The API is 100% the same as directly opening > /dev/videoX > using regular open/close/etc, the big difference is that format > conversion > > but if I open additional files in v4l2_open(), API is no longer the > same, as unix open() is defined to open just one file descriptor. > > Now. There is autogain support in libv4lconvert, but it expects to use > same fd for camera and for the gain... which does not work with > subdevs. > > Of course, opening subdevs by name like this is not really > acceptable. But can you suggest a method that is? There are two separate things here: 1) Autofoucs for a device that doesn't use subdev API 2) libv4l2 support for devices that require MC and subdev API for (1), it should use the /dev/videoX device that was opened with v4l2_open(). For (2), libv4l2 should be aware of MC and subdev APIs. Sakari once tried to write a libv4l2 plugin for OMAP3, but never finished it. A more recent trial were to add a libv4l2 plugin for Exynos. Unfortunately, none of those code got merged. Last time I checked, the Exynos plugin was almost ready to be merged, but Sakari asked some changes on it. The developer that was working on it got job on some other company. Last time I heard from him, he was still interested on finishing his work, but in the need to setup a test environment using his own devices. So, currently, there's no code at all adding MC/subdev API support merged at libv4l2. - IMHO, the right thing to do with regards to autofocus is to implement it via a processing module, assuming that just one video device is opened. Then, add a N900 plugin to make libv4l2 aware of OMAP3 specifics. After that, rework at the processing module to let it use a different file descriptor if such plugin is in usage. - The hole idea is that a libv4l2 client, running on a N900 device would just open a fake /dev/video0. Internally, libv4l2 will open whatever video nodes it needs to control the device, exporting all hardware capabilities (video formats, controls, resolutions, etc) as if it was a normal V4L2 camera, hiding all dirty details about MC and subdev APIs from userspace application. This way, a normal application, like xawtv, tvtime, camorama, zbar, mplayer, vlc, ... will work without any changes. > > Thanks, > Pavel > > commit 4cf9d10ead014c0db25452e4bb9cd144632407c3 > Author: Pavel <pavel@ucw.cz> > Date: Wed Apr 26 11:38:04 2017 +0200 > > Add subdevices. > > diff --git a/lib/libv4l2/libv4l2-priv.h b/lib/libv4l2/libv4l2-priv.h > index 343db5e..a6bc48e 100644 > --- a/lib/libv4l2/libv4l2-priv.h > +++ b/lib/libv4l2/libv4l2-priv.h > @@ -26,6 +26,7 @@ > #include "../libv4lconvert/libv4lsyscall-priv.h" > > #define V4L2_MAX_DEVICES 16 > +#define V4L2_MAX_SUBDEVS 8 > /* Warning when making this larger the frame_queued and frame_mapped members of > the v4l2_dev_info struct can no longer be a bitfield, so the code needs to > be adjusted! */ > @@ -104,6 +105,7 @@ struct v4l2_dev_info { > void *plugin_library; > void *dev_ops_priv; > const struct libv4l_dev_ops *dev_ops; > + int subdev_fds[V4L2_MAX_SUBDEVS]; > }; > > /* From v4l2-plugin.c */ > diff --git a/lib/libv4l2/libv4l2.c b/lib/libv4l2/libv4l2.c > index 0ba0a88..edc9642 100644 > --- a/lib/libv4l2/libv4l2.c > +++ b/lib/libv4l2/libv4l2.c > @@ -1,3 +1,4 @@ > +/* -*- c-file-style: "linux" -*- */ > /* > # (C) 2008 Hans de Goede <hdegoede@redhat.com> > > @@ -789,18 +790,25 @@ no_capture: > > /* Note we always tell v4lconvert to optimize src fmt selection for > our default fps, the only exception is the app explicitly selecting > - a fram erate using the S_PARM ioctl after a S_FMT */ > + a frame rate using the S_PARM ioctl after a S_FMT */ > if (devices[index].convert) > v4lconvert_set_fps(devices[index].convert, V4L2_DEFAULT_FPS); > v4l2_update_fps(index, &parm); > > + devices[index].subdev_fds[0] = SYS_OPEN("/dev/video_sensor", O_RDWR, 0); > + devices[index].subdev_fds[1] = SYS_OPEN("/dev/video_focus", O_RDWR, 0); > + devices[index].subdev_fds[2] = -1; > + > + printf("Sensor: %d, focus: %d\n", devices[index].subdev_fds[0], > + devices[index].subdev_fds[1]); > + > V4L2_LOG("open: %d\n", fd); > > return fd; > } > > /* Is this an fd for which we are emulating v4l1 ? */ > -static int v4l2_get_index(int fd) > +int v4l2_get_index(int fd) > { > int index; > > > commit 1d6a9ce121f53e8f2e38549eed597a3c3dea5233 > Author: Pavel <pavel@ucw.cz> > Date: Wed Apr 26 12:34:04 2017 +0200 > > Enable ioctl propagation. > > diff --git a/lib/libv4l2/libv4l2.c b/lib/libv4l2/libv4l2.c > index edc9642..6dab661 100644 > --- a/lib/libv4l2/libv4l2.c > +++ b/lib/libv4l2/libv4l2.c > @@ -1064,6 +1064,23 @@ static int v4l2_s_fmt(int index, struct v4l2_format *dest_fmt) > return 0; > } > > +static int v4l2_propagate_ioctl(int index, unsigned long request, void *arg) > +{ > + int i = 0; > + int result; > + while (1) { > + if (devices[index].subdev_fds[i] == -1) > + return -1; > + printf("g_ctrl failed, trying...\n"); > + result = SYS_IOCTL(devices[index].subdev_fds[i], request, arg); > + printf("subdev %d result %d\n", i, result); > + if (result == 0) > + return 0; > + i++; > + } > + return -1; > +} > + > int v4l2_ioctl(int fd, unsigned long int request, ...) > { > void *arg; > @@ -1193,14 +1210,20 @@ no_capture_request: > switch (request) { > case VIDIOC_QUERYCTRL: > result = v4lconvert_vidioc_queryctrl(devices[index].convert, arg); > + if (result == -1) > + result = v4l2_propagate_ioctl(index, request, arg); > break; > > case VIDIOC_G_CTRL: > result = v4lconvert_vidioc_g_ctrl(devices[index].convert, arg); > + if (result == -1) > + result = v4l2_propagate_ioctl(index, request, arg); > break; > > case VIDIOC_S_CTRL: > result = v4lconvert_vidioc_s_ctrl(devices[index].convert, arg); > + if (result == -1) > + result = v4l2_propagate_ioctl(index, request, arg); > break; > > case VIDIOC_G_EXT_CTRLS: > > Thanks, Mauro
WARNING: multiple messages have this Message-ID (diff)
From: mchehab@s-opensource.com (Mauro Carvalho Chehab) To: linux-arm-kernel@lists.infradead.org Subject: [patch] propagating controls in libv4l2 was Re: support autofocus / autogain in libv4l2 Date: Wed, 26 Apr 2017 08:13:38 -0300 [thread overview] Message-ID: <20170426081330.6ca10e42@vento.lan> (raw) In-Reply-To: <20170426105300.GA857@amd> Hi Pavel, Em Wed, 26 Apr 2017 12:53:00 +0200 Pavel Machek <pavel@ucw.cz> escreveu: > Hi! > > > > > IMO, the best place for autofocus is at libv4l2. Putting it on a > > > > separate "video server" application looks really weird for me. > > > > > > Well... let me see. libraries are quite limited -- it is hard to open > > > files, or use threads/have custom main loop. It may be useful to > > > switch resolutions -- do autofocus/autogain at lower resolution, then > > > switch to high one for taking picture. It would be good to have that > > > in "system" code, but I'm not at all sure libv4l2 design will allow > > > that. > > > > I don't see why it would be hard to open files or have threads inside > > a library. There are several libraries that do that already, specially > > the ones designed to be used on multimidia apps. > > Well, This is what the libv4l2 says: > > This file implements libv4l2, which offers v4l2_ prefixed versions > of > open/close/etc. The API is 100% the same as directly opening > /dev/videoX > using regular open/close/etc, the big difference is that format > conversion > > but if I open additional files in v4l2_open(), API is no longer the > same, as unix open() is defined to open just one file descriptor. > > Now. There is autogain support in libv4lconvert, but it expects to use > same fd for camera and for the gain... which does not work with > subdevs. > > Of course, opening subdevs by name like this is not really > acceptable. But can you suggest a method that is? There are two separate things here: 1) Autofoucs for a device that doesn't use subdev API 2) libv4l2 support for devices that require MC and subdev API for (1), it should use the /dev/videoX device that was opened with v4l2_open(). For (2), libv4l2 should be aware of MC and subdev APIs. Sakari once tried to write a libv4l2 plugin for OMAP3, but never finished it. A more recent trial were to add a libv4l2 plugin for Exynos. Unfortunately, none of those code got merged. Last time I checked, the Exynos plugin was almost ready to be merged, but Sakari asked some changes on it. The developer that was working on it got job on some other company. Last time I heard from him, he was still interested on finishing his work, but in the need to setup a test environment using his own devices. So, currently, there's no code at all adding MC/subdev API support merged at libv4l2. - IMHO, the right thing to do with regards to autofocus is to implement it via a processing module, assuming that just one video device is opened. Then, add a N900 plugin to make libv4l2 aware of OMAP3 specifics. After that, rework at the processing module to let it use a different file descriptor if such plugin is in usage. - The hole idea is that a libv4l2 client, running on a N900 device would just open a fake /dev/video0. Internally, libv4l2 will open whatever video nodes it needs to control the device, exporting all hardware capabilities (video formats, controls, resolutions, etc) as if it was a normal V4L2 camera, hiding all dirty details about MC and subdev APIs from userspace application. This way, a normal application, like xawtv, tvtime, camorama, zbar, mplayer, vlc, ... will work without any changes. > > Thanks, > Pavel > > commit 4cf9d10ead014c0db25452e4bb9cd144632407c3 > Author: Pavel <pavel@ucw.cz> > Date: Wed Apr 26 11:38:04 2017 +0200 > > Add subdevices. > > diff --git a/lib/libv4l2/libv4l2-priv.h b/lib/libv4l2/libv4l2-priv.h > index 343db5e..a6bc48e 100644 > --- a/lib/libv4l2/libv4l2-priv.h > +++ b/lib/libv4l2/libv4l2-priv.h > @@ -26,6 +26,7 @@ > #include "../libv4lconvert/libv4lsyscall-priv.h" > > #define V4L2_MAX_DEVICES 16 > +#define V4L2_MAX_SUBDEVS 8 > /* Warning when making this larger the frame_queued and frame_mapped members of > the v4l2_dev_info struct can no longer be a bitfield, so the code needs to > be adjusted! */ > @@ -104,6 +105,7 @@ struct v4l2_dev_info { > void *plugin_library; > void *dev_ops_priv; > const struct libv4l_dev_ops *dev_ops; > + int subdev_fds[V4L2_MAX_SUBDEVS]; > }; > > /* From v4l2-plugin.c */ > diff --git a/lib/libv4l2/libv4l2.c b/lib/libv4l2/libv4l2.c > index 0ba0a88..edc9642 100644 > --- a/lib/libv4l2/libv4l2.c > +++ b/lib/libv4l2/libv4l2.c > @@ -1,3 +1,4 @@ > +/* -*- c-file-style: "linux" -*- */ > /* > # (C) 2008 Hans de Goede <hdegoede@redhat.com> > > @@ -789,18 +790,25 @@ no_capture: > > /* Note we always tell v4lconvert to optimize src fmt selection for > our default fps, the only exception is the app explicitly selecting > - a fram erate using the S_PARM ioctl after a S_FMT */ > + a frame rate using the S_PARM ioctl after a S_FMT */ > if (devices[index].convert) > v4lconvert_set_fps(devices[index].convert, V4L2_DEFAULT_FPS); > v4l2_update_fps(index, &parm); > > + devices[index].subdev_fds[0] = SYS_OPEN("/dev/video_sensor", O_RDWR, 0); > + devices[index].subdev_fds[1] = SYS_OPEN("/dev/video_focus", O_RDWR, 0); > + devices[index].subdev_fds[2] = -1; > + > + printf("Sensor: %d, focus: %d\n", devices[index].subdev_fds[0], > + devices[index].subdev_fds[1]); > + > V4L2_LOG("open: %d\n", fd); > > return fd; > } > > /* Is this an fd for which we are emulating v4l1 ? */ > -static int v4l2_get_index(int fd) > +int v4l2_get_index(int fd) > { > int index; > > > commit 1d6a9ce121f53e8f2e38549eed597a3c3dea5233 > Author: Pavel <pavel@ucw.cz> > Date: Wed Apr 26 12:34:04 2017 +0200 > > Enable ioctl propagation. > > diff --git a/lib/libv4l2/libv4l2.c b/lib/libv4l2/libv4l2.c > index edc9642..6dab661 100644 > --- a/lib/libv4l2/libv4l2.c > +++ b/lib/libv4l2/libv4l2.c > @@ -1064,6 +1064,23 @@ static int v4l2_s_fmt(int index, struct v4l2_format *dest_fmt) > return 0; > } > > +static int v4l2_propagate_ioctl(int index, unsigned long request, void *arg) > +{ > + int i = 0; > + int result; > + while (1) { > + if (devices[index].subdev_fds[i] == -1) > + return -1; > + printf("g_ctrl failed, trying...\n"); > + result = SYS_IOCTL(devices[index].subdev_fds[i], request, arg); > + printf("subdev %d result %d\n", i, result); > + if (result == 0) > + return 0; > + i++; > + } > + return -1; > +} > + > int v4l2_ioctl(int fd, unsigned long int request, ...) > { > void *arg; > @@ -1193,14 +1210,20 @@ no_capture_request: > switch (request) { > case VIDIOC_QUERYCTRL: > result = v4lconvert_vidioc_queryctrl(devices[index].convert, arg); > + if (result == -1) > + result = v4l2_propagate_ioctl(index, request, arg); > break; > > case VIDIOC_G_CTRL: > result = v4lconvert_vidioc_g_ctrl(devices[index].convert, arg); > + if (result == -1) > + result = v4l2_propagate_ioctl(index, request, arg); > break; > > case VIDIOC_S_CTRL: > result = v4lconvert_vidioc_s_ctrl(devices[index].convert, arg); > + if (result == -1) > + result = v4l2_propagate_ioctl(index, request, arg); > break; > > case VIDIOC_G_EXT_CTRLS: > > Thanks, Mauro
next prev parent reply other threads:[~2017-04-26 11:13 UTC|newest] Thread overview: 152+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-02-14 12:20 [PATCH v3 0/2] v4l: Add camera voice coil lens control class, current control Sakari Ailus 2017-02-14 12:20 ` [PATCH v3 1/2] " Sakari Ailus 2017-02-14 22:47 ` Pavel Machek 2017-02-15 7:15 ` Sakari Ailus 2017-02-15 8:09 ` Pavel Machek 2017-02-20 22:26 ` Sakari Ailus 2017-02-20 22:48 ` Pavel Machek 2017-04-15 2:23 ` Mauro Carvalho Chehab 2017-04-15 7:12 ` Pavel Machek 2017-04-16 9:12 ` Sakari Ailus 2017-04-19 13:51 ` Mauro Carvalho Chehab 2017-04-24 9:30 ` support autofocus / autogain in libv4l2 Pavel Machek 2017-04-24 13:38 ` Mauro Carvalho Chehab 2017-04-24 13:38 ` Mauro Carvalho Chehab 2017-04-24 21:29 ` Pavel Machek 2017-04-24 21:29 ` Pavel Machek 2017-04-25 1:47 ` Mauro Carvalho Chehab 2017-04-25 1:47 ` Mauro Carvalho Chehab 2017-04-25 8:05 ` Pavel Machek 2017-04-25 8:05 ` Pavel Machek 2017-04-25 8:08 ` Pali Rohár 2017-04-25 8:08 ` Pali Rohár 2017-04-25 8:08 ` Pali Rohár 2017-04-25 11:23 ` Pavel Machek 2017-04-25 11:23 ` Pavel Machek 2017-04-25 11:30 ` Pali Rohár 2017-04-25 11:30 ` Pali Rohár 2017-04-25 12:28 ` Pavel Machek 2017-04-25 12:28 ` Pavel Machek 2017-04-25 12:51 ` Pali Rohár 2017-04-25 12:51 ` Pali Rohár 2017-04-25 16:55 ` Nicolas Dufresne 2017-04-25 16:55 ` Nicolas Dufresne 2017-04-25 16:51 ` Nicolas Dufresne 2017-04-25 16:51 ` Nicolas Dufresne 2017-04-25 16:53 ` Nicolas Dufresne 2017-04-25 16:53 ` Nicolas Dufresne 2017-04-25 16:53 ` Nicolas Dufresne 2017-04-26 10:53 ` Pavel Machek 2017-04-26 10:53 ` Pavel Machek 2017-04-26 10:53 ` [patch] propagating controls in libv4l2 was " Pavel Machek 2017-04-26 10:53 ` Pavel Machek 2017-04-26 11:13 ` Mauro Carvalho Chehab [this message] 2017-04-26 11:13 ` Mauro Carvalho Chehab 2017-04-26 13:23 ` [patch] autogain support for bayer10 format (was Re: [patch] propagating controls in libv4l2) Pavel Machek 2017-04-26 13:23 ` Pavel Machek 2017-04-26 15:43 ` Ivaylo Dimitrov 2017-04-26 15:43 ` Ivaylo Dimitrov 2017-04-26 22:51 ` Pavel Machek 2017-04-26 22:51 ` Pavel Machek 2017-04-26 22:51 ` Pavel Machek 2017-04-27 5:52 ` Ivaylo Dimitrov 2017-04-27 5:52 ` Ivaylo Dimitrov 2017-07-13 7:57 ` Pavel Machek 2017-07-13 7:57 ` Pavel Machek 2017-05-03 19:05 ` Russell King - ARM Linux 2017-05-03 19:05 ` Russell King - ARM Linux 2017-05-03 19:58 ` Pavel Machek 2017-05-03 19:58 ` Pavel Machek 2017-05-08 22:28 ` [patch, libv4l]: fix integer overflow Pavel Machek 2017-05-09 6:29 ` Hans Verkuil 2017-05-09 6:32 ` Hans Verkuil 2017-05-09 8:02 ` Pavel Machek 2017-05-09 10:59 ` [patch, libv4l]: fix typos Pavel Machek 2017-05-09 11:01 ` [patch, libv4l]: Add support for GRBG10 format conversion Pavel Machek 2017-05-09 11:04 ` [patch, libv4l]: Introduce define for lookup table size Pavel Machek 2017-05-16 11:17 ` Hans Verkuil 2017-05-16 12:45 ` Pavel Machek 2017-05-16 12:56 ` Hans Verkuil 2017-05-16 23:23 ` Pavel Machek 2017-05-19 9:13 ` [libv4l]: How to do 10-bit support? Stand-alone conversions? Pavel Machek 2018-03-16 20:55 ` [RFC, libv4l]: Make libv4l2 usable on devices with complex pipeline Pavel Machek 2018-03-19 9:47 ` Hans Verkuil 2018-03-19 10:23 ` Pavel Machek 2018-03-19 10:47 ` Mauro Carvalho Chehab 2018-03-19 11:11 ` Hans Verkuil 2018-03-19 12:00 ` Pavel Machek 2018-03-19 12:15 ` Hans Verkuil 2018-03-19 12:48 ` Pavel Machek 2018-03-19 13:29 ` Hans Verkuil 2018-03-19 22:18 ` Pavel Machek 2018-03-19 13:45 ` Mauro Carvalho Chehab 2018-03-19 13:26 ` Mauro Carvalho Chehab 2018-03-20 7:50 ` Pavel Machek 2018-05-15 20:01 ` Pavel Machek 2018-05-15 22:03 ` Mauro Carvalho Chehab 2018-05-16 20:53 ` Pavel Machek 2018-06-02 21:01 ` Pavel Machek 2018-06-06 6:18 ` Tomasz Figa 2018-06-06 8:46 ` Pavel Machek 2018-06-06 8:53 ` Tomasz Figa 2018-06-06 10:01 ` Pavel Machek 2018-06-06 16:57 ` Mauro Carvalho Chehab 2018-06-06 21:27 ` Pavel Machek 2018-06-07 12:22 ` [PATCH, " Pavel Machek 2018-06-06 10:51 ` [RFC, " Pavel Machek 2018-06-06 11:16 ` Tomasz Figa 2018-06-06 20:37 ` Pavel Machek 2018-06-06 17:13 ` Mauro Carvalho Chehab 2018-06-06 10:23 ` Pavel Machek 2018-06-07 7:25 ` Pavel Machek 2017-05-09 11:10 ` [patch, libv4l]: fix integer overflow Pavel Machek 2017-05-16 10:42 ` Pavel Machek 2017-05-21 10:33 ` [patch, libv4l]: add sdlcam example for testing digital still camera functionality Pavel Machek 2017-05-26 20:41 ` Pavel Machek 2017-05-27 9:27 ` Hans Verkuil 2017-05-29 6:13 ` Hans Verkuil 2017-05-29 7:32 ` Pavel Machek 2017-05-29 8:02 ` Hans Verkuil 2017-06-14 11:16 ` Sakari Ailus 2017-06-14 20:41 ` Pavel Machek 2017-07-13 8:36 ` Pavel Machek 2017-05-09 8:07 ` [patch, libv4l]: fix integer overflow Pavel Machek 2017-04-30 22:48 ` [patch] autogain support for bayer10 format (was Re: [patch] propagating controls in libv4l2) Pavel Machek 2017-04-30 22:48 ` Pavel Machek 2017-07-13 9:49 ` [patch] propagating controls in libv4l2 was Re: support autofocus / autogain in libv4l2 Pavel Machek 2017-07-13 9:49 ` Pavel Machek 2017-04-26 11:26 ` Mauro Carvalho Chehab 2017-04-26 11:26 ` Mauro Carvalho Chehab 2017-04-29 9:19 ` Pavel Machek 2017-04-29 9:19 ` Pavel Machek 2017-10-21 22:00 ` Camera support, Prague next week, sdlcam Pavel Machek 2017-10-22 7:36 ` Hans Verkuil 2017-10-22 7:36 ` Hans Verkuil 2017-10-22 8:31 ` Pavel Machek 2017-10-22 8:31 ` Pavel Machek 2017-10-23 18:54 ` Pavel Machek 2017-10-23 18:54 ` Pavel Machek 2017-10-23 19:24 ` Hans Verkuil 2017-10-23 19:24 ` Hans Verkuil 2017-10-23 20:15 ` Sakari Ailus 2017-10-23 20:15 ` Sakari Ailus 2017-10-23 21:02 ` Mauro Carvalho Chehab 2017-10-23 21:02 ` Mauro Carvalho Chehab 2017-10-31 21:28 ` Nokia N9: fun with camera Pavel Machek 2017-11-01 6:36 ` Pavel Machek 2017-11-01 6:36 ` Pavel Machek 2017-11-01 15:32 ` Pavel Machek 2017-11-01 15:32 ` Pavel Machek 2017-04-24 22:07 ` support autofocus / autogain in libv4l2 Pavel Machek 2017-04-24 22:07 ` Pavel Machek 2017-04-25 1:57 ` Mauro Carvalho Chehab 2017-04-25 1:57 ` Mauro Carvalho Chehab 2017-04-25 8:20 ` Pavel Machek 2017-04-25 8:20 ` Pavel Machek 2017-04-25 11:23 ` Pavel Machek 2017-04-25 11:23 ` Pavel Machek 2017-04-28 22:00 ` [PATCH v3 1/2] v4l: Add camera voice coil lens control class, current control Pavel Machek 2017-04-29 1:46 ` Mauro Carvalho Chehab 2017-05-12 10:49 ` Sakari Ailus 2017-05-13 11:08 ` Pavel Machek 2017-02-14 12:20 ` [PATCH v3 2/2] ad5820: Use VOICE_COIL_CURRENT control Sakari Ailus
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=20170426081330.6ca10e42@vento.lan \ --to=mchehab@s-opensource.com \ --cc=aaro.koskinen@iki.fi \ --cc=abcloriens@gmail.com \ --cc=ivo.g.dimitrov.75@gmail.com \ --cc=khilman@kernel.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-media@vger.kernel.org \ --cc=linux-omap@vger.kernel.org \ --cc=pali.rohar@gmail.com \ --cc=patrikbachan@gmail.com \ --cc=pavel@ucw.cz \ --cc=sakari.ailus@iki.fi \ --cc=sakari.ailus@linux.intel.com \ --cc=serge@hallyn.com \ --cc=sre@kernel.org \ --cc=tony@atomide.com \ /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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.