Re: [PATCH V2 1/6] drm: bridge: samsung-dsim: fix blanking packet size calculation

From: Jagan Teki
Date: Mon Apr 24 2023 - 05:03:57 EST


On Sun, Apr 23, 2023 at 5:42 PM Adam Ford <aford173@xxxxxxxxx> wrote:
>
> From: Lucas Stach <l.stach@xxxxxxxxxxxxxx>
>
> Scale the blanking packet sizes to match the ratio between HS clock
> and DPI interface clock. The controller seems to do internal scaling
> to the number of active lanes, so we don't take those into account.
>
> Signed-off-by: Lucas Stach <l.stach@xxxxxxxxxxxxxx>
> Signed-off-by: Adam Ford <aford173@xxxxxxxxx>
> ---
> drivers/gpu/drm/bridge/samsung-dsim.c | 18 +++++++++++++++---
> 1 file changed, 15 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/bridge/samsung-dsim.c b/drivers/gpu/drm/bridge/samsung-dsim.c
> index e0a402a85787..2be3b58624c3 100644
> --- a/drivers/gpu/drm/bridge/samsung-dsim.c
> +++ b/drivers/gpu/drm/bridge/samsung-dsim.c
> @@ -874,17 +874,29 @@ static void samsung_dsim_set_display_mode(struct samsung_dsim *dsi)
> u32 reg;
>
> if (dsi->mode_flags & MIPI_DSI_MODE_VIDEO) {
> + int byte_clk_khz = dsi->burst_clk_rate / 1000 / 8;
> + int hfp = (m->hsync_start - m->hdisplay) * byte_clk_khz / m->clock;

I do not quite understand why it depends on burst_clk_rate, would you
please explain? does it depends on bpp something like this

mipi_dsi_pixel_format_to_bpp(format) / 8

> + int hbp = (m->htotal - m->hsync_end) * byte_clk_khz / m->clock;
> + int hsa = (m->hsync_end - m->hsync_start) * byte_clk_khz / m->clock;
> +
> + /* remove packet overhead when possible */
> + hfp = max(hfp - 6, 0);
> + hbp = max(hbp - 6, 0);
> + hsa = max(hsa - 6, 0);

6 blanking packet overhead here means, 4 bytes + payload + 2 bytes
format? does this packet overhead depends on the respective porch's
like hpf, hbp and hsa has different packet overheads?

Jagan.