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@gmail.com --- 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) {
dri-devel@lists.freedesktop.org