mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-18 22:14:16 +00:00
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. Manually handled the
reset step before returning from r63353_panel_activate()
v2: Do not skip the reset in case of error during
panel activate (Dmitry)
- Convert all usleep_range()
v3: mipi_dsi_usleep_range() is to be used only when in
between _multi commands(Doug)
- Check for error once in the end while using _multi
variants (Doug)
v4: Change return type of r63353_panel_deactivate() to void (Doug)
@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 <mripard@kernel.org>
Cc: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Cc: Tejas Vipin <tejasvipin76@gmail.com>
Cc: Douglas Anderson <dianders@chromium.org>
Cc: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com>
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20250318-synaptic-expt-v1-1-fa3831a7d883@redhat.com
|
||
|---|---|---|
| .. | ||
| Kconfig | ||
| Makefile | ||
| panel-abt-y030xx067a.c | ||
| panel-arm-versatile.c | ||
| panel-asus-z00t-tm5p5-n35596.c | ||
| panel-auo-a030jtn01.c | ||
| panel-boe-bf060y8m-aj0.c | ||
| panel-boe-himax8279d.c | ||
| panel-boe-th101mb31ig002-28a.c | ||
| panel-boe-tv101wum-ll2.c | ||
| panel-boe-tv101wum-nl6.c | ||
| panel-dsi-cm.c | ||
| panel-ebbg-ft8719.c | ||
| panel-edp.c | ||
| panel-elida-kd35t133.c | ||
| panel-feixin-k101-im2ba02.c | ||
| panel-feiyang-fy07024di26a30d.c | ||
| panel-himax-hx8394.c | ||
| panel-himax-hx83102.c | ||
| panel-himax-hx83112a.c | ||
| panel-ilitek-ili9322.c | ||
| panel-ilitek-ili9341.c | ||
| panel-ilitek-ili9805.c | ||
| panel-ilitek-ili9806e.c | ||
| panel-ilitek-ili9881c.c | ||
| panel-ilitek-ili9882t.c | ||
| panel-innolux-ej030na.c | ||
| panel-innolux-p079zca.c | ||
| panel-jadard-jd9365da-h3.c | ||
| panel-jdi-fhd-r63452.c | ||
| panel-jdi-lpm102a188a.c | ||
| panel-jdi-lt070me05000.c | ||
| panel-khadas-ts050.c | ||
| panel-kingdisplay-kd097d04.c | ||
| panel-leadtek-ltk050h3146w.c | ||
| panel-leadtek-ltk500hd1829.c | ||
| panel-lg-lb035q02.c | ||
| panel-lg-lg4573.c | ||
| panel-lg-sw43408.c | ||
| panel-lincolntech-lcd197.c | ||
| panel-lvds.c | ||
| panel-magnachip-d53e6ea8966.c | ||
| panel-mantix-mlaf057we51.c | ||
| panel-nec-nl8048hl11.c | ||
| panel-newvision-nv3051d.c | ||
| panel-newvision-nv3052c.c | ||
| panel-novatek-nt35510.c | ||
| panel-novatek-nt35560.c | ||
| panel-novatek-nt35950.c | ||
| panel-novatek-nt36523.c | ||
| panel-novatek-nt36672a.c | ||
| panel-novatek-nt36672e.c | ||
| panel-novatek-nt39016.c | ||
| panel-olimex-lcd-olinuxino.c | ||
| panel-orisetech-ota5601a.c | ||
| panel-orisetech-otm8009a.c | ||
| panel-osd-osd101t2587-53ts.c | ||
| panel-panasonic-vvx10f034n00.c | ||
| panel-raspberrypi-touchscreen.c | ||
| panel-raydium-rm692e5.c | ||
| panel-raydium-rm67191.c | ||
| panel-raydium-rm67200.c | ||
| panel-raydium-rm68200.c | ||
| panel-raydium-rm69380.c | ||
| panel-ronbo-rb070d30.c | ||
| panel-samsung-ams581vf01.c | ||
| panel-samsung-ams639rq08.c | ||
| panel-samsung-atna33xc20.c | ||
| panel-samsung-db7430.c | ||
| panel-samsung-ld9040.c | ||
| panel-samsung-s6d7aa0.c | ||
| panel-samsung-s6d16d0.c | ||
| panel-samsung-s6d27a1.c | ||
| panel-samsung-s6e3fa7.c | ||
| panel-samsung-s6e3ha2.c | ||
| panel-samsung-s6e3ha8.c | ||
| panel-samsung-s6e8aa0.c | ||
| panel-samsung-s6e63j0x03.c | ||
| panel-samsung-s6e63m0-dsi.c | ||
| panel-samsung-s6e63m0-spi.c | ||
| panel-samsung-s6e63m0.c | ||
| panel-samsung-s6e63m0.h | ||
| panel-samsung-s6e88a0-ams427ap24.c | ||
| panel-samsung-s6e88a0-ams452ef01.c | ||
| panel-samsung-sofef00.c | ||
| panel-seiko-43wvf1g.c | ||
| panel-sharp-lq101r1sx01.c | ||
| panel-sharp-ls037v7dw01.c | ||
| panel-sharp-ls043t1le01.c | ||
| panel-sharp-ls060t1sx01.c | ||
| panel-simple.c | ||
| panel-sitronix-st7701.c | ||
| panel-sitronix-st7703.c | ||
| panel-sitronix-st7789v.c | ||
| panel-sony-acx565akm.c | ||
| panel-sony-td4353-jdi.c | ||
| panel-sony-tulip-truly-nt35521.c | ||
| panel-startek-kd070fhfid015.c | ||
| panel-summit.c | ||
| panel-synaptics-r63353.c | ||
| panel-tdo-tl070wsh30.c | ||
| panel-tpo-td028ttec1.c | ||
| panel-tpo-td043mtea1.c | ||
| panel-tpo-tpg110.c | ||
| panel-truly-nt35597.c | ||
| panel-visionox-r66451.c | ||
| panel-visionox-rm692e5.c | ||
| panel-visionox-rm69299.c | ||
| panel-visionox-vtdr6130.c | ||
| panel-widechips-ws2401.c | ||
| panel-xinpeng-xpp055c272.c | ||