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
next prev parent 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: linkBe 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.