From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Ajay kumar <ajaynumb@gmail.com>
Cc: Thierry Reding <thierry.reding@gmail.com>,
Daniel Vetter <daniel.vetter@ffwll.ch>,
Rob Clark <robdclark@gmail.com>,
"dri-devel@lists.freedesktop.org"
<dri-devel@lists.freedesktop.org>,
Ajay Kumar <ajaykumar.rs@samsung.com>,
"linux-samsung-soc@vger.kernel.org"
<linux-samsung-soc@vger.kernel.org>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
Sean Paul <seanpaul@google.com>, sunil joshi <joshi@samsung.com>,
Prashanth G <prashanth.g@samsung.com>,
Sean Cross <xobs@kosagi.com>
Subject: Re: [PATCH V6 6/8] drm/bridge: Modify drm_bridge core to support driver model
Date: Wed, 17 Sep 2014 12:27:13 +0300 [thread overview]
Message-ID: <3764548.s4ysdtHE5z@avalon> (raw)
In-Reply-To: <CAEC9eQMYTELvK_0bcrs+wNk=qYXzS69bOqYGr-yLf6h18bfM4Q@mail.gmail.com>
Hi Ajay,
On Wednesday 17 September 2014 14:37:30 Ajay kumar wrote:
> On Mon, Sep 15, 2014 at 11:07 PM, Laurent Pinchart wrote:
> > Hi Ajay,
> >
> > Thank you for the patch.
> >
> > I think we're moving in the right direction, but we're not there yet.
> >
> > On Saturday 26 July 2014 00:52:08 Ajay Kumar wrote:
> >> This patch tries to seperate drm_bridge implementation
> >> into 2 parts, a drm part and a non_drm part.
> >>
> >> A set of helper functions are defined in this patch to make
> >> bridge driver probe independent of the drm flow.
> >>
> >> The bridge devices register themselves on a lookup table
> >> when they get probed by calling "drm_bridge_add_for_lookup".
> >>
> >> The parent encoder driver waits till the bridge is available in the
> >> lookup table(by calling "of_drm_find_bridge") and then continues with
> >> its initialization.
> >
> > Before the introduction of the component framework I would have said this
> > is the way to go. Now, I think bridges should register themselves as
> > components, and the DRM master driver should use the component framework
> > to get a reference to the bridges it needs.
>
> Well, I have modified the bridge framework exactly the way Thierry wanted it
> to be, I mean the same way the current panel framework is.
> And, I don't think there is a problem with that.
> What problem are you facing with current bridge implementation?
> What is the advantage of using the component framework to register bridges?
There are several advantages.
- The component framework has been designed with this exact problem in mind,
piecing multiple components into a display device. This patch set introduces
yet another framework, without any compelling reason as far as I can see.
Today DRM drivers already need to use three different frameworks (component,
I2C slave encoder and panel), and we're adding a fourth one to make the mess
even messier. This is really a headlong rush, we need to stop and fix the
design mistakes.
- The component framework solves the probe ordering problem. Bridges can use
deferred probing, but when a bridge requires a resources (such as a clock for
instance) provided by the display controller, this will break.
> >> The encoder driver should call "drm_bridge_attach_encoder" to pass on
> >> the drm_device and the encoder pointers to the bridge object.
> >>
> >> Now that the drm_device pointer is available, the encoder then calls
> >> "bridge->funcs->post_encoder_init" to allow the bridge to continue
> >> registering itself with the drm core.
> >
> > This is what really bothers me with DRM bridge.
> >
> > The framework assumes that a bridge will always bridge an encoder and a
> > connector. Beside lacking support for chained bridges, this creates an
> > artificial split between bridges and encoders by modeling the same
> > components using drm_encoder or drm_bridge depending on their position in
> > the video output pipeline.
> >
> > I would like to see drm_bridge becoming more self-centric, removing the
> > awareness of the upstream encoder and downstream connector. I'll give this
> > a try, but it will conflict with this patch, so I'd like to share
> > opinions and coordinate efforts sooner than later if possible.
>
> I am not really able to understand how you want "drm_bridge" to be.
> As of now, there are many platforms using drm_bridge and they don't
> have a problem with current implementation.
> Regarding chained bridges: Can't you add this once my patchset is merged?
> As an additional feature?
Yes, as I mentioned in another e-mail this can be fixed later. I want to start
discussing it though.
> To be honest, I have spent quite sometime for working on this patchset.
> All I started with was to add drm_panel support to drm_bridge.
> When I sent the first patchset for that, Daniel, Rob and Thierry raised a
> concern that current bridge framework itself is not proper and hence
> they asked me to fix that first. And we have reached till here based on
> their comments only.
>
> Without this patchset, you cannot bring an X server
> based display on snow and peach_pit. Also, day by day the number of
> platforms using drm_bridge is increasing.
That's exactly why I'd like to use the component framework now, as the
conversion will become more complex as time goes by.
> And, I don't really see a problem with the current approach(which is exactly
> the same way panel framework is). And, I am no decision maker here. I would
> expect the top guys to comment!
--
Regards,
Laurent Pinchart
next prev parent reply other threads:[~2014-09-17 9:27 UTC|newest]
Thread overview: 70+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-25 19:22 [PATCH V6 0/8] drm/exynos: few patches to enhance bridge chip support Ajay Kumar
2014-07-25 19:22 ` [PATCH V6 1/8] drm/panel: Add prepare, unprepare and get_modes routines Ajay Kumar
2014-07-30 10:00 ` Thierry Reding
2014-07-30 10:29 ` Ajay kumar
2014-07-25 19:22 ` [PATCH V6 2/8] drm/panel: Add support for prepare and unprepare routines Ajay Kumar
2014-07-30 10:32 ` Thierry Reding
2014-07-30 11:09 ` Ajay kumar
2014-07-25 19:22 ` [PATCH V6 3/8] drm/panel: simple: Add support for auo_b133htn01 panel Ajay Kumar
2014-07-30 10:51 ` Thierry Reding
2014-07-30 11:32 ` Ajay kumar
2014-07-30 13:30 ` Thierry Reding
2014-07-30 13:42 ` Ajay kumar
2014-07-25 19:22 ` [PATCH V6 4/8] drm/exynos: Move DP setup into commit() Ajay Kumar
2014-07-30 10:52 ` Thierry Reding
2014-07-30 12:05 ` Ajay kumar
2014-07-25 19:22 ` [PATCH V6 5/8] drm/exynos: dp: Modify driver to support drm_panel Ajay Kumar
2014-07-30 10:58 ` Thierry Reding
2014-07-25 19:22 ` [PATCH V6 6/8] drm/bridge: Modify drm_bridge core to support driver model Ajay Kumar
2014-07-30 11:19 ` Thierry Reding
2014-07-30 14:31 ` Ajay kumar
2014-07-30 15:08 ` Thierry Reding
2014-07-30 16:03 ` Ajay kumar
2014-07-31 10:58 ` Thierry Reding
2014-08-22 23:33 ` Javier Martinez Canillas
2014-08-25 6:11 ` Ajay kumar
2014-08-25 10:10 ` Javier Martinez Canillas
2014-09-15 17:37 ` Laurent Pinchart
2014-09-17 9:07 ` Ajay kumar
2014-09-17 9:22 ` Dave Airlie
2014-09-17 9:27 ` Laurent Pinchart [this message]
2014-09-17 13:15 ` Ajay kumar
2014-09-22 7:40 ` Thierry Reding
2014-09-23 0:29 ` Laurent Pinchart
2014-09-23 5:36 ` Thierry Reding
2014-07-25 19:22 ` [PATCH V2 7/8] drm/bridge: Add i2c based driver for ptn3460 bridge Ajay Kumar
2014-07-30 12:05 ` Thierry Reding
2014-07-30 15:16 ` Ajay kumar
2014-07-30 15:40 ` Thierry Reding
2014-07-30 16:14 ` Ajay kumar
2014-07-31 11:21 ` Thierry Reding
2014-07-25 19:22 ` [PATCH V6 8/8] drm/bridge: Add i2c based driver for ps8622/ps8625 bridge Ajay Kumar
2014-07-29 11:29 ` Andreas Färber
2014-07-30 6:27 ` Ajay kumar
2014-07-30 13:11 ` Thierry Reding
2014-07-27 18:22 ` [PATCH V6 0/8] drm/exynos: few patches to enhance bridge chip support Andreas Färber
2014-07-28 6:13 ` Ajay kumar
2014-07-29 11:21 ` Andreas Färber
2014-07-29 11:36 ` Thierry Reding
2014-07-29 11:42 ` Andreas Färber
2014-07-29 11:47 ` Thierry Reding
2014-07-30 6:24 ` Ajay kumar
2014-07-30 9:40 ` Thierry Reding
2014-07-30 10:24 ` Ajay kumar
2014-07-30 13:16 ` Thierry Reding
2014-09-17 9:53 ` Laurent Pinchart
2014-09-17 10:13 ` Ajay kumar
2014-09-18 9:54 ` Laurent Pinchart
2014-07-29 11:43 ` Thierry Reding
2014-07-30 6:21 ` Ajay kumar
2014-07-30 19:32 ` Andreas Färber
2014-07-31 8:38 ` Ajay kumar
2014-07-31 8:57 ` Andreas Färber
2014-07-31 10:07 ` Ajay kumar
2014-07-31 10:23 ` Thierry Reding
2014-07-31 10:28 ` Andreas Färber
2014-07-31 14:22 ` Andreas Färber
2014-08-01 7:02 ` Ajay kumar
2014-08-01 12:13 ` Andreas Färber
2014-08-01 14:57 ` Andreas Färber
2014-07-30 9:56 ` Thierry Reding
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=3764548.s4ysdtHE5z@avalon \
--to=laurent.pinchart@ideasonboard.com \
--cc=ajaykumar.rs@samsung.com \
--cc=ajaynumb@gmail.com \
--cc=daniel.vetter@ffwll.ch \
--cc=devicetree@vger.kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=joshi@samsung.com \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=prashanth.g@samsung.com \
--cc=robdclark@gmail.com \
--cc=seanpaul@google.com \
--cc=thierry.reding@gmail.com \
--cc=xobs@kosagi.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox