Re: [PULL] soc-camera and mediabus

2010-01-10 Thread Mauro Carvalho Chehab
Guennadi Liakhovetski wrote:
> Hi Mauro
> 
> On Mon, 14 Dec 2009, Mauro Carvalho Chehab wrote:
> 
>> Guennadi Liakhovetski wrote:
>>> So, is the doc patch, that I've sent to the list ok? Ok, the hunk for the 
>>> automatically (in hg) generated file will get dropped, and otherwise does 
>>> it look correct?
>> It looks correctly on my eyes. The only thing I noticed is that you've added
>> emacs headers at the end of the new patches:
>>
>> +
>> +  
>>
>> Please remove those tags when submitting the final version.
> 
> I tried to just through away the media-specs/media-entities.tmpl hunk, as 
> that file should be auto-generated, but the new version doesn't include 
> the new formats either. What am I doing wrong? The patch attached below.

As you're adding new files, you need to tell Makefile to take a look on them
also. So, just add the new files to V4L_SGMLS list at Makefile should do
the job.


Cheers,
Mauro.

> 
> Thanks
> Guennadi
> ---
> Guennadi Liakhovetski, Ph.D.
> Freelance Open-Source Software Developer
> http://www.open-technology.de/
> 
> # HG changeset patch
> # User Guennadi Liakhovetski 
> # Date 1261648434 -3600
> # Node ID 52e14d4799279a860fe158e8bf4f1993d6c6
> # Parent  4506e2d541265bfa0c0fd5187c6a39d39a456559
> document new pixel formats
> 
> Document all four 10-bit Bayer formats, 10-bit monochrome and a missing
> 8-bit Bayer formats.
> 
> Signed-off-by: Guennadi Liakhovetski 
> 
> diff -r 4506e2d54126 -r 52e14d479927 
> linux/Documentation/DocBook/v4l/pixfmt-srggb10.xml
> --- /dev/null Thu Jan 01 00:00:00 1970 +
> +++ b/linux/Documentation/DocBook/v4l/pixfmt-srggb10.xml  Thu Dec 24 
> 10:53:54 2009 +0100
> @@ -0,0 +1,90 @@
> +
> +  
> + V4L2_PIX_FMT_SRGGB10 ('RG10'),
> +  V4L2_PIX_FMT_SGRBG10 ('BA10'),
> +  V4L2_PIX_FMT_SGBRG10 ('GB10'),
> +  V4L2_PIX_FMT_SBGGR10 ('BG10'),
> +  
> + &manvol;
> +  
> +  
> +  id="V4L2-PIX-FMT-SRGGB10">V4L2_PIX_FMT_SRGGB10
> +  id="V4L2-PIX-FMT-SGRBG10">V4L2_PIX_FMT_SGRBG10
> +  id="V4L2-PIX-FMT-SGBRG10">V4L2_PIX_FMT_SGBRG10
> +  id="V4L2-PIX-FMT-SBGGR10">V4L2_PIX_FMT_SBGGR10
> + 10-bit Bayer formats expanded to 16 bits
> +  
> +  
> + Description
> +
> + The following four pixel formats are raw sRGB / Bayer formats with
> +10 bits per colour. Each colour component is stored in a 16-bit word, with 6
> +unused high bits filled with zeros. Each n-pixel row contains n/2 green 
> samples
> +and n/2 blue or red samples, with alternating red and blue rows. Bytes are
> +stored in memory in little endian order. They are conventionally described
> +as GRGR... BGBG..., RGRG... GBGB..., etc. Below is an example of one of these
> +formats
> +
> +
> +  V4L2_PIX_FMT_SBGGR10 4 × 4
> +pixel image
> +
> +  
> + Byte Order.
> + Each cell is one byte, high 6 bits in high bytes are 0.
> +   
> + 
> +   
> +   
> + 
> +   start + 0:
> +   B00low
> +   B00high
> +   G01low
> +   G01high
> +   B02low
> +   B02high
> +   G03low
> +   G03high
> + 
> + 
> +   start + 8:
> +   G10low
> +   G10high
> +   R11low
> +   R11high
> +   G12low
> +   G12high
> +   R13low
> +   R13high
> + 
> + 
> +   start + 16:
> +   B20low
> +   B20high
> +   G21low
> +   G21high
> +   B22low
> +   B22high
> +   G23low
> +   G23high
> + 
> + 
> +   start + 24:
> +   G30low
> +   G30high
> +   R31low
> +   R31high
> +   G32low
> +   G32high
> +   R33low
> +   R33high
> + 
> +   
> + 
> +   
> + 
> +  
> +
> +  
> +
> diff -r 4506e2d54126 -r 52e14d479927 
> linux/Documentation/DocBook/v4l/pixfmt-srggb8.xml
> --- /dev/null Thu Jan 01 00:00:00 1970 +
> +++ b/linux/Documentation/DocBook/v4l/pixfmt-srggb8.xml   Thu Dec 24 
> 10:53:54 2009 +0100
> @@ -0,0 +1,67 @@
> +
> +  
> + V4L2_PIX_FMT_SRGGB8 ('RGGB')
> + &manvol;
> +  
> +  
> + V4L2_PIX_FMT_SRGGB8
> + Bayer RGB format
> +  
> +  
> + Description
> +
> + This is commonly the native format of digital cameras,
> +reflecting the arrangement of sensors on the CCD device. Only one red,
> +green or blue value is given for each pixel. Missing components must
> +be interpolated from neighbouring pixels. From left to right the first
> +row consists of a red and green value, the second row of a green and
> +blue value. This scheme repeats to the right and down for every two
> +columns and rows.
> +
> + 
> +   V4L2_PIX_

