Hi Chris,
for consitency with other commits on this file, change your patch title:

    drm: renesas: rz-du: Set DSI divider based on...

to

   drm: renesas: rz-du: mipi_dsi: Set DSI divider based on...


On Wed,  5 Nov 2025 17:25:30 -0500
Chris Brandt <[email protected]> wrote:

> Before the MIPI DSI clock source can be configured, the target divide
> ratio needs to be known.
> 
> Signed-off-by: Chris Brandt <[email protected]>
> Reviewed-by: Biju Das <[email protected]>
> Tested-by: Biju Das <[email protected]>
> 
> ---
> v1->v2:
> - Add spaces around '/' in comments
> - Add target argument in new API
> 
> v2->v3:
> - Add missing period in comment (Hugo)
> - Changed '1' to 'PLL5_TARGET_DSI' (Hugo)
> - Added Reviewed-by and Tested-by (Biju)
> 
> v3->v4:
> - Fixed up the comments
> - Fixed the match for the divider to set (was missing a * 2)
> ---
>  drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c | 18 ++++++++++++++++++
>  1 file changed, 18 insertions(+)
> 
> diff --git a/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c 
> b/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c
> index 3b52dfc0ea1e..301550f0ea9f 100644
> --- a/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c
> +++ b/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c
> @@ -7,6 +7,7 @@
>  
>  #include <linux/bitfield.h>
>  #include <linux/clk.h>
> +#include <linux/clk/renesas.h>
>  #include <linux/delay.h>
>  #include <linux/dma-mapping.h>
>  #include <linux/io.h>
> @@ -732,6 +733,23 @@ static int rzg2l_mipi_dsi_host_attach(struct 
> mipi_dsi_host *host,
>  

By using an intermediate bpp variable, you can avoid a useless
second call to mipi_dsi_pixel_format_to_bpp():

    unsigned int bpp;
    ...
    bpp = mipi_dsi_pixel_format_to_bpp(device->format);
    switch (bpp) {
        case 24:
    ...

This also nicely matches your use of bpp in your comments/equations below:

>       drm_bridge_add(&dsi->bridge);
>  
> +     /*
> +      * Report the required division ratio setting for the MIPI clock 
> dividers.
> +      *
> +      * VCO-->[POSTDIV1,2]--FOUTPOSTDIV-->|   |-->[1/(DSI DIV A * B)]--> 
> MIPI_DSI_VCLK
> +      *            |                      |-->|
> +      *            |-->[1/2]---FOUT1PH0-->|   |-->[1/16]---------------> 
> hsclk (MIPI-PHY)
> +      *
> +      * vclk * bpp = hsclk * 8 * num_lanes
> +      *
> +      * vclk * DSI_AB_divider = hsclk * 16
> +      *
> +      *   which simplifies to...
> +      * DSI_AB_divider = bpp * 2 / num_lanes
> +      */
> +     rzg2l_cpg_dsi_div_set_divider(mipi_dsi_pixel_format_to_bpp(dsi->format) 
> * 2 / dsi->lanes,
> +                                   PLL5_TARGET_DSI);

   rzg2l_cpg_dsi_div_set_divider(bpp * 2 / dsi->lanes, PLL5_TARGET_DSI);


> +
>       return 0;
>  }
>  
> -- 
> 2.50.1
> 
> 

-- 
Hugo Villeneuve

Reply via email to