All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Cc: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>,
	"dri-devel@lists.freedesktop.org"
	<dri-devel@lists.freedesktop.org>,
	"linux-renesas-soc@vger.kernel.org"
	<linux-renesas-soc@vger.kernel.org>, Ulrich Hecht <uli@fpond.eu>,
	Kieran Bingham <kieran.bingham@ideasonboard.com>,
	KOJI MATSUOKA <koji.matsuoka.xm@renesas.com>
Subject: Re: [PATCH v2 07/16] drm: rcar-du: Use LVDS PLL clock as dot clock when possible
Date: Thu, 06 Dec 2018 11:50:59 +0200	[thread overview]
Message-ID: <2156355.nrP3YJkyIb@avalon> (raw)
In-Reply-To: <87pnur1ho1.wl-kuninori.morimoto.gx@renesas.com>

Hi Morimoto-san,

On Tuesday, 27 November 2018 02:44:58 EET Kuninori Morimoto wrote:
> Hi Laurent
> 
> Sorry for super late response.
> I got opinion from BSP team about this patch.

No worries. My reply is late too I'm afraid :-S

> > On selected SoCs, the DU can use the clock output by the LVDS encoder
> > PLL as its input dot clock. This feature is optional, but on the D3 and
> > E3 SoC it is often the only way to obtain a precise dot clock frequency,
> > as the other available clocks (CPG-generated clock and external clock)
> > usually have fixed rates.
> > 
> > Add a DU model information field to describe which DU channels can use
> > the LVDS PLL output clock as their input clock, and configure clock
> > routing accordingly.
> > 
> > This feature is available on H2, M2-W, M2-N, D3 and E3 SoCs, with D3 and
> > E3 being the primary targets. It is left disabled in this commit, and
> > will be enabled per-SoC after careful testing.
> > 
> > At the hardware level, clock routing is configured at runtime in two
> > steps, first selecting an internal dot clock between the LVDS PLL clock
> > and the external DOTCLKIN clock, and then selecting between the internal
> > dot clock and the CPG-generated clock. The first part requires stopping
> > the whole DU group in order for the change to take effect, thus causing
> > flickering on the screen. For this reason we currently hardcode the
> > clock source to the LVDS PLL clock if available, and allow flicker-free
> > selection of the external DOTCLKIN clock or CPG-generated clock
> > otherwise. A more dynamic clock selection process can be implemented
> > later if the need arises.
> > 
> > Signed-off-by: Laurent Pinchart
> > <laurent.pinchart+renesas@ideasonboard.com>
> > Tested-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
> > ---
> 
> (snip)
> 
> > +	didsr = DIDSR_CODE;
> > +	for (i = 0; i < num_crtcs; ++i, ++rcrtc) {
> > +		if (rcdu->info->lvds_clk_mask & BIT(rcrtc->index))
> > +			didsr |= DIDSR_LCDS_LVDS0(i)
> > +			      |  DIDSR_PDCS_CLK(i, 0);
> > +		else
> > +			didsr |= DIDSR_LCDS_DCLKIN(i)
> > +			      |  DIDSR_PDCS_CLK(i, 0);
> > +	}
> 
> Here, this is for DU pin settings, and fixed for
> 
> 	DU_DOTCLKIN0 -> DU0
> 	DU_DOTCLKIN1 -> DU1
> 
> But on E3 (Ebisu) board, it has only DU_DOTCLKIN0.
> We might use like this
> 
> 	DU_DOTCLKIN0 -> DU0
> 	DU_DOTCLKIN0 -> DU1
> 
> It is possible to adjust to this situation ?
> DIDSR :: PDCSn allows only 0

I think this would make sense. I'm not sure how to implement that, but I'll 
give it a try. What is the priority ?

-- 
Regards,

Laurent Pinchart

WARNING: multiple messages have this Message-ID (diff)
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Cc: Ulrich Hecht <uli@fpond.eu>,
	Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>,
	Kieran Bingham <kieran.bingham@ideasonboard.com>,
	"dri-devel@lists.freedesktop.org"
	<dri-devel@lists.freedesktop.org>,
	KOJI MATSUOKA <koji.matsuoka.xm@renesas.com>,
	"linux-renesas-soc@vger.kernel.org"
	<linux-renesas-soc@vger.kernel.org>
Subject: Re: [PATCH v2 07/16] drm: rcar-du: Use LVDS PLL clock as dot clock when possible
Date: Thu, 06 Dec 2018 11:50:59 +0200	[thread overview]
Message-ID: <2156355.nrP3YJkyIb@avalon> (raw)
In-Reply-To: <87pnur1ho1.wl-kuninori.morimoto.gx@renesas.com>

Hi Morimoto-san,

On Tuesday, 27 November 2018 02:44:58 EET Kuninori Morimoto wrote:
> Hi Laurent
> 
> Sorry for super late response.
> I got opinion from BSP team about this patch.

No worries. My reply is late too I'm afraid :-S

> > On selected SoCs, the DU can use the clock output by the LVDS encoder
> > PLL as its input dot clock. This feature is optional, but on the D3 and
> > E3 SoC it is often the only way to obtain a precise dot clock frequency,
> > as the other available clocks (CPG-generated clock and external clock)
> > usually have fixed rates.
> > 
> > Add a DU model information field to describe which DU channels can use
> > the LVDS PLL output clock as their input clock, and configure clock
> > routing accordingly.
> > 
> > This feature is available on H2, M2-W, M2-N, D3 and E3 SoCs, with D3 and
> > E3 being the primary targets. It is left disabled in this commit, and
> > will be enabled per-SoC after careful testing.
> > 
> > At the hardware level, clock routing is configured at runtime in two
> > steps, first selecting an internal dot clock between the LVDS PLL clock
> > and the external DOTCLKIN clock, and then selecting between the internal
> > dot clock and the CPG-generated clock. The first part requires stopping
> > the whole DU group in order for the change to take effect, thus causing
> > flickering on the screen. For this reason we currently hardcode the
> > clock source to the LVDS PLL clock if available, and allow flicker-free
> > selection of the external DOTCLKIN clock or CPG-generated clock
> > otherwise. A more dynamic clock selection process can be implemented
> > later if the need arises.
> > 
> > Signed-off-by: Laurent Pinchart
> > <laurent.pinchart+renesas@ideasonboard.com>
> > Tested-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
> > ---
> 
> (snip)
> 
> > +	didsr = DIDSR_CODE;
> > +	for (i = 0; i < num_crtcs; ++i, ++rcrtc) {
> > +		if (rcdu->info->lvds_clk_mask & BIT(rcrtc->index))
> > +			didsr |= DIDSR_LCDS_LVDS0(i)
> > +			      |  DIDSR_PDCS_CLK(i, 0);
> > +		else
> > +			didsr |= DIDSR_LCDS_DCLKIN(i)
> > +			      |  DIDSR_PDCS_CLK(i, 0);
> > +	}
> 
> Here, this is for DU pin settings, and fixed for
> 
> 	DU_DOTCLKIN0 -> DU0
> 	DU_DOTCLKIN1 -> DU1
> 
> But on E3 (Ebisu) board, it has only DU_DOTCLKIN0.
> We might use like this
> 
> 	DU_DOTCLKIN0 -> DU0
> 	DU_DOTCLKIN0 -> DU1
> 
> It is possible to adjust to this situation ?
> DIDSR :: PDCSn allows only 0

I think this would make sense. I'm not sure how to implement that, but I'll 
give it a try. What is the priority ?

-- 
Regards,

Laurent Pinchart



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

  reply	other threads:[~2018-12-06  9:50 UTC|newest]

Thread overview: 118+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-14  9:10 [PATCH v2 00/16] R-Car D3/E3 display support (with LVDS PLL) Laurent Pinchart
2018-09-14  9:10 ` Laurent Pinchart
2018-09-14  9:10 ` [PATCH v2 01/16] dt-bindings: display: renesas: du: Document r8a77990 bindings Laurent Pinchart
2018-09-14  9:10   ` Laurent Pinchart
2018-09-17 10:53   ` Ulrich Hecht
2018-09-17 10:53     ` Ulrich Hecht
2018-09-14  9:10 ` [PATCH v2 02/16] dt-bindings: display: renesas: lvds: " Laurent Pinchart
2018-09-14  9:10   ` Laurent Pinchart
2018-09-17 10:53   ` Ulrich Hecht
2018-09-17 10:53     ` Ulrich Hecht
2018-09-24 11:36   ` Kieran Bingham
2018-09-24 11:36     ` Kieran Bingham
2018-09-14  9:10 ` [PATCH v2 03/16] dt-bindings: display: renesas: lvds: Add EXTAL and DU_DOTCLKIN clocks Laurent Pinchart
2018-09-14  9:10   ` Laurent Pinchart
2018-09-17 10:53   ` Ulrich Hecht
2018-09-17 10:53     ` Ulrich Hecht
2018-09-24 19:04   ` Kieran Bingham
2018-09-24 19:04     ` Kieran Bingham
2018-09-14  9:10 ` [PATCH v2 04/16] drm: bridge: thc63: Restrict modes based on hardware operating frequency Laurent Pinchart
2018-09-14  9:10   ` Laurent Pinchart
2018-09-17 10:53   ` Ulrich Hecht
2018-09-17 10:53     ` Ulrich Hecht
2018-09-17 12:23     ` Laurent Pinchart
2018-09-17 12:23       ` Laurent Pinchart
2018-09-14  9:10 ` [PATCH v2 05/16] drm: rcar-du: lvds: D3/E3 support Laurent Pinchart
2018-09-14  9:10   ` Laurent Pinchart
2018-09-17 10:53   ` Ulrich Hecht
2018-09-17 10:53     ` Ulrich Hecht
2018-09-17 12:41     ` Laurent Pinchart
2018-09-17 12:41       ` Laurent Pinchart
2018-09-17 12:49   ` jacopo mondi
2018-09-17 12:49     ` jacopo mondi
2018-09-14  9:10 ` [PATCH v2 06/16] drm: rcar-du: Perform the initial CRTC setup from rcar_du_crtc_get() Laurent Pinchart
2018-09-14  9:10   ` Laurent Pinchart
2018-09-17 12:50   ` jacopo mondi
2018-09-17 12:50     ` jacopo mondi
2018-09-26 15:55   ` Ulrich Hecht
2018-09-26 15:55     ` Ulrich Hecht
2018-09-28 15:14     ` Laurent Pinchart
2018-09-28 15:14       ` Laurent Pinchart
2018-09-14  9:10 ` [PATCH v2 07/16] drm: rcar-du: Use LVDS PLL clock as dot clock when possible Laurent Pinchart
2018-09-14  9:10   ` Laurent Pinchart
2018-09-17 12:55   ` jacopo mondi
2018-09-17 12:55     ` jacopo mondi
2018-09-26 15:55   ` Ulrich Hecht
2018-09-26 15:55     ` Ulrich Hecht
2018-11-27  0:44   ` Kuninori Morimoto
2018-11-27  0:44     ` Kuninori Morimoto
2018-12-06  9:50     ` Laurent Pinchart [this message]
2018-12-06  9:50       ` Laurent Pinchart
2018-12-07  1:25       ` Kuninori Morimoto
2018-12-07  1:25         ` Kuninori Morimoto
2018-09-14  9:10 ` [PATCH v2 08/16] drm: rcar-du: Enable configurable DPAD0 routing on Gen3 Laurent Pinchart
2018-09-14  9:10   ` Laurent Pinchart
2018-09-17 12:56   ` jacopo mondi
2018-09-17 12:56     ` jacopo mondi
2018-09-26 15:55   ` Ulrich Hecht
2018-09-26 15:55     ` Ulrich Hecht
2018-09-14  9:10 ` [PATCH v2 09/16] drm: rcar-du: Cache DSYSR value to ensure known initial value Laurent Pinchart
2018-09-14  9:10   ` Laurent Pinchart
2018-09-24 11:18   ` Kieran Bingham
2018-09-24 11:18     ` Kieran Bingham
2018-09-26 15:55   ` Ulrich Hecht
2018-09-26 15:55     ` Ulrich Hecht
2018-09-14  9:10 ` [PATCH v2 10/16] drm: rcar-du: Don't use TV sync mode when not supported by the hardware Laurent Pinchart
2018-09-14  9:10   ` Laurent Pinchart
2018-09-24 11:26   ` Kieran Bingham
2018-09-24 11:26     ` Kieran Bingham
2018-09-26 15:55   ` Ulrich Hecht
2018-09-26 15:55     ` Ulrich Hecht
2018-09-14  9:10 ` [PATCH v2 11/16] drm: rcar-du: Add r8a77990 and r8a77995 device support Laurent Pinchart
2018-09-14  9:10   ` Laurent Pinchart
2018-09-24 11:41   ` Kieran Bingham
2018-09-24 11:41     ` Kieran Bingham
2018-09-14  9:10 ` [PATCH v2 12/16] arm64: dts: renesas: r8a77990: Add I2C device nodes Laurent Pinchart
2018-09-14  9:10   ` Laurent Pinchart
2018-09-17  7:33   ` Simon Horman
2018-09-17  7:33     ` Simon Horman
2018-09-17  8:08     ` Laurent Pinchart
2018-09-17  8:08       ` Laurent Pinchart
2018-09-14  9:10 ` [PATCH v2 13/16] arm64: dts: renesas: r8a77990: Add display output support Laurent Pinchart
2018-09-14  9:10   ` Laurent Pinchart
2018-09-17  7:50   ` Simon Horman
2018-09-17  7:50     ` Simon Horman
2018-09-17  8:14     ` Simon Horman
2018-09-17  8:14       ` Simon Horman
2018-09-17  8:47       ` Laurent Pinchart
2018-09-17  8:47         ` Laurent Pinchart
2018-09-17  8:54         ` Laurent Pinchart
2018-09-17  8:54           ` Laurent Pinchart
2018-09-17  8:59           ` Laurent Pinchart
2018-09-17  8:59             ` Laurent Pinchart
2018-09-19  8:35             ` Simon Horman
2018-09-19  8:35               ` Simon Horman
2018-09-19 13:11               ` Laurent Pinchart
2018-09-19 13:11                 ` Laurent Pinchart
2018-09-21  7:16                 ` Simon Horman
2018-09-21  7:16                   ` Simon Horman
2018-09-21  8:41                   ` Laurent Pinchart
2018-09-21  8:41                     ` Laurent Pinchart
2018-09-17  8:38     ` Laurent Pinchart
2018-09-17  8:38       ` Laurent Pinchart
2018-09-17  8:51       ` Simon Horman
2018-09-17  8:51         ` Simon Horman
2018-09-17  9:08         ` Laurent Pinchart
2018-09-17  9:08           ` Laurent Pinchart
2018-09-17  9:48           ` Geert Uytterhoeven
2018-09-17  9:48             ` Geert Uytterhoeven
2018-09-17 10:01             ` Laurent Pinchart
2018-09-17 10:01               ` Laurent Pinchart
2018-09-14  9:10 ` [PATCH v2 14/16] arm64: dts: renesas: r8a77995: Add LVDS support Laurent Pinchart
2018-09-14  9:10   ` Laurent Pinchart
2018-09-14  9:10 ` [PATCH v2 15/16] arm64: dts: renesas: r8a77990: ebisu: Enable VGA and HDMI outputs Laurent Pinchart
2018-09-14  9:10   ` Laurent Pinchart
2018-09-26 15:55   ` Ulrich Hecht
2018-09-26 15:55     ` Ulrich Hecht
2018-09-14  9:10 ` [PATCH v2 16/16] arm64: dts: renesas: r8a77995: draak: Enable HDMI display output Laurent Pinchart
2018-09-14  9:10   ` Laurent Pinchart

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=2156355.nrP3YJkyIb@avalon \
    --to=laurent.pinchart@ideasonboard.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=kieran.bingham@ideasonboard.com \
    --cc=koji.matsuoka.xm@renesas.com \
    --cc=kuninori.morimoto.gx@renesas.com \
    --cc=laurent.pinchart+renesas@ideasonboard.com \
    --cc=linux-renesas-soc@vger.kernel.org \
    --cc=uli@fpond.eu \
    /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.