All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tomi Valkeinen <tomi.valkeinen@ti.com>
To: Andrzej Hajda <a.hajda@samsung.com>,
	Laurent Pinchart <Laurent.pinchart@ideasonboard.com>,
	Lucas Stach <l.stach@pengutronix.de>,
	Andrey Gusakov <andrey.gusakov@cogentembedded.com>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Andrey Smirnov <andrew.smirnov@gmail.com>,
	Peter Ujfalusi <peter.ujfalusi@ti.com>,
	Jyri Sarha <jsarha@ti.com>, Benoit Parrot <bparrot@ti.com>,
	dri-devel@lists.freedesktop.org
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
Subject: [PATCHv3 03/23] drm/bridge: tc358767: fix ansi 8b10b use
Date: Fri, 3 May 2019 15:29:29 +0300	[thread overview]
Message-ID: <20190503122949.12266-4-tomi.valkeinen@ti.com> (raw)
In-Reply-To: <20190503122949.12266-1-tomi.valkeinen@ti.com>

DP always uses ANSI 8B10B encoding. Some monitors (old?) may not have
the ANSI 8B10B bit set in DPCD, even if it should always be set.

The tc358767 driver currently respects that flag, and turns the encoding
off if the monitor does not have the bit set, which then results in the
monitor not working.

This patch makes the driver to always use ANSI 8B10B encoding, and drops
the 'coding8b10b' field which is no longer used.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
---
 drivers/gpu/drm/bridge/tc358767.c | 11 +++--------
 1 file changed, 3 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/bridge/tc358767.c b/drivers/gpu/drm/bridge/tc358767.c
index 03da47cff182..664cc691a841 100644
--- a/drivers/gpu/drm/bridge/tc358767.c
+++ b/drivers/gpu/drm/bridge/tc358767.c
@@ -188,7 +188,6 @@ struct tc_edp_link {
 	u8			assr;
 	int			scrambler_dis;
 	int			spread;
-	int			coding8b10b;
 	u8			swing;
 	u8			preemp;
 };
@@ -390,13 +389,10 @@ static u32 tc_srcctrl(struct tc_data *tc)
 	 * No training pattern, skew lane 1 data by two LSCLK cycles with
 	 * respect to lane 0 data, AutoCorrect Mode = 0
 	 */
-	u32 reg = DP0_SRCCTRL_NOTP | DP0_SRCCTRL_LANESKEW;
+	u32 reg = DP0_SRCCTRL_NOTP | DP0_SRCCTRL_LANESKEW | DP0_SRCCTRL_EN810B;
 
 	if (tc->link.scrambler_dis)
 		reg |= DP0_SRCCTRL_SCRMBLDIS;	/* Scrambler Disabled */
-	if (tc->link.coding8b10b)
-		/* Enable 8/10B Encoder (TxData[19:16] not used) */
-		reg |= DP0_SRCCTRL_EN810B;
 	if (tc->link.spread)
 		reg |= DP0_SRCCTRL_SSCG;	/* Spread Spectrum Enable */
 	if (tc->link.base.num_lanes == 2)
@@ -635,7 +631,7 @@ static int tc_get_display_props(struct tc_data *tc)
 	ret = drm_dp_dpcd_readb(&tc->aux, DP_MAIN_LINK_CHANNEL_CODING, tmp);
 	if (ret < 0)
 		goto err_dpcd_read;
-	tc->link.coding8b10b = tmp[0] & BIT(0);
+
 	tc->link.scrambler_dis = 0;
 	/* read assr */
 	ret = drm_dp_dpcd_readb(&tc->aux, DP_EDP_CONFIGURATION_SET, tmp);
@@ -649,7 +645,6 @@ static int tc_get_display_props(struct tc_data *tc)
 		tc->link.base.num_lanes,
 		(tc->link.base.capabilities & DP_LINK_CAP_ENHANCED_FRAMING) ?
 		"enhanced" : "non-enhanced");
-	dev_dbg(tc->dev, "ANSI 8B/10B: %d\n", tc->link.coding8b10b);
 	dev_dbg(tc->dev, "Display ASSR: %d, TC358767 ASSR: %d\n",
 		tc->link.assr, tc->assr);
 
@@ -951,7 +946,7 @@ static int tc_main_link_setup(struct tc_data *tc)
 	/* DOWNSPREAD_CTRL */
 	tmp[0] = tc->link.spread ? DP_SPREAD_AMP_0_5 : 0x00;
 	/* MAIN_LINK_CHANNEL_CODING_SET */
-	tmp[1] =  tc->link.coding8b10b ? DP_SET_ANSI_8B10B : 0x00;
+	tmp[1] =  DP_SET_ANSI_8B10B;
 	ret = drm_dp_dpcd_write(aux, DP_DOWNSPREAD_CTRL, tmp, 2);
 	if (ret < 0)
 		goto err_dpcd_write;
-- 
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki

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

  parent reply	other threads:[~2019-05-03 12:30 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-03 12:29 [PATCHv3 00/23] drm/bridge: tc358767: DP support Tomi Valkeinen
2019-05-03 12:29 ` [PATCHv3 01/23] drm/bridge: tc358767: fix tc_aux_get_status error handling Tomi Valkeinen
2019-05-03 12:29 ` [PATCHv3 02/23] drm/bridge: tc358767: reset voltage-swing & pre-emphasis Tomi Valkeinen
2019-05-03 12:29 ` Tomi Valkeinen [this message]
2019-05-03 12:29 ` [PATCHv3 04/23] drm/bridge: tc358767: cleanup spread & scrambler_dis Tomi Valkeinen
2019-05-03 12:29 ` [PATCHv3 05/23] drm/bridge: tc358767: remove unused swing & preemp Tomi Valkeinen
2019-05-03 12:29 ` [PATCHv3 06/23] drm/bridge: tc358767: cleanup aux_link_setup Tomi Valkeinen
2019-05-03 12:29 ` [PATCHv3 07/23] drm/bridge: tc358767: move video stream setup to tc_main_link_stream Tomi Valkeinen
2019-05-03 12:29 ` [PATCHv3 08/23] drm/bridge: tc358767: split stream enable/disable Tomi Valkeinen
2019-05-20  9:35   ` Andrzej Hajda
2019-05-03 12:29 ` [PATCHv3 09/23] drm/bridge: tc358767: move PXL PLL enable/disable to " Tomi Valkeinen
2019-05-03 12:29 ` [PATCHv3 10/23] drm/bridge: tc358767: add link disable function Tomi Valkeinen
2019-05-20  9:36   ` Andrzej Hajda
2019-05-03 12:29 ` [PATCHv3 11/23] drm/bridge: tc358767: disable only video stream in tc_stream_disable Tomi Valkeinen
2019-05-20 10:53   ` Andrzej Hajda
2019-05-03 12:29 ` [PATCHv3 12/23] drm/bridge: tc358767: ensure DP is disabled before LT Tomi Valkeinen
2019-05-20 10:54   ` Andrzej Hajda
2019-05-03 12:29 ` [PATCHv3 13/23] drm/bridge: tc358767: remove unnecessary msleep Tomi Valkeinen
2019-05-03 12:29 ` [PATCHv3 14/23] drm/bridge: tc358767: use more reliable seq when finishing LT Tomi Valkeinen
2019-05-03 12:29 ` [PATCHv3 15/23] drm/bridge: tc358767: cleanup LT result check Tomi Valkeinen
2019-05-03 12:29 ` [PATCHv3 16/23] drm/bridge: tc358767: clean-up link training Tomi Valkeinen
2019-05-20 11:29   ` Andrzej Hajda
2019-05-03 12:29 ` [PATCHv3 17/23] drm/bridge: tc358767: remove check for video mode in link enable Tomi Valkeinen
2019-05-03 12:29 ` [PATCHv3 18/23] drm/bridge: tc358767: use bridge mode_valid Tomi Valkeinen
2019-05-03 12:29 ` [PATCHv3 19/23] drm/bridge: tc358767: remove tc_connector_best_encoder Tomi Valkeinen
2019-05-03 12:29 ` [PATCHv3 20/23] drm/bridge: tc358767: copy the mode data, instead of storing the pointer Tomi Valkeinen
2019-05-21  6:14   ` Andrzej Hajda
2019-05-03 12:29 ` [PATCHv3 21/23] drm/bridge: tc358767: add GPIO & interrupt registers Tomi Valkeinen
2019-05-03 12:29 ` [PATCHv3 22/23] drm/bridge: tc358767: add IRQ and HPD support Tomi Valkeinen
2019-05-21  7:07   ` Andrzej Hajda
2019-05-21 11:34     ` Tomi Valkeinen
2019-05-21 14:18       ` Andrzej Hajda
2019-05-27 15:11         ` Tomi Valkeinen
2019-05-28 10:59           ` Andrzej Hajda
2019-05-03 12:29 ` [PATCHv3 23/23] dt-bindings: tc358767: add " Tomi Valkeinen

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=20190503122949.12266-4-tomi.valkeinen@ti.com \
    --to=tomi.valkeinen@ti.com \
    --cc=Laurent.pinchart@ideasonboard.com \
    --cc=a.hajda@samsung.com \
    --cc=andrew.smirnov@gmail.com \
    --cc=andrey.gusakov@cogentembedded.com \
    --cc=bparrot@ti.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=jsarha@ti.com \
    --cc=l.stach@pengutronix.de \
    --cc=p.zabel@pengutronix.de \
    --cc=peter.ujfalusi@ti.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.