dri-devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
* Re: [PATCH v2 0/7] drm/bridge: tc358768: Long command support
       [not found] <20260311-tc358768-v2-0-e75a99131bd5@ideasonboard.com>
@ 2026-05-06  7:55 ` Tomi Valkeinen
  2026-05-06 15:02   ` Dmitry Osipenko
       [not found] ` <20260311-tc358768-v2-4-e75a99131bd5@ideasonboard.com>
  1 sibling, 1 reply; 3+ messages in thread
From: Tomi Valkeinen @ 2026-05-06  7:55 UTC (permalink / raw)
  To: Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
	Jonas Karlman, Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, David Airlie, Simona Vetter, Parth Pancholi,
	Francesco Dolcini
  Cc: dri-devel, linux-kernel, João Paulo Gonçalves,
	Dmitry Osipenko

Hi all,

On 11/03/2026 09:48, Tomi Valkeinen wrote:
> This series makes some small improvements to the tc358768 driver, and
> then adds support for long commands, commands that have more than 8
> bytes of payload.
> 
> This has been tested on Toradex Verdin AM62 board, with a ST7703 based
> DSI panel which requires initial configuration using commands that have
> 8+ bytes.
> 
> I tested the following combinations, by observing the panel visually and
> the DSI lanes with an oscilloscope:
> 
> - HS command transfer, continuous clock
> - HS command transfer, non-continuous clock
> - LP command transfer, continuous clock
> - LP command transfer, non-continuous clock
> 
> All except LP + continuous clock work fine. While observing the lanes
> with normal oscilloscope is a very high level and vague view of what
> exactly is going on the lanes, it still looks good to me: initial
> commands are sent in LP, and then video data is being sent in HS, and
> clock lane is continuous. However, the panel stays black, so something
> is not quite right.
> 
> As it doesn't make sense to send commands in LP during initial
> configuration, especially with longer commands, I will leave that
> particular combination unresolved. I'd be interested to hear if it works
> on some other panel.
> 
> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
> ---
> Changes in v2:
> - Add reviewed-by & tested-by tags
> - Rebase on v7.0-rc2
> - Link to v1: https://lore.kernel.org/r/20251021-tc358768-v1-0-d590dc6a1a0c@ideasonboard.com
Any further comments from anyone? I don't see a specific maintainer for 
this bridge chip, so if there are no comments I'll push this to drm-misc 
in the coming days.

  Tomi


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH v2 0/7] drm/bridge: tc358768: Long command support
  2026-05-06  7:55 ` [PATCH v2 0/7] drm/bridge: tc358768: Long command support Tomi Valkeinen
@ 2026-05-06 15:02   ` Dmitry Osipenko
  0 siblings, 0 replies; 3+ messages in thread
From: Dmitry Osipenko @ 2026-05-06 15:02 UTC (permalink / raw)
  To: Tomi Valkeinen, Andrzej Hajda, Neil Armstrong, Robert Foss,
	Laurent Pinchart, Jonas Karlman, Jernej Skrabec,
	Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
	Simona Vetter, Parth Pancholi, Francesco Dolcini
  Cc: dri-devel, linux-kernel, João Paulo Gonçalves

06.05.2026 10:55, Tomi Valkeinen пишет:
> Hi all,
> 
> On 11/03/2026 09:48, Tomi Valkeinen wrote:
>> This series makes some small improvements to the tc358768 driver, and
>> then adds support for long commands, commands that have more than 8
>> bytes of payload.
>>
>> This has been tested on Toradex Verdin AM62 board, with a ST7703 based
>> DSI panel which requires initial configuration using commands that have
>> 8+ bytes.
>>
>> I tested the following combinations, by observing the panel visually and
>> the DSI lanes with an oscilloscope:
>>
>> - HS command transfer, continuous clock
>> - HS command transfer, non-continuous clock
>> - LP command transfer, continuous clock
>> - LP command transfer, non-continuous clock
>>
>> All except LP + continuous clock work fine. While observing the lanes
>> with normal oscilloscope is a very high level and vague view of what
>> exactly is going on the lanes, it still looks good to me: initial
>> commands are sent in LP, and then video data is being sent in HS, and
>> clock lane is continuous. However, the panel stays black, so something
>> is not quite right.
>>
>> As it doesn't make sense to send commands in LP during initial
>> configuration, especially with longer commands, I will leave that
>> particular combination unresolved. I'd be interested to hear if it works
>> on some other panel.
>>
>> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
>> ---
>> Changes in v2:
>> - Add reviewed-by & tested-by tags
>> - Rebase on v7.0-rc2
>> - Link to v1: https://lore.kernel.org/r/20251021-tc358768-v1-0-
>> d590dc6a1a0c@ideasonboard.com
> Any further comments from anyone? I don't see a specific maintainer for
> this bridge chip, so if there are no comments I'll push this to drm-misc
> in the coming days.

No objections

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH v2 4/7] drm/bridge: tc358768: Support non-continuous clock
       [not found] ` <20260311-tc358768-v2-4-e75a99131bd5@ideasonboard.com>
@ 2026-05-06 15:23   ` Dmitry Osipenko
  0 siblings, 0 replies; 3+ messages in thread
From: Dmitry Osipenko @ 2026-05-06 15:23 UTC (permalink / raw)
  To: Tomi Valkeinen, Andrzej Hajda, Neil Armstrong, Robert Foss,
	Laurent Pinchart, Jonas Karlman, Jernej Skrabec,
	Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
	Simona Vetter, Parth Pancholi, Francesco Dolcini
  Cc: dri-devel, linux-kernel, João Paulo Gonçalves

11.03.2026 10:48, Tomi Valkeinen пишет:
> The driver prints a warning if MIPI_DSI_CLOCK_NON_CONTINUOUS is set, and
> falls back to continuous clock mode. This was added in commit
> fbc5a90e82c1 ("drm/bridge: tc358768: Disable non-continuous clock mode").
> 
> However, there have been multiple changes to the driver since then, and
> at least in my setup, non-continuous clock mode works: I can see an
> image on the panel, and I can see the clock lanes being non-continuous
> with an oscilloscope.
> 
> So, let's enable MIPI_DSI_CLOCK_NON_CONTINUOUS support.
> 
> Cc: Dmitry Osipenko <digetx@gmail.com>
> Tested-by: João Paulo Gonçalves <joao.goncalves@toradex.com> # Toradex Verdin AM62
> Reviewed-by: Francesco Dolcini <francesco.dolcini@toradex.com>
> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
> ---
>  drivers/gpu/drm/bridge/tc358768.c | 10 ++--------
>  1 file changed, 2 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/gpu/drm/bridge/tc358768.c b/drivers/gpu/drm/bridge/tc358768.c
> index 755ed6483b2e..a276fbc75dde 100644
> --- a/drivers/gpu/drm/bridge/tc358768.c
> +++ b/drivers/gpu/drm/bridge/tc358768.c
> @@ -722,7 +722,6 @@ static void tc358768_bridge_atomic_pre_enable(struct drm_bridge *bridge,
>  {
>  	struct tc358768_priv *priv = bridge_to_tc358768(bridge);
>  	struct mipi_dsi_device *dsi_dev = priv->output.dev;
> -	unsigned long mode_flags = dsi_dev->mode_flags;
>  	u32 val, mask, val2, lptxcnt, hact, data_type;
>  	s32 raw_val;
>  	struct drm_crtc_state *crtc_state;
> @@ -744,11 +743,6 @@ static void tc358768_bridge_atomic_pre_enable(struct drm_bridge *bridge,
>  	u32 dsi_vsdly;
>  	const u32 internal_dly = 40;
>  
> -	if (mode_flags & MIPI_DSI_CLOCK_NON_CONTINUOUS) {
> -		dev_warn_once(dev, "Non-continuous mode unimplemented, falling back to continuous\n");
> -		mode_flags &= ~MIPI_DSI_CLOCK_NON_CONTINUOUS;
> -	}
> -
>  	tc358768_hw_enable(priv);
>  
>  	ret = tc358768_sw_reset(priv);
> @@ -1032,7 +1026,7 @@ static void tc358768_bridge_atomic_pre_enable(struct drm_bridge *bridge,
>  	tc358768_write(priv, TC358768_HSTXVREGEN, val);
>  
>  	tc358768_write(priv, TC358768_TXOPTIONCNTRL,
> -		       (mode_flags & MIPI_DSI_CLOCK_NON_CONTINUOUS) ? 0 : BIT(0));
> +		       (dsi_dev->mode_flags & MIPI_DSI_CLOCK_NON_CONTINUOUS) ? 0 : BIT(0));
>  
>  	/* TXTAGOCNT[26:16] RXTASURECNT[10:0] */
>  	val = tc358768_ps_to_ns((lptxcnt + 1) * hsbyteclk_ps * 4);
> @@ -1099,7 +1093,7 @@ static void tc358768_bridge_atomic_pre_enable(struct drm_bridge *bridge,
>  
>  	val |= TC358768_DSI_CONTROL_TXMD;
>  
> -	if (!(mode_flags & MIPI_DSI_CLOCK_NON_CONTINUOUS))
> +	if (!(dsi_dev->mode_flags & MIPI_DSI_CLOCK_NON_CONTINUOUS))
>  		val |= TC358768_DSI_CONTROL_HSCKMD;
>  
>  	if (dsi_dev->mode_flags & MIPI_DSI_MODE_NO_EOT_PACKET)
> 

Acked-by: Dmitry Osipenko <digetx@gmail.com>

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-05-06 15:23 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20260311-tc358768-v2-0-e75a99131bd5@ideasonboard.com>
2026-05-06  7:55 ` [PATCH v2 0/7] drm/bridge: tc358768: Long command support Tomi Valkeinen
2026-05-06 15:02   ` Dmitry Osipenko
     [not found] ` <20260311-tc358768-v2-4-e75a99131bd5@ideasonboard.com>
2026-05-06 15:23   ` [PATCH v2 4/7] drm/bridge: tc358768: Support non-continuous clock Dmitry Osipenko

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox