[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <YaWe9nOzk+zN9d5u@pendragon.ideasonboard.com>
Date: Tue, 30 Nov 2021 05:48:06 +0200
From: Laurent Pinchart <laurent.pinchart@...asonboard.com>
To: Kieran Bingham <kieran.bingham+renesas@...asonboard.com>
Cc: linux-renesas-soc@...r.kernel.org, dri-devel@...ts.freedesktop.org,
David Airlie <airlied@...ux.ie>,
Daniel Vetter <daniel@...ll.ch>,
open list <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH] drm: rcar-du: crtc: Support external DSI dot clock
Hi Kieran,
Thank you for the patch.
On Fri, Nov 26, 2021 at 09:35:14AM +0000, Kieran Bingham wrote:
> On platforms with an external clock, both the group and crtc must be
> handled accordingly to correctly pass through the external clock and
> configure the DU to use the external rate.
>
> The CRTC support was missed while adding the DSI support on the r8a779a0
> which led to the output clocks being incorrectly determined.
>
> Ensure that when a CRTC is routed through the DSI encoder, the external
> clock is used without any further divider being applied.
>
> Fixes: b291fdcf5114 ("drm: rcar-du: Add r8a779a0 device support")
> Signed-off-by: Kieran Bingham <kieran.bingham+renesas@...asonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@...asonboard.com>
> ---
> drivers/gpu/drm/rcar-du/rcar_du_crtc.c | 11 ++++++-----
> 1 file changed, 6 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/rcar-du/rcar_du_crtc.c b/drivers/gpu/drm/rcar-du/rcar_du_crtc.c
> index 5672830ca184..5236f917cc68 100644
> --- a/drivers/gpu/drm/rcar-du/rcar_du_crtc.c
> +++ b/drivers/gpu/drm/rcar-du/rcar_du_crtc.c
> @@ -261,12 +261,13 @@ static void rcar_du_crtc_set_display_timing(struct rcar_du_crtc *rcrtc)
> rcar_du_group_write(rcrtc->group, DPLLCR, dpllcr);
>
> escr = ESCR_DCLKSEL_DCLKIN | div;
> - } else if (rcdu->info->lvds_clk_mask & BIT(rcrtc->index)) {
> + } else if (rcdu->info->lvds_clk_mask & BIT(rcrtc->index) ||
> + rcdu->info->dsi_clk_mask & BIT(rcrtc->index)) {
> /*
> - * Use the LVDS PLL output as the dot clock when outputting to
> - * the LVDS encoder on an SoC that supports this clock routing
> - * option. We use the clock directly in that case, without any
> - * additional divider.
> + * Use the external LVDS or DSI PLL output as the dot clock when
> + * outputting to the LVDS or DSI encoder on an SoC that supports
> + * this clock routing option. We use the clock directly in that
> + * case, without any additional divider.
> */
> escr = ESCR_DCLKSEL_DCLKIN;
> } else {
--
Regards,
Laurent Pinchart
Powered by blists - more mailing lists