public inbox for linux-media@vger.kernel.org
 help / color / mirror / Atom feed
* adv7180 as SoC camera device
@ 2010-02-19 17:44 Rodolfo Giometti
  2010-02-19 19:36 ` Guennadi Liakhovetski
  0 siblings, 1 reply; 16+ messages in thread
From: Rodolfo Giometti @ 2010-02-19 17:44 UTC (permalink / raw)
  To: Richard Röjfors
  Cc: linux-media, Mauro Carvalho Chehab, Guennadi Liakhovetski

Hello,

on my pxa27x based board I have a adv7180 connected with the CIF
interface. Due this fact I'm going to use the pxa_camera.c driver
which in turn registers a soc_camera_host.

In the latest kernel I found your driver for the ADV7180, but it
registers the chip as a v4l sub device.

I suppose these two interfaces are not compatible, aren't they?

In this situation, should I write a new driver for the
soc_camera_device? Which is The-Right-Thing(TM) to do? :)

Thanks in advance,

Rodolfo Giometti

-- 

GNU/Linux Solutions                  e-mail: giometti@enneenne.com
Linux Device Driver                          giometti@linux.it
Embedded Systems                     phone:  +39 349 2432127
UNIX programming                     skype:  rodolfo.giometti
Freelance ICT Italia - Consulente ICT Italia - www.consulenti-ict.it

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: adv7180 as SoC camera device
  2010-02-19 17:44 adv7180 as SoC camera device Rodolfo Giometti
@ 2010-02-19 19:36 ` Guennadi Liakhovetski
  2010-02-22 16:01   ` Rodolfo Giometti
  0 siblings, 1 reply; 16+ messages in thread
From: Guennadi Liakhovetski @ 2010-02-19 19:36 UTC (permalink / raw)
  To: Rodolfo Giometti
  Cc: Richard Röjfors, Linux Media Mailing List,
	Mauro Carvalho Chehab

On Fri, 19 Feb 2010, Rodolfo Giometti wrote:

> Hello,
> 
> on my pxa27x based board I have a adv7180 connected with the CIF
> interface. Due this fact I'm going to use the pxa_camera.c driver
> which in turn registers a soc_camera_host.
> 
> In the latest kernel I found your driver for the ADV7180, but it
> registers the chip as a v4l sub device.
> 
> I suppose these two interfaces are not compatible, aren't they?

Congratulations! Thereby you're in a position to develop the first 
v4l2-subdev / soc-camera universal driver;) The answer to this your 
question is - they are... kinda. This means - yes, soc-camera is also 
using the v4l2-subdev API, but - with a couple of additions. Basically, 
there are two things you have to change in the adv7180 driver to make it 
compatible with soc-camera - (1) add bus-configuration methods, even if 
they don't do much (see .query_bus_param() and .set_bus_param() methods 
from struct soc_camera_ops), and (2) migrate the driver to the mediabus 
API. The latter one requires some care - in principle, mediabus should be 
the future API to negotiate parameters on the video bus between bridges 
(in your case PXA CIF) and clients, but for you this means you also have 
to migrate any other bridge drivers in the mainline to that API, and, if 
they also interface to some other subdevices - those too, and if those can 
also work with other bridges - those too...;) But, I think, that chain 
will terminate quite soon, in fact, I cannot find any users of that driver 
currently in the mainline, Richard?

> In this situation, should I write a new driver for the
> soc_camera_device? Which is The-Right-Thing(TM) to do? :)

Please, have a look and try to convert the driver as described above. All 
the APIs and a few examples are in the mainline, so, you should have 
enough copy-paste sources;) Ask on the list (with me on cc) if anything is 
still unclear.

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

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: adv7180 as SoC camera device
  2010-02-19 19:36 ` Guennadi Liakhovetski
@ 2010-02-22 16:01   ` Rodolfo Giometti
  2010-02-22 16:11     ` Hans Verkuil
                       ` (2 more replies)
  0 siblings, 3 replies; 16+ messages in thread
From: Rodolfo Giometti @ 2010-02-22 16:01 UTC (permalink / raw)
  To: Guennadi Liakhovetski
  Cc: Richard Röjfors, Linux Media Mailing List,
	Mauro Carvalho Chehab

On Fri, Feb 19, 2010 at 08:36:38PM +0100, Guennadi Liakhovetski wrote:
> On Fri, 19 Feb 2010, Rodolfo Giometti wrote:
> 
> > Hello,
> > 
> > on my pxa27x based board I have a adv7180 connected with the CIF
> > interface. Due this fact I'm going to use the pxa_camera.c driver
> > which in turn registers a soc_camera_host.
> > 
> > In the latest kernel I found your driver for the ADV7180, but it
> > registers the chip as a v4l sub device.
> > 
> > I suppose these two interfaces are not compatible, aren't they?
> 
> Congratulations! Thereby you're in a position to develop the first 
> v4l2-subdev / soc-camera universal driver;) The answer to this your 
> question is - they are... kinda. This means - yes, soc-camera is also 
> using the v4l2-subdev API, but - with a couple of additions. Basically, 
> there are two things you have to change in the adv7180 driver to make it 
> compatible with soc-camera - (1) add bus-configuration methods, even if 
> they don't do much (see .query_bus_param() and .set_bus_param() methods 
> from struct soc_camera_ops), and (2) migrate the driver to the mediabus 
> API. The latter one requires some care - in principle, mediabus should be 
> the future API to negotiate parameters on the video bus between bridges 
> (in your case PXA CIF) and clients, but for you this means you also have 
> to migrate any other bridge drivers in the mainline to that API, and, if 
> they also interface to some other subdevices - those too, and if those can 
> also work with other bridges - those too...;) But, I think, that chain 
> will terminate quite soon, in fact, I cannot find any users of that driver 
> currently in the mainline, Richard?
> 
> > In this situation, should I write a new driver for the
> > soc_camera_device? Which is The-Right-Thing(TM) to do? :)
> 
> Please, have a look and try to convert the driver as described above. All 
> the APIs and a few examples are in the mainline, so, you should have 
> enough copy-paste sources;) Ask on the list (with me on cc) if anything is 
> still unclear.

Thanks for your quick answer! :)

What I still don't understand is if should I move the driver form
v4l2-subdev to a soc_camera device or trying to support both API...

It seems to me that the driver is not used by any machines into
mainline so if soc-camera is also using the v4l2-subdev API but with a
couple of additions I suppose I can move it to soc_camera API...

Is that right?

Ciao,

Rodolfo

-- 

GNU/Linux Solutions                  e-mail: giometti@enneenne.com
Linux Device Driver                          giometti@linux.it
Embedded Systems                     phone:  +39 349 2432127
UNIX programming                     skype:  rodolfo.giometti
Freelance ICT Italia - Consulente ICT Italia - www.consulenti-ict.it

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: adv7180 as SoC camera device
  2010-02-22 16:01   ` Rodolfo Giometti
@ 2010-02-22 16:11     ` Hans Verkuil
  2010-02-22 16:15       ` Rodolfo Giometti
  2010-02-22 16:16     ` Guennadi Liakhovetski
  2010-02-22 23:19     ` Richard Röjfors
  2 siblings, 1 reply; 16+ messages in thread
From: Hans Verkuil @ 2010-02-22 16:11 UTC (permalink / raw)
  To: Rodolfo Giometti
  Cc: Guennadi Liakhovetski, Richard Röjfors,
	Linux Media Mailing List, Mauro Carvalho Chehab

On Monday 22 February 2010 17:01:39 Rodolfo Giometti wrote:
> On Fri, Feb 19, 2010 at 08:36:38PM +0100, Guennadi Liakhovetski wrote:
> > On Fri, 19 Feb 2010, Rodolfo Giometti wrote:
> > 
> > > Hello,
> > > 
> > > on my pxa27x based board I have a adv7180 connected with the CIF
> > > interface. Due this fact I'm going to use the pxa_camera.c driver
> > > which in turn registers a soc_camera_host.
> > > 
> > > In the latest kernel I found your driver for the ADV7180, but it
> > > registers the chip as a v4l sub device.
> > > 
> > > I suppose these two interfaces are not compatible, aren't they?
> > 
> > Congratulations! Thereby you're in a position to develop the first 
> > v4l2-subdev / soc-camera universal driver;) The answer to this your 
> > question is - they are... kinda. This means - yes, soc-camera is also 
> > using the v4l2-subdev API, but - with a couple of additions. Basically, 
> > there are two things you have to change in the adv7180 driver to make it 
> > compatible with soc-camera - (1) add bus-configuration methods, even if 
> > they don't do much (see .query_bus_param() and .set_bus_param() methods 
> > from struct soc_camera_ops), and (2) migrate the driver to the mediabus 
> > API. The latter one requires some care - in principle, mediabus should be 
> > the future API to negotiate parameters on the video bus between bridges 
> > (in your case PXA CIF) and clients, but for you this means you also have 
> > to migrate any other bridge drivers in the mainline to that API, and, if 
> > they also interface to some other subdevices - those too, and if those can 
> > also work with other bridges - those too...;) But, I think, that chain 
> > will terminate quite soon, in fact, I cannot find any users of that driver 
> > currently in the mainline, Richard?
> > 
> > > In this situation, should I write a new driver for the
> > > soc_camera_device? Which is The-Right-Thing(TM) to do? :)
> > 
> > Please, have a look and try to convert the driver as described above. All 
> > the APIs and a few examples are in the mainline, so, you should have 
> > enough copy-paste sources;) Ask on the list (with me on cc) if anything is 
> > still unclear.
> 
> Thanks for your quick answer! :)
> 
> What I still don't understand is if should I move the driver form
> v4l2-subdev to a soc_camera device or trying to support both API...
> 
> It seems to me that the driver is not used by any machines into
> mainline so if soc-camera is also using the v4l2-subdev API but with a
> couple of additions I suppose I can move it to soc_camera API...

The long-term goal is to remove the last soc-camera API dependencies from
the sensor subdev drivers. Subdevice (usually i2c) drivers should be fully
reusable and a dependency on soc-camera defeats that goal.

I think the only missing piece is low-level bus setup (i.e. sync polarities,
rising/falling edge sampling, etc.). Some proposals were made, but basically
nobody has had the time to actually implement this.

Right now, if you want to use your sensor with soc-camera, then you need to
support the soc-camera API (or what is left of it) in your subdev driver as
well.

Regards,

	Hans

> 
> Is that right?
> 
> Ciao,
> 
> Rodolfo
> 
> 

-- 
Hans Verkuil - video4linux developer - sponsored by TANDBERG

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: adv7180 as SoC camera device
  2010-02-22 16:11     ` Hans Verkuil
@ 2010-02-22 16:15       ` Rodolfo Giometti
  2010-02-22 16:46         ` Guennadi Liakhovetski
  0 siblings, 1 reply; 16+ messages in thread
From: Rodolfo Giometti @ 2010-02-22 16:15 UTC (permalink / raw)
  To: Hans Verkuil
  Cc: Guennadi Liakhovetski, Richard Röjfors,
	Linux Media Mailing List, Mauro Carvalho Chehab

On Mon, Feb 22, 2010 at 05:11:18PM +0100, Hans Verkuil wrote:
> 
> The long-term goal is to remove the last soc-camera API dependencies from
> the sensor subdev drivers. Subdevice (usually i2c) drivers should be fully
> reusable and a dependency on soc-camera defeats that goal.
> 
> I think the only missing piece is low-level bus setup (i.e. sync polarities,
> rising/falling edge sampling, etc.). Some proposals were made, but basically
> nobody has had the time to actually implement this.
> 
> Right now, if you want to use your sensor with soc-camera, then you need to
> support the soc-camera API (or what is left of it) in your subdev driver as
> well.

But with the goal to remove the last soc-camera API dependencies I
suppose is better I try to change the pxa_camera driver in something
compatible with the API of the adv7180 driver...

I'm sorry but I'm a bit confused. :)

Ciao,

Rodolfo

-- 

GNU/Linux Solutions                  e-mail: giometti@enneenne.com
Linux Device Driver                          giometti@linux.it
Embedded Systems                     phone:  +39 349 2432127
UNIX programming                     skype:  rodolfo.giometti
Freelance ICT Italia - Consulente ICT Italia - www.consulenti-ict.it

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: adv7180 as SoC camera device
  2010-02-22 16:01   ` Rodolfo Giometti
  2010-02-22 16:11     ` Hans Verkuil
@ 2010-02-22 16:16     ` Guennadi Liakhovetski
  2010-02-22 16:53       ` Jonathan Cameron
  2010-02-22 23:19     ` Richard Röjfors
  2 siblings, 1 reply; 16+ messages in thread
From: Guennadi Liakhovetski @ 2010-02-22 16:16 UTC (permalink / raw)
  To: Rodolfo Giometti
  Cc: Richard Röjfors, Linux Media Mailing List,
	Mauro Carvalho Chehab

On Mon, 22 Feb 2010, Rodolfo Giometti wrote:

> On Fri, Feb 19, 2010 at 08:36:38PM +0100, Guennadi Liakhovetski wrote:
> > On Fri, 19 Feb 2010, Rodolfo Giometti wrote:
> > 
> > > Hello,
> > > 
> > > on my pxa27x based board I have a adv7180 connected with the CIF
> > > interface. Due this fact I'm going to use the pxa_camera.c driver
> > > which in turn registers a soc_camera_host.
> > > 
> > > In the latest kernel I found your driver for the ADV7180, but it
> > > registers the chip as a v4l sub device.
> > > 
> > > I suppose these two interfaces are not compatible, aren't they?
> > 
> > Congratulations! Thereby you're in a position to develop the first 
> > v4l2-subdev / soc-camera universal driver;) The answer to this your 
> > question is - they are... kinda. This means - yes, soc-camera is also 
> > using the v4l2-subdev API, but - with a couple of additions. Basically, 
> > there are two things you have to change in the adv7180 driver to make it 
> > compatible with soc-camera - (1) add bus-configuration methods, even if 
> > they don't do much (see .query_bus_param() and .set_bus_param() methods 
> > from struct soc_camera_ops), and (2) migrate the driver to the mediabus 
> > API. The latter one requires some care - in principle, mediabus should be 
> > the future API to negotiate parameters on the video bus between bridges 
> > (in your case PXA CIF) and clients, but for you this means you also have 
> > to migrate any other bridge drivers in the mainline to that API, and, if 
> > they also interface to some other subdevices - those too, and if those can 
> > also work with other bridges - those too...;) But, I think, that chain 
> > will terminate quite soon, in fact, I cannot find any users of that driver 
> > currently in the mainline, Richard?
> > 
> > > In this situation, should I write a new driver for the
> > > soc_camera_device? Which is The-Right-Thing(TM) to do? :)
> > 
> > Please, have a look and try to convert the driver as described above. All 
> > the APIs and a few examples are in the mainline, so, you should have 
> > enough copy-paste sources;) Ask on the list (with me on cc) if anything is 
> > still unclear.
> 
> Thanks for your quick answer! :)
> 
> What I still don't understand is if should I move the driver form
> v4l2-subdev to a soc_camera device or trying to support both API...

Both. It is just one (v4l2-subdev) API, but soc-camera is using some 
extensions to it.

> It seems to me that the driver is not used by any machines into
> mainline

That makes your task even easier - you do not have to convert any bridge 
drivers to mediabus API.

> so if soc-camera is also using the v4l2-subdev API but with a
> couple of additions I suppose I can move it to soc_camera API...

Not move, extend. But preserve an ability to function without soc-camera 
additions too. I.e., the use of soc-camera extensions should be optional 
in your driver. Look here 
http://thread.gmane.org/gmane.linux.drivers.video-input-infrastructure/11486/focus=11493 
for an example.

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

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: adv7180 as SoC camera device
  2010-02-22 16:15       ` Rodolfo Giometti
@ 2010-02-22 16:46         ` Guennadi Liakhovetski
  0 siblings, 0 replies; 16+ messages in thread
From: Guennadi Liakhovetski @ 2010-02-22 16:46 UTC (permalink / raw)
  To: Rodolfo Giometti
  Cc: Hans Verkuil, Richard Röjfors,
	Linux Media Mailing List, Mauro Carvalho Chehab

On Mon, 22 Feb 2010, Rodolfo Giometti wrote:

> On Mon, Feb 22, 2010 at 05:11:18PM +0100, Hans Verkuil wrote:
> > 
> > The long-term goal is to remove the last soc-camera API dependencies from
> > the sensor subdev drivers. Subdevice (usually i2c) drivers should be fully
> > reusable and a dependency on soc-camera defeats that goal.
> > 
> > I think the only missing piece is low-level bus setup (i.e. sync polarities,
> > rising/falling edge sampling, etc.). Some proposals were made, but basically
> > nobody has had the time to actually implement this.
> > 
> > Right now, if you want to use your sensor with soc-camera, then you need to
> > support the soc-camera API (or what is left of it) in your subdev driver as
> > well.
> 
> But with the goal to remove the last soc-camera API dependencies I
> suppose is better I try to change the pxa_camera driver in something
> compatible with the API of the adv7180 driver...

No. As Hans said, one of important things, that is present in soc-camera, 
but absent from v4l2-subdev is bus-parameter configuration. So, to remove 
those dependencies one would have to develop a generic bus-configuration 
API for V4L2, and then convert soc-camera core and all soc-camera drivers 
to it. Feel free to submit patches.

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

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: adv7180 as SoC camera device
  2010-02-22 16:16     ` Guennadi Liakhovetski
@ 2010-02-22 16:53       ` Jonathan Cameron
  0 siblings, 0 replies; 16+ messages in thread
From: Jonathan Cameron @ 2010-02-22 16:53 UTC (permalink / raw)
  To: Guennadi Liakhovetski
  Cc: Rodolfo Giometti, Richard Röjfors, Linux Media Mailing List,
	Mauro Carvalho Chehab

