On Sun, Mar 16, 2025 at 7:32 PM Dmitry Baryshkov < dmitry.barysh...@oss.qualcomm.com> wrote:
> On Sun, Mar 16, 2025 at 02:58:22PM -0400, Anusha Srivatsa wrote: > > Move away from using deprecated API and use _multi > > variants if available. Use mipi_dsi_msleep() > > and mipi_dsi_usleep_range() instead of msleep() > > and usleep_range() respectively. > > > > Used Coccinelle to find the _multi variant APIs, > > replacing mpi_dsi_msleep() where necessary and for returning > > dsi_ctx.accum_err in these functions. > > > > @rule_1@ > > identifier dsi_var; > > identifier r; > > identifier func; > > type t; > > position p; > > expression dsi_device; > > expression list es; > > @@ > > t func(...) { > > ... > > struct mipi_dsi_device *dsi_var = dsi_device; > > +struct mipi_dsi_multi_context dsi_ctx = { .dsi = dsi_var }; > > <+... > > ( > > -r = mipi_dsi_dcs_nop(dsi_var)@p; > > +mipi_dsi_dcs_nop_multi(&dsi_ctx); > > | > > -r = mipi_dsi_dcs_exit_sleep_mode(dsi_var)@p; > > +mipi_dsi_dcs_exit_sleep_mode_multi(&dsi_ctx); > > | > > -r = mipi_dsi_dcs_enter_sleep_mode(dsi_var)@p; > > +mipi_dsi_dcs_enter_sleep_mode_multi(&dsi_ctx); > > | > > -r = mipi_dsi_dcs_write_buffer(dsi_var,es)@p; > > +mipi_dsi_dcs_write_buffer_multi(&dsi_ctx,es); > > | > > -r = mipi_dsi_dcs_set_display_off(dsi_var,es)@p; > > +mipi_dsi_dcs_set_display_off_multi(&dsi_ctx,es); > > | > > -r = mipi_dsi_compression_mode_ext(dsi_var,es)@p; > > +mipi_dsi_compression_mode_ext_multi(&dsi_ctx,es); > > | > > -r = mipi_dsi_compression_mode(dsi_var,es)@p; > > +mipi_dsi_compression_mode_multi(&dsi_ctx,es); > > | > > -r = mipi_dsi_picture_parameter_set(dsi_var,es)@p; > > +mipi_dsi_picture_parameter_set_multi(&dsi_ctx,es); > > | > > -r = mipi_dsi_dcs_set_display_on(dsi_var,es)@p; > > +mipi_dsi_dcs_set_display_on_multi(&dsi_ctx,es); > > | > > -r = mipi_dsi_dcs_set_tear_on(dsi_var)@p; > > +mipi_dsi_dcs_set_tear_on_multi(&dsi_ctx); > > | > > -r = mipi_dsi_turn_on_peripheral(dsi_var)@p; > > +mipi_dsi_turn_on_peripheral_multi(&dsi_ctx); > > | > > -r = mipi_dsi_dcs_soft_reset(dsi_var)@p; > > +mipi_dsi_dcs_soft_reset_multi(&dsi_ctx); > > | > > -r = mipi_dsi_dcs_set_display_brightness(dsi_var,es)@p; > > +mipi_dsi_dcs_set_display_brightness_multi(&dsi_ctx,es); > > | > > -r = mipi_dsi_dcs_set_pixel_format(dsi_var,es)@p; > > +mipi_dsi_dcs_set_pixel_format_multi(&dsi_ctx,es); > > | > > -r = mipi_dsi_dcs_set_column_address(dsi_var,es)@p; > > +mipi_dsi_dcs_set_column_address_multi(&dsi_ctx,es); > > | > > -r = mipi_dsi_dcs_set_page_address(dsi_var,es)@p; > > +mipi_dsi_dcs_set_page_address_multi(&dsi_ctx,es); > > | > > -r = mipi_dsi_dcs_set_tear_scanline(dsi_var,es)@p; > > +mipi_dsi_dcs_set_tear_scanline_multi(&dsi_ctx,es); > > ) > > -if(r < 0) { > > -... > > -} > > ...+> > > } > > > > @rule_2@ > > identifier dsi_var; > > identifier r; > > identifier func; > > type t; > > position p; > > expression dsi_device; > > expression list es; > > @@ > > t func(...) { > > ... > > struct mipi_dsi_multi_context dsi_ctx = { .dsi = dsi_var }; > > <+... > > ( > > -r = msleep(es)@p; > > +r = mipi_dsi_msleep(&dsi_ctx,es); > > | > > -msleep(es)@p; > > +mipi_dsi_msleep(&dsi_ctx,es); > > | > > -r = usleep_range(es)@p; > > +r = mipi_dsi_usleep_range(&dsi_ctx,es); > > | > > -usleep_range(es)@p; > > +mipi_dsi_usleep_range(&dsi_ctx,es); > > ) > > ...+> > > } > > > > @rule_3@ > > identifier dsi_var; > > identifier func; > > type t; > > position p; > > expression list es; > > @@ > > t func(...) { > > ... > > struct mipi_dsi_multi_context dsi_ctx = { .dsi = dsi_var }; > > ... > > -return 0; > > +return dsi_ctx.accum_err; > > } > > > > Cc: Maxime Ripard <mrip...@kernel.org> > > Cc: Dmitry Baryshkov <dmitry.barysh...@linaro.org> > > Cc: Tejas Vipin <tejasvipi...@gmail.com> > > Cc: Doug Anderson <diand...@chromium.org> > > > > Signed-off-by: Anusha Srivatsa <asriv...@redhat.com> > > --- > > drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c | 36 > ++++++++++--------------- > > 1 file changed, 14 insertions(+), 22 deletions(-) > > > > diff --git a/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c > b/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c > > index > 729cbb0d8403ff7c0c4b9d21774909cc298904a2..9803eaf18e95d70742ece88e82932751476fdda8 > 100644 > > --- a/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c > > +++ b/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c > > @@ -36,15 +36,14 @@ static inline struct sharp_nt_panel > *to_sharp_nt_panel(struct drm_panel *panel) > > static int sharp_nt_panel_init(struct sharp_nt_panel *sharp_nt) > > { > > struct mipi_dsi_device *dsi = sharp_nt->dsi; > > + struct mipi_dsi_multi_context dsi_ctx = { .dsi = dsi }; > > int ret; > > > > dsi->mode_flags |= MIPI_DSI_MODE_LPM; > > > > - ret = mipi_dsi_dcs_exit_sleep_mode(dsi); > > - if (ret < 0) > > - return ret; > > + mipi_dsi_dcs_exit_sleep_mode_multi(&dsi_ctx); > > > > - msleep(120); > > + mipi_dsi_msleep(&dsi_ctx, 120); > > > > /* Novatek two-lane operation */ > > ret = mipi_dsi_dcs_write(dsi, 0xae, (u8[]){ 0x03 }, 1); > > Anusha. Please. Start reviewing your patches before you send them. This > is a MIPI DSI call. And it wasn't switched to _multi / context. You > should have cought this. I don't know why you didn't. Please review and > check your code before sending it upstream. > > Sigh :( I actually need to give it a day, look at the patch again next day and catch faults before pushing to ML. Anusha > > -- > With best wishes > Dmitry > >