Re: [PULL] soc-camera and mediabus

2009-12-24 Thread Guennadi Liakhovetski
Hi Mauro

On Mon, 14 Dec 2009, Mauro Carvalho Chehab wrote:

> Guennadi Liakhovetski wrote:
> > 
> > So, is the doc patch, that I've sent to the list ok? Ok, the hunk for the 
> > automatically (in hg) generated file will get dropped, and otherwise does 
> > it look correct?
> 
> It looks correctly on my eyes. The only thing I noticed is that you've added
> emacs headers at the end of the new patches:
> 
> +
> +  
> 
> Please remove those tags when submitting the final version.

I tried to just through away the media-specs/media-entities.tmpl hunk, as 
that file should be auto-generated, but the new version doesn't include 
the new formats either. What am I doing wrong? The patch attached below.

Thanks
Guennadi
---
Guennadi Liakhovetski, Ph.D.
Freelance Open-Source Software Developer
http://www.open-technology.de/

# HG changeset patch
# User Guennadi Liakhovetski 
# Date 1261648434 -3600
# Node ID 52e14d4799279a860fe158e8bf4f1993d6c6
# Parent  4506e2d541265bfa0c0fd5187c6a39d39a456559
document new pixel formats

Document all four 10-bit Bayer formats, 10-bit monochrome and a missing
8-bit Bayer formats.

Signed-off-by: Guennadi Liakhovetski 

diff -r 4506e2d54126 -r 52e14d479927 
linux/Documentation/DocBook/v4l/pixfmt-srggb10.xml
--- /dev/null   Thu Jan 01 00:00:00 1970 +
+++ b/linux/Documentation/DocBook/v4l/pixfmt-srggb10.xmlThu Dec 24 
10:53:54 2009 +0100
@@ -0,0 +1,90 @@
+
+  
+   V4L2_PIX_FMT_SRGGB10 ('RG10'),
+V4L2_PIX_FMT_SGRBG10 ('BA10'),
+V4L2_PIX_FMT_SGBRG10 ('GB10'),
+V4L2_PIX_FMT_SBGGR10 ('BG10'),
+
+   &manvol;
+  
+  
+   V4L2_PIX_FMT_SRGGB10
+   V4L2_PIX_FMT_SGRBG10
+   V4L2_PIX_FMT_SGBRG10
+   V4L2_PIX_FMT_SBGGR10
+   10-bit Bayer formats expanded to 16 bits
+  
+  
+   Description
+
+   The following four pixel formats are raw sRGB / Bayer formats with
+10 bits per colour. Each colour component is stored in a 16-bit word, with 6
+unused high bits filled with zeros. Each n-pixel row contains n/2 green samples
+and n/2 blue or red samples, with alternating red and blue rows. Bytes are
+stored in memory in little endian order. They are conventionally described
+as GRGR... BGBG..., RGRG... GBGB..., etc. Below is an example of one of these
+formats
+
+
+  V4L2_PIX_FMT_SBGGR10 4 × 4
+pixel image
+
+  
+   Byte Order.
+   Each cell is one byte, high 6 bits in high bytes are 0.
+ 
+   
+ 
+ 
+   
+ start + 0:
+ B00low
+ B00high
+ G01low
+ G01high
+ B02low
+ B02high
+ G03low
+ G03high
+   
+   
+ start + 8:
+ G10low
+ G10high
+ R11low
+ R11high
+ G12low
+ G12high
+ R13low
+ R13high
+   
+   
+ start + 16:
+ B20low
+ B20high
+ G21low
+ G21high
+ B22low
+ B22high
+ G23low
+ G23high
+   
+   
+ start + 24:
+ G30low
+ G30high
+ R31low
+ R31high
+ G32low
+ G32high
+ R33low
+ R33high
+   
+ 
+   
+ 
+   
+  
+
+  
+
diff -r 4506e2d54126 -r 52e14d479927 
linux/Documentation/DocBook/v4l/pixfmt-srggb8.xml
--- /dev/null   Thu Jan 01 00:00:00 1970 +
+++ b/linux/Documentation/DocBook/v4l/pixfmt-srggb8.xml Thu Dec 24 10:53:54 
2009 +0100
@@ -0,0 +1,67 @@
+
+  
+   V4L2_PIX_FMT_SRGGB8 ('RGGB')
+   &manvol;
+  
+  
+   V4L2_PIX_FMT_SRGGB8
+   Bayer RGB format
+  
+  
+   Description
+
+   This is commonly the native format of digital cameras,
+reflecting the arrangement of sensors on the CCD device. Only one red,
+green or blue value is given for each pixel. Missing components must
+be interpolated from neighbouring pixels. From left to right the first
+row consists of a red and green value, the second row of a green and
+blue value. This scheme repeats to the right and down for every two
+columns and rows.
+
+   
+ V4L2_PIX_FMT_SRGGB8 4 × 4
+pixel image
+
+ 
+   Byte Order.
+   Each cell is one byte.
+ 
+   
+ 
+ 
+   
+ start + 0:
+ R00
+ G01
+ R02
+ G03
+   
+   
+ start + 4:
+ G10
+ B11
+

Re: [PULL] soc-camera and mediabus

2009-12-17 Thread Mauro Carvalho Chehab
Hans Verkuil wrote:
> On Monday 14 December 2009 21:41:20 Guennadi Liakhovetski wrote:
>> On Mon, 14 Dec 2009, Jonathan Cameron wrote:
>>
 
> Having bridge-specific code in a sub-device driver will be a disaster in the
> long run. Well, we've seen what happens when you do it that way.

True.

> As far as I know the only soc-dependency left now is for bus configuration.
> Proposals were made some time ago and we should pick that up again and remove
> that last dependency.

We should really go on that direction. V4L i2c drivers shouldn't depend on
platform_data. I've experienced some very bad time fixing conflicts
and waiting for arch merges in order to try to avoid conflicts related
to platform_data changes that should be reflected into V4L drivers.

Even after migrating to -git, this problem won't solve, since the header
files that holds platform_data are highly volatile: on all kernel versions,
they had several changes, and the platform_data patch made while changing
the V4L code needs to be changed during the next merge window.

Due to that, I don't doubt that some earlier merges had broke git bisect
capabilities on those drivers that rely on the highly volatile platform_data
header files applied on arch tree and a separate patch applied on v4l tree.

It seems that we'll need to have some code that will be responsible to
handle arch/platform_data glue, to be merged in the same subsystem that
holds the *.h files, taking care on the required differences for drivers
that need platform_data to work, and a separate code to handle the V4L
functionalities.

In other words, drivers like soc_camera and omap core should be broken
internally into two separate files (or modules), one with V4L bits and
the other with arch/platform_data glue, where the second one should be
be maintained together with the corresponding arch code.

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


Re: [PULL] soc-camera and mediabus

2009-12-14 Thread Hans Verkuil
On Monday 14 December 2009 21:41:20 Guennadi Liakhovetski wrote:
> On Mon, 14 Dec 2009, Jonathan Cameron wrote:
> 
> > Hi All,
> > 
> > >> 3) it would be interesting to patch the other sensor drivers to be 
> > >> compatible
> > >>with soc_camera (mt9v011/ov7670);
> > > 
> > > Well, this could be done, yes, but does it make sense to do this blindly 
> > > without any hardware to test? I would rather add such conversions on a 
> > > one-by-one basis as need arises.
> > > 
> > I'm working on the ov7670. I've added the media bus stuff to what I've
> > previously posted but I haven't tested as yet.  For reference, a quick and 
> > dirty
> > cut of the patch is below.  Some thought is needed on how to deal with the 
> > sections
> > that currently need to be different for the soc-camera and non soc camera 
> > uses.
> > (mainly the registration code in probe).
> 
> Look at my patch for mt9t031. First you do not have to fail if 
> client->dev.platform_data == NULL. You have to look at the bridge driver, 
> that's currently working with ov7670. If it is not setting platform_data, 
> you can use it to detect whether you're in soc-camera environment or not. 
> Otherwise, if the bridge driver were also using that pointer, we would 
> have to come up with a ov7670-specific struct to be linked from that 
> pointer. I was actually thinking about a way to pass soc-camera data to 
> client drivers in a way, that would not imped non soc-camera use. So, how 
> about:
> 
> 
>   I soc-camera environment
> 
> 1. platform defines a
> 
> static struct ov7670_platform_data ov7670 = {
>   .link = &ov7670_link,
> };
> 
> 2. and a
> 
> static struct soc_camera_link ov7670_link = {
>   .client_data = &ov7670,
> };
> 
> 3. soc-camera core gets &ov7670_link in its probe, same as this is done 
> now, then it does
> 
>   icl->icd = icd;
>   icl->board_info->platform_data = icl->client_data;
> 
>   subdev = v4l2_i2c_new_subdev_board(&ici->v4l2_dev, adap,
>   icl->module_name, icl->board_info, NULL);
> 
> 4. ov7670 probe is called with client platform data pointing to its own 
> data:
> 
> static int ov7670_probe(struct i2c_client *client,
>   const struct i2c_device_id *did)
> {
>   struct ov7670_platform_data *pdata = client->dev.platform_data;
>   struct soc_camera_link *icl = pdata->link;
>   struct soc_camera_device *icd;
> 
>   if (icl)
>   icd = icl->icd;
> 
> 
>   II Non soc-camera environment
> 
> 1. the bridge driver fills in sensor data and does
> 
>   struct ov7670_platform_data *ov7670_pdata = kzalloc(sizeof(*pdata));
> 
>   ov7670_pdata->... = ...;
>   board_info->platform_data = ov7670_pdata;
> 
>   subdev = v4l2_i2c_new_subdev_board(v4l2_dev, adap,
>   module_name, board_info, NULL);
> 
> 2. ov7670_probe() gets called and finds its data as above, but without an 
> soc-camera link this time.
> 
> 
> The advantage of the above is, that each client driver is free to define 
> its own platform data struct, and for soc-camera it only has to provide 
> one pointer in it. The ugly side is the cross-referencing between I.1. and 
> I.2. above.
> 
> Alternatively we could agree, that all client drivers get in their i2c 
> client platform data a standard struct with only pointers in it to client 
> data and to various bridging models:
> 
> struct v4l2_client {
>   void *client;
>   struct soc_camera_link *icl;
>   struct int_device_link *int;
>   ...
> };
> 
> or a bit more hidden
> 
> struct v4l2_client {
>   void *client;
>   void *bridge_data;
>   enum V4L2_BRIDGE_TYPE bridge_type;
> };

Before this goes too far let me just say that I will NAK any attempt in this
direction. Subdevice drivers must eventually be completely independent from
bridge driver. The same driver should work out of the box for soc-camera,
gspca, omap3, davinci, saa7134 and whatever other bridge driver is out there.

Having bridge-specific code in a sub-device driver will be a disaster in the
long run. Well, we've seen what happens when you do it that way.

As far as I know the only soc-dependency left now is for bus configuration.
Proposals were made some time ago and we should pick that up again and remove
that last dependency.

Regards,

Hans

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


Re: [PULL] soc-camera and mediabus

2009-12-14 Thread Guennadi Liakhovetski
On Mon, 14 Dec 2009, Jonathan Cameron wrote:

> Hi All,
> 
> >> 3) it would be interesting to patch the other sensor drivers to be 
> >> compatible
> >>with soc_camera (mt9v011/ov7670);
> > 
> > Well, this could be done, yes, but does it make sense to do this blindly 
> > without any hardware to test? I would rather add such conversions on a 
> > one-by-one basis as need arises.
> > 
> I'm working on the ov7670. I've added the media bus stuff to what I've
> previously posted but I haven't tested as yet.  For reference, a quick and 
> dirty
> cut of the patch is below.  Some thought is needed on how to deal with the 
> sections
> that currently need to be different for the soc-camera and non soc camera 
> uses.
> (mainly the registration code in probe).

Look at my patch for mt9t031. First you do not have to fail if 
client->dev.platform_data == NULL. You have to look at the bridge driver, 
that's currently working with ov7670. If it is not setting platform_data, 
you can use it to detect whether you're in soc-camera environment or not. 
Otherwise, if the bridge driver were also using that pointer, we would 
have to come up with a ov7670-specific struct to be linked from that 
pointer. I was actually thinking about a way to pass soc-camera data to 
client drivers in a way, that would not imped non soc-camera use. So, how 
about:


I soc-camera environment

1. platform defines a

static struct ov7670_platform_data ov7670 = {
.link = &ov7670_link,
};

2. and a

static struct soc_camera_link ov7670_link = {
.client_data = &ov7670,
};

3. soc-camera core gets &ov7670_link in its probe, same as this is done 
now, then it does

icl->icd = icd;
icl->board_info->platform_data = icl->client_data;

subdev = v4l2_i2c_new_subdev_board(&ici->v4l2_dev, adap,
icl->module_name, icl->board_info, NULL);

4. ov7670 probe is called with client platform data pointing to its own 
data:

static int ov7670_probe(struct i2c_client *client,
const struct i2c_device_id *did)
{
struct ov7670_platform_data *pdata = client->dev.platform_data;
struct soc_camera_link *icl = pdata->link;
struct soc_camera_device *icd;

if (icl)
icd = icl->icd;


II Non soc-camera environment

1. the bridge driver fills in sensor data and does

struct ov7670_platform_data *ov7670_pdata = kzalloc(sizeof(*pdata));

ov7670_pdata->... = ...;
board_info->platform_data = ov7670_pdata;

subdev = v4l2_i2c_new_subdev_board(v4l2_dev, adap,
module_name, board_info, NULL);

2. ov7670_probe() gets called and finds its data as above, but without an 
soc-camera link this time.


The advantage of the above is, that each client driver is free to define 
its own platform data struct, and for soc-camera it only has to provide 
one pointer in it. The ugly side is the cross-referencing between I.1. and 
I.2. above.

Alternatively we could agree, that all client drivers get in their i2c 
client platform data a standard struct with only pointers in it to client 
data and to various bridging models:

struct v4l2_client {
void *client;
struct soc_camera_link *icl;
struct int_device_link *int;
...
};

or a bit more hidden

struct v4l2_client {
void *client;
void *bridge_data;
enum V4L2_BRIDGE_TYPE bridge_type;
};

> On another note, does anyone have an objection to making the set_bus_param
> function optional?   At the moment we are adding null functions for those
> devices that can't actually change anything which seems a little pointless.

Yes, it can.

> 
> Jonathan
> 
> 
> diff --git a/drivers/media/video/ov7670.c b/drivers/media/video/ov7670.c
> index 0e2184e..e57c3b5 100644
> --- a/drivers/media/video/ov7670.c
> +++ b/drivers/media/video/ov7670.c
> @@ -18,6 +18,7 @@
>  #include 
>  #include 
>  #include 
> +#include 
>  
>  
>  MODULE_AUTHOR("Jonathan Corbet ");
> @@ -545,7 +546,7 @@ static struct ov7670_format_struct {
>   .bpp= 1
>   },
>  };
> -#define N_OV7670_FMTS ARRAY_SIZE(ov7670_formats)
> +
>  
>  
>  /*
> @@ -668,52 +669,37 @@ static int ov7670_set_hw(struct v4l2_subdev *sd, int 
> hstart, int hstop,
>   return ret;
>  }
>  
> +static enum v4l2_mbus_pixelcode ov7670_codes[] = {
> + V4L2_MBUS_FMT_YUYV8_2X8,
> + V4L2_MBUS_FMT_RGB565_2X8_LE,
> +};
>  
> -static int ov7670_enum_fmt(struct v4l2_subdev *sd, struct v4l2_fmtdesc *fmt)
> +static int ov7670_enum_fmt(struct v4l2_subdev *sd, int index, enum 
> v4l2_mbus_pixelcode *code)
>  {
> - struct ov7670_format_struct *ofmt;
> -
> - if (fmt->index >= N_OV7670_FMTS)
> + if (index >= ARRAY_SIZE(ov7670_codes))
>   return -EINVAL;
>  
> - ofmt = ov7670_formats + fmt->index;
> - fmt->flags = 0;
> - strcpy(fmt->description, ofmt->desc);
> - fmt->pixelformat = ofmt->pixelfor

Re: [PULL] soc-camera and mediabus

2009-12-14 Thread Mauro Carvalho Chehab
Jonathan Cameron wrote:
> Hi All,
> 
>>> 3) it would be interesting to patch the other sensor drivers to be 
>>> compatible
>>>with soc_camera (mt9v011/ov7670);
>> Well, this could be done, yes, but does it make sense to do this blindly 
>> without any hardware to test? I would rather add such conversions on a 
>> one-by-one basis as need arises.
>>
> I'm working on the ov7670. I've added the media bus stuff to what I've
> previously posted but I haven't tested as yet.  For reference, a quick and 
> dirty
> cut of the patch is below.  Some thought is needed on how to deal with the 
> sections
> that currently need to be different for the soc-camera and non soc camera 
> uses.
> (mainly the registration code in probe).

True. Couldn't this be a library that handles the code difference between
soc-camera platform-data bits and normal subdev?

Even better: couldn't this code be handled by soc_camera core and just use
subdev interface for both cases?

After finishing the patch, please ping me. I have here an OLPC with ov7670 where
I can test if the new code doesn't break the cafe_ccic driver. You'll probably
need to touch on it, as it will need to use the new mediabus API to talk with 
ov7670.

> On another note, does anyone have an objection to making the set_bus_param
> function optional?   At the moment we are adding null functions for those
> devices that can't actually change anything which seems a little pointless.

Agreed.

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


Re: [PULL] soc-camera and mediabus

2009-12-14 Thread Mauro Carvalho Chehab
Guennadi Liakhovetski wrote:
> On Mon, 14 Dec 2009, Mauro Carvalho Chehab wrote:
> 
>> Guennadi Liakhovetski wrote:
>>> Hi Mauro,
>>>
>>> At last soc-camera and mediabus lot for 2.6.33. Note, that one of this 
>>> patches adds new fourcc codes. A patch for their documentation will be 
>>> submitted immediately.
>>>
>>> Please pull from http://linuxtv.org/hg/~gliakhovetski/v4l-dvb
>>>
>>> for the following 30 changesets:
>>>
>>> 01/30: tw9910: The driver can also handle revision 1 of the chip
>>> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=f1e67c4ca734
>>>
>>> 02/30: soc-camera: remove no longer needed struct members
>>> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=ac42a43c9d3c
>>>
>>> 03/30: v4l: add new v4l2-subdev sensor operations, use g_skip_top_lines in 
>>> soc-camera
>>> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=f3ce29815a19
>>>
>>> 04/30: soc-camera: fix multi-line comment coding style
>>> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=e893641bb109
>>>
>>> 05/30: sh_mobile_ceu_camera: do not mark host occupied, when adding a 
>>> client fails
>>> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=9505453960fb
>>>
>>> 06/30: v4l: Add a 10-bit monochrome and missing 8- and 10-bit Bayer fourcc 
>>> codes
>>> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=fc70aabadc59
>>>
>>> 07/30: soc-camera: add a private field to struct soc_camera_link
>>> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=8144ecd97132
>>>
>>> 08/30: Subject: kernel-sync for arch/sh/boards/mach-ap325rxa/setup.c
>>> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=ea27f790755c
>>>
>>> 09/30: soc-camera: switch drivers and platforms to use .priv in struct 
>>> soc_camera_link
>>> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=54707961f633
>>>
>>> 10/30: sh_mobile_ceu_camera: document the scaling and cropping algorithm
>>> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=f490679b43c3
>>>
>>> 11/30: tw9910: Add revision control
>>> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=4d27f0bec0f3
>>>
>>> 12/30: tw9910: simplify chip ID calculation
>>> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=b919641bdf84
>>>
>>> 13/30: tw9910: Tri-state pins when idle
>>> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=bb97c53db3c0
>>>
>>> 14/30: tw9910: Add power control
>>> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=2d8774ea617f
>>>
>>> 15/30: tw9910: tw9910_set_hsync clean up
>>> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=669d0a9ca121
>>>
>>> 16/30: tw9910: Add revision control to tw9910_set_hsync
>>> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=d3619f5f5679
>>>
>>> 17/30: v4l: add a media-bus API for configuring v4l2 subdev pixel and frame 
>>> formats
>>> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=2c60bd900a7a
>>>
>>> 18/30: soc-camera: convert to the new mediabus API
>>> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=2a8289e3de7b
>>>
>>> 19/30: Subject: kernel-sync for arch/sh/boards/mach-kfr2r09/setup.c
>>> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=4e1dcff622e0
>>>
>>> 20/30: rj54n1cb0c: Add cropping, auto white balance, restrict sizes, add 
>>> platform data
>>> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=c2ede215a03c
>>>
>>> 21/30: mt9t031: make the use of the soc-camera client API optional
>>> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=be8b7a9252d8
>>>
>>> 22/30: sh_mobile_ceu: Add V4L2_FIELD_INTERLACED_BT/TB support
>>> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=1a36ae75bdb1
>>>
>>> 23/30: tw9910: use V4L2_FIELD_INTERLACED_BT
>>> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=be43ab8c8490
>>>
>>> 24/30: sh_mobile_ceu_camera: Add support for sync polarity selection
>>> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=596e9b685f9b
>>>
>>> 25/30: tw9910: modify V/H outpit pin setting to use VALID
>>> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=8e7ca505b942
>>>
>>> 26/30: tw9910: modify output format
>>> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=a42544f649b1
>>>
>>> 27/30: tw9910: remove cropping
>>> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=c141cc75045a
>>>
>>> 28/30: tw9910: Add sync polarity support
>>> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=750376b279e0
>>>
>>> 29/30: soc-camera: Add mt9t112 camera driver
>>> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=37cdd4e97937
>>>
>>> 30/30: sh_mobile_ceu_camera: Remove frame size page alignment
>>> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=8da6f7deee9f
>>>
>>>
>>>  a/linux/arch/sh/boards/board-ap325rxa.c|  606 --
>>>  b/linux

Re: [PULL] soc-camera and mediabus

2009-12-14 Thread Jonathan Cameron
Hi All,

>> 3) it would be interesting to patch the other sensor drivers to be compatible
>>with soc_camera (mt9v011/ov7670);
> 
> Well, this could be done, yes, but does it make sense to do this blindly 
> without any hardware to test? I would rather add such conversions on a 
> one-by-one basis as need arises.
> 
I'm working on the ov7670. I've added the media bus stuff to what I've
previously posted but I haven't tested as yet.  For reference, a quick and dirty
cut of the patch is below.  Some thought is needed on how to deal with the 
sections
that currently need to be different for the soc-camera and non soc camera uses.
(mainly the registration code in probe).

On another note, does anyone have an objection to making the set_bus_param
function optional?   At the moment we are adding null functions for those
devices that can't actually change anything which seems a little pointless.

Jonathan


diff --git a/drivers/media/video/ov7670.c b/drivers/media/video/ov7670.c
index 0e2184e..e57c3b5 100644
--- a/drivers/media/video/ov7670.c
+++ b/drivers/media/video/ov7670.c
@@ -18,6 +18,7 @@
 #include 
 #include 
 #include 
+#include 
 
 
 MODULE_AUTHOR("Jonathan Corbet ");
@@ -545,7 +546,7 @@ static struct ov7670_format_struct {
.bpp= 1
},
 };
-#define N_OV7670_FMTS ARRAY_SIZE(ov7670_formats)
+
 
 
 /*
@@ -668,52 +669,37 @@ static int ov7670_set_hw(struct v4l2_subdev *sd, int 
hstart, int hstop,
return ret;
 }
 
+static enum v4l2_mbus_pixelcode ov7670_codes[] = {
+   V4L2_MBUS_FMT_YUYV8_2X8,
+   V4L2_MBUS_FMT_RGB565_2X8_LE,
+};
 
-static int ov7670_enum_fmt(struct v4l2_subdev *sd, struct v4l2_fmtdesc *fmt)
+static int ov7670_enum_fmt(struct v4l2_subdev *sd, int index, enum 
v4l2_mbus_pixelcode *code)
 {
-   struct ov7670_format_struct *ofmt;
-
-   if (fmt->index >= N_OV7670_FMTS)
+   if (index >= ARRAY_SIZE(ov7670_codes))
return -EINVAL;
 
-   ofmt = ov7670_formats + fmt->index;
-   fmt->flags = 0;
-   strcpy(fmt->description, ofmt->desc);
-   fmt->pixelformat = ofmt->pixelformat;
+   *code = ov7670_codes[index];
return 0;
 }
 
 
 static int ov7670_try_fmt_internal(struct v4l2_subdev *sd,
-   struct v4l2_format *fmt,
-   struct ov7670_format_struct **ret_fmt,
-   struct ov7670_win_size **ret_wsize)
+  struct v4l2_mbus_framefmt *mf,
+  struct ov7670_format_struct **ret_fmt,
+  struct ov7670_win_size **ret_wsize)
 {
int index;
struct ov7670_win_size *wsize;
-   struct v4l2_pix_format *pix = &fmt->fmt.pix;
 
-   for (index = 0; index < N_OV7670_FMTS; index++)
-   if (ov7670_formats[index].pixelformat == pix->pixelformat)
-   break;
-   if (index >= N_OV7670_FMTS) {
-   /* default to first format */
-   index = 0;
-   pix->pixelformat = ov7670_formats[0].pixelformat;
-   }
-   if (ret_fmt != NULL)
-   *ret_fmt = ov7670_formats + index;
-   /*
-* Fields: the OV devices claim to be progressive.
-*/
-   pix->field = V4L2_FIELD_NONE;
+   mf->field = V4L2_FIELD_NONE;
/*
 * Round requested image size down to the nearest
 * we support, but not below the smallest.
 */
for (wsize = ov7670_win_sizes; wsize < ov7670_win_sizes + N_WIN_SIZES;
 wsize++)
-   if (pix->width >= wsize->width && pix->height >= wsize->height)
+   if ( mf->width >= wsize->width && mf->height >= wsize->height)
break;
if (wsize >= ov7670_win_sizes + N_WIN_SIZES)
wsize--;   /* Take the smallest one */
@@ -722,22 +708,34 @@ static int ov7670_try_fmt_internal(struct v4l2_subdev *sd,
/*
 * Note the size we'll actually handle.
 */
-   pix->width = wsize->width;
-   pix->height = wsize->height;
-   pix->bytesperline = pix->width*ov7670_formats[index].bpp;
-   pix->sizeimage = pix->height*pix->bytesperline;
+   mf->width = wsize->width;
+   mf->height = wsize->height;
+   switch (mf->code) {
+   case V4L2_MBUS_FMT_RGB565_2X8_LE:
+   mf->colorspace = V4L2_COLORSPACE_SRGB;
+   if (ret_fmt != NULL)
+   *ret_fmt = ov7670_formats + 2;
+   break;
+   default:
+   mf->code = V4L2_MBUS_FMT_YUYV8_2X8;
+   case V4L2_MBUS_FMT_YUYV8_2X8:
+   mf->colorspace = V4L2_COLORSPACE_JPEG;
+   if (ret_fmt != NULL)
+   *ret_fmt = ov7670_formats;
+   break;
+   }
return 0;
 }
 
-static int ov7670_try_fmt(struct v4l2_subdev *sd, struct v4l2_format *fmt)
+static int ov7670_try_fmt(struct v4l2_subdev *sd, struct v4l2_mbus_framefmt 
*mf)
 {
-   return ov7670_try_fmt_internal(sd, fmt, N

Re: [PULL] soc-camera and mediabus

2009-12-14 Thread Guennadi Liakhovetski
On Mon, 14 Dec 2009, Mauro Carvalho Chehab wrote:

> Guennadi Liakhovetski wrote:
> > Hi Mauro,
> > 
> > At last soc-camera and mediabus lot for 2.6.33. Note, that one of this 
> > patches adds new fourcc codes. A patch for their documentation will be 
> > submitted immediately.
> > 
> > Please pull from http://linuxtv.org/hg/~gliakhovetski/v4l-dvb
> > 
> > for the following 30 changesets:
> > 
> > 01/30: tw9910: The driver can also handle revision 1 of the chip
> > http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=f1e67c4ca734
> > 
> > 02/30: soc-camera: remove no longer needed struct members
> > http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=ac42a43c9d3c
> > 
> > 03/30: v4l: add new v4l2-subdev sensor operations, use g_skip_top_lines in 
> > soc-camera
> > http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=f3ce29815a19
> > 
> > 04/30: soc-camera: fix multi-line comment coding style
> > http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=e893641bb109
> > 
> > 05/30: sh_mobile_ceu_camera: do not mark host occupied, when adding a 
> > client fails
> > http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=9505453960fb
> > 
> > 06/30: v4l: Add a 10-bit monochrome and missing 8- and 10-bit Bayer fourcc 
> > codes
> > http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=fc70aabadc59
> > 
> > 07/30: soc-camera: add a private field to struct soc_camera_link
> > http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=8144ecd97132
> > 
> > 08/30: Subject: kernel-sync for arch/sh/boards/mach-ap325rxa/setup.c
> > http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=ea27f790755c
> > 
> > 09/30: soc-camera: switch drivers and platforms to use .priv in struct 
> > soc_camera_link
> > http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=54707961f633
> > 
> > 10/30: sh_mobile_ceu_camera: document the scaling and cropping algorithm
> > http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=f490679b43c3
> > 
> > 11/30: tw9910: Add revision control
> > http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=4d27f0bec0f3
> > 
> > 12/30: tw9910: simplify chip ID calculation
> > http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=b919641bdf84
> > 
> > 13/30: tw9910: Tri-state pins when idle
> > http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=bb97c53db3c0
> > 
> > 14/30: tw9910: Add power control
> > http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=2d8774ea617f
> > 
> > 15/30: tw9910: tw9910_set_hsync clean up
> > http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=669d0a9ca121
> > 
> > 16/30: tw9910: Add revision control to tw9910_set_hsync
> > http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=d3619f5f5679
> > 
> > 17/30: v4l: add a media-bus API for configuring v4l2 subdev pixel and frame 
> > formats
> > http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=2c60bd900a7a
> > 
> > 18/30: soc-camera: convert to the new mediabus API
> > http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=2a8289e3de7b
> > 
> > 19/30: Subject: kernel-sync for arch/sh/boards/mach-kfr2r09/setup.c
> > http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=4e1dcff622e0
> > 
> > 20/30: rj54n1cb0c: Add cropping, auto white balance, restrict sizes, add 
> > platform data
> > http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=c2ede215a03c
> > 
> > 21/30: mt9t031: make the use of the soc-camera client API optional
> > http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=be8b7a9252d8
> > 
> > 22/30: sh_mobile_ceu: Add V4L2_FIELD_INTERLACED_BT/TB support
> > http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=1a36ae75bdb1
> > 
> > 23/30: tw9910: use V4L2_FIELD_INTERLACED_BT
> > http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=be43ab8c8490
> > 
> > 24/30: sh_mobile_ceu_camera: Add support for sync polarity selection
> > http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=596e9b685f9b
> > 
> > 25/30: tw9910: modify V/H outpit pin setting to use VALID
> > http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=8e7ca505b942
> > 
> > 26/30: tw9910: modify output format
> > http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=a42544f649b1
> > 
> > 27/30: tw9910: remove cropping
> > http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=c141cc75045a
> > 
> > 28/30: tw9910: Add sync polarity support
> > http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=750376b279e0
> > 
> > 29/30: soc-camera: Add mt9t112 camera driver
> > http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=37cdd4e97937
> > 
> > 30/30: sh_mobile_ceu_camera: Remove frame size page alignment
> > http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=8da6f7deee9f
> > 
> > 
> >  a/linux/arch/sh/boards/board-ap325rxa.c|  606 --
> >  b/linu

Re: [PULL] soc-camera and mediabus

2009-12-14 Thread Mauro Carvalho Chehab
Guennadi Liakhovetski wrote:
> Hi Mauro,
> 
> At last soc-camera and mediabus lot for 2.6.33. Note, that one of this 
> patches adds new fourcc codes. A patch for their documentation will be 
> submitted immediately.
> 
> Please pull from http://linuxtv.org/hg/~gliakhovetski/v4l-dvb
> 
> for the following 30 changesets:
> 
> 01/30: tw9910: The driver can also handle revision 1 of the chip
> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=f1e67c4ca734
> 
> 02/30: soc-camera: remove no longer needed struct members
> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=ac42a43c9d3c
> 
> 03/30: v4l: add new v4l2-subdev sensor operations, use g_skip_top_lines in 
> soc-camera
> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=f3ce29815a19
> 
> 04/30: soc-camera: fix multi-line comment coding style
> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=e893641bb109
> 
> 05/30: sh_mobile_ceu_camera: do not mark host occupied, when adding a client 
> fails
> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=9505453960fb
> 
> 06/30: v4l: Add a 10-bit monochrome and missing 8- and 10-bit Bayer fourcc 
> codes
> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=fc70aabadc59
> 
> 07/30: soc-camera: add a private field to struct soc_camera_link
> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=8144ecd97132
> 
> 08/30: Subject: kernel-sync for arch/sh/boards/mach-ap325rxa/setup.c
> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=ea27f790755c
> 
> 09/30: soc-camera: switch drivers and platforms to use .priv in struct 
> soc_camera_link
> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=54707961f633
> 
> 10/30: sh_mobile_ceu_camera: document the scaling and cropping algorithm
> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=f490679b43c3
> 
> 11/30: tw9910: Add revision control
> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=4d27f0bec0f3
> 
> 12/30: tw9910: simplify chip ID calculation
> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=b919641bdf84
> 
> 13/30: tw9910: Tri-state pins when idle
> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=bb97c53db3c0
> 
> 14/30: tw9910: Add power control
> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=2d8774ea617f
> 
> 15/30: tw9910: tw9910_set_hsync clean up
> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=669d0a9ca121
> 
> 16/30: tw9910: Add revision control to tw9910_set_hsync
> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=d3619f5f5679
> 
> 17/30: v4l: add a media-bus API for configuring v4l2 subdev pixel and frame 
> formats
> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=2c60bd900a7a
> 
> 18/30: soc-camera: convert to the new mediabus API
> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=2a8289e3de7b
> 
> 19/30: Subject: kernel-sync for arch/sh/boards/mach-kfr2r09/setup.c
> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=4e1dcff622e0
> 
> 20/30: rj54n1cb0c: Add cropping, auto white balance, restrict sizes, add 
> platform data
> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=c2ede215a03c
> 
> 21/30: mt9t031: make the use of the soc-camera client API optional
> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=be8b7a9252d8
> 
> 22/30: sh_mobile_ceu: Add V4L2_FIELD_INTERLACED_BT/TB support
> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=1a36ae75bdb1
> 
> 23/30: tw9910: use V4L2_FIELD_INTERLACED_BT
> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=be43ab8c8490
> 
> 24/30: sh_mobile_ceu_camera: Add support for sync polarity selection
> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=596e9b685f9b
> 
> 25/30: tw9910: modify V/H outpit pin setting to use VALID
> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=8e7ca505b942
> 
> 26/30: tw9910: modify output format
> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=a42544f649b1
> 
> 27/30: tw9910: remove cropping
> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=c141cc75045a
> 
> 28/30: tw9910: Add sync polarity support
> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=750376b279e0
> 
> 29/30: soc-camera: Add mt9t112 camera driver
> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=37cdd4e97937
> 
> 30/30: sh_mobile_ceu_camera: Remove frame size page alignment
> http://linuxtv.org/hg/~gliakhovetski/v4l-dvb?cmd=changeset;node=8da6f7deee9f
> 
> 
>  a/linux/arch/sh/boards/board-ap325rxa.c|  606 --
>  b/linux/Documentation/video4linux/sh_mobile_ceu_camera.txt |  157 +
>  b/linux/arch/sh/boards/mach-ap325rxa/setup.c   |  657 +++
>  b/linux/arch/sh/boards/mach-kfr2r09/setup.c|  622 ++
>  b/linux/drivers/media/video/mt9t112.c