devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Heiko Stübner" <heiko@sntech.de>
To: dri-devel@lists.freedesktop.org
Cc: stefan.wahren@i2se.com, devicetree@vger.kernel.org,
	linux@arm.linux.org.uk, sboyd@codeaurora.org,
	linux-kernel@vger.kernel.org, a.hajda@samsung.com,
	kernel@pengutronix.de, andy.yan@rock-chips.com,
	mturquette@linaro.org, linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH RFC v9 11/20] drm/bridge: Add Synopsys DesignWare MIPI DSI host controller driver
Date: Wed, 22 Apr 2015 14:13:53 +0200	[thread overview]
Message-ID: <54991164.nrScLQEecU@diego> (raw)
In-Reply-To: <552F4B2E.2000209@codeaurora.org>

Am Donnerstag, 16. April 2015, 11:09:58 schrieb Archit Taneja:
> On 04/09/2015 02:13 PM, Thierry Reding wrote:
> > On Thu, Feb 12, 2015 at 02:01:34PM +0800, Liu Ying wrote:
> > [...]
> > 
> >> diff --git a/drivers/gpu/drm/bridge/dw_mipi_dsi.c
> >> b/drivers/gpu/drm/bridge/dw_mipi_dsi.c> 
> > [...]
> > 
> >> +struct dw_mipi_dsi {
> >> +	struct mipi_dsi_host dsi_host;
> >> +	struct drm_connector connector;
> >> +	struct drm_encoder *encoder;
> >> +	struct drm_bridge *bridge;
> >> +	struct drm_panel *panel;
> >> +	struct device *dev;
> >> +
> >> +	void __iomem *base;
> >> +
> >> +	struct clk *pllref_clk;
> >> +	struct clk *cfg_clk;
> >> +	struct clk *pclk;
> >> +
> >> +	unsigned int lane_mbps; /* per lane */
> >> +	u32 channel;
> >> +	u32 lanes;
> >> +	u32 format;
> >> +	struct drm_display_mode *mode;
> >> +
> >> +	const struct dw_mipi_dsi_plat_data *pdata;
> >> +
> >> +	bool enabled;
> >> +};
> > 
> > While reviewing this I kept thinking whether this is really the right
> > architectural design. This driver is a MIPI DSI host, a connector and
> > a bridge, all in one. But it seems to me like it should really be an
> > encoder/connector and a MIPI DSI host. Why the need for a bridge? The
> > bridge abstraction targets blocks outside of the SoC, but it is my
> > understanding that these DesignWare IP blocks are designed into SoCs.
> 
> The msm driver uses bridges for blocks within the SoC too. We have too
> many sub blocks in the display controller that use up crtcs and encoder
> entities. A bridge is the only option one has if an encoder in the
> display chain is already taken.
> 
> In the above designware configuration, if some one created a board that
> used an external chip to further convert DSI to some other output
> format, then we would be completely exhausted of all entities.
> 
> I posted a patch that allows us to create a chain of bridges for such
> cases. It seems to work well as an interim solution. Ideally, it would
> be better if we could make bridge a special case of an encoder, and let
> one encoder connect to another encoder.
> 
> Such a thing would also help us unify i2c slave encoders and bridge
> drivers too. A chip designed as an i2c slave encoder would work well
> with a drm driver that doesn't have an encoder, but won't work for SoCs
> SoCs that already have an encoder and were expecting a bridge entity
> instead.

Yeah, having encoder-after-encoder chains would be great. I have the same 
issue on Rockchip where on the rk3288 the lvds-IP hogs the lcd-pins of the soc 
which are used both for panels as well as external encoders, while on the 
older Rockchip SoCs these pins are used by external encoders directly.

So in my current (pending review) patchset the lvds acts as encoder for panels 
and as bridge if external encoders are in use.
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2015-04-22 12:13 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-12  6:01 [PATCH RFC v9 00/20] Add support for i.MX MIPI DSI DRM driver Liu Ying
2015-02-12  6:01 ` [PATCH RFC v9 01/20] clk: divider: Correct parent clk round rate if no bestdiv is normally found Liu Ying
2015-02-12  9:33   ` Sascha Hauer
2015-02-12 10:39     ` Liu Ying
2015-02-12 12:24       ` Sascha Hauer
2015-02-12 12:56         ` Russell King - ARM Linux
2015-02-12 13:41           ` Sascha Hauer
2015-02-12 14:06             ` Liu Ying
2015-02-13  2:58               ` Liu Ying
2015-02-13  2:58                 ` Travis
     [not found]             ` <20150212134131.GX12209-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2015-02-13 14:35               ` Tomi Valkeinen
2015-02-13 18:57                 ` Sascha Hauer
2015-02-16 11:18                   ` Tomi Valkeinen
2015-02-17 10:32                     ` Sascha Hauer
2015-02-16 11:27                   ` Russell King - ARM Linux
2015-02-20 19:13                     ` Mike Turquette
2015-02-20 19:20                       ` Russell King - ARM Linux
2015-02-20 19:42                         ` Mike Turquette
2015-02-21  8:56         ` Uwe Kleine-König
2015-02-12  6:01 ` [PATCH RFC v9 02/20] ARM: imx6q: Add GPR3 MIPI muxing control register field shift bits definition Liu Ying
2015-02-12  6:01 ` [PATCH RFC v9 03/20] ARM: imx6q: clk: Add the video_27m clock Liu Ying
2015-02-12  6:01 ` [PATCH RFC v9 04/20] ARM: imx6q: clk: Change hdmi_isfr clock's parent to be " Liu Ying
2015-02-12  6:01 ` [PATCH RFC v9 05/20] ARM: imx6q: clk: Change hsi_tx clock to be a shared clock gate Liu Ying
2015-02-12  6:01 ` [PATCH RFC v9 06/20] ARM: imx6q: clk: Add support for mipi_core_cfg clock as " Liu Ying
2015-02-12  6:01 ` [PATCH RFC v9 07/20] ARM: imx6q: clk: Add support for mipi_ipg " Liu Ying
2015-02-12  6:01 ` [PATCH RFC v9 08/20] ARM: dts: imx6qdl: Move existing MIPI DSI ports into a new 'ports' node Liu Ying
2015-02-12  6:01 ` [PATCH RFC v9 09/20] drm/dsi: Add a helper to get bits per pixel of MIPI DSI pixel format Liu Ying
2015-02-12  9:26   ` Daniel Vetter
2015-02-13  5:01     ` Liu Ying
     [not found]   ` <1423720903-24806-10-git-send-email-Ying.Liu-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2015-03-03 11:07     ` Philipp Zabel
2015-04-03  3:28       ` Liu Ying
2015-04-09  7:10   ` Thierry Reding
2015-02-12  6:01 ` [PATCH RFC v9 10/20] Documentation: dt-bindings: Add bindings for Synopsys DW MIPI DSI DRM bridge driver Liu Ying
2015-02-12  6:01 ` [PATCH RFC v9 11/20] drm/bridge: Add Synopsys DesignWare MIPI DSI host controller driver Liu Ying
2015-04-09  8:43   ` Thierry Reding
2015-04-16  5:39     ` Archit Taneja
2015-04-22 12:13       ` Heiko Stübner [this message]
2015-02-12  6:01 ` [PATCH RFC v9 12/20] Documentation: dt-bindings: Add bindings for i.MX specific Synopsys DW MIPI DSI driver Liu Ying
2015-02-12  6:01 ` [PATCH RFC v9 13/20] drm: imx: Support Synopsys DesignWare MIPI DSI host controller Liu Ying
2015-02-12  6:01 ` [PATCH RFC v9 14/20] Documentation: dt-bindings: Add bindings for Himax HX8369A DRM panel driver Liu Ying
     [not found]   ` <1423720903-24806-15-git-send-email-Ying.Liu-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2015-04-09  7:20     ` Thierry Reding
2015-02-12  6:01 ` [PATCH RFC v9 15/20] drm: panel: Add support for Himax HX8369A MIPI DSI panel Liu Ying
2015-04-09  8:09   ` Thierry Reding
2015-02-12  6:01 ` [PATCH RFC v9 16/20] ARM: dtsi: imx6qdl: Add support for MIPI DSI host controller Liu Ying
2015-02-12  6:01 ` [PATCH RFC v9 17/20] ARM: dts: imx6qdl-sabresd: Add support for TRULY TFT480800-16-E MIPI DSI panel Liu Ying
2015-02-12  6:01 ` [PATCH RFC v9 18/20] ARM: imx_v6_v7_defconfig: Cleanup for imx drm being moved out of staging Liu Ying
2015-02-12  6:01 ` [PATCH RFC v9 19/20] ARM: imx_v6_v7_defconfig: Add support for MIPI DSI host controller Liu Ying
2015-02-12  6:01 ` [PATCH RFC v9 20/20] ARM: imx_v6_v7_defconfig: Add support for Himax HX8369A panel Liu Ying
2015-03-02 13:24 ` [PATCH RFC v9 00/20] Add support for i.MX MIPI DSI DRM driver Shawn Guo

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=54991164.nrScLQEecU@diego \
    --to=heiko@sntech.de \
    --cc=a.hajda@samsung.com \
    --cc=andy.yan@rock-chips.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=kernel@pengutronix.de \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=mturquette@linaro.org \
    --cc=sboyd@codeaurora.org \
    --cc=stefan.wahren@i2se.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;
as well as URLs for NNTP newsgroup(s).