On 02/22/10 16:16, Guennadi Liakhovetski wrote:
> On Mon, 22 Feb 2010, Rodolfo Giometti wrote:
> 
>> On Fri, Feb 19, 2010 at 08:36:38PM +0100, Guennadi Liakhovetski wrote:
>>> On Fri, 19 Feb 2010, Rodolfo Giometti wrote:
>>>
>>>> Hello,
>>>>
>>>> on my pxa27x based board I have a adv7180 connected with the CIF
>>>> interface. Due this fact I'm going to use the pxa_camera.c driver
>>>> which in turn registers a soc_camera_host.
>>>>
>>>> In the latest kernel I found your driver for the ADV7180, but it
>>>> registers the chip as a v4l sub device.
>>>>
>>>> I suppose these two interfaces are not compatible, aren't they?
>>>
>>> Congratulations! Thereby you're in a position to develop the first 
>>> v4l2-subdev / soc-camera universal driver;) The answer to this your 
>>> question is - they are... kinda. This means - yes, soc-camera is also 
>>> using the v4l2-subdev API, but - with a couple of additions. Basically, 
>>> there are two things you have to change in the adv7180 driver to make it 
>>> compatible with soc-camera - (1) add bus-configuration methods, even if 
>>> they don't do much (see .query_bus_param() and .set_bus_param() methods 
>>> from struct soc_camera_ops), and (2) migrate the driver to the mediabus 
>>> API. The latter one requires some care - in principle, mediabus should be 
>>> the future API to negotiate parameters on the video bus between bridges 
>>> (in your case PXA CIF) and clients, but for you this means you also have 
>>> to migrate any other bridge drivers in the mainline to that API, and, if 
>>> they also interface to some other subdevices - those too, and if those can 
>>> also work with other bridges - those too...;) But, I think, that chain 
>>> will terminate quite soon, in fact, I cannot find any users of that driver 
>>> currently in the mainline, Richard?
>>>
>>>> In this situation, should I write a new driver for the
>>>> soc_camera_device? Which is The-Right-Thing(TM) to do? :)
>>>
>>> Please, have a look and try to convert the driver as described above. All 
>>> the APIs and a few examples are in the mainline, so, you should have 
>>> enough copy-paste sources;) Ask on the list (with me on cc) if anything is 
>>> still unclear.
>>
>> Thanks for your quick answer! :)
>>
>> What I still don't understand is if should I move the driver form
>> v4l2-subdev to a soc_camera device or trying to support both API...
> 
> Both. It is just one (v4l2-subdev) API, but soc-camera is using some 
> extensions to it.
> 
>> It seems to me that the driver is not used by any machines into
>> mainline
> 
> That makes your task even easier - you do not have to convert any bridge 
> drivers to mediabus API.
Indeed.  Having time to do that is what is delaying the ov7670 conversion.
(that and having time in general!)  For info I did post some untested
patches for the ov7670 a while back that show the minimal changes I think
are needed under these circumstances.

> 
>> so if soc-camera is also using the v4l2-subdev API but with a
>> couple of additions I suppose I can move it to soc_camera API...
> 
> Not move, extend. But preserve an ability to function without soc-camera 
> additions too. I.e., the use of soc-camera extensions should be optional 
> in your driver. Look here 
> http://thread.gmane.org/gmane.linux.drivers.video-input-infrastructure/11486/focus=11493 
> for an example.
> 
> Thanks
> Guennadi
> ---
> Guennadi Liakhovetski, Ph.D.
> Freelance Open-Source Software Developer
> http://www.open-technology.de/
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: adv7180 as SoC camera device
  2010-02-22 16:01   ` Rodolfo Giometti
  2010-02-22 16:11     ` Hans Verkuil
  2010-02-22 16:16     ` Guennadi Liakhovetski
@ 2010-02-22 23:19     ` Richard Röjfors
  2010-03-30 14:06       ` Rodolfo Giometti
  2 siblings, 1 reply; 16+ messages in thread
From: Richard Röjfors @ 2010-02-22 23:19 UTC (permalink / raw)
  To: Rodolfo Giometti
  Cc: Guennadi Liakhovetski, Linux Media Mailing List,
	Mauro Carvalho Chehab

On 2/22/10 5:01 PM, Rodolfo Giometti wrote:
> On Fri, Feb 19, 2010 at 08:36:38PM +0100, Guennadi Liakhovetski wrote:
>> On Fri, 19 Feb 2010, Rodolfo Giometti wrote:
>>
>>> Hello,
>>>
>>> on my pxa27x based board I have a adv7180 connected with the CIF
>>> interface. Due this fact I'm going to use the pxa_camera.c driver
>>> which in turn registers a soc_camera_host.
>>>
>>> In the latest kernel I found your driver for the ADV7180, but it
>>> registers the chip as a v4l sub device.
>>>
>>> I suppose these two interfaces are not compatible, aren't they?
>>
>> Congratulations! Thereby you're in a position to develop the first 
>> v4l2-subdev / soc-camera universal driver;) The answer to this your 
>> question is - they are... kinda. This means - yes, soc-camera is also 
>> using the v4l2-subdev API, but - with a couple of additions. Basically, 
>> there are two things you have to change in the adv7180 driver to make it 
>> compatible with soc-camera - (1) add bus-configuration methods, even if 
>> they don't do much (see .query_bus_param() and .set_bus_param() methods 
>> from struct soc_camera_ops), and (2) migrate the driver to the mediabus 
>> API. The latter one requires some care - in principle, mediabus should be 
>> the future API to negotiate parameters on the video bus between bridges 
>> (in your case PXA CIF) and clients, but for you this means you also have 
>> to migrate any other bridge drivers in the mainline to that API, and, if 
>> they also interface to some other subdevices - those too, and if those can 
>> also work with other bridges - those too...;) But, I think, that chain 
>> will terminate quite soon, in fact, I cannot find any users of that driver 
>> currently in the mainline, Richard?
>>
>>> In this situation, should I write a new driver for the
>>> soc_camera_device? Which is The-Right-Thing(TM) to do? :)
>>
>> Please, have a look and try to convert the driver as described above. All 
>> the APIs and a few examples are in the mainline, so, you should have 
>> enough copy-paste sources;) Ask on the list (with me on cc) if anything is 
>> still unclear.
> 
> Thanks for your quick answer! :)
> 
> What I still don't understand is if should I move the driver form
> v4l2-subdev to a soc_camera device or trying to support both API...
> 
> It seems to me that the driver is not used by any machines into
> mainline so if soc-camera is also using the v4l2-subdev API but with a
> couple of additions I suppose I can move it to soc_camera API...
> 
> Is that right?

We use it as a subdev to a driver not yet committed from us. So I think
you should extend it, not move it.

--Richard

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: adv7180 as SoC camera device
  2010-02-22 23:19     ` Richard Röjfors
@ 2010-03-30 14:06       ` Rodolfo Giometti
  2010-03-30 14:40         ` Guennadi Liakhovetski
  2010-04-01 11:48         ` Rodolfo Giometti
  0 siblings, 2 replies; 16+ messages in thread
From: Rodolfo Giometti @ 2010-03-30 14:06 UTC (permalink / raw)
  To: Richard Röjfors
  Cc: Guennadi Liakhovetski, Linux Media Mailing List,
	Mauro Carvalho Chehab

On Tue, Feb 23, 2010 at 12:19:13AM +0100, Richard Röjfors wrote:
> 
> We use it as a subdev to a driver not yet committed from us. So I think
> you should extend it, not move it.

Finally I got something functional... but I'm puzzled to know how I
can add platform data configuration struct by using the I2C's
platform_data pointer if it is already used to hold struct
soc_camera_device... O_o

In fact my probe function looks like:

static __devinit int adv7180_probe(struct i2c_client *client,
                        const struct i2c_device_id *id)
{
        struct adv7180_state *state;
        struct soc_camera_device *icd = client->dev.platform_data;
        struct soc_camera_link *icl;
        struct v4l2_subdev *sd;
        int ret;

        /* Check if the adapter supports the needed features */
        if (!i2c_check_functionality(client->adapter,
	I2C_FUNC_SMBUS_BYTE_DATA))
                return -EIO;

        v4l_info(client, "chip found @ 0x%02x (%s)\n",
                        client->addr << 1, client->adapter->name);

        if (icd) {
                icl = to_soc_camera_link(icd);
                if (!icl)
                        return -EINVAL;

                icd->ops = &adv7180_soc_ops;
                v4l_info(client, "soc-camera support enabled\n");
        } else
                pdata = client->dev.platform_data;

        state = kzalloc(sizeof(struct adv7180_state), GFP_KERNEL);
        if (state == NULL) {
                ret = -ENOMEM;
                goto err;
        }

        state->irq = client->irq;
        INIT_WORK(&state->work, adv7180_work);
        mutex_init(&state->mutex);
        state->autodetect = true;
        sd = &state->sd;
        v4l2_i2c_subdev_init(sd, client, &adv7180_ops);
	...

Thanks in advance,

Rodolfo

-- 

GNU/Linux Solutions                  e-mail: giometti@enneenne.com
Linux Device Driver                          giometti@linux.it
Embedded Systems                     phone:  +39 349 2432127
UNIX programming                     skype:  rodolfo.giometti
Freelance ICT Italia - Consulente ICT Italia - www.consulenti-ict.it

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: adv7180 as SoC camera device
  2010-03-30 14:06       ` Rodolfo Giometti
@ 2010-03-30 14:40         ` Guennadi Liakhovetski
  2010-03-30 15:42           ` Rodolfo Giometti
  2010-04-01 11:48         ` Rodolfo Giometti
  1 sibling, 1 reply; 16+ messages in thread
From: Guennadi Liakhovetski @ 2010-03-30 14:40 UTC (permalink / raw)
  To: Rodolfo Giometti
  Cc: Richard Röjfors, Linux Media Mailing List,
	Mauro Carvalho Chehab

On Tue, 30 Mar 2010, Rodolfo Giometti wrote:

> On Tue, Feb 23, 2010 at 12:19:13AM +0100, Richard Röjfors wrote:
> > 
> > We use it as a subdev to a driver not yet committed from us. So I think
> > you should extend it, not move it.
> 
> Finally I got something functional... but I'm puzzled to know how I
> can add platform data configuration struct by using the I2C's
> platform_data pointer if it is already used to hold struct
> soc_camera_device... O_o

As usual, looking at existing examples helps, e.g., in ov772x:

	priv->info = icl->priv;

i.e., icl->priv is where you pass subdevice-driver specific data with 
the soc-camera API.

> In fact my probe function looks like:
> 
> static __devinit int adv7180_probe(struct i2c_client *client,
>                         const struct i2c_device_id *id)
> {
>         struct adv7180_state *state;
>         struct soc_camera_device *icd = client->dev.platform_data;
>         struct soc_camera_link *icl;
>         struct v4l2_subdev *sd;
>         int ret;
> 
>         /* Check if the adapter supports the needed features */
>         if (!i2c_check_functionality(client->adapter,
> 	I2C_FUNC_SMBUS_BYTE_DATA))
>                 return -EIO;
> 
>         v4l_info(client, "chip found @ 0x%02x (%s)\n",
>                         client->addr << 1, client->adapter->name);
> 
>         if (icd) {
>                 icl = to_soc_camera_link(icd);
>                 if (!icl)
>                         return -EINVAL;
> 
>                 icd->ops = &adv7180_soc_ops;
>                 v4l_info(client, "soc-camera support enabled\n");
>         } else
>                 pdata = client->dev.platform_data;

This is a complicated way to say

		pdata = NULL;

Thanks
Guennadi

> 
>         state = kzalloc(sizeof(struct adv7180_state), GFP_KERNEL);
>         if (state == NULL) {
>                 ret = -ENOMEM;
>                 goto err;
>         }
> 
>         state->irq = client->irq;
>         INIT_WORK(&state->work, adv7180_work);
>         mutex_init(&state->mutex);
>         state->autodetect = true;
>         sd = &state->sd;
>         v4l2_i2c_subdev_init(sd, client, &adv7180_ops);
> 	...
> 
> Thanks in advance,
> 
> Rodolfo
> 
> -- 
> 
> GNU/Linux Solutions                  e-mail: giometti@enneenne.com
> Linux Device Driver                          giometti@linux.it
> Embedded Systems                     phone:  +39 349 2432127
> UNIX programming                     skype:  rodolfo.giometti
> Freelance ICT Italia - Consulente ICT Italia - www.consulenti-ict.it
> 

---
Guennadi Liakhovetski

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: adv7180 as SoC camera device
  2010-03-30 14:40         ` Guennadi Liakhovetski
@ 2010-03-30 15:42           ` Rodolfo Giometti
  2010-04-02  7:06             ` Guennadi Liakhovetski
  0 siblings, 1 reply; 16+ messages in thread
From: Rodolfo Giometti @ 2010-03-30 15:42 UTC (permalink / raw)
  To: Guennadi Liakhovetski
  Cc: Richard Röjfors, Linux Media Mailing List,
	Mauro Carvalho Chehab

On Tue, Mar 30, 2010 at 04:40:17PM +0200, Guennadi Liakhovetski wrote:
> On Tue, 30 Mar 2010, Rodolfo Giometti wrote:
> 
> > On Tue, Feb 23, 2010 at 12:19:13AM +0100, Richard Röjfors wrote:
> > > 
> > > We use it as a subdev to a driver not yet committed from us. So I think
> > > you should extend it, not move it.
> > 
> > Finally I got something functional... but I'm puzzled to know how I
> > can add platform data configuration struct by using the I2C's
> > platform_data pointer if it is already used to hold struct
> > soc_camera_device... O_o
> 
> As usual, looking at existing examples helps, e.g., in ov772x:
> 
> 	priv->info = icl->priv;
> 
> i.e., icl->priv is where you pass subdevice-driver specific data with 
> the soc-camera API.

This driver was developed as v4l2-sub device and I just add the
soc-camera support.

Doing what are you suggesting is not compatible with the v4l2-sub
device support, in fact the I2C platform_data is used to know if the
driver must enable soc-camera or not...

Look the code:

   static __devinit int adv7180_probe(struct i2c_client *client,
                           const struct i2c_device_id *id)
   {
           struct adv7180_state *state;
           struct soc_camera_device *icd = client->dev.platform_data;

icd is set as client->dev.platform_data. This can be use for normal
I2C devices to hold custom platform_data initialization.

           struct soc_camera_link *icl;
           struct adv7180_platform_data *pdata = NULL;
           struct v4l2_subdev *sd;
           int ret;

           /* Check if the adapter supports the needed features */
           if (!i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_BYTE_DATA))
                   return -EIO;

           v4l_info(client, "chip found @ 0x%02x (%s)\n",
                           client->addr << 1, client->adapter->name);

           if (icd) {

If the icd is set we assume it holds a soc-camera struct.

                   icl = to_soc_camera_link(icd);
                   if (!icl || !icl->priv) {
                           v4l_err(client, "missing platform data!\n");
                           return -EINVAL;
                   }

                   icd->ops = &adv7180_soc_ops;

If soc-camera is defined we set some info in order to enable it...

                   v4l_info(client, "soc-camera support enabled\n");
           }
...otherwise the driver works in the old way.

           state = kzalloc(sizeof(struct adv7180_state), GFP_KERNEL);
           if (state == NULL) {
                   ret = -ENOMEM;
                   goto err;
           }

           state->irq = client->irq;
           INIT_WORK(&state->work, adv7180_work);
           mutex_init(&state->mutex);
           state->autodetect = true;
           sd = &state->sd;
           v4l2_i2c_subdev_init(sd, client, &adv7180_ops);

Ciao,

Rodolfo

-- 

GNU/Linux Solutions                  e-mail: giometti@enneenne.com
Linux Device Driver                          giometti@linux.it
Embedded Systems                     phone:  +39 349 2432127
UNIX programming                     skype:  rodolfo.giometti
Freelance ICT Italia - Consulente ICT Italia - www.consulenti-ict.it

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: adv7180 as SoC camera device
  2010-03-30 14:06       ` Rodolfo Giometti
  2010-03-30 14:40         ` Guennadi Liakhovetski
@ 2010-04-01 11:48         ` Rodolfo Giometti
  2010-04-02  7:09           ` Guennadi Liakhovetski
  1 sibling, 1 reply; 16+ messages in thread
From: Rodolfo Giometti @ 2010-04-01 11:48 UTC (permalink / raw)
  To: Richard Röjfors
  Cc: Guennadi Liakhovetski, Linux Media Mailing List,
	Mauro Carvalho Chehab

On Tue, Mar 30, 2010 at 04:06:11PM +0200, Rodolfo Giometti wrote:
> On Tue, Feb 23, 2010 at 12:19:13AM +0100, Richard Röjfors wrote:
> > 
> > We use it as a subdev to a driver not yet committed from us. So I think
> > you should extend it, not move it.
> 
> Finally I got something functional... but I'm puzzled to know how I
> can add platform data configuration struct by using the I2C's
> platform_data pointer if it is already used to hold struct
> soc_camera_device... O_o

Here my solution:

static __devinit int adv7180_probe(struct i2c_client *client,
                        const struct i2c_device_id *id)
{
        struct adv7180_state *state;
#if defined(CONFIG_SOC_CAMERA)
        struct soc_camera_device *icd = client->dev.platform_data;
        struct soc_camera_link *icl;
        struct adv7180_platform_data *pdata = NULL;
#else
        struct adv7180_platform_data *pdata =
	client->dev.platform_data;
#endif
        struct v4l2_subdev *sd;
        int i, ret;

        /* Check if the adapter supports the needed features */
        if (!i2c_check_functionality(client->adapter,
	I2C_FUNC_SMBUS_BYTE_DATA))
                return -EIO;

        v4l_info(client, "chip found @ 0x%02x (%s)\n",
                        client->addr << 1, client->adapter->name);

#if defined(CONFIG_SOC_CAMERA)
        if (icd) {
                icl = to_soc_camera_link(icd);
                if (!icl || !icl->priv) {
                        v4l_err(client, "missing platform data!\n");
                        return -EINVAL;
                }
                pdata = icl->priv;

                icd->ops = &adv7180_soc_ops;
                v4l_info(client, "soc-camera support enabled\n");
        }
#endif

        state = kzalloc(sizeof(struct adv7180_state), GFP_KERNEL);
        if (state == NULL) {
                ret = -ENOMEM;
                goto err;
        }

        state->irq = client->irq;
        INIT_WORK(&state->work, adv7180_work);
        mutex_init(&state->mutex);
        state->autodetect = true;
        sd = &state->sd;
        v4l2_i2c_subdev_init(sd, client, &adv7180_ops);

        if (pdata)
                for (i = 0; pdata[i].reg >= 0; i++) {
                        printk("----> %x %x\n", pdata[i].reg,
			pdata[i].val);
                        ret = i2c_smbus_write_byte_data(client,
                                        pdata[i].reg, pdata[i].val);
                        if (ret < 0)
                                goto err_unreg_subdev;
                }

Rodolfo

-- 

GNU/Linux Solutions                  e-mail: giometti@enneenne.com
Linux Device Driver                          giometti@linux.it
Embedded Systems                     phone:  +39 349 2432127
UNIX programming                     skype:  rodolfo.giometti
Freelance ICT Italia - Consulente ICT Italia - www.consulenti-ict.it

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: adv7180 as SoC camera device
  2010-03-30 15:42           ` Rodolfo Giometti
@ 2010-04-02  7:06             ` Guennadi Liakhovetski
  0 siblings, 0 replies; 16+ messages in thread
From: Guennadi Liakhovetski @ 2010-04-02  7:06 UTC (permalink / raw)
  To: Rodolfo Giometti
  Cc: Richard Röjfors, Linux Media Mailing List,
	Mauro Carvalho Chehab

On Tue, 30 Mar 2010, Rodolfo Giometti wrote:

> On Tue, Mar 30, 2010 at 04:40:17PM +0200, Guennadi Liakhovetski wrote:
> > On Tue, 30 Mar 2010, Rodolfo Giometti wrote:
> > 
> > > On Tue, Feb 23, 2010 at 12:19:13AM +0100, Richard Röjfors wrote:
> > > > 
> > > > We use it as a subdev to a driver not yet committed from us. So I think
> > > > you should extend it, not move it.
> > > 
> > > Finally I got something functional... but I'm puzzled to know how I
> > > can add platform data configuration struct by using the I2C's
> > > platform_data pointer if it is already used to hold struct
> > > soc_camera_device... O_o
> > 
> > As usual, looking at existing examples helps, e.g., in ov772x:
> > 
> > 	priv->info = icl->priv;
> > 
> > i.e., icl->priv is where you pass subdevice-driver specific data with 
> > the soc-camera API.
> 
> This driver was developed as v4l2-sub device and I just add the
> soc-camera support.
> 
> Doing what are you suggesting is not compatible with the v4l2-sub
> device support, in fact the I2C platform_data is used to know if the
> driver must enable soc-camera or not...

Yes, this is a known limitation, I have tried to discuss this on this ML 
in the past to get some reasonable solution for this, i.e., to standardise 
the use of the platform-data pointer. However, this hasn't worked until 
now. Maybe we manage it this time. So, what we would need is some standard 
optional struct, to which platform-data may point. If it is not NULL, then 
there could be either a "priv" member, that we would then use for 
soc-camera specific data, or we could embed that common struct in an 
soc-camera specific one. I would prefer a priv pointer.

> 
> Look the code:
> 
>    static __devinit int adv7180_probe(struct i2c_client *client,
>                            const struct i2c_device_id *id)
>    {
>            struct adv7180_state *state;
>            struct soc_camera_device *icd = client->dev.platform_data;
> 
> icd is set as client->dev.platform_data. This can be use for normal
> I2C devices to hold custom platform_data initialization.
> 
>            struct soc_camera_link *icl;
>            struct adv7180_platform_data *pdata = NULL;
>            struct v4l2_subdev *sd;
>            int ret;
> 
>            /* Check if the adapter supports the needed features */
>            if (!i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_BYTE_DATA))
>                    return -EIO;
> 
>            v4l_info(client, "chip found @ 0x%02x (%s)\n",
>                            client->addr << 1, client->adapter->name);
> 
>            if (icd) {
> 
> If the icd is set we assume it holds a soc-camera struct.
> 
>                    icl = to_soc_camera_link(icd);
>                    if (!icl || !icl->priv) {
>                            v4l_err(client, "missing platform data!\n");
>                            return -EINVAL;
>                    }
> 
>                    icd->ops = &adv7180_soc_ops;
> 
> If soc-camera is defined we set some info in order to enable it...
> 
>                    v4l_info(client, "soc-camera support enabled\n");
>            }
> ...otherwise the driver works in the old way.

Exactly, now we just have to standardise the use of 
client->dev.platform_data for v4l(2) I2C devices.

> 
>            state = kzalloc(sizeof(struct adv7180_state), GFP_KERNEL);
>            if (state == NULL) {
>                    ret = -ENOMEM;
>                    goto err;
>            }
> 
>            state->irq = client->irq;
>            INIT_WORK(&state->work, adv7180_work);
>            mutex_init(&state->mutex);
>            state->autodetect = true;
>            sd = &state->sd;
>            v4l2_i2c_subdev_init(sd, client, &adv7180_ops);
> 
> Ciao,
> 
> Rodolfo

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

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: adv7180 as SoC camera device
  2010-04-01 11:48         ` Rodolfo Giometti
@ 2010-04-02  7:09           ` Guennadi Liakhovetski
  2010-04-02  7:44             ` Rodolfo Giometti
  0 siblings, 1 reply; 16+ messages in thread
From: Guennadi Liakhovetski @ 2010-04-02  7:09 UTC (permalink / raw)
  To: Rodolfo Giometti
  Cc: Richard Röjfors, Linux Media Mailing List,
	Mauro Carvalho Chehab

On Thu, 1 Apr 2010, Rodolfo Giometti wrote:

> On Tue, Mar 30, 2010 at 04:06:11PM +0200, Rodolfo Giometti wrote:
> > On Tue, Feb 23, 2010 at 12:19:13AM +0100, Richard Röjfors wrote:
> > > 
> > > We use it as a subdev to a driver not yet committed from us. So I think
> > > you should extend it, not move it.
> > 
> > Finally I got something functional... but I'm puzzled to know how I
> > can add platform data configuration struct by using the I2C's
> > platform_data pointer if it is already used to hold struct
> > soc_camera_device... O_o
> 
> Here my solution:
> 
> static __devinit int adv7180_probe(struct i2c_client *client,
>                         const struct i2c_device_id *id)
> {
>         struct adv7180_state *state;
> #if defined(CONFIG_SOC_CAMERA)
>         struct soc_camera_device *icd = client->dev.platform_data;
>         struct soc_camera_link *icl;
>         struct adv7180_platform_data *pdata = NULL;
> #else
>         struct adv7180_platform_data *pdata =
> 	client->dev.platform_data;
> #endif

No, we don't want any ifdefs in drivers. And the current driver doesn't 
use the platform data, so, I would just leave it as it is - if NULL - no 
soc-camera and no platform data, if it set - soc-camera environment is 
used. That's until we standardise the use of platform data for v4l i2c 
devices.

>         struct v4l2_subdev *sd;
>         int i, ret;
> 
>         /* Check if the adapter supports the needed features */
>         if (!i2c_check_functionality(client->adapter,
> 	I2C_FUNC_SMBUS_BYTE_DATA))
>                 return -EIO;
> 
>         v4l_info(client, "chip found @ 0x%02x (%s)\n",
>                         client->addr << 1, client->adapter->name);
> 
> #if defined(CONFIG_SOC_CAMERA)
>         if (icd) {
>                 icl = to_soc_camera_link(icd);
>                 if (!icl || !icl->priv) {
>                         v4l_err(client, "missing platform data!\n");
>                         return -EINVAL;
>                 }
>                 pdata = icl->priv;
> 
>                 icd->ops = &adv7180_soc_ops;
>                 v4l_info(client, "soc-camera support enabled\n");
>         }
> #endif
> 
>         state = kzalloc(sizeof(struct adv7180_state), GFP_KERNEL);
>         if (state == NULL) {
>                 ret = -ENOMEM;
>                 goto err;
>         }
> 
>         state->irq = client->irq;
>         INIT_WORK(&state->work, adv7180_work);
>         mutex_init(&state->mutex);
>         state->autodetect = true;
>         sd = &state->sd;
>         v4l2_i2c_subdev_init(sd, client, &adv7180_ops);
> 
>         if (pdata)
>                 for (i = 0; pdata[i].reg >= 0; i++) {
>                         printk("----> %x %x\n", pdata[i].reg,
> 			pdata[i].val);
>                         ret = i2c_smbus_write_byte_data(client,
>                                         pdata[i].reg, pdata[i].val);
>                         if (ret < 0)
>                                 goto err_unreg_subdev;
>                 }

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

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: adv7180 as SoC camera device
  2010-04-02  7:09           ` Guennadi Liakhovetski
@ 2010-04-02  7:44             ` Rodolfo Giometti
  0 siblings, 0 replies; 16+ messages in thread
From: Rodolfo Giometti @ 2010-04-02  7:44 UTC (permalink / raw)
  To: Guennadi Liakhovetski
  Cc: Richard Röjfors, Linux Media Mailing List,
	Mauro Carvalho Chehab

On Fri, Apr 02, 2010 at 09:09:30AM +0200, Guennadi Liakhovetski wrote:
> On Thu, 1 Apr 2010, Rodolfo Giometti wrote:
> 
> > On Tue, Mar 30, 2010 at 04:06:11PM +0200, Rodolfo Giometti wrote:
> > > On Tue, Feb 23, 2010 at 12:19:13AM +0100, Richard Röjfors wrote:
> > > > 
> > > > We use it as a subdev to a driver not yet committed from us. So I think
> > > > you should extend it, not move it.
> > > 
> > > Finally I got something functional... but I'm puzzled to know how I
> > > can add platform data configuration struct by using the I2C's
> > > platform_data pointer if it is already used to hold struct
> > > soc_camera_device... O_o
> > 
> > Here my solution:
> > 
> > static __devinit int adv7180_probe(struct i2c_client *client,
> >                         const struct i2c_device_id *id)
> > {
> >         struct adv7180_state *state;
> > #if defined(CONFIG_SOC_CAMERA)
> >         struct soc_camera_device *icd = client->dev.platform_data;
> >         struct soc_camera_link *icl;
> >         struct adv7180_platform_data *pdata = NULL;
> > #else
> >         struct adv7180_platform_data *pdata =
> > 	client->dev.platform_data;
> > #endif
> 
> No, we don't want any ifdefs in drivers. And the current driver doesn't 
> use the platform data, so, I would just leave it as it is - if NULL - no 
> soc-camera and no platform data, if it set - soc-camera environment is 
> used. That's until we standardise the use of platform data for v4l i2c 
> devices.

Ok. Thanks! :)

Ciao,

Rodolfo

-- 

GNU/Linux Solutions                  e-mail: giometti@enneenne.com
Linux Device Driver                          giometti@linux.it
Embedded Systems                     phone:  +39 349 2432127
UNIX programming                     skype:  rodolfo.giometti
Freelance ICT Italia - Consulente ICT Italia - www.consulenti-ict.it

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2010-04-02  7:44 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-02-19 17:44 adv7180 as SoC camera device Rodolfo Giometti
2010-02-19 19:36 ` Guennadi Liakhovetski
2010-02-22 16:01   ` Rodolfo Giometti
2010-02-22 16:11     ` Hans Verkuil
2010-02-22 16:15       ` Rodolfo Giometti
2010-02-22 16:46         ` Guennadi Liakhovetski
2010-02-22 16:16     ` Guennadi Liakhovetski
2010-02-22 16:53       ` Jonathan Cameron
2010-02-22 23:19     ` Richard Röjfors
2010-03-30 14:06       ` Rodolfo Giometti
2010-03-30 14:40         ` Guennadi Liakhovetski
2010-03-30 15:42           ` Rodolfo Giometti
2010-04-02  7:06             ` Guennadi Liakhovetski
2010-04-01 11:48         ` Rodolfo Giometti
2010-04-02  7:09           ` Guennadi Liakhovetski
2010-04-02  7:44             ` Rodolfo Giometti

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox