Re: [PATCH v3 1/8] V4L2 subdev patchset for Intel Moorestown Camera Imaging Subsystem

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

 



Hi Xiaolin,

Here is the review of this patch series.

On Tuesday 18 May 2010 11:22:04 Zhang, Xiaolin wrote:
> From 50009eae70b1e69f053cd567375d2394fd926203 Mon Sep 17 00:00:00 2001
> From: Xiaolin Zhang <xiaolin.zhang@xxxxxxxxx>
> Date: Tue, 18 May 2010 15:20:59 +0800
> Subject: [PATCH 1/8] the common sensor v4l2-subdev private structures and resolutions definition
>  ued in ov2650, ov5630, ov9665, s5k4e1 v4l2-subdev sensor drivers.
> 
> Signed-off-by: Xiaolin Zhang <xiaolin.zhang@xxxxxxxxx>
> ---
>  drivers/media/video/Kconfig              |   75 ++++++
>  drivers/media/video/Makefile             |    9 +

The changes for these files should be last in the patch series: otherwise
you introduce build errors since the files that the makefile refers to do
not exist yet.

>  drivers/media/video/mrst_sensor_common.h |  378 ++++++++++++++++++++++++++++++
>  3 files changed, 462 insertions(+), 0 deletions(-)
>  create mode 100644 drivers/media/video/mrst_sensor_common.h
> 
> diff --git a/drivers/media/video/Kconfig b/drivers/media/video/Kconfig
> index 9644cf7..d23adcc 100644
> --- a/drivers/media/video/Kconfig
> +++ b/drivers/media/video/Kconfig
> @@ -332,6 +332,79 @@ config VIDEO_TCM825X
>           This is a driver for the Toshiba TCM825x VGA camera sensor.
>           It is used for example in Nokia N800.
> 
> +config VIDEO_OV2650
> +        tristate "OmniVision OV2650 SoC Sensor support"
> +        depends on I2C && VIDEO_V4L2
> +
> +        ---help---
> +          This is a Video4Linux2 sensor-level driver for the OmniVision
> +          OV2650 2MP camera. It currently only works with the Intel Atom
> +          (Moorestown) platform.
> +
> +config VIDEO_OV9665
> +       tristate "OmniVision OV9665 SoC Sensor support"
> +       depends on I2C && VIDEO_V4L2
> +
> +       ---help---
> +         This is a Video4Linux2 sensor-level driver for the OmniVision
> +        OV9665 1.3MP camera. It currently only works with the Intel Atom
> +        (Moorestown) platform.
> +
> +config VIDEO_OV5630
> +       tristate "OmniVision OV5630 RAW Sensor support"
> +       depends on I2C && VIDEO_V4L2
> +
> +       ---help---
> +         This is a Video4Linux2 sensor-level driver for the OmniVision
> +        OV5630 5MP camera. It currently only works with the Intel Atom
> +        (Moorestown) platform.
> +
> +config VIDEO_S5K4E1
> +       tristate "Samsung s5k4e1 RAW Sensor support"
> +       depends on I2C && VIDEO_V4L2
> +
> +       ---help---
> +       This is a Video4Linux2 sensor-level driver for the Samsung
> +       s5k4e1 5MP camera. It currently only works with Intel Atom
> +       (Moorestown) platform.
> +
> +config VIDEO_OV5630_MOTOR
> +       tristate "Analog Devices AD5820 VCM (OVT OV5630) support"
> +       depends on I2C && VIDEO_V4L2 && VIDEO_OV5630
> +       default y
> +       ---help---
> +         This is a video4linux2 driver for the Analog Devices AD5820
> +         VCM Driver integrated into OVT OV5630 camera module
> +          which is curretly supported on Intel Atom
> +         (Moorestown)CMOS camera controller.
> +
> +         To compile this driver as a module, choose M here: the
> +         module will be called ov5630_motor.ko.
> +
> +config VIDEO_S5K4E1_MOTOR
> +       tristate "Renesas VCM driver (KMOT IX51A) support"
> +       depends on I2C && VIDEO_V4L2 && VIDEO_S5K4E1
> +       default y
> +       ---help---
> +         This is a video4linux2 driver for the Renesas VCM driver R2A30419BX
> +         which is located in KMOT IX51A camera module which is curretly
> +         supported on Intel Atom (Moorestown)CMOS camera controller.
> +
> +         To compile this driver as a module, choose M here: the
> +         module will be called s5k4e1_motor.ko.
> +
> +config VIDEO_MRSTFLASH
> +       tristate "National Semiconductor LM3553 Flash LED Driver support"
> +       depends on I2C && VIDEO_V4L2
> +       default y
> +       ---help---
> +         This is a video4linux2 driver for the National Semiconductor LM3553
> +         1.2A Dual Flas LED Driver which is curretly supported on Intel Atom
> +         (Moorestown)CMOS camera controller.
> +
> +         To compile this driver as a module, choose M here: the
> +         module will be called lm3553.ko
> +
>  config VIDEO_SAA7110
>         tristate "Philips SAA7110 video decoder"
>         depends on VIDEO_V4L2 && I2C
> @@ -833,6 +906,8 @@ config VIDEO_CAFE_CCIC
>           CMOS camera controller.  This is the controller found on first-
>           generation OLPC systems.
> 
> +source "drivers/media/video/mrstisp/Kconfig"
> +
>  config SOC_CAMERA
>         tristate "SoC camera support"
>         depends on VIDEO_V4L2 && HAS_DMA && I2C
> diff --git a/drivers/media/video/Makefile b/drivers/media/video/Makefile
> index c51c386..d7eca01 100644
> --- a/drivers/media/video/Makefile
> +++ b/drivers/media/video/Makefile
> @@ -70,6 +70,13 @@ obj-$(CONFIG_VIDEO_UPD64031A) += upd64031a.o
>  obj-$(CONFIG_VIDEO_UPD64083) += upd64083.o
>  obj-$(CONFIG_VIDEO_OV7670)     += ov7670.o
>  obj-$(CONFIG_VIDEO_TCM825X) += tcm825x.o
> +obj-$(CONFIG_VIDEO_OV2650) += ov2650.o
> +obj-$(CONFIG_VIDEO_OV9665) += ov9665.o
> +obj-$(CONFIG_VIDEO_OV5630) += ov5630.o
> +obj-$(CONFIG_VIDEO_S5K4E1) += ovs5k4e1.o
> +obj-$(CONFIG_VIDEO_MRSTFLASH) += mrstflash.o
> +obj-$(CONFIG_VIDEO_OV5630_MOTOR) += ov5630_motor.o
> +obj-$(CONFIG_VIDEO_S5K4E1_MOTOR) += s5k4e1_motor.o
>  obj-$(CONFIG_VIDEO_TVEEPROM) += tveeprom.o
>  obj-$(CONFIG_VIDEO_MT9V011) += mt9v011.o
> 
> @@ -123,6 +130,8 @@ obj-$(CONFIG_VIDEO_CX2341X) += cx2341x.o
> 
>  obj-$(CONFIG_VIDEO_CAFE_CCIC) += cafe_ccic.o
> 
> +obj-$(CONFIG_VIDEO_MRSTISP) += mrstisp/
> +
>  obj-$(CONFIG_USB_DABUSB)        += dabusb.o
>  obj-$(CONFIG_USB_OV511)         += ov511.o
>  obj-$(CONFIG_USB_SE401)         += se401.o
> diff --git a/drivers/media/video/mrst_sensor_common.h b/drivers/media/video/mrst_sensor_common.h
> new file mode 100644
> index 0000000..955e67f
> --- /dev/null
> +++ b/drivers/media/video/mrst_sensor_common.h
> @@ -0,0 +1,378 @@
> +/*
> + * Support for Moorestown Langwell Camera Imaging ISP subsystem.
> + *
> + * Copyright (c) 2009 Intel Corporation. All Rights Reserved.
> + *
> + * Copyright (c) Silicon Image 2008  www.siliconimage.com
> + *
> + * This program is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU General Public License version
> + * 2 as published by the Free Software Foundation.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> + * GNU General Public License for more details.
> + *
> + * You should have received a copy of the GNU General Public License
> + * along with this program; if not, write to the Free Software
> + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
> + * 02110-1301, USA.
> + *
> + *
> + * Xiaolin Zhang <xiaolin.zhang@xxxxxxxxx>
> + */
> +
> +#ifndef _SENSOR_FMT_COMMON_H
> +#define _SENSOR_FMT_COMMON_H
> +#include <media/v4l2-subdev.h>
> +
> +/*
> + * sensor capabilities struct: a struct member may have 0, 1 or several bits
> + * set according to the capabilities of the sensor. All struct members must be
> + * unsigned int and no padding is allowed. Thus, access to the fields is also
> + * possible by means of a field of unsigned int values. Indicees for the
> + * field-like access are given below.
> + */
> +struct ci_sensor_caps {
> +       unsigned int bus_width;
> +       unsigned int mode;
> +       unsigned int field_inv;
> +       unsigned int field_sel;
> +       unsigned int ycseq;
> +       unsigned int conv422;
> +       unsigned int bpat;
> +       unsigned int hpol;
> +       unsigned int vpol;
> +       unsigned int edge;
> +       unsigned int bls;
> +       unsigned int gamma;
> +       unsigned int cconv;
> +       unsigned int res;
> +       unsigned int dwn_sz;
> +       unsigned int blc;
> +       unsigned int agc;
> +       unsigned int awb;
> +       unsigned int aec;
> +       unsigned int cie_profile;
> +       unsigned int flicker_freq;
> +       unsigned int smia_mode;
> +       unsigned int mipi_mode;
> +       unsigned int type;
> +       char name[32];
> +
> +       struct v4l2_subdev sd;
> +};
> +
> +#define ci_sensor_config       ci_sensor_caps
> +
> +#define SENSOR_BPAT_RGRGGBGB       0x00000001
> +#define SENSOR_BPAT_GRGRBGBG       0x00000002
> +#define SENSOR_BPAT_GBGBRGRG       0x00000004
> +#define SENSOR_BPAT_BGBGGRGR       0x00000008
> +
> +#define SENSOR_BLC_AUTO            0x00000001
> +#define SENSOR_BLC_OFF             0x00000002
> +
> +#define SENSOR_AGC_AUTO            0x00000001
> +#define SENSOR_AGC_OFF             0x00000002
> +
> +#define SENSOR_AWB_AUTO            0x00000001
> +#define SENSOR_AWB_OFF             0x00000002
> +
> +#define SENSOR_AEC_AUTO            0x00000001
> +#define SENSOR_AEC_OFF             0x00000002
> +
> +/* turns on/off additional black lines at frame start */
> +#define SENSOR_BLS_OFF             0x00000001
> +#define SENSOR_BLS_TWO_LINES       0x00000002
> +#define SENSOR_BLS_FOUR_LINES      0x00000004
> +
> +/* turns on/off gamma correction in the sensor ISP */
> +#define SENSOR_GAMMA_ON            0x00000001
> +#define SENSOR_GAMMA_OFF           0x00000002
> +
> +/* 88x72 */
> +#define SENSOR_RES_QQCIF           0x00000001
> +/* 160x120 */
> +#define SENSOR_RES_QQVGA           0x00000002
> +/* 176x144 */
> +#define SENSOR_RES_QCIF            0x00000004
> +/* 320x240 */
> +#define SENSOR_RES_QVGA            0x00000008
> +/* 352x288 */
> +#define SENSOR_RES_CIF             0x00000010
> +/* 640x480 */
> +#define SENSOR_RES_VGA             0x00000020
> +/* 800x600 */
> +#define SENSOR_RES_SVGA            0x00000040
> +/* 1024x768 */
> +#define SENSOR_RES_XGA             0x00000080
> +/* 1280x960 max. resolution of OV9640 (QuadVGA) */
> +#define SENSOR_RES_XGA_PLUS        0x00000100
> +/* 1280x1024 */
> +#define SENSOR_RES_SXGA            0x00000200
> +/* 1600x1200 */
> +#define SENSOR_RES_UXGA            0x00000400
> +/* 2048x1536 */
> +#define SENSOR_RES_QXGA            0x00000800
> +#define SENSOR_RES_QXGA_PLUS       0x00001000
> +#define SENSOR_RES_RAWMAX          0x00002000
> +/* 4080x1024 */
> +#define SENSOR_RES_YUV_HMAX        0x00004000
> +/* 1024x4080 */
> +#define SENSOR_RES_YUV_VMAX        0x00008000
> +/* 720x480 */
> +#define SENSOR_RES_L_AFM           0x00020000
> +/* 128x96 */
> +#define SENSOR_RES_M_AFM           0x00040000
> +/* 64x32 */
> +#define SENSOR_RES_S_AFM           0x00080000
> +/* 352x240 */
> +#define SENSOR_RES_BP1             0x00100000
> +/* 2586x2048, quadruple SXGA, 5,3 Mpix */
> +#define SENSOR_RES_QSXGA           0x00200000
> +/* 2600x2048, max. resolution of M5, 5,32 Mpix */
> +#define SENSOR_RES_QSXGA_PLUS      0x00400000
> +/* 2600x1950 */
> +#define SENSOR_RES_QSXGA_PLUS2     0x00800000
> +/* 2686x2048,  5.30M */
> +#define SENSOR_RES_QSXGA_PLUS3     0x01000000
> +/* 3200x2048,  6.56M */
> +#define SENSOR_RES_WQSXGA          0x02000000
> +/* 3200x2400,  7.68M */
> +#define SENSOR_RES_QUXGA           0x04000000
> +/* 3840x2400,  9.22M */
> +#define SENSOR_RES_WQUXGA          0x08000000
> +/* 4096x3072, 12.59M */
> +#define SENSOR_RES_HXGA            0x10000000
> +#define SENSOR_RES_1080P                  0x20000000
> +/* 1280x720 */
> +#define SENSOR_RES_720P        0x40000000
> +
> +/* FIXME 1304x980*/
> +#define SENSOR_RES_VGA_PLUS    0x80000000
> +#define VGA_PLUS_SIZE_H                (1304)
> +#define VGA_PLUS_SIZE_V                (980)
> +#define QSXGA_PLUS4_SIZE_H     (2592)
> +#define QSXGA_PLUS4_SIZE_V     (1944)
> +#define RES_1080P_SIZE_H       (1920)
> +#define RES_1080P_SIZE_V       (1080)
> +#define RES_720P_SIZE_H        (1280)
> +#define RES_720P_SIZE_V        (720)
> +#define QQCIF_SIZE_H              (88)
> +#define QQCIF_SIZE_V              (72)
> +#define QQVGA_SIZE_H             (160)
> +#define QQVGA_SIZE_V             (120)
> +#define QCIF_SIZE_H              (176)
> +#define QCIF_SIZE_V              (144)
> +#define QVGA_SIZE_H              (320)
> +#define QVGA_SIZE_V              (240)
> +#define CIF_SIZE_H               (352)
> +#define CIF_SIZE_V               (288)
> +#define VGA_SIZE_H               (640)
> +#define VGA_SIZE_V               (480)
> +#define SVGA_SIZE_H              (800)
> +#define SVGA_SIZE_V              (600)
> +#define XGA_SIZE_H              (1024)
> +#define XGA_SIZE_V               (768)
> +#define XGA_PLUS_SIZE_H         (1280)
> +#define XGA_PLUS_SIZE_V          (960)
> +#define SXGA_SIZE_H             (1280)
> +#define SXGA_SIZE_V             (1024)
> +#define QSVGA_SIZE_H            (1600)
> +#define QSVGA_SIZE_V            (1200)
> +#define UXGA_SIZE_H             (1600)
> +#define UXGA_SIZE_V             (1200)
> +#define QXGA_SIZE_H             (2048)
> +#define QXGA_SIZE_V             (1536)
> +#define QXGA_PLUS_SIZE_H        (2592)
> +#define QXGA_PLUS_SIZE_V        (1944)
> +#define RAWMAX_SIZE_H           (4096)
> +#define RAWMAX_SIZE_V           (2048)
> +#define YUV_HMAX_SIZE_H         (4080)
> +#define YUV_HMAX_SIZE_V         (1024)
> +#define YUV_VMAX_SIZE_H         (1024)
> +#define YUV_VMAX_SIZE_V         (4080)
> +#define BP1_SIZE_H               (352)
> +#define BP1_SIZE_V               (240)
> +#define L_AFM_SIZE_H             (720)
> +#define L_AFM_SIZE_V             (480)
> +#define M_AFM_SIZE_H             (128)
> +#define M_AFM_SIZE_V              (96)
> +#define S_AFM_SIZE_H              (64)
> +#define S_AFM_SIZE_V              (32)
> +#define QSXGA_SIZE_H            (2560)
> +#define QSXGA_SIZE_V            (2048)
> +#define QSXGA_MINUS_SIZE_V      (1920)
> +#define QSXGA_PLUS_SIZE_H       (2600)
> +#define QSXGA_PLUS_SIZE_V       (2048)
> +#define QSXGA_PLUS2_SIZE_H      (2600)
> +#define QSXGA_PLUS2_SIZE_V      (1950)
> +#define QUXGA_SIZE_H            (3200)
> +#define QUXGA_SIZE_V            (2400)
> +#define SIZE_H_2500             (2500)
> +#define QSXGA_PLUS3_SIZE_H      (2686)
> +#define QSXGA_PLUS3_SIZE_V      (2048)
> +#define QSXGA_PLUS4_SIZE_V      (1944)
> +#define WQSXGA_SIZE_H           (3200)
> +#define WQSXGA_SIZE_V           (2048)
> +#define WQUXGA_SIZE_H           (3200)
> +#define WQUXGA_SIZE_V           (2400)
> +#define HXGA_SIZE_H             (4096)
> +#define HXGA_SIZE_V             (3072)
> +
> +static inline int ci_sensor_res2size(unsigned int res, unsigned short *h_size,
> +                      unsigned short *v_size)
> +{
> +       unsigned short hsize;
> +       unsigned short vsize;
> +       int err = 0;
> +
> +       switch (res) {
> +       case SENSOR_RES_QQCIF:
> +               hsize = QQCIF_SIZE_H;
> +               vsize = QQCIF_SIZE_V;
> +               break;
> +       case SENSOR_RES_QQVGA:
> +               hsize = QQVGA_SIZE_H;
> +               vsize = QQVGA_SIZE_V;
> +               break;
> +       case SENSOR_RES_QCIF:
> +               hsize = QCIF_SIZE_H;
> +               vsize = QCIF_SIZE_V;
> +               break;
> +       case SENSOR_RES_QVGA:
> +               hsize = QVGA_SIZE_H;
> +               vsize = QVGA_SIZE_V;
> +               break;
> +       case SENSOR_RES_CIF:
> +               hsize = CIF_SIZE_H;
> +               vsize = CIF_SIZE_V;
> +               break;
> +       case SENSOR_RES_VGA:
> +               hsize = VGA_SIZE_H;
> +               vsize = VGA_SIZE_V;
> +               break;
> +       case SENSOR_RES_SVGA:
> +               hsize = SVGA_SIZE_H;
> +               vsize = SVGA_SIZE_V;
> +               break;
> +       case SENSOR_RES_XGA:
> +               hsize = XGA_SIZE_H;
> +               vsize = XGA_SIZE_V;
> +               break;
> +       case SENSOR_RES_XGA_PLUS:
> +               hsize = XGA_PLUS_SIZE_H;
> +               vsize = XGA_PLUS_SIZE_V;
> +               break;
> +       case SENSOR_RES_SXGA:
> +               hsize = SXGA_SIZE_H;
> +               vsize = SXGA_SIZE_V;
> +               break;
> +       case SENSOR_RES_UXGA:
> +               hsize = UXGA_SIZE_H;
> +               vsize = UXGA_SIZE_V;
> +               break;
> +       case SENSOR_RES_QXGA:
> +               hsize = QXGA_SIZE_H;
> +               vsize = QXGA_SIZE_V;
> +               break;
> +       case SENSOR_RES_QSXGA:
> +               hsize = QSXGA_SIZE_H;
> +               vsize = QSXGA_SIZE_V;
> +               break;
> +       case SENSOR_RES_QSXGA_PLUS:
> +               hsize = QSXGA_PLUS_SIZE_H;
> +               vsize = QSXGA_PLUS_SIZE_V;
> +               break;
> +       case SENSOR_RES_QSXGA_PLUS2:
> +               hsize = QSXGA_PLUS2_SIZE_H;
> +               vsize = QSXGA_PLUS2_SIZE_V;
> +               break;
> +       case SENSOR_RES_QSXGA_PLUS3:
> +               hsize = QSXGA_PLUS3_SIZE_H;
> +               vsize = QSXGA_PLUS3_SIZE_V;
> +               break;
> +       case SENSOR_RES_WQSXGA:
> +               hsize = WQSXGA_SIZE_H;
> +               vsize = WQSXGA_SIZE_V;
> +               break;
> +       case SENSOR_RES_QUXGA:
> +               hsize = QUXGA_SIZE_H;
> +               vsize = QUXGA_SIZE_V;
> +               break;
> +       case SENSOR_RES_WQUXGA:
> +               hsize = WQUXGA_SIZE_H;
> +               vsize = WQUXGA_SIZE_V;
> +               break;
> +       case SENSOR_RES_HXGA:
> +               hsize = HXGA_SIZE_H;
> +               vsize = HXGA_SIZE_V;
> +               break;
> +       case SENSOR_RES_RAWMAX:
> +               hsize = RAWMAX_SIZE_H;
> +               vsize = RAWMAX_SIZE_V;
> +               break;
> +       case SENSOR_RES_YUV_HMAX:
> +               hsize = YUV_HMAX_SIZE_H;
> +               vsize = YUV_HMAX_SIZE_V;
> +               break;
> +       case SENSOR_RES_YUV_VMAX:
> +               hsize = YUV_VMAX_SIZE_H;
> +               vsize = YUV_VMAX_SIZE_V;
> +               break;
> +       case SENSOR_RES_BP1:
> +               hsize = BP1_SIZE_H;
> +               vsize = BP1_SIZE_V;
> +               break;
> +       case SENSOR_RES_L_AFM:
> +               hsize = L_AFM_SIZE_H;
> +               vsize = L_AFM_SIZE_V;
> +               break;
> +       case SENSOR_RES_M_AFM:
> +               hsize = M_AFM_SIZE_H;
> +               vsize = M_AFM_SIZE_V;
> +               break;
> +       case SENSOR_RES_S_AFM:
> +               hsize = S_AFM_SIZE_H;
> +               vsize = S_AFM_SIZE_V;
> +               break;
> +
> +       case SENSOR_RES_QXGA_PLUS:
> +               hsize = QXGA_PLUS_SIZE_H;
> +               vsize = QXGA_PLUS_SIZE_V;
> +               break;
> +
> +       case SENSOR_RES_1080P:
> +               hsize = RES_1080P_SIZE_H;
> +               vsize = 1080;
> +               break;
> +
> +       case SENSOR_RES_720P:
> +               hsize = RES_720P_SIZE_H;
> +               vsize = RES_720P_SIZE_V;
> +               break;
> +
> +       case SENSOR_RES_VGA_PLUS:
> +               hsize = VGA_PLUS_SIZE_H;
> +               vsize = VGA_PLUS_SIZE_V;
> +               break;
> +
> +       default:
> +               hsize = 0;
> +               vsize = 0;
> +               err = -1;
> +               printk(KERN_ERR "ci_sensor_res2size: Resolution 0x%08x"
> +                      "unknown\n", res);
> +               break;
> +       }
> +
> +       if (h_size != NULL)
> +               *h_size = hsize;
> +       if (v_size != NULL)
> +               *v_size = vsize;
> +
> +       return err;
> +}
> +#endif

Ditch this header. There is not reason whatsoever for the ci_sensor_res2size()
function: just use the actual sizes in drivers rather than these resolution
IDs.

Using the ci_sensor_caps/ci_sensor_config struct would tie these subdev drivers
into the moorestown infrastructure, preventing them from being reused, *and*
preventing Intel from benefiting from other developers improving on these
drivers. There does not seem to be any compelling reason for this header.
Instead use mbus_framefmt to pass resolution and bus format (influenced by
possible flip control settings) to the parent. And most of the img_ctrl
settings seem to map to existing controls. Should there be features missing
in the existing control list then make a proposal.

Regards,

	Hans

> --
> 1.6.3.2
> 
> --
> 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
> 
> 

-- 
Hans Verkuil - video4linux developer - sponsored by TANDBERG, part of Cisco
--
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