All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mauro Carvalho Chehab <mchehab@redhat.com>
To: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Guennadi Liakhovetski <g.liakhovetski@gmx.de>,
	Hans Verkuil <hverkuil@xs4all.nl>,
	Sylwester Nawrocki <s.nawrocki@samsung.com>,
	Sylwester Nawrocki <sylvester.nawrocki@gmail.com>,
	linux-media@vger.kernel.org, devicetree-discuss@lists.ozlabs.org,
	Magnus Damm <magnus.damm@gmail.com>,
	linux-sh@vger.kernel.org,
	Mark Brown <broonie@opensource.wolfsonmicro.com>,
	Stephen Warren <swarren@wwwdotorg.org>,
	Arnd Bergmann <arnd@arndb.de>,
	Grant Likely <grant.likely@secretlab.ca>
Subject: Re: [PATCH 05/14] media: add a V4L2 OF parser
Date: Wed, 10 Oct 2012 13:45:22 +0000	[thread overview]
Message-ID: <20121010104522.53dabe5e@redhat.com> (raw)
In-Reply-To: <1744244.z7BseID5vc@avalon>

Em Wed, 10 Oct 2012 14:54 +0200
Laurent Pinchart <laurent.pinchart@ideasonboard.com> escreveu:

> > Also, ideally OF-compatible (I2C) drivers should run with no platform
> > data, but soc-camera is using I2C device platform data intensively. To
> > avoid modifying the soc-camera core and all drivers, I also trigger on the
> > BUS_NOTIFY_BIND_DRIVER event and assign a reference to the dynamically
> > created platform data to the I2C device. Would we also want to do this for
> > all V4L2 bridge drivers? We could call this a "prepare" callback or
> > something similar...
> 
> If that's going to be an interim solution only I'm fine with keeping it in 
> soc-camera.

I'm far from being an OF expert, but why do we need to export I2C devices to
DT/OF? On my understanding, it is the bridge code that should be responsible
for detecting, binding and initializing the proper I2C devices. On several
cases, it is impossible or it would cause lots of ugly hacks if we ever try
to move away from platform data stuff, as only the bridge driver knows what
initialization is needed for an specific I2C driver.

To make things more complex, it is expected that most I2C drivers to be arch
independent, and they should be allowed to be used by a personal computer
or by an embedded device. 

Let me give 2 such examples:

	- ir-i2c-kbd driver supports lots of IR devices. Platform_data is needed
to specify what hardware will actually be used, and what should be the default
Remote Controller keymap;

	- Sensor drivers like ov2940 is needed by soc_camera and by other
webcam drivers like em28xx. The setup for em28xx should be completely different
than the one for soc_camera: the initial registers init sequence is different
for both. As several registers there aren't properly documented, there's no
easy way to parametrize the configuration.

So, for me, we should not expose the I2C devices directly on OF; it should,
instead, see just the bridge, and let the bridge to map the needed I2C devices
using the needed platform_data.

-- 
Regards,
Mauro

WARNING: multiple messages have this Message-ID (diff)
From: Mauro Carvalho Chehab <mchehab@redhat.com>
To: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Guennadi Liakhovetski <g.liakhovetski@gmx.de>,
	Hans Verkuil <hverkuil@xs4all.nl>,
	Sylwester Nawrocki <s.nawrocki@samsung.com>,
	Sylwester Nawrocki <sylvester.nawrocki@gmail.com>,
	linux-media@vger.kernel.org, devicetree-discuss@lists.ozlabs.org,
	Magnus Damm <magnus.damm@gmail.com>,
	linux-sh@vger.kernel.org,
	Mark Brown <broonie@opensource.wolfsonmicro.com>,
	Stephen Warren <swarren@wwwdotorg.org>,
	Arnd Bergmann <arnd@arndb.de>,
	Grant Likely <grant.likely@secretlab.ca>
Subject: Re: [PATCH 05/14] media: add a V4L2 OF parser
Date: Wed, 10 Oct 2012 10:45:22 -0300	[thread overview]
Message-ID: <20121010104522.53dabe5e@redhat.com> (raw)
In-Reply-To: <1744244.z7BseID5vc@avalon>

Em Wed, 10 Oct 2012 14:54 +0200
Laurent Pinchart <laurent.pinchart@ideasonboard.com> escreveu:

> > Also, ideally OF-compatible (I2C) drivers should run with no platform
> > data, but soc-camera is using I2C device platform data intensively. To
> > avoid modifying the soc-camera core and all drivers, I also trigger on the
> > BUS_NOTIFY_BIND_DRIVER event and assign a reference to the dynamically
> > created platform data to the I2C device. Would we also want to do this for
> > all V4L2 bridge drivers? We could call this a "prepare" callback or
> > something similar...
> 
> If that's going to be an interim solution only I'm fine with keeping it in 
> soc-camera.

I'm far from being an OF expert, but why do we need to export I2C devices to
DT/OF? On my understanding, it is the bridge code that should be responsible
for detecting, binding and initializing the proper I2C devices. On several
cases, it is impossible or it would cause lots of ugly hacks if we ever try
to move away from platform data stuff, as only the bridge driver knows what
initialization is needed for an specific I2C driver.

To make things more complex, it is expected that most I2C drivers to be arch
independent, and they should be allowed to be used by a personal computer
or by an embedded device. 

Let me give 2 such examples:

	- ir-i2c-kbd driver supports lots of IR devices. Platform_data is needed
to specify what hardware will actually be used, and what should be the default
Remote Controller keymap;

	- Sensor drivers like ov2940 is needed by soc_camera and by other
webcam drivers like em28xx. The setup for em28xx should be completely different
than the one for soc_camera: the initial registers init sequence is different
for both. As several registers there aren't properly documented, there's no
easy way to parametrize the configuration.

So, for me, we should not expose the I2C devices directly on OF; it should,
instead, see just the bridge, and let the bridge to map the needed I2C devices
using the needed platform_data.

-- 
Regards,
Mauro

  reply	other threads:[~2012-10-10 13:45 UTC|newest]

Thread overview: 202+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-27 14:07 [PATCH 00/14] V4L2 DT support Guennadi Liakhovetski
2012-09-27 14:07 ` Guennadi Liakhovetski
2012-09-27 14:07 ` [PATCH 01/14] i2c: add dummy inline functions for when CONFIG_OF_I2C(_MODULE) isn't defined Guennadi Liakhovetski
2012-09-27 14:07   ` Guennadi Liakhovetski
2012-09-27 14:07 ` [PATCH 02/14] of: add a dummy inline function for when CONFIG_OF is not defined Guennadi Liakhovetski
2012-09-27 14:07   ` Guennadi Liakhovetski
2012-09-28 11:05   ` [PATCH 15/14] OF: define of_*_cmp() macros also if CONFIG_OF isn't set Guennadi Liakhovetski
2012-09-28 11:05     ` Guennadi Liakhovetski
2012-09-27 14:07 ` [PATCH 04/14] media: add V4L2 DT binding documentation Guennadi Liakhovetski
2012-09-27 14:07   ` Guennadi Liakhovetski
2012-10-01 20:45   ` Sylwester Nawrocki
2012-10-01 20:45     ` Sylwester Nawrocki
     [not found]   ` <1348754853-28619-5-git-send-email-g.liakhovetski-Mmb7MZpHnFY@public.gmane.org>
2012-10-02 14:15     ` Rob Herring
2012-10-02 14:15       ` Rob Herring
2012-10-02 14:15       ` Rob Herring
2012-10-02 14:33       ` Guennadi Liakhovetski
2012-10-02 14:33         ` Guennadi Liakhovetski
2012-10-03 20:54         ` Rob Herring
2012-10-03 20:54           ` Rob Herring
2012-10-05  9:43           ` Guennadi Liakhovetski
2012-10-05  9:43             ` Guennadi Liakhovetski
2012-10-05 11:31             ` Hans Verkuil
2012-10-05 11:31               ` Hans Verkuil
2012-10-05 11:37               ` Guennadi Liakhovetski
2012-10-05 11:37                 ` Guennadi Liakhovetski
2012-10-08 20:00         ` Stephen Warren
2012-10-08 20:00           ` Stephen Warren
2012-10-08 20:59           ` Laurent Pinchart
2012-10-08 21:00             ` Laurent Pinchart
2012-10-08 21:14             ` Guennadi Liakhovetski
2012-10-08 21:14               ` Guennadi Liakhovetski
2012-10-08 21:14               ` Guennadi Liakhovetski
2012-10-09  9:21               ` Hans Verkuil
2012-10-09  9:21                 ` Hans Verkuil
2012-10-09  9:29                 ` Guennadi Liakhovetski
2012-10-09  9:29                   ` Guennadi Liakhovetski
2012-10-05 15:10     ` Sascha Hauer
2012-10-05 15:10       ` Sascha Hauer
2012-10-05 15:10       ` Sascha Hauer
2012-10-05 15:41       ` Guennadi Liakhovetski
2012-10-05 15:41         ` Guennadi Liakhovetski
2012-10-05 16:02         ` Sascha Hauer
2012-10-05 16:02           ` Sascha Hauer
2012-10-08  7:58           ` Guennadi Liakhovetski
2012-10-08  7:58             ` Guennadi Liakhovetski
2012-10-10  8:40             ` Sascha Hauer
2012-10-10  8:40               ` Sascha Hauer
2012-10-10  8:51               ` Mark Brown
2012-10-10  8:51                 ` Mark Brown
2012-10-10  9:21                 ` Sascha Hauer
2012-10-10  9:21                   ` Sascha Hauer
2012-10-10 10:46                   ` Mark Brown
2012-10-10 10:46                     ` Mark Brown
2012-10-08 20:12   ` Stephen Warren
2012-10-08 20:12     ` Stephen Warren
2012-09-27 14:07 ` [PATCH 05/14] media: add a V4L2 OF parser Guennadi Liakhovetski
2012-09-27 14:07   ` Guennadi Liakhovetski
2012-10-01 21:37   ` Sylwester Nawrocki
2012-10-01 21:37     ` Sylwester Nawrocki
2012-10-02  9:49     ` Guennadi Liakhovetski
2012-10-02  9:49       ` Guennadi Liakhovetski
     [not found]       ` <Pine.LNX.4.64.1210021142210.15778-0199iw4Nj15frtckUFj5Ag@public.gmane.org>
2012-10-02 10:13         ` Sylwester Nawrocki
2012-10-02 10:13           ` Sylwester Nawrocki
2012-10-02 10:13           ` Sylwester Nawrocki
2012-10-02 11:04           ` Guennadi Liakhovetski
2012-10-02 11:04             ` Guennadi Liakhovetski
2012-10-05 10:41           ` Hans Verkuil
2012-10-05 10:41             ` Hans Verkuil
2012-10-05 10:58             ` Guennadi Liakhovetski
2012-10-05 10:58               ` Guennadi Liakhovetski
2012-10-05 11:23               ` Hans Verkuil
2012-10-05 11:23                 ` Hans Verkuil
2012-10-05 11:35                 ` Guennadi Liakhovetski
2012-10-05 11:35                   ` Guennadi Liakhovetski
2012-10-08 12:23                 ` Guennadi Liakhovetski
2012-10-08 12:23                   ` Guennadi Liakhovetski
2012-10-08 13:48                   ` Hans Verkuil
2012-10-08 13:48                     ` Hans Verkuil
2012-10-08 14:30                     ` Guennadi Liakhovetski
2012-10-08 14:30                       ` Guennadi Liakhovetski
2012-10-08 14:53                       ` Hans Verkuil
2012-10-08 14:53                         ` Hans Verkuil
2012-10-08 15:15                         ` Guennadi Liakhovetski
2012-10-08 15:15                           ` Guennadi Liakhovetski
2012-10-08 15:41                           ` Hans Verkuil
2012-10-08 15:41                             ` Hans Verkuil
2012-10-08 15:53                             ` Guennadi Liakhovetski
2012-10-08 15:53                               ` Guennadi Liakhovetski
     [not found]                               ` <Pine.LNX.4.64.1210081748390.14454-0199iw4Nj15frtckUFj5Ag@public.gmane.org>
2012-10-08 16:00                                 ` Guennadi Liakhovetski
2012-10-08 16:00                                   ` Guennadi Liakhovetski
2012-10-08 16:00                                   ` Guennadi Liakhovetski
2012-10-10 13:22                             ` Laurent Pinchart
2012-10-10 13:22                               ` Laurent Pinchart
2012-10-10 13:18                           ` Laurent Pinchart
2012-10-10 13:18                             ` Laurent Pinchart
2012-10-10 16:50                             ` Stephen Warren
2012-10-10 16:50                               ` Stephen Warren
2012-10-10 22:51                               ` Laurent Pinchart
2012-10-10 22:51                                 ` Laurent Pinchart
2012-10-11 16:15                                 ` Stephen Warren
2012-10-11 16:15                                   ` Stephen Warren
2012-10-10 13:12                         ` Laurent Pinchart
2012-10-10 13:12                           ` Laurent Pinchart
2012-10-10 12:54                   ` Laurent Pinchart
2012-10-10 12:54                     ` Laurent Pinchart
2012-10-10 13:45                     ` Mauro Carvalho Chehab [this message]
2012-10-10 13:45                       ` Mauro Carvalho Chehab
2012-10-10 14:48                       ` Laurent Pinchart
2012-10-10 14:48                         ` Laurent Pinchart
2012-10-10 14:57                         ` Mauro Carvalho Chehab
2012-10-10 14:57                           ` Mauro Carvalho Chehab
2012-10-10 15:15                           ` Laurent Pinchart
2012-10-10 15:15                             ` Laurent Pinchart
2012-10-11 19:48                   ` Sakari Ailus
2012-10-11 19:48                     ` Sakari Ailus
2012-10-13  0:16                     ` Guennadi Liakhovetski
2012-10-13  0:16                       ` Guennadi Liakhovetski
2012-10-05 18:30               ` Sylwester Nawrocki
2012-10-05 18:30                 ` Sylwester Nawrocki
2012-10-05 18:45                 ` Mark Brown
2012-10-05 18:45                   ` Mark Brown
2012-10-08  9:40                 ` Guennadi Liakhovetski
2012-10-08  9:40                   ` Guennadi Liakhovetski
2012-10-09 10:34                   ` Sylwester Nawrocki
2012-10-09 10:34                     ` Sylwester Nawrocki
2012-10-09 11:00                     ` Hans Verkuil
2012-10-09 11:00                       ` Hans Verkuil
2012-10-10 13:25                       ` Laurent Pinchart
2012-10-10 13:25                         ` Laurent Pinchart
2012-10-10 20:23                         ` Sylwester Nawrocki
2012-10-10 20:23                           ` Sylwester Nawrocki
2012-10-10 20:32                           ` Guennadi Liakhovetski
2012-10-10 20:32                             ` Guennadi Liakhovetski
2012-10-10 21:12                             ` Sylwester Nawrocki
2012-10-10 21:12                               ` Sylwester Nawrocki
2012-10-10 23:05                             ` Laurent Pinchart
2012-10-10 23:05                               ` Laurent Pinchart
     [not found]                           ` <5075D947.3080903-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2012-10-10 22:58                             ` Laurent Pinchart
2012-10-10 22:58                               ` Laurent Pinchart
2012-10-10 22:58                               ` Laurent Pinchart
2012-10-08 21:30               ` Laurent Pinchart
2012-10-08 21:30                 ` Laurent Pinchart
2012-10-08 10:03   ` Sylwester Nawrocki
2012-10-08 10:03     ` Sylwester Nawrocki
2012-09-27 14:07 ` [PATCH 06/14] media: soc-camera: prepare for asynchronous client probing Guennadi Liakhovetski
2012-09-27 14:07   ` Guennadi Liakhovetski
2012-09-27 14:07 ` [PATCH 07/14] media: soc-camera: support deferred probing of clients Guennadi Liakhovetski
2012-09-27 14:07   ` Guennadi Liakhovetski
2013-04-10 10:38   ` Barry Song
2013-04-10 10:38     ` Barry Song
     [not found]     ` <CAGsJ_4yUY6PE0NWZ9yaOLFmRb3O-HL55=w7Y6muwL0YbkJtP0Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-04-10 12:06       ` Guennadi Liakhovetski
2013-04-10 12:06         ` Guennadi Liakhovetski
2013-04-10 12:06         ` Guennadi Liakhovetski
2013-04-10 13:53         ` Barry Song
2013-04-10 13:53           ` Barry Song
2013-04-10 13:56           ` Mark Brown
2013-04-10 13:56             ` Mark Brown
2013-04-10 14:00             ` Barry Song
2013-04-10 14:00               ` Barry Song
2013-04-10 14:03           ` Guennadi Liakhovetski
2013-04-10 14:03             ` Guennadi Liakhovetski
2013-04-10 14:30             ` Barry Song
2013-04-10 14:30               ` Barry Song
2013-04-10 14:43               ` Guennadi Liakhovetski
2013-04-10 14:43                 ` Guennadi Liakhovetski
2013-04-10 15:02                 ` Barry Song
2013-04-10 15:02                   ` Barry Song
2012-09-27 14:07 ` [PATCH 08/14] media: soc-camera: use managed devm_regulator_bulk_get() Guennadi Liakhovetski
2012-09-27 14:07   ` Guennadi Liakhovetski
2012-09-27 17:38   ` Sachin Kamat
2012-09-27 17:50     ` Sachin Kamat
2012-09-27 14:07 ` [PATCH 09/14] media: mt9t112: support deferred probing Guennadi Liakhovetski
2012-09-27 14:07   ` Guennadi Liakhovetski
     [not found] ` <1348754853-28619-1-git-send-email-g.liakhovetski-Mmb7MZpHnFY@public.gmane.org>
2012-09-27 14:07   ` [PATCH 03/14] OF: make a function pointer argument const Guennadi Liakhovetski
2012-09-27 14:07     ` Guennadi Liakhovetski
2012-09-27 14:07   ` [PATCH 10/14] media: soc-camera: support OF cameras Guennadi Liakhovetski
2012-09-27 14:07     ` Guennadi Liakhovetski
2012-10-05 19:11     ` Sylwester Nawrocki
2012-10-05 19:11       ` Sylwester Nawrocki
2012-10-08  8:37       ` Guennadi Liakhovetski
2012-10-08  8:37         ` Guennadi Liakhovetski
2012-10-08  9:28         ` Sylwester Nawrocki
2012-10-08  9:28           ` Sylwester Nawrocki
2013-04-08  9:19     ` Barry Song
2013-04-08  9:19       ` Barry Song
     [not found]       ` <CAGsJ_4zYvF-U0_ETs9EP8i+bOJiJLkXWrJdMNnW_sXU-QwnXQw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-04-08 11:21         ` Guennadi Liakhovetski
2013-04-08 11:21           ` Guennadi Liakhovetski
2013-04-08 11:21           ` Guennadi Liakhovetski
2013-04-08 11:49           ` Barry Song
2013-04-08 11:49             ` Barry Song
2012-09-27 14:07   ` [PATCH 11/14] media: sh-mobile-ceu-camera: runtime PM suspending doesn't have to be synchronous Guennadi Liakhovetski
2012-09-27 14:07     ` Guennadi Liakhovetski
2012-09-27 14:07 ` [PATCH 12/14] media: sh-mobile-ceu-camera: add primitive OF support Guennadi Liakhovetski
2012-09-27 14:07   ` Guennadi Liakhovetski
2012-09-27 14:07 ` [PATCH 13/14] media: sh-mobile-ceu-driver: support max width and height in DT Guennadi Liakhovetski
2012-09-27 14:07   ` Guennadi Liakhovetski
2012-09-27 14:07 ` [PATCH 14/14] media: sh_mobile_ceu_camera: support all standard V4L2 DT properties Guennadi Liakhovetski
2012-09-27 14:07   ` Guennadi Liakhovetski
2012-10-05 12:32 ` [PATCH 00/14] V4L2 DT support Sylwester Nawrocki
2012-10-05 12:32   ` Sylwester Nawrocki
2012-10-05 14:41   ` Guennadi Liakhovetski
2012-10-05 14:41     ` Guennadi Liakhovetski

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=20121010104522.53dabe5e@redhat.com \
    --to=mchehab@redhat.com \
    --cc=arnd@arndb.de \
    --cc=broonie@opensource.wolfsonmicro.com \
    --cc=devicetree-discuss@lists.ozlabs.org \
    --cc=g.liakhovetski@gmx.de \
    --cc=grant.likely@secretlab.ca \
    --cc=hverkuil@xs4all.nl \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-sh@vger.kernel.org \
    --cc=magnus.damm@gmail.com \
    --cc=s.nawrocki@samsung.com \
    --cc=swarren@wwwdotorg.org \
    --cc=sylvester.nawrocki@gmail.com \
    /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.