[PATCH 1/3] drm: panel: Replace usage of deprecated MIPI macro
Tejas Vipin
tejasvipin76 at gmail.com
Mon Jul 7 17:02:22 UTC 2025
Hi,
On 7/7/25 1:26 PM, Brigham Campbell wrote:
> Replace all usages of the deprecated mipi_dsi_generic_write_seq() with
> mipi_dsi_generic_write_seq_multi().
>
> This patch's usage of the mipi_dsi_multi_context struct is not
> idiomatic. Rightfully, the struct wasn't designed to cater to the needs
> of panels with multiple MIPI DSI interfaces. This panel is an oddity
> which requires swapping the dsi pointer between calls to
> mipi_dsi_generic_write_seq_multi() in order to preserve the exact
> behavior implemented using the non-multi variant of the macro.
>
> Signed-off-by: Brigham Campbell <me at brighamcampbell.com>
> ---
> drivers/gpu/drm/panel/panel-jdi-lpm102a188a.c | 18 ++++++++++++------
> 1 file changed, 12 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/gpu/drm/panel/panel-jdi-lpm102a188a.c b/drivers/gpu/drm/panel/panel-jdi-lpm102a188a.c
> index 5b5082efb282..777a8ab3a397 100644
> --- a/drivers/gpu/drm/panel/panel-jdi-lpm102a188a.c
> +++ b/drivers/gpu/drm/panel/panel-jdi-lpm102a188a.c
> @@ -161,29 +161,35 @@ static int jdi_setup_symmetrical_split(struct mipi_dsi_device *left,
>
> static int jdi_write_dcdc_registers(struct jdi_panel *jdi)
> {
> + struct mipi_dsi_multi_context dsi_ctx;
> +
> /* Clear the manufacturer command access protection */
> - mipi_dsi_generic_write_seq(jdi->link1, MCS_CMD_ACS_PROT,
> + dsi_ctx.dsi = jdi->link1;
> + mipi_dsi_generic_write_seq_multi(&dsi_ctx, MCS_CMD_ACS_PROT,
> MCS_CMD_ACS_PROT_OFF);
> - mipi_dsi_generic_write_seq(jdi->link2, MCS_CMD_ACS_PROT,
> + dsi_ctx.dsi = jdi->link2;
> + mipi_dsi_generic_write_seq_multi(&dsi_ctx, MCS_CMD_ACS_PROT,
> MCS_CMD_ACS_PROT_OFF);
> /*
> - * Change the VGH/VGL divide rations to move the noise generated by the
> + * Change the VGH/VGL divide ratios to move the noise generated by the
> * TCONN. This should hopefully avoid interaction with the backlight
> * controller.
> */
> - mipi_dsi_generic_write_seq(jdi->link1, MCS_PWR_CTRL_FUNC,
> + dsi_ctx.dsi = jdi->link1;
> + mipi_dsi_generic_write_seq_multi(&dsi_ctx, MCS_PWR_CTRL_FUNC,
> MCS_PWR_CTRL_PARAM1_VGH_330_DIV |
> MCS_PWR_CTRL_PARAM1_DEFAULT,
> MCS_PWR_CTRL_PARAM2_VGL_410_DIV |
> MCS_PWR_CTRL_PARAM2_DEFAULT);
>
> - mipi_dsi_generic_write_seq(jdi->link2, MCS_PWR_CTRL_FUNC,
> + dsi_ctx.dsi = jdi->link2;
> + mipi_dsi_generic_write_seq_multi(&dsi_ctx, MCS_PWR_CTRL_FUNC,
> MCS_PWR_CTRL_PARAM1_VGH_330_DIV |
> MCS_PWR_CTRL_PARAM1_DEFAULT,
> MCS_PWR_CTRL_PARAM2_VGL_410_DIV |
> MCS_PWR_CTRL_PARAM2_DEFAULT);
>
> - return 0;
> + return dsi_ctx.accum_err;
> }
>
> static int jdi_panel_prepare(struct drm_panel *panel)
There's a lot more functions that should be replaced in this panel. You
can get a good idea of which ones by looking for the keyword
"deprecated" in drm_mipi_dsi.c . Here's a good reference for what a
conversion patch usually looks like:
https://lore.kernel.org/all/20250319183106.12613-1-tejasvipin76@gmail.com/
--
Tejas Vipin
More information about the dri-devel
mailing list