[RFC 0/2] drm/bridge: panel and chaining
Inki Dae
inki.dae at samsung.com
Tue Apr 29 23:28:36 PDT 2014
Hi Rob,
> -----Original Message-----
> From: dri-devel [mailto:dri-devel-bounces at lists.freedesktop.org] On Behalf
> Of Rob Clark
> Sent: Wednesday, April 30, 2014 4:58 AM
> To: dri-devel at lists.freedesktop.org
> Cc: Ajay Kumar
> Subject: [RFC 0/2] drm/bridge: panel and chaining
>
> So I thought it would be easier to explain what I had in mind regarding
> Ajay's patchset (to add panel support) in patch form. Originally Thierry
> had some concerns with adding panel support in bridges ad-hoc. So this
> idea adds the support of chaining multiple bridges, one of which may be a
> panal adapter (maybe I should have called it drm_panel_adapter_bridge).
> There are a few rough edges and TODOs, it isn't trying to be complete yet.
>
> So the one question is about that hunk I had to move in ptn3460 from
> pre_enable() to enable(). If that really needs to come before the encoder
> and after the panel, then we should go for a slightly different approach
> instead: add a 'struct drm_bridge *next' ptr in 'struct drm_bridge'. Then
> each bridge implementation is responsible to call the next in the chain
> (if not null) at the appropriate points. That gives a bit more
> flexibility to bridges to have something both pre and post the downstream
> bridge/panel in each of the pre/enable/disable/post steps.
>
I think there would be better idea than chaining multiple bridges. For this,
we had already discussed it[1], and I had posted relevant patch[2] for RFC.
My idea was that encoder driver has one or two bridge objects - for panel
and lvds, and also image enhancer for crtc driver. The integrated drm_bridge
structure including callback set for them. Originally, it was called
"drm_hw_block" but would be reasonable to change to "drm_bridge" and
existing drm_bridge relevant codes should be removed.
The important thing in my approach is that the integrated drm_bridge
structure uses existing drm_panel infrastructure. The reason I did so was
for that bridge device drivers such as lvds and image enhancer could comply
with driver-model - now bridge drivers are non driver-model driver so
encoder drivers should call some function directly to initialize the bridge
driver. e.g. ptn3460_init function.
And also with this approach crtc drivers could control bridge device such as
image enhancer - Image enhancer can be placed between crtc and
encoder/connector, and actually Exynos SoC has such hardware.
For this, I'm planning to post next patch series, at least within this
cycle.
[1] http://www.spinics.net/lists/dri-devel/msg55555.html
[2]http://www.spinics.net/lists/dri-devel/msg55658.html
Thanks,
Inki Dae
>
> Rob Clark (2):
> drm/bridge: add composite and panel bridges
> drm/bridge/ptn3460: add panel support
>
> drivers/gpu/drm/bridge/Makefile | 2 +
> drivers/gpu/drm/bridge/drm_bridge_util.c | 251
> +++++++++++++++++++++++++++++++ drivers/gpu/drm/bridge/drm_bridge_util.h
> | 29 ++++
> drivers/gpu/drm/bridge/ptn3460.c | 39 ++++-
> include/drm/bridge/ptn3460.h | 6 +-
> 5 files changed, 319 insertions(+), 8 deletions(-) create mode 100644
> drivers/gpu/drm/bridge/drm_bridge_util.c
> create mode 100644 drivers/gpu/drm/bridge/drm_bridge_util.h
>
> --
> 1.9.0
>
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
More information about the dri-devel
mailing list