Re: [PATCH] drm: rcar-du: crtc: Support external DSI dot clock

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxxxxxxx>

Reviewed-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>

> ---
>  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



[Index of Archives]     [Linux Samsung SOC]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux