adp1653 usage

2011-08-10 Thread Andy Shevchenko
Hello, Sakari.

I would like to understand how to use subdevice (like adp1653) in
current v4l2 framework from user space.

My understanding is following.

Kernel has two drivers (simplified view):
- camera device
- flash device

Kernel initializes a camera driver from a platform specific setup code.
The camera driver loads the subdevice drivers. Later I could access the
subdevice driver parts via IOCTL(s) on /dev/videoX device node.

What I have missed.
- if the subdevice creates device node /dev/v4l-subdevX, how the user
space will know the X is corresponding to let say flash device?
- if there is no v4l-subdevX device node, when and how the kernel runs
->open() and ->close() methods of v4l2_subdev_internal_ops?


-- 
Andy Shevchenko 
Intel Finland Oy
--
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: adp1653 usage

2011-08-11 Thread Sakari Ailus
On Wed, Aug 10, 2011 at 02:16:00PM +0300, Andy Shevchenko wrote:
> Hello, Sakari.

Hi, Andy!

> I would like to understand how to use subdevice (like adp1653) in
> current v4l2 framework from user space.
> 
> My understanding is following.
> 
> Kernel has two drivers (simplified view):
> - camera device
> - flash device
> 
> Kernel initializes a camera driver from a platform specific setup code.
> The camera driver loads the subdevice drivers. Later I could access the
> subdevice driver parts via IOCTL(s) on /dev/videoX device node.
> 
> What I have missed.
> - if the subdevice creates device node /dev/v4l-subdevX, how the user
> space will know the X is corresponding to let say flash device?

The whole media device's entities (of which the flash in this case is one
of) can be enumerated. The device is called /dev/mediaX.

The Media controller API is defined here:

http://hverkuil.home.xs4all.nl/spec/media.html#media_common>

> - if there is no v4l-subdevX device node, when and how the kernel runs
> ->open() and ->close() methods of v4l2_subdev_internal_ops?

No-one. This is part of the user space interface.

Isp drivers are also free to use the adp1653 subdev directly, but in
embedded systems where such chips typically are used that seldom makes
sense.

A webcam driver could implement the same interface and provide it through a
video node.

-- 
Sakari Ailus
sakari.ai...@iki.fi
--
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: adp1653 usage

2011-08-11 Thread Andy Shevchenko
On Thu, 2011-08-11 at 10:19 +0300, Sakari Ailus wrote:

> > - if the subdevice creates device node /dev/v4l-subdevX, how the user
> > space will know the X is corresponding to let say flash device?
> 
> The whole media device's entities (of which the flash in this case is one
> of) can be enumerated. The device is called /dev/mediaX.
> 
> The Media controller API is defined here:
> 
> http://hverkuil.home.xs4all.nl/spec/media.html#media_common>
Thanks for the link and explanations.

I just noticed the adp1653 driver has not defined the type of the media
entity. I have attached a patch just in case.


-- 
Andy Shevchenko 
Intel Finland Oy
--
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