All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Rob Clark <rob.clark@linaro.org>,
	Thomas Petazzoni <thomas.petazzoni@free-electrons.com>,
	Linux Fbdev development list <linux-fbdev@vger.kernel.org>,
	Benjamin Gaignard <benjamin.gaignard@linaro.org>,
	Tom Gall <tom.gall@linaro.org>,
	Kyungmin Park <kyungmin.park@samsung.com>,
	"dri-devel@lists.freedesktop.org"
	<dri-devel@lists.freedesktop.org>,
	Ragesh Radhakrishnan <ragesh.r@linaro.org>,
	Tomi Valkeinen <tomi.valkeinen@ti.com>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Maxime Ripard <maxime.ripard@free-electrons.com>,
	Vikas Sajjan <vikas.sajjan@linaro.org>,
	Sumit Semwal <sumit.semwal@linaro.org>,
	Sebastien Guiriec <s-guiriec@ti.com>,
	"linux-media@vger.kernel.org" <linux-media@vger.kernel.org>
Subject: Re: [RFC v2 0/5] Common Display Framework
Date: Tue, 08 Jan 2013 09:33:13 +0100	[thread overview]
Message-ID: <8761492.9kNDi4CAnk@avalon> (raw)
In-Reply-To: <20121228000404.GY26326@pengutronix.de>

On Friday 28 December 2012 01:04:04 Sascha Hauer wrote:
> On Thu, Dec 27, 2012 at 01:57:56PM -0600, Rob Clark wrote:
> > On Thu, Dec 27, 2012 at 1:18 PM, Sascha Hauer wrote:
> > > On Thu, Dec 27, 2012 at 09:54:55AM -0600, Rob Clark wrote:
> > >> On Mon, Dec 24, 2012 at 7:37 AM, Laurent Pinchart
> > > 
> > > This implies that the master driver knows all potential subdevices,
> > > something which is not true for SoCs which have external i2c encoders
> > > attached to unrelated i2c controllers.
> > 
> > well, it can be brute-forced..  ie. drm driver calls common
> > register_all_panels() fxn, which, well, registers all the
> > panel/display subdev's based on their corresponding CONFIG_FOO_PANEL
> > defines.  If you anyways aren't building the panels as separate
> > modules, that would work.  Maybe not the most *elegant* approach, but
> > simple and functional.
> > 
> > I guess it partly depends on the structure in devicetree.  If you are
> > 
> > assuming that the i2c encoder belongs inside the i2c bus, like:
> >   &i2cN {
> >   
> >     foo-i2c-encoder {
> >     
> >       ....
> >     
> >     };
> >   
> >   };
> > 
> > and you are letting devicetree create the devices, then it doesn't
> > quite work.  I'm not entirely convinced you should do it that way.
> > Really any device like that is going to be hooked up to at least a
> > couple busses..  i2c, some sort of bus carrying pixel data, maybe some
> > gpio's, etc.  So maybe makes more sense for a virtual drm/kms bus, and
> > then use phandle stuff to link it to the various other busses it
> > 
> > needs:
> >   mydrmdev {
> >     foo-i2c-encoder {
> >        i2c = <&i2cN>;
> >        gpio = <&gpioM 2 3>
> >        ...
> >     };
> >   };
> 
> This seems to shift initialization order problem to another place. Here we
> have to make sure the controller is initialized before the drm driver. Same
> with suspend/resume.
> 
> It's not only i2c devices, also platform devices. On i.MX for example we
> have a hdmi transmitter which is somewhere on the physical address space.
> 
> I think grouping the different units together in a devicetree blob because
> we think they might form a logical virtual device is not going to work. It
> might make it easier from a drm perspective, but I think doing this will
> make for a lot of special cases. What will happen for example if you have
> two encoder devices in a row to configure? The foo-i2c-encoder would then
> get another child node.
> 
> Right now the devicetree is strictly ordered by (control-, not data-) bus
> topology. Linux has great helper code to support this model. Giving up this
> help to brute force a different topology and then trying to fit the result
> back into the Linux Bus hierarchy doesn't sound like a good idea to me.

I agree. The Linux device model is architectured around a control bus based 
tree, I don't want to change that. With devices hooked up on several busses we 
will have dependency issues anyway, regardless of how we describe them in DT. 
If we hook up the nodes from a data bus perspective we will run into control 
bus dependency issues. It's thus better in my opinion to keep the classic 
control bus based model and solve the data bus dependency issues.

> > ok, admittedly that is a bit different from other proposals about how
> > this all fits in devicetree.. but otoh, I'm not a huge believer in
> > letting something that is supposed to make life easier (DT), actually
> > make things harder or more complicated.  Plus this CDF stuff all needs
> > to also work on platforms not using OF/DT.
> 
> Right, but every other platform I know of is also described by its bus
> topology, be it platform device based or PCI or maybe even USB based.
> 
> CDF has to solve the same problem as ASoC and soc-camera: subdevices for
> a virtual device can come from many different corners of the system. BTW
> one example for a i2c encoder would be the SiI9022 which could not only
> be part of a drm device, but also of an ASoC device.

-- 
Regards,

Laurent Pinchart


WARNING: multiple messages have this Message-ID (diff)
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Rob Clark <rob.clark@linaro.org>,
	Thomas Petazzoni <thomas.petazzoni@free-electrons.com>,
	Linux Fbdev development list <linux-fbdev@vger.kernel.org>,
	Benjamin Gaignard <benjamin.gaignard@linaro.org>,
	Tom Gall <tom.gall@linaro.org>,
	Kyungmin Park <kyungmin.park@samsung.com>,
	"dri-devel@lists.freedesktop.org"
	<dri-devel@lists.freedesktop.org>,
	Ragesh Radhakrishnan <ragesh.r@linaro.org>,
	Tomi Valkeinen <tomi.valkeinen@ti.com>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Maxime Ripard <maxime.ripard@free-electrons.com>,
	Vikas Sajjan <vikas.sajjan@linaro.org>,
	Sumit Semwal <sumit.semwal@linaro.org>,
	Sebastien Guiriec <s-guiriec@ti.com>,
	"linux-media@vger.kernel.org" <linux-media@vger.kernel.org>
Subject: Re: [RFC v2 0/5] Common Display Framework
Date: Tue, 08 Jan 2013 08:33:13 +0000	[thread overview]
Message-ID: <8761492.9kNDi4CAnk@avalon> (raw)
In-Reply-To: <20121228000404.GY26326@pengutronix.de>

On Friday 28 December 2012 01:04:04 Sascha Hauer wrote:
> On Thu, Dec 27, 2012 at 01:57:56PM -0600, Rob Clark wrote:
> > On Thu, Dec 27, 2012 at 1:18 PM, Sascha Hauer wrote:
> > > On Thu, Dec 27, 2012 at 09:54:55AM -0600, Rob Clark wrote:
> > >> On Mon, Dec 24, 2012 at 7:37 AM, Laurent Pinchart
> > > 
> > > This implies that the master driver knows all potential subdevices,
> > > something which is not true for SoCs which have external i2c encoders
> > > attached to unrelated i2c controllers.
> > 
> > well, it can be brute-forced..  ie. drm driver calls common
> > register_all_panels() fxn, which, well, registers all the
> > panel/display subdev's based on their corresponding CONFIG_FOO_PANEL
> > defines.  If you anyways aren't building the panels as separate
> > modules, that would work.  Maybe not the most *elegant* approach, but
> > simple and functional.
> > 
> > I guess it partly depends on the structure in devicetree.  If you are
> > 
> > assuming that the i2c encoder belongs inside the i2c bus, like:
> >   &i2cN {
> >   
> >     foo-i2c-encoder {
> >     
> >       ....
> >     
> >     };
> >   
> >   };
> > 
> > and you are letting devicetree create the devices, then it doesn't
> > quite work.  I'm not entirely convinced you should do it that way.
> > Really any device like that is going to be hooked up to at least a
> > couple busses..  i2c, some sort of bus carrying pixel data, maybe some
> > gpio's, etc.  So maybe makes more sense for a virtual drm/kms bus, and
> > then use phandle stuff to link it to the various other busses it
> > 
> > needs:
> >   mydrmdev {
> >     foo-i2c-encoder {
> >        i2c = <&i2cN>;
> >        gpio = <&gpioM 2 3>
> >        ...
> >     };
> >   };
> 
> This seems to shift initialization order problem to another place. Here we
> have to make sure the controller is initialized before the drm driver. Same
> with suspend/resume.
> 
> It's not only i2c devices, also platform devices. On i.MX for example we
> have a hdmi transmitter which is somewhere on the physical address space.
> 
> I think grouping the different units together in a devicetree blob because
> we think they might form a logical virtual device is not going to work. It
> might make it easier from a drm perspective, but I think doing this will
> make for a lot of special cases. What will happen for example if you have
> two encoder devices in a row to configure? The foo-i2c-encoder would then
> get another child node.
> 
> Right now the devicetree is strictly ordered by (control-, not data-) bus
> topology. Linux has great helper code to support this model. Giving up this
> help to brute force a different topology and then trying to fit the result
> back into the Linux Bus hierarchy doesn't sound like a good idea to me.

I agree. The Linux device model is architectured around a control bus based 
tree, I don't want to change that. With devices hooked up on several busses we 
will have dependency issues anyway, regardless of how we describe them in DT. 
If we hook up the nodes from a data bus perspective we will run into control 
bus dependency issues. It's thus better in my opinion to keep the classic 
control bus based model and solve the data bus dependency issues.

> > ok, admittedly that is a bit different from other proposals about how
> > this all fits in devicetree.. but otoh, I'm not a huge believer in
> > letting something that is supposed to make life easier (DT), actually
> > make things harder or more complicated.  Plus this CDF stuff all needs
> > to also work on platforms not using OF/DT.
> 
> Right, but every other platform I know of is also described by its bus
> topology, be it platform device based or PCI or maybe even USB based.
> 
> CDF has to solve the same problem as ASoC and soc-camera: subdevices for
> a virtual device can come from many different corners of the system. BTW
> one example for a i2c encoder would be the SiI9022 which could not only
> be part of a drm device, but also of an ASoC device.

-- 
Regards,

Laurent Pinchart


  reply	other threads:[~2013-01-08  8:31 UTC|newest]

Thread overview: 174+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-22 21:45 [RFC v2 0/5] Common Display Framework Laurent Pinchart
2012-11-22 21:45 ` Laurent Pinchart
2012-11-22 21:45 ` [RFC v2 1/5] video: Add generic display entity core Laurent Pinchart
2012-11-22 21:45   ` Laurent Pinchart
2012-11-27 13:07   ` Tomi Valkeinen
2012-11-27 13:07     ` Tomi Valkeinen
2012-11-27 13:07     ` Tomi Valkeinen
2012-11-22 21:45 ` [RFC v2 2/5] video: panel: Add DPI panel support Laurent Pinchart
2012-11-22 21:45   ` Laurent Pinchart
2012-11-27 13:02   ` Tomi Valkeinen
2012-11-27 13:02     ` Tomi Valkeinen
2012-11-27 13:02     ` Tomi Valkeinen
2012-11-30  9:26   ` Philipp Zabel
2012-11-30  9:26     ` Philipp Zabel
2012-11-22 21:45 ` [RFC v2 3/5] video: display: Add MIPI DBI bus support Laurent Pinchart
2012-11-22 21:45   ` Laurent Pinchart
2012-11-30 12:02   ` Tomi Valkeinen
2012-11-30 12:02     ` Tomi Valkeinen
2012-11-30 12:02     ` Tomi Valkeinen
2012-11-22 21:45 ` [RFC v2 4/5] video: panel: Add R61505 panel support Laurent Pinchart
2012-11-22 21:45   ` Laurent Pinchart
2012-11-22 21:45 ` [RFC v2 5/5] video: panel: Add R61517 " Laurent Pinchart
2012-11-22 21:45   ` Laurent Pinchart
2012-11-23 14:51 ` [RFC v2 0/5] Common Display Framework Tomi Valkeinen
2012-11-23 14:51   ` Tomi Valkeinen
2012-11-23 14:51   ` Tomi Valkeinen
2012-12-17 14:36   ` Laurent Pinchart
2012-12-17 14:36     ` Laurent Pinchart
2012-12-17 15:29     ` Tomi Valkeinen
2012-12-17 15:29       ` Tomi Valkeinen
2012-12-17 15:29       ` Tomi Valkeinen
2012-12-17 23:18       ` Laurent Pinchart
2012-12-17 23:18         ` Laurent Pinchart
2012-12-17 16:53     ` Jani Nikula
2012-12-17 16:53       ` Jani Nikula
2012-12-17 22:19       ` Laurent Pinchart
2012-12-17 22:19         ` Laurent Pinchart
2012-12-19 14:57         ` Jani Nikula
2012-12-19 14:57           ` Jani Nikula
2012-12-19 15:07           ` Tomi Valkeinen
2012-12-19 15:07             ` Tomi Valkeinen
2012-12-19 15:07             ` Tomi Valkeinen
2012-12-24 17:31             ` Laurent Pinchart
2012-12-24 17:31               ` Laurent Pinchart
2012-12-19 15:26           ` Rob Clark
2012-12-19 15:26             ` Rob Clark
2012-12-19 15:37             ` Tomi Valkeinen
2012-12-19 15:37               ` Tomi Valkeinen
2012-12-19 16:05               ` Rob Clark
2012-12-19 16:05                 ` Rob Clark
2012-12-19 16:05                 ` Rob Clark
2012-12-24 17:40                 ` Laurent Pinchart
2012-12-24 17:40                   ` Laurent Pinchart
2012-12-24 17:35             ` Laurent Pinchart
2012-12-24 17:35               ` Laurent Pinchart
2012-12-27 16:10               ` Rob Clark
2012-12-27 16:10                 ` Rob Clark
2012-12-24 17:27           ` Laurent Pinchart
2012-12-24 17:27             ` Laurent Pinchart
2012-12-27 16:04             ` Rob Clark
2012-12-27 16:04               ` Rob Clark
2012-12-27 19:19               ` Sascha Hauer
2012-12-27 19:19                 ` Sascha Hauer
2012-11-23 19:56 ` Thierry Reding
2012-11-23 19:56   ` Thierry Reding
2012-11-24  7:15   ` Tomi Valkeinen
2012-11-24  7:15     ` Tomi Valkeinen
2012-11-24  7:15     ` Tomi Valkeinen
2012-11-26 14:47     ` Alan Cox
2012-12-17 15:15       ` Laurent Pinchart
2012-12-17 15:15         ` Laurent Pinchart
2012-11-26  7:53   ` Philipp Zabel
2012-11-26  7:53     ` Philipp Zabel
2012-12-17 14:58   ` Laurent Pinchart
2012-12-17 14:58     ` Laurent Pinchart
2012-11-23 21:41 ` Sascha Hauer
2012-11-23 21:41   ` Sascha Hauer
2012-12-17 15:02   ` Laurent Pinchart
2012-12-17 15:02     ` Laurent Pinchart
     [not found] ` <CAD025yS5rGMbiRBdDxv=YLP6_fsQndAkr+3t29_mNhcvow_SwA@mail.gmail.com>
     [not found]   ` <3133576.BkqAl7V01U@avalon>
2012-12-18  3:01     ` Vikas Sajjan
2012-12-18  6:13       ` Vikas Sajjan
2012-12-18  6:25         ` Vikas Sajjan
2012-12-21 10:00       ` Tomasz Figa
2012-12-21 10:00         ` Tomasz Figa
2012-12-24 14:12         ` Laurent Pinchart
2012-12-24 14:12           ` Laurent Pinchart
2012-12-27 14:43           ` Tomasz Figa
2012-12-27 14:43             ` Tomasz Figa
2012-12-27 14:43             ` Tomasz Figa
2012-12-28  3:26             ` Vikas Sajjan
2012-12-28  3:38               ` Vikas Sajjan
2013-01-08  8:18             ` Laurent Pinchart
2013-01-08  8:18               ` Laurent Pinchart
2013-01-08 10:12               ` Marcus Lorentzon
2013-01-08 10:12                 ` Marcus Lorentzon
2013-01-08 16:36                 ` Tomasz Figa
2013-01-08 16:36                   ` Tomasz Figa
2013-01-08 17:08                   ` Marcus Lorentzon
2013-01-08 17:08                     ` Marcus Lorentzon
2013-02-01 23:35                     ` Laurent Pinchart
2013-02-01 23:35                       ` Laurent Pinchart
2013-02-04 10:05                       ` Marcus Lorentzon
2013-02-04 10:05                         ` Marcus Lorentzon
2013-02-06  9:52                         ` Archit Taneja
2013-02-06  9:52                           ` Archit Taneja
2013-02-08 10:51                         ` Tomi Valkeinen
2013-02-08 10:51                           ` Tomi Valkeinen
2013-02-08 12:43                           ` Marcus Lorentzon
2013-02-08 12:43                             ` Marcus Lorentzon
2013-02-01 23:37                 ` Laurent Pinchart
2013-02-01 23:37                   ` Laurent Pinchart
2012-12-24 12:59       ` Laurent Pinchart
2012-12-24 13:00         ` Laurent Pinchart
2012-12-18  5:04 ` Dave Airlie
2012-12-18  5:04   ` Dave Airlie
2012-12-18  5:04   ` Dave Airlie
2012-12-18  6:21   ` Rob Clark
2012-12-18  6:21     ` Rob Clark
2012-12-18  8:30     ` Daniel Vetter
2012-12-18  8:30       ` Daniel Vetter
2012-12-18  9:38       ` Inki Dae
2012-12-19 20:13         ` Stéphane Marchesin
2012-12-19 20:13           ` Stéphane Marchesin
2012-12-24 14:08         ` Laurent Pinchart
2012-12-24 14:08           ` Laurent Pinchart
2012-12-24 13:39       ` Laurent Pinchart
2012-12-24 13:39         ` Laurent Pinchart
2012-12-18 10:59     ` Sylwester Nawrocki
2012-12-18 10:59       ` Sylwester Nawrocki
2012-12-24 17:19       ` Laurent Pinchart
2012-12-24 17:19         ` Laurent Pinchart
2012-12-19 20:05     ` Stéphane Marchesin
2012-12-19 20:05       ` Stéphane Marchesin
2012-12-24 13:37     ` Laurent Pinchart
2012-12-24 13:37       ` Laurent Pinchart
2012-12-27 15:54       ` Rob Clark
2012-12-27 15:54         ` Rob Clark
2012-12-27 19:18         ` Sascha Hauer
2012-12-27 19:18           ` Sascha Hauer
2012-12-27 19:57           ` Rob Clark
2012-12-27 19:57             ` Rob Clark
2012-12-28  0:04             ` Sascha Hauer
2012-12-28  0:04               ` Sascha Hauer
2013-01-08  8:33               ` Laurent Pinchart [this message]
2013-01-08  8:33                 ` Laurent Pinchart
2013-01-08  8:25         ` Laurent Pinchart
2013-01-08  8:25           ` Laurent Pinchart
2013-01-08 16:13           ` Rob Clark
2013-01-08 16:13             ` Rob Clark
2013-01-09  8:23             ` Rahul Sharma
2013-01-09  8:35               ` Rahul Sharma
2013-01-09  8:23               ` Rahul Sharma
2013-02-01 23:42               ` Laurent Pinchart
2013-02-01 23:42                 ` Laurent Pinchart
2013-02-02 10:08                 ` Rob Clark
2013-02-02 10:08                   ` Rob Clark
2012-12-18 10:39   ` Marcus Lorentzon
2012-12-18 10:39     ` Marcus Lorentzon
2012-12-18 10:39     ` Marcus Lorentzon
2012-12-24 17:09     ` Laurent Pinchart
2012-12-24 17:09       ` Laurent Pinchart
2012-12-24 17:09       ` Laurent Pinchart
2012-12-27 15:57       ` Rob Clark
2012-12-27 15:57         ` Rob Clark
2012-12-27 15:57         ` Rob Clark
2013-01-06 17:46         ` Daniel Vetter
2013-01-06 17:46           ` Daniel Vetter
2013-01-06 17:46           ` Daniel Vetter
2013-01-08  8:41           ` Laurent Pinchart
2013-01-08  8:41             ` Laurent Pinchart
2012-12-24 13:24   ` Laurent Pinchart
2012-12-24 13:24     ` Laurent Pinchart
2012-12-14  4:57 Vikas Sajjan
2012-12-17 22:00 ` 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=8761492.9kNDi4CAnk@avalon \
    --to=laurent.pinchart@ideasonboard.com \
    --cc=benjamin.gaignard@linaro.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=kyungmin.park@samsung.com \
    --cc=linux-fbdev@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=maxime.ripard@free-electrons.com \
    --cc=p.zabel@pengutronix.de \
    --cc=ragesh.r@linaro.org \
    --cc=rob.clark@linaro.org \
    --cc=s-guiriec@ti.com \
    --cc=s.hauer@pengutronix.de \
    --cc=sumit.semwal@linaro.org \
    --cc=thomas.petazzoni@free-electrons.com \
    --cc=tom.gall@linaro.org \
    --cc=tomi.valkeinen@ti.com \
    --cc=vikas.sajjan@linaro.org \
    /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.