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: <URL: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.ailus@xxxxxx -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html