All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Michael Jones <michael.jones@matrix-vision.de>
Cc: Alex Gershgorin <alexg@meprolight.com>,
	"'linux-media@vger.kernel.org'" <linux-media@vger.kernel.org>,
	"'sakari.ailus@iki.fi'" <sakari.ailus@iki.fi>,
	"'agersh@rambler.ru'" <agersh@rambler.ru>
Subject: Re: FW: OMAP 3 ISP
Date: Thu, 19 May 2011 15:56:06 +0200	[thread overview]
Message-ID: <201105191556.07323.laurent.pinchart@ideasonboard.com> (raw)
In-Reply-To: <4DD51EB2.30408@matrix-vision.de>

Hi Michael,

On Thursday 19 May 2011 15:44:18 Michael Jones wrote:
> On 05/19/2011 03:02 PM, Laurent Pinchart wrote:
> > On Thursday 19 May 2011 14:51:16 Alex Gershgorin wrote:
> >> Thanks Laurent,
> >> 
> >> My video source is not the video camera and performs many other
> >> functions. For this purpose I have RS232 port.
> >> As for the video, it runs continuously and is not subject to control
> >> except for the power supply.
> > 
> > As a quick hack, you can create an I2C driver for your video source that
> > doesn't access the device and just returns fixed format and frame size.
> > 
> > The correct fix is to implement support for platform subdevs in the V4L2
> > core.
> 
> I recently implemented support for platform V4L2 subdevs.  Now that it
> sounds like others would be interested in this, I will try to polish it
> up and submit the patch for review in the next week or so.

Great. This has been discussed during the V4L meeting in Warsaw, here are a 
couple of pointers, to make sure we're going in the same direction.

Bridge drivers should not care whether the subdev sits on an I2C, SPI, 
platform or other bus. To achieve that, an abstraction layer must be provided 
by the V4L2 core. Here's what I got in one of my trees:

/* V4L2 core */

struct v4l2_subdev_i2c_board_info {
        struct i2c_board_info *board_info;
        int i2c_adapter_id;
};

enum v4l2_subdev_bus_type {
        V4L2_SUBDEV_BUS_TYPE_NONE,
        V4L2_SUBDEV_BUS_TYPE_I2C,
        V4L2_SUBDEV_BUS_TYPE_SPI,
};

struct v4l2_subdev_board_info {
        enum v4l2_subdev_bus_type type;
        union {
                struct v4l2_subdev_i2c_board_info i2c;
                struct spi_board_info *spi;
        } info;
};

/* OMAP3 ISP  */

struct isp_v4l2_subdevs_group {
        struct v4l2_subdev_board_info *subdevs;
        enum isp_interface_type interface;
        union {
                struct isp_parallel_platform_data parallel;
                struct isp_ccp2_platform_data ccp2;
                struct isp_csi2_platform_data csi2;
        } bus; /* gcc < 4.6.0 chokes on anonymous union initializers */
};

struct isp_platform_data {
        struct isp_v4l2_subdevs_group *subdevs;
};

The V4L2 core would need to provide a function to register a subdev based on a 
v4l2_subdev_board_info structure.

Is that in line with what you've done ? I can provide a patch that implements 
this for I2C and SPI, and let you add platform subdevs if that can help you.

-- 
Regards,

Laurent Pinchart

  reply	other threads:[~2011-05-19 13:56 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-19 11:36 FW: FW: OMAP 3 ISP Alex Gershgorin
2011-05-19 12:51 ` Alex Gershgorin
2011-05-19 13:02   ` Laurent Pinchart
2011-05-19 13:44     ` Michael Jones
2011-05-19 13:56       ` Laurent Pinchart [this message]
2011-05-19 14:24         ` Michael Jones
2011-05-19 14:27           ` Laurent Pinchart
2011-05-19 15:13             ` Alex Gershgorin
2011-05-19 15:32               ` Sakari Ailus
2011-05-24 14:11                 ` Alex Gershgorin
2011-05-25  7:22                   ` Laurent Pinchart
2011-05-25  9:58                     ` Alex Gershgorin
2011-05-25 10:01                       ` Laurent Pinchart
2011-05-25 10:54                         ` Alex Gershgorin
2011-06-28  7:47                         ` Alex Gershgorin
2011-06-28 22:35                           ` Laurent Pinchart
     [not found] <4875438356E7CA4A8F2145FCD3E61C0B2A5D211E42@MEP-EXCH.meprolight.com>
2011-06-29 11:32 ` Laurent Pinchart
     [not found] <4875438356E7CA4A8F2145FCD3E61C0B2A5D211E43@MEP-EXCH.meprolight.com>
2011-06-29 15:55 ` Laurent Pinchart
2011-06-29 16:16   ` Alex Gershgorin
2011-06-29 16:34   ` Alex Gershgorin
     [not found] <B9D34818-CE30-4125-997B-71C50CFC4F0D@yahoo.com>
2012-05-29  7:08 ` Alex Gershgorin
2012-05-29  8:15   ` jean-philippe francois
     [not found]     ` <CA+2YH7s9F+4WQuQ9zioCetpJ5f8_3pihf5wcNVp5SjLuiq3k3g@mail.gmail.com>
2012-05-29 10:22       ` Laurent Pinchart

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201105191556.07323.laurent.pinchart@ideasonboard.com \
    --to=laurent.pinchart@ideasonboard.com \
    --cc=agersh@rambler.ru \
    --cc=alexg@meprolight.com \
    --cc=linux-media@vger.kernel.org \
    --cc=michael.jones@matrix-vision.de \
    --cc=sakari.ailus@iki.fi \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.