Linux-Rockchip Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Heiko Stuebner <heiko@sntech.de>
To: a.hajda@samsung.com
Cc: bivvy.bi@rock-chips.com, jernej.skrabec@siol.net,
	xzy.xu@rock-chips.com, kuninori.morimoto.gx@renesas.com,
	jonas@kwiboo.se, sean@poorly.run, narmstrong@baylibre.com,
	philippe.cornu@st.com, dri-devel@lists.freedesktop.org,
	hjc@rock-chips.com, yannick.fertre@st.com,
	linux-rockchip@lists.infradead.org, nickey.yang@rock-chips.com,
	eddie.cai@rock-chips.com, Laurent.pinchart@ideasonboard.com,
	Heiko Stuebner <heiko.stuebner@theobroma-systems.com>,
	sam@ravnborg.org, christoph.muellner@theobroma-systems.com
Subject: [PATCH v5 2/6] drm/bridge/synopsys: dsi: move phy_ops callbacks around panel enablement
Date: Mon,  9 Dec 2019 15:31:26 +0100	[thread overview]
Message-ID: <20191209143130.4553-3-heiko@sntech.de> (raw)
In-Reply-To: <20191209143130.4553-1-heiko@sntech.de>

From: Heiko Stuebner <heiko.stuebner@theobroma-systems.com>

If implementation-specific phy_ops need to be defined they probably
should be enabled before trying to talk to the panel and disabled only
after the panel was disabled.

Right now they are enabled last and disabled first, so might make it
impossible to talk to some panels - example for this being the px30
with an external Innosilicon dphy that needs the phy to be enabled
to transfer commands to the panel.

So move the calls appropriately.

changed in v5:
- rebased on top of 5.5-rc1
- merged with dsi timing change to prevent ordering conflicts

Signed-off-by: Heiko Stuebner <heiko.stuebner@theobroma-systems.com>
Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
Tested-by: Yannick Fertre <yannick.fertre@st.com>
Reviewed-by: Philippe Cornu <philippe.cornu@st.com>
---
 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c b/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c
index bfe0061e54a2..b18351b6760a 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c
+++ b/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c
@@ -810,9 +810,6 @@ static void dw_mipi_dsi_bridge_post_disable(struct drm_bridge *bridge)
 	struct dw_mipi_dsi *dsi = bridge_to_dsi(bridge);
 	const struct dw_mipi_dsi_phy_ops *phy_ops = dsi->plat_data->phy_ops;
 
-	if (phy_ops->power_off)
-		phy_ops->power_off(dsi->plat_data->priv_data);
-
 	/*
 	 * Switch to command mode before panel-bridge post_disable &
 	 * panel unprepare.
@@ -829,6 +826,9 @@ static void dw_mipi_dsi_bridge_post_disable(struct drm_bridge *bridge)
 	 */
 	dsi->panel_bridge->funcs->post_disable(dsi->panel_bridge);
 
+	if (phy_ops->power_off)
+		phy_ops->power_off(dsi->plat_data->priv_data);
+
 	if (dsi->slave) {
 		dw_mipi_dsi_disable(dsi->slave);
 		clk_disable_unprepare(dsi->slave->pclk);
@@ -895,6 +895,9 @@ static void dw_mipi_dsi_mode_set(struct dw_mipi_dsi *dsi,
 
 	/* Switch to cmd mode for panel-bridge pre_enable & panel prepare */
 	dw_mipi_dsi_set_mode(dsi, 0);
+
+	if (phy_ops->power_on)
+		phy_ops->power_on(dsi->plat_data->priv_data);
 }
 
 static void dw_mipi_dsi_bridge_mode_set(struct drm_bridge *bridge,
@@ -911,15 +914,11 @@ static void dw_mipi_dsi_bridge_mode_set(struct drm_bridge *bridge,
 static void dw_mipi_dsi_bridge_enable(struct drm_bridge *bridge)
 {
 	struct dw_mipi_dsi *dsi = bridge_to_dsi(bridge);
-	const struct dw_mipi_dsi_phy_ops *phy_ops = dsi->plat_data->phy_ops;
 
 	/* Switch to video mode for panel-bridge enable & panel enable */
 	dw_mipi_dsi_set_mode(dsi, MIPI_DSI_MODE_VIDEO);
 	if (dsi->slave)
 		dw_mipi_dsi_set_mode(dsi->slave, MIPI_DSI_MODE_VIDEO);
-
-	if (phy_ops->power_on)
-		phy_ops->power_on(dsi->plat_data->priv_data);
 }
 
 static enum drm_mode_status
-- 
2.24.0

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

  parent reply	other threads:[~2019-12-09 14:31 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-09 14:31 [PATCH v5 0/6] drm/rockchip: px30 dsi support Heiko Stuebner
2019-12-09 14:31 ` [PATCH v5 1/6] drm/bridge/synopsys: dsi: driver-specific configuration of phy timings Heiko Stuebner
2019-12-16 10:37   ` Neil Armstrong
2019-12-09 14:31 ` Heiko Stuebner [this message]
2019-12-09 14:31 ` [PATCH v5 3/6] dt-bindings: display: rockchip-dsi: document external phys Heiko Stuebner
2019-12-09 14:31 ` [PATCH v5 4/6] drm/rockchip: add ability to handle external dphys in mipi-dsi Heiko Stuebner
2019-12-16 10:39   ` Neil Armstrong
2019-12-09 14:31 ` [PATCH v5 5/6] dt-bindings: display: rockchip-dsi: add px30 compatible Heiko Stuebner
     [not found] ` <20191209143130.4553-1-heiko-4mtYJXux2i+zQB+pC5nmwQ@public.gmane.org>
2019-12-09 14:31   ` [PATCH v5 6/6] drm/rockchip: dsi: add px30 support Heiko Stuebner
2019-12-16 10:39     ` Neil Armstrong
2019-12-16 10:40 ` [PATCH v5 0/6] drm/rockchip: px30 dsi support Neil Armstrong
2019-12-16 11:17   ` Heiko Stuebner

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=20191209143130.4553-3-heiko@sntech.de \
    --to=heiko@sntech.de \
    --cc=Laurent.pinchart@ideasonboard.com \
    --cc=a.hajda@samsung.com \
    --cc=bivvy.bi@rock-chips.com \
    --cc=christoph.muellner@theobroma-systems.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=eddie.cai@rock-chips.com \
    --cc=heiko.stuebner@theobroma-systems.com \
    --cc=hjc@rock-chips.com \
    --cc=jernej.skrabec@siol.net \
    --cc=jonas@kwiboo.se \
    --cc=kuninori.morimoto.gx@renesas.com \
    --cc=linux-rockchip@lists.infradead.org \
    --cc=narmstrong@baylibre.com \
    --cc=nickey.yang@rock-chips.com \
    --cc=philippe.cornu@st.com \
    --cc=sam@ravnborg.org \
    --cc=sean@poorly.run \
    --cc=xzy.xu@rock-chips.com \
    --cc=yannick.fertre@st.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