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@xxxxxxxxxxxxxxxxxxx> > --- > 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@xxxxxxxxx/ -- Tejas Vipin