jdi_panel_init() is never called in atomic context. Despite never getting called from atomic context, jdi_panel_init() calls mdelay() to busily wait. This is not necessary and can be replaced with usleep_range() and msleep() to avoid busy waiting. This is found by a static analysis tool named DCNS written by myself. And I also manually check it. Signed-off-by: Jia-Ju Bai <baijiaju1990@xxxxxxxxx> --- drivers/gpu/drm/panel/panel-jdi-lt070me05000.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c b/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c index 5b2340e..46b12a6 100644 --- a/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c +++ b/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c @@ -128,7 +128,7 @@ static int jdi_panel_init(struct jdi_panel *jdi) return ret; } - mdelay(10); + usleep_range(10000, 11000); /* Interface setting, video mode */ ret = mipi_dsi_generic_write(dsi, (u8[]) @@ -139,7 +139,7 @@ static int jdi_panel_init(struct jdi_panel *jdi) return ret; } - mdelay(20); + msleep(20); ret = mipi_dsi_generic_write(dsi, (u8[]){0xB0, 0x03}, 2); if (ret < 0) { -- 1.9.1 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel