From: Sebastian Hesselbarth <sebastian.hesselbarth-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: Sascha Hauer <s.hauer-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
Cc: Jean-Francois Moine <moinejf-GANU6spQydw@public.gmane.org>,
Daniel Drake <dsd-2X9k7bc8m7Mdnm+yROfE0A@public.gmane.org>,
"devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org"
<devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org>,
dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org,
Inki Dae <inki.dae-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>,
Stephane Marchesin
<stephane.marchesin-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
Rob Clark <robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
Dave Airlie <airlied-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
Russell King <rmk-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org>
Subject: Re: Best practice device tree design for display subsystems/DRM
Date: Wed, 03 Jul 2013 10:20:37 +0200 [thread overview]
Message-ID: <51D3DED5.8080204@gmail.com> (raw)
In-Reply-To: <20130703065559.GJ516-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
On 07/03/13 08:55, Sascha Hauer wrote:
> On Wed, Jul 03, 2013 at 08:02:05AM +1000, Dave Airlie wrote:
>> Have you also considered how suspend/resume works in such a place,
>> where every driver is independent? The ChromeOS guys have bitched
>> before about the exynos driver which is has lots of sub-drivers, how
>> do you control the s/r ordering in a crazy system like that? I'd
>> prefer a central driver, otherwise there is too many moving parts.
>
> Composing a DRM device out of subdevices doesn't necessarily mean the
> components should be suspended/resumed in arbitrary order. The DRM
> device should always be suspended first (thus deactivating sub devices
> as necessary and as done already) and resumed last.
>
> Note that a super node approach does not solve this magically. We would
> still have to make sure that the i2c bus masters on our SoC are suspended
> after the DRM device.
+1 for a video card supernode that at best should be some very generic
node with standard properties provided by DRM backend. IIRC there was
a proposal for of_video_card a while ago.
At least for Marvell SoCs, moving device nodes out of the bus structure
will not work. The parent bus is _required_ for address mapping as the
base address is configurable. Using phandles can solve this without
moving nodes.
Also, having separate device nodes does not require a separate driver
for each nodes. All nodes get platform_devices registered, but you can
choose not to have a matching driver for it. Then the video card super
node can pick up that nodes by using the phandles passed and register
a single DRM driver claiming the devices.
Moreover, if we talk about SoC graphics, we have to take audio into
account. If you move all nodes to your video card super node, you will
add another bunch of issues for ASoC linking to e.g. the I2C HDMI
transmitter SPDIF codec.
IMHO phandles and super node subnodes are equivalent from a driver
point-of-view but phandles are more likely to cause less pain for
other subsystems.
The super node approach will also allow to have the same SoC/board
components being used as single video card or multiple video cards
environment. There is virtually no way to automatically determine what
devices belong to "your" video card(s) in a SoC, so we need something to
describe those cards.
One thing I am concerned about is what Sascha pointed out above. If you
hook up an external I2C encoder to your card, you cannot make sure I2C
bus is suspended before DRM device. To be honest, proposing a solution
for that is still way beyond my expertise wrt to Linux internals, so I
am not even trying it. Maybe I am even missing a very important point
for the super node/phandle proposal, if so, please clarify.
Sebastian
next prev parent reply other threads:[~2013-07-03 8:20 UTC|newest]
Thread overview: 67+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-02 17:43 Best practice device tree design for display subsystems/DRM Daniel Drake
2013-07-02 18:42 ` Jean-Francois Moine
2013-07-02 19:19 ` Russell King
[not found] ` <20130702191923.GD13924-f404yB8NqCZvn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2013-07-02 19:57 ` Sebastian Hesselbarth
[not found] ` <51D330AC.5060903-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-07-02 20:25 ` Russell King
[not found] ` <20130702202548.GE13924-f404yB8NqCZvn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2013-07-02 21:50 ` Sascha Hauer
2013-07-02 22:02 ` Dave Airlie
[not found] ` <CAPM=9ty8W7wEewLpcKjNV-RXzVnReKVrPu_MGN80=Y-xPr-f+w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-07-02 22:14 ` Russell King
[not found] ` <20130702221445.GF13924-f404yB8NqCZvn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2013-07-03 7:33 ` Sascha Hauer
2013-07-03 1:46 ` Stéphane Marchesin
[not found] ` <CACP_E++-L_Ntv=ZpkrSjB4y4GRc=WNDdXLeQAxb5NWniD3Frfg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-07-03 2:56 ` Rob Clark
2013-07-03 6:42 ` Inki Dae
2013-07-03 12:31 ` Lucas Stach
2013-07-03 6:55 ` Sascha Hauer
[not found] ` <20130703065559.GJ516-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2013-07-03 8:20 ` Sebastian Hesselbarth [this message]
2013-07-05 8:37 ` Grant Likely
[not found] ` <CACxGe6uTv2yaTH-_JLa=vtgmXwq=++wz3=eDpkRr2GVbKaME1A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-07-05 8:50 ` Russell King
[not found] ` <20130705085020.GV13924-f404yB8NqCZvn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2013-07-05 9:02 ` Grant Likely
2013-07-02 21:04 ` Daniel Drake
[not found] ` <CAMLZHHTbkfxmzrSrAU586Ywxptk=4Njzb0_puWxhfBcmBB0BWQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-07-02 21:41 ` Sebastian Hesselbarth
[not found] ` <51D348F5.2080205-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-07-03 8:57 ` Inki Dae
[not found] ` <00ae01ce77cb$524d57f0$f6e807d0$%dae-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2013-07-03 9:02 ` Sascha Hauer
[not found] ` <20130703090242.GM516-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2013-07-03 9:08 ` Sebastian Hesselbarth
[not found] ` <51D3EA0E.2090008-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-07-03 9:48 ` Inki Dae
[not found] ` <00ba01ce77d2$80285f10$80791d30$%dae-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2013-07-03 9:53 ` Russell King
[not found] ` <20130703095338.GH13924-f404yB8NqCZvn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2013-07-03 10:52 ` Sebastian Hesselbarth
[not found] ` <51D40275.4020806-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-07-03 11:32 ` Russell King
[not found] ` <20130703113224.GI13924-f404yB8NqCZvn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2013-07-03 17:38 ` Sebastian Hesselbarth
2013-07-03 11:43 ` Inki Dae
[not found] ` <00cc01ce77e2$844b3a80$8ce1af80$%dae-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2013-07-03 11:51 ` Sebastian Hesselbarth
[not found] ` <51D4105C.3070503-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-07-04 7:05 ` Inki Dae
[not found] ` <000601ce7884$e99ade20$bcd09a60$%dae-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2013-07-04 7:25 ` Sebastian Hesselbarth
[not found] ` <51D5234C.3070000-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-07-04 8:15 ` Inki Dae
2013-07-03 12:04 ` Russell King
[not found] ` <20130703120458.GJ13924-f404yB8NqCZvn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2013-07-04 2:03 ` Inki Dae
2013-07-03 9:52 ` Russell King
[not found] ` <20130703095248.GG13924-f404yB8NqCZvn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2013-07-03 11:12 ` Sebastian Hesselbarth
2013-07-03 11:29 ` Sascha Hauer
2013-07-04 8:33 ` Sascha Hauer
[not found] ` <20130704083307.GH10414-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2013-07-04 8:40 ` Russell King
[not found] ` <20130704084052.GP13924-f404yB8NqCZvn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2013-07-04 8:58 ` Sascha Hauer
[not found] ` <20130704085817.GZ516-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2013-07-04 9:11 ` Russell King
[not found] ` <20130704091131.GR13924-f404yB8NqCZvn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2013-07-04 9:30 ` Sascha Hauer
[not found] ` <20130704093047.GJ10414-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2013-07-04 9:44 ` Sebastian Hesselbarth
[not found] ` <51D54409.6020608-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-07-04 10:09 ` Sascha Hauer
[not found] ` <20130704100932.GL10414-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2013-07-04 10:58 ` Sebastian Hesselbarth
2013-07-05 10:07 ` Sascha Hauer
[not found] ` <20130705100750.GJ516-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2013-07-05 10:41 ` Grant Likely
2013-07-04 8:45 ` Sebastian Hesselbarth
[not found] ` <51D53634.5040405-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-07-04 8:53 ` Sascha Hauer
[not found] ` <20130704085313.GY516-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2013-07-04 9:10 ` Sebastian Hesselbarth
[not found] ` <51D53C0B.6060106-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-07-04 9:23 ` Sascha Hauer
[not found] ` <20130704092305.GI10414-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2013-07-04 9:40 ` Sebastian Hesselbarth
[not found] ` <51D54301.8080902-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-07-04 9:57 ` Sascha Hauer
2013-07-04 9:08 ` Russell King
[not found] ` <20130704090829.GQ13924-f404yB8NqCZvn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2013-07-04 9:51 ` Sascha Hauer
2013-07-05 8:43 ` Grant Likely
[not found] ` <CACxGe6uRJ9B9qnPT_KLNphg-n2WeA9UFO-rvCdKJHijGqJ8SOg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-07-05 9:34 ` Sebastian Hesselbarth
[not found] ` <51D69324.90301-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-07-05 9:51 ` Grant Likely
[not found] ` <CACxGe6v_oQptLZzgsT_nf-K4680mP1f8sHJHN8AekeEy0_T18w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-07-05 11:16 ` Sebastian Hesselbarth
2013-07-04 15:11 ` Rob Clark
[not found] ` <CAF6AEGuzwNJtuAWS29YvdZ1fiMGk5cuv24n4wxkKsDPT8FrDBw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-07-04 21:28 ` Dave Airlie
2013-07-05 0:50 ` Alex Deucher
[not found] ` <CAMLZHHREVEdRuHaD0imRu4pUv15ZyWYF2J9WCBEw-frxBry-Lw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-07-02 18:43 ` Russell King
[not found] ` <20130702184305.GB13924-f404yB8NqCZvn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2013-07-02 18:54 ` Daniel Drake
[not found] ` <CAMLZHHSU1OVrQrtucTNn4AmTCiNER19njvQdomxTcXAzqxCi4A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-07-02 19:08 ` Russell King
[not found] ` <20130702190809.GC13924-f404yB8NqCZvn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2013-07-03 8:06 ` Inki Dae
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=51D3DED5.8080204@gmail.com \
--to=sebastian.hesselbarth-re5jqeeqqe8avxtiumwx3w@public.gmane.org \
--cc=airlied-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org \
--cc=dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
--cc=dsd-2X9k7bc8m7Mdnm+yROfE0A@public.gmane.org \
--cc=inki.dae-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org \
--cc=moinejf-GANU6spQydw@public.gmane.org \
--cc=rmk-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org \
--cc=robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=s.hauer-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org \
--cc=stephane.marchesin-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).