From: Tony Lindgren <tony@atomide.com>
To: Michael Walle <mwalle@kernel.org>
Cc: Laurent.pinchart@ideasonboard.com, airlied@gmail.com,
andrzej.hajda@intel.com, daniel@ffwll.ch,
devicetree@vger.kernel.org, dri-devel@lists.freedesktop.org,
ivo.g.dimitrov.75@gmail.com, jernej.skrabec@gmail.com,
jonas@kwiboo.se, maarten.lankhorst@linux.intel.com,
merlijn@wizzup.org, mripard@kernel.org,
neil.armstrong@linaro.org, pavel@ucw.cz, philipp@uvos.xyz,
rfoss@kernel.org, sam@ravnborg.org, simhavcs@gmail.com,
sre@kernel.org, tzimmermann@suse.de
Subject: Re: [PATCH 3/6] drm/bridge: tc358775: Add jeida-24 support
Date: Mon, 27 Nov 2023 15:40:16 +0200 [thread overview]
Message-ID: <20231127134016.GG5166@atomide.com> (raw)
In-Reply-To: <20231127132525.2156089-1-mwalle@kernel.org>
* Michael Walle <mwalle@kernel.org> [231127 13:25]:
> > The jeida-24 register values are the default hardware settings, but they
> > not listed in the driver. Let's add them.
>
> jeida-24 and jeida-18 should have the same mapping, jeida-18 is broken in
> this driver. could you test this patch:
Yes great works for me with the tc358765 patches:
Tested-by: Tony Lindgren <tony@atomide.com>
> --snip--
>
> From 46da1d76d4908e5879ed746cce1faeacd69c432e Mon Sep 17 00:00:00 2001
> From: Michael Walle <mwalle@kernel.org>
> Date: Wed, 4 Oct 2023 13:52:57 +0200
> Subject: [PATCH] drm/bridge: tc358775: fix support for jeida-18 and jeida-24
>
> The bridge always uses 24bpp internally. Therefore, for jeida-18
> mapping we need to discard the lowest two bits for each channel and thus
> starting with LV_[RGB]2. jeida-24 has the same mapping but uses four
> lanes instead of three, with the forth pair transmitting the lowest two
> bits of each channel. Thus, the mapping between jeida-18 and jeida-24
> is actually the same, except that one channel is turned off (by
> selecting the RGB666 format in VPCTRL).
>
> While at it, remove the bogus comment about the hardware default because
> the default is overwritten in any case.
>
> Tested with a jeida-18 display (Evervision VGG644804).
>
> Fixes: b26975593b17 ("display/drm/bridge: TC358775 DSI/LVDS driver")
> Signed-off-by: Michael Walle <mwalle@kernel.org>
> ---
> drivers/gpu/drm/bridge/tc358775.c | 21 +++++++++------------
> 1 file changed, 9 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/gpu/drm/bridge/tc358775.c b/drivers/gpu/drm/bridge/tc358775.c
> index 90a89d70d832..592c69c2aedc 100644
> --- a/drivers/gpu/drm/bridge/tc358775.c
> +++ b/drivers/gpu/drm/bridge/tc358775.c
> @@ -454,10 +454,6 @@ static void tc_bridge_enable(struct drm_bridge *bridge)
> dev_dbg(tc->dev, "bus_formats %04x bpc %d\n",
> connector->display_info.bus_formats[0],
> tc->bpc);
> - /*
> - * Default hardware register settings of tc358775 configured
> - * with MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA jeida-24 format
> - */
> if (connector->display_info.bus_formats[0] ==
> MEDIA_BUS_FMT_RGB888_1X7X4_SPWG) {
> /* VESA-24 */
> @@ -468,14 +464,15 @@ static void tc_bridge_enable(struct drm_bridge *bridge)
> d2l_write(tc->i2c, LV_MX1619, LV_MX(LVI_B6, LVI_B7, LVI_B1, LVI_B2));
> d2l_write(tc->i2c, LV_MX2023, LV_MX(LVI_B3, LVI_B4, LVI_B5, LVI_L0));
> d2l_write(tc->i2c, LV_MX2427, LV_MX(LVI_HS, LVI_VS, LVI_DE, LVI_R6));
> - } else { /* MEDIA_BUS_FMT_RGB666_1X7X3_SPWG - JEIDA-18 */
> - d2l_write(tc->i2c, LV_MX0003, LV_MX(LVI_R0, LVI_R1, LVI_R2, LVI_R3));
> - d2l_write(tc->i2c, LV_MX0407, LV_MX(LVI_R4, LVI_L0, LVI_R5, LVI_G0));
> - d2l_write(tc->i2c, LV_MX0811, LV_MX(LVI_G1, LVI_G2, LVI_L0, LVI_L0));
> - d2l_write(tc->i2c, LV_MX1215, LV_MX(LVI_G3, LVI_G4, LVI_G5, LVI_B0));
> - d2l_write(tc->i2c, LV_MX1619, LV_MX(LVI_L0, LVI_L0, LVI_B1, LVI_B2));
> - d2l_write(tc->i2c, LV_MX2023, LV_MX(LVI_B3, LVI_B4, LVI_B5, LVI_L0));
> - d2l_write(tc->i2c, LV_MX2427, LV_MX(LVI_HS, LVI_VS, LVI_DE, LVI_L0));
> + } else {
> + /* JEIDA-18 and JEIDA-24 */
> + d2l_write(tc->i2c, LV_MX0003, LV_MX(LVI_R2, LVI_R3, LVI_R4, LVI_R5));
> + d2l_write(tc->i2c, LV_MX0407, LV_MX(LVI_R6, LVI_R1, LVI_R7, LVI_G2));
> + d2l_write(tc->i2c, LV_MX0811, LV_MX(LVI_G3, LVI_G4, LVI_G0, LVI_G1));
> + d2l_write(tc->i2c, LV_MX1215, LV_MX(LVI_G5, LVI_G6, LVI_G7, LVI_B2));
> + d2l_write(tc->i2c, LV_MX1619, LV_MX(LVI_B0, LVI_B1, LVI_B3, LVI_B4));
> + d2l_write(tc->i2c, LV_MX2023, LV_MX(LVI_B5, LVI_B6, LVI_B7, LVI_L0));
> + d2l_write(tc->i2c, LV_MX2427, LV_MX(LVI_HS, LVI_VS, LVI_DE, LVI_R0));
> }
>
> d2l_write(tc->i2c, VFUEN, VFUEN_EN);
> --
> 2.39.2
>
WARNING: multiple messages have this Message-ID (diff)
From: Tony Lindgren <tony@atomide.com>
To: Michael Walle <mwalle@kernel.org>
Cc: mripard@kernel.org, devicetree@vger.kernel.org,
ivo.g.dimitrov.75@gmail.com, rfoss@kernel.org,
andrzej.hajda@intel.com, tzimmermann@suse.de, jonas@kwiboo.se,
pavel@ucw.cz, sam@ravnborg.org, merlijn@wizzup.org,
neil.armstrong@linaro.org, sre@kernel.org,
dri-devel@lists.freedesktop.org, jernej.skrabec@gmail.com,
Laurent.pinchart@ideasonboard.com, simhavcs@gmail.com,
philipp@uvos.xyz
Subject: Re: [PATCH 3/6] drm/bridge: tc358775: Add jeida-24 support
Date: Mon, 27 Nov 2023 15:40:16 +0200 [thread overview]
Message-ID: <20231127134016.GG5166@atomide.com> (raw)
In-Reply-To: <20231127132525.2156089-1-mwalle@kernel.org>
* Michael Walle <mwalle@kernel.org> [231127 13:25]:
> > The jeida-24 register values are the default hardware settings, but they
> > not listed in the driver. Let's add them.
>
> jeida-24 and jeida-18 should have the same mapping, jeida-18 is broken in
> this driver. could you test this patch:
Yes great works for me with the tc358765 patches:
Tested-by: Tony Lindgren <tony@atomide.com>
> --snip--
>
> From 46da1d76d4908e5879ed746cce1faeacd69c432e Mon Sep 17 00:00:00 2001
> From: Michael Walle <mwalle@kernel.org>
> Date: Wed, 4 Oct 2023 13:52:57 +0200
> Subject: [PATCH] drm/bridge: tc358775: fix support for jeida-18 and jeida-24
>
> The bridge always uses 24bpp internally. Therefore, for jeida-18
> mapping we need to discard the lowest two bits for each channel and thus
> starting with LV_[RGB]2. jeida-24 has the same mapping but uses four
> lanes instead of three, with the forth pair transmitting the lowest two
> bits of each channel. Thus, the mapping between jeida-18 and jeida-24
> is actually the same, except that one channel is turned off (by
> selecting the RGB666 format in VPCTRL).
>
> While at it, remove the bogus comment about the hardware default because
> the default is overwritten in any case.
>
> Tested with a jeida-18 display (Evervision VGG644804).
>
> Fixes: b26975593b17 ("display/drm/bridge: TC358775 DSI/LVDS driver")
> Signed-off-by: Michael Walle <mwalle@kernel.org>
> ---
> drivers/gpu/drm/bridge/tc358775.c | 21 +++++++++------------
> 1 file changed, 9 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/gpu/drm/bridge/tc358775.c b/drivers/gpu/drm/bridge/tc358775.c
> index 90a89d70d832..592c69c2aedc 100644
> --- a/drivers/gpu/drm/bridge/tc358775.c
> +++ b/drivers/gpu/drm/bridge/tc358775.c
> @@ -454,10 +454,6 @@ static void tc_bridge_enable(struct drm_bridge *bridge)
> dev_dbg(tc->dev, "bus_formats %04x bpc %d\n",
> connector->display_info.bus_formats[0],
> tc->bpc);
> - /*
> - * Default hardware register settings of tc358775 configured
> - * with MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA jeida-24 format
> - */
> if (connector->display_info.bus_formats[0] ==
> MEDIA_BUS_FMT_RGB888_1X7X4_SPWG) {
> /* VESA-24 */
> @@ -468,14 +464,15 @@ static void tc_bridge_enable(struct drm_bridge *bridge)
> d2l_write(tc->i2c, LV_MX1619, LV_MX(LVI_B6, LVI_B7, LVI_B1, LVI_B2));
> d2l_write(tc->i2c, LV_MX2023, LV_MX(LVI_B3, LVI_B4, LVI_B5, LVI_L0));
> d2l_write(tc->i2c, LV_MX2427, LV_MX(LVI_HS, LVI_VS, LVI_DE, LVI_R6));
> - } else { /* MEDIA_BUS_FMT_RGB666_1X7X3_SPWG - JEIDA-18 */
> - d2l_write(tc->i2c, LV_MX0003, LV_MX(LVI_R0, LVI_R1, LVI_R2, LVI_R3));
> - d2l_write(tc->i2c, LV_MX0407, LV_MX(LVI_R4, LVI_L0, LVI_R5, LVI_G0));
> - d2l_write(tc->i2c, LV_MX0811, LV_MX(LVI_G1, LVI_G2, LVI_L0, LVI_L0));
> - d2l_write(tc->i2c, LV_MX1215, LV_MX(LVI_G3, LVI_G4, LVI_G5, LVI_B0));
> - d2l_write(tc->i2c, LV_MX1619, LV_MX(LVI_L0, LVI_L0, LVI_B1, LVI_B2));
> - d2l_write(tc->i2c, LV_MX2023, LV_MX(LVI_B3, LVI_B4, LVI_B5, LVI_L0));
> - d2l_write(tc->i2c, LV_MX2427, LV_MX(LVI_HS, LVI_VS, LVI_DE, LVI_L0));
> + } else {
> + /* JEIDA-18 and JEIDA-24 */
> + d2l_write(tc->i2c, LV_MX0003, LV_MX(LVI_R2, LVI_R3, LVI_R4, LVI_R5));
> + d2l_write(tc->i2c, LV_MX0407, LV_MX(LVI_R6, LVI_R1, LVI_R7, LVI_G2));
> + d2l_write(tc->i2c, LV_MX0811, LV_MX(LVI_G3, LVI_G4, LVI_G0, LVI_G1));
> + d2l_write(tc->i2c, LV_MX1215, LV_MX(LVI_G5, LVI_G6, LVI_G7, LVI_B2));
> + d2l_write(tc->i2c, LV_MX1619, LV_MX(LVI_B0, LVI_B1, LVI_B3, LVI_B4));
> + d2l_write(tc->i2c, LV_MX2023, LV_MX(LVI_B5, LVI_B6, LVI_B7, LVI_L0));
> + d2l_write(tc->i2c, LV_MX2427, LV_MX(LVI_HS, LVI_VS, LVI_DE, LVI_R0));
> }
>
> d2l_write(tc->i2c, VFUEN, VFUEN_EN);
> --
> 2.39.2
>
next prev parent reply other threads:[~2023-11-27 13:41 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-26 16:32 [PATCH 1/6] dt-bindings: tc358775: Add support for tc358765 Tony Lindgren
2023-11-26 16:32 ` Tony Lindgren
2023-11-26 16:32 ` [PATCH 2/6] drm/bridge: tc358775: Fix getting dsi host data lanes Tony Lindgren
2023-11-26 16:32 ` Tony Lindgren
2023-11-26 17:18 ` [PATCH 3/6] drm/bridge: tc358775: Add jeida-24 support Tony Lindgren
2023-11-26 18:17 ` [PATCH 4/6] drm/bridge: tc358775: Add burst and low-power modes Tony Lindgren
2023-11-26 18:56 ` [PATCH 5/6] drm/bridge: tc358775: Add support for tc358765 Tony Lindgren
2023-11-26 19:15 ` [PATCH 6/6] drm/bridge: tc358775: Configure hs_rate and lp_rate Tony Lindgren
2023-11-27 13:25 ` [PATCH 3/6] drm/bridge: tc358775: Add jeida-24 support Michael Walle
2023-11-27 13:25 ` Michael Walle
2023-11-27 13:40 ` Tony Lindgren [this message]
2023-11-27 13:40 ` Tony Lindgren
2023-11-27 13:09 ` [PATCH 2/6] drm/bridge: tc358775: Fix getting dsi host data lanes Michael Walle
2023-11-27 13:09 ` Michael Walle
2023-11-27 13:19 ` Tony Lindgren
2023-11-27 13:19 ` Tony Lindgren
2023-11-27 14:31 ` Michael Walle
2023-11-27 14:31 ` Michael Walle
2023-11-27 15:06 ` Tony Lindgren
2023-11-27 15:06 ` Tony Lindgren
2023-11-27 7:18 ` [PATCH 1/6] dt-bindings: tc358775: Add support for tc358765 Krzysztof Kozlowski
2023-11-27 7:18 ` Krzysztof Kozlowski
2023-11-27 12:44 ` Michael Walle
2023-11-27 12:44 ` Michael Walle
2023-11-27 13:07 ` Tony Lindgren
2023-11-27 13:07 ` Tony Lindgren
2023-11-27 13:21 ` Alexander Stein
2023-11-27 13:21 ` Alexander Stein
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=20231127134016.GG5166@atomide.com \
--to=tony@atomide.com \
--cc=Laurent.pinchart@ideasonboard.com \
--cc=airlied@gmail.com \
--cc=andrzej.hajda@intel.com \
--cc=daniel@ffwll.ch \
--cc=devicetree@vger.kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=ivo.g.dimitrov.75@gmail.com \
--cc=jernej.skrabec@gmail.com \
--cc=jonas@kwiboo.se \
--cc=maarten.lankhorst@linux.intel.com \
--cc=merlijn@wizzup.org \
--cc=mripard@kernel.org \
--cc=mwalle@kernel.org \
--cc=neil.armstrong@linaro.org \
--cc=pavel@ucw.cz \
--cc=philipp@uvos.xyz \
--cc=rfoss@kernel.org \
--cc=sam@ravnborg.org \
--cc=simhavcs@gmail.com \
--cc=sre@kernel.org \
--cc=tzimmermann@suse.de \
/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.