All of lore.kernel.org
 help / color / mirror / Atom feed
From: Maxime Ripard <maxime.ripard@bootlin.com>
To: Jagan Teki <jagan@amarulasolutions.com>
Cc: Chen-Yu Tsai <wens@csie.org>, Icenowy Zheng <icenowy@aosc.io>,
	Jernej Skrabec <jernej.skrabec@siol.net>,
	Vasily Khoruzhick <anarsoul@gmail.com>,
	Rob Herring <robh+dt@kernel.org>,
	Mark Rutland <mark.rutland@arm.com>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will.deacon@arm.com>,
	David Airlie <airlied@linux.ie>,
	dri-devel@lists.freedesktop.org,
	Michael Turquette <mturquette@baylibre.com>,
	Stephen Boyd <sboyd@kernel.org>,
	linux-clk@vger.kernel.org,
	Michael Trimarchi <michael@amarulasolutions.com>,
	linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-sunxi@googlegroups.com
Subject: Re: [PATCH 08/12] drm/sun4i: sun6i_mipi_dsi: Refactor vertical video start delay
Date: Thu, 27 Sep 2018 19:14:51 +0200	[thread overview]
Message-ID: <20180927171451.7iqt2nt2log5qojf@flea> (raw)
In-Reply-To: <20180927114850.24565-9-jagan@amarulasolutions.com>

On Thu, Sep 27, 2018 at 05:18:46PM +0530, Jagan Teki wrote:
> Accordingly to BPI-M64-bsp DE DSI code Video start delay
> can be computed by subtracting total vertical timing with
> front porch timing and with adding 1 delay line for TCON.

This is what the current code is doing as well.

> This patch simply add the start_delay logic from BPI-M64-bsp,
> w/o this new computation, the DSI on A64 encounter vblank time out.
> 
> [CRTC:36:crtc-0] vblank wait timed out
>
> Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
> ---
>  drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c | 12 +++++++++++-
>  1 file changed, 11 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
> index 9918fdb990ff..217db74c6dc3 100644
> --- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
> +++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
> @@ -358,7 +358,17 @@ static void sun6i_dsi_inst_init(struct sun6i_dsi *dsi,
>  static u16 sun6i_dsi_get_video_start_delay(struct sun6i_dsi *dsi,
>  					   struct drm_display_mode *mode)
>  {
> -	return mode->vtotal - (mode->vsync_end - mode->vdisplay) + 1;
> +	u32 vfp = mode->vsync_start - mode->vdisplay;

Again, this is wrong and contrary to what your commit log is saying.

The Allwinner code has:

u32 vfp = panel->lcd_vt - panel->lcd_y - panel->lcd_vbp;
u32 dsi_start_delay = panel->lcd_vt - vfp + 1;

So, essentially:

vtotal - (vtotal - vdisplay - back porch) + 1

The backporch is hsync_total - hsync_end, so we end up, removing the
addition / removal of vtotal, with:

vdisplay - (vsync_total - vsync_end) + 1

The formula used there looks indeed different, but unlike what you
were saying.

> +	u32 start_delay;
> +
> +	start_delay = mode->vtotal - vfp + 1;
> +	if (start_delay > mode->vtotal)
> +		start_delay -= mode->vtotal;
> +
> +	if (!start_delay)
> +		start_delay = 1;
> +

I guess that it's actually the clamping that fixes thing. It should be
mentionned in your commit log.

Maxime

-- 
Maxime Ripard, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

WARNING: multiple messages have this Message-ID (diff)
From: Maxime Ripard <maxime.ripard@bootlin.com>
To: Jagan Teki <jagan@amarulasolutions.com>
Cc: Chen-Yu Tsai <wens@csie.org>, Icenowy Zheng <icenowy@aosc.io>,
	Jernej Skrabec <jernej.skrabec@siol.net>,
	Vasily Khoruzhick <anarsoul@gmail.com>,
	Rob Herring <robh+dt@kernel.org>,
	Mark Rutland <mark.rutland@arm.com>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will.deacon@arm.com>,
	David Airlie <airlied@linux.ie>,
	dri-devel@lists.freedesktop.org,
	Michael Turquette <mturquette@baylibre.com>,
	Stephen Boyd <sboyd@kernel.org>,
	linux-clk@vger.kernel.org,
	Michael Trimarchi <michael@amarulasolutions.com>,
	linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-sunxi@googlegroups.com
Subject: Re: [PATCH 08/12] drm/sun4i: sun6i_mipi_dsi: Refactor vertical video start delay
Date: Thu, 27 Sep 2018 19:14:51 +0200	[thread overview]
Message-ID: <20180927171451.7iqt2nt2log5qojf@flea> (raw)
In-Reply-To: <20180927114850.24565-9-jagan@amarulasolutions.com>

On Thu, Sep 27, 2018 at 05:18:46PM +0530, Jagan Teki wrote:
> Accordingly to BPI-M64-bsp DE DSI code Video start delay
> can be computed by subtracting total vertical timing with
> front porch timing and with adding 1 delay line for TCON.

This is what the current code is doing as well.

> This patch simply add the start_delay logic from BPI-M64-bsp,
> w/o this new computation, the DSI on A64 encounter vblank time out.
>=20
> [CRTC:36:crtc-0] vblank wait timed out
>
> Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
> ---
>  drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c | 12 +++++++++++-
>  1 file changed, 11 insertions(+), 1 deletion(-)
>=20
> diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c b/drivers/gpu/drm/sun=
4i/sun6i_mipi_dsi.c
> index 9918fdb990ff..217db74c6dc3 100644
> --- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
> +++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
> @@ -358,7 +358,17 @@ static void sun6i_dsi_inst_init(struct sun6i_dsi *ds=
i,
>  static u16 sun6i_dsi_get_video_start_delay(struct sun6i_dsi *dsi,
>  					   struct drm_display_mode *mode)
>  {
> -	return mode->vtotal - (mode->vsync_end - mode->vdisplay) + 1;
> +	u32 vfp =3D mode->vsync_start - mode->vdisplay;

Again, this is wrong and contrary to what your commit log is saying.

The Allwinner code has:

u32 vfp =3D panel->lcd_vt - panel->lcd_y - panel->lcd_vbp;
u32 dsi_start_delay =3D panel->lcd_vt - vfp + 1;

So, essentially:

vtotal - (vtotal - vdisplay - back porch) + 1

The backporch is hsync_total - hsync_end, so we end up, removing the
addition / removal of vtotal, with:

vdisplay - (vsync_total - vsync_end) + 1

The formula used there looks indeed different, but unlike what you
were saying.

> +	u32 start_delay;
> +
> +	start_delay =3D mode->vtotal - vfp + 1;
> +	if (start_delay > mode->vtotal)
> +		start_delay -=3D mode->vtotal;
> +
> +	if (!start_delay)
> +		start_delay =3D 1;
> +

I guess that it's actually the clamping that fixes thing. It should be
mentionned in your commit log.

Maxime

--=20
Maxime Ripard, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

WARNING: multiple messages have this Message-ID (diff)
From: maxime.ripard@bootlin.com (Maxime Ripard)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 08/12] drm/sun4i: sun6i_mipi_dsi: Refactor vertical video start delay
Date: Thu, 27 Sep 2018 19:14:51 +0200	[thread overview]
Message-ID: <20180927171451.7iqt2nt2log5qojf@flea> (raw)
In-Reply-To: <20180927114850.24565-9-jagan@amarulasolutions.com>

On Thu, Sep 27, 2018 at 05:18:46PM +0530, Jagan Teki wrote:
> Accordingly to BPI-M64-bsp DE DSI code Video start delay
> can be computed by subtracting total vertical timing with
> front porch timing and with adding 1 delay line for TCON.

This is what the current code is doing as well.

> This patch simply add the start_delay logic from BPI-M64-bsp,
> w/o this new computation, the DSI on A64 encounter vblank time out.
> 
> [CRTC:36:crtc-0] vblank wait timed out
>
> Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
> ---
>  drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c | 12 +++++++++++-
>  1 file changed, 11 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
> index 9918fdb990ff..217db74c6dc3 100644
> --- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
> +++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
> @@ -358,7 +358,17 @@ static void sun6i_dsi_inst_init(struct sun6i_dsi *dsi,
>  static u16 sun6i_dsi_get_video_start_delay(struct sun6i_dsi *dsi,
>  					   struct drm_display_mode *mode)
>  {
> -	return mode->vtotal - (mode->vsync_end - mode->vdisplay) + 1;
> +	u32 vfp = mode->vsync_start - mode->vdisplay;

Again, this is wrong and contrary to what your commit log is saying.

The Allwinner code has:

u32 vfp = panel->lcd_vt - panel->lcd_y - panel->lcd_vbp;
u32 dsi_start_delay = panel->lcd_vt - vfp + 1;

So, essentially:

vtotal - (vtotal - vdisplay - back porch) + 1

The backporch is hsync_total - hsync_end, so we end up, removing the
addition / removal of vtotal, with:

vdisplay - (vsync_total - vsync_end) + 1

The formula used there looks indeed different, but unlike what you
were saying.

> +	u32 start_delay;
> +
> +	start_delay = mode->vtotal - vfp + 1;
> +	if (start_delay > mode->vtotal)
> +		start_delay -= mode->vtotal;
> +
> +	if (!start_delay)
> +		start_delay = 1;
> +

I guess that it's actually the clamping that fixes thing. It should be
mentionned in your commit log.

Maxime

-- 
Maxime Ripard, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

  reply	other threads:[~2018-09-27 17:14 UTC|newest]

Thread overview: 136+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-27 11:48 [PATCH 00/12] drm/sun4i: Allwinner A64 MIPI-DSI support Jagan Teki
2018-09-27 11:48 ` Jagan Teki
2018-09-27 11:48 ` Jagan Teki
2018-09-27 11:48 ` [PATCH 01/12] clk: sunxi-ng: a64: Fix gate bit of DSI DPHY Jagan Teki
2018-09-27 11:48   ` Jagan Teki
2018-09-27 11:48 ` [PATCH 02/12] drm/sun4i: sun6i_mipi_dsi: Add Allwinner A64 MIPI DSI support Jagan Teki
2018-09-27 11:48   ` Jagan Teki
2018-09-27 11:48 ` [PATCH 03/12] dt-bindings: sun6i-dsi: Add compatible for A64 MIPI DSI Jagan Teki
2018-09-27 11:48   ` Jagan Teki
2018-09-27 11:48   ` Jagan Teki
2018-10-15 18:24   ` Rob Herring
2018-10-15 18:24     ` Rob Herring
2018-10-15 18:24     ` Rob Herring
2018-09-27 11:48 ` [PATCH 04/12] drm/sun4i: sun6i_mipi_dsi: Enable missing DSI bus clock Jagan Teki
2018-09-27 11:48   ` Jagan Teki
2018-09-27 11:48   ` Jagan Teki
2018-09-27 12:42   ` Chen-Yu Tsai
2018-09-27 12:42     ` Chen-Yu Tsai
2018-09-27 12:42     ` Chen-Yu Tsai
2018-09-27 13:44     ` Jagan Teki
2018-09-27 13:44       ` Jagan Teki
2018-09-27 13:44       ` Jagan Teki
2018-09-27 14:16       ` [linux-sunxi] " Chen-Yu Tsai
2018-09-27 14:16         ` Chen-Yu Tsai
2018-09-27 14:16         ` Chen-Yu Tsai
2018-09-27 16:26         ` [linux-sunxi] " Jagan Teki
2018-09-27 16:26           ` Jagan Teki
2018-09-27 16:26           ` Jagan Teki
2018-09-27 16:33           ` [linux-sunxi] " Chen-Yu Tsai
2018-09-27 16:33             ` Chen-Yu Tsai
2018-09-27 16:33             ` Chen-Yu Tsai
2018-09-27 11:48 ` [PATCH 05/12] drm/sun4i: sun6i_mipi_dsi: Add DSI Generic short write 2 param transfer Jagan Teki
2018-09-27 11:48   ` Jagan Teki
2018-09-27 11:48   ` Jagan Teki
2018-09-27 17:18   ` Maxime Ripard
2018-09-27 17:18     ` Maxime Ripard
2018-09-27 17:18     ` Maxime Ripard
2018-09-27 17:18     ` Maxime Ripard
2018-09-27 17:36     ` Jagan Teki
2018-09-27 17:36       ` Jagan Teki
2018-09-29 13:47       ` Maxime Ripard
2018-09-29 13:47         ` Maxime Ripard
2018-09-29 13:47         ` Maxime Ripard
2018-09-27 11:48 ` [PATCH 06/12] drm/sun4i: sun6i_mipi_dsi: Fix VBP size calculation Jagan Teki
2018-09-27 11:48   ` Jagan Teki
2018-09-27 11:48   ` Jagan Teki
2018-09-27 15:21   ` Maxime Ripard
2018-09-27 15:21     ` Maxime Ripard
2018-09-27 15:21     ` Maxime Ripard
2018-09-27 16:20     ` Jagan Teki
2018-09-27 16:20       ` Jagan Teki
2018-09-27 16:20       ` Jagan Teki
2018-09-29 13:53       ` Maxime Ripard
2018-09-29 13:53         ` Maxime Ripard
2018-09-29 13:53         ` Maxime Ripard
2018-10-01  8:09         ` [linux-sunxi] " Jagan Teki
2018-10-01  8:09           ` Jagan Teki
2018-10-08 15:05           ` Maxime Ripard
2018-10-08 15:05             ` Maxime Ripard
2018-10-08 15:05             ` Maxime Ripard
2018-09-27 11:48 ` [PATCH 07/12] drm/sun4i: sun6i_mipi_dsi: Fix TCON DRQ set bits Jagan Teki
2018-09-27 11:48   ` Jagan Teki
2018-09-27 11:48   ` Jagan Teki
2018-09-27 16:58   ` Maxime Ripard
2018-09-27 16:58     ` Maxime Ripard
2018-09-27 16:58     ` Maxime Ripard
2018-09-27 16:58     ` Maxime Ripard
2018-09-27 17:45     ` Jagan Teki
2018-09-27 17:45       ` Jagan Teki
2018-09-27 17:45       ` Jagan Teki
2018-10-02 13:20       ` Maxime Ripard
2018-10-02 13:20         ` Maxime Ripard
2018-10-02 13:20         ` Maxime Ripard
2018-10-03  3:22         ` [linux-sunxi] " Jagan Teki
2018-10-03  3:22           ` Jagan Teki
2018-10-03  3:22           ` Jagan Teki
2018-10-08 15:05           ` [linux-sunxi] " Maxime Ripard
2018-10-08 15:05             ` Maxime Ripard
2018-10-08 15:05             ` Maxime Ripard
2018-09-27 11:48 ` [PATCH 08/12] drm/sun4i: sun6i_mipi_dsi: Refactor vertical video start delay Jagan Teki
2018-09-27 11:48   ` Jagan Teki
2018-09-27 17:14   ` Maxime Ripard [this message]
2018-09-27 17:14     ` Maxime Ripard
2018-09-27 17:14     ` Maxime Ripard
2018-09-27 17:33     ` Jagan Teki
2018-09-27 17:33       ` Jagan Teki
2018-09-27 17:33       ` Jagan Teki
2018-09-29 15:27       ` Maxime Ripard
2018-09-29 15:27         ` Maxime Ripard
2018-09-29 15:27         ` Maxime Ripard
2018-10-01  7:55         ` [linux-sunxi] " Jagan Teki
2018-10-01  7:55           ` Jagan Teki
2018-10-01  7:55           ` Jagan Teki
2018-10-02 13:29           ` [linux-sunxi] " Maxime Ripard
2018-10-02 13:29             ` Maxime Ripard
2018-10-02 13:29             ` Maxime Ripard
2018-09-27 11:48 ` [PATCH 09/12] dt-bindings: panel: Add Bananapi S070WV20-CT16 MIPI-DSI panel bindings Jagan Teki
2018-09-27 11:48   ` Jagan Teki
2018-10-15 18:24   ` Rob Herring
2018-10-15 18:24     ` Rob Herring
2018-10-15 18:24     ` Rob Herring
2018-10-22 10:22     ` Chen-Yu Tsai
2018-10-22 10:22       ` Chen-Yu Tsai
2018-10-22 10:22       ` Chen-Yu Tsai
2018-10-23 15:11       ` Rob Herring
2018-10-23 15:11         ` Rob Herring
2018-10-23 15:11         ` Rob Herring
2018-10-24 20:22         ` Chen-Yu Tsai
2018-10-24 20:22           ` Chen-Yu Tsai
2018-09-27 11:48 ` [PATCH 10/12] drm/panel: Add Bananapi S070WV20-CT16 MIPI-DSI panel driver Jagan Teki
2018-09-27 11:48   ` Jagan Teki
2018-09-28  4:32   ` Chen-Yu Tsai
2018-09-28  4:32     ` Chen-Yu Tsai
2018-09-28  4:32     ` Chen-Yu Tsai
2018-10-04 16:06     ` Jagan Teki
2018-10-04 16:06       ` Jagan Teki
2018-10-04 16:06       ` Jagan Teki
2018-09-27 11:48 ` [PATCH 11/12] arm64: dts: allwinner: a64: Add DSI pipeline Jagan Teki
2018-09-27 11:48   ` Jagan Teki
2018-09-27 11:48   ` Jagan Teki
2018-09-27 17:16   ` Maxime Ripard
2018-09-27 17:16     ` Maxime Ripard
2018-09-27 17:16     ` Maxime Ripard
2018-09-27 17:16     ` Maxime Ripard
2018-09-27 11:48 ` [PATCH 12/12] arm64: dts: allwinner: bananapi-m64: Bananapi S070WV20-CT16 DSI panel Jagan Teki
2018-09-27 11:48   ` Jagan Teki
2018-09-27 11:48   ` Jagan Teki
2018-09-27 17:17   ` Maxime Ripard
2018-09-27 17:17     ` Maxime Ripard
2018-09-27 17:17     ` Maxime Ripard
2018-09-27 17:17     ` Maxime Ripard
2018-10-04 16:03     ` Jagan Teki
2018-10-04 16:03       ` Jagan Teki
2018-10-04 16:03       ` Jagan Teki
2018-10-05 15:31       ` Maxime Ripard
2018-10-05 15:31         ` Maxime Ripard

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=20180927171451.7iqt2nt2log5qojf@flea \
    --to=maxime.ripard@bootlin.com \
    --cc=airlied@linux.ie \
    --cc=anarsoul@gmail.com \
    --cc=catalin.marinas@arm.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=icenowy@aosc.io \
    --cc=jagan@amarulasolutions.com \
    --cc=jernej.skrabec@siol.net \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-sunxi@googlegroups.com \
    --cc=mark.rutland@arm.com \
    --cc=michael@amarulasolutions.com \
    --cc=mturquette@baylibre.com \
    --cc=robh+dt@kernel.org \
    --cc=sboyd@kernel.org \
    --cc=wens@csie.org \
    --cc=will.deacon@arm.